From: Christian Caremoli <> Date: Thu, 26 Apr 2007 07:56:11 +0000 (+0000) Subject: CCAR: Creation de la version Eficas 1.12 avec mise a niveau Aster 9.0.16 X-Git-Tag: V1_12a2~47 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=0df19f2698ea6fb7e8009bd069a2ad976f845655;p=modules%2Feficas.git CCAR: Creation de la version Eficas 1.12 avec mise a niveau Aster 9.0.16 Les principales modifications sont : 1- creation du catalogue STA9 : cataSTA9 et adaptation des catalogues 7 et 8 a la nouvelle situation 2- adaptation d'Eficas pour gerer la definition des structures de donnees Aster : repertoires Sdbase et SD initialement seul repertoire SD dans Code_Aster (a reporter) 3- mise a jour des exemples de programmation dans le repertoire Exemples 4- mise a jour des tests elementaires dans le repertoire Tests et creation de tests specifiques par version : STA7, STA8, STA9 5- debut de prise en compte de la resolution de l'ecran dans l'affichage de l'arbre et des fenetres 6- correction d'un bug dans la mise à jour des macros (a reporter dans Code_Aster) 7- meilleur formattage des documentations associées aux sources pour utilisation d'epydoc --- diff --git a/AIDE/fichiers/NEWS b/AIDE/fichiers/NEWS index 60749235..d228a9b0 100644 --- a/AIDE/fichiers/NEWS +++ b/AIDE/fichiers/NEWS @@ -1,3 +1,6 @@ +Version 1.12 (6/2007): + Mise en synchronisation avec la version 9.1 de Code_Aster de mai 2007. + Version 1.11 (12/2006): Mise en synchronisation avec la version 8.4 de Code_Aster de decembre 2006. Première version du Traducteur de V7 en V8 diff --git a/Accas/A_ASSD.py b/Accas/A_ASSD.py index 2968709f..2791dd94 100644 --- a/Accas/A_ASSD.py +++ b/Accas/A_ASSD.py @@ -33,7 +33,7 @@ from Noyau import N_CO # pour faire en sorte que isinstance(o,ASSD) marche encore après # dérivation -class ASSD(N_ASSD.ASSD,I_ASSD.ASSD):pass +class ASSD(I_ASSD.ASSD,N_ASSD.ASSD):pass #class LASSD(I_LASSD.LASSD,N_LASSD.LASSD):pass class LASSD(I_LASSD.LASSD):pass diff --git a/Aster/Cata/Utilitai/as_timer.py b/Aster/Cata/Utilitai/as_timer.py new file mode 100644 index 00000000..9b3bd587 --- /dev/null +++ b/Aster/Cata/Utilitai/as_timer.py @@ -0,0 +1,252 @@ +#@ MODIF as_timer Utilitai DATE 02/04/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. +# ====================================================================== + +""" + Definition of ASTER_TIMER class. +""" + +__revision__ = "$Id: as_timer.py 2860 2007-02-12 08:37:17Z courtois $" + +# ----- differ messages translation +def _(mesg): + return mesg + +import os +import time + +#------------------------------------------------------------------------------- +def _dtimes(): + """Returns a dict of cpu, system and total times. + """ + l_t = os.times() + return { 'cpu' : (l_t[0], l_t[2]), + 'sys' : (l_t[1], l_t[3]), + 'tot' : l_t[4], } + +#------------------------------------------------------------------------------- +def _conv_hms(t): + """Convert a number of seconds in hours, minutes, seconds. + """ + h = int(t/3600) + m = int(t % 3600)/60 + s = (t % 3600) % 60 + return h, m, s + +#------------------------------------------------------------------------------- +#------------------------------------------------------------------------------- +#------------------------------------------------------------------------------- +class ASTER_TIMER: + """This class provides methods to easily measure time spent during + different steps. + Methods : + Start : start a timer in mode 'INIT' ([re]start from 0) or 'CONT' + (restart from last value). + Stop : stop a timer + Attributes : + timers : dict { + timer_id : { + 'name' : timer legend (=timer_id by default), + 'state' : state, + 'cpu_t0' : initial cpu time, + 'cpu_dt' : spent cpu time, + 'sys_t0' : initial system time, + 'sys_dt' : spent system time, + 'tot_t0' : start time, + 'tot_dt' : total spent time, + 'num' : timer number (to print timers in order of creation), + 'hide' : boolean, + }, + ... + } + state is one of 'start', 'stop' + """ + MaxNumTimer = 9999999 + +#------------------------------------------------------------------------------- + def __init__(self, add_total=True, format='as_run'): + """Constructor + """ + # ----- initialisation + self.timers = {} + self.add_total = add_total + + if not format in ('as_run', 'aster'): + format = 'as_run' + + if format == 'as_run': + self.fmtlig = ' %(name)-26s %(cpu_dt)9.2f %(sys_dt)9.2f %(cpu_sys)9.2f %(tot_dt)9.2f' + self.fmtstr = ' %(title)-26s %(cpu)9s %(sys)9s %(cpu+sys)9s %(elapsed)9s' + self.sepa = ' ' + '-'*74 + self.TotalKey = _('Total time') + self.d_labels = { + 'title' : '', + 'cpu' : _('cpu'), + 'sys' : _('system'), + 'cpu+sys' : _('cpu+sys'), + 'elapsed' : _('elapsed'), + } + elif format == 'aster': + self.fmtlig = ' * %(name)-16s : %(cpu_dt)10.2f : %(sys_dt)10.2f : %(cpu_sys)10.2f : %(tot_dt)10.2f *' + self.fmtstr = ' * %(title)-16s : %(cpu)10s : %(sys)10s : %(cpu+sys)10s : %(elapsed)10s *' + self.sepa = ' ' + '*'*72 + self.TotalKey = 'TOTAL_JOB' + self.d_labels = { + 'title' : 'COMMAND', + 'cpu' : 'USER', + 'sys' : 'SYSTEM', + 'cpu+sys' : 'USER+SYS', + 'elapsed' : 'ELAPSED', + } + + self.total_key = id(self) + if self.add_total: + self.Start(self.total_key, name=self.TotalKey, num=self.MaxNumTimer) + +#------------------------------------------------------------------------------- + def Start(self, timer, mode='CONT', num=None, hide=False, name=None): + """Start a new timer or restart one + """ + name = name or str(timer) + isnew = not timer in self.timers.keys() + if not num: + num = len(self.timers) + if mode == 'INIT': + num = self.timers[timer]['num'] + dico = _dtimes() + if isnew or mode == 'INIT': + self.timers[timer] = { + 'name' : name, + 'state' : 'start', + 'cpu_t0' : dico['cpu'], + 'cpu_dt' : 0., + 'sys_t0' : dico['sys'], + 'sys_dt' : 0., + 'tot_t0' : dico['tot'], + 'tot_dt' : 0., + 'num' : num, + 'hide' : hide, + } + elif mode == 'CONT' and self.timers[timer]['state'] == 'stop': + self.timers[timer].update({ + 'state' : 'start', + 'cpu_t0' : dico['cpu'], + 'sys_t0' : dico['sys'], + 'tot_t0' : dico['tot'], + }) + +#------------------------------------------------------------------------------- + def Stop(self, timer, hide=False): + """Stop a timer + """ + if not timer in self.timers.keys(): + self.timers[timer] = { + 'name' : str(timer), + 'hide' : hide, + 'state' : 'stop', + 'cpu_t0' : 0., + 'cpu_dt' : 0., + 'sys_t0' : 0., + 'sys_dt' : 0., + 'tot_t0' : 0., + 'tot_dt' : 0., + 'num': len(self.timers), + } + elif self.timers[timer]['state'] == 'start': + dico = _dtimes() + self.timers[timer]['state'] = 'stop' + for i in range(len(dico['cpu'])): + self.timers[timer]['cpu_dt'] += \ + dico['cpu'][i] - self.timers[timer]['cpu_t0'][i] + self.timers[timer]['cpu_t0'] = dico['cpu'] + for i in range(len(dico['sys'])): + self.timers[timer]['sys_dt'] += \ + dico['sys'][i] - self.timers[timer]['sys_t0'][i] + self.timers[timer]['sys_t0'] = dico['sys'] + self.timers[timer]['tot_dt'] = self.timers[timer]['tot_dt'] + \ + dico['tot'] - self.timers[timer]['tot_t0'] + self.timers[timer]['tot_t0'] = dico['tot'] + +#------------------------------------------------------------------------------- + def StopAndGet(self, timer, *args, **kwargs): + """Stop a timer and return "delta" values. + """ + self.Stop(timer, *args, **kwargs) + cpu_dt = self.timers[timer]['cpu_dt'] + sys_dt = self.timers[timer]['sys_dt'] + tot_dt = self.timers[timer]['tot_dt'] + return cpu_dt, sys_dt, tot_dt + +#------------------------------------------------------------------------------- + def StopAndGetTotal(self): + """Stop the timer and return total "delta" values. + """ + return self.StopAndGet(self.total_key) + +#------------------------------------------------------------------------------- + def StopAll(self): + """Stop all timers + """ + lk = self.timers.keys() + if self.add_total: + lk.remove(self.total_key) + for timer in lk: + self.Stop(timer) + +#------------------------------------------------------------------------------- + def __repr__(self): + """Pretty print content of the timer. + NB : call automatically StopAll + """ + self.StopAll() + if self.add_total: + self.Stop(self.total_key) + + labels = self.fmtstr % self.d_labels + out = [''] + # get timers list and sort by 'num' + lnum = [[val['num'], timer] for timer, val in self.timers.items() if not val['hide']] + lnum.sort() + if lnum: + out.append(self.sepa) + if self.add_total and labels: + out.append(labels) + out.append(self.sepa) + for num, timer in lnum: + d_info = self.timers[timer].copy() + d_info['cpu_sys'] = d_info['cpu_dt'] + d_info['sys_dt'] + if self.add_total and num == self.MaxNumTimer and len(lnum)>1: + out.append(self.sepa) + out.append(self.fmtlig % d_info) + if lnum: + out.append(self.sepa) + out.append('') + return os.linesep.join(out) + +#------------------------------------------------------------------------------- +if __name__ == '__main__': + chrono = ASTER_TIMER(format='aster') + chrono.Start('Compilation') + chrono.Start('CALC_FONCTION') + chrono.Start(23, name='CALC_FONCTION') + time.sleep(0.4) + chrono.Stop('Compilation') + chrono.Stop(23) + chrono.Start('Child') + print chrono diff --git a/Aster/Cata/cataSTA5/ops.py b/Aster/Cata/cataSTA5/ops.py new file mode 100644 index 00000000..66ac3a12 --- /dev/null +++ b/Aster/Cata/cataSTA5/ops.py @@ -0,0 +1,246 @@ +# -*- coding: iso-8859-1 -*- +#@ MODIF ops Cata DATE 23/10/2002 AUTEUR DURAND C.DURAND +# 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. +# ====================================================================== + +# Modules Python +import types +import string,linecache,os,traceback,re + +# Modules Eficas +import Accas +from Accas import ASSD + +try: + import aster + # Si le module aster est présent, on le connecte + # au JDC + import Build.B_CODE + Build.B_CODE.CODE.codex=aster +except: + pass + +def DEBUT(self,PAR_LOT,**args): + """ + Fonction sdprod de la macro DEBUT + """ + self.jdc.set_par_lot(PAR_LOT) + +def POURSUITE(self,PAR_LOT,**args): + """ + Fonction sdprod de la macro POURSUITE + """ + self.jdc.set_par_lot(PAR_LOT) + if self.codex and os.path.isfile("glob.1"): + # Le module d'execution est accessible et glob.1 est present + if hasattr(self,'fichier_init'):return + self.fichier_init='glob.1' + self.jdc.initexec() + lot,ier,lonuti,concepts=self.codex.poursu(self,1) + self.icmd=lonuti + #print "Fin de debut",ier,lot,lonuti + pos=0 + d={} + while pos+80 < len(concepts)+1: + nomres=concepts[pos:pos+8] + concep=concepts[pos+8:pos+24] + nomcmd=concepts[pos+24:pos+40] + statut=concepts[pos+40:pos+48] + if nomres[0] not in (' ','.','&') and statut != '&DETRUIT': + exec nomres+'='+string.lower(concep)+'()' in self.parent.g_context,d + pos=pos+80 + for k,v in d.items(): + self.parent.NommerSdprod(v,k) + self.g_context=d + return + else: + # Si le module d'execution n est pas accessible ou glob.1 absent on + # demande un fichier (EFICAS) + # Il faut éviter de réinterpréter le fichier à chaque appel de + # POURSUITE + if hasattr(self,'fichier_init'): + return + self.make_poursuite() + +def POURSUITE_context(self,d): + """ + Fonction op_init de la macro POURSUITE + """ + # self représente la macro POURSUITE ... + d.update(self.g_context) + # Une commande POURSUITE n'est possible qu'au niveau le plus haut + # On ajoute directement les concepts dans le contexte du jdc + # XXX est ce que les concepts ne sont pas ajoutés plusieurs fois ?? + for v in self.g_context.values(): + if isinstance(v,ASSD) : self.jdc.sds.append(v) + +def INCLUDE(self,UNITE,**args): + """ + Fonction sd_prod pour la macro INCLUDE + """ + if not UNITE : return + if hasattr(self,'unite'):return + self.unite=UNITE + + if self.jdc and self.jdc.par_lot == 'NON': + # On est en mode commande par commande + # On teste la validite de la commande avec interruption eventuelle + cr=self.report() + self.parent.cr.add(cr) + if not cr.estvide(): + raise EOFError + + self.make_include(unite=UNITE) + +def INCLUDE_context(self,d): + """ + Fonction op_init pour macro INCLUDE + """ + for k,v in self.g_context.items(): + d[k]=v + +def detruire(self,d): + """ + Cette fonction est la fonction op_init de la PROC DETRUIRE + """ + sd=[] + for mc in self["CONCEPT"]: + mcs=mc["NOM"] + if type(mcs) == types.ListType or type(mcs) == types.TupleType: + for e in mcs: + if isinstance(e,ASSD): + sd.append(e) + e=e.nom + if d.has_key(e):del d[e] + if self.jdc.sds_dict.has_key(e):del self.jdc.sds_dict[e] + else: + if isinstance(mcs,ASSD): + sd.append(mcs) + mcs=mcs.nom + if d.has_key(mcs):del d[mcs] + if self.jdc.sds_dict.has_key(mcs):del self.jdc.sds_dict[mcs] + for s in sd: + # On signale au parent que le concept s n'existe plus apres l'étape self + self.parent.delete_concept_after_etape(self,s) + +def subst_materiau(text,NOM_MATER,EXTRACTION): + """ + Cette fonction retourne un texte obtenu à partir du texte passé en argument (text) + en substituant le nom du materiau par NOM_MATER + et en réalisant les extractions spéciifées dans EXTRACTION + """ + lines=string.split(text,'\n') + if EXTRACTION: + ll=[] + regmcf=re.compile(r" *(.*) *= *_F\( *## +(.*) +(.*)") + regmcs=re.compile(r" *(.*) *= *([^ ,]*) *, *## +([^ ]*) *([^ ]*)") + regfin=re.compile(r" *\) *") + temps={};lmcf=[] + for e in EXTRACTION: + mcf=e['COMPOR'] + lmcf.append(mcf) + temps[mcf]=e['TEMP_EVAL'] + FLAG=0 + for l in lines: + m=regmcf.match(l) + if m: # On a trouve un mot cle facteur "commentarise" + if m.group(2) == "SUBST": # il est de plus substituable + if temps.has_key(m.group(3)): # Il est a substituer + ll.append(" "+m.group(3)+"=_F(") + mcf=m.group(3) + TEMP=temps[mcf] + FLAG=1 # Indique que l'on est en cours de substitution + else: # Il n est pas a substituer car il n est pas dans la liste demandee + ll.append(l) + else: # Mot cle facteur commentarise non substituable + ll.append(l) + else: # La ligne ne contient pas un mot cle facteur commentarise + if FLAG == 0: # On n est pas en cours de substitution + ll.append(l) + else: # On est en cours de substitution. On cherche les mots cles simples commentarises + m=regmcs.match(l) + if m: # On a trouve un mot cle simple commentarise + if m.group(3) == "EVAL": + ll.append(" "+m.group(1)+' = EVAL("'+m.group(4)+"("+str(TEMP)+')"),') + elif m.group(3) == "SUPPR": + pass + else: + ll.append(l) + else: # On cherche la fin du mot cle facteur en cours de substitution + m=regfin.match(l) + if m: # On l a trouve. On le supprime de la liste + FLAG=0 + del temps[mcf] + ll.append(l) + else: + ll=lines + + for l in ll: + print l + lines=ll + ll=[] + for l in lines: + l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1) + ll.append(l) + text=string.join(ll,'\n') + return text + +def INCLUDE_MATERIAU(self,NOM_AFNOR,TYPE_MODELE,VARIANTE,TYPE_VALE,NOM_MATER, + EXTRACTION,INFO,**args): + """ + Fonction sd_prod pour la macro INCLUDE_MATERIAU + """ + mat=string.join((NOM_AFNOR,'_',TYPE_MODELE,'_',VARIANTE,'.',TYPE_VALE),'') + if not hasattr(self,'mat') or self.mat != mat or self.nom_mater != NOM_MATER : + # On récupère le répertoire des matériaux dans les arguments + # supplémentaires du JDC + rep_mat=self.jdc.args.get("rep_mat","NOrep_mat") + f=os.path.join(rep_mat,mat) + self.mat=mat + self.nom_mater=NOM_MATER + if not os.path.isfile(f): + del self.mat + self.make_contexte(f,"#Texte sans effet pour reinitialiser le contexte a vide\n") + raise "Erreur sur le fichier materiau: "+f + # Les materiaux sont uniquement disponibles en syntaxe Python + # On lit le fichier et on supprime les éventuels \r + text=string.replace(open(f).read(),'\r\n','\n') + # On effectue les substitutions necessaires + self.prefix=NOM_MATER + self.text= subst_materiau(text,NOM_MATER,EXTRACTION) + if INFO == 2: + print "INCLUDE_MATERIAU: ", self.mat,' ',NOM_MATER,'\n' + print self.text + # on execute le texte fourni dans le contexte forme par + # le contexte de l etape pere (global au sens Python) + # et le contexte de l etape (local au sens Python) + # Il faut auparavant l'enregistrer aupres du module linecache (utile pour nommage.py) + linecache.cache[f]=0,0,string.split(self.text,'\n'),f + if self.jdc.par_lot == 'NON': + # On est en mode commande par commande + # On teste la validite de la commande avec interruption eventuelle + cr=self.report() + self.parent.cr.add(cr) + if not cr.estvide(): + raise EOFError + # Et en plus il faut executer la fonction ops014 avant les sous + # commandes car le prefixe PRFXCO doit etre initialise dans le Fortran + self.codex.opsexe(self,0,-1,-self.definition.op) + + self.make_contexte(f,self.text) + diff --git a/Aster/Cata/cataSTA6/cata.py b/Aster/Cata/cataSTA6/cata.py index 345d059b..ebae8e10 100755 --- a/Aster/Cata/cataSTA6/cata.py +++ b/Aster/Cata/cataSTA6/cata.py @@ -29,14 +29,21 @@ except: pass # -__version__="$Name: $" -__Id__="$Id: cata.py,v 1.4.6.1 2006/05/29 07:04:57 cchris Exp $" +__version__="$Name: BR_V1_12a1 $" +__Id__="$Id: cata.py,v 1.5 2006-06-20 17:38:47 cchris Exp $" # JdC = JDC_CATA(code='ASTER', execmodul=None, regles = (AU_MOINS_UN('DEBUT','POURSUITE'), AU_MOINS_UN('FIN'), A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) + +#compatibilite avec V9 +import Sdbase +class ASSD(ASSD,Sdbase.AsBase):pass +class GEOM(GEOM,Sdbase.AsBase):pass +#fin compatibilite + # Type le plus general class entier (ASSD):pass class reel (ASSD):pass diff --git a/Aster/Cata/cataSTA7/__init__.py b/Aster/Cata/cataSTA7/__init__.py index 0a644069..2e630901 100644 --- a/Aster/Cata/cataSTA7/__init__.py +++ b/Aster/Cata/cataSTA7/__init__.py @@ -1,4 +1,10 @@ import os,sys +sys.modules["Cata"]=sys.modules[__name__] rep_macro = os.path.dirname(__file__) sys.path.insert(0,rep_macro) from cata import * + +from math import ceil +from Extensions import param2 +pi=param2.Variable('pi',pi) + diff --git a/Aster/Cata/cataSTA7/cata.py b/Aster/Cata/cataSTA7/cata.py index b9c5aa0d..525aa13a 100644 --- a/Aster/Cata/cataSTA7/cata.py +++ b/Aster/Cata/cataSTA7/cata.py @@ -34,19 +34,36 @@ except: pass # -__version__="$Name: $" -__Id__="$Id: cata.py,v 1.2.4.1 2006/12/14 17:22:47 pnoyret Exp $" +__version__="$Name: BR_V1_12a1 $" +__Id__="$Id: cata.py,v 1.3 2006-12-15 16:00:05 cchris Exp $" # JdC = JDC_CATA(code='ASTER', execmodul=None, regles = (AU_MOINS_UN('DEBUT','POURSUITE'), AU_MOINS_UN('FIN'), A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) +#compatibilite avec V9 +import Sdbase +class ASSD(ASSD,Sdbase.AsBase):pass +class GEOM(GEOM,Sdbase.AsBase):pass +#fin compatibilite + # Type le plus general class entier (ASSD): def __init__(self,valeur=None,**args): ASSD.__init__(self,**args) self.valeur=valeur + def __adapt__(self,validator): + if validator.name == "list": + #validateur liste,cardinalité + return (self,) + elif validator.name == "type": + #validateur type + return validator.adapt(self.valeur or 0) + else: + #validateur into et valid + return self + # Type geometriques class no (GEOM):pass diff --git a/Aster/Cata/cataSTA8/cata.py b/Aster/Cata/cataSTA8/cata.py index 3bfbb254..c85d319e 100755 --- a/Aster/Cata/cataSTA8/cata.py +++ b/Aster/Cata/cataSTA8/cata.py @@ -33,8 +33,8 @@ try: except: pass -__version__="$Name: $" -__Id__="$Id: cata.py,v 1.2.4.3 2006/12/14 17:30:02 pnoyret Exp $" +__version__="$Name: BR_V1_12a1 $" +__Id__="$Id: cata.py,v 1.3 2006-12-15 16:00:11 cchris Exp $" EnumTypes = (ListType, TupleType) @@ -44,6 +44,12 @@ JdC = JDC_CATA(code='ASTER', regles = (AU_MOINS_UN('DEBUT','POURSUITE'), AU_MOINS_UN('FIN'), A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) +#compatibilite avec V9 +import Sdbase +class ASSD(ASSD,Sdbase.AsBase):pass +class GEOM(GEOM,Sdbase.AsBase):pass +#fin compatibilite + # Type le plus general class entier (ASSD): def __init__(self,valeur=None,**args): diff --git a/Aster/Cata/cataSTA9/Macro/__init__.py b/Aster/Cata/cataSTA9/Macro/__init__.py new file mode 100644 index 00000000..4aebb58b --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/__init__.py @@ -0,0 +1,21 @@ +#@ MODIF __init__ Macro DATE 20/09/2004 AUTEUR DURAND C.DURAND +# -*- 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. +# +# 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. +# +# +# ====================================================================== diff --git a/Aster/Cata/cataSTA9/Macro/calc_fonction_ops.py b/Aster/Cata/cataSTA9/Macro/calc_fonction_ops.py new file mode 100644 index 00000000..a541180f --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/calc_fonction_ops.py @@ -0,0 +1,333 @@ +#@ MODIF calc_fonction_ops Macro DATE 02/05/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- 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. +# ====================================================================== + + +def tocomplex(arg): + if arg[0]=='RI' : return complex(arg[1],arg[2]) + if arg[0]=='MP' : return complex(arg[1]*cos(arg[2]),arg[1]*sin(arg[2])) + +def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, + SPEC_OSCI,ABS,COMB,COMB_C,COMPOSE,EXTRACTION, + ENVELOPPE,ASSE,CORR_ACCE,PUISSANCE,INVERSE, + NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE, + PROL_GAUCHE,NOM_PARA_FONC,INTERPOL_FONC,PROL_DROITE_FONC, + PROL_GAUCHE_FONC,INFO,**args): + """ + Ecriture de la macro CALC_FONCTION + """ + ier=0 + import types + import string + import copy + from math import pi + from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe + from Utilitai import liss_enveloppe + from Accas import _F + from Cata.cata import nappe_sdaster,fonction_sdaster,fonction_c + from Utilitai.Utmess import UTMESS + from Numeric import alltrue,less,array,reshape,cos,sin,exp,sqrt + from Numeric import choose,zeros,Float + import aster_fonctions + EnumType = (types.ListType,types.TupleType) + + ### On importe les definitions des commandes a utiliser dans la macro + DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') + IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') + DEFI_NAPPE = self.get_cmd('DEFI_NAPPE') + + ### Comptage commandes + déclaration concept sortant + self.set_icmd(1) + self.DeclareOut('C_out',self.sd) + + ### type de traitement + ### + if (INTEGRE != None): + __ff=INTEGRE['FONCTION'].convert() + if INTEGRE['METHODE']=='TRAPEZE' : __ex=__ff.trapeze(INTEGRE['COEF']) + if INTEGRE['METHODE']=='SIMPSON' : __ex=__ff.simpson(INTEGRE['COEF']) + ### + if (DERIVE != None): + __ff=DERIVE['FONCTION'].convert() + __ex=__ff.derive() + ### + if (INVERSE != None): + __ff=INVERSE['FONCTION'].convert() + __ex=__ff.inverse() + ### + if (ABS != None): + __ff=ABS['FONCTION'].convert() + __ex=__ff.abs() + ### + if (COMPOSE != None): + __ff=COMPOSE['FONC_RESU'].convert() + __fg=COMPOSE['FONC_PARA'].convert() + __ex=__ff[__fg] + ### + if (ASSE != None): + __f0=ASSE['FONCTION'][0].convert() + __f1=ASSE['FONCTION'][1].convert() + __ex=__f0.cat(__f1,ASSE['SURCHARGE']) + ### + if (COMB != None): + list_fonc=[] + if isinstance(self.sd,nappe_sdaster): + for mcfact in COMB : + list_fonc.append(mcfact['FONCTION'].convert()) + list_fonch=[] + for f in list_fonc : + __ex=f + for g in list_fonc : + __ex=__ex.homo_support(g) + list_fonch.append(__ex) + list_fonc=list_fonch + elif isinstance(self.sd,fonction_sdaster): + for mcfact in COMB : + __ex=mcfact['FONCTION'].convert() + list_fonc.append(__ex) + + __ex=list_fonc[0] + __ex=__ex*COMB[0]['COEF'] + i=1 + for item in list_fonc[1:] : + item=item*COMB[i]['COEF'] + __ex=__ex+item + i=i+1 + ### + if (COMB_C != None): + list_fonc=[] + if isinstance(self.sd,nappe_sdaster): + for mcfact in COMB_C : + list_fonc.append(mcfact['FONCTION'].convert()) + list_fonch=[] + for f in list_fonc : + __ex=f + for g in list_fonc : + __ex=__ex.homo_support(g) + list_fonch.appen(__ex) + list_fonc=list_fonch + elif isinstance(self.sd,fonction_sdaster) or isinstance(self.sd,fonction_c): + for mcfact in COMB_C : + __ex=mcfact['FONCTION'].convert(arg='complex') + list_fonc.append(__ex) + + __ex=list_fonc[0] + if COMB_C[0]['COEF_R']!=None: __ex=__ex*complex(COMB_C[0]['COEF_R']) + if COMB_C[0]['COEF_C']!=None: + if type(COMB_C[0]['COEF_C']) in EnumType : __ex=__ex*tocomplex(COMB_C[0]['COEF_C']) + else : __ex=__ex*COMB_C[0]['COEF_C'] + i=1 + for item in list_fonc[1:] : + if COMB_C[i]['COEF_R']!=None: coef=complex(COMB_C[i]['COEF_R']) + if COMB_C[i]['COEF_C']!=None: + if type(COMB_C[i]['COEF_C']) in EnumType : coef=tocomplex(COMB_C[i]['COEF_C']) + else : coef=COMB_C[i]['COEF_C'] + item=item*coef + __ex=__ex+item + i=i+1 + ### mot clé LIST_PARA uniquement présent si COMB ou COMB_C + if (COMB != None) or (COMB_C != None) : + if (args['LIST_PARA'] != None) : + __ex=__ex.evalfonc(args['LIST_PARA'].Valeurs()) + ### + if (PUISSANCE != None): + __ff=PUISSANCE['FONCTION'].convert() + __ex=__ff + for i in range(PUISSANCE['EXPOSANT']-1) : __ex=__ex*__ff + ### + if (EXTRACTION != None): + if EXTRACTION['PARTIE']=='REEL' : __ex=EXTRACTION['FONCTION'].convert(arg='real') + if EXTRACTION['PARTIE']=='IMAG' : __ex=EXTRACTION['FONCTION'].convert(arg='imag') + if EXTRACTION['PARTIE']=='MODULE' : __ex=EXTRACTION['FONCTION'].convert(arg='modul') + if EXTRACTION['PARTIE']=='PHASE' : __ex=EXTRACTION['FONCTION'].convert(arg='phase') + ### + if (ENVELOPPE != None): + list_fonc=[] + l_env=ENVELOPPE['FONCTION'] + if type(l_env) not in EnumType : l_env=(l_env,) + if isinstance(self.sd,nappe_sdaster): + for f in l_env : list_fonc.append(f.convert()) + list_fonch=[] + for f in list_fonc : + __ff=f + for g in list_fonc : + __ff=__ff.homo_support(g) + list_fonch.append(__ff) + list_fonc=list_fonch + vale_para=list_fonc[0].vale_para + para =list_fonc[0].para + l_fonc_f =[] + for i in range(len(vale_para)): + __ff=list_fonc[0].l_fonc[i] + if ENVELOPPE['CRITERE']=='SUP' : + for f in list_fonc[1:] : __ff=__ff.sup(f.l_fonc[i]) + if ENVELOPPE['CRITERE']=='INF' : + for f in list_fonc[1:] : __ff=__ff.inf(f.l_fonc[i]) + l_fonc_f.append(__ff) + __ex=t_nappe(vale_para,l_fonc_f,para) + elif isinstance(self.sd,fonction_sdaster): + for f in l_env : list_fonc.append(f.convert()) + __ex=list_fonc[0] + if ENVELOPPE['CRITERE']=='SUP' : + for f in list_fonc[1:] : __ex=__ex.sup(f) + if ENVELOPPE['CRITERE']=='INF' : + for f in list_fonc[1:] : __ex=__ex.inf(f) + ### + if (CORR_ACCE != None): + __ex=CORR_ACCE['FONCTION'].convert() + para=copy.copy(__ex.para) + # suppression de la tendance de l accelero + __ex=__ex.suppr_tend() + # calcul de la vitesse + __ex=__ex.trapeze(0.) + # calcul de la tendance de la vitesse : y = a1*x +a0 + __ex=__ex.suppr_tend() + if CORR_ACCE['CORR_DEPL']=='OUI': + # suppression de la tendance deplacement + # calcul du deplacement : integration + __ex=__ex.trapeze(0.) + # calcul de la tendance du déplacement : y = a1*x +a0 + __ex=__ex.suppr_tend() + # regeneration de la vitesse : derivation + __ex=__ex.derive() + # regeneration de l accelero : derivation + __ex=__ex.derive() + __ex.para=para + ### + if (FFT != None): + if isinstance(self.sd,fonction_c): + __ff=FFT['FONCTION'].convert() + __ex=__ff.fft(FFT['METHODE']) + if isinstance(self.sd,fonction_sdaster): + __ff=FFT['FONCTION'].convert(arg='complex') + __ex=__ff.fft(FFT['METHODE'],FFT['SYME']) + ### + if (SPEC_OSCI != None): + if SPEC_OSCI['AMOR_REDUIT']==None : + l_amor=[0.02,0.05,0.1] + UTMESS('I','CALC_FONCTION',' : génération par défaut de 3 amortissements :'+str(l_amor)) + else : + if type(SPEC_OSCI['AMOR_REDUIT']) not in EnumType : + l_amor=[SPEC_OSCI['AMOR_REDUIT'],] + else : l_amor= SPEC_OSCI['AMOR_REDUIT'] + if SPEC_OSCI['FREQ']==None and SPEC_OSCI['LIST_FREQ']==None: + l_freq=[] + for i in range(56) : l_freq.append( 0.2+0.050*i) + for i in range( 8) : l_freq.append( 3.0+0.075*i) + for i in range(14) : l_freq.append( 3.6+0.100*i) + for i in range(24) : l_freq.append( 5.0+0.125*i) + for i in range(28) : l_freq.append( 8.0+0.250*i) + for i in range( 6) : l_freq.append(15.0+0.500*i) + for i in range( 4) : l_freq.append(18.0+1.000*i) + for i in range(10) : l_freq.append(22.0+1.500*i) + texte=[] + for i in range(len(l_freq)/5) : + texte.append(' %f %f %f %f %f' %tuple(l_freq[i*5:i*5+5])) + UTMESS('I','CALC_FONCTION',' : génération par défaut de 150 fréquences :\n'+'\n'.join(texte)) + elif SPEC_OSCI['LIST_FREQ']!=None: + l_freq=SPEC_OSCI['LIST_FREQ'].Valeurs() + elif SPEC_OSCI['FREQ']!=None: + if type(SPEC_OSCI['FREQ']) not in EnumType: + l_freq=[SPEC_OSCI['FREQ'],] + else : l_freq= SPEC_OSCI['FREQ'] + if abs(SPEC_OSCI['NORME'])<1.E-10 : + UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, la norme ne peut etre nulle') + if SPEC_OSCI['NATURE_FONC']!='ACCE' : + UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, le type de la fonction doit etre ACCE') + if SPEC_OSCI['METHODE']!='NIGAM' : + UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, seule la méthode NIGAM est codée') + eps=1.e-6 + for amor in l_amor : + if amor>(1-eps) : + UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, la méthode choisie '\ + 'suppose des amortissements sous-critiques, amor<1.') + + __ff=SPEC_OSCI['FONCTION'].convert() + + # appel à SPEC_OSCI + spectr = aster_fonctions.SPEC_OSCI(__ff.vale_x, __ff.vale_y, l_freq, l_amor) + + # construction de la nappe + vale_para = l_amor + para = { 'INTERPOL' : ['LIN','LOG'], + 'NOM_PARA_FONC' : 'FREQ', + 'NOM_PARA' : 'AMOR', + 'PROL_DROITE' : 'EXCLU', + 'PROL_GAUCHE' : 'EXCLU', + 'NOM_RESU' : SPEC_OSCI['NATURE'] } + para_fonc = { 'INTERPOL' : ['LOG','LOG'], + 'NOM_PARA' : 'FREQ', + 'PROL_DROITE' : 'CONSTANT', + 'PROL_GAUCHE' : 'EXCLU', + 'NOM_RESU' : SPEC_OSCI['NATURE'] } + if SPEC_OSCI['NATURE']=='DEPL' : ideb = 0 + elif SPEC_OSCI['NATURE']=='VITE' : ideb = 1 + else : ideb = 2 + l_fonc = [] + for iamor in range(len(l_amor)) : + l_fonc.append(t_fonction(l_freq,spectr[iamor,ideb,:]/SPEC_OSCI['NORME'],para_fonc)) + __ex=t_nappe(vale_para,l_fonc,para) + ### + if (LISS_ENVELOP!= None): + __ff=LISS_ENVELOP['NAPPE'].convert() + sp_nappe=liss_enveloppe.nappe(listFreq=__ff.l_fonc[0].vale_x, listeTable=[f.vale_y for f in __ff.l_fonc], listAmor=__ff.vale_para, entete="") + sp_lisse=liss_enveloppe.lissage(nappe=sp_nappe,fmin=LISS_ENVELOP['FREQ_MIN'],fmax=LISS_ENVELOP['FREQ_MAX'],elarg=LISS_ENVELOP['ELARG'],tole_liss=LISS_ENVELOP['TOLE_LISS']) + para_fonc=__ff.l_fonc[0].para + l_fonc=[] + for val in sp_lisse.listTable : + l_fonc.append(t_fonction(sp_lisse.listFreq,val,para_fonc)) + __ex=t_nappe(vale_para=sp_lisse.listAmor,l_fonc=l_fonc,para=__ff.para) + + ### creation de la fonction produite par appel à DEFI_FONCTION + ### on récupère les paramètres issus du calcul de __ex + ### et on les surcharge par ceux imposés par l'utilisateur + + if isinstance(__ex,t_fonction) or isinstance(__ex,t_fonction_c): + para=__ex.para + if NOM_PARA !=None : para['NOM_PARA'] =NOM_PARA + if NOM_RESU !=None : para['NOM_RESU'] =NOM_RESU + if PROL_DROITE!=None : para['PROL_DROITE']=PROL_DROITE + if PROL_GAUCHE!=None : para['PROL_GAUCHE']=PROL_GAUCHE + if INTERPOL !=None : para['INTERPOL'] =INTERPOL + if isinstance(__ex,t_fonction_c): para['VALE_C'] = __ex.tabul() + elif isinstance(__ex,t_fonction) : para['VALE'] = __ex.tabul() + C_out=DEFI_FONCTION(**para) + elif isinstance(__ex,t_nappe): + def_fonc=[] + for f in __ex.l_fonc : + para=f.para + def_fonc.append(_F(VALE =f.tabul(), + INTERPOL =f.para['INTERPOL'], + PROL_DROITE=f.para['PROL_DROITE'], + PROL_GAUCHE=f.para['PROL_GAUCHE'],) + ) + para=__ex.para + if NOM_PARA !=None : para['NOM_PARA'] =NOM_PARA + if NOM_RESU !=None : para['NOM_RESU'] =NOM_RESU + if PROL_DROITE !=None : para['PROL_DROITE']=PROL_DROITE + if PROL_GAUCHE !=None : para['PROL_GAUCHE']=PROL_GAUCHE + if NOM_PARA_FONC !=None : para['NOM_PARA_FONC'] =INTERPOL + if INTERPOL_FONC !=None : para['INTERPOL'] =INTERPOL + C_out=DEFI_NAPPE(PARA=__ex.vale_para.tolist(),DEFI_FONCTION=def_fonc,**para) + if INFO > 1: + IMPR_FONCTION(FORMAT='TABLEAU', + UNITE=6, + COURBE=_F(FONCTION=C_out),) + return ier + diff --git a/Aster/Cata/cataSTA9/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA9/Macro/calc_precont_ops.py new file mode 100644 index 00000000..afe030a7 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/calc_precont_ops.py @@ -0,0 +1,473 @@ +#@ MODIF calc_precont_ops Macro DATE 10/10/2006 AUTEUR REZETTE C.REZETTE +# -*- 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. +# ====================================================================== + + +# RESPONSABLE ASSIRE A.ASSIRE + +def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT, + CABLE_BP,CABLE_BP_INACTIF, + COMP_INCR,ETAT_INIT,NEWTON,RECH_LINEAIRE, + CONVERGENCE,INCREMENT,SOLVEUR,SOLV_NON_LOCAL, + LAGR_NON_LOCAL,INFO,TITRE,**args): + + + """ + Ecriture de la macro CALC_PRECONT + """ + import copy + import aster + import string + import types + from Accas import _F + from Noyau.N_utils import AsType + from Utilitai.Utmess import UTMESS + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + AFFE_MODELE = self.get_cmd('AFFE_MODELE') + CREA_CHAMP = self.get_cmd('CREA_CHAMP') + 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') + CALC_NO = self.get_cmd('CALC_NO') + CREA_CHAMP = self.get_cmd('CREA_CHAMP') + DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') + RECU_TABLE = self.get_cmd('RECU_TABLE') + DEFI_MATERIAU = self.get_cmd('DEFI_MATERIAU') + AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type evol_noli) est nomme RES dans + # le contexte de la macro + + self.DeclareOut('RES',self.sd) + + # ------------------------------------------------------------- + # 1. CREATION DES MOTS-CLES ET CONCEPTS POUR LES STAT_NON_LINE + # ------------------------------------------------------------ + + + # 1.1 Recuperation de la liste d'instants, de l'instant initial et final + # Creation de la nouvelle liste d'instants + # ---------------------------------------------------------- + + dIncrement=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) + + __prec = dIncrement['PRECISION'] + __L0 = dIncrement['LIST_INST'] + __L1 = __L0.Valeurs() + + # Traitement de l'etat initial + if ETAT_INIT: + dEtatInit=ETAT_INIT[0].cree_dict_valeurs(ETAT_INIT[0].mc_liste) + for i in dEtatInit.keys(): + if dEtatInit[i]==None : del dEtatInit[i] + + __EVINIT = dEtatInit['EVOL_NOLI'] + else : + dEtatInit=None + + # Test de la presence de reuse= + if self.reuse == None: + dReuse=None + else : + dReuse='RES' + + # Teste si INST_INIT est donné ou bien recalcule __TMIN + if dIncrement['INST_INIT'] == None: + if self.reuse == None: + __TMIN = __L1[0] + else: + __dico = __EVINIT.LIST_VARI_ACCES() + __TMIN = __dico['INST'][-1] + else: + __TMIN = dIncrement['INST_INIT'] + + # Teste si INST_FIN est donné ou bien recalcule __TMAX + if dIncrement['INST_FIN'] == None: + __TMAX = __L1[-1] + else: + __TMAX = dIncrement['INST_FIN'] + + # Teste si INST_INIT est bien plus petit que INST_FIN + if __TMAX <= __TMIN: + UTMESS('F','CALC_PRECONT','INST_FIN PLUS PETIT QUE INST_INIT') + + # Cree la liste d'instant __L2 allant de __TMIN a __TMAX et contenant + # un instant supplementaire __TINT + __L2=[] + for m in __L1: + if m>=__TMIN and m<=__TMAX: + __L2.append(m) + + __TINT = (9.*__L2[-1] + __L2[-2])/10. + __L2[-1:-1] = [__TINT] + + # __LST0 est la liste d'instants utilisée pour l'etape 1 + __LST0=DEFI_LIST_REEL( DEBUT = __TMIN, + INTERVALLE = _F(JUSQU_A = __TMAX, NOMBRE = 1),) + + # __LST et __FCT sont utilisés pour les etapes 2 et 3 + __LST=DEFI_LIST_REEL(VALE=__L2,); + __FCT=DEFI_FONCTION(INTERPOL=('LIN','LIN'), + NOM_PARA='INST', + VALE=(__TMIN,0.0,__TINT,1.0,__TMAX,1.0),); + + for i in dIncrement.keys(): + if dIncrement[i]==None : del dIncrement[i] + dIncrement['LIST_INST']= __LST + dIncrement['INST_FIN'] = __TINT + + + + # 1.2 Recuperation des parametres pour STAT_NON_LINE + # ------------------------------------------------------- + + dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) + for i in dNewton.keys(): + if dNewton[i]==None : del dNewton[i] + + dConvergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) + for i in dConvergence.keys(): + if dConvergence[i]==None : del dConvergence[i] + + dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + for i in dSolveur.keys(): + if dSolveur[i]==None : del dSolveur[i] + + if RECH_LINEAIRE: + dRech_lin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) + for i in dRech_lin.keys(): + if dRech_lin[i]==None : del dRech_lin[i] + else : + dRech_lin=None + + if SOLV_NON_LOCAL: + dSolv_nonloc=SOLV_NON_LOCAL[0].cree_dict_valeurs(SOLV_NON_LOCAL[0].mc_liste) + for i in dSolv_nonloc.keys(): + if dSolv_nonloc[i]==None : del dSolv_nonloc[i] + else : + dSolv_nonloc=None + + if LAGR_NON_LOCAL: + dLagr_nonloc=LAGR_NON_LOCAL[0].cree_dict_valeurs(LAGR_NON_LOCAL[0].mc_liste) + for i in dLagr_nonloc.keys(): + if dLagr_nonloc[i]==None : del dLagr_nonloc[i] + else : + dLagr_nonloc=None + + + + # 1.3 Creation des mots-cles pour les 3 AFFE_CHAR_MECA + # Recuperation des cables dans les concepts CABLE_BP + # et CABLE_BP_INACTIF + # ------------------------------------------------------ + if type(CABLE_BP) is not types.NoneType: + if type(CABLE_BP) is not types.TupleType: + CABLE_BP0 = CABLE_BP + CABLE_BP = [] + CABLE_BP.append ( CABLE_BP0 ) + + if type(CABLE_BP_INACTIF) is not types.NoneType: + if type(CABLE_BP_INACTIF) is not types.TupleType: + CABLE_BP_INACTIF0 = CABLE_BP_INACTIF + CABLE_BP_INACTIF = [] + CABLE_BP_INACTIF.append ( CABLE_BP_INACTIF0 ) + + motscles={} + motscles['RELA_CINE_BP']=[] + motscle2={} + motscle2['RELA_CINE_BP']=[] + motscle3={} + motscle3['RELA_CINE_BP']=[] + __GROUP_MA_A=[] + Result = [[None]*1] + for mcabl in CABLE_BP: + # Creation de mots-cles pour les AFFE_CHAR_MECA + motscles['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, + SIGM_BPEL = 'OUI', + RELA_CINE = 'NON',) ) + motscle2['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, + SIGM_BPEL = 'NON', + RELA_CINE = 'OUI',) ) + motscle3['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, + SIGM_BPEL = 'OUI', + RELA_CINE = 'OUI',) ) + + # Creation de __GROUP_MA_A : liste des noms des cables contenus + # dans chaque concept CABLE_BP = cables a activer + __TCAB = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP'); + __nb = 0 + while 1: + try: + Result[__nb][0] = __TCAB['NOM_CABLE',__nb+1] + __CAB = __TCAB['NOM_CABLE',__nb+1] + if __nb == 0: + __GROUP_MA_A.append(__CAB) + else: + i = 0 + # enlève les doublons + for m in __GROUP_MA_A: + i=i+1 + if __CAB == m: + break + if i == len(__GROUP_MA_A): + __GROUP_MA_A.append(__CAB) + + __nb = __nb + 1 + Result.append([None]*1) + # Si on a lu toutes les valeurs alors on sort de la boucle + except KeyError: + break + + # Creation de __GROUP_MA_I : liste des noms des cables contenus + # dans chaque CABLE_BP_INACTIF + # __GROUP_MA_CABLE = liste des cables actifs et inactifs + Result = [[None]*1] + __GROUP_MA_I=[] + + if CABLE_BP_INACTIF: + for mcabl in CABLE_BP_INACTIF: + __TCA0 = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP'); + __nb = 0 + while 1: + try: + Result[__nb][0] = __TCA0['NOM_CABLE',__nb+1] + __CA0 = __TCA0['NOM_CABLE',__nb+1] + if __nb == 0: + __GROUP_MA_I.append(__CA0) + else: + i = 0 + # enlève les doublons + for m in __GROUP_MA_I: + i=i+1 + if __CA0 == m: + break + if i == len(__GROUP_MA_I): + __GROUP_MA_I.append(__CA0) + + __nb = __nb + 1 + Result.append([None]*1) + # Si on a lu toutes les valeurs alors on sort de la boucle + except KeyError: + break + motscle6={} + motscle6['RELA_CINE_BP']=[] + for mcabl in CABLE_BP_INACTIF: + # Creation de mots-cles pour les AFFE_CHAR_MECA + motscle6['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, + SIGM_BPEL = 'NON', + RELA_CINE = 'OUI',) ) + + __GROUP_MA_CABLES = __GROUP_MA_A + __GROUP_MA_I + + + # 1.4 Creation des mots-clés facteurs COMP_INCR + # pour étape 2 (dComp_incr0) et étape 3 (dComp_incr1) + # ------------------------------------------------------ + + dComp_incr=[] + for j in COMP_INCR : + dComp_incr.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dComp_incr[-1].keys(): + if dComp_incr[-1][i]==None : del dComp_incr[-1][i] + + PARM_THETA=0. + for j in range(len(COMP_INCR)) : + if dComp_incr[j]['RELATION'] == 'ELAS': + PARM_THETA=dComp_incr[j]['PARM_THETA'] + + if PARM_THETA == 0: + PARM_THETA=dComp_incr[0]['PARM_THETA'] + + dComp_incr0=copy.copy(dComp_incr) + dComp_incr1=copy.copy(dComp_incr) + + dComp_incr0.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_CABLES,) ) + if __GROUP_MA_I: + dComp_incr1.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_I,) ) + + + # 1.5 Modele contenant uniquement les cables de precontrainte + # --------------------------------------------------------- + + __MOD = string.ljust(MODELE.nom,8) + __MOD =__MOD+'.MODELE .NOMA ' + __LMAIL = aster.getvectjev(__MOD) + __MAIL = string.strip(__LMAIL[0]) + + objma=self.get_sd_avant_etape(__MAIL,self) + + __M_CA=AFFE_MODELE( MAILLAGE=objma, + AFFE =_F( GROUP_MA = __GROUP_MA_A, + PHENOMENE = 'MECANIQUE', + MODELISATION = 'BARRE') ) + + + # 1.6 Blocage de tous les noeuds des cables actifs + # -------------------------------------------------- + + _B_CA=AFFE_CHAR_MECA(MODELE=__M_CA, + DDL_IMPO= _F( GROUP_MA = __GROUP_MA_A, + DX = 0., + DY = 0., + DZ = 0.),) + + + # 1.7 Chargements concernant les cables + # ------------------------------------- + _C_CN=AFFE_CHAR_MECA(MODELE=__M_CA,**motscles) + _C_CA=AFFE_CHAR_MECA(MODELE=MODELE,**motscle2) + _C_CT=AFFE_CHAR_MECA(MODELE=MODELE,**motscle3) + if CABLE_BP_INACTIF: + _C_CI=AFFE_CHAR_MECA(MODELE=MODELE,**motscle6) + + + + # ------------------------------------------------------------- + # 2. CALCULS + # ------------------------------------------------------------ + + + #------------------------------------------------------------------- + # 2.1 Premiere etape : calcul sur le(s) cable(s) et + # recuperation des _F_CAs aux noeuds + # on travaile entre tmin et tmax + #------------------------------------------------------------------- + + __EV1=STAT_NON_LINE( + MODELE = __M_CA, + CHAM_MATER = CHAM_MATER, + CARA_ELEM = CARA_ELEM, + EXCIT =(_F(CHARGE = _B_CA), + _F(CHARGE = _C_CN),), + COMP_INCR =_F( RELATION = 'ELAS', + DEFORMATION = 'PETIT', + PARM_THETA = PARM_THETA, + TOUT = 'OUI'), + INCREMENT =_F(LIST_INST = __LST0, + PRECISION = __prec), + SOLVEUR = dSolveur, + INFO =INFO, + TITRE = TITRE, ) + + __EV1 = CALC_NO( reuse = __EV1, + RESULTAT = __EV1, + GROUP_MA = __GROUP_MA_A, + OPTION = 'FORC_NODA' ) + + __REA = CREA_CHAMP ( + TYPE_CHAM = 'NOEU_DEPL_R', + OPERATION = 'EXTR', + RESULTAT = __EV1, + NOM_CHAM = 'FORC_NODA', + INST = __TMAX); + + __REAC = CREA_CHAMP (TYPE_CHAM='NOEU_DEPL_R', + OPERATION = 'ASSE', + MODELE = MODELE, + ASSE= _F(GROUP_MA=__GROUP_MA_A, + CHAM_GD=__REA, + COEF_R = -1.), ) + + _F_CA=AFFE_CHAR_MECA(MODELE=__M_CA, + VECT_ASSE = __REAC ) + + + + #----------------------------------------------------------------------- + # 2.2 Deuxieme etape : application de la precontrainte sur le beton + # en desactivant les cables + #----------------------------------------------------------------------- + + # Regeneration des mots-cles EXCIT passés en argument de la macro + dExcit=[] + for j in 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] + + if CABLE_BP_INACTIF: + dExcit.append(_F(CHARGE=_C_CI),) + + # Creation du mots-cle EXCIT pour le STAT_NON_LINE + dExcit1=copy.copy(dExcit) + dExcit1.append(_F(CHARGE=_C_CA),) + dExcit1.append(_F(CHARGE = _F_CA, + FONC_MULT=__FCT ),) + + RES=STAT_NON_LINE( + MODELE =MODELE, + CARA_ELEM =CARA_ELEM, + CHAM_MATER = CHAM_MATER, + COMP_INCR=dComp_incr0, + INCREMENT=dIncrement, + ETAT_INIT = dEtatInit, + NEWTON =dNewton, + CONVERGENCE=dConvergence, + RECH_LINEAIRE = dRech_lin, + SOLVEUR = dSolveur, + SOLV_NON_LOCAL = dSolv_nonloc, + LAGR_NON_LOCAL = dLagr_nonloc, + ARCHIVAGE = _F(INST = __TINT), + INFO =INFO, + TITRE = TITRE, + EXCIT = dExcit1, + ) + + # Recuperation du dernier numero d'ordre pour pouvoir l'écraser dans RES + __dico2 = RES.LIST_VARI_ACCES() + __no = __dico2['NUME_ORDRE'][-1] + + + #----------------------------------------------------------------------- + # 2.2 Troisieme etape : on remet la tension dans les cables + #----------------------------------------------------------------------- + + # Creation du mots-cles EXCIT pour le STAT_NON_LINE + dExcit2=copy.copy(dExcit) + dExcit2.append(_F(CHARGE=_C_CT,) ) + + # Calcul sur un seul pas (de __TINT a __TMAX) + RES=STAT_NON_LINE( reuse = RES, + ETAT_INIT = _F(EVOL_NOLI =RES), + MODELE = MODELE, + CHAM_MATER = CHAM_MATER, + CARA_ELEM = CARA_ELEM, + COMP_INCR=dComp_incr1, + INCREMENT=_F(LIST_INST = __LST, + PRECISION = __prec), + NEWTON =dNewton, + RECH_LINEAIRE = dRech_lin, + CONVERGENCE=dConvergence, + SOLVEUR = dSolveur, + SOLV_NON_LOCAL = dSolv_nonloc, + LAGR_NON_LOCAL = dLagr_nonloc, + ARCHIVAGE = _F(NUME_INIT = __no, + DETR_NUME_SUIV = 'OUI' ), + INFO =INFO, + TITRE = TITRE, + EXCIT =dExcit2, + ) + + return ier + diff --git a/Aster/Cata/cataSTA9/Macro/calc_table_ops.py b/Aster/Cata/cataSTA9/Macro/calc_table_ops.py new file mode 100644 index 00000000..74201a01 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/calc_table_ops.py @@ -0,0 +1,167 @@ +#@ MODIF calc_table_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- 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. +# ====================================================================== + +# RESPONSABLE MCOURTOI M.COURTOIS +from types import * +EnumTypes = (ListType, TupleType) + +def calc_table_ops(self, TABLE, ACTION, INFO, **args): + """ + Macro CALC_TABLE permettant de faire des opérations sur une table + """ + import aster + + macro = 'CALC_TABLE' + from Accas import _F + from Cata.cata import table_sdaster, table_fonction, table_jeveux + from Utilitai.Utmess import UTMESS + from Utilitai import transpose + from Utilitai.Table import Table, merge + from Utilitai.Sensibilite import NomCompose + + ier = 0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type table_sdaster ou dérivé) est tabout + self.DeclareOut('tabout', self.sd) + if self.sd.__class__ == table_fonction: + typ_tabout = 'TABLE_FONCTION' + else: + typ_tabout = 'TABLE' + + # 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') + DETRUIRE = self.get_cmd('DETRUIRE') + + # 0. faut-il utiliser une table dérivée + form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)' + if args['SENSIBILITE']: + ncomp = NomCompose(TABLE, args['SENSIBILITE'], msg='F') + sdtab = table_jeveux(ncomp) + tab = sdtab.EXTR_TABLE() + else: + tab = TABLE.EXTR_TABLE() + + #---------------------------------------------- + # Boucle sur les actions à effectuer + for fOP in ACTION: + occ = fOP.cree_dict_valeurs(fOP.mc_liste) + for mc, val in occ.items(): + if val == None: + del occ[mc] + + #---------------------------------------------- + # 1. Traitement du FILTRE + # format pour l'impression des filtres + form_filtre = '\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s' + if occ['OPERATION'] == 'FILTRE': + col = getattr(tab, occ['NOM_PARA']) + # peu importe le type, c'est la meme méthode d'appel + opts = [occ[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if occ.has_key(k)] + kargs = {} + for k in ('CRITERE','PRECISION'): + if occ.has_key(k): + kargs[k] = occ[k] + tab = tab & ( getattr(col, occ['CRIT_COMP'])(*opts,**kargs) ) + # trace l'operation dans le titre + #if FORMAT in ('TABLEAU','ASTER'): + tab.titr += form_filtre % (occ['NOM_PARA'], occ['CRIT_COMP'], \ + ' '.join([str(v) for v in opts])) + + #---------------------------------------------- + # 2. Traitement de EXTR + if occ['OPERATION'] == 'EXTR': + lpar = occ['NOM_PARA'] + if not type(lpar) in EnumTypes: + lpar = [lpar] + for p in lpar: + if not p in tab.para: + UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom)) + tab = tab[occ['NOM_PARA']] + + #---------------------------------------------- + # 3. Traitement de RENOMME + if occ['OPERATION'] == 'RENOMME': + try: + tab.Renomme(*occ['NOM_PARA']) + except KeyError, msg: + UTMESS('F', macro, msg) + + #---------------------------------------------- + # 4. Traitement du TRI + if occ['OPERATION'] == 'TRI': + tab.sort(CLES=occ['NOM_PARA'], ORDRE=occ['ORDRE']) + + #---------------------------------------------- + # 5. Traitement de COMB + if occ['OPERATION'] == 'COMB': + tab2 = occ['TABLE'].EXTR_TABLE() + opts = [tab, tab2] + if occ.get('NOM_PARA') != None: + lpar = occ['NOM_PARA'] + if not type(lpar) in EnumTypes: + lpar = [lpar] + for p in lpar: + if not p in tab.para: + UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom)) + if not p in tab2.para: + UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, occ['TABLE'].nom)) + opts.append(lpar) + tab = merge(*opts) + + #---------------------------------------------- + # 6. Traitement de OPER + if occ['OPERATION'] == 'OPER': + # ajout de la colonne dans la table + tab.fromfunction(occ['NOM_PARA'], occ['FORMULE']) + if INFO == 2: + vectval = getattr(tab, occ['NOM_PARA']).values() + aster.affiche('MESSAGE', 'Ajout de la colonne %s : %s' % (occ['NOM_PARA']+repr(vectval))+'\n') + + #---------------------------------------------- + # 99. Création de la table_sdaster résultat + # cas réentrant : il faut détruire l'ancienne table_sdaster + if self.sd.nom == TABLE.nom: + DETRUIRE(CONCEPT=_F(NOM=TABLE.nom,), INFO=1) + + dprod = tab.dict_CREA_TABLE() + if INFO == 2: + echo_mess = [] + echo_mess.append( '@-'*30+'\n' ) + echo_mess.append( tab ) + from pprint import pformat + echo_mess.append( pformat(dprod) ) + echo_mess.append( '@-'*30+'\n' ) + texte_final = ' '.join(echo_mess) + aster.affiche('MESSAGE', texte_final) + + # surcharge par le titre fourni + tit = args['TITRE'] + if tit != None: + if not type(tit) in EnumTypes: + tit = [tit] + dprod['TITRE'] = tuple(['%-80s' % lig for lig in tit]) + # type de la table de sortie à passer à CREA_TABLE + tabout = CREA_TABLE(TYPE_TABLE=typ_tabout, + **dprod) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/creation_donnees_homard.py b/Aster/Cata/cataSTA9/Macro/creation_donnees_homard.py new file mode 100644 index 00000000..ed50681b --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/creation_donnees_homard.py @@ -0,0 +1,535 @@ +#@ MODIF creation_donnees_homard Macro DATE 30/10/2006 AUTEUR DURAND C.DURAND +# -*- 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. +# ====================================================================== +# RESPONSABLE MCOURTOI M.COURTOIS +""" +Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster. +""" +__revision__ = "V1.1" +__all__ = [ ] + +import os +import os.path + +try: + from Utilitai.Utmess import UTMESS +except ImportError: + def UTMESS(code, sprg, texte) : + """Clone de utmess si on ne reussit pas à le charger + """ + fmt = '\n <%s> <%s> %s\n\n' + print fmt % (code, sprg, texte) + +# ------------------------------------------------------------------------------ +class creation_donnees_homard: + """Cette classe crée les données permettant de lancer HOMARD depuis Code_Aster. + Ce sont : + . le fichier de configuration + . le fichier des données dans le cas d'information + + Arguments (stockés en tant qu'attribut) : + . nom_macro : nom de la macro-commande qui appelle : + 'MACR_ADAP_MAIL' pour une adaptation + 'MACR_INFO_MAIL' pour une information sur un maillage + . mots_cles : mots-clés de la macro-commande + . dico_configuration : dictionnaire des options + + Attributs : + . Nom_Fichier_Configuration : nom du fichier de configuration (immuable) + . Nom_Fichier_Donnees : nom du fichier de données (immuable) + . mode_homard : le mode pour filtrer ici ("ADAP" ou "INFO") + . ModeHOMA : le mode pour HOMARD (1 ou 2) + . mode_homard_texte : le mode d'utilisation, en francais ("ADAPTATION" ou "INFORMATION") + . elements_incompatibles : que faire des éléments incompatibles avec HOMARD + """ +# ------------------------------------------------------------------------------ + def __init__(self, nom_macro, mots_cles, dico_configuration ) : + """Construction + valeurs par défaut des attributs + """ +# +# 1. Vérification de la macro qui appelle +# + d_aux = {} + d_aux["MACR_ADAP_MAIL"] = ( "ADAP", 1, "ADAPTATION" ) + d_aux["MACR_INFO_MAIL"] = ( "INFO", 2, "INFORMATION" ) + if d_aux.has_key(nom_macro) : + self.mode_homard = d_aux[nom_macro][0] + self.ModeHOMA = d_aux[nom_macro][1] + self.mode_homard_texte = d_aux[nom_macro][2] + else : + UTMESS("F", nom_macro, "Cette macro commande est inconnue.") +# +# 2. Données générales de cette initialisation +# +#gn for mot_cle in mots_cles.keys() : +#gn print "mots_cles[", mot_cle, "] = ", mots_cles[mot_cle] +#gn for mot_cle in dico_configuration.keys() : +#gn print "dico_configuration[", mot_cle, "] = ", dico_configuration[mot_cle] +# + self.nom_macro = nom_macro + self.mots_cles = mots_cles + self.dico_configuration = dico_configuration +# +# 3. Quel type de traitement des elemenst incompatibles +# + if mots_cles.has_key("ELEMENTS_NON_HOMARD") : + d_aux = {} + d_aux["REFUSER"] = "TOUS" + d_aux["IGNORER"] = "IGNORE_QUAD" + self.elements_incompatibles = d_aux[mots_cles["ELEMENTS_NON_HOMARD"]] + else : + self.elements_incompatibles = None +# +# 4. Attributs immuables +# + self.Nom_Fichier_Configuration = "HOMARD.Configuration" + self.Nom_Fichier_Donnees = "HOMARD.Donnees" +# +# ------------------------------------------------------------------------------ + def int_to_str2 (self, entier) : + """ + Transforme un entier compris entre 0 et 99 en une chaine sur deux caractères + """ +# print "\nArguments a l'entree de", __name__, ":", entier +# + try: + la_chaine = '%02d' % entier + except TypeError: + la_chaine = None +# + return la_chaine +# ------------------------------------------------------------------------------ + def quel_mode (self) : + """Informe sur le mode de lancement de HOMARD + """ +### print self.mode_homard_texte + print "Lancement de creation_donnees_homard en mode", self.mode_homard_texte + return +# ------------------------------------------------------------------------------ + def creation_configuration (self) : + """Crée les données nécessaires à la configuration + """ +# + message_erreur = None +# + while message_erreur is None : +# +# 1. Les chaines liées aux numéros d'itération +# + if self.mode_homard == "ADAP" : + niter = self.dico_configuration["niter"] + self.str_niter = self.int_to_str2 (niter) + self.str_niterp1 = self.int_to_str2 (niter+1) + self.niter_vers_niterp1 = self.str_niter + ".vers." + self.str_niterp1 +# +# 2. La liste standard +# + if self.mode_homard == "INFO" : + aux = "Liste.info" + else : + aux = "Liste." + self.niter_vers_niterp1 + self.ListeStd = aux +# +# 3. Le type de bilan : il faut convertir la donnée textuelle en un entier, +# produit de nombres premiers. +# Si rien n'est demandé, on met 0. +# + aux = 1 + dico_aux = {} + dico_aux["INTERPENETRATION"] = 3 + dico_aux["NOMBRE"] = 7 + dico_aux["QUALITE"] = 5 + dico_aux["CONNEXITE"] = 11 + dico_aux["TAILLE"] = 13 + l_aux = dico_aux.keys() + for choix in l_aux : + if self.mots_cles.has_key(choix) : + if self.mots_cles[choix] == "OUI" : + aux = aux * dico_aux[choix] + if aux == 1 : + aux = 0 + self.TypeBila = aux +# +# 4. Les entrées/sorties au format MED +# + self.CCNoMN__ = self.dico_configuration["NOM_MED_MAILLAGE_N"] + if self.mode_homard == "ADAP" : + self.CCNoMNP1 = self.dico_configuration["NOM_MED_MAILLAGE_NP1"] + if self.dico_configuration.has_key("NOM_MED_MAILLAGE_NP1_ANNEXE") : + self.CCMaiAnn = self.dico_configuration["NOM_MED_MAILLAGE_NP1_ANNEXE"] + else : + self.CCMaiAnn = None +# +# 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" + else : + self.fic_homard_niter = None +# +# 6.1. Le pilotage de l'adaptation +# + if self.mode_homard == "ADAP" : +# +# 6.1. Le type d'adaptation +# + if self.mots_cles["ADAPTATION"] == "RAFFINEMENT" or self.mots_cles["ADAPTATION"] == "RAFFINEMENT_ZONE" : + self.TypeRaff = "libre" + self.TypeDera = "non" + elif self.mots_cles["ADAPTATION"] == "DERAFFINEMENT" : + self.TypeRaff = "non" + self.TypeDera = "libre" + elif self.mots_cles["ADAPTATION"] == "RAFF_DERA" : + self.TypeRaff = "libre" + self.TypeDera = "libre" + elif self.mots_cles["ADAPTATION"] == "RAFFINEMENT_UNIFORME" : + self.TypeRaff = "uniforme" + self.TypeDera = "non" + elif self.mots_cles["ADAPTATION"] == "DERAFFINEMENT_UNIFORME" : + self.TypeRaff = "non" + self.TypeDera = "uniforme" + elif self.mots_cles["ADAPTATION"] == "RIEN" : + self.TypeRaff = "non" + self.TypeDera = "non" +#gn print "... self.TypeRaff = ",self.TypeRaff +#gn print "... self.TypeDera = ",self.TypeDera +# +# 6.2. L'éventuel seuil de raffinement +# + if self.TypeRaff == "libre" and self.mots_cles["ADAPTATION"] != "RAFFINEMENT_ZONE" : + d_aux = {} + d_aux["CRIT_RAFF_ABS"] = ("SeuilHau", 1) + d_aux["CRIT_RAFF_REL"] = ("SeuilHRe", 100) + d_aux["CRIT_RAFF_PE" ] = ("SeuilHPE", 100) + l_aux = d_aux.keys() + for mot_cle in l_aux : + if self.mots_cles[mot_cle] is not None : + aux = self.mots_cles[mot_cle]*d_aux[mot_cle][1] + self.critere_raffinement = (d_aux[mot_cle][0], aux) + else : + self.critere_raffinement = None +#gn print "... self.critere_raffinement = ", self.critere_raffinement +# +# 6.3. L'éventuel seuil de déraffinement +# + if self.TypeDera == "libre" : + d_aux = {} + d_aux["CRIT_DERA_ABS"] = ("SeuilBas", 1) + d_aux["CRIT_DERA_REL"] = ("SeuilBRe", 100) + d_aux["CRIT_DERA_PE" ] = ("SeuilBPE", 100) + l_aux = d_aux.keys() + for mot_cle in l_aux : + if self.mots_cles[mot_cle] is not None : + aux = self.mots_cles[mot_cle]*d_aux[mot_cle][1] + self.critere_deraffinement = (d_aux[mot_cle][0], aux) + else : + self.critere_deraffinement = None +#gn print "... self.critere_deraffinement = ", self.critere_deraffinement +# +# 6.4. Les niveaux extremes +# + self.niveau = [] + for mot_cle in [ "NIVE_MIN", "NIVE_MAX" ] : + if self.mots_cles.has_key(mot_cle) : + if self.mots_cles[mot_cle] is not None : + if mot_cle == "NIVE_MIN" : + aux = "NiveauMi" + else : + aux = "NiveauMa" + self.niveau.append((aux, self.mots_cles[mot_cle])) + if len(self.niveau) == 2 : +#gn print self.mots_cles["NIVE_MIN"] +#gn print self.mots_cles["NIVE_MAX"] + if self.mots_cles["NIVE_MIN"] >= self.mots_cles["NIVE_MAX"] : + message_erreur = "Le niveau mini ,"+str(self.mots_cles["NIVE_MIN"])+\ + ", doit etre < au niveau maxi, "+str(self.mots_cles["NIVE_MAX"])+"." + break +# +# 6.5. Les éventuelles zones de raffinement +# + if self.dico_configuration.has_key("Zones") : + iaux = 0 + for zone in self.dico_configuration["Zones"] : + iaux = iaux + 1 + s_aux_1 = "Zone numero "+str(iaux)+" : " + s_aux_2 = ", doit etre < au " + if zone.has_key("X_MINI") : + if zone["X_MINI"] > zone["X_MAXI"] : + message_erreur = s_aux_1+"X mini ,"+str(zone["X_MINI"])+s_aux_2+"X maxi, "+str(zone["X_MAXI"])+"." + if zone["Y_MINI"] > zone["Y_MAXI"] : + message_erreur = s_aux_1+"Y mini ,"+str(zone["Y_MINI"])+s_aux_2+"Y maxi, "+str(zone["Y_MAXI"])+"." + if zone.has_key("Z_MINI") : + if zone["Z_MINI"] > zone["Z_MAXI"] : + message_erreur = s_aux_1+"Z mini ,"+str(zone["Z_MINI"])+s_aux_2+"Z maxi, "+str(zone["Z_MAXI"])+"." +# + break +# + if message_erreur is not None : + UTMESS("F", self.nom_macro, message_erreur) +# + return self.fic_homard_niter +# ------------------------------------------------------------------------------ + def ouvre_fichier (self, nomfic_local) : + """Ouvre en écriture un fichier après l'avoir éventuellement détruit + """ + codret_partiel = [0] +### print nomfic_local + Rep_Calc_HOMARD_global = self.dico_configuration["Rep_Calc_HOMARD_global"] + nomfic = os.path.join ( Rep_Calc_HOMARD_global , nomfic_local ) +# + if os.path.isfile (nomfic) : + try : + os.remove (nomfic) + except os.error, codret_partiel : + print "Probleme au remove, erreur numéro ", codret_partiel[0], ":", codret_partiel[1] + UTMESS("F", self.nom_macro, "Impossible de tuer le fichier "+nomfic) +# + fichier = open (nomfic,"w") + self.fichier = fichier +# + return fichier, nomfic +# ------------------------------------------------------------------------------ + def ecrire_ligne_configuration_0 (self, commentaire) : + """Ecrit une ligne de commentaires du fichier de configuration + Arguments : + . commentaire : le commentaire à écrire + """ +# + ligne = "#\n" + ligne = ligne + "# " + commentaire + "\n" + ligne = ligne + "#\n" + self.fichier.write(ligne) +# + return +# ------------------------------------------------------------------------------ + def ecrire_ligne_configuration_2 (self, motcle, valeur) : + """Ecrit une ligne du fichier de configuration dans le cas : motcle + valeur + Arguments : + . motcle : le mot-clé HOMARD à écrire + . valeur : la valeur associée + """ +# + ligne = motcle + " " + str(valeur) + "\n" + self.fichier.write(ligne) +# + return +# ------------------------------------------------------------------------------ + def ecrire_ligne_configuration_3 (self, motcle, valeur1, valeur2) : + """Ecrit une ligne du fichier de configuration dans le cas : motcle + valeur1 + valeur2 + Arguments : + . motcle : le mot-clé HOMARD à écrire + . valeur : la valeur associée + """ +# + ligne = motcle + " " + str(valeur1) + " " + str(valeur2) + "\n" + self.fichier.write(ligne) +# + return +# ------------------------------------------------------------------------------ + def ecrire_fichier_configuration (self) : + """Ecrit le fichier de configuration + """ + message_erreur = None +# + while message_erreur is None : +# +# 1. Ouverture du fichier +# + fichier, nomfic_global = self.ouvre_fichier(self.Nom_Fichier_Configuration) +# +# 2. Généralités +# + self.ecrire_ligne_configuration_0("Generalites") + self.ecrire_ligne_configuration_2("ModeHOMA", self.ModeHOMA) + self.ecrire_ligne_configuration_2("ListeStd", self.ListeStd) + self.ecrire_ligne_configuration_2("TypeBila", self.TypeBila) + self.ecrire_ligne_configuration_2("CCAssoci", "MED") + self.ecrire_ligne_configuration_2("NumeIter", self.dico_configuration["niter"]) +# +# 3. Les fichiers externes +# + self.ecrire_ligne_configuration_0("Les fichiers 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" : + self.ecrire_ligne_configuration_2("CCNoMNP1", self.CCNoMNP1) + self.ecrire_ligne_configuration_2("CCMaiNP1", self.dico_configuration["Fichier_HOMARD_vers_ASTER"]) +# + self.ecrire_ligne_configuration_0("Le répertoire des fichiers de bilan") + self.ecrire_ligne_configuration_2("RepeInfo", self.dico_configuration["Rep_Calc_HOMARD_global"]) +# +# 4. Les fichiers HOMARD +# + self.ecrire_ligne_configuration_0("Les fichiers au format HOMARD") + 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) + aux = "oui" + else : + aux = "non" + self.ecrire_ligne_configuration_2("EcriFiHO", aux) +# +# 5. Le pilotage de l'adaptation +# + if self.mode_homard == "ADAP" : + self.ecrire_ligne_configuration_0("Le pilotage de l'adaptation") +# +# 5.1. Type d'adaptation +# + self.ecrire_ligne_configuration_2("TypeRaff", self.TypeRaff) + if self.critere_raffinement is not None : + self.ecrire_ligne_configuration_2(self.critere_raffinement[0], self.critere_raffinement[1]) + self.ecrire_ligne_configuration_2("TypeDera", self.TypeDera) + if self.critere_deraffinement is not None : + self.ecrire_ligne_configuration_2(self.critere_deraffinement[0], self.critere_deraffinement[1]) +# +# 5.2. L'eventuel indicateur d'erreur +# + if self.dico_configuration.has_key("Indicateur") : +# + self.ecrire_ligne_configuration_0("L'indicateur d'erreur") + self.ecrire_ligne_configuration_2("CCIndica", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) + self.ecrire_ligne_configuration_2("CCNoChaI", self.dico_configuration["Indicateur"]["NOM_MED"]) + self.ecrire_ligne_configuration_2("CCCoChaI", self.dico_configuration["Indicateur"]["COMPOSANTE"]) + if self.dico_configuration["Indicateur"].has_key("NUME_ORDRE") : + self.ecrire_ligne_configuration_2("CCNumOrI", self.dico_configuration["Indicateur"]["NUME_ORDRE"]) + self.ecrire_ligne_configuration_2("CCNumPTI", self.dico_configuration["Indicateur"]["NUME_ORDRE"]) + if self.mots_cles.has_key("TYPE_VALEUR_INDICA") : + self.ecrire_ligne_configuration_2("CCTyVaIn", self.mots_cles["TYPE_VALEUR_INDICA"]) +# +# 5.3. Les éventuelles zones de raffinement +# + if self.dico_configuration.has_key("Zones") : + iaux = 0 + for zone in self.dico_configuration["Zones"] : + iaux = iaux + 1 + self.ecrire_ligne_configuration_0("Zone de raffinement numéro "+str(iaux)) + if zone.has_key("X_MINI") : + self.ecrire_ligne_configuration_3("ZoRaXmin", iaux, zone["X_MINI"]) + self.ecrire_ligne_configuration_3("ZoRaXmax", iaux, zone["X_MAXI"]) + self.ecrire_ligne_configuration_3("ZoRaYmin", iaux, zone["Y_MINI"]) + self.ecrire_ligne_configuration_3("ZoRaYmax", iaux, zone["Y_MAXI"]) + if zone.has_key("Z_MINI") : + self.ecrire_ligne_configuration_3("ZoRaZmin", iaux, zone["Z_MINI"]) + self.ecrire_ligne_configuration_3("ZoRaZmax", iaux, zone["Z_MAXI"]) + if zone.has_key("X_CENTRE") : + self.ecrire_ligne_configuration_3("ZoRaXCen", iaux, zone["X_CENTRE"]) + self.ecrire_ligne_configuration_3("ZoRaYCen", iaux, zone["Y_CENTRE"]) + self.ecrire_ligne_configuration_3("ZoRaRayo", iaux, zone["RAYON"]) + if zone.has_key("Z_CENTRE") : + self.ecrire_ligne_configuration_3("ZoRaZCen", iaux, zone["Z_CENTRE"]) +# +# 5.4. Les niveaux extremes +# + for aux in self.niveau : + self.ecrire_ligne_configuration_2(aux[0], aux[1]) +# +# 6. Les éventuels champs à mettre à jour +# + if self.dico_configuration.has_key("Champs") : + self.ecrire_ligne_configuration_0("Champs à mettre à jour") + self.ecrire_ligne_configuration_2("CCSolN__", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) + self.ecrire_ligne_configuration_2("CCSolNP1", self.dico_configuration["Fichier_HOMARD_vers_ASTER"]) + iaux = 0 + for maj_champ in self.dico_configuration["Champs"] : + iaux = iaux + 1 + self.ecrire_ligne_configuration_0("Mise à jour du champ numéro "+str(iaux)) + self.ecrire_ligne_configuration_3("CCChaNom", iaux, maj_champ["NOM_MED"]) + if maj_champ.has_key("NUME_ORDRE") : + self.ecrire_ligne_configuration_3("CCChaNuO", iaux, maj_champ["NUME_ORDRE"]) + self.ecrire_ligne_configuration_3("CCChaPdT", iaux, maj_champ["NUME_ORDRE"]) + elif maj_champ.has_key("INST") : + self.ecrire_ligne_configuration_3("CCChaIns", iaux, maj_champ["INST"]) +# +# 7. L'éventuel maillage de frontière +# + if self.dico_configuration.has_key("NOM_MED_MAILLAGE_FRONTIERE") : + self.ecrire_ligne_configuration_0("Maillage de frontière") + self.ecrire_ligne_configuration_2("SuivFron", "oui") + self.ecrire_ligne_configuration_2("CCFronti", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) + self.ecrire_ligne_configuration_2("CCNoMFro", self.dico_configuration["NOM_MED_MAILLAGE_FRONTIERE"]) + if self.mots_cles.has_key("GROUP_MA") : + if self.mots_cles["GROUP_MA"] is not None : + for group_ma in self.mots_cles["GROUP_MA"] : + self.ecrire_ligne_configuration_2("CCGroFro", group_ma) +# +# 8. L'éventuel maillage annexe +# + if self.mode_homard == "ADAP" : + if self.CCMaiAnn is not None : + self.ecrire_ligne_configuration_0("Maillage d'autre degré") + self.ecrire_ligne_configuration_2("ModDegre", "oui") + self.ecrire_ligne_configuration_2("CCNoMAnn", self.CCMaiAnn) + self.ecrire_ligne_configuration_2("CCMaiAnn", self.dico_configuration["Fichier_HOMARD_vers_ASTER"]) +# +# 9. Options particulières +# + self.ecrire_ligne_configuration_0("Autres options") + if self.mots_cles.has_key("LANGUE") : + self.ecrire_ligne_configuration_2("Langue", self.mots_cles["LANGUE"]) + self.ecrire_ligne_configuration_2("MessInfo", self.dico_configuration["INFO"]) + if self.dico_configuration["version_perso"] : + VERSION_HOMARD = self.dico_configuration["VERSION_HOMARD"] + self.ecrire_ligne_configuration_2("DicoOSGM", "$HOMARD_USER/"+VERSION_HOMARD+"/CONFIG/typobj.stu") +# +# 10. L'usage des éléments incompatibles avec HOMARD +# + if self.elements_incompatibles is not None : + self.ecrire_ligne_configuration_0("Les éléments incompatibles avec HOMARD") + self.ecrire_ligne_configuration_2("TypeElem", self.elements_incompatibles) +# +# 11. Fermeture du fichier +# + fichier.close() + break +# + if message_erreur is not None : + message_erreur = "Ecriture de "+nomfic_global+". "+message_erreur + UTMESS("F", self.nom_macro, message_erreur) +# + return +# ------------------------------------------------------------------------------ + def ecrire_fichier_donnees (self) : + """Ecrit le fichier des donnees dans le cas d'une demande d'information + """ + message_erreur = None +# + while message_erreur is None : +# +# 1. Ouverture du fichier +# + fichier, nomfic_global = self.ouvre_fichier(self.Nom_Fichier_Donnees) +# +# 2. On ne demande rien pour le moment +# + fichier.write("0\n") + fichier.write("0\n") + fichier.write("0\n") + fichier.write("q\n") +# +# n. Fermeture du fichier +# + fichier.close() + break +# + if message_erreur is not None : + UTMESS("F", self.nom_macro, message_erreur) +# + return nomfic_global diff --git a/Aster/Cata/cataSTA9/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA9/Macro/defi_cable_bp_ops.py new file mode 100644 index 00000000..3a30ca3d --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/defi_cable_bp_ops.py @@ -0,0 +1,306 @@ +#@ MODIF defi_cable_bp_ops Macro DATE 26/03/2007 AUTEUR ASSIRE A.ASSIRE +# -*- 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. +# ====================================================================== +# RESPONSABLE ASSIRE A.ASSIRE + +# =========================================================================== +# CORPS DE LA MACRO "DEFI_CABLE_BP" +# ------------------------------------- +# USAGE : +# Entrée : +# - MODELE +# - CABLE +# - CHAM_MATER +# - CARA_ELEM +# - GROUP_MA_BETON +# - DEFI_CABLE +# - TYPE_ANCRAGE +# - TENSION_INIT +# - RECUL_ANCRAGE +# - RELAXATION +# - CONE +# RAYON +# LONGUEUR +# PRESENT OUI ou NON deux fois +# - TITRE +# - INFO 1 / 2 +# +# =========================================================================== + + + +def defi_cable_bp_ops(self,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, + DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE, + RELAXATION,CONE,TITRE,INFO,**args): + + """ + Ecriture de la macro DEFI_CABLE_BP + """ + from Accas import _F + import aster,string, types + from Utilitai.Utmess import UTMESS + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + DEFI_GROUP = self.get_cmd('DEFI_GROUP') + IMPR_RESU = self.get_cmd('IMPR_RESU') + DEFI_CABLE_OP = self.get_cmd('DEFI_CABLE_OP') + RECU_TABLE = self.get_cmd('RECU_TABLE') + IMPR_TABLE = self.get_cmd('IMPR_TABLE') + IMPR_CO = self.get_cmd('IMPR_CO') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type char_meca) est nomme CHCABLE dans + # le contexte de la macro + + self.DeclareOut('__DC',self.sd) + + # ---------------------------------------------------------------------------- # + # Début de la Macro : + + motscles={} + + # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE" + + if CONE: + dCONE=CONE[0].cree_dict_valeurs(CONE[0].mc_liste) + for i in dCONE.keys(): + if dCONE[i]==None : del dCONE[i] + + RAYON = dCONE['RAYON'] + LONGUEUR = dCONE['LONGUEUR'] + + motscles['CONE']=[] + motscles['CONE'].append( dCONE ) + + # RECUPERATION DU MAILLAGE A PARTIR DU MODELE + __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) + __MAIL= __MAIL[0].strip() + MAILLAGE = self.get_sd_avant_etape(__MAIL,self) + + # DEFINITION DU NOM DES GROUP_NO + __NOM = 'AN__' + __LGNO = MAILLAGE.LIST_GROUP_NO() + __LGN1 = [] + for i in __LGNO : + __LGN1.append( i[0][:len(__NOM)] ) + + __NB = __LGN1.count(__NOM) + +# FIN RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE" + + + # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "DEFI_CABLE" + + dDEFI_CABLE=[] + for j in DEFI_CABLE : + dDEFI_CABLE.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dDEFI_CABLE[-1].keys(): + if dDEFI_CABLE[-1][i]==None : del dDEFI_CABLE[-1][i] + + + # BOUCLE SUR LES FACTEURS DU MOT-CLE "DEFI_CABLE" + + motscles['DEFI_CABLE']=[] + + for i in dDEFI_CABLE: + + # CAS OU L'ON A DEFINI LE MOT-CLE "CONE" + if CONE: + + # CREATION DU PREMIER TUNNEL + + if dCONE['PRESENT'][0] == 'OUI': + __NB = __NB + 1 + __NOM1 = __NOM + str( int(__NB) ) + + motscle2={} + motscle2['CREA_GROUP_NO']=[] + + if i.has_key('GROUP_MA') == 1: + __CAB = i['GROUP_MA'] + + if type(GROUP_MA_BETON) in [types.TupleType, types.ListType]: gma = list(GROUP_MA_BETON) + else: gma = [ GROUP_MA_BETON ] + gma.insert(0, __CAB) + + motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': gma, 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]} + if i.has_key('MAILLE') == 1: + echo_mess=[] + echo_mess.append( ' \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + message=string.join(echo_mess) + UTMESS('F',message) + if i.has_key('GROUP_NO_ANCRAGE') == 1: + __PC1 = i['GROUP_NO_ANCRAGE'][0] + motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 + if i.has_key('NOEUD_ANCRAGE') == 1: + __PC1 = i['NOEUD_ANCRAGE'][0] + motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1 + + DEFI_GROUP( reuse=MAILLAGE, + MAILLAGE=MAILLAGE, + INFO=INFO, + ALARME='NON', + **motscle2 + ) ; + + # CREATION DU DEUXIEME TUNNEL + + if dCONE['PRESENT'][1] == 'OUI': + __NB = __NB + 1 + __NOM2 = __NOM + str( int(__NB) ) + + motscle2={} + motscle2['CREA_GROUP_NO']=[] + + if i.has_key('GROUP_MA') == 1: + __CAB = i['GROUP_MA'] + + if type(GROUP_MA_BETON) in [types.TupleType, types.ListType]: gma = list(GROUP_MA_BETON) + else: gma = [ GROUP_MA_BETON ] + gma.insert(0, __CAB) + + motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': gma, 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]} + if i.has_key('MAILLE') == 1: + echo_mess=[] + echo_mess.append( ' \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' ) + echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) + message=string.join(echo_mess) + UTMESS('F',message) + if i.has_key('GROUP_NO_ANCRAGE') == 1: + __PC1 = i['GROUP_NO_ANCRAGE'][1] + motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 + if i.has_key('NOEUD_ANCRAGE') == 1: + __PC1 = i['NOEUD_ANCRAGE'][1] + motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1 + + DEFI_GROUP( reuse=MAILLAGE, + MAILLAGE=MAILLAGE, + INFO=INFO, + ALARME='NON', + **motscle2 + ) ; + + + # CREATION DES NOUVEAUX FACTEURS DU MOT-CLE "DEFI_CABLE" POUR DEFI_CABLE_BP + + if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'OUI': + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], + GROUP_NO_FUT=( __NOM1,__NOM2, ), ), ) + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], + GROUP_NO_FUT=( __NOM1,__NOM2, ), ), ) + + if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'NON': + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], + GROUP_NO_FUT=( __NOM1, ), ), ) + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], + GROUP_NO_FUT=( __NOM1, ), ), ) + + if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'OUI': + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], + GROUP_NO_FUT=( __NOM2, ), ), ) + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], + GROUP_NO_FUT=( __NOM2, ), ), ) + + if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'NON': + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) + + + # CAS OU L'ON A PAS DEFINI LE MOT-CLE "CONE" + else: + if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) + + if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) + + if i.has_key('MAILLE') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'], + GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) + + if i.has_key('MAILLE') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: + motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'], + NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) + + +# FIN BOUCLE sur i in DEFI_CABLE + + + # LANCEMENT DE DEFI_CABLE_BP + + if RELAXATION: + dRelaxation=RELAXATION[0].cree_dict_valeurs(RELAXATION[0].mc_liste) + for i in dRelaxation.keys(): + if dRelaxation[i]==None : del dRelaxation[i] + + __DC=DEFI_CABLE_OP(MODELE=MODELE, + CHAM_MATER=CHAM_MATER, + CARA_ELEM=CARA_ELEM, + GROUP_MA_BETON=GROUP_MA_BETON, + TYPE_ANCRAGE=TYPE_ANCRAGE, + TENSION_INIT=TENSION_INIT, + RECUL_ANCRAGE=RECUL_ANCRAGE, + RELAXATION=dRelaxation, + INFO=INFO, + **motscles + ); + + else: + + __DC=DEFI_CABLE_OP(MODELE=MODELE, + CHAM_MATER=CHAM_MATER, + CARA_ELEM=CARA_ELEM, + GROUP_MA_BETON=GROUP_MA_BETON, + TYPE_ANCRAGE=TYPE_ANCRAGE, + TENSION_INIT=TENSION_INIT, + RECUL_ANCRAGE=RECUL_ANCRAGE, + INFO=INFO, + **motscles + ); + +# __TCAB = RECU_TABLE(CO=__DC,NOM_TABLE='CABLE_BP'); +# IMPR_TABLE(TABLE=__TCAB); + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/defi_inte_spec_ops.py b/Aster/Cata/cataSTA9/Macro/defi_inte_spec_ops.py new file mode 100644 index 00000000..63a04aec --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/defi_inte_spec_ops.py @@ -0,0 +1,153 @@ +#@ MODIF defi_inte_spec_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- 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. +# ====================================================================== + +def tocomplex(arg): + if arg[0]=='RI' : return complex(arg[1],arg[2]) + if arg[0]=='MP' : return complex(arg[1]*cos(arg[2]),arg[1]*sin(arg[2])) + +def defi_inte_spec_ops(self,DIMENSION,PAR_FONCTION,KANAI_TAJIMI, + CONSTANT,TITRE,INFO,**args): +# ------------------------------------------------------------------ +# Définition d'une matrice interspectrale +# à partir de fonctions complexes + + import aster + from types import ListType, TupleType + EnumTypes = (ListType, TupleType) + from Accas import _F + from Utilitai.Utmess import UTMESS + import Numeric + + commande='DEFI_INTE_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 dérivé) 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') + +#--- Vérifications + + if PAR_FONCTION==None : PAR_FONCTION=[] + if KANAI_TAJIMI==None : KANAI_TAJIMI=[] + if CONSTANT ==None : CONSTANT =[] + + nfntot = len(PAR_FONCTION)+len(KANAI_TAJIMI)+len(CONSTANT) + dimh = (DIMENSION*(DIMENSION+1))/2 + if dimh!=nfntot : + txt = "nombre de fonctions erroné pour une matrice hermitienne" + UTMESS('F',commande, txt) + + l_f=[] + for occ in PAR_FONCTION : l_f.append(('PAR_FONCTION',occ)) + for occ in KANAI_TAJIMI : l_f.append(('KANAI_TAJIMI',occ)) + for occ in CONSTANT : l_f.append(('CONSTANT' ,occ)) + for occ in l_f : + if occ[0]!='PAR_FONCTION' and occ[1]['FREQ_MAX'] 7 ): + ln=7-len(str(NB_PART)) + UTMESS('F', nompro, 'Afin de pouvoir générer les GROUP_MA, réduisez le nombre '\ + 'de caractères de NOM_GROUP_MA à un maximum de : %i' %ln) + + # Verification que des GROUP_MA ne portent pas deja les memes noms + _lst = [] + for i in MAILLAGE.LIST_GROUP_MA(): + _lst.append( string.strip(i[0]) ) + for i in range(NB_PART): + if ( NOM_GROUP_MA+str(i) in _lst ): + ngrma=NOM_GROUP_MA+str(i) + UTMESS('F', nompro, "Il existe déjà un GROUP_MA nommé : %s" %ngrma) + if args.has_key('NOM_GROUP_MA_BORD') : + if args['NOM_GROUP_MA_BORD'] != None : + if ( args['NOM_GROUP_MA_BORD']+str(i) in _lst ): + ngrma=args['NOM_GROUP_MA_BORD']+str(i) + UTMESS('F', nompro, "Il existe déjà un GROUP_MA nommé : %s" %ngrma) + + # Le concept sortant dans le contexte de la macro + self.DeclareOut('_SDFETI',self.sd) + + # Debut : + + # Regeneration des mots-cles GROUPAGE passés en argument de la macro + motscle1= {} + if args.has_key('GROUPAGE'): + if args['GROUPAGE'] != None : + dGroup=[] + for j in args['GROUPAGE']: + dGroup.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dGroup[-1].keys(): + if dGroup[-1][i]==None : del dGroup[-1][i] + motscle1['GROUPAGE']=dGroup + + # Regeneration des mots-cles POIDS_MAILLES passés en argument de la macro + if args.has_key('POIDS_MAILLES'): + if args['POIDS_MAILLES'] != None : + dEval=[] + for j in args['POIDS_MAILLES']: + dEval.append(j.cree_dict_valeurs(j.mc_liste)) + for i in dEval[-1].keys(): + if dEval[-1][i]==None : del dEval[-1][i] + motscle1['POIDS_MAILLES']=dEval + + # Y a t'il présence du mot clé : NOM_GROUP_MA_BORD + if args.has_key('GROUP_MA_BORD'): + if args['GROUP_MA_BORD'] != None : + motscle1['GROUP_MA_BORD']=args['GROUP_MA_BORD'] + + # Y a t'il présence du mot clé : LOGICIEL + if args.has_key('LOGICIEL'): + if args['LOGICIEL'] != None : + motscle1['LOGICIEL']=args['LOGICIEL'] + + # Y a t'il présence du mot clé : MODELE + if args.has_key('MODELE'): + if args['MODELE'] != None : + motscle1['MODELE']=args['MODELE'] + + # Partitionnement + DEFI_PART_PA_OPS( + MAILLAGE=MAILLAGE, + INFO=INFO, + METHODE=METHODE, + NB_PART=NB_PART, + CORRECTION_CONNEX=CORRECTION_CONNEX, + TRAITER_BORDS=TRAITER_BORDS, + NOM_GROUP_MA=NOM_GROUP_MA, + **motscle1 + ); + + # Liste des groupes de mailles du maillage + _LST_GMA = MAILLAGE.LIST_GROUP_MA() + _LST_GMA = map(lambda x: x[0], _LST_GMA) + + # Creation de la SDFETI + if args.has_key('MODELE'): + if args['MODELE'] != None : + _tmp = [] + for i in range(NB_PART): + txt = { 'GROUP_MA': NOM_GROUP_MA + str(i) } + _tmp.append( txt ) + + if args.has_key('NOM_GROUP_MA_BORD') : + if args['NOM_GROUP_MA_BORD'] != None : + if ( args['NOM_GROUP_MA_BORD']+str(i) in _LST_GMA ): + txt['GROUP_MA_BORD'] = string.strip(args['NOM_GROUP_MA_BORD']) + str(i) + _tmp.append( txt ) + + motscle2= {'DEFI': _tmp } + + # Regeneration des mots-cles EXCIT passés en argument de la macro + if args.has_key('EXCIT'): + if args['EXCIT'] != None : + dExcit=[] + for j in args['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] + motscle2['EXCIT']=dExcit + + _SDFETI=DEFI_PART_OPS(NOM='SDD', + MODELE=args['MODELE'], + INFO=1, + **motscle2 + ); + else: + _SDFETI=None + + else: + _SDFETI=None + + + # Fin : + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/exec_logiciel_ops.py b/Aster/Cata/cataSTA9/Macro/exec_logiciel_ops.py new file mode 100644 index 00000000..cf768078 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/exec_logiciel_ops.py @@ -0,0 +1,184 @@ +#@ MODIF exec_logiciel_ops Macro DATE 29/08/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- 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. +# ====================================================================== + +import os.path +import traceback +import shutil +from types import ListType, TupleType +EnumTypes = (ListType, TupleType) + +# ------------------------------------------------------------------------------ +def exec_logiciel_ops(self, LOGICIEL, ARGUMENT, MAILLAGE, CODE_RETOUR_MAXI, INFO, **args): + """ + Macro IMPR_FONCTION permettant d'imprimer dans un fichier des fonctions, + colonnes de table... + Erreurs dans IMPR_FONCTION pour ne pas perdre la base. + """ + macro='EXEC_LOGICIEL' + import aster + from Utilitai.Utmess import UTMESS + from Utilitai.System import ExecCommand + from Utilitai.UniteAster import UniteAster + + PRE_GMSH = self.get_cmd("PRE_GMSH") + PRE_GIBI = self.get_cmd("PRE_GIBI") + LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE") + + ier=0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + #---------------------------------------------- + # constantes des modes d'exécution + CMD_EXTERNE = 1 + EXECFILE = 2 + mode_lancement = None + + # paramètres nécessaires pour écrire la ligne de commande + # !! d_para['options'] est une liste !! + d_para = {'prog' : '', 'options' : ''} + + l_args = [] + if ARGUMENT != None: + l_args = ARGUMENT[:] + if type(l_args) not in EnumTypes: + l_args = [l_args,] + + #---------------------------------------------- + # 1. Préparation des données + # 1.1. EXEC_LOGICIEL standard + if MAILLAGE == None: + mode_lancement = CMD_EXTERNE + cmd = '%(prog)s %(options)s' + + # 1.2. Cas "lancement d'un mailleur" + else: + mcf = MAILLAGE[0] + dMCF = mcf.cree_dict_valeurs(mcf.mc_liste) + d_para['fichIN'] = 'fort.%d' % dMCF['UNITE_GEOM'] + d_para['fichOUT'] = 'fort.%d' % dMCF['UNITE'] + + if dMCF['FORMAT'] == 'GMSH': + mode_lancement = CMD_EXTERNE + cmd = '%(prog)s %(options)s -o %(fichOUT)s %(fichIN)s' + d_para['prog'] = os.path.join(aster.repout(), 'gmsh') + d_para['options'] = ('-3',) + + elif dMCF['FORMAT'] == 'GIBI': + mode_lancement = CMD_EXTERNE + cmd = '%(prog)s %(options)s %(fichIN)s %(fichOUT)s' + d_para['prog'] = os.path.join(aster.repout(), 'gibi') + + elif dMCF['FORMAT'] == 'SALOME': + mode_lancement = EXECFILE + if len(l_args) < 1: + UTMESS('F', macro, "FORMAT SALOME, L'ARGUMENT 1 DOIT ETRE " \ + "LE NOM DU FICHIER MED PRODUIT PAR LE SCRIPT PYTHON.") + else: + d_para['fichMED'] = l_args[0] + + else: + UTMESS('F', macro, "ON NE SAIT PAS TRAITER LE FORMAT '%s'" % dMCF['FORMAT']) + + #---------------------------------------------- + # 2. lecture des mots-clés + if LOGICIEL != None: + d_para['prog'] = LOGICIEL + + if len(l_args) > 0: + d_para['options'] = l_args + d_para['options'] = ' '.join(d_para['options']) + + #---------------------------------------------- + # 3. Exécution + # 3a. Lancement d'une commande externe + 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) + + if CODE_RETOUR_MAXI >= 0 and iret > CODE_RETOUR_MAXI: + UTMESS('F', macro, 'CODE RETOUR INCORRECT (MAXI %d) : %d' \ + % (CODE_RETOUR_MAXI, iret)) + + #---------------------------------------------- + # 3b. Exécution d'un fichier Python + elif mode_lancement == EXECFILE: + if d_para['prog'] != '': + UTMESS('A', macro, "LE MOT-CLE LOGICIEL N'EST PAS UTILISE AVEC CE FORMAT") + context={} + try: + execfile(d_para['fichIN'], context) + except: + traceback.print_exc() + txt = open(d_para['fichIN'], 'r').read() + UTMESS('F', macro, """ERREURS LORS DE L'EXECUTION DU FICHIER CI-DESSOUS : +<<<<<<<<<<<<<<< DEBUT DU FICHIER >>>>>>>>>>>>>>> +%s +<<<<<<<<<<<<<<< FIN DU FICHIER >>>>>>>>>>>>>>> +""" % txt) + + if not os.path.exists(d_para['fichMED']): + UTMESS('F', macro, "LE FICHIER %s N'EXISTE PAS" % d_para['fichMED']) + else: + # copie fichMED vers fichOUT pour pouvoir le récupérer + shutil.copyfile(d_para['fichMED'], d_para['fichOUT']) + + else: + UTMESS('F', macro, "Mode de lancement inconnu : %s" % mode_lancement) + + #---------------------------------------------- + # 4. Conversion du maillage + if MAILLAGE != None: + UL = UniteAster() + umail = UL.Libre(action='ASSOCIER', + nom='exec_logiciel.%s2mail' % dMCF['FORMAT'].lower()) + + # déclaration du concept maillage en sortie + self.DeclareOut('mail', dMCF['MAILLAGE']) + + lire_mail_opts = {} + if dMCF['FORMAT'] == 'GMSH': + PRE_GMSH(UNITE_GMSH = dMCF['UNITE'], + UNITE_MAILLAGE = umail) + + elif dMCF['FORMAT'] == 'GIBI': + PRE_GIBI(UNITE_GIBI = dMCF['UNITE'], + UNITE_MAILLAGE = umail) + + elif dMCF['FORMAT'] == 'SALOME': + # ici l'unité en entrée de LIRE_MAILLAGE ne correspond pas au .mail + # mais au fichier MED en sortie du execfile. + umail = dMCF['UNITE'] + etat = UL.Etat(umail, etat='O', TYPE='LIBRE', nom=d_para['fichMED']) + lire_mail_opts['FORMAT'] = 'MED' + lire_mail_opts['INFO_MED'] = INFO + + mail = LIRE_MAILLAGE(UNITE = umail, + INFO = INFO, + **lire_mail_opts) + + UL.EtatInit() + return ier + diff --git a/Aster/Cata/cataSTA9/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA9/Macro/fiabilite_fichier.py new file mode 100644 index 00000000..1462a5ec --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/fiabilite_fichier.py @@ -0,0 +1,335 @@ +#@ MODIF fiabilite_fichier Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 GNICOLAS G.NICOLAS +# +class fiabilite_fichier : +# + """ Classe des fichiers de données des logiciels fiabilistes + Cette classe a été mise au point pour le couplage entre + Code_ASTER et MEFISTO, mais pourrait servir ailleurs. + """ +# +# +#==== +# 1. Le constructeur +#==== +# +# + def __init__ ( self, jdc, Rep_Calc_LOGICIEL_global, nomfic, info = 1 ) : +# +# jdc : le jeu de commandes en cours de traitement +# + self.jdc = jdc +# +# Rep_Calc_LOGICIEL_global : le répertoire d'exécution du logiciel de fiabilité +# + self.Rep_Calc_LOGICIEL_global = Rep_Calc_LOGICIEL_global +# +# nomfic : nom local du fichier à créer +# + self.nomfic = nomfic +# +# messages_erreur : messages d'erreur +# + self.messages_erreur = { 0 : "Tout va bien", + 1 : "==> Ce fichier est inconnu.", + 2 : "==> Ce type d'ouverture est inconnu.", + 10 : "==> Problème à l'ouverture.", + 11 : "==> Problème à la fermeture.", + 20 : "==> Problème à l'impression." } +# +# info : niveau d'information au sens ASTER +# + self.info = info +# +# ligne_sep : ligne de séparation +# + self.ligne_sep = "=========================================================" + self.ligne_commentaire = "#" + self.ligne_sep + "\n" +# + if info >= 2 : + print "Création du fichier : "+self.nomfic +# +#==== +# 2. Ouverture du fichier +#==== +# + def Ouvre_Fichier ( self, type_ouvr ) : +# +# 2.0. ==> Préalables +# + """ + Ouvre le fichier en lecture ou écriture. + 0 : tout s'est bien passé + 1 : on veut ouvrir en lecture un fichier qui n'existe pas + 2 : le mode d'ouverture est inconnu + 10 : impossible d'ouvrir + """ +# + import os +# +# 2.1. ==> Le nom global du fichier +# + self.nomfic_global = os.path.join(self.Rep_Calc_LOGICIEL_global,self.nomfic) +# +# 2.2. ==> Controles +# + erreur = 0 +# + if ( type_ouvr == "w" or type_ouvr == "r" ) : +# + if ( type_ouvr == "r" ) : + if not os.path.isfile(self.nomfic_global) : + erreur = 1 + + else : +# + self.jdc.cr.warn("Type d'ouverture : "+type_ouvr) + erreur = 2 +# +# 2.3. ==> Ouverture vraie +# + if not erreur : +# + erreur_partiel = [0] + try : + self.fic = open( self.nomfic_global, type_ouvr ) + except os.error,erreur_partiel : + self.jdc.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) + erreur = 10 +# +# 2.4. ==> C'est fini +# + if erreur : + self.jdc.cr.warn("Fichier : "+self.nomfic) + self.jdc.cr.warn(self.messages_erreur[erreur]) +# + return erreur +# +#==== +# 3. Fermeture du fichier +#==== +# + def Ferme_Fichier ( self ) : +# +# 3.0. ==> Préalables +# + """ + Ferme le fichier. + 0 : tout s'est bien passé + 20 : impossible d'imprimer + """ +# + import os +# +# 3.1. ==> Controles +# + erreur = 0 +# + if not os.path.isfile(self.nomfic_global) : + erreur = 1 +# +# 3.2. ==> Fermeture vraie +# + if not erreur : +# + erreur_partiel = [0] + try : + self.fic.close( ) + except os.error,erreur_partiel : + self.jdc.cr.warn("Code d'erreur de close : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) + erreur = 11 +# +# 3.3. ==> C'est fini +# + if erreur : + self.jdc.cr.warn("Fichier : "+self.nomfic) + self.jdc.cr.warn(self.messages_erreur[erreur]) +# + return erreur +# +#==== +# 4. Impression du contenu du fichier +#==== +# + def Imprime_Fichier ( self ) : +# +# 4.0. ==> Préalables +# + """ + Imprime le fichier. + 0 : tout s'est bien passé + 20 : impossible d'imprimer + """ +# +# 4.1. ==> Lecture +# + erreur = self.Ouvre_Fichier ( "r" ) + if not erreur : + les_lignes = self.fic.readlines() + erreur = self.Ferme_Fichier ( ) +# +# 4.2. ==> Impression +# + if not erreur : +# + print "\n"+self.ligne_sep + print "Contenu du fichier " + self.nomfic," :" + for ligne in les_lignes : + print ligne[:-1] + print self.ligne_sep+"\n" +# +# 4.4. ==> C'est fini +# + if erreur : + erreur = 20 + self.jdc.cr.warn("Fichier : "+self.nomfic) + self.jdc.cr.warn(self.messages_erreur[erreur]) +# + return erreur +# +#==== +# 5. Ecriture de lignes de commentaires +#==== +# + def Ecrit_Commentaires ( self, comm ) : +# + """ + Liste = commentaires à écrire + Soit c'est une chaine qu'on écrit sur une ligne ; + Soit c'est une liste, qu'on écrit à raison de une par ligne. + Remarque : cela suppose que le fichier est ouvert en écriture + """ +# + if type(comm) == type([ ]) : + Liste = comm + else : + Liste = [comm] +# + for ligne in Liste : + self.fic.write("# "+str(ligne)+"\n") +# +#==== +# 6. Ecriture de lignes de titres +#==== +# + def Ecrit_Titre ( self, comm ) : +# + """ + Liste = commentaires à écrire, encadrés par des séparateurs + Soit c'est une chaine qu'on écrit sur une ligne ; + Soit c'est une liste, qu'on écrit à raison de une par ligne. + Remarque : cela suppose que le fichier est ouvert en écriture + """ +# + self.fic.write(self.ligne_commentaire) + self.Ecrit_Commentaires(comm) + self.fic.write(self.ligne_commentaire) +# +#==== +# 7. Ecriture d'une ligne de valeurs +#==== +# + def Ecrit_Valeurs ( self, val ) : +# + """ + Liste = liste des valeurs à écrire, représenatn une ligne + Remarque : cela suppose que le fichier est ouvert en écriture + """ +# + if type(val) == type([ ]) : + ligne = " " + for aux in val : + ligne = ligne + " " + str(aux) + else : + ligne = str(val) +# + self.fic.write(ligne+"\n") +# +# +#======================================================================================= +#======================================================================================= + + +# +# +if __name__ == "__main__" : +# + import os + import sys + import tempfile +# +# 1. ==> Préalable +# + Rep_Calc_LOGICIEL_global = tempfile.mktemp() + os.mkdir(Rep_Calc_LOGICIEL_global) +# + jdc = None +# +# 2. ==> Création de la classe +# + nomfic = "dataGrad" + fic = fiabilite_fichier ( jdc, Rep_Calc_LOGICIEL_global , nomfic ) +# +# 3. ==> Ouverture du fichier +# + erreur = fic.Ouvre_Fichier ( "w" ) +# +# 4. ==> Remplissage du fichier +# + if not erreur : + aux = ["Titre 1", "Titre 2"] + fic.Ecrit_Titre (aux) + aux = ["Ligne 1", "Ligne 2"] + fic.Ecrit_Commentaires (aux) + aux = "Ligne en forme de chaine" + fic.Ecrit_Commentaires (aux) + aux = 1789.1792 + fic.Ecrit_Commentaires (aux) + aux = [1, 0.0] + fic.Ecrit_Valeurs (aux) + aux = 1958. + fic.Ecrit_Valeurs (aux) +# +# 5. ==> Fermeture du fichier +# + if not erreur : + erreur = fic.Ferme_Fichier ( ) +# +# 4. ==> Impression du fichier +# + if not erreur : + erreur = fic.Imprime_Fichier ( ) +# +# 4. ==> La fin +# + Liste = os.listdir(Rep_Calc_LOGICIEL_global) +# + for nomfic in Liste : + fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic) + os.chmod (fic_total,0755) + os.remove (fic_total) + os.rmdir (Rep_Calc_LOGICIEL_global) +# + if erreur : + mess = "Erreur " + str(erreur) + else : + mess = "Fin normale." + sys.exit(mess) diff --git a/Aster/Cata/cataSTA9/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA9/Macro/fiabilite_mefisto.py new file mode 100644 index 00000000..b74d7e54 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/fiabilite_mefisto.py @@ -0,0 +1,461 @@ +#@ MODIF fiabilite_mefisto Macro DATE 04/10/2005 AUTEUR REZETTE C.REZETTE +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 GNICOLAS G.NICOLAS +# +def fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, + INFO, VERSION, + SEUIL, SEUIL_TYPE, + VARIABLE, + valeurs_lois, + **args ) : +# +# valeurs_lois est un dictionnaire indexé sur les variables. +# Chaque case, valeurs_lois[m], est un dictionnaire contenant : +# d["v_moy_physique"] = valeur moyenne physique +# d["v_moy_loi"] = valeur moyenne de la loi +# d["v_min_loi"] = valeur minimale de la loi +# d["v_max_loi"] = valeur maximale de la loi +# d["sigma_loi"] = ecart type de la loi +# +# args est le dictionnaire des arguments optionnels +# 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. +# + """ Ecriture des données spécifiques à MEFISTO. """ +# + from Macro import fiabilite_fichier + import os + import string + import Numeric + from Utilitai.Utmess import UTMESS +# +#____________________________________________________________________ +# +# 1. Préalables +#____________________________________________________________________ +# +# + messages_erreur = { 0 : "Tout va bien", + 1 : "Fichier inconnu.", + 2 : "Problème d'ouverture de fichier.", + 10 : "Problème d'ouverture de fichier.", + 11 : "Problème de fermeture de fichier.", + 20 : "Problème d'impression de fichier.", + 50 : "Donnée inacceptable.", + 100 : "Erreur." } +# + trad_oui_non = { "OUI" : 1, + "NON" : 0 } +# + erreur = 0 +# + while not erreur : +# +#____________________________________________________________________ +# +# 2. Les fichiers pour le logiciel de fiabilité +# Ils sont créés dans le répertoire d'exécution du logiciel de fiabilité, avec leurs noms officiels +#____________________________________________________________________ +# +# + fic_dataMenu = "dataMenu" + fic_dataStoch = "dataStoch" + fic_dataNum = "dataNum" + fic_dataGrad = "dataGrad" +# +#____________________________________________________________________ +# +# 3. Construction du fichier 'dataMenu' +#____________________________________________________________________ +# +# 3.1 ==> Ouverture du fichier +# + f_menu = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataMenu, INFO ) + erreur = f_menu.Ouvre_Fichier ( "w" ) + if erreur : + break +# +# 3.2 ==> Ecriture des données nécessaires +# + f_menu.Ecrit_Titre ("MENU DU PROGRAMME MEFISTO") + f_menu.Ecrit_Titre ("1 <=> OUI et 0 <=> NON (entiers)") +# + f_menu.Ecrit_Titre ("Recherche du point de conception") + aux = trad_oui_non[args["RECH_PT_CONCEPT"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("First Order Reliability Analyses") + aux = trad_oui_non[args["METHODE_FORM"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Second Order Reliability Analyses") + aux = trad_oui_non[args["METHODE_SORM"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Importance Sampling Analyses") + aux = trad_oui_non[args["TIRAGE_IMPORTANCE"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Optimality Test (1) : Hessian Test") + aux = trad_oui_non[args["T_HESSIEN"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Optimality Test (2) : Sphere Test") + aux = trad_oui_non[args["T_SPHERE"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Optimality Test (3) : Strong Max Test") + aux = trad_oui_non[args["T_MAXIMUM_FORT"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Experiment Plan") + aux = trad_oui_non[args["PLAN_EXPERIENCE"]] + f_menu.Ecrit_Valeurs (aux) +# + f_menu.Ecrit_Titre ("Polynomial Taylor Approximation (order 2)") + aux = trad_oui_non[args["POLYNOME_TAYLOR"]] + f_menu.Ecrit_Valeurs (aux) +# +# 3.3 ==> Fermeture du fichier +# + erreur = f_menu.Ferme_Fichier ( ) + if erreur : + break +# + if INFO >= 2 : + erreur = f_menu.Imprime_Fichier ( ) + if erreur : + break +# +#____________________________________________________________________ +# +# 4. Construction du fichier "dataStoch" +#____________________________________________________________________ +# +# 4.1 ==> Ouverture du fichier +# + f_stoch = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataStoch, INFO ) + erreur = f_stoch.Ouvre_Fichier ( "w" ) + if erreur : + break +# +# 4.2 ==> Nombre d'occurence de VARIABLE +# + nb_occu_variable = len(VARIABLE) +# +# 4.3 ==> Ecriture des données nécessaires +# + f_stoch.Ecrit_Titre ("Code name") + aux=string.replace(VERSION,"_",".") + aux=string.replace(aux,"N","n") + aux=string.replace(aux,"V","v") + f_stoch.Ecrit_Valeurs ( "aster_" + aux ) +# + aux = [ "Gradients evaluated by the code" ] + aux.append("1 : Au moins 1 ; 0 : aucun") + f_stoch.Ecrit_Titre (aux) + gradient = 0 + for m in VARIABLE : + if m["GRADIENT"] == "OUI" : gradient = 1 + f_stoch.Ecrit_Valeurs (gradient) +# + f_stoch.Ecrit_Titre ("Variates number") + f_stoch.Ecrit_Valeurs ( nb_occu_variable ) +# + aux = [ "Stochastic Variates" ] + aux.append("1: Uniforme (min, max)") + aux.append("2: Normal (mean, std dev)") + aux.append("3: LogNormal (mean, std dev, min)") + aux.append("4: Normal Truncated (mean, std dev, min, max)") + f_stoch.Ecrit_Titre (aux) +# + for m in VARIABLE : +# + d = valeurs_lois[m] + if m["LOI"] == "UNIFORME" : + f_stoch.Ecrit_Valeurs ( [ m["NOM"], 1 , d["v_min_loi"] , d["v_max_loi"] ] ) + elif m["LOI"] == "NORMALE" : + f_stoch.Ecrit_Valeurs ( [ m["NOM"], 2 , d["v_moy_loi"] , d["sigma_loi"] ] ) + elif m["LOI"] == "LOGNORMALE" : + f_stoch.Ecrit_Valeurs ( [ m["NOM"], 3 , d["v_moy_loi"] , d["sigma_loi"] , d["v_min_loi"] ] ) + elif m["LOI"] == "NORMALE_TRONQUEE" : + f_stoch.Ecrit_Valeurs ( [ m["NOM"], 4 , d["v_moy_loi"] , d["sigma_loi"] , d["v_min_loi"] , d["v_max_loi"] ] ) + else : + erreur = 50 +# + if erreur : + break +# + f_stoch.Ecrit_Titre ("Initial Points") + for m in VARIABLE : + if m["POINT_INI"] is None : + aux = valeurs_lois[m]["v_moy_physique"] + else : + aux = m["POINT_INI"] + f_stoch.Ecrit_Valeurs ( aux ) +# + f_stoch.Ecrit_Titre ("Reference Points") + for m in VARIABLE : + if m["POINT_REF"] is None : + aux = valeurs_lois[m]["v_moy_physique"] + else : + aux = m["POINT_REF"] + f_stoch.Ecrit_Valeurs ( aux ) +# + f_stoch.Ecrit_Titre ("Design Points") + for m in VARIABLE : + if args["RECH_PT_CONCEPT"] == "OUI" : + aux = 1792. + elif m["POINT_CONCEPT"] is None : + aux = valeurs_lois[m]["v_moy_physique"] + else : + aux = m["POINT_CONCEPT"] + f_stoch.Ecrit_Valeurs ( aux ) +# + f_stoch.Ecrit_Titre ("Correlation matrix fictive") +# if args.has_key('MATRICE'): + if args["MATRICE"] != None: + if len(args["MATRICE"]) != nb_occu_variable**2: + UTMESS('F','FIABILITE_MEPHISTO',' LE NOMBRE D ELEMENTS' + +' DU MOT CLE MATRICE DOIT ETRE EGAL A : ' + +str(nb_occu_variable**2)) + for m in range(nb_occu_variable) : + aux = [ ] + for n in range(nb_occu_variable) : + aux.append(args["MATRICE"][n + m*nb_occu_variable]) + f_stoch.Ecrit_Valeurs ( aux ) + else: + aux=Numeric.identity(nb_occu_variable) + aux=Numeric.concatenate(aux) + aux=aux.tolist() + f_stoch.Ecrit_Valeurs ( aux ) +# + f_stoch.Ecrit_Titre ("Parameter threshold value") + if SEUIL_TYPE == "MAXIMUM" : + aux = SEUIL + else : + aux = -SEUIL + f_stoch.Ecrit_Valeurs ( aux ) +# +# 4.4 ==> Fermeture du fichier +# + erreur = f_stoch.Ferme_Fichier ( ) + if erreur : + break +# + if INFO >= 2 : + erreur = f_stoch.Imprime_Fichier ( ) + if erreur : + break +# +#____________________________________________________________________ +# +# 5. Construction du fichier 'dataNum' +#____________________________________________________________________ +# +# 5.1 ==> Ouverture du fichier +# + f_num = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataNum, INFO ) + erreur = f_num.Ouvre_Fichier ( "w" ) + if erreur : + break +# +# 5.2 ==> Ecriture des données nécessaires +# + f_num.Ecrit_Titre ("Parameters : EpsU, EpsG, Tau, Omega, iterMax") + if args["RECH_PT_CONCEPT"] == "OUI" : + f_num.Ecrit_Valeurs (args["EPSILON_U"]) + f_num.Ecrit_Valeurs (args["EPSILON_G"]) + f_num.Ecrit_Valeurs (args["TAU"]) + f_num.Ecrit_Valeurs (args["OMEGA"]) + f_num.Ecrit_Valeurs (args["ITER_MAX"]) + else : + aux = 0.1848 + for k in range(5) : + f_num.Ecrit_Valeurs (aux) +# + f_num.Ecrit_Titre ("Parameters : hgrad, hhess") + f_num.Ecrit_Valeurs (args["HGRAD"]) + f_num.Ecrit_Valeurs (args["HHESS"]) +# + aux = [ "Parameter Optimality Test(sphere)" ] + aux.append("1: Parametric Method (Point Number in each direction)") + aux.append("2: Gaussian Method (Total Point Number)") + aux.append("3: Rejection Method (Total Point Number)") + f_num.Ecrit_Titre (aux) +# + if args["T_SPHERE"] == "OUI" : +# + if args["METHODE_TEST"] == "PARAMETRIQUE" : + aux1 = 1 + elif args["METHODE_TEST"] == "GAUSSIENNE" : + aux1 = 2 + elif args["METHODE_TEST"] == "REJECTION" : + aux1 = 3 + else : + self.cr.warn("METHODE DE TEST : "+args["METHODE_TEST"]) + erreur = 50 + break +# + aux2 = args["NB_POINT"] +# + else : +# +# remarque : il faut mettre une valeur plausible en aux1, sinon plantage violent ... + aux1 = 1 + aux2 = 1789 +# + f_num.Ecrit_Valeurs ( [ aux1 , aux2 ] ) +# + aux = [ "Parameters : alpha, beta" ] + aux.append("alpha: common net") + aux.append("beta: extreme net") + f_num.Ecrit_Titre (aux) + if args["PLAN_EXPERIENCE"] == "OUI" : + aux1 = args["ALPHA"] + aux2 = args["BETA"] + else : + aux1 = 1789.0 + aux2 = 1789.0 + f_num.Ecrit_Valeurs ( aux1 ) + f_num.Ecrit_Valeurs ( aux2 ) +# + f_num.Ecrit_Titre ("Parameters Strong Max Test : cosLim, dProb") + if args["T_MAXIMUM_FORT"] == "OUI" : + aux1 = args["COS_LIM"] + aux2 = args["DPROB"] + else : + aux1 = 0.1789 + aux2 = 0.1789 + f_num.Ecrit_Valeurs ( aux1 ) + f_num.Ecrit_Valeurs ( aux2 ) +# + f_num.Ecrit_Titre ("Parameter Importance Samplings : Simulation Number") + if args["TIRAGE_IMPORTANCE"] == "OUI" : + aux = args["NB_SIMULATION"] + else : + aux = 1945 + f_num.Ecrit_Valeurs ( aux ) +# +# 5.3 ==> Fermeture du fichier +# + erreur = f_num.Ferme_Fichier ( ) + if erreur : + break +# + if INFO >= 2 : + erreur = f_num.Imprime_Fichier ( ) + if erreur : + break +# +#____________________________________________________________________ +# +# 6. Construction du fichier 'dataGrad' +#____________________________________________________________________ +# +# 6.1 ==> Création du fichier +# + f_grad = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataGrad, INFO ) + erreur = f_grad.Ouvre_Fichier ( "w" ) + if erreur : + break +# +# 6.2 ==> Ecriture des données nécessaires +# + f_grad.Ecrit_Titre ("Commentaires") +# + for m in VARIABLE : + f_grad.Ecrit_Commentaires (m["NOM"]) + if m["GRADIENT"] == "OUI" : + gradient = 1 + increment = 0.0 + else : + gradient = 0 + increment = m["INCREMENT"] + aux = [gradient,increment] + f_grad.Ecrit_Valeurs (aux) +# +# 6.3 ==> Fermeture du fichier +# + erreur = f_grad.Ferme_Fichier ( ) + if erreur : + break +# + if INFO >= 2 : + erreur = f_grad.Imprime_Fichier ( ) + if erreur : + break +# +#____________________________________________________________________ +# +# 7. C'est fini ! +#____________________________________________________________________ +# + break +# + if erreur : + if not messages_erreur.has_key(erreur) : + erreur = 100 + self.cr.warn(messages_erreur[erreur]) + erreur = 11 +# + return erreur +# +########################## Fin de la fonction################################## +# +########################## Auto-test################################## +# +if __name__ == "__main__" : +# + import os + import sys + import tempfile +# + Rep_Calc_LOGICIEL_global = tempfile.mktemp() + os.mkdir(Rep_Calc_LOGICIEL_global) +# + INFO = 2 + VERSION = "V3_2" + SEUIL = 1789. + SEUIL_TYPE = "MAXIMUM" + VARIABLE = [] + args = {} + valeurs = {} +# + erreur = fiabilite_mefisto ( None, Rep_Calc_LOGICIEL_global, + INFO, VERSION, + SEUIL, SEUIL_TYPE, + VARIABLE, + valeurs, + **args ) +### print "Erreur = ", erreur + Liste = os.listdir(Rep_Calc_LOGICIEL_global) +# + for nomfic in Liste : + fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic) + os.chmod (fic_total,0755) + os.remove (fic_total) + os.rmdir (Rep_Calc_LOGICIEL_global) +# + sys.exit("blabla") diff --git a/Aster/Cata/cataSTA9/Macro/gene_vari_alea_ops.py b/Aster/Cata/cataSTA9/Macro/gene_vari_alea_ops.py new file mode 100644 index 00000000..829a93e7 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/gene_vari_alea_ops.py @@ -0,0 +1,109 @@ +#@ MODIF gene_vari_alea_ops Macro DATE 28/02/2006 AUTEUR VABHHTS 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. +# ====================================================================== + +from math import sqrt,log,exp,pi,atan2,tan + +def gene_vari_alea_ops(self,**args): + self.set_icmd(1) + return 0 + +def gene_vari_alea_init(self,d): + from Utilitai.Utmess import UTMESS + a =self.etape['BORNE_INF'] + moyen =self.etape['VALE_MOY' ] + TYPE =self.etape['TYPE'] + if self['INIT_ALEA']!=None : + jump =self.etape['INIT_ALEA' ] + self.iniran(jump) + if TYPE=='EXP_TRONQUEE' : + b =self.etape['BORNE_SUP'] + if (a>=b) : + message=' : il faut BORNE_INF < BORNE_SUP \n' + message=message+' BORNE_INF = '+str(a)+'\n' + message=message+' BORNE_SUP = '+str(b)+'\n' + UTMESS('F','GENE_VARI_ALEA',message) + elif (moyen<=a)or(moyen>=b) : + message=' : VALE_MOY trop grand ou trop petit\n' + message=message+' BORNE_INF = '+str(a)+'\n' + message=message+' VALE_MOY = '+str(moyen)+'\n' + message=message+' BORNE_SUP = '+str(b)+'\n' + UTMESS('F','GENE_VARI_ALEA',message) + k=1./(moyen-a) + if (exp(-b*k)<1.E-12) : + message=' : BORNE SUP très grande \n' + message=message+'pb précision possible, vérifiez'+'\n' + message=message+'la distribution des valeurs générées \n' + UTMESS('F','GENE_VARI_ALEA',message) + # résolution par point fixe + eps =1.E-4 + nitmax=100000 + test =0. + while abs((test-k)/k)>eps : + test = k + k = 1./(moyen-(a*exp(-a*k) - b*exp(-b*k))/(exp(-a*k) - exp(-b*k))) + # génération de la variable aléatoire + alpha = exp(-a*k) - exp(-b*k) + self.sd.valeur=-( log(exp(-a*k)-alpha*self.getran()[0] ) ) /k + elif TYPE=='EXPONENTIELLE' : + if (moyen<=a) : + message=' : on doit avoir : VALE_MOY > BORNE_INF \n' + message=message+' VALE_MOY = '+str(moyen)+'\n' + message=message+' BORNE_INF = '+str(a)+'\n' + UTMESS('F','GENE_VARI_ALEA',message) + v = moyen-a + u=self.getran()[0] + x = -log(1-u) + self.sd.valeur=a + v*x + elif TYPE=='GAMMA' : + delta =self.etape['COEF_VAR' ] + if (moyen<=a) : + message=' : on doit avoir : VALE_MOY > BORNE_INF \n' + message=message+' VALE_MOY = '+str(moyen)+'\n' + message=message+' BORNE_INF = '+str(a)+'\n' + UTMESS('F','GENE_VARI_ALEA',message) + v = moyen-a + alpha = 1./(delta**2) + if (alpha<=1.) : + message=' : erreur : ALPHA < 1\n' + UTMESS('F','GENE_VARI_ALEA',message) + gamma2 = alpha-1. + gamm1 = 1./gamma2 + beta = sqrt(2.*alpha-1.) + beta2 = 1./(beta**2) + f0 = 0.5+(1./pi)*atan2(-gamma2/beta,1.) + c1 = 1.-f0 + c2 = f0-0.5 + vref = 0. + vv = -1. +# + while (-vv>vref) : + u=self.getran()[0] + gamdev = beta*tan(pi*(u*c1+c2))+gamma2 + unif=self.getran()[0] + if unif<0. : + message=' : erreur : unif < 0\n' + UTMESS('F','GENE_VARI_ALEA',message) + vv= -log(unif) + vref = log(1+beta2*((gamdev-gamma2)**2))+gamma2*log(gamdev*gamm1)-gamdev+gamma2 +# + if vv<=0. : + message=' : erreur : GAMDEV(ALPHA) < 0\n' + UTMESS('F','GENE_VARI_ALEA',message) + self.sd.valeur = a + v*(delta**2)*gamdev diff --git a/Aster/Cata/cataSTA9/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA9/Macro/impr_fonction_ops.py new file mode 100644 index 00000000..bc276a32 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/impr_fonction_ops.py @@ -0,0 +1,396 @@ +#@ MODIF impr_fonction_ops Macro DATE 02/04/2007 AUTEUR COURTOIS M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 MCOURTOI M.COURTOIS + +import os.path + +# ------------------------------------------------------------------------------ +def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args): + """ + Macro IMPR_FONCTION permettant d'imprimer dans un fichier des fonctions, + colonnes de table... + Erreurs dans IMPR_FONCTION pour ne pas perdre la base. + """ + macro='IMPR_FONCTION' + import pprint + import aster + from Accas import _F + from Cata.cata import nappe_sdaster, fonction_c + from Utilitai import Graph + from Utilitai.Utmess import U2MESS + from Utilitai.UniteAster import UniteAster + 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 + CALC_FONC_INTERP = self.get_cmd('CALC_FONC_INTERP') + DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') + DETRUIRE = self.get_cmd('DETRUIRE') + + #---------------------------------------------- + # 0. Traitement des arguments, initialisations + # unité logique des fichiers réservés + ul_reserve=(8,) + UL = UniteAster() + + # 0.1. Fichier + nomfich=None + if args['UNITE'] and args['UNITE']!=6: + nomfich=UL.Nom(args['UNITE']) + if INFO==2: + aster.affiche('MESSAGE', ' Nom du fichier :'+nomfich) + if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size!=0: + if FORMAT=='XMGRACE': + niv='A' + else: + niv='I' + U2MESS(niv, 'FONCT0_1', valk=nomfich) + + # 0.2. Récupération des valeurs sous COURBE + unparmi=('FONCTION','LIST_RESU','FONC_X','ABSCISSE') + + # i0 : indice du mot-clé facteur qui contient LIST_PARA, sinon i0=0 + i0=0 + Courbe=[] + iocc=-1 + for Ci in COURBE: + iocc+=1 + dC = Ci.cree_dict_valeurs(Ci.mc_liste) + if dC.has_key('LIST_PARA') and dC['LIST_PARA']!=None and i0==0: + i0=iocc + for mc in dC.keys(): + if dC[mc]==None: del dC[mc] + Courbe.append(dC) + if INFO==2: + aster.affiche('MESSAGE',' Nombre de fonctions à analyser : '+str(len(Courbe))) + + # 0.3. Devra-t-on interpoler globalement ? + # Dans ce cas, linter__ est le LIST_PARA + # ou, à défaut, les abscisses de la première courbe + interp=False + if FORMAT=='TABLEAU': + interp=True + dCi=Courbe[i0] + if dCi.has_key('LIST_PARA'): + linter__=dCi['LIST_PARA'] + else: + obj=None + for typi in unparmi: + if dCi.has_key(typi): + obj=dCi[typi] + break + if obj==None: + U2MESS('S', 'SUPERVIS_56') + if typi=='FONCTION': + if isinstance(obj, nappe_sdaster): + lpar,lval=obj.Valeurs() + linterp=lval[0][0] + else: + linterp=obj.Valeurs()[0] + elif typi=='FONC_X': + lbid,linterp=obj.Valeurs() + elif typi=='ABSCISSE': + linterp=obj + linter__=DEFI_LIST_REEL(VALE=linterp) + if INFO==2: + aster.affiche('MESSAGE', ' Interpolation globale sur la liste :') + aster.affiche('MESSAGE', pprint.pformat(linter__.Valeurs())) + + + #---------------------------------------------- + # 1. Récupération des valeurs des N courbes sous forme + # d'une liste de N listes + #---------------------------------------------- + graph=Graph.Graph() + iocc=-1 + for dCi in Courbe: + iocc+=1 + + # 1.1. Type d'objet à traiter + obj=None + for typi in unparmi: + if dCi.has_key(typi): + obj=dCi[typi] + break + if not dCi.has_key('LEGENDE') and hasattr(obj,'get_name'): + dCi['LEGENDE']=obj.get_name() + if obj==None: + U2MESS('S', 'SUPERVIS_56') + + # 1.2. Extraction des valeurs + + # 1.2.1. Mot-clé FONCTION + if typi=='FONCTION': + if isinstance(obj, nappe_sdaster): + lpar,lval=obj.Valeurs() + dico,ldicf=obj.Parametres() + Leg=dCi['LEGENDE'] + for i in range(len(lpar)): + p=lpar[i] + lx=lval[i][0] + ly=lval[i][1] + # sur quelle liste interpoler chaque fonction + if i==0: + if interp: + li__=linter__ + elif dCi.has_key('LIST_PARA'): + li__=dCi['LIST_PARA'] + else: + li__=DEFI_LIST_REEL(VALE=lx) + # compléter les paramètres d'interpolation + dic=dico.copy() + dic.update(ldicf[i]) + + if (interp or dCi.has_key('LIST_PARA')) and i>0: + ftmp__=CALC_FONC_INTERP( + FONCTION=obj, + VALE_PARA=p, + LIST_PARA_FONC=li__, + **dic + ) + pv,lv2=ftmp__.Valeurs() + lx=lv2[0][0] + ly=lv2[0][1] + # on stocke les données dans le Graph + nomresu=dic['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + dicC={ + 'Val' : [lx,ly], + 'Lab' : [dic['NOM_PARA_FONC'],nomresu] + } + # ajoute la valeur du paramètre + dCi['LEGENDE'] = '%s %s=%g' % (Leg,dic['NOM_PARA'].strip(),p) + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__'),),ALARME='NON',INFO=1) + else: + ftmp__=obj + dpar=ftmp__.Parametres() + if interp: + ftmp__=CALC_FONC_INTERP( + FONCTION=obj, + LIST_PARA=linter__, + **dpar + ) + elif dCi.has_key('LIST_PARA'): + ftmp__=CALC_FONC_INTERP( + FONCTION=obj, + LIST_PARA=dCi['LIST_PARA'], + **dpar + ) + lval=list(ftmp__.Valeurs()) + lx=lval[0] + lr=lval[1] + if isinstance(obj, fonction_c) and dCi.get('PARTIE') == 'IMAG': + lr=lval[2] + # on stocke les données dans le Graph + if isinstance(obj, fonction_c) and not dCi.has_key('PARTIE'): + nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + dicC={ + 'Val' : lval, + 'Lab' : [dpar['NOM_PARA'],nomresu+'_R',nomresu+'_I'] + } + else: + nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + dicC={ + 'Val' : [lx,lr], + 'Lab' : [dpar['NOM_PARA'],nomresu] + } + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + + # 1.2.2. Mot-clé LIST_RESU + elif typi=='LIST_RESU': + if interp and iocc>0: + U2MESS('S', 'FONCT0_2') + lx=dCi['LIST_PARA'].Valeurs() + lr=obj.Valeurs() + if len(lx)!=len(lr): + U2MESS('S', 'FONCT0_3') + # on stocke les données dans le Graph + dicC={ + 'Val' : [lx,lr], + 'Lab' : [dCi['LIST_PARA'].get_name(),obj.get_name()] + } + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + + # 1.2.3. Mot-clé FONC_X + # exemple : obj(t)=sin(t), on imprime x=sin(t), y=cos(t) + # ob2(t)=cos(t) + elif typi=='FONC_X': + ob2=dCi['FONC_Y'] + # peut-on blinder au niveau du catalogue + if isinstance(obj, nappe_sdaster) or isinstance(ob2, nappe_sdaster): + U2MESS('S', 'FONCT0_4') + if interp and iocc>0: + U2MESS('S', 'FONCT0_5') + ftmp__=obj + dpar=ftmp__.Parametres() + ftm2__=ob2 + dpa2=ftm2__.Parametres() + intloc=False + if interp and not dCi.has_key('LIST_PARA'): + # dans ce cas, linter__ contient les ordonnées de FONC_X + intloc=False + li__=linter__ + elif dCi.has_key('LIST_PARA'): + intloc=True + li__=dCi['LIST_PARA'] + if intloc: + ftmp__=CALC_FONC_INTERP( + FONCTION=obj, + LIST_PARA=li__, + **dpar + ) + lt,lx=ftmp__.Valeurs() + ftm2__=CALC_FONC_INTERP( + FONCTION=ob2, + LIST_PARA=li__, + **dpa2 + ) + else: + lt,lx=ftmp__.Valeurs() + li__=DEFI_LIST_REEL(VALE=lt) + ftm2__=CALC_FONC_INTERP( + FONCTION=ob2, + LIST_PARA=li__, + **dpa2 + ) + + lbid,ly=ftm2__.Valeurs() + # on stocke les données dans le Graph + # on imprime la liste des paramètres seulement si LIST_PARA + if intloc: + nomresur=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + nomresu2=dpa2['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)+1) + dicC={ + 'Val' : [lt,lx,ly], + 'Lab' : [dpar['NOM_PARA'],nomresur,nomresu2] + } + else: + nomresur=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) + nomresu2=dpa2['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)+1) + dicC={ + 'Val' : [lx,ly], + 'Lab' : [nomresur,nomresu2] + } + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + + # 1.2.4. Mot-clé ABSCISSE / ORDONNEE + elif typi=='ABSCISSE': + if interp and iocc>0: + U2MESS('S', 'FONCT0_6') + lx=obj + lr=dCi['ORDONNEE'] + if len(lx)!=len(lr): + U2MESS('S', 'FONCT0_7') + # on stocke les données dans le Graph + dicC={ + 'Val' : [lx,lr], + 'Lab' : ['Absc','Ordo'] + } + Graph.AjoutParaCourbe(dicC, args=dCi) + graph.AjoutCourbe(**dicC) + + # 1.2.9. ménage + DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__','ftm2__'),),ALARME='NON',INFO=1) + + # 1.2.99. ménage hors boucle + DETRUIRE(CONCEPT=_F(NOM=('linter__'),), ALARME='NON',INFO=1) + + # 1.3. dbg + if INFO==2: + message='\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70+'\n' + message=message+graph.__repr__() + message=message+'-'*70+'\n' + aster.affiche('MESSAGE',message) + + #---------------------------------------------- + # 2. Impression du 'tableau' de valeurs + #---------------------------------------------- + + # 2.0. Surcharge des propriétés du graphique et des axes + # (bloc quasiment identique dans Table) + if args['TITRE']!=None: graph.Titre=args['TITRE'] + if args['SOUS_TITRE']!=None: graph.SousTitre=args['SOUS_TITRE'] + if FORMAT in ('XMGRACE','AGRAF'): + if args['BORNE_X']!=None: + graph.Min_X=args['BORNE_X'][0] + graph.Max_X=args['BORNE_X'][1] + if args['BORNE_Y']!=None: + graph.Min_Y=args['BORNE_Y'][0] + graph.Max_Y=args['BORNE_Y'][1] + if args['LEGENDE_X']!=None: graph.Legende_X=args['LEGENDE_X'] + if args['LEGENDE_Y']!=None: graph.Legende_Y=args['LEGENDE_Y'] + if args['ECHELLE_X']!=None: graph.Echelle_X=args['ECHELLE_X'] + if args['ECHELLE_Y']!=None: graph.Echelle_Y=args['ECHELLE_Y'] + if args['GRILLE_X']!=None: graph.Grille_X=args['GRILLE_X'] + if args['GRILLE_Y']!=None: graph.Grille_Y=args['GRILLE_Y'] + + kargs={ + 'FORMAT' : FORMAT, + 'FICHIER' : nomfich, + } + + # 2.1. au format TABLEAU + if FORMAT=='TABLEAU': + # surcharge par les formats de l'utilisateur + kargs['dform']={ + 'csep' : args['SEPARATEUR'], + 'ccom' : args['COMMENTAIRE'], + 'cdeb' : args['DEBUT_LIGNE'], + 'cfin' : args['FIN_LIGNE'] + } + + # 2.2. au format AGRAF + elif FORMAT=='AGRAF': + nomdigr=None + if args['UNITE_DIGR']!=6: + nomdigr=UL.Nom(args['UNITE_DIGR']) + kargs['FICHIER']=[nomfich, nomdigr] + kargs['dform']={ 'formR' : '%12.5E' } + + # 2.3. au format XMGRACE et dérivés + elif FORMAT=='XMGRACE': + kargs['dform']={ 'formR' : '%.8g' } + kargs['PILOTE']=args['PILOTE'] + + # 2.39. Format inconnu + else: + U2MESS('S', 'FONCT0_8', valk=FORMAT) + + # Traiter le cas des UL réservées + if args['UNITE'] and args['UNITE'] in ul_reserve: + UL.Etat(args['UNITE'], etat='F') + if FORMAT=='AGRAF' and args['UNITE_DIGR']!=args['UNITE'] \ + and args['UNITE_DIGR'] in ul_reserve: + UL.Etat(args['UNITE_DIGR'], etat='F') + + # 2.4. On trace ! + graph.Trace(**kargs) + + # 99. Traiter le cas des UL réservées + UL.EtatInit() + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/impr_oar_ops.py b/Aster/Cata/cataSTA9/Macro/impr_oar_ops.py new file mode 100644 index 00000000..ce3bf2b5 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/impr_oar_ops.py @@ -0,0 +1,769 @@ +#@ MODIF impr_oar_ops Macro DATE 07/11/2006 AUTEUR DURAND C.DURAND +# -*- 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. +# ====================================================================== + +import aster +from Utilitai.Utmess import UTMESS +from Utilitai.Table import Table +from Utilitai.partition import MAIL_PY + +def buildTabString(tabLevel): + """ + Construit une chaine de tabulation + """ + chaine = '' + for i in range(0, tabLevel) : + chaine += '\t' + + return chaine + +def getBornes(listIn, valTest) : + """ + Retourne un doublet de valeurs qui correspond aux valeurs de la liste qui encadrent la valeur (valTest) + Si val n'est pas encadrée par des valeurs de la liste, une des valeurs du doublet est None + """ + v1 = None + v2 = None + for val in listIn : + if valTest > val : v1 = val + if valTest < val : v2 = val + + # traitement des cas limites + if valTest == listIn[0] : v1 = listIn[0] + if valTest == listIn[len(listIn)-1] : v2 = listIn[len(listIn)-1] + + return (v1, v2) + +def interpoleLin(listDoublet, X) : + """ + Interpole linéairement entre deux bornes définies par listDoublets[(X0, Y0), (X1, Y1)] la valeur Y en X + """ + X0 = listDoublet[0][0] + Y0 = listDoublet[0][1] + X1 = listDoublet[1][0] + Y1 = listDoublet[1][1] + + return Y0 + (X - X0) * (Y1 - Y0) / (X1 - X0) + +class interpolationError(Exception) : + def __init__(self) : + self.mess = 'Interpolation sur une valeur hors bornes' + self.otherExcept = Exception() + + def getMess(self) : + """ + retourne le message associé à l'erreur + """ + # Analyse les différents cas d'erreurs + if self.otherExcept == IOError : + self.mess += "\nProblème à l'ouverture du fichier\n" + + return self.mess + +class XMLNode : + """ + Classe gérant un noeud de l'arborescence XML + Un noeud possède : + - un nom de balise + - un commentaire (optionnel) + - un ensemble de "paramètres" (optionnels) + - une liste d'élément ou d'autres noeuds (optionnels/possibilité de balises vides) : + + La classe propose : + - une méthode "buildTree" qui parcoure le liste de manière récursive pour + produire l'arborescence XML en vu de son enregistrement ou son impression + - (TO DO) une methode statique "loadTree" qui produit un arbre XML à partir d'un fichier + """ + def __init__(self, nomBalise, valeur = None, commentaire = None, **listOpt) : + self.nomBalise = nomBalise + self.commentaire = commentaire + self.param = listOpt + self.arbre=list() + if valeur != None : self.addValue(valeur) # None n'est pas 0 ! + + def getCommentaire(self) : return self.commentaire + + def setCommentaire(sel, commentaire) : self.commentaire = commentaire + + def getParametres(self) : return self.param + + def setParametres(self, parametres) : self.param = parametres + + def append(self, nodeName, valeur=None, commentaire = None, **listOpt) : + """ + Ajoute un noeud à l'arborescence et retourne une référence sur ce noeud + On peut ajouter directement la valeur, si simple, associée à la balise + """ + node = XMLNode(nodeName, valeur, commentaire) + + self.arbre.append(node) + + return self.arbre[len(self.arbre)-1] + + def addValue(self, valeur): + """ + Ajoute un élément "simple" (nombre, texte) à l'arborescence + """ + self.arbre.append(valeur) + + def buildTree(self, tabLevel=0) : + """ + Construit l'arborescence XML en parcourant récursivement la structure de donnée + et la retourne sous la forme d'une chaine de caractères + + tabLevel permet de gérer l'indentation + """ + # Construction de la chaine de tabulations nécessaire à une bonne lecture du fichier XML + tabString = buildTabString(tabLevel) + + XMLString = '' + + try : + # listOpt contient les paramètres optionnels de la balise + chaine = '' + for v in self.param.keys() : + chaine = chaine + ' ' + v + '=' + self.param[v] + except : pass + + baliseOuverture=tabString + "<" + self.nomBalise + chaine +">\n" + XMLString += baliseOuverture + + if self.commentaire : + XMLString = XMLString + tabString + "\t\n" + + for elem in self.arbre : + try : + XMLString += elem.buildTree(tabLevel+1) + except : # l'élément n'est pas un noeud + XMLString = XMLString + tabString + '\t' + str(elem) + '\n' + + XMLString = XMLString + tabString + "\n" + + return XMLString + + def save(self, fileObj) : + """ + Construit le l'arborescence XML et l'écrit dans un fichier + pointé par le handler passé en paramètres + """ + try : + fileObj.write(self.buildTree()) + except : pass + +class OAR_element : + """ + Classe de base des éléments manipulés par IMPR_OAR + """ + def __init__(self) : + self.nodeComp = None + + def buildTree(self) : pass + + def getNode(self) : + """ + Renvoie le noeud XML construit par buildTree + """ + return self.nodeComp + + +class composant(OAR_element) : + """ + Classe permettant de traiter les composants + + NB : + 1. L utilisateur est suppose faire la meme coupe pour le calcul mecanique et le calcul thermo-mecanique + 2. Dans le cas d'un revetement, l'utilisateur est supposé définir son plan de coupe de telle sorte + que la coupe de la structure et la coupe du revetement se raccordent + """ + def __init__(self, **args) : + self.nodeComp = XMLNode("COMPOSANT") # Racine de l'arborescence composant + + self.diametre = args['DIAMETRE'] + self.origine = args['ORIGINE'] + self.coef_u = args['COEF_U'] + self.angle_c = args['ANGLE_C'] + self.revet = args['REVET'] + + self.lastAbscisse = None # Permet de gerer le recouvrement des points de coupe entre revetement et structure + self.num_char = -1 + self.type_char = '' + self.tabAbscisses = list() + self.tabAbscisses_S = None + self.dictMeca = dict() + self.dictMeca_S = None # Pas créé car optionnel + self.epaisseur = 0.0 + self.epaisseur_R = 0.0 + + # dictionnaire gérant le résultat contraintes en fonction des instants et des abscisses + self.dictInstAbscSig = dict() + self.dictInstAbscSig_S = None # Création si nécessaire + # dictionnaire gérant le résultat température en fonction des instants et des abscisses + self.dictInstAbscTemp = dict() + self.dictInstAbscTemp_S = None # facultatif + self.list_inst = None + self.num_tran = None + + self.noResuMeca = False + self.noResuTher = False + + # 1. resultat mecanique + try : + # On ne construit qu'une table des abscisses et une table des contraintes. + # Le revetement est obligatoirement en interne on commence par lui + para_resu_meca = args['RESU_MECA'] + self.num_char = para_resu_meca['NUM_CHAR'] + self.type_char = para_resu_meca['TYPE'] + + if self.revet == 'OUI' : + # Construction de la table complementaire si revetement + self.dictMeca_S = dict() + self.tabAbscisses_S = list() + self.buildTablesMeca('TABLE_S', para_resu_meca, self.tabAbscisses_S, self.dictMeca_S) + self.epaisseur_R = abs(self.tabAbscisses_S[len(self.tabAbscisses_S)-1] - self.tabAbscisses_S[0]) + + self.buildTablesMeca('TABLE', para_resu_meca, self.tabAbscisses, self.dictMeca, offset=self.epaisseur_R) + + if self.revet == 'OUI' : + self.mergeDictMeca() # merge les tableaux resultats du revetement et de la structure + + # Calcul de l'épaisseur de la coupe. + self.epaisseur = abs(self.tabAbscisses[len(self.tabAbscisses)-1] - self.tabAbscisses[0]) + + except : + self.noResuMeca = True + + # 2. Résultat thermique + try : + para_resu_ther = RESU_THER + self.num_tran = para_resu_ther['NUM_TRAN'] + self.tabAbscisses = list() + self.tabAbscisses_S = None + + listInst = list() + if self.revet == 'OUI' : + # Le revetement est obligatoirement en interne on commence par lui + # 1. Construction champ temperature + self.dictInstAbscTemp_S = dict() + self.buildTemp('TABLE_ST', para_resu_ther, self.dictInstAbscTemp_S) + + # 2. Construction de la "table" des contraintes + self.dictInstAbscSig_S = dict() + self.tabAbscisses_S = list() + self.buildTablesTher('TABLE_S', para_resu_ther, self.tabAbscisses_S, self.dictInstAbscSig_S) + + # 3. calcul de l'épaisseur + self.epaisseur_R = abs(self.tabAbscisses_S[len(self.tabAbscisses_S)-1] - self.tabAbscisses_S[0]) + + # Pour la structure + # 1. Construction champ température + self.buildTemp('TABLE_TEMP', para_resu_ther, self.dictInstAbscTemp, self.epaisseur_R) + + # 2. Construction de la table des contraintes + self.buildTablesTher('TABLE_T', para_resu_ther, self.tabAbscisses, self.dictInstAbscSig, offset=self.epaisseur_R) + + if self.revet == 'OUI' : + self.mergeDictTher() # merge les tableaux resultats du revetement et de la structure + + if not(self.compareListAbscTher()) : + UTMESS('F', 'IMPR_OAR', 'LES COUPES MECANIQUES ET THERMIQUE DOIVENT PARTAGER LES MEMES ABSCISSES') + + try : + self.interpoleInstants() # Interpolation des instants de la table des température sur celle de la table mécanique + except interpolationError, err: + UTMESS('F', 'IMPR_OAR', err.getMess()) + + # 3. Calcul de l'épaisseur de la coupe. + self.epaisseur = abs(self.tabAbscisses[len(self.tabAbscisses)-1] - self.tabAbscisses[0]) + + except : + self.noResuTher = True + + # Construction de l arborescence + self.buildTree() + + + def getAbscisses(self, dicoTable, tableAbsc, offset=0.0) : + """ + Récupère la liste des abscisses + """ + # récupération des abscisses + ABSCISSES = dicoTable['ABSC_CURV'] + + valeurAbsc = 0.0 + for val in ABSCISSES : + valeurAbsc = val + offset + tableAbsc.append(valeurAbsc) + + def buildTablesMeca(self, label, para_resu, tableAbsc, dictMeca, offset=0.0) : + """ + Construction des tableaux mécanique + """ + sigma_xml = ( 'S_RR', 'S_TT', 'S_ZZ', 'S_RT', 'S_TZ', 'S_ZR' ) + + table_meca = para_resu[label].EXTR_TABLE() + + # Utilisation des méthodes de la classe table + dictTable = table_meca.values() + + # récupération des abscisses + self.getAbscisses(dictTable, tableAbsc, offset) + + # Construction de la table mécanique principale + for val in sigma_xml : + dictMeca[val] = list() + + S_XX = dictTable['SIXX'] + S_YY = dictTable['SIYY'] + S_ZZ = dictTable['SIZZ'] + S_XY = dictTable['SIXY'] + S_YZ = dictTable['SIYZ'] + S_XZ = dictTable['SIXZ'] + for v1, v2, v3, v4, v5, v6 in zip(S_XX, S_YY, S_ZZ, S_XY, S_YZ, S_XZ) : + dictMeca['S_RR'].append(v1) + dictMeca['S_TT'].append(v2) + dictMeca['S_ZZ'].append(v3) + dictMeca['S_RT'].append(v4) + dictMeca['S_TZ'].append(v5) + dictMeca['S_ZR'].append(v6) + + def mergeDictMeca(self) : + """ + Merge des résultats mécaniques issus de la structure et du revetement + """ + # Merge des listes d'abscisses + # Le revetement est interieur la derniere abscisse du revetement doit etre egal a la premiere de la structure + if self.tabAbscisses_S[len(self.tabAbscisses_S)-1] != self.tabAbscisses[0] : + UTMESS('F', 'IMPR_OAR', 'LES COUPES DU REVETEMENT ET DE LA STRUCTURE DOIVENT PARTAGER UNE ABSCISSE COMMUNE') + + # On construit une table des abscisses tempopraire + tableAbscTemp = self.tabAbscisses_S + + # On recopie la table des abscisses en sautant le premier + debut = True + for val in self.tabAbscisses : + if debut : + debut = False + continue + tableAbscTemp.append(val) + + self.tabAbscisses = tableAbscTemp + + # On construit des listes de travail intermédiaires que l'on commence par remplir avec les tables "supplémentaires" + dictMecaBis = self.dictMeca_S + + # On recopie les éléments de la structure dans le tableau + debut = True + for v1, v2, v3, v4, v5, v6 in zip(self.dictMeca['S_RR'], self.dictMeca['S_TT'], self.dictMeca['S_ZZ'], self.dictMeca['S_RT'], self.dictMeca['S_TZ'], self.dictMeca['S_ZR']) : + if debut : + debut = False + continue + dictMecaBis['S_RR'].append(v1) + dictMecaBis['S_TT'].append(v2) + dictMecaBis['S_ZZ'].append(v3) + dictMecaBis['S_RT'].append(v4) + dictMecaBis['S_TZ'].append(v5) + dictMecaBis['S_ZR'].append(v6) + + # On restitue ensuite la liste globale dans self.dictMeca + self.dictMeca = dictMecaBis + + + def buildTemp(self, label, para_resu, dictInstAbscTemp, offset=0.0): + """ + Récupération du champ température aux noeuds avec interpolation sur les "instants" du calcul mécanique + """ + table_temp = para_resu[label].EXTR_TABLE() + + # Utilisation des méthodes de la classe table + dictTable = table_temp.values() + + # On construit un dictionnaire associant un "instant" avec un couple ("abscisse", "température") + + # 1. Récupération de la liste des instants + INSTANTS = dictTable['INST'] + for val in INSTANTS : + dictInstAbscTemp[val] = 0 # On crée juste les clés du dictionnaire + + listTables = list() # liste de tables contenant une table pas instant + for inst in dictInstAbscTemp.keys(): + listTables.append(table_temp.INST == inst) + + # 2. Récupération des abscisses + tableAbsc = list() + self.getAbscisses(listTables[0].values(), tableAbsc, offset) + + # 3. Récupération des températures + tableTemp = list() # liste de liste de température (1 par instant) + for tb in listTables : + TEMPERATURE = tb.values()['TEMP'] + tableTemp.append(TEMPERATURE) + + # 4. Construction de dictInstAbscTemp + for i in range(0, len(dictInstAbscTemp.keys())): + listDoublets = list() + for absc, temp in zip(tableAbsc, tableTemp[i]) : + listDoublets.append((absc,temp)) + + inst = dictInstAbscTemp.keys()[i] + dictInstAbscTemp[inst] = listDoublets + + def buildTablesTher(self, label, para_resu, tabAbscisses, dictInstAbscSig, offset=0.0) : + """ + Construction des tableaux thermo-mécanique + listDictTher contient un dictionnaire par numéro d'ordre + """ + table_temp = para_resu[label].EXTR_TABLE() + + # On construit un dictionnaire associant un "instant" avec une liste de couples ("abscisse", liste de "sigma") + + # Utilisation des méthodes de la classe table + dictTable = table_temp.values() + + # On construit un dictionnaire associant un "instant" avec un couple ("abscisse", "température") + + # 1. Récupération de la liste des instants + INSTANTS = dictTable['INST'] + for val in INSTANTS : + dictInstAbscSig[val] = 0 # On crée juste les clés du dictionnaire + + listTables = list() # liste de tables contenant une table pas instant + for inst in dictInstAbscSig.keys(): + listTables.append(table_temp.INST == inst) + + # 2. Récupération des abscisses + self.getAbscisses(listTables[0].values(), tabAbscisses, offset) + + # 3. Récupération des listes de sigma + listListListSigAbscInst = list() # liste des sigma par abscisse par instant + for tbl in listTables: + listListSigAbscInst = list() + + # On crée une table pour chaque instant + S_XX = tbl.values()['SIXX'] + S_YY = tbl.values()['SIYY'] + S_ZZ = tbl.values()['SIZZ'] + S_XY = tbl.values()['SIXY'] + S_YZ = tbl.values()['SIYZ'] + S_XZ = tbl.values()['SIXZ'] + for v1, v2, v3, v4, v5, v6 in zip(S_XX, S_YY, S_ZZ, S_XY, S_YZ, S_XZ) : + listSigAbsc = list() # Liste des sigmas pour une abscisse + listSigAbsc.append(v1) + listSigAbsc.append(v2) + listSigAbsc.append(v3) + listSigAbsc.append(v4) + listSigAbsc.append(v5) + listSigAbsc.append(v6) + + listListSigAbscInst.append(listSigAbsc) + + listListListSigAbscInst.append(listListSigAbscInst) + + # 4. Assemblage du dictionnaire + for i in range(0, len(dictInstAbscSig.keys())) : + listDoublet = list() + for j in range(0, len(tabAbscisses)) : + listDoublet.append((tabAbscisses[j], listListListSigAbscInst[i][j])) + + dictInstAbscSig[dictInstAbscSig.keys()[i]] = listDoublet + + def mergeDictTher(self) : + """ + Merge les resultats issus de la coupe du revetement avec ceux issus de la coupe de la structure + """ + # Merge des listes d'abscisses + # Le revetement est interieur la derniere abscisse du revetement doit etre egal a la premiere de la structure + if self.tabAbscisses_S[len(self.tabAbscisses_S)-1] != self.tabAbscisses[0] : + UTMESS('F', 'IMPR_OAR', 'LES COUPES DU REVETEMENT ET DE LA STRUCTURE DOIVENT PARTAGER UNE ABSCISSE COMMUNE') + + # On construit une table des abscisses tempopraire + tableAbscTemp = self.tabAbscisses_S + + # On recopie la table des abscisses en sautant le premier + debut = True + for val in self.tabAbscisses : + if debut : + debut = False + continue + tableAbscTemp.append(val) + + self.tabAbscisses = tableAbscTemp + + # On construit des listes de travail intermédiaires que l'on commence par remplir avec les tables "supplémentaires" + dictInstAbscSigBis = self.dictInstAbscSig_S + dictInstAbscTempBis = self.dictInstAbscTemp_S + + # On recopie les élément thermiques de la structure principale en sautant la première abscisse de la structure + for key in dictInstAbscTempBis.keys() : # Les dictionnaires partagent les memes instants + debut = True + for valTher in self.dictInstAbscTemp[key] : + if debut : + debut = False + continue + dictInstAbscTempBis[key].append(valTher) + + # On recopie les élément mécaniques de la structure principale en sautant la première abscisse de la structure + for key in dictInstAbscSigBis.keys() : # Les dictionnaires partagent les memes instants + debut = True + for valSig in self.dictInstAbscSig[key] : + if debut : + debut = False + continue + dictInstAbscSigBis[key].append(valSig) + + # On restitue ensuite la liste globale dans self.dictInstAbscSig + self.dictInstAbscSig = dictInstAbscSigBis + self.dictInstAbscTemp = dictInstAbscTempBis + + def compareListAbscTher(self) : + """ + Vérifie que la coupe du champ thermique et la coupe mécanique partagent les memes abscisses + """ + # 1. Récupération des abscisses associées aux températures + listAbsc = list() + lstDoublet = self.dictInstAbscTemp[self.dictInstAbscTemp.keys()[0]] + for val in lstDoublet : + listAbsc.append(val[0]) + + # 2. Comparaison des deux listes + for A1, A2 in zip(self.tabAbscisses, listAbsc) : + if A1 != A2 : return False + + return True + + def interpoleInstants(self) : + """ + Interpole les résultats thermique sur les instants des résultats mécaniques + """ + # 1. récupération des instants des deux tables + listInstTher = self.dictInstAbscTemp.keys() + listInstMeca = self.dictInstAbscSig.keys() + + # 2. calcul de la liste des bornes de la table thermique qui encadrent les résultats mécaniques + dictInstAbscTemp = dict() + listAbscTemp = list() + listBornes = list() + for inst in listInstMeca : + bornes = getBornes(listInstTher, inst) + # Si une des bornes n'est pas définie, on lance une exception + if not(bornes[0]) or not(bornes[1]) : raise interpolationError + + abscTempInf = self.dictInstAbscTemp[bornes[0]] # Liste de doublet (abscisse, temperature) pour la borne inférieure + abscTempSup = self.dictInstAbscTemp[bornes[1]] # Liste de doublet (abscisse, temperature) pour la borne supérieure + + listAbscTemp = list() # liste de couples abscisses/Température + for A1, A2 in zip(abscTempInf, abscTempSup) : # A1 et A2 sont des doublets abscisse/Temperature + temperature = interpoleLin( ((bornes[0], A1[1]), (bornes[1], A2[1])), inst) + listAbscTemp.append((A1[0], temperature)) # on aurait pu tout aussi bien prendre A2[0] (c est pareil ...) + + dictInstAbscTemp[inst] = listAbscTemp + + # remplacement de l'ancienne table par la nouvelle + self.dictInstAbscTemp = dictInstAbscTemp + + def buildTree(self) : + """ + Construction (en mémoire) de l'arborescence du document XML + """ + sigma_xml = ( 'S_RR', 'S_TT', 'S_ZZ', 'S_RT', 'S_TZ', 'S_ZR' ) + + # Création de l'arborescence "géométrie" + nodeGeomComp = self.nodeComp.append("GEOM_COMPO") + nodeGeomComp.append("REVETEMENT", valeur=self.revet) + if self.revet == 'OUI' : + nodeGeomComp.append("EP_REVET", valeur=self.epaisseur_R) + nodeLigneCoupe = nodeGeomComp.append("LIGNE_COUPE") + nodeLigneCoupe.append("EPAISSEUR_EF", valeur=self.epaisseur) + nodeLigneCoupe.append("DIAM_EXT_EF", valeur=self.diametre) + nodeLigneCoupe.append("ORI_ABSC", valeur=self.origine) + + if self.noResuMeca == False : + # Création des abscisses + for val in self.tabAbscisses : + nodeLigneCoupe.append("ABSCISSE", val) + + nodeLigneCoupe.append('PSI', self.angle_c) + + # Création des résultats mécaniques + nodeSigma_u = self.nodeComp.append("SIGMA_UNITE") + nodeSigma_u.append("NUM_MECA", valeur=self.num_char) + nodeSigma_u.append("NOM_MECA", valeur=self.type_char) + nodeSigma_meca = nodeSigma_u.append("SIGMA_MECA") + + for i in range(0, len(self.tabAbscisses)) : + for val in self.dictMeca.keys() : + nodeSigma_meca.append(val, valeur = self.dictMeca[val][i]) + + # Création de l'arborescence "résultat thermo_mécanique" + if self.noResuTher == False : + # Création des abscisses + listDoublet = self.dictInstAbscTemp[self.dictInstAbscTemp.keys()[0]] + for val in listDoublet : + nodeLigneCoupe.append("ABSCISSE", val[0]) + + nodeLigneCoupe.append('PSI', self.angle_c) + + # Création des résultats mécaniques + nodeSigma_ther_c = self.nodeComp.append("SIGMA_THER_C") + nodeSigma_ther_c.append("NUM_TRANSI_THER", valeur=self.num_tran) + + for inst in self.dictInstAbscTemp.keys() : # boucle sur les instants + nodeSigma_ther = nodeSigma_ther_c.append("SIGMA_THER") + nodeSigma_ther.append("INSTANT", valeur=inst) + + # boucle sur les abscisses + for doubletAbscSig, doubletAbscTemp in zip(self.dictInstAbscSig[inst], self.dictInstAbscTemp[inst]) : + nodeSigma_point = nodeSigma_ther.append("SIGMA_POINT") + for val, label in zip(doubletAbscSig[1], sigma_xml) : + nodeSigma_point.append(label, valeur = val) + + nodeSigma_point.append("TEMPERATURE", doubletAbscTemp[1]) + +class tuyauterie(OAR_element) : + """ + Classe permettant de traiter les tuyauteries + """ + def __init__(self, **args) : + self.nodeComp = XMLNode("TUYAUTERIE") + try : + self.para_resu_meca = args['RESU_MECA'] + self.num_char = self.para_resu_meca['NUM_CHAR'] + + #Gestion du maillage + self.maillage = self.para_resu_meca['MAILLAGE'] + mapy = MAIL_PY() + mapy.FromAster(self.maillage) + + self.ma = [val.rstrip() for val in mapy.correspondance_mailles] + self.no = [val.rstrip() for val in mapy.correspondance_noeuds] + + self.dictMailleNoeuds = dict() + for val in self.ma : + self.dictMailleNoeuds[val] = list() + + for i in range(0, len(mapy.co)) : + self.dictMailleNoeuds[self.ma[i]].append(self.no[mapy.co[i][0]]) + self.dictMailleNoeuds[self.ma[i]].append(self.no[mapy.co[i][1]]) + + self.dictNoeudValTorseur = dict() + self.buildTableTorseur() + + except : + UTMESS('F', 'IMPR_OAR', "ERREUR D'ACCES AUX DONNEES") + + # Construction de l arborescence + self.buildTree() + + + def buildTableTorseur(self) : + """ + Construit un dictionnaire associant un noeud à un torseur exprimé sous la forme d'une liste de valeurs + """ + table_temp = self.para_resu_meca['TABLE'].EXTR_TABLE() + + # Utilisation des méthodes de la classe table + dictTable = table_temp.values() + + # 1. Récupération de la liste des noeuds + NOEUDS = dictTable['NOEUD'] + for val in NOEUDS : + self.dictNoeudValTorseur[val.rstrip()] = list() # On crée juste les clés du dictionnaire + + N = dictTable['N'] + VY = dictTable['VY'] + VZ = dictTable['VZ'] + MT = dictTable['MT'] + MFY = dictTable['MFY'] + MFZ = dictTable['MFZ'] + + for no, n, vy, vz, mt, mfy, mfz in zip(NOEUDS, N, VY, VZ, MT, MFY, MFZ): + no = no.rstrip() + self.dictNoeudValTorseur[no].append(n) + self.dictNoeudValTorseur[no].append(vy) + self.dictNoeudValTorseur[no].append(vz) + self.dictNoeudValTorseur[no].append(mt) + self.dictNoeudValTorseur[no].append(mfy) + self.dictNoeudValTorseur[no].append(mfz) + + + def buildTree(self) : + """ + Construction (en mémoire) de l'arborescence du document XML + """ + torseur_XML = ( 'FX', 'FY', 'FZ', 'MX', 'MY', 'MZ' ) + + # Création de l'arborescence "torseur" + nodeTMG = self.nodeComp.append("TORSEUR_MECA-GRP") + nodeTM = nodeTMG.append("TORSEUR_MECA") + nodeTM.append("oar:CHAR-REF", self.num_char) + nodeMTG = nodeTM.append("MAILLE_TORSEUR-GRP") + nodeMT = nodeMTG.append("MAILLE_TORSEUR") + for MA in self.dictMailleNoeuds.keys() : # Boucle sur les mailles + nodeMT.append("oar:MAILLE-REF", MA) + for NO in self.dictMailleNoeuds[MA] : # 2 noeuds + nodeTorseur = nodeMT.append("oar:TORSEUR") + for val, cle in zip(self.dictNoeudValTorseur[NO], torseur_XML) : # 6 valeurs + nodeTorseur.append(cle, val) + + + +def impr_oar_ops(self, TYPE_CALC, **args) : + """ + Macro IMPR_OAR + Ecrit des fichiers au format XML selon la DTD OAR Fichier + + IMPR_OAR va etre utilise en deux fois d abord calcul mecanique, + ensuite calcul thermique ce qui implique qu il ne peut y avoir qu'une seule des deux options a la fois + """ + # La macro compte pour 1 dans la numérotation des commandes + self.set_icmd(1) + + obj = None + + if TYPE_CALC=='COMPOSANT' : + obj = composant(**args) + elif TYPE_CALC=='MEF' : + UTMESS('F', 'IMPR_OAR', 'FONCTION NON IMPLANTEE') + elif TYPE_CALC=='TUYAUTERIE' : + obj = tuyauterie(**args) + else : + UTMESS('F', 'IMPR_OAR', 'Mot clé facteur inconnu') + + # Ecriture dans le fichier + # Récupération de la LU du fichier de sortie + try : + unite = args['UNITE'] + except : + unite = 38 + + try : + ajout=args['AJOUT'] + except : + ajout='NON' + + name = 'fort.'+str(unite) + try : + if ajout=='NON' : # nouveau fichier + fileObj = open(name, 'wt') + else : # extension du fichier existant + fileObj = open(name, 'a+t') + except IOError : + UTMESS('F', 'IMPR_OAR', "Erreur à l'ouverture du fichier") + else : + obj.getNode().save(fileObj) + fileObj.close() diff --git a/Aster/Cata/cataSTA9/Macro/impr_table_ops.py b/Aster/Cata/cataSTA9/Macro/impr_table_ops.py new file mode 100644 index 00000000..fec1bdbb --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/impr_table_ops.py @@ -0,0 +1,237 @@ +#@ MODIF impr_table_ops Macro DATE 06/11/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 MCOURTOI M.COURTOIS + +import os.path +import re + +from types import ListType, TupleType, StringTypes +EnumTypes=(ListType, TupleType) + + +# ------------------------------------------------------------------------------ +def impr_table_ops(self, FORMAT, TABLE, INFO, **args): + """ + Macro IMPR_TABLE permettant d'imprimer une table dans un fichier. + Erreurs dans IMPR_TABLE pour ne pas perdre la base. + """ + macro='IMPR_TABLE' + import aster + from Accas import _F + from Cata.cata import table_jeveux + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + from Utilitai.Sensibilite import NomCompose + 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 + DETRUIRE = self.get_cmd('DETRUIRE') + RECU_FONCTION = self.get_cmd('RECU_FONCTION') + + #---------------------------------------------- + # 0. Traitement des arguments, initialisations + # unité logique des fichiers réservés + ul_reserve=(8,) + UL = UniteAster() + + # 0.1. Fichier + nomfich=None + if args['UNITE'] and args['UNITE']<>6: + nomfich=UL.Nom(args['UNITE']) + if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0: + if FORMAT=='XMGRACE': + UTMESS('A',macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \ + 'à la suite.') + + # 0.2. Création des dictionnaires des FILTRES + Filtre=[] + if args['FILTRE']: + for Fi in args['FILTRE']: + dF = Fi.cree_dict_valeurs(Fi.mc_liste) + for mc in dF.keys(): + if dF[mc]==None: del dF[mc] + Filtre.append(dF) + # format pour l'impression des filtres + form_filtre='\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s' + + # 0.3. Création de la liste des tables (une seule sans SENSIBILITE) + form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)' + ltab=[] + if args['SENSIBILITE']: + lps=args['SENSIBILITE'] + if not type(lps) in EnumTypes: + lps=[lps,] + for ps in lps: + ncomp = NomCompose(TABLE, ps) + if ncomp != None: + sdtab = table_jeveux(ncomp) + tabs = sdtab.EXTR_TABLE() + tabs.titr = TABLE.TITRE() + tabs.titr + form_sens % (ps.get_name(), ncomp) + ltab.append([tabs, sdtab]) + else: + ltab.append([TABLE.EXTR_TABLE(), TABLE]) + + if len(ltab)<1: + return ier + + # 0.4.1. liste des paramètres à conserver + nom_para=ltab[0][0].para + if args['NOM_PARA']: + nom_para=args['NOM_PARA'] + if not type(nom_para) in EnumTypes: + nom_para=[nom_para,] + + # 0.4.2. Traiter le cas des UL réservées + if args['UNITE'] and args['UNITE'] in ul_reserve: + UL.Etat(args['UNITE'], etat='F') + + #---------------------------------------------- + # Boucle sur les tables + for tab, sdtab in ltab: + + # ----- 1. Infos de base + if INFO==2: + print 'IMPRESSION DE LA TABLE : %s' % sdtab.get_name() + + if args['TITRE']: + tab.titr=args['TITRE'] + '\n' + tab.titr + + # ----- 2. Filtres + for Fi in Filtre: + col = getattr(tab, Fi['NOM_PARA']) + # peu importe le type + opts=[Fi[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if Fi.has_key(k)] + kargs={} + for k in ('CRITERE','PRECISION'): + if Fi.has_key(k): + kargs[k]=Fi[k] + tab = tab & ( getattr(col, Fi['CRIT_COMP'])(*opts,**kargs) ) + # trace l'operation dans le titre + #if FORMAT in ('TABLEAU','ASTER'): + tab.titr+=form_filtre % (Fi['NOM_PARA'], Fi['CRIT_COMP'], \ + ' '.join([str(v) for v in opts])) + + # ----- 3. Tris + if args['TRI']: + # une seule occurence de TRI + T0=args['TRI'][0] + dT=T0.cree_dict_valeurs(T0.mc_liste) + tab.sort(CLES=dT['NOM_PARA'], ORDRE=dT['ORDRE']) + + # ----- 4. Impression + # vérification des paramètres + for p in nom_para: + if not p in tab.para: + UTMESS('A', 'IMPR_TABLE', 'Paramètre absent de la table : %s' % p) + + # sélection des paramètres et suppression des colonnes vides + timp = tab[nom_para] + timp = timp.SansColonneVide() + + # passage des mots-clés de mise en forme à la méthode Impr + kargs=args.copy() + kargs.update({ + 'FORMAT' : FORMAT, + 'FICHIER' : nomfich, + 'dform' : {}, + }) + # pour l'impression des fonctions + kfonc={ + 'FORMAT' : FORMAT, + 'FICHIER' : nomfich, + } + + # 4.1. au format AGRAF + if FORMAT=='AGRAF': + kargs['dform']={ 'formR' : '%12.5E' } + kfonc['FORMAT']='TABLEAU' + + # 4.2. au format XMGRACE et dérivés + elif FORMAT=='XMGRACE': + kargs['dform']={ 'formR' : '%.8g' } + kargs['PILOTE']=args['PILOTE'] + kfonc['PILOTE']=args['PILOTE'] + + # 4.3. format spécifié dans les arguments + if args['FORMAT_R']: + kargs['dform'].update({ 'formR' : fmtF2PY(args['FORMAT_R']) }) + + # 4.4. regroupement par paramètre : PAGINATION + if args['PAGINATION']: + l_ppag=args['PAGINATION'] + if not type(l_ppag) in EnumTypes: + l_ppag=[l_ppag,] + kargs['PAGINATION'] = [p for p in l_ppag if p in nom_para] + l_para_err = [p for p in l_ppag if not p in nom_para] + if len(l_para_err)>0: + UTMESS('A', 'IMPR_TABLE', 'Paramètres absents de la table (ou de '\ + 'NOM_PARA) : %s' % ', '.join(l_para_err)) + + timp.Impr(**kargs) + + # ----- 5. IMPR_FONCTION='OUI' + if args['IMPR_FONCTION'] and args['IMPR_FONCTION']=='OUI': + # cherche parmi les cellules celles qui contiennent un nom de fonction + dfon={} + for row in timp['FONCTION', 'FONCTION_C']: + for par,cell in row.items(): + if type(cell) in StringTypes: + if aster.getvectjev(cell.strip().ljust(19)+'.PROL')<>None: + dfon[cell.strip().ljust(19)]=par + # impression des fonctions trouvées + for f,par in dfon.items(): + __fonc=RECU_FONCTION( + TABLE=sdtab, + FILTRE=_F( + NOM_PARA=par, + VALE_K=f, + ), + NOM_PARA_TABL=par, + ) + __fonc.Trace(**kfonc) + DETRUIRE(CONCEPT=_F(NOM=('__fonc',),), ALARME='NON', INFO=1,) + + # 99. Traiter le cas des UL réservées + UL.EtatInit() + return ier + +# ------------------------------------------------------------------------------ +def fmtF2PY(fformat): + """Convertit un format Fortran en format Python (printf style). + Gère uniquement les fortrans réels, par exemple : E12.5, 1PE13.6, D12.5... + """ + fmt='' + matP=re.search('([0-9]+)P',fformat) + if matP: + fmt+=' '*int(matP.group(1)) + matR=re.search('([eEdDfFgG]{1})([\.0-9]+)',fformat) + if matR: + fmt+='%'+matR.group(2)+re.sub('[dD]+','E',matR.group(1)) + try: + s=fmt % -0.123 + except (ValueError, TypeError), msg: + fmt='%12.5E' + print 'Error :',msg + print 'Format par défaut utilisé :',fmt + return fmt diff --git a/Aster/Cata/cataSTA9/Macro/info_fonction_ops.py b/Aster/Cata/cataSTA9/Macro/info_fonction_ops.py new file mode 100644 index 00000000..0fe9c89e --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/info_fonction_ops.py @@ -0,0 +1,307 @@ +#@ MODIF info_fonction_ops Macro DATE 24/10/2006 AUTEUR DURAND C.DURAND +# -*- 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. +# ====================================================================== +def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,INFO,**args): + """ + Ecriture de la macro INFO_FONCTION + """ + ier=0 + import string + from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe + import math + from Accas import _F + from Utilitai.Utmess import UTMESS + import types + from types import ListType, TupleType + EnumTypes = (ListType, TupleType) + + ### On importe les definitions des commandes a utiliser dans la macro + CREA_TABLE = self.get_cmd('CREA_TABLE') + CALC_TABLE = self.get_cmd('CALC_TABLE') + IMPR_TABLE = self.get_cmd('IMPR_TABLE') + CALC_FONCTION = self.get_cmd('CALC_FONCTION') + + ### Comptage commandes + déclaration concept sortant + self.set_icmd(1) + self.DeclareOut('C_out',self.sd) + + ### type de traitement + + ### + if (MAX != None): + if type(MAX['FONCTION']) not in EnumTypes : l_fonc=[MAX['FONCTION'],] + else : l_fonc=MAX['FONCTION'] + __tmfonc=[None]*3 + k=0 + mfact=[] + ltyfo=[] + lpara=[] + lresu=[] + lfnom=[] + for fonc in l_fonc : + __ff=fonc.convert() + __ex=__ff.extreme() + ltyfo.append(__ff.__class__) + lpara.append(__ff.para['NOM_PARA']) + lresu.append(__ff.para['NOM_RESU']) + lfnom.append(fonc.nom) + n_mini=len(__ex['min']) + n_maxi=len(__ex['max']) + listeMCF=[_F(LISTE_K=[fonc.nom]*(n_mini+n_maxi),PARA='FONCTION'), + _F(LISTE_K=['MINI',]*n_mini+['MAXI',]*n_maxi,PARA='TYPE'),] + n_resu=__ff.para['NOM_RESU'] + if isinstance(__ff,t_nappe) : + listeMCF=listeMCF+[\ + _F(LISTE_R=[i[0] for i in __ex['min']]+[i[0] for i in __ex['max']],PARA=__ff.para['NOM_PARA']),\ + _F(LISTE_R=[i[1] for i in __ex['min']]+[i[1] for i in __ex['max']],PARA=__ff.para['NOM_PARA_FONC']),\ + _F(LISTE_R=[i[2] for i in __ex['min']]+[i[2] for i in __ex['max']],PARA=__ff.para['NOM_RESU'])] + else : + listeMCF=listeMCF+[\ + _F(LISTE_R=[i[0] for i in __ex['min']]+[i[0] for i in __ex['max']],PARA=__ff.para['NOM_PARA']),\ + _F(LISTE_R=[i[1] for i in __ex['min']]+[i[1] for i in __ex['max']],PARA=__ff.para['NOM_RESU'])] + __tmfonc[k]=CREA_TABLE(LISTE=listeMCF) + if k!=0 : + mfact.append(_F(OPERATION = 'COMB',TABLE=__tmfonc[k])) + k=k+1 + ltyfo=dict([(i,0) for i in ltyfo]).keys() + lpara=dict([(i,0) for i in lpara]).keys() + lresu=dict([(i,0) for i in lresu]).keys() + if len(ltyfo)>1 : + UTMESS('F','INFO_FONCTION',''' calcul du MAX, la liste de fonctions\ + n'est pas homogène en type (fonctions et nappes) ''') + if len(lpara)>1 : + UTMESS('F','INFO_FONCTION',''' calcul du MAX, la liste de fonctions\ + n'est pas homogène en label NOM_PARA :'''+' '.join(lpara)) + if len(lresu)>1 : + UTMESS('F','INFO_FONCTION',''' calcul du MAX, la liste de fonctions\ + n'est pas homogène en label NOM_RESU : '''+' '.join(lresu)) + __tab=CALC_TABLE(TABLE = __tmfonc[0], + ACTION = mfact ) + __min=CALC_TABLE(TABLE = __tab, + ACTION = _F(OPERATION = 'FILTRE', + CRIT_COMP = 'MINI', + NOM_PARA = lresu[0] ), ) + __max=CALC_TABLE(TABLE = __tab, + ACTION = _F(OPERATION = 'FILTRE', + CRIT_COMP = 'MAXI', + NOM_PARA = lresu[0] ), ) + print __min.EXTR_TABLE() + print __max.EXTR_TABLE() + C_out=CALC_TABLE(TABLE = __min, + TITRE = 'Calcul des extrema sur fonction '+' '.join(lfnom), + ACTION = _F(OPERATION = 'COMB', + TABLE=__max ), ) + print C_out.EXTR_TABLE() + + ### + if (ECART_TYPE != None): + __ff=ECART_TYPE['FONCTION'].convert() + if ECART_TYPE['INST_INIT']!=None : tini=ECART_TYPE['INST_INIT'] + else : tini=__ff.vale_x[0] + if ECART_TYPE['INST_FIN' ]!=None : tfin=ECART_TYPE['INST_FIN' ] + else : tfin=__ff.vale_x[-1] + __ff=__ff.cut(tini,__ff.vale_x[-1],ECART_TYPE['PRECISION'],ECART_TYPE['CRITERE']) + __ff=__ff.cut(__ff.vale_x[0],tfin,ECART_TYPE['PRECISION'],ECART_TYPE['CRITERE']) + if ECART_TYPE['METHODE' ]=='SIMPSON' : __ex=__ff.simpson(0.) + if ECART_TYPE['METHODE' ]=='TRAPEZE' : __ex=__ff.trapeze(0.) + fmoy=__ex.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0]) + __ff=__ff+(-1*fmoy) + __ff=__ff*__ff + if ECART_TYPE['METHODE' ]=='SIMPSON' : __ez=__ff.simpson(0.) + if ECART_TYPE['METHODE' ]=='TRAPEZE' : __ez=__ff.trapeze(0.) + sigma=math.sqrt(__ez.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0])) + C_out=CREA_TABLE(LISTE=(_F(LISTE_K=ECART_TYPE['FONCTION'].nom,PARA='FONCTION'), + _F(LISTE_K=ECART_TYPE['METHODE'] ,PARA='METHODE'), + _F(LISTE_R=fmoy ,PARA='MOYENNE'), + _F(LISTE_R=sigma ,PARA='ECART_TYPE'), + _F(LISTE_R=tini ,PARA='INST_INIT'), + _F(LISTE_R=tfin ,PARA='INST_FIN'),) + ) + + ### + if (RMS != None): + RMS =list(RMS) + sigm =[] + tmpi =[] + tmpf =[] + nomf =[] + meth =[] + for i_rms in RMS : + __ff=i_rms['FONCTION'].convert() + if i_rms['INST_INIT']!=None : tini=i_rms['INST_INIT'] + else : tini=__ff.vale_x[0] + if i_rms['INST_FIN' ]!=None : tfin=i_rms['INST_FIN' ] + else : tfin=__ff.vale_x[-1] + __ff=__ff.cut(tini,__ff.vale_x[-1],i_rms['PRECISION'],i_rms['CRITERE']) + __ff=__ff.cut(__ff.vale_x[0],tfin,i_rms['PRECISION'],i_rms['CRITERE']) + __ff=__ff*__ff + if i_rms['METHODE' ]=='SIMPSON' : __ez=__ff.simpson(0.) + if i_rms['METHODE' ]=='TRAPEZE' : + __ez=__ff.trapeze(0.) + sigm.append(math.sqrt(__ez.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0]))) + tmpi.append(tini) + tmpf.append(tfin) + nomf.append(i_rms['FONCTION'].nom) + meth.append(i_rms['METHODE']) + C_out=CREA_TABLE(LISTE=(_F(LISTE_K=nomf ,PARA='FONCTION'), + _F(LISTE_K=meth ,PARA='METHODE'), + _F(LISTE_R=tmpi ,PARA='INST_INIT'), + _F(LISTE_R=tmpf ,PARA='INST_FIN'), + _F(LISTE_R=sigm ,PARA='RMS'), ) + ) + + ### + if (NORME != None): + __ff=NORME['FONCTION'].convert() + norme=[] + for __fi in __ff.l_fonc : + norme.append(__fi.normel2()) + nom=[NORME['FONCTION'].nom,]*len(norme) + C_out=CREA_TABLE(LISTE=(_F(LISTE_R=norme ,PARA='NORME'), + _F(LISTE_K=nom ,PARA='FONCTION'), ) + ) + + ### + if (NOCI_SEISME != None): + l_table=[] + if NOCI_SEISME['SPEC_OSCI'] !=None : + ### cas intensité spectrale d'une nappe de SRO + ### la seule option licite est INTE_SPEC + UTMESS('I','INFO_FONCTION',''' : intensite spectrale, avant de calculer l'\ +intensite spectrale, il est prudent de verifier la norme de la nappe sur laquelle \ +porte le calcul, ceci peut etre une source d erreurs.''') + amor=NOCI_SEISME['AMOR_REDUIT'] + fini=NOCI_SEISME['FREQ_INIT' ] + ffin=NOCI_SEISME['FREQ_FIN' ] + __sp =NOCI_SEISME['SPEC_OSCI'].convert() + vale_x=__sp.l_fonc[0].vale_x + vale_y=[__sp(amor,f) for f in vale_x] + para =__sp.l_fonc[0].para + __srov=t_fonction(vale_x,vale_y,para) + if NOCI_SEISME['NATURE']=='DEPL' : + __srov.vale_y=(__srov.vale_y/__srov.vale_x)*2.*math.pi + elif NOCI_SEISME['NATURE']=='VITE' : + __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x + elif NOCI_SEISME['NATURE']=='ACCE' : + __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x + __srov.vale_y=__srov.vale_y/__srov.vale_x/2./math.pi + __srov=__srov.cut(fini,ffin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) + insp=__srov.trapeze(0.).vale_y[-1] + l_table.append(_F(LISTE_R=fini ,PARA='FREQ_INIT' )) + l_table.append(_F(LISTE_R=ffin ,PARA='FREQ_FIN' )) + l_table.append(_F(LISTE_R=amor ,PARA='AMOR_REDUIT')) + l_table.append(_F(LISTE_R=insp ,PARA='INTE_SPECT' )) + if NOCI_SEISME['FONCTION'] !=None : + ### cas fonction + l_table.append(_F(LISTE_K=NOCI_SEISME['FONCTION'].nom,PARA='FONCTION')) + __ac=NOCI_SEISME['FONCTION'].convert() + option= NOCI_SEISME['OPTION'] + if NOCI_SEISME['INST_INIT']!=None : tdeb=NOCI_SEISME['INST_INIT'] + else : tdeb=__ac.vale_x[0] + if NOCI_SEISME['INST_FIN' ]!=None : tfin=NOCI_SEISME['INST_FIN' ] + else : tfin=__ac.vale_x[-1] + # calcul de la vitesse : + __vi=__ac.trapeze(NOCI_SEISME['COEF']) + # calcul du déplacement : + __de=__vi.trapeze(NOCI_SEISME['COEF']) + # calcul de |acceleration| : + __aa=__ac.abs() + # calcul de integrale(|acceleration|) : + ### on "coupe" la fonction entre tdeb et tfin + __ac=__ac.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) + __vi=__vi.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) + __de=__de.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) + __aa=__aa.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) + if NOCI_SEISME['FREQ' ]!=None : l_freq=NOCI_SEISME['FREQ'] + elif NOCI_SEISME['LIST_FREQ']!=None : l_freq=NOCI_SEISME['LIST_FREQ'].Valeurs() + else : + # fréquences par défaut + l_freq=[] + for i in range(56) : l_freq.append( 0.2+0.050*i) + for i in range( 8) : l_freq.append( 3.0+0.075*i) + for i in range(14) : l_freq.append( 3.6+0.100*i) + for i in range(24) : l_freq.append( 5.0+0.125*i) + for i in range(28) : l_freq.append( 8.0+0.250*i) + for i in range( 6) : l_freq.append(15.0+0.500*i) + for i in range( 4) : l_freq.append(18.0+1.000*i) + for i in range(10) : l_freq.append(22.0+1.500*i) + if option in('TOUT','MAXI','ACCE_SUR_VITE') : + # calcul du max des valeurs absolues + maxa_ac=__ac.abs().extreme()['max'][0][1] + maxa_vi=__vi.abs().extreme()['max'][0][1] + maxa_de=__de.abs().extreme()['max'][0][1] + l_table.append(_F(LISTE_R=maxa_ac,PARA='ACCE_MAX')) + l_table.append(_F(LISTE_R=maxa_vi,PARA='VITE_MAX')) + l_table.append(_F(LISTE_R=maxa_de,PARA='DEPL_MAX')) + l_table.append(_F(LISTE_R=maxa_ac/maxa_vi,PARA='ACCE_SUR_VITE')) + if option in('TOUT','INTE_ARIAS') : + __a2=__ac*__ac + inte_arias=__a2.trapeze(0.).vale_y[-1] + inte_arias=inte_arias*math.pi/NOCI_SEISME['PESANTEUR']/2. + l_table.append(_F(LISTE_R=inte_arias,PARA='INTE_ARIAS')) + if option in('TOUT','POUV_DEST') : + __v2=__vi*__vi + pouv_dest=__v2.trapeze(0.).vale_y[-1] + pouv_dest=pouv_dest*(math.pi)**3/NOCI_SEISME['PESANTEUR']/2. + l_table.append(_F(LISTE_R=pouv_dest,PARA='POUV_DEST')) + if option in('TOUT','VITE_ABSO_CUMU') : + __vc=__aa.trapeze(0.) + vite_abso=__vc.vale_y[-1] + l_table.append(_F(LISTE_R=vite_abso,PARA='VITE_ABSO_CUMU')) + if option in('TOUT','INTE_SPEC') : + amor=NOCI_SEISME['AMOR_REDUIT'] + fini=NOCI_SEISME['FREQ_INIT' ] + ffin=NOCI_SEISME['FREQ_FIN' ] + __so= CALC_FONCTION(SPEC_OSCI=_F( + NATURE ='VITE', + NATURE_FONC='ACCE', + FONCTION =NOCI_SEISME['FONCTION'], + METHODE ='NIGAM', + NORME =NOCI_SEISME['NORME'], + FREQ =l_freq, + AMOR_REDUIT=(amor,) + ), ) + __srov=__so.convert().l_fonc[0] + __srov=__srov.cut(fini,ffin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) + __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x + insp=__srov.trapeze(0.).vale_y[-1] + l_table.append(_F(LISTE_R=fini ,PARA='FREQ_INIT' )) + l_table.append(_F(LISTE_R=ffin ,PARA='FREQ_FIN' )) + l_table.append(_F(LISTE_R=amor ,PARA='AMOR_REDUIT')) + l_table.append(_F(LISTE_R=insp ,PARA='INTE_SPECT' )) + if option in('TOUT','DUREE_PHAS_FORT') : + __a2=__ac*__ac + __i2=__a2.trapeze(0.) + arias = __i2.vale_y[-1]*math.pi/NOCI_SEISME['PESANTEUR']/2. + valinf = arias * NOCI_SEISME['BORNE_INF'] + valsup = arias * NOCI_SEISME['BORNE_SUP'] + for i in range(len(__i2.vale_x)) : + ariask = __i2.vale_y[i]*math.pi/NOCI_SEISME['PESANTEUR']/2. + if ariask>=valinf : break + for j in range(len(__i2.vale_x)-1,-1,-1) : + ariask = __i2.vale_y[j]*math.pi/NOCI_SEISME['PESANTEUR']/2. + if ariask<=valsup : break + dphfor = __i2.vale_x[j] - __i2.vale_x[i] + l_table.append(_F(LISTE_R=dphfor,PARA='DUREE_PHAS_FORT')) + C_out=CREA_TABLE(LISTE=l_table) + + if INFO > 1: + IMPR_TABLE(UNITE=6, + TABLE=C_out) + return ier diff --git a/Aster/Cata/cataSTA9/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA9/Macro/lire_fonction_ops.py new file mode 100644 index 00000000..748774ea --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/lire_fonction_ops.py @@ -0,0 +1,268 @@ +#@ MODIF lire_fonction_ops Macro DATE 24/05/2005 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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.path, Numeric + +# ------------------------------------------------------------------------------ +def lire_blocs(nomfich, SEPAR): + """Retourne la liste des blocs + """ + def info(ib, nlig, ncol): + """Affiche les infos d'un bloc""" + print " . Bloc %2d : %6d lignes, %6d colonnes" % (ib, nlig, ncol) + print " Lecture des blocs du fichier '%s'" % nomfich + fich=open(nomfich, 'r') + ier=0 + message = '' + if SEPAR=='None' : SEPAR=None + blocs = [] + lignes = [] + llen=0 + il=0 + for line in fich: + il+=1 + try: + if line.strip()=='': + raise ValueError + splin = line.split(SEPAR) + lignes.append(map(float, splin)) + if llen==0: + llen=len(splin) + elif len(splin)<>llen: + ier+=1 + message='Ligne %d : %d champs au lieu de %d attendus' % (il,len(splin),llen) + return ier, message, [] + except ValueError: + if lignes==[]: + pass # dans ce cas, on a plusieurs lignes délimitant 2 fonctions + else: + blocs.append(Numeric.array(lignes)) + info(len(blocs), len(lignes), llen) + lignes=[] + llen=0 + fich.close() + if lignes!=[] : + blocs.append(Numeric.array(lignes)) + info(len(blocs), len(lignes), llen) + return ier, message, blocs + +# ------------------------------------------------------------------------------ +def liste_double(nomfich,INDIC_PARA,INDIC_RESU,SEPAR): + """Méthode de construction du VALE pour le format libre + format LIBRE + Les lignes contenant autre chose que des séquences de nombres + réels et de séparateurs sont considérées comme délimitant deux + fonctions différentes. Cette situation correspond à l exception + ValueError levée par le map de float. Le deuxieme indice de + INDIC_PARA et INDIC_RESU est l indice permettant de pointer sur la + fonction voulue, au sens de ce découpage. + """ + from Utilitai.transpose import transpose + ier, message, blocs = lire_blocs(nomfich, SEPAR) + if ier<>0: + return ier,message,[] + + # vérifications de cohérences lignes et colonnes + nb_blocs = len(blocs) + bloc_para = INDIC_PARA[0] + col_para = INDIC_PARA[1] + bloc_resu = INDIC_RESU[0] + col_resu = INDIC_RESU[1] + msg=[] + if bloc_para>nb_blocs : + ier+=1 + msg.append("Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para)) + if bloc_resu>nb_blocs: + ier+=1 + msg.append("Il y a %d blocs or INDIC_RESU=(%d, .)" % (nb_blocs, bloc_resu)) + if ier<>0: + return ier, '\n'.join(msg), [] + + if col_para>len(blocs[bloc_para-1][0]): + ier+=1 + msg.append("Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \ + (bloc_para, len(blocs[bloc_para-1][0]), col_para)) + if col_resu>len(blocs[bloc_resu-1][0]) : + ier+=1 + msg.append("Le bloc %d comporte %d colonnes or INDIC_RESU=(., %d)" % \ + (bloc_resu, len(blocs[bloc_resu-1][0]), col_resu)) + if ier<>0: + return ier, '\n'.join(msg), [] + + # construction du VALE de la fonction par recherche des indices + # de colonnes et de fonctions dans le tableau blocs + vale_para = blocs[bloc_para-1][:,col_para-1] + vale_resu = blocs[bloc_resu-1][:,col_resu-1] + if len(vale_para)!=len(vale_resu) : + ier+=1 + print 'VALE_PARA =', vale_para + print 'VALE_RESU =', vale_resu + message="""Les deux colonnes extraites n'ont pas la meme longueur + %d lignes pour PARA + %d lignes pour RESU""" % (len(vale_para), len(vale_resu)) + if ier<>0: + return ier,message,[] + + laux=transpose([vale_para, vale_resu]) + liste_vale=[] + for v in laux: liste_vale.extend(v) + return ier,'',liste_vale + +# ------------------------------------------------------------------------------ +def liste_simple(nomfich,INDIC_PARA,SEPAR): + """recherche d'une liste simple + """ + ier, message, blocs = lire_blocs(nomfich, SEPAR) + + # vérifications de cohérences lignes et colonnes + nb_blocs = len(blocs) + bloc_para = INDIC_PARA[0] + col_para = INDIC_PARA[1] + msg=[] + if bloc_para>nb_blocs : + ier+=1 + msg.append("Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para)) + if col_para>len(blocs[bloc_para-1][0]): + ier+=1 + msg.append("Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \ + (bloc_para, len(blocs[bloc_para-1][0]), col_para)) + if ier<>0: + return ier, '\n'.join(msg), [] + + # construction du VALE de la fonction par recherche des indices + # de colonnes et de fonctions dans le tableau l_fonc + vale_1=blocs[bloc_para-1][:,col_para-1] + return ier,'',vale_1.tolist() + +# ------------------------------------------------------------------------------ +def lire_fonction_ops(self,FORMAT,TYPE,SEPAR,INDIC_PARA,UNITE, + NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE, + PROL_GAUCHE,VERIF,INFO,TITRE,**args): + """Méthode corps de la macro + """ + from Accas import _F + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + + ier=0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # On recopie le mot cle defi_fonction pour le proteger + if TYPE=='NAPPE' : + mc_DEFI_FONCTION=args['DEFI_FONCTION'] + + # On importe les definitions des commandes a utiliser dans la macro + DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') + DEFI_NAPPE =self.get_cmd('DEFI_NAPPE') + + nompro='LIRE_FONCTION' + + # Lecture de la fonction dans un fichier d unité logique UNITE + UL = UniteAster() + nomfich=UL.Nom(UNITE) + if not os.path.isfile(nomfich): + UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) + + # fonction(_c) ou nappe en sortie + self.DeclareOut('ut_fonc',self.sd) + + if TYPE=='FONCTION': + # mise en forme de la liste de valeurs suivant le format choisi : + ier,message,liste_vale=liste_double(nomfich,INDIC_PARA,args['INDIC_RESU'],SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + # création de la fonction ASTER : + ut_fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, + NOM_RESU =NOM_RESU, + PROL_DROITE=PROL_DROITE, + PROL_GAUCHE=PROL_GAUCHE, + INTERPOL =INTERPOL, + INFO =INFO, + TITRE =TITRE, + VERIF =VERIF, + VALE =liste_vale,) + + elif TYPE=='FONCTION_C': + # mise en forme de la liste de valeurs suivant le format choisi : + if 'INDIC_REEL' in args : + indic1=args['INDIC_REEL'] + indic2=args['INDIC_IMAG'] + if 'INDIC_MODU' in args : + indic1=args['INDIC_MODU'] + indic2=args['INDIC_PHAS'] + ier,message,liste_vale_r=liste_double(nomfich,INDIC_PARA,indic1,SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + ier,message,liste_vale_i=liste_double(nomfich,INDIC_PARA,indic2,SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + liste=[] + if 'INDIC_REEL' in args : + for i in range(len(liste_vale_r)/2) : + liste.extend([liste_vale_r[2*i],liste_vale_r[2*i+1],liste_vale_i[2*i+1]]) + elif 'INDIC_MODU' in args : + for i in range(len(liste_vale_r)/2) : + module=liste_vale_r[2*i+1] + phase =liste_vale_i[2*i+1] + liste.extend([liste_vale_r[2*i],module*cos(phase),module*sin(phase)]) + + # création de la fonction ASTER : + ut_fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, + NOM_RESU =NOM_RESU, + PROL_DROITE =PROL_DROITE, + PROL_GAUCHE =PROL_GAUCHE, + INTERPOL =INTERPOL, + INFO =INFO, + TITRE =TITRE, + VERIF =VERIF, + VALE_C =liste,) + + elif TYPE=='NAPPE': + + # création de la nappe ASTER : + motscles={} + motscles['DEFI_FONCTION']=[] + for elem in mc_DEFI_FONCTION: + ier,message,liste_vale=liste_double(nomfich,args['INDIC_ABSCISSE'],elem['INDIC_RESU'],SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + motscles['DEFI_FONCTION'].append( _F( VALE =liste_vale, + INTERPOL =args['INTERPOL_FONC'], + PROL_DROITE=args['PROL_DROITE_FONC'], + PROL_GAUCHE=args['PROL_GAUCHE_FONC'] ) ) + ier,message,liste_para=liste_simple(nomfich,INDIC_PARA,SEPAR) + if ier!=0: UTMESS('F', nompro, message) + + # création de la nappe + ut_fonc=DEFI_NAPPE( PARA =liste_para, + NOM_PARA =NOM_PARA, + NOM_PARA_FONC =args['NOM_PARA_FONC'], + NOM_RESU =NOM_RESU, + PROL_DROITE =PROL_DROITE, + PROL_GAUCHE =PROL_GAUCHE, + INTERPOL =INTERPOL, + INFO =INFO, + TITRE =TITRE, + VERIF =VERIF, + **motscles) + # remet UNITE dans son état initial + UL.EtatInit() + return ier diff --git a/Aster/Cata/cataSTA9/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA9/Macro/lire_inte_spec_ops.py new file mode 100644 index 00000000..e4f1188d --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/lire_inte_spec_ops.py @@ -0,0 +1,117 @@ +#@ MODIF lire_inte_spec_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL, + PROL_DROITE,PROL_GAUCHE,TITRE,INFO,**args): + ier=0 + + from Accas import _F + import os + from math import cos,sin + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + # On importe les definitions des commandes a utiliser dans la macro + DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') + CREA_TABLE =self.get_cmd('CREA_TABLE') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + nompro='LIRE_INTE_SPEC' + + # Lecture de la fonction dans un fichier d unité logique UNITE + UL = UniteAster() + nomfich=UL.Nom(UNITE) + if not os.path.isfile(nomfich): + UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) + file=open(nomfich,'r') + texte=file.read() + file.close() + + list_fonc=texte.split('FONCTION_C') + entete=list_fonc.pop(0) + try : + entete=entete[entete.index('DIM'):] + dim=int(entete[entete.index('=')+1:entete.index('\n')]) + except ValueError : + UTMESS('F', nompro, "la dimension DIM n est pas précisée dans le fichier lu") + + if len(list_fonc)!=(dim*(dim+1)/2): + UTMESS('F', nompro, "nombre de fonctions incorrect") + + nume_i=[] + nume_j=[] + l_fonc=[] + for i in range(dim*(dim+1)/2): + numi=list_fonc[i][list_fonc[i].index('I =')+3:] + numi=numi[:numi.index('\n')] + nume_i.append(int(numi)) + numj=list_fonc[i][list_fonc[i].index('J =')+3:] + numj=numj[:numj.index('\n')] + nume_j.append(int(numj)) + try : + vale_fonc=list_fonc[i][list_fonc[i].index('VALEUR =\n')+9:list_fonc[i].index('FINSF\n')] + vale_fonc=vale_fonc.replace('\n',' ') + vale_fonc=map(float,vale_fonc.split()) + except ValueError : + UTMESS('F', nompro, "erreur dans les données de fonctions") + + liste=[] + if FORMAT=='REEL_IMAG': + liste=vale_fonc + elif FORMAT=='MODULE_PHASE': + for i in range(len(vale_fonc)/3) : + module=vale_fonc[3*i+1] + phase =vale_fonc[3*i+2] + liste=liste+[vale_fonc[3*i],module*cos(phase),module*sin(phase)] + + # création de la fonction ASTER : + _fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, + NOM_RESU =NOM_RESU, + PROL_DROITE=PROL_DROITE, + PROL_GAUCHE=PROL_GAUCHE, + INTERPOL =INTERPOL, + INFO =INFO, + TITRE =TITRE, + VALE_C =liste,) + l_fonc.append(_fonc.nom) + + nume_ib=[] + nume_jb=[] + for i in range(dim): + for j in range(i,dim): + nume_ib.append(i+1) + nume_jb.append(j+1) + if nume_i!=nume_ib or nume_j!=nume_jb : + UTMESS('F', nompro, "erreur dans les indices") + mcfact=[] + mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K=(NOM_RESU),NUME_LIGN=(1,))) + mcfact.append(_F(PARA='OPTION' ,LISTE_K=('TOUT',) ,NUME_LIGN=(1,))) + mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dim,) ,NUME_LIGN=(1,))) + mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i ,NUME_LIGN=range(2,len(nume_i)+2))) + mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j ,NUME_LIGN=range(2,len(nume_j)+2))) + mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fonc ,NUME_LIGN=range(2,len(list_fonc)+2))) + self.DeclareOut('tab_inte',self.sd) + tab_inte=CREA_TABLE(LISTE=mcfact, + TITRE=TITRE, + TYPE_TABLE='TABLE_FONCTION') + + # remet UNITE dans son état initial + UL.EtatInit() + return ier diff --git a/Aster/Cata/cataSTA9/Macro/lire_table_ops.py b/Aster/Cata/cataSTA9/Macro/lire_table_ops.py new file mode 100644 index 00000000..af24a012 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/lire_table_ops.py @@ -0,0 +1,152 @@ +#@ MODIF lire_table_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 +import re + +# ------------------------------------------------------------------------------ +def msplit(chaine, separ): + """Equivalent de chaine.split(separ) en acceptant une ou plusieurs + occurrences du séparateur. + """ + return re.split('%s+' % re.escape(separ), chaine.strip(separ)) + +# ------------------------------------------------------------------------------ +def lecture_table(texte, nume, separ): + """Méthode de construction de l'objet Table à partir d'un texte d'une table + au format ASTER. + """ + from Utilitai.transpose import transpose + from Utilitai.Table import Table + + tab_lue = {} + nume_lign = [] + idt_deb = '#DEBUT_TABLE\n' + idt_fin = '#FIN_TABLE\n' + idt_tit = '#TITRE' + id_vide = '-' + + # expression régulière pour découper les N tables du fichier + exp = re.compile(re.escape(idt_deb) + '(.*?)' + re.escape(idt_fin), + re.MULTILINE | re.DOTALL) + l_txt = exp.findall(texte) + nbbloc = len(l_txt) + if nume > nbbloc: + message = """NUME_TABLE=%d incorrect : il n'y a que %d blocs de tables""" \ + """ dans le fichier""" % (nume, nbbloc) + return 1, message, None + txttab = l_txt[nume - 1] + + # expression régulière pour extraire le titre + exp = re.compile(re.escape(idt_tit) + '(.*)$', re.MULTILINE) + titre_tab = os.linesep.join([s.strip(separ) for s in exp.findall(txttab)]) + + # restent dans la table les lignes non vides qui ne sont pas des titres + txttab = [line for line in txttab.splitlines() \ + if line.strip(separ) != '' and not line.startswith(idt_tit)] + + # ligne des paramètres et des types + list_para = msplit(txttab.pop(0), separ) + list_type = msplit(txttab.pop(0), separ) + nb_para = len(list_type) + + # format de lecture + fmt = { + 'I' : '([0-9\-\+]+)', + 'R' : '([0-9\.,\-\+eEdD]+)', + 'K' : '(.{%(len)s})' + } + lfmt = ('%s+' % re.escape(separ)).join( + [fmt[typ[0]] % { 'len' : typ[1:] } for typ in list_type] + ) + + # construction des lignes de la Table + l_rows = [] + for i, line in enumerate(txttab): + mat = re.search(lfmt, line) + if mat is None or nb_para != len(mat.groups()): + message = """Nombre de champs incorrect ligne %d. +Il y a %d paramètres""" % (i + 1, nb_para) + if hasattr(mat, 'groups'): + message += """, on a lu %d champs.""" % len(mat.groups()) + return 1, message, None + dico = {} + for para, typ, ch in zip(list_para, list_type, mat.groups()): + ch = ch.strip() + if ch != id_vide: + if typ == 'I': + val = int(ch) + elif typ == 'R': + val = float(ch) + else: + val = ch + dico[para] = val + l_rows.append(dico) + + tab = Table(l_rows, list_para, list_type, titre_tab) + return 0, '', tab + + +# ------------------------------------------------------------------------------ +def lire_table_ops(self, **args): + """Méthode corps de la macro LIRE_TABLE + """ + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + + ier = 0 + nompro = 'LIRE_TABLE' + ### On importe les definitions des commandes a utiliser dans la macro + CREA_TABLE = self.get_cmd('CREA_TABLE') + UNITE = self['UNITE'] + FORMAT = self['FORMAT'] + NUME_TABLE = self['NUME_TABLE'] + SEPARATEUR = self['SEPARATEUR'] + PARA = self['PARA'] + TITRE = self['TITRE'] + + ### La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + ### Lecture de la table dans un fichier d unité logique UNITE + UL = UniteAster() + nomfich=UL.Nom(UNITE) + if not os.path.isfile(nomfich): + UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) + + texte = open(nomfich,'r').read() + # remet UNITE dans son état initial + UL.EtatInit() + + ### mise en forme de la liste de valeurs suivant le format choisi : + # pour le moment uniquement ASTER + if FORMAT=='ASTER': + ier, message, tab_lue = lecture_table(texte, NUME_TABLE, SEPARATEUR) + if ier != 0 : + UTMESS('F', nompro, message) + else: + pass + + ### création de la table ASTER : + self.DeclareOut('ut_tab', self.sd) + motscles = tab_lue.dict_CREA_TABLE() + ut_tab=CREA_TABLE(**motscles) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA9/Macro/macr_adap_mail_ops.py new file mode 100644 index 00000000..32a58b2e --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_adap_mail_ops.py @@ -0,0 +1,839 @@ +#@ MODIF macr_adap_mail_ops Macro DATE 30/10/2006 AUTEUR DURAND C.DURAND +# -*- 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. +# ====================================================================== +# RESPONSABLE GNICOLAS G.NICOLAS +# +""" +Traitement des macros MACR_ADAP_MAIL/MACR_INFO_MAIL +""" +__revision__ = "V1.1" +# +def macr_adap_mail_ops ( self, + INFO, VERSION_HOMARD, MAILLAGE_FRONTIERE, + **args): + """ + Traitement des macros MACR_ADAP_MAIL/MACR_INFO_MAIL + """ +# +# 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. +# +### 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. +# 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é +# 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["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é +# 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["NOM_CHAM"] = f ; string ; Nom ASTER du champ +# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée +# 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["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["NOM_MED"] = o ; string ; Nom MED du champ +# dico["SENSIBILITE"] = f ; string ; Nom du paramètre sensible associé +# + from Accas import _F + from Macro import creation_donnees_homard + from Utilitai.Utmess import UTMESS + import aster + import string + import os + import shutil +# + global Liste_Passages +# +#==================================================================== +# 1. Préalables +#==================================================================== +# +# 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 +# + try : + self.jdc.indice_macro_homard = self.jdc.indice_macro_homard + 1 + except : + self.jdc.indice_macro_homard = 1 + Liste_Passages = [] + numero_passage_fonction = self.jdc.indice_macro_homard +### print "numero_passage_fonction = ",numero_passage_fonction +# +# 1.3. ==> On importe les definitions des commandes a utiliser dans la macro +# + DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") + IMPR_RESU = self.get_cmd("IMPR_RESU") + EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") + LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE") + LIRE_CHAMP = self.get_cmd("LIRE_CHAMP") +# +# 1.4. ==> Le nom du programme HOMARD à lancer +# + repertoire_outils = aster.repout() + homard = repertoire_outils + "homard" +# +# 1.5. ==> Initialisations +# + codret_partiel = [0] + Rep_Calc_ASTER = os.getcwd() +# + liste_maillages = [] + liste_champs = [] + liste_zones = [] + dico_indi = {} +# + LISTE_ADAPTATION_LIBRE = ("RAFF_DERA" , "RAFFINEMENT" , "DERAFFINEMENT") +# +#==================================================================== +# 2. Décodage des arguments de la macro-commande +#==================================================================== +# 2.1. ==> Données de pilotage de l'adaptation +# + if ( self.nom == "MACR_ADAP_MAIL" ) : +# + mode_homard = "ADAP" +# +# 2.1.1. ==> Les concepts "maillage" +# +#gn print "\n.. Debut de 2.1.1" +# for mot_cle in ["MAILLAGE_N" , "MAILLAGE_NP1"] : + for mot_cle in ["MAILLAGE_N" , "MAILLAGE_NP1" , "MAILLAGE_NP1_ANNEXE"] : +#gn print "\nmot_cle = ",mot_cle + dico = {} + dico["Type_Maillage"] = mot_cle + if ( args[mot_cle] != None ) : +#gn print "==> args[",mot_cle,"] = ",args[mot_cle] + dico["Nom_ASTER"] = args[mot_cle] + if ( mot_cle == "MAILLAGE_N" ) : + dico["Action"] = "A_ecrire" + else : + dico["Action"] = "A_lire" + else : + dico["Action"] = "Rien" +#gn print "dico = ",dico + liste_maillages.append(dico) +# +# 2.1.2. ==> L'éventuel indicateur d'erreur +# +#gn print "\n.. Debut de 2.1.2" +#gn print "args = ", args + if args["ADAPTATION"] in LISTE_ADAPTATION_LIBRE : + dico = {} + dico["Type_Champ"] = "INDICATEUR" + if ( args["RESULTAT_N"] != None ) : + lresu = 1 + dico["RESULTAT"] = args["RESULTAT_N"] + noresu = dico["RESULTAT"].nom + dico["NOM_CHAM"] = args["INDICATEUR"] + nomsym = dico["NOM_CHAM"] + if ( args["NUME_ORDRE"] != None ) : + dico["NUME_ORDRE"] = args["NUME_ORDRE"] + if ( args["INST"] != None ) : + dico["INST"] = args["INST"] + for cle in [ "PRECISION", "CRITERE" ] : + if ( args[cle] != None ) : + dico[cle] = args[cle] + if ( args["SENSIBILITE"] != None ) : + dico["SENSIBILITE"] = args["SENSIBILITE"] + else : + lresu = 0 + dico["CHAM_GD"] = args["CHAM_GD"] + noresu = dico["CHAM_GD"].nom + nomsym = " " +#gn print "dico = ", dico +# + if dico.has_key("SENSIBILITE") : + nopase = dico["SENSIBILITE"].nom + else : + nopase = " " +#gn print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase + dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase ) +#gn print "==> dico[\"NOM_MED\"] = ", dico["NOM_MED"] + dico["COMPOSANTE"] = args["NOM_CMP_INDICA"] + liste_champs.append(dico) + dico_indi = dico +### print dico +# +# 2.1.3. ==> Les champs à mettre à jour +# +#gn print "\n.. Debut de 2.1.3." +# + if args.has_key("MAJ_CHAM") : +# + if args["MAJ_CHAM"] is None : + les_champs = [] + else : + les_champs = args["MAJ_CHAM"] +# + for maj_cham in les_champs : +#gn print maj_cham +#gn print type(maj_cham) +# + dico = {} + dico["Type_Champ"] = "CHAMP_MAJ" + liste_aux = [ "CHAM_MAJ", "TYPE_CHAM" ] + if ( maj_cham["RESULTAT"] != None ) : + lresu = 1 + liste_aux.append("RESULTAT") + liste_aux.append("NOM_CHAM") + if ( maj_cham["NUME_ORDRE"] != None ) : + dico["NUME_ORDRE"] = maj_cham["NUME_ORDRE"] + elif ( maj_cham["INST"] != None ) : + dico["INST"] = maj_cham["INST"] + for cle in [ "PRECISION", "CRITERE" ] : + if ( maj_cham[cle] != None ) : + dico[cle] = maj_cham[cle] + noresu = maj_cham["RESULTAT"].nom + nomsym = maj_cham["NOM_CHAM"] + if ( maj_cham["SENSIBILITE"] != None ) : + dico["SENSIBILITE"] = maj_cham["SENSIBILITE"] + else : + lresu = 0 + liste_aux.append("CHAM_GD") + noresu = maj_cham["CHAM_GD"].nom + nomsym = " " + for cle in liste_aux : + dico[cle] = maj_cham[cle] +#gn print "dico = ", dico +# + if dico.has_key("SENSIBILITE") : + nopase = dico["SENSIBILITE"].nom + else : + nopase = " " +#gn print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase + dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase ) +#gn print "==> dico[\"NOM_MED\"] = ", dico["NOM_MED"] +# +### print dico + liste_champs.append(dico) +# +# 2.1.4. ==> Les zones de raffinement +# +### print "\n.. Debut de 2.1.4." +# + if args.has_key("ZONE") : +# + if args["ZONE"] is None : + les_zones = [] + else : + les_zones = args["ZONE"] +# + for zone in les_zones : +### print zone +### print type(zone) + dico = {} + for aux in ['X_MINI', 'X_MAXI', 'Y_MINI', 'Y_MAXI', 'Z_MINI', 'Z_MAXI', 'X_CENTRE', 'Y_CENTRE', 'Z_CENTRE', 'RAYON'] : + if ( zone[aux] != None ) : + dico[aux] = zone[aux] +### print dico + liste_zones.append(dico) +# +### print liste_zones +# +# 2.2. ==> Données de pilotage de l'information +# + else : +# + mode_homard = "INFO" +# + dico = {} + dico["Type_Maillage"] = "MAILLAGE_N" + dico["Nom_ASTER"] = args["MAILLAGE"] + dico["Action"] = "A_ecrire" + liste_maillages.append(dico) +# +# 2.3. ==> Suivi de frontière +# +#gn print "\n.. Debut de 2.3." +# + if ( MAILLAGE_FRONTIERE != None ) : +# + dico = {} + dico["Type_Maillage"] = "MAILLAGE_FRONTIERE" + dico["Nom_ASTER"] = MAILLAGE_FRONTIERE + 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 +# 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 +# un n minuscule, qui est interdit dans la syntaxe du langage +# de commandes ASTER +# +#gn print "\n.. Debut de 2.4. avec VERSION_HOMARD = ", VERSION_HOMARD + VERSION_HOMARD = string.replace(VERSION_HOMARD,"_" , ".") + VERSION_HOMARD = string.replace(VERSION_HOMARD,"N" , "n") +# + if ( VERSION_HOMARD[-6:]==".PERSO" ): + VERSION_HOMARD = VERSION_HOMARD[:-6] + version_perso = 1 + else : + version_perso = 0 +#gn print ".... VERSION_HOMARD = ", VERSION_HOMARD +#gn print ".... version_perso = ", version_perso +# +#==================================================================== +# 3. Préparation 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) +# +# On crée une nouvelle liste des dictionnaires décrivant les maillages +# et à la fin on écrase l'ancienne liste par cette nouvelle. +# +#gn print "\n.. Debut de 3.1." +# + Nom_Concept_Maillage_NP1_ANNEXE = None + l_aux = [] + for dico in liste_maillages : +#gn print "\ndico avant = ",dico + if ( dico["Action"] != "Rien" ) : + dico["NOM_MED"] = aster.mdnoma(dico["Nom_ASTER"].nom) + l_aux.append(dico) + if ( dico["Type_Maillage"] == "MAILLAGE_N" ) : + Nom_Concept_Maillage_N = dico["Nom_ASTER"].nom + elif ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : + Nom_Concept_Maillage_NP1 = dico["Nom_ASTER"].nom + elif ( dico["Type_Maillage"] == "MAILLAGE_NP1_ANNEXE" ) : + Nom_Concept_Maillage_NP1_ANNEXE = dico["Nom_ASTER"].nom +#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.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 +# +#gn print "\.. Debut de 3.2.1." +# + niter = 0 + Nom_Rep_local = Nom_Concept_Maillage_N + "_" + mode_homard + "_" + str(numero_passage_fonction) + Rep_Calc_HOMARD_local = os.path.join(".", Nom_Rep_local) + Rep_Calc_HOMARD_global = os.path.join(Rep_Calc_ASTER, Nom_Rep_local) +### 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 +# +#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 +# 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. +# +#gn print "\.. Debut de 3.2.2.1." +# + for dico in Liste_Passages : + if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : + niter = dico["niter"] + 1 + Rep_Calc_HOMARD_local = dico["Rep_Calc_HOMARD_local"] + Rep_Calc_HOMARD_global = dico["Rep_Calc_HOMARD_global"] +# +# 3.2.2.2. ==> Memorisation de ce passage +# +#gn print "\.. Debut de 3.2.2.2." +# +# 3.2.2.2.1. ==> Enregistrement d'un nouveau cas de figure +# + if ( niter == 0 ) : + dico = {} + dico["Maillage_0"] = Nom_Concept_Maillage_N + dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 + dico["Maillage_NP1_ANNEXE"] = Nom_Concept_Maillage_NP1_ANNEXE + dico["Rep_Calc_HOMARD_local"] = Rep_Calc_HOMARD_local + dico["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global + dico["niter"] = niter + Liste_Passages.append(dico) +# +# 3.2.2.2.2. ==> Modification du cas en cours +# + else : + l_aux = [] + for dico in Liste_Passages : + if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : + dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 + dico["Maillage_NP1_ANNEXE"] = Nom_Concept_Maillage_NP1_ANNEXE + dico["niter"] = niter + l_aux.append(dico) + Liste_Passages = l_aux +# +### print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global +# +# 3.2.3. Création du répertoire pour homard +# attention : on ne fait cette creation qu'une seule fois par cas +# d'adaptation ou d'information +# +#gn print "\.. Debut de 3.2.3." +# + if ( niter == 0 ) : +# + try : + os.mkdir(Rep_Calc_HOMARD_global) + except os.error,codret_partiel : + self.cr.warn("Code d'erreur de mkdir : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) + UTMESS("F", self.nom, "Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD_global) +# +#==================================================================== +# 4. Ecriture des commandes de creation des donnees MED +#==================================================================== +# +#gn print "\.. Debut de 4." +# +# On doit écrire : le maillage, +# le champ d'indicateur d'erreur +# les champs à 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" +# +# 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.1. ==> D'ASTER vers HOMARD +# + unite_fichier_aster_vers_homard = 1787 + 2*numero_passage_fonction + fichier_aster_vers_homard = os.path.join(Rep_Calc_ASTER,"fort." + str(unite_fichier_aster_vers_homard)) +### print "fichier_aster_vers_homard = ",fichier_aster_vers_homard +# +# 4.1.2. ==> De HOMARD vers ASTER +# + if ( mode_homard == "ADAP" ) : + unite_fichier_homard_vers_aster = unite_fichier_aster_vers_homard + 1 + 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 +# + DEFI_FICHIER ( ACTION= "ASSOCIER", + UNITE = unite_fichier_aster_vers_homard, + TYPE = "LIBRE", + INFO = INFO ) +# +# 4.3. Le(s) maillage(s) +# Le maillage de calcul et l'éventuel maillage de la frontiere sont écrits +# 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. +# + for dico in liste_maillages : + if ( dico["Action"] == "A_ecrire" ) : + motscsi = {} + motscsi["MAILLAGE"] = dico["Nom_ASTER"] + motscfa = {} + motscfa["RESU"] = _F( INFO_MAILLAGE=infomail, + **motscsi ) +# + IMPR_RESU ( INFO = INFO, + 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 +# 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 ! +# 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 +# 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["NOM_CHAM"] = f ; string ; Nom ASTER du champ +# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée +# 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["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["NOM_MED"] = o ; string ; Nom MED du champ +# dico["SENSIBILITE"] = f ; string ; Nom du paramètre sensible associé +# +# 4.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur +# +#gn print "dico_indi = ",dico_indi + if len(dico_indi) > 0 : + indic_est_deja_imprime = 0 + if dico_indi.has_key("RESULTAT") : + liste_aux = [ "RESULTAT", "NOM_CHAM" ] + else : + liste_aux = [ "CHAM_GD" ] + else : + indic_est_deja_imprime = 1 + liste_aux = [ ] +#gn print ".. Au debut de la boucle, liste_aux = ",liste_aux +#gn print ".. Au debut de la boucle, indic_est_deja_imprime = ",indic_est_deja_imprime +# + liste_champs_imprime = [] + for dico in liste_champs : +### print "\n.... dico = ",dico +# Pour un champ à mettre à 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 : + if not indic_est_deja_imprime : +# Est-ce le meme champ ? + on_a_le_champ = 1 + for cle in liste_aux : + if ( dico.has_key(cle) ) : +### print "...... dico_indi[cle] = ",dico_indi[cle] +### print "...... dico[cle] = ",dico[cle] + if ( dico_indi[cle] != dico[cle] ) : + on_a_le_champ = 0 + break + else : + on_a_le_champ = 0 + break +# Si oui, est-ce un champ sensible ou non ? + if on_a_le_champ : + cle = "SENSIBILITE" + if dico.has_key(cle) : + if ( dico[cle] != None ) : + if dico_indi.has_key(cle) : + if ( dico_indi[cle] != dico[cle] ) : + on_a_le_champ = 0 + break + 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.) + if on_a_le_champ : + for cle in [ "NUME_ORDRE", "INST" ] : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + if dico_indi.has_key(cle) : + if ( dico_indi[cle] != dico[cle] ) : + on_a_le_champ = 0 + break + 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 + if not indic_est_deja_imprime : + liste_champs_imprime.append(dico_indi) +# +# 4.4.2. Impressions après le filtrage précédent +#gn print "\n.... Debut de 4.2.4.2." +# + for dico in liste_champs_imprime : + motscsi = {} + for cle in [ "RESULTAT", "NOM_CHAM", "CHAM_GD", "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + motscsi[cle] = dico[cle] + if dico.has_key("COMPOSANTE") : + motscsi["NOM_CMP"] = dico["COMPOSANTE"] + if dico.has_key("SENSIBILITE") : + motscsi["SENSIBILITE"] = dico["SENSIBILITE"] + motscfa = {} + motscfa["RESU"] = _F( INFO_MAILLAGE=infomail, + **motscsi + ) +#gn print ".. motscfa = ",motscfa +# + IMPR_RESU ( INFO = INFO, + FORMAT ='MED', UNITE = unite_fichier_aster_vers_homard, + **motscfa ) +# +#==================================================================== +# 5. ==> Création des fichiers de données pour HOMARD +#==================================================================== +# +#gn print "\.. Debut de 5." +# + dico_configuration = {} +# +# 5.1. ==> Les généralités +# + dico_configuration["INFO"] = INFO +# + dico_configuration["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global + dico_configuration["VERSION_HOMARD"] = VERSION_HOMARD + dico_configuration["version_perso"] = version_perso +# + dico_configuration["niter"] = niter + dico_configuration["Fichier_ASTER_vers_HOMARD"] = fichier_aster_vers_homard + if ( mode_homard == "ADAP" ) : + dico_configuration["Fichier_HOMARD_vers_ASTER"] = fichier_homard_vers_aster +# +# 5.2. ==> Les noms med des maillages +# + for dico in liste_maillages : +#gn print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"] + dico_configuration[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"] +#gn print dico_configuration +# +# 5.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur +# + for dico in liste_champs : + dico_aux = {} + if ( dico["Type_Champ"] == "INDICATEUR" ) : + liste_aux = [ "NOM_MED", "COMPOSANTE" ] + if dico.has_key("NUME_ORDRE") : + liste_aux.append("NUME_ORDRE") + for cle in liste_aux : + if ( dico[cle] != None ) : + dico_aux[cle] = dico[cle] + dico_configuration["Indicateur"] = dico_aux +#gn if dico_configuration.has_key("Indicateur") : +#gn print "dico_configuration[Indicateur] = ", dico_configuration["Indicateur"] +# +# 5.4. ==> Les zones de raffinement +# + prem = 1 + for dico in liste_zones : + if prem : + l_aux = [dico] + prem = 0 + else : + l_aux = dico_configuration["Zones"] + l_aux.append(dico) + dico_configuration["Zones"] = l_aux +### if dico_configuration.has_key("Zones") : +### print "dico_configuration[Zones] = ", dico_configuration["Zones"] +# +# 5.5. ==> La mise à jour de champs +# + prem = 1 + for dico in liste_champs : + dico_aux = {} + if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : + liste_aux = [ "NOM_MED", "COMPOSANTE" ] + if dico.has_key("NUME_ORDRE") : + liste_aux.append("NUME_ORDRE") + else : + for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] : + liste_aux.append(cle) + for cle in liste_aux : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + dico_aux[cle] = dico[cle] +#gn print dico_aux + if prem : + l_aux = [dico_aux] + prem = 0 + else : + l_aux = dico_configuration["Champs"] + l_aux.append(dico_aux) + dico_configuration["Champs"] = l_aux +#gn if dico_configuration.has_key("Champs") : +#gn print "dico_configuration[Champs] = ", dico_configuration["Champs"] +# +# 5.6. ==> Appel de la fonction de création +# + donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration ) + if ( INFO > 1 ) : + donnees_homard.quel_mode ( ) + fic_homard_niter = donnees_homard.creation_configuration ( ) + donnees_homard.ecrire_fichier_configuration ( ) + if ( mode_homard == "INFO" ) : + Nom_Fichier_Donnees = donnees_homard.ecrire_fichier_donnees ( ) + else : + Nom_Fichier_Donnees = "0" +# +# 5.7. ==> Impression eventuelle des fichiers créés +# +#gn print "Répertoire ",Rep_Calc_HOMARD_global +#gn os.system("ls -la "+Rep_Calc_HOMARD_global) + if ( INFO > 1 ) : + l_aux = ["HOMARD.Donnees" , "HOMARD.Configuration"] + else : + l_aux = [ ] + for nomfic in l_aux : + fic = os.path.join(Rep_Calc_HOMARD_global, nomfic) + if os.path.isfile (fic) : + print "\n\n==============================================================" + print "Contenu de", nomfic + fichier = open (fic,"r") + les_lignes = fichier.readlines() + fichier.close() + for ligne in les_lignes : + print ligne[:-1] + print "==============================================================\n" +#gn if ( mode_homard == "ADAP" ) : +#gn if args.has_key("MAJ_CHAM") : +#gn if args["MAJ_CHAM"] is not None : +#gn os.system("sleep 1000") +# +#==================================================================== +# 6. Ecriture de la commande d'exécution de homard +#==================================================================== +# +# +#gn print "\.. Debut de 6." +#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) +# + 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(version_perso), # version personnelle de homard ? + ), + LOGICIEL = homard + ) +# os.system("sleep 3600") +# + #gn if ( mode_homard == "ADAP" ) : +#gn fichier_homard_vers_aster_2 = os.path.join("/tmp" , "fort." + str(unite_fichier_homard_vers_aster)) +#gn shutil.copyfile(fichier_homard_vers_aster, fichier_homard_vers_aster_2) +#gn fichier_homard_vers_aster_2_1 = os.path.join("/tmp" , "fort." + str(unite_fichier_homard_vers_aster)+".1") +#gn os.system("/local00/Logiciels/med-2.3.1/Linux/bin/mdump "+fichier_homard_vers_aster_2+">"+fichier_homard_vers_aster_2_1+""+fichier_homard_vers_aster_2_2+" Ecriture de la commande de lecture des resultats med +# 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 +# Exemple : +# self.DeclareOut("maillage_a_lire",args["MAILLAGE_NP1"]) +# ==> la variable maillage_a_lire est identifiée à l'argument "MAILLAGE_NP1" +#==================================================================== +# + if ( mode_homard == "ADAP" ) : +# +# 7.1. ==> Le maillage +# +#gn print "args = ",args + for dico in liste_maillages : +#gn print dico + if ( dico["Action"] == "A_lire" ) : + 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 ) +#gn print "MAILLAGE = ",maillage_a_lire +#gn print "NOM_MED = ",dico["NOM_MED"] + if ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : + maillage_np1 = maillage_a_lire + maillage_np1_nom_med = dico["NOM_MED"] +# +# 7.2. ==> Les champs +#gn os.system("sleep 100") +# + for dico in liste_champs : + if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : +#gn print dico + self.DeclareOut("champ_maj", dico["CHAM_MAJ"]) + motscsi = {} + for cle in [ "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : + if dico.has_key(cle) : + if ( dico[cle] != None ) : + motscsi[cle] = dico[cle] + if dico.has_key("NUME_ORDRE") : + motscsi["NUME_PT"] = dico["NUME_ORDRE"] +#gn print "MAILLAGE = ",maillage_np1 +#gn print "NOM_MAIL_MED = ",maillage_np1_nom_med +#gn print "NOM_MED = ",dico["NOM_MED"] +#gn print "TYPE_CHAM =", dico["TYPE_CHAM"] + 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 ) +# +#==================================================================== +# 8. Menage des fichiers MED et HOMARD devenus inutiles +#==================================================================== +# + liste_aux = [ fichier_aster_vers_homard ] + if ( mode_homard == "ADAP" ) : + liste_aux.append(fichier_homard_vers_aster) + fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niter) + liste_aux.append(fic) +#gn print "liste_aux = ",liste_aux +# + for fic in liste_aux : + if ( INFO > 1 ) : + print "Destruction du fichier ", fic + if os.path.isfile(fic) : + try : + os.remove(fic) + except os.error,codret_partiel : + self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) + UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic) +#gn print "Répertoire ",Rep_Calc_HOMARD_global +#gn os.system("ls -la "+Rep_Calc_HOMARD_global) +#gn print "Répertoire ",Rep_Calc_ASTER +#gn os.system("ls -la "+Rep_Calc_ASTER) +# +#==================================================================== +# C'est fini ! +#==================================================================== +# +#gn if ( mode_homard == "ADAP" ) : +#gn os.system("sleep 1") +# + return diff --git a/Aster/Cata/cataSTA9/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA9/Macro/macr_ascouf_calc_ops.py new file mode 100644 index 00000000..ac8e6edf --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_ascouf_calc_ops.py @@ -0,0 +1,681 @@ +#@ MODIF macr_ascouf_calc_ops Macro DATE 31/10/2006 AUTEUR REZETTE C.REZETTE +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM, + FOND_FISS,CHARGE,RESU_THER,AFFE_MATERIAU, + PRES_REP,ECHANGE,TORS_P1,COMP_INCR,COMP_ELAS, + SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, + INCREMENT,THETA_3D,IMPR_TABLE,IMPRESSION,INFO,TITRE ,**args): + """ + Ecriture de la macro MACR_ASCOUF_CALC + """ + from Accas import _F + import types + import math + import aster + from math import pi,sin,cos,sqrt,atan2 + from Utilitai.Utmess import UTMESS + ier=0 +# On recopie les mots cles affe_materiau et impr_table pour les proteger + mc_AFFE_MATERIAU=AFFE_MATERIAU + mc_IMPR_TABLE =IMPR_TABLE + # On importe les definitions des commandes a utiliser dans la macro + AFFE_MODELE =self.get_cmd('AFFE_MODELE' ) + AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU' ) + AFFE_CARA_ELEM =self.get_cmd('AFFE_CARA_ELEM' ) + AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F') + THER_LINEAIRE =self.get_cmd('THER_LINEAIRE' ) + AFFE_CHAR_MECA =self.get_cmd('AFFE_CHAR_MECA' ) + STAT_NON_LINE =self.get_cmd('STAT_NON_LINE' ) + CALC_ELEM =self.get_cmd('CALC_ELEM' ) + IMPR_RESU =self.get_cmd('IMPR_RESU' ) + IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) + DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) + CALC_THETA =self.get_cmd('CALC_THETA' ) + CALC_G =self.get_cmd('CALC_G' ) + POST_RCCM =self.get_cmd('POST_RCCM' ) + POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) +#------------------------------------------------------------------ +# DATA + GRMAIL = ('COUDE','PEAUINT','PEAUEXT','EXTUBE','CLGV','FACE1','FACE2') +#------------------------------------------------------------------ +# + if CL_BOL_P2_GV!=None : + if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE' : + message= ' la condition aux limites sur bol a section conique \n' + message=message+' est ignoree pour un coude avec sous-epaisseurs \n' + UTMESS('A', "MACR_ASCOUF_CALC", message) + elif (TYPE_MAILLAGE[:4]!='FISS') and (CL_BOL_P2_GV['AZIMUT']!=None) : + UTMESS('E', "MACR_ASCOUF_CALC", "mot-cle AZIMUT non autorise dans le cas d un coude sain") +# + if mc_IMPR_TABLE!=None : + FLAG = 0 + if (mc_IMPR_TABLE['NOM_PARA']==None) and (mc_IMPR_TABLE['POSI_ANGUL']==None) and (mc_IMPR_TABLE['POSI_CURV_LONGI']==None) : + UTMESS('E', "MACR_ASCOUF_CALC", "POSI_ANGUL POSI_CURV_LONGI est obligatoire") + return ier + if (mc_IMPR_TABLE['NOM_PARA']!=None) : + impr_table_nom_para= mc_IMPR_TABLE['NOM_PARA'] + for impt in impr_table_nom_para : + if impt in ('SI_LONG','SI_CIRC','SI_RADI') : + FLAG = 1 + if (((impt['ANGLE']==None) and (impt['POSI_ANGUL']==None) and (impt['R_CINTR' ]==None)) or + ((impt['ANGLE']==None) and (impt['R_CINTR' ]==None) and (impt['POSI_CURV_LONGI']==None)) ) : + UTMESS('E', "MACR_ASCOUF_CALC", "il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI") + if (mc_IMPR_TABLE['NOM_PARA']==None) : FLAG = 1 + if not FLAG : UTMESS('A', "MACR_ASCOUF_CALC","ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas") +# +#------------------------------------------------------------------ +# +# --- commande AFFE_MODELE --- +# + self.DeclareOut('modele',MODELE) + mcfact=[] + if (PRES_REP!=None) and (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') : + mcfact.append(_F(GROUP_MA=GRMAIL ,PHENOMENE='MECANIQUE',MODELISATION='3D' )) + else: + mcfact.append(_F(GROUP_MA=GRMAIL[:5] ,PHENOMENE='MECANIQUE',MODELISATION='3D' )) + if TORS_P1!=None : + mcfact.append(_F(GROUP_MA='P1' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + if CL_BOL_P2_GV==None : + mcfact.append(_F(GROUP_MA='P2' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + modele = AFFE_MODELE( MAILLAGE = MAILLAGE , + AFFE = mcfact ) + if ECHANGE!=None : # modele thermique + __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE , + AFFE = _F(TOUT ='OUI', + PHENOMENE ='THERMIQUE', + MODELISATION='3D' ) ) +#------------------------------------------------------------------ +# +# --- commande AFFE_MATERIAU --- +# + if CHAM_MATER!=None : self.DeclareOut('affmat',CHAM_MATER) + mcfact=[] + for mater in mc_AFFE_MATERIAU : + if mater['TOUT']!=None : + mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + rccmat = mater['MATER'] + else : + mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + if mater['GROUP_MA'][:5]=='COUDE' : + if TORS_P1!=None : + mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + elif (len(mc_AFFE_MATERIAU)==1) and (CL_BOL_P2_GV==None) : + mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) : + mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + affmat = AFFE_MATERIAU( MAILLAGE = MAILLAGE , + MODELE = modele , + AFFE = mcfact ) +#------------------------------------------------------------------ +# +# --- commande AFFE_CARA_ELEM --- +# + if (TORS_P1!=None) or (CL_BOL_P2_GV==None) : + if CARA_ELEM!=None : self.DeclareOut('carael',CARA_ELEM) + motscles={} + motscles['DISCRET']=[] + if (TORS_P1!=None) : motscles['DISCRET'].append(_F( GROUP_MA='P1' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),) + if (CL_BOL_P2_GV==None) : motscles['DISCRET'].append(_F( GROUP_MA='P2' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),) + + carael = AFFE_CARA_ELEM( MODELE = modele ,**motscles) +# + if ECHANGE!=None : +#------------------------------------------------------------------ +# +# --- commande AFFE_CHAR_THER_F --- +# condition aux limites +# + __chther = AFFE_CHAR_THER_F( MODELE = __modthe , + ECHANGE= _F(GROUP_MA='PEAUINT', + COEF_H =ECHANGE['COEF_H'], + TEMP_EXT=ECHANGE['TEMP_EXT'],), ) +#------------------------------------------------------------------ +# +# --- calcul thermique --- +# + if RESU_THER!=None : self.DeclareOut('resuth',RESU_THER) + mcsimp={} + if INCREMENT['NUME_INST_INIT']!=None : mcsimp['NUME_INIT']=INCREMENT['NUME_INST_INIT'] + if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_FIN' ]=INCREMENT['NUME_INST_FIN' ] + mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) + resuth = THER_LINEAIRE( MODELE = __modthe , + CHAM_MATER = affmat , + TEMP_INIT = _F(STATIONNAIRE='OUI',), + EXCIT = _F(CHARGE=__chther,), + INCREMENT = mcfact, ) +# + if CHARGE!=None : self.DeclareOut('chmeth',CHARGE) + chmeth = AFFE_CHAR_MECA( MODELE = modele , + TEMP_CALCULEE = resuth ) +#------------------------------------------------------------------ +# +# --- commande AFFE_CHAR_MECA --- +# condition aux limites de type raccord 3d-poutre +# ou bien blocage de mouvements rigides en cas d embout +# a section conique, bol de type gv +# + motscles={} + motscles['LIAISON_ELEM']=[] + if TORS_P1!=None : + motscles['LIAISON_ELEM'].append(_F( OPTION ='3D_POU' , + GROUP_MA_1='EXTUBE', + GROUP_NO_2='P1') ) + if CL_BOL_P2_GV==None : + motscles['LIAISON_ELEM'].append(_F( OPTION ='3D_POU' , + GROUP_MA_1='CLGV', + GROUP_NO_2='P2') ) + motscles['DDL_IMPO' ]=_F( GROUP_NO ='P2' , + DX = 0.0 , + DY = 0.0 , + DZ = 0.0 , + DRX = 0.0 , + DRY = 0.0 , + DRZ = 0.0 , ) + else : + motscles['FACE_IMPO' ]=_F( GROUP_MA ='CLGV' , + DNOR = 0.0 , ) + ALPHA = CL_BOL_P2_GV['ANGLE' ] + AZIM = CL_BOL_P2_GV['AZIMUT'] + ALPHAR = ALPHA*pi/180.0 + AZIMR = AZIM *pi/180.0 + DDLB1 = [] + COEFB1 = [] + if (AZIM!=0.0) and (AZIM!=180.0) and (ALPHA!=90.0) : + DDLB1.append('DX') + COEFB1.append(SIN(AZIMR)*COS(ALPHAR)) + if (AZIM!=90.0) : + DDLB1.append('DY') + COEFB1.append(COS(AZIMR)) + if (AZIM!=0.) and (AZIM!=180.) and (ALPHA!=0.): + DDLB1.append('DZ') + COEFB1.append(-SIN(AZIMR)*SIN(ALPHAR)) + POINT=['BOUT1',]*len(DDLB1) + motscles['LIAISON_DDL']=_F( GROUP_NO = POINT , + DDL = DDLB1 , + COEF_MULT = COEFB1 , + COEF_IMPO = 0.0 , ) + + _conlim = AFFE_CHAR_MECA( MODELE = modele ,**motscles) +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : pres_rep, effet de fond +# + if PRES_REP!=None : + motscles={} + if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') : + motscles['PRES_REP']=_F( GROUP_MA = ('PEAUINT','FACE1','FACE2') , + PRES = PRES_REP['PRES'] ,) + else : + motscles['PRES_REP']=_F( GROUP_MA = 'PEAUINT', + PRES = PRES_REP['PRES'] ,) + if PRES_REP['EFFE_FOND_P1']!=None : + motscles['EFFE_FOND']=_F( GROUP_MA_INT = 'BORDTU' , + GROUP_MA = 'EXTUBE' , + PRES = PRES_REP['PRES'] ,) +# + _chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : torseur d efforts +# + if TORS_P1!=None : + _chtor = [None]*6 + i=0 + for tors in TORS_P1: + mcsimp={} + if tors['FX']!=None : mcsimp['FX']=tors['FX'] + if tors['FY']!=None : mcsimp['FY']=tors['FY'] + if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] + if tors['MX']!=None : mcsimp['MX']=tors['MX'] + if tors['MY']!=None : mcsimp['MY']=tors['MY'] + if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] + mcfact=_F(GROUP_NO='P1',**mcsimp) + _chtor[i] = AFFE_CHAR_MECA( MODELE = modele , + FORCE_NODALE = mcfact , ) + i=i+1 +# +# --- commande STAT_NON_LINE --- +# + motscles={} +# + mcfex=[] # mot clé facteur EXCIT + mcfex.append(_F(CHARGE=_conlim,)) + if ECHANGE!=None : + mcfex.append(_F(CHARGE=chmeth,)) + if PRES_REP!=None: + if PRES_REP['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=_chpres,FONC_MULT=PRES_REP['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=_chpres,)) + if TORS_P1!=None: + i=0 + for tors in TORS_P1 : + if tors['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=_chtor[i],FONC_MULT=tors['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=_chtor[i],)) + i=i+1 + motscles['EXCIT'] =mcfex +# + mcfci=[] # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets + if COMP_INCR!=None : + mcfci.append(_F(TOUT='OUI' ,RELATION=COMP_INCR['RELATION'])) + elif COMP_ELAS!=None : + motscles['COMP_ELAS'] =_F(GROUP_MA='COUDE',RELATION=COMP_ELAS['RELATION']) + if TORS_P1!=None : mcfci.append( _F(GROUP_MA='P1',RELATION='ELAS')) + if CL_BOL_P2_GV==None: mcfci.append( _F(GROUP_MA='P2',RELATION='ELAS')) + motscles['COMP_INCR'] =mcfci +# + dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + for i in dSolveur.keys(): + if dSolveur[i]==None : del dSolveur[i] +# + dConverg=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) + for i in dConverg.keys(): + if dConverg[i]==None : del dConverg[i] +# + dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) + for i in dNewton.keys(): + if dNewton[i]==None : del dNewton[i] +# + dRechlin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) + for i in dRechlin.keys(): + if dRechlin[i]==None : del dRechlin[i] +# + dIncrem=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) + for i in dIncrem.keys(): + if dIncrem[i]==None : del dIncrem[i] +# + if TITRE!=None : + motscles['TITRE' ] =TITRE + motscles ['SOLVEUR' ] =dSolveur + motscles ['CONVERGENCE' ] =dConverg + motscles ['NEWTON' ] =dNewton + motscles ['RECH_LINEAIRE'] =dRechlin + motscles ['INCREMENT' ] =dIncrem + self.DeclareOut('nomres',self.sd) + nomres = STAT_NON_LINE( MODELE = modele , + CHAM_MATER = affmat , + CARA_ELEM = carael , + INFO = INFO , **motscles) +# +# --- commande CALC_ELEM --- +# + nomres = CALC_ELEM( reuse = nomres, + RESULTAT = nomres , + MODELE = modele , + TOUT_ORDRE = 'OUI' , + OPTION = ('SIEF_ELNO_ELGA','EQUI_ELNO_SIGM') , + INFO = INFO ,) +# +# --- post-traitements --- +# + if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE': +# +# --- post traitement sous-epaisseurs: ligaments --- +# + if mc_IMPR_TABLE!=None: +# + SECT=('MI','TU','GV') + LIG=('FDRO','EXDR','EXTR','EXGA','FGAU','INGA','INTR','INDR') + if mc_IMPR_TABLE['POSI_ANGUL']==None: + ASEP=(mc_IMPR_TABLE['POSI_CURV_LONGI']/mc_IMPR_TABLE['R_CINTR'])*(180./pi) + else : + ASEP=mc_IMPR_TABLE['POSI_ANGUL'] +# +# moyenne_rccm, invariant et moyenne sur les ligaments dans +# l epaisseur +# + l_grno=MAILLAGE.LIST_GROUP_NO() + tabprl=[None]*4 + tablig=[None]*4 +# +# prelevements des ligaments circonferentiels et longitudinaux +# de la sous-epaisseur +# + lgrno=[] + for tgrno in l_grno : + if tgrno[0][:3] in ('CIR','LON') : lgrno.append(tgrno[0]) + elif tgrno[0][:5]=='PCENT' : lgrno.append(tgrno[0]) + elif (tgrno[0][:4] in LIG) and (tgrno[0][4:6] not in ('GV','TU','MI')): lgrno.append(tgrno[0]) +# + motscles={} + motscles['ACTION']=[] + for grno in lgrno : + motscles['ACTION'].append(_F(RESULTAT=nomres, + NOM_CHAM='SIEF_ELNO_ELGA', + TOUT_CMP='OUI', + INTITULE=grno, + GROUP_NO=grno, + OPERATION='EXTRACTION',)) + motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR' + tabprl[1]=POST_RELEVE_T(**motscles) + tablig[1]=POST_RCCM(MATER = rccmat, + TYPE_RESU_MECA = 'EVOLUTION', + OPTION = 'PM_PB', + TRANSITOIRE=_F(TABL_RESU_MECA = tabprl[1],),) +# + motscles={} + motscles['ACTION']=[] + for tgrno in lgrno : + motscles['ACTION'].append(_F(RESULTAT=nomres, + NOM_CHAM='SIEF_ELNO_ELGA', + INTITULE=tgrno, + GROUP_NO=tgrno, + INVARIANT='OUI', + OPERATION='EXTRACTION',)) + motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR' + + tablig[2]=POST_RELEVE_T(**motscles) +# + motscles={} + nommail=MAILLAGE.nom + coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') + linomno =aster.getvectjev(nommail.ljust(8)+'.NOMNOE') + collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') + + motscles['ACTION']=[] + for tgrno in lgrno : + if tgrno[:3]!='LON' : + if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.) + else : vecty=(sin(ASEP*pi/180.),0.,cos(ASEP*pi/180.)) + else : + if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.) + else : + grpn=collgrno['FGAUTU '] + LT1=coord[3*(grpn[0]-1)+2] + for node in grpn: + X = coord[3*(node-1)] + Y = coord[3*(node-1)+1] + Z = coord[3*(node-1)+2] + RCIN = mc_IMPR_TABLE['R_CINTR'] + if Z=120.) and (AZIM<=240.0): X = RM-EP/2.0 - SUREP + else: X = RM-EP/2.0 + else: X = RM+EP/2.0 + AZIMR = AZIM*2.0*pi/360.0 +# +# -- CALCUL COTE AXIALE DU CENTRE FISSURE SUR LA PLAQUE EN FONCTION +# DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE OU DE LA POSITION +# ANGULAIRE +# + if DSF: + if GEOM=='COUDE': SFP = SF/(1.0+X/RC*cos(AZIMR)) + else : SFP = SF + else : + BETAR = BETA*2.0*pi/360.0 + if (GEOM=='COUDE'): + SF = BETAR*(RC+X*cos(AZIMR)) + SFP = SF/(1.0+X/RC*cos(AZIMR)) + else: + SF = BETAR*RC + SFP = SF + if (GEOM=='COUDE'): echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR COUDE : %.2f \n'%SF) + if (GEOM=='TUBE') : echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR TUBE : %.2f \n'%SF ) + echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) +# +# ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES +# DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA +# PARTIE RESTANT DANS LE COUDE. +# + if (GEOM=='COUDE'): DIST = ALPHA*2.0*pi/360.0*(RC+X*cos(AZIMR)) + else : DIST = ALPHA*2.0*pi/360.0*RC + BCOUD = 0.0 + BEMB = 0.0 + if abs(ORIEN)<0.01: +# -- FISSURE LONGITUDINALE (0 DEGRE) + BSUP = SF + AXEC + BINF = SF - AXEC + if BSUP>DIST: + BCOUD = DIST - BINF + BEMB = BSUP - DIST + elif BINF<0. : + BCOUD = BSUP + BEMB = abs(BINF) + elif (BINF>=0. and BSUP<=DIST): + BCOUD = 2.0*AXEC + elif abs(ORIEN-90.)<0.01: +# -- FISSURE CIRCONFERENTIELLE (90 DEGRES) + BSUP = SF + BINF = SF + if BSUP>DIST: + BCOUD = DIST - BINF + BEMB = BSUP - DIST + elif BINF<0. : + BCOUD = BSUP + BEMB = abs(BINF) + elif (BINF>=0. and BSUP<=DIST): + BCOUD = 2.0*AXEC + else: +# -- FISSURE A +/- 45 DEGRES SUR INTRADOS OU EXTRADOS + BSUP = SF + sqrt(2.0)/2.0*AXEC + BINF = SF - sqrt(2.0)/2.0*AXEC + if BSUP>DIST: + BCOUD = (DIST - BINF)*sqrt(2.0) + BEMB = (BSUP - DIST)*sqrt(2.0) + elif BINF<0. : + BCOUD = BSUP *sqrt(2.0) + BEMB = abs(BINF)*sqrt(2.0) + elif (BINF>=0. and BSUP<=DIST): + BCOUD = 2.0*AXEC + echo_mess.append( 'PARTIE DU GRAND AXE DANS LE COUDE : %.2f \n'%BCOUD) + echo_mess.append( 'PARTIE DU GRAND AXE DANS L EMBOUT : %.2f \n'%BEMB) +# +# -- CALCUL DE LA TAILLE DU GRAND AXE FISSURE SUR LA PLAQUE +# + NEWT=0 + if abs(ORIEN)<0.01: +# -- FISSURE LONGITUDINALE (0 DEGRE) + if GEOM=='COUDE': AXECP = BCOUD/(1.0+X/RC*cos(AZIMR)) + BEMB + else : AXECP = BCOUD + BEMB + elif abs(ORIEN-90.)<0.01: +# -- FISSURE CIRCONFERENTIELLE (90 DEGRES) + AXECP = (BCOUD+BEMB)*RM/X + else : + if GEOM=='COUDE': +# ------- TRANSFORMATION COUDE + if AZIM in (0.,180.): +# -- FISSURE A +/- 45 DEGRES SUR INTRADOS OU EXTRADOS + AXECP = BCOUD*RM*sqrt(2.)/( X*sqrt(1.+(RM/X+RM/RC*cos(AZIMR))**2) )+\ + BEMB*sqrt( (1.0+(X/RM)**2)*0.5 ) + else : +# -- FISSURE A +/- 45 DEGRES AILLEURS + AXECP = funct_root.root(ASCFON,(BCOUD-1.,BCOUD+1.)) + AXECP = AXECP + BEMB*sqrt( (1.+(X/RM)**2)*0.5 ) + AXECC = ASCFON(AXECP)+BCOUD + NEWT=1 + elif GEOM=='TUBE': + AXECP = (BCOUD+BEMB)*sqrt( (1.+(X/RM)**2)*0.5 ) + else : + AXECP = BCOUD + BEMB +# + if GEOM=='COUDE': + echo_mess.append( 'TAILLE GRAND AXE COUDE DONNE : %.2f \n'%(2.*AXEC)) + elif GEOM=='TUBE': + echo_mess.append( 'TAILLE GRAND AXE TUBE DONNE : %.2f \n'%(2.*AXEC)) + echo_mess.append( 'TAILLE GRAND AXE PLAQUE DEDUIT : %.2f \n'%AXECP) + if NEWT: + echo_mess.append( 'METHODE DE NEWTON FISSURE A 45 DEGRES --> \n') + echo_mess.append( 'TAILLE GRAND AXE COUDE RECALCULE : %.2f \n'%AXECC) + if GEOM=='COUDE' and BEMB>0. and BSUP>DIST : + SFP = ALPHA*2.*pi*RC/360. - AXECP/2. + BEMB + echo_mess.append( 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT \n') + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) + if GEOM=='COUDE' and BEMB>0. and BINF<0. : + SFP = + AXECP/2. - BEMB + echo_mess.append( 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT \n') + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP) +# +# -- CORRECTION DU PETIT AXE DE LA FISSURE QUAND CELLE-CI SE TROUVE SUR +# LA ZONE DE SUREPAISSEUR +# + ALPHAR = ALPHA*2.*pi/360. + ZSUR1 = ALPHAR*RC/10. + ZSUR2 = ALPHAR*RC*9./10. + YFISS = (AZIMR-pi/2.)*RM + MU = 0. + if (AZIM>=120.) and (AZIM<=240.): + if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = 1. + elif (SFP<=ZSUR1): MU = SFP/ZSUR1 + elif (SFP>ZSUR2): MU = (ALPHAR*RC-SFP)/ZSUR1 + elif (AZIM>=90.) and (AZIM<=120.): + if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = YFISS/(pi/6.*RM) + elif (SFP<=ZSUR1): MU = YFISS*SFP/(pi/6.*RM*ZSUR1) + elif (SFP>ZSUR2): MU = YFISS*(ALPHAR*RC-SFP)/(pi/6.*RM*ZSUR1) + elif (AZIM>=240.) and (AZIM<=270.): + if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = (YFISS-5.*pi/6.*RM)/(pi/6.*RM) + elif (SFP<=ZSUR1): MU = (YFISS-5.*pi/6.*RM)*SFP/(pi/6.*RM*ZSUR1) + elif (SFP>ZSUR2): MU = (YFISS-5.*pi/6.*RM)*(ALPHAR*RC-SFP)/(pi/6.*RM*ZSUR1) +# + if SUREP!=0.: + AXEAP = AXEA * EP / ( EP + MU*SUREP ) + echo_mess.append( '--> CORRECTION DUE A LA SUREPAISSEUR \n' ) + echo_mess.append( '--> TAILLE PETIT AXE PLAQUE : %.2f \n'%AXEAP ) + else: AXEAP = AXEA +# + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) + return AXEAP,AXECP,SFP + + +# ------------------------------------------------------------------------------ +def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): + """ + MACR_ASCOUF_MAIL ASCSEP + taille initiale sur la plaque des sous-epaisseurs + + ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- + + ALPHA = ANGLE DU COUDE + RM = RAYON MOYEN DU COUDE + RC = RAYON DE CINTRAGE DU COUDE + EP = EPAISSEUR DU COUDE + GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) + SYME = QUART DE STRUCTURE SI 'OUI' + + """ + ier=0 + CG=pi/180. + echo_mess=['MACR_ASCOUF_MAIL ASCSEP \n',] +# +# --- BOUCLE SUR L ENSEMBLE DES SOUS-EPAISSEURS +# + i=0 + for ssep in MCL_SOUS_EPAIS : + i=i+1 + echo_mess.append( '-------------------------------------\n') + echo_mess.append( 'SOUS-EPAISSEUR NUMERO %d\n'%i) + echo_mess.append( '-------------------------------------\n') +# +# --- CAS DES SOUS-EPAISSEURS AXISYMETRIQUES +# + if ssep['TYPE']=='AXIS': + echo_mess.append( 'SOUS-EPAISSEUR AXISYMETRIQUE : \n') + echo_mess.append( 'CALCUL DE LA TAILLE LONGI ENVELOPPE EN INTRADOS (AZIMUT PI)\n') + ssep.ICIRP = 2.*pi*RM + ssep.ISCP = pi*RM + ssep.IPHIC = 180. + AZIMC = pi + else: +# +# -- CALCUL DE L ABSCISSE CURVILIGNE CIRCONF.SUR LA PLAQUE +# EN FONCTION DE L AZIMUT OU DE L ABSCISSE CURVIL.CIRCONF +# SUR LE COUDE DU CENTRE DE LA SOUS-EPAISSEUR +# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE +# + if ssep['POSI_CURV_CIRC']!=None: + ssep.ISCP = ssep['POSI_CURV_CIRC']*RM/(RM+EP/2.) + AZIMC = ssep.ISCP/RM + ssep.IPHIC = ssep['POSI_CURV_CIRC']/(RM+EP/2.)*180./pi + echo_mess.append( 'AZIMUT CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f \n'%ssep.IPHIC) + else: + ssep.ISCP = ssep['AZIMUT']*pi*RM/180. + AZIMC = ssep['AZIMUT']*pi/180. + echo_mess.append( 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f \n'%(AZIMC*(RM+EP/2.))) +# +# PASSAGE DANS LE REPERE PLAQUE (0,2PI) AVEC ORIGINE FLANC DROIT +# CAR L ORIGINE DES DONNEES CIRCONF. EST EN EXTRADOS +# + if ssep.ISCP>(3.*pi*RM/2.): ssep.ISCP = ssep.ISCP - 3.*pi*RM/2. + else: ssep.ISCP = ssep.ISCP + pi*RM/2. + echo_mess.append( 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISCP) +# +# -- CALCUL DE LA TAILLE CIRCONFERENTIELLE +# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE +# + ssep.ICIRP = ssep['AXE_CIRC']*(RM/(RM+EP/2.)) + if ssep.ICIRP>(2.*pi*RM) : + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' ASCSEP valeur hors domaine \n' + message=message+' sous-epaisseur numero : %d \n'%i + message=message+' taille axe circonferentiel : %.2f \n'%ssep.ICIRP + message=message+' bord plaque : %.2f \n'%2*pi*RM + UTMESS('F', "MACR_ASCOUF_MAIL", message) + echo_mess.append( 'TAILLE CIRCONFERENTIELLE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ICIRP) + echo_mess.append( '<=> TAILLE EQUIVALENTE SUR LA CIRCONFERENCE (DEGRES) : %.2f \n'%(ssep.ICIRP*360./(2.*pi*RM))) + +# +# -- CALCUL COTE AXIALE DU CENTRE SOUS-EPAISSEUR SUR LA PLAQUE +# EN FONCTION DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE +# OU DE LA POSITION ANGULAIRE +# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE +# + if ssep['POSI_CURV_LONGI']!=None: + if GEOM=='COUDE': + ssep.ISLP = ssep['POSI_CURV_LONGI']/(1.+(RM+EP/2.)/RC*cos(AZIMC)) + AZIML = ssep.ISLP/RC + echo_mess.append( 'ANGLE COUDE CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f \n'%(AZIML*180./pi)) + else : + ssep.ISLP = ssep['POSI_CURV_LONGI'] + if (SYME in ('QUART','DEMI')) and (ssep.ISLP!=ALPHA*CG*RC/2.) : + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' ASCSEP cas de symetrie :\n' + message=message+ ' la sous-epaisseur doit etre dans la section mediane du coude !\n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) + else : + if GEOM=='COUDE': + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f \n'%((ssep.BETA)*CG*(RC+(RM+EP/2.)*cos(AZIMC)))) + AZIML = (ssep.BETA)*CG + else : + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR TUBE : %.2f \n'%((ssep.BETA)*CG*RC) ) + ssep.ISLP = (ssep.BETA)*CG*RC + if (SYME in ('QUART','DEMI')) and (ssep.BETA!=ALPHA/2.) : + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' ASCSEP cas de symetrie :\n' + message=message+ ' la sous-epaisseur doit etre dans la section mediane du coude !\n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) +# +# -- CALCUL DE LA TAILLE LONGITUDINALE +# NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE +# +# ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES +# DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA +# PARTIE RESTANT DANS LE COUDE. +# + if GEOM=='COUDE' : DIST = ALPHA*CG*(RC+(RM+EP/2.)*cos(AZIMC)) + else : DIST = ALPHA*CG*RC + if ssep['POSI_CURV_LONGI']!=None: + BSUP = ssep['POSI_CURV_LONGI']+ssep['AXE_LONGI']/2. + BINF = ssep['POSI_CURV_LONGI']-ssep['AXE_LONGI']/2. + else: + if GEOM=='COUDE' : + BSUP = ssep.BETA*CG*(RC+(RM+EP/2.)*cos(AZIMC))+ssep['AXE_LONGI']/2. + BINF = ssep.BETA*CG*(RC+(RM+EP/2.)*cos(AZIMC))-ssep['AXE_LONGI']/2. + else: + BSUP = ssep.BETA*CG*RC + ssep['AXE_LONGI']/2. + BINF = ssep.BETA*CG*RC - ssep['AXE_LONGI']/2. + BCOUD1 = 0. + BCOUD2 = 0. + BEMB1 = 0. + BEMB2 = 0. + if BINF<0. and BSUP>DIST : + BCOUD1 = DIST + BEMB1 = abs(BINF) + BSUP-DIST + elif BSUP>DIST : + BCOUD1 = DIST - BINF + BEMB1 = BSUP - DIST + elif BINF<0 : + BCOUD2 = BSUP + BEMB2 = abs(BINF) + elif (BINF>=0. and BSUP<=DIST) : + BCOUD1 = ssep['AXE_LONGI'] + BCOUD = BCOUD1+ BCOUD2 + BEMB = BEMB1 + BEMB2 + if GEOM=='COUDE' : BPLAQ = BCOUD/(1.+(RM+EP/2.)/RC*cos(AZIMC)) + else : BPLAQ = BCOUD + ssep.ILONP = BPLAQ+BEMB + if BEMB1>0.: + ssep.ISLP = ALPHA*CG*RC - ssep.ILONP/2. + BEMB1 + echo_mess.append( 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT \n') + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) + if BEMB2>0.: + ssep.ISLP = ssep.ILONP/2. - BEMB2 + echo_mess.append( 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT \n') + echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP) + if ssep.ISLP<0. : ssep.ISLP = 0. + if (ssep.ISLP>ALPHA*CG*RC) : ssep.ISLP = ALPHA*CG*RC +# +# SI LE CENTRE DE LA SOUS-EP CALCULE SUR LA PLAQUE EST DANS L EMBOUT +# ON CORRIGE SA POSITION EN LE METTANT A L INTERFACE SINON CA PLANTE +# DANS LA PROC DE MAILLAGE (A AMELIORER) +# + echo_mess.append( 'TAILLE LONGITUDINALE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ILONP) + echo_mess.append( '<=> TAILLE EQUIVALENTE PAR RAPPORT A L ANGLE DU COUDE (DEGRES): %.2f \n'%(ssep.ILONP*360/(2*pi*RC))) +# + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) + return ier,AZIMC + +# ------------------------------------------------------------------------------ +def ASCTCI(MCL_SOUS_EPAIS,RM): + """ + MACR_ASCOUF_MAIL ASCTCI + APPELEE DANS : ASCSYM et ASCPRE + CALCUL TABLEAU TRIE DES ABSCISSES DES CENTRES DE SOUS-EPAISSEURS + + ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- + + RM = RAYON MOYEN DU COUDE + + -----------------DONNEES RENVOYEES----------------------- + + IABSC1 = CORRESPONDANCE ABSC. CURVI. CIRCONF. SOUS-EP. I + IABSC2 = CORRESPONDANCE ABSC. GAUCHE ET DROITE CIRCONF. SOUS-EP. I + COORXD = ABSC. DU BORD DROIT DE LA SOUS-EP I + COORXG = ABSC. DU BORD GAUCHE DE LA SOUS-EP I + + """ +# +# --- tri du tableau des abscisses curvilignes circonf. plaque +# + echo_mess=['MACR_ASCOUF_MAIL ASCTCI \n',] + TAMPON = [] + COORXG = [] + COORYG = [] + i=0 + for ssep in MCL_SOUS_EPAIS : + i=i+1 + if (ssep.ISCP>2.*pi*RM) or (ssep.ISCP<0.) : + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' valeur hors domaine \n' + message=message+ ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep) + message=message+ ' ABSC. CURV. CIRCONF. :%.2f \n'%ssep.ISCP + message=message+ ' BORD PLAQUE :%.2f \n'%(2.*pi*RM) + UTMESS('F', "MACR_ASCOUF_MAIL", message) + TAMPON.append((ssep.ISCP,i)) + TAMPON.sort() + IABSC1=[] + for j in range(i): + IABSC1.append(TAMPON[j][1]) + echo_mess.append( ' \n') + echo_mess.append( 'TRI DES CENTRES ABSC. CURV. CIRCONF. :\n ') + echo_mess.append( '------------------------------------\n') + i=0 + for ssep in TAMPON : + i=i+1 + echo_mess.append( '%d) SOUS-EP NO %d <> XC = %.2f \n'%(i,ssep[1],ssep[0]) ) +# +# --- calcul des abcisses droites et gauches des sous-epaisseurs +# + COORXD=[] + COORXG=[] + for bid in TAMPON : + XG=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2. + if XG<0. : XG=XG+2.*pi*RM + COORXG.append(XG) + XD=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2. + if XD>2.*pi*RM : XD=XD-2.*pi*RM + COORXD.append(XD) +# +# --- tri des bornes d'intervalles en abscisse +# + TAMPON = [] + for j in range(len(MCL_SOUS_EPAIS)): + TAMPON.append((COORXG[j],2*j+1)) + TAMPON.append((COORXD[j],2*j+2)) + TAMPON.sort() + IABSC2=[] + for j in range(2*len(MCL_SOUS_EPAIS)): + IABSC2.append(TAMPON[j][1]) + echo_mess.append( '\n') + echo_mess.append( 'TRI DES INTERVALLES G ET D ABSC. CURV. CIRCONF. :\n') + echo_mess.append( '-----------------------------------------------\n' ) + for j in range(2*len(MCL_SOUS_EPAIS)): + if fmod(IABSC2[j],2): + echo_mess.append( '%d) SOUS-EP NO %d <> XG = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0])) + else: + echo_mess.append( '%d) SOUS-EP NO %d <> XD = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0])) +# + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) + return TAMPON,IABSC1,IABSC2,COORXD,COORXG + +# ------------------------------------------------------------------------------ +def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM): + """ + MACR_ASCOUF_MAIL ASCTLO + APPELEE DANS : ASCSYM et ASCPRE + CALCUL TABLEAU TRIE DES ORDONNEES DES CENTRES DE SOUS-EPAISSEURS + + ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- + + RC = RAYON MOYEN DU COUDE + ALPHA = ANGLE DU COUDE + LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT + LTCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES + + -----------------DONNEES RENVOYEES----------------------- + + IORDO1 = CORRESPONDANCE ORDO. CURVI. LONGIT. SOUS-EP. I + IORDO2 = CORRESPONDANCE ORDO. GAUCHE ET DROITE LONGIT. SOUS-EP. I + COORYI = ORDONNEE. DU BORD INTERIEUR DE LA SOUS-EP I + COORYS = ORDONNEE. DU BORD SUPERIEUR DE LA SOUS-EP I + + """ +# +# tri du tableau des abscisses curvilignes axiales plaque +# + echo_mess=['MACR_ASCOUF_MAIL ASCTLO \n',] + ALPHAR = 2.*ALPHA*pi/360. + TAMPON = [] + i=0 + for ssep in MCL_SOUS_EPAIS : + i=i+1 + if (ssep.ISLP>ALPHAR*RC) or (ssep.ISLP<0.) : + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' valeur hors domaine \n' + message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%MCL_SOUS_EPAIS.index(ssep) + message=message+ ' ABSC. CURV. LONGIT. :%.2f \n'%ssep.ISLP + message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC) + UTMESS('F', "MACR_ASCOUF_MAIL", message) + TAMPON.append((ssep.ISLP,i)) + TAMPON.sort() + IORDO1=[] + for j in range(i): + IORDO1.append(TAMPON[j][1]) + echo_mess.append( '\n') + echo_mess.append( 'TRI DES CENTRES ABSC. CURV. LONGIT. : \n') + echo_mess.append( '------------------------------------ \n') + i=0 + for ssep in TAMPON : + i=i+1 + echo_mess.append( '%d) SOUS-EP NO %d <> YC = %.2f \n'%(i,ssep[1],ssep[0])) +# +# calcul des abscisses sup. et inf. des sous-ep. +# + COORYI=[] + COORYS=[] + EPS=0.000000000001 + for bid in TAMPON : + i=i+1 + YI=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ILONP/2. + YS=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ILONP/2. + if fabs(bid[0])(ALPHAR*RC+LTCLIM): + texte_final=string.join(echo_mess) + aster.affiche("MESSAGE",texte_final) + message= ' valeur hors domaine \n' + message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%bid[1] + message=message+ ' BORD INFERIEUR :%.2f \n'%YI + message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC+LTCLIM) + UTMESS('F', "MACR_ASCOUF_MAIL", message) + COORYI.append(YI) + COORYS.append(YS) +# +# tri des bornes d'intervalles en abscisse +# + TAMPON = [] + for j in range(len(MCL_SOUS_EPAIS)): + TAMPON.append((COORYI[j],2*j+1)) + TAMPON.append((COORYS[j],2*j+2)) + TAMPON.sort() + IORDO2=[] + for j in range(2*len(MCL_SOUS_EPAIS)): + IORDO2.append(TAMPON[j][1]) + echo_mess.append( '\n') + echo_mess.append( 'TRI DES INTERVALLES I ET S ABSC. CURV. LONGIT. : \n') + echo_mess.append( '----------------------------------------------- \n') + for j in range(2*len(MCL_SOUS_EPAIS)): + if fmod(IORDO2[j],2): + echo_mess.append( '%d) SOUS-EP NO %d <> YI = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2],TAMPON[j][0])) + else: + echo_mess.append( '%d) SOUS-EP NO %d <> YS = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2-1],TAMPON[j][0])) +# + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) + return TAMPON,IORDO1,IORDO2,COORYI,COORYS +# +# +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL ASCNBE +# APPELEE DANS : ASCSYM et ASCPRE +# CALCUL DU NOMBRE D'ELEMENTS LONGI ET CIRCONF. DANS LES SOUS-EPAISSEURS +# +#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- +# +# COORXG = ABSCISSE DU BORD GAUCHE DE LA SOUS-EPAISSEUR I +# COORXD = ABSCISSE DU BORD DROIT DE LA SOUS-EPAISSEUR I +# COORYI = ORDONNEE DU BORD INFERIEUR DE LA SOUS-EPAISSEUR I +# COORYS = ORDONNEE DU BORD SUPERIEUR DE LA SOUS-EPAISSEUR I +# BD = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J +# BG = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J +# BS = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J +# BI = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J +# DNX = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J +# DNY = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J +# INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J +# INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# IABSC1 = CORRESPONDANCE ABSCISSE CURVILIGNE CIRCONF. SOUS-EP. I +# IORDO1 = CORRESPONDANCE ABSCISSE CURVILIGNE LONGIT. SOUS-EP. I +# +#----------------------DONNEES RENVOYEES----------------------- +# +# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K +# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K +# +# ------------------------------------------------------------------------------ +def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC, + INDSEX,INDSEY,IABSC1,IORDO1): +# +# calcul du nombre d'elements longi. et circonf. dans les sous-epaisseurs: +# + echo_mess=['MACR_ASCOUF_MAIL ASCNBE \n',] + echo_mess.append( '\n') + echo_mess.append( 'DETERMINATION DU NOMBRE D''ELEMENTS DANS LES SOUS-EPAISSEURS :\n') + echo_mess.append( '------------------------------------------------------------\n') + NLX=[0]*len(MCL_SOUS_EPAIS) + NLY=[0]*len(MCL_SOUS_EPAIS) + for j in range(len(BD)): + if INDSEX[j]!=0: +# calcul au passage du nombre d'elements sur chaque zone circonf. + RNBEL = (BD[j]-BG[j])*360./(DNX[2*j]*2.*pi*RM) + RNBEL2 = RNBEL - floor(RNBEL) + if RNBEL2 <= 0.5 : NBEL=int(floor(RNBEL)) + else : NBEL=int(floor(RNBEL))+1 + if NBEL <= 1 : NBEL=2 +# calcul au passage du nombre d'elements sur chaque sous-epaisseur circonf. + for i in range(len(MCL_SOUS_EPAIS)): + l=IABSC1[i]-1 + if ((COORXG[l]=COORXG[l] and BD[j]<=COORXD[l])\ + or (COORXG[l]>=COORXD[l] and (BG[j]<=COORXG[l] or BD[j]>=COORXD[l]))): + NLX[i]=NLX[i]+NBEL + echo_mess.append( 'SOUS-EP NO %d ZONE CIRC. NO %d NB ELEM. = %d \n'%(i+1,j+1,NBEL)) + + for j in range(len(BS)): + if INDSEY[j]!=0: +# calcul au passage du nombre d'elements sur chaque zone longi. + RNBEL = ((BS[j]-BI[j])*360.)/(DNY[2*j]*2.*pi*RC) + RNBEL2 = RNBEL - floor(RNBEL) + if RNBEL2 <= 0.5 : NBEL=int(floor(RNBEL)) + else : NBEL=int(floor(RNBEL))+1 + if NBEL <= 1 : NBEL=2 +# calcul au passage du nombre d'elements sur chaque sous-epaisseur circonf. + i=0 + for i in range(len(MCL_SOUS_EPAIS)): + l=IORDO1[i]-1 + if (BI[j]>=COORYI[l] and BS[j]<=COORYS[l]): + NLY[i]=NLY[i]+NBEL + echo_mess.append( 'SOUS-EP NO %d ZONE LONGI. NO %d NB ELEM. = %d \n'%(i+1,j+1,NBEL) ) + + for j in range(len(NLX)): + echo_mess.append( 'SOUS-EP NO %d NBE TOTAL ELEMENTS CIRCONF. : %d \n'%(j+1,NLX[j])) + echo_mess.append( 'SOUS-EP NO %d NBE TOTAL ELEMENTS LONGI. : %d \n'%(j+1,NLY[j])) + +# + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) + return NLX,NLY +# +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL ASCSYM +# PREPARATION DES DONNEES POUR LE MAILLAGE DE PLAQUE AVEC +# SOUS-EPAISSEURS : +# CAS D UNE SOUS-EPAISSEUR DANS LE PLAN DE SYMETRIE +# CONSTRUCTION D UN QUART DU MAILLAGE +# - CALCUL TABLEAU TRIE DES ABSCISSES ET ORDONNEES DES CENTRES +# - CALCUL TABLEAU DES ZONES COUVERTES PAR LES SOUS-EPAISSEURS +# +#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- +# +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# ALPHA = ANGLE DU COUDE +# LT = LONGUEUR DE L EMBOUT DU COTE CHARGEMENT +# LGV = LONGUEUR DE L EMBOUT DU COTE CONDITIONS AUX LIMITES +# NBSEP = NOMBRE DE SOUS-EPAISSEURS +# +#----------------------DONNEES RENVOYEES----------------------- +# +# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES +# NZONEY = NOMBRE DE ZONES LONGITUDINALES +# +# ------------------------------------------------------------------------------ +def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM): + ier=0 + echo_mess=['MACR_ASCOUF_MAIL ASCSYM \n',] + DERAFC = 18. + DERAFL = 5. + INDSEX = [] + INDSEY = [] + BG = [] + BD = [] + INDBG = [] + INDBD = [] + DNX = [] + +# +# --- tri des donnees sous-ep. en circonferentiel + TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM) +# +# --- calcul des zones en circonferentiel +# + ssep=MCL_SOUS_EPAIS[0] + if (ssep.ISCP BORNE INF. = %.2f \n'\ + ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j])) + else: + echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\ + ' / BORNE SUP. = %.2f'%(j+1,BI[j],BS[j])) + +# calcul du nombre d'elements longi. et circonf. dans les soue-ep + NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI, + DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1) + + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) + return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY +################################################################################ +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL ASCPRE +# PREPARATION DES DONNEES POUR LE MAILLAGE DE PLAQUE +# SOUS-EPAISSEURS : +# - CALCUL TABLEAU TRIE DES ABSCISSES ET ORDONNEES DES CENTRES +# - CALCUL TABLEAU DES ZONES COUVERTES PAR LES SOUS-EPAISSEURS +# +#-----------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- +# +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# ALPHA = ANGLE DU COUDE +# LT = LONGUEUR DE L EMBOUT DU COTE CHARGEMENT +# LGV = LONGUEUR DE L EMBOUT DU COTE CONDITIONS AUX LIMITES +# NBSEP = NOMBRE DE SOUS-EPAISSEURS +# SYME = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER" +# +#----------------------DONNEES RENVOYEES----------------------- +# +# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES +# NZONEY = NOMBRE DE ZONES LONGITUDINALES +# +# ------------------------------------------------------------------------------ +def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM): + ier=0 + echo_mess=['MACR_ASCOUF_MAIL ASCPRE \n',] + ALPHAR = 2.*ALPHA*pi/360. + DERAFC = 18. + DERAFL = 5. + EPSI = 0.001 + NBSEP = len(MCL_SOUS_EPAIS) + echo_mess.append( 'RECHERCHE DES ZONES DE SOUS-EPAISSEURS DANS LE COUDE\n' ) + +# tri des donnees sous-epaisseurs en circonferentiel + TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM) +# --- calcul des recouvrements de zones en circonferentiel +# + NZONEX=0 + j=0 + ICE=1 + NBGAU=0 + NBDRO=0 + TYPG=0 + TYPD=0 + go10=1 + go20=1 +# + BG =[] + BD =[] + INDBG =[] + INDBD =[] + DNX =[] + INDSEX=[] +# + + while go10: + + j=j+1 +# +# definition de la zone courante (borne gauche, borne droite) +# +# TYPG = type de la borne: +# 0 : borne gauche sous-epaisseur +# 1 : borne droite sous-epaisseur +# 2 : centre sous-epaisseur +# + if j>2*NBSEP and ICE= 2*NBSEP : + MIND = TAMPON[2*NBSEP-1][0] + MING = MIND + if fmod(IABSC2[2*NBSEP-1],2): + TYPG = 0 + NUMG = IABSC1[IABSC2[2*NBSEP-1]/2] + else: + TYPG = 1 + NUMG = IABSC1[IABSC2[2*NBSEP-1]/2-1] + TYPD=TYPG + NUMD=NUMG + else: + MING=TAMPON[j-1][0] + MIND=TAMPON[j][0] + if fmod(IABSC2[j-1],2): + TYPG = 0 + NUMG = IABSC1[IABSC2[j-1]/2] + else: + TYPG = 1 + NUMG = IABSC1[IABSC2[j-1]/2-1] + if fmod(IABSC2[j],2): + TYPD = 0 + NUMD = IABSC1[IABSC2[j]/2] + else: + TYPD = 1 + NUMD = IABSC1[IABSC2[j]/2-1] + if fabs(MING-MIND)2*NBSEP and ICE>=NBSEP: + break #on sort de la boucle + + while go20: + i=ICE + if i<=NBSEP: +# recherche des centres a intercaler + INDC=IABSC1[i-1] + if i>1: +# le centre est deja le meme que precedent + if fabs(MCL_SOUS_EPAIS[INDC-1].ISCP-MCL_SOUS_EPAIS[IABSC1[i-2]-1].ISCP) < EPSI : + ICE=ICE+1 + continue + if MCL_SOUS_EPAIS[INDC-1].ISCP < MING : +# le centre est la nouvelle borne gauche + j=j-1 + MIND = MING + TYPD = TYPG + NUMD = NUMG + MING = MCL_SOUS_EPAIS[INDC-1].ISCP + TYPG = 2 + NUMG = INDC + ICE = ICE+1 + elif MCL_SOUS_EPAIS[INDC-1].ISCP < MIND : +# le centre est la nouvelle borne droite + MIND = MCL_SOUS_EPAIS[INDC-1].ISCP + TYPD = 2 + NUMD = INDC + ICE = ICE+1 + continue + else:pass + NZONEX=NZONEX+1 +# +# codes d'intervalles de zones +# 0 0 = zone sous-ep. +# 0 1 = sous-ep. a droite de la zone +# 1 0 = sous-ep. a gauche de la zone +# 1 1 = sous-ep. a droite et a gauche de la zone +# +# cas ou la premiere zone ne commence pas au bord de la plaque + if MING>0. and NZONEX==1 : + BG.append(0.) + BD.append(MING) + if TYPG==0: + INDBG.append(0) + INDBD.append(1) + DNX.append(DERAFC) + DNX.append(0) + INDSEX.append(0) + elif TYPG==1 or TYPG==2: + INDBG.append(0) + INDBD.append(0) + DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) + DNX.append(0) + INDSEX.append(NUMG) + else: pass + NZONEX=NZONEX+1 +# + BG.append(MING) + BD.append(MIND) +# + if TYPG == 0: +# borne gauche zone = borne gauche ssep + NBGAU=NBGAU+1 + INDBG.append(0) + INDBD.append(0) + if TYPD == 0: +# borne droite zone = borne gauche ssep + DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) + DNX.append(0) + INDSEX.append(NUMG) + elif TYPD == 1 or TYPD == 2: +# borne droite zone = borne droite ssep : TYPD=1 +# borne droite zone = centre ssep : TYPD=2 + LTMP=[] + LTMP.append((MCL_SOUS_EPAIS[NUMG-1].IDENC,NUMG)) + LTMP.append((MCL_SOUS_EPAIS[NUMD-1].IDENC,NUMD)) + LTMP.sort() + DNX.append(LTMP[0][0]) + DNX.append(0) + INDSEX.append(LTMP[0][1]) + else: pass +# + elif TYPG == 1: +# borne gauche zone = borne droite ssep + NBDRO = NBDRO+1 + if TYPD == 0: +# borne droite zone = borne gauche ssep + if NBDRO==NBGAU: + INDBG.append(1) + INDBD.append(1) + DNX.append(DERAFC) + DNX.append(0) + INDSEX.append(0) + else: +# cas tordu: une sous-ep enveloppe le tout + INDBG.append(0) + INDBD.append(0) + DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) + DNX.append(0) + INDSEX.append(NUMG) + elif TYPD == 1 or TYPD == 2: +# borne droite zone = borne droite ssep : TYPD=1 +# borne droite zone = centre ssep : TYPD=2 + INDBG.append(0) + INDBD.append(0) + DNX.append(MCL_SOUS_EPAIS[NUMD-1].IDENC) + DNX.append(0) + INDSEX.append(NUMD) + else: pass +# + elif TYPG == 2: +# borne gauche zone = centre ssep + INDBG.append(0) + INDBD.append(0) + if TYPD == 0: +# borne droite zone = borne gauche ssep + DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC) + DNX.append(0) + INDSEX.append(NUMG) + elif TYPD == 1 or TYPD == 2: +# borne droite zone = borne droite ssep : TYPD=1 +# borne droite zone = centre ssep : TYPD=2 + LTMP=[] + LTMP.append((MCL_SOUS_EPAIS[NUMG-1].IDENC,NUMG)) + LTMP.append((MCL_SOUS_EPAIS[NUMD-1].IDENC,NUMD)) + LTMP.sort() + DNX.append(LTMP[0][0]) + DNX.append(0) + INDSEX.append(LTMP[0][1]) + else:pass + else:pass + if j<=(2*NBSEP-2) or ICE<=NBSEP or (TYPD==2 and j<2*NBSEP): + iout=0 + break #on retourne dans la boucle go10 + else : + iout=1 + break #on sort definitivement + if iout:break + + if MIND<2.*pi*RM: + NZONEX=NZONEX+1 + BG.append(MIND) + BD.append(2.*pi*RM) + if TYPD==0 or TYPD==2: + INDBG.append(0) + INDBD.append(0) + DNX.append(MCL_SOUS_EPAIS[NUMD-1].IDENC) + DNX.append(0) + INDSEX.append(NUMD) + elif TYPD==1: + INDBG.append(1) + INDBD.append(0) + DNX.append(DERAFC) + DNX.append(0) + INDSEX.append(0) + else:pass + +# au cas ou 2.*pi*RM correspond a une borne d'intevalle de sous-ep ou a +# un centre de sous-ep. + if fabs(BG[NZONEX-1]-BD[NZONEX-1]) BORNE GAUCHE = %.2f \n'\ + ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(j+1,BG[j],BD[j])) + else: + echo_mess.append( 'ZONE NO %d <> BORNE GAUCHE = %.2f \n'\ + ' / BORNE DROITE = %.2f'%(j+1,BG[j],BD[j])) + + +# --- tri des donnees sous-ep. en axial + TAMPON,IORDO1,IORDO2,COORYI,COORYS=ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM) + + BI = [] + BS = [] + INDBI = [] + INDBS = [] + DNY = [] + INDSEY = [] + + if SYME == 'DEMI': +# calcul des zones en axial : +# zones (0,bord inferieur) et (bord inferieur,centre sous-ep.) + ssep = MCL_SOUS_EPAIS[0] + BI.append(0.) + BI.append(ssep.ISLP-ssep.ILONP/2.) + BS.append(ssep.ISLP-ssep.ILONP/2.) + BS.append(ssep.ISLP) + INDBI.append(0) + INDBI.append(0) + INDBS.append(1) + INDBS.append(0) + DNY.append(DERAFL) + DNY.append(0) + DNY.append(ssep.IDENL) + DNY.append(0) + INDSEY.append(0) + INDSEY.append(1) + NZONEY=1 +# + else: +# +# calcul des recouvrements de zones en axial + j = 0 + ICE = 1 + NBINF = 0 + NBSUP = 0 + TYPI=0 + TYPS=0 + go40=1 + go50=1 + NZONEY=0 +# + while go40: + j=j+1 +# +# definition de la zone courante (borne inf, borne sup) +# +# typi = type de la borne +# 0 : borne inf. sous-ep. +# 1 : borne sup. sous-ep. +# 2 : centre sous-ep. +# + if TYPS==2: +# cas ou la borne sup. de la zone prec. etait un centre + MINI=MINS + TYPI=TYPS + NUMI=NUMS + MINS=TAMPON[j-1][0] + if fmod(IORDO2[j-1],2): + TYPS = 0 + NUMS = IORDO1[IORDO2[j-1]/2] + else: + TYPS = 1 + NUMS = IORDO1[IORDO2[j-1]/2-1] + j=j-1 + else: + if j>= 2*NBSEP : + MINI = TAMPON[2*NBSEP-1][0] + MINS = MINI + if fmod(IORDO2[2*NBSEP-1],2): + TYPI = 0 + NUMI = IORDO1[IORDO2[2*NBSEP-1]/2] + else: + TYPI = 1 + NUMI = IORDO1[IORDO2[2*NBSEP-1]/2-1] + TYPS=TYPI + NUMS=NUMI + else: + MINI=TAMPON[j-1][0] + MINS=TAMPON[j][0] + if fmod(IORDO2[j-1],2): + TYPI = 0 + NUMI = IORDO1[IORDO2[j-1]/2] + else: + TYPI = 1 + NUMI = IORDO1[IORDO2[j-1]/2-1] + if fmod(IORDO2[j],2): + TYPS = 0 + NUMS = IORDO1[IORDO2[j]/2] + else: + TYPS = 1 + NUMS = IORDO1[IORDO2[j]/2-1] + if fabs(MINI-MINS)1: +# le centre est deja le meme que le precedent + if fabs(MCL_SOUS_EPAIS[INDC-1].ISLP-MCL_SOUS_EPAIS[IORDO1[i-2]-1].ISLP)0. and NZONEY==1: + first=0 + BI.append(0.) + BS.append(MINI) + if TYPI==0: + INDBI.append(0) + INDBS.append(1) + DNY.append(DERAFL) + DNY.append(0) + INDSEY.append(0) + elif TYPI==1 or TYPI==2: + INDBI.append(0) + INDBS.append(0) + DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) + DNY.append(0) + INDSEY.append(NUMI) + else:pass + NZONEY = NZONEY+1 +# + BI.append(MINI) + BS.append(MINS) + + if TYPI==0: +# borne inferieure zone = borne inferieure ssep + NBINF = NBINF+1 + INDBI.append(0) + INDBS.append(0) + if TYPS==0: +# borne superieure zone = borne inferieur ssep + DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) + DNY.append(0) + INDSEY.append(NUMI) + elif TYPS==1 or TYPS==2: +# borne superieure zone = borne superieure ssep:TYPS==1 +# borne superieure zone = centre ssep:TYPS==2 + LTMP=[] + LTMP.append((MCL_SOUS_EPAIS[NUMI-1].IDENL,NUMI)) + LTMP.append((MCL_SOUS_EPAIS[NUMS-1].IDENL,NUMS)) + LTMP.sort() + DNY.append(LTMP[0][0]) + DNY.append(0) + INDSEY.append(LTMP[0][1]) + else:pass + elif TYPI==1: +# borne inferieure zone=borne superieure ssep + NBSUP = NBSUP+1 + if TYPS==0: +# borne superieure zone = borne inferieur ssep + if NBSUP==NBINF: + INDBI.append(1) + INDBS.append(1) + DNY.append(DERAFL) + DNY.append(0) + INDSEY.append(0) + else: +# cas tordu: une sous-ep. enveloppe le tout + INDBI.append(0) + INDBS.append(0) + DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) + DNY.append(0) + INDSEY.append(NUMI) + elif TYPS==1 or TYPS==2: +# borne superieure zone = borne superieure ssep:TYPS==1 +# borne superieure zone = centre ssep:TYPS==2 + INDBI.append(0) + INDBS.append(0) + DNY.append(MCL_SOUS_EPAIS[NUMS-1].IDENL) + DNY.append(0) + INDSEY.append(NUMS) + else:pass + elif TYPI==2: +# borne inferieure zone = centre ssep + INDBI.append(0) + INDBS.append(0) + if TYPS==0: +# borne superieure zone = borne inferieure ssep + DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL) + DNY.append(0) + INDSEY.append(NUMI) + elif TYPS==1 or TYPS==2: +# borne superieure zone = borne superieure ssep + LTMP=[] + LTMP.append((MCL_SOUS_EPAIS[NUMI-1].IDENL,NUMI)) + LTMP.append((MCL_SOUS_EPAIS[NUMS-1].IDENL,NUMS)) + LTMP.sort() + DNY.append(LTMP[0][0]) + DNY.append(0) + INDSEY.append(LTMP[0][1]) + else:pass + else:pass + if j<=(2*NBSEP-2) or TYPS==2: + iout=0 + break #on retourne dans la boucle go40 + else: + iout=1 + break #on sort definitivement + if iout:break + +# cas ou la derniere zone ne finit pas au bout de la plaque + if MINS BORNE INF. = %.2f \n'\ + ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j])) + else: + echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\ + ' / BORNE SUP. = %.2f '%(j+1,BI[j],BS[j])) + +# calcul du nombre d'elements longi. et circonf. dans les sous-ep + NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI, + DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1) + + + texte_final=string.join(echo_mess) + aster.affiche('MESSAGE',texte_final) + return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_dgib_ASCFDO +# +# ECRIT DANS UN FICHIER LES DONNES GIBI DE LA PROCEDURE +# "PLAQUE FISSUREE" +# + +# ------------------------------------------------------------------------------ +def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, + TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC, + SFP,ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME, loc_datg) : + + if TYPBOL!= None: + if TYPBOL=='CUVE' : TYPEMB = 'typcuv' + if TYPBOL=='GV' : TYPEMB = 'typegv' + if TYPBOL=='ASP_MPP' : TYPEMB = 'typapp' + else: + TYPEMB =' ' + + if POSIT =='DEB_INT' : + POSIT2 = 'interne' + else: + POSIT2 = 'externe' + if SYME[:6]=='ENTIER' : ZSYME = 'entier' + elif SYME[:5]=='QUART' : ZSYME = 'quart' + else : ZSYME = 'demi' + C=AXECP/2. + TETAF=AZIM*pi/180. + + POIVIR = ' ;\n' + texte='* DEBUT PARAMETRES UTILISATEUR\n' + texte=texte+'*\n' + texte=texte+'c = '+str(C) +POIVIR + texte=texte+'a = '+str(AXEAP) +POIVIR + texte=texte+'nt = '+str(NT) +POIVIR + texte=texte+'ns = '+str(NS) +POIVIR + texte=texte+'nc = '+str(NC) +POIVIR + texte=texte+'rm = '+str(RM) +POIVIR + texte=texte+'rc = '+str(RC) +POIVIR + texte=texte+'alphac = '+str(ALPHA) +POIVIR + texte=texte+'nbtranep = '+str(NBTRAN) +POIVIR + texte=texte+'ep1 = '+str(EP1) +POIVIR + texte=texte+'ep2 = '+str(EP2) +POIVIR + texte=texte+'epi = '+str(EPI) +POIVIR + texte=texte+'teta1 = '+str(TETA1) +POIVIR + texte=texte+'teta2 = '+str(TETA2) +POIVIR + texte=texte+'ltran = '+str(LTRAN) +POIVIR + texte=texte+'posfis = '+str(SFP) +POIVIR + texte=texte+'ksiref = '+str(ORIEN) +POIVIR + texte=texte+'surep = '+str(SUREP) +POIVIR + texte=texte+'teta_f = '+str(TETAF) +POIVIR + texte=texte+'rc0 = '+str(RC0) +POIVIR + texte=texte+'rc2 = '+str(RC2) +POIVIR + texte=texte+'rc3 = '+str(RC3) +POIVIR + texte=texte+"pos = '"+POSIT2+"'" +POIVIR + texte=texte+'lt = '+str(LTCHAR) +POIVIR + texte=texte+'lgv = '+str(LTCLIM) +POIVIR + texte=texte+"typembou = '"+TYPEMB+"'" +POIVIR + texte=texte+"zsyme = '"+ZSYME+"'" +POIVIR + texte=texte+'epsif = '+str(EPSI) +POIVIR + texte=texte+'nivmag = '+str(NIVMAG) +POIVIR + texte=texte+'*\n' + texte=texte+'* FIN PARAMETRES UTILISATEUR\n' + texte = texte + open(os.path.join(loc_datg, 'ascouf_fiss_v4.datg'), 'r').read() + fdgib=open(nomFichierDATG,'w') + fdgib.write(texte) + fdgib.close() + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_dgib_ASCSQO +# +# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE +# "PLAQUE SOUS-EPAISSEUR" +# +#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- +# +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# ALPHA = ANGLE DU COUDE +# NBTRAN = NOMBRE DE TRANSITION D'EPAISSEUR (0, 1 OU 2) +# EP1 = EPAISSEUR DU COUDE (COTE EMBOUT 1 SI TRANSITION) +# EP2 = EPAISSEUR DU COUDE (COTE EMBOUT 2 SI TRANSITION) +# EPI = EPAISSEUR DU COUDE INTERMEDIAIRE SI TRANSITION A 2 PENTES +# TETA1 = ANGLE DE LA PREMIERE TRANSITION D'EPAISSEUR EVENTUELLE +# TETA2 = ANGLE DE LA DEUXIEME TRANSITION D'EPAISSEUR EVENTUELLE +# LTRAN = LONGUEUR ENTRE FIN DE L'EMBOUT 1 ET DEBUT DE TRANSITION +# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT +# LCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES +# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) +# SYME = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER" +# NBEP = NOMBRE D'ELEMENTS DANS LE COUDE +# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR +# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR +# SUREP = SUR EPAISSEUR + +# ------------------------------------------------------------------------------ +def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, + EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM, + SYME,NBEP,NLX,NLY,NIVMAG,SUREP,AZIMC,loc_datg) : + + ssep= MCL_SOUS_EPAIS[0] + print 'AZIMC', AZIMC; + POIVIR = ' ;\n' + texte=' nivmag = '+str(NIVMAG) +POIVIR + texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0'+POIVIR + texte=texte+'*\n' + texte=texte+'coory = table '+POIVIR + texte=texte+'coorz = table '+POIVIR + texte=texte+'prof = table '+POIVIR + texte=texte+'posit = table '+POIVIR + texte=texte+'axisym = table '+POIVIR + texte=texte+'axecir = table '+POIVIR + texte=texte+'axelon = table '+POIVIR + texte=texte+'sousep = table '+POIVIR + texte=texte+'coorzc = table '+POIVIR + texte=texte+'axelonc = table '+POIVIR + texte=texte+'*\n' + texte=texte+'* DEBUT PARAMETRES UTILISATEUR\n' + texte=texte+'*\n' + texte=texte+'* parametres generaux\n' + texte=texte+'*\n' + texte=texte+' pirad = '+str(pi) +POIVIR + texte=texte+' rm = '+str(RM) +POIVIR + texte=texte+' rc = '+str(RC) +POIVIR + texte=texte+' alpha = '+str(ALPHA) +POIVIR + texte=texte+' lt1 = '+str(LTCHAR) +POIVIR + texte=texte+' lt2 = '+str(LTCLIM) +POIVIR + texte=texte+' nbtranep = '+str(NBTRAN) +POIVIR + texte=texte+' ep1 = '+str(EP1) +POIVIR + texte=texte+' ep2 = '+str(EP2) +POIVIR + texte=texte+' epI = '+str(EPI) +POIVIR + texte=texte+' teta1 = '+str(TETA1) +POIVIR + texte=texte+' teta2 = '+str(TETA2) +POIVIR + texte=texte+' ltran = '+repr(LTRAN) +POIVIR + texte=texte+' surep = '+str(SUREP) +POIVIR + if GEOM == 'COUDE': + texte=texte+" zcoude = 'oui' "+POIVIR + else: + texte=texte+" zcoude = 'non' "+POIVIR + if SYME == 'ENTIER': + texte=texte+" zsyme = 'entier' "+POIVIR + elif SYME == 'QUART': + texte=texte+" zsyme = 'quart' "+POIVIR + else: + texte=texte+" zsyme = 'demi' "+POIVIR + if TYPELE == 'CU20': + texte=texte+" zquad = 'oui' "+POIVIR + else: + texte=texte+" zquad = 'non' "+POIVIR + SCP=pi*RM + texte=texte+' nxep = '+str(NBEP) +POIVIR + texte=texte+'*\n' + texte=texte+'* Caracteristiques de la sous-epaisseur\n' + texte=texte+'*\n' + texte=texte+' azimc = '+str(AZIMC) +POIVIR + texte=texte+' tysep = '+str(ssep.ICIRP) +POIVIR + texte=texte+' tzsep = '+str(ssep.ILONP) +POIVIR + texte=texte+' prof . 1 = '+str(ssep['PROFONDEUR']) +POIVIR + texte=texte+' ycsep = '+str(SCP-pi*RM) +POIVIR + texte=texte+' theta = '+str(ssep.IPHIC) +POIVIR + texte=texte+' zcsep = '+repr(ssep.ISLP) +POIVIR + + texte=texte+" posit . 1 = '"+str(ssep['SOUS_EPAIS'].lower())+"'"+POIVIR + texte=texte+' nby = '+str(int(NLX[0])) +POIVIR + texte=texte+' nbz = '+str(int(NLY[0])) +POIVIR + texte=texte+' nbxse = '+str(ssep['NB_ELEM_RADI']) +POIVIR + texte=texte+' axelonc . 1 = '+str(ssep['AXE_LONGI'])+POIVIR + if ssep['POSI_CURV_LONGI']!=None: + texte=texte+' coorzc . 1 = '+repr(ssep['POSI_CURV_LONGI'])+POIVIR + else: + DZC=ssep.BETA*pi*(RC+(RM+EP1/2.)*cos(pi/2.))/180. + texte=texte+' coorzc . 1 = '+repr(DZC)+POIVIR + if ssep['TYPE']=='AXIS': + texte=texte+" zaxis = 'oui' "+POIVIR + else: + texte=texte+" zaxis = 'non' "+POIVIR + if ssep['EMPREINTE'] == 'OUI': + texte=texte+" sousep . 1 = 'oui'"+POIVIR + else: + texte=texte+" sousep . 1 = 'non'"+POIVIR + texte=texte+'*\n' + texte=texte+'* FIN PARAMETRES UTILISATEUR \n' + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mono_v1.datg'), 'r').read() + fdgib=open(nomFichierDATG,'w') + fdgib.write(texte) + fdgib.close() +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_subpart_file_pgib_POST +# +# APPELEE DANS : write_file_pgib_ASCSQ2 , write_file_pgib_ASCSD2 +# DEFINIE UNE CHAINE DE CARACTERES UTILISEE LORS DE L'ECRITURE DU +# FICHIER GIBI DE POST-TRAITEMENTS +# +#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- +# +# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR +# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR +# +#-----------------DONNEE RENVOYEE PAR ASTER-------------------- +# +# texte = chaine de caracteres contenant des instructions gibi +# de post-traitements +# +# ------------------------------------------------------------------------------ +def write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY): + CAR3 = ('fdro','exdr','extr','exga','fgau','inga','intr','indr') + + POIVIR = ' ;\n' + texte='* DEBUT POINTS DE POST-TRAITEMENT\n' + texte=texte+'*\n' + issep=0 + for ssep in MCL_SOUS_EPAIS: + issep=issep+1 + texte=texte+'*\n' + texte=texte+'* sous-epaisseur No '+str( issep)+'\n' + texte=texte+'*\n' + if ssep['TYPE'] == 'ELLI': + texte=texte+'*\n' + texte=texte+'* plans circonf longi et colonne centrale \n' + texte=texte+'*\n' + texte=texte+'pcirc'+str( issep)+' = circo .'+str(issep).rjust(4)+POIVIR + texte=texte+'plong'+str( issep)+' = longi .'+str(issep).rjust(4)+POIVIR + texte=texte+'pcent'+str( issep)+' = centr .'+str(issep).rjust(4)+POIVIR + texte=texte+'*\n' + texte=texte+'* ligaments tous les 45 degres a epaisseur minimale \n' + texte=texte+'*\n' + texte=texte+'isep = '+str( issep)+POIVIR + for k in range(8): + texte=texte+'ilig = '+str(k+1)+POIVIR + texte=texte+'rlig = ilig/10. + isep'+POIVIR + texte=texte+str(CAR3[k])+str( issep)+' = lig45 . rlig'+POIVIR + if ssep['TYPE'] == 'ELLI': + texte=texte+'*\n' + texte=texte+"* ligaments circonferentiels a l'epaisseur minimale\n" + texte=texte+'*\n' + texte=texte+'isep = '+str(issep)+POIVIR + for k in range(2*NLX[issep-1]+1): + texte=texte+'ilig = '+str(k+1)+POIVIR + texte=texte+'rlig = ilig/100. + isep'+POIVIR + texte=texte+'cir'+str(issep)+'_'+str(k+1)+' = ligcir . rlig'+POIVIR + texte=texte+'*\n' + texte=texte+"* ligaments longitudinaux a l'epaisseur minimale\n" + texte=texte+'* \n' + for k in range(2*NLY[issep-1]+1): + texte=texte+'ilig = '+str(k+1)+POIVIR + texte=texte+'rlig = ilig/100. + isep'+POIVIR + texte=texte+'lon'+str(issep)+'_'+str(k+1)+' = liglon . rlig'+POIVIR + texte=texte+'* FIN POINTS DE POST-TRAITEMENT\n' + return texte + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_pgib_ASCSQ2 +# +# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE +# "PLAQUE SOUS-EPAISSEURS" +# IL S'AGIT DE LA DEUXIEME PARTIE ( APRES LES DONNEES UTILISATEUR ) +# +# +#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- +# +# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K +# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K + +# ------------------------------------------------------------------------------ +def write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY): + POIVIR = ' ;\n' + texte=write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY) + texte=texte+'*\n' + texte=texte+'p1 = 0. 0. (-1.*lt1)'+POIVIR + texte=texte+'p2 = 0. 0. (coor 3 bou3)'+POIVIR + texte=texte+'ma = coude et p1 et p2'+POIVIR + texte=texte+"opti sauv form 'fort.8'"+POIVIR + texte=texte+'sort ma'+POIVIR + texte=texte+'sauv form ma'+POIVIR + texte=texte+'fin'+POIVIR + fpgib=open('fort.71','w') + fpgib.write(texte) + fpgib.close() + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_pgib_ASCSP1 +# +# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE +# "PLAQUE SOUS-EPAISSEURS" +# IL S'AGIT DE LA PREMIERE PARTIE ( AVANT LES DONNEES UTILISATEUR ) +# +# +# ------------------------------------------------------------------------------ +def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg): + + POIVIR = ' ;\n' + texte=' nivmag = '+str(NIVMAG)+POIVIR + texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0 '+POIVIR + texte=texte+'*\n' + texte=texte+'bg = table '+POIVIR + texte=texte+'bd = table '+POIVIR + texte=texte+'bi = table '+POIVIR + texte=texte+'bs = table '+POIVIR + texte=texte+'indbg = table '+POIVIR + texte=texte+'indbd = table '+POIVIR + texte=texte+'indbi = table '+POIVIR + texte=texte+'indbs = table '+POIVIR + texte=texte+'axecir = table '+POIVIR + texte=texte+'axelon = table '+POIVIR + texte=texte+'axelonc = table '+POIVIR + texte=texte+'coorzc = table '+POIVIR + texte=texte+'prof = table '+POIVIR + texte=texte+'posit = table '+POIVIR + texte=texte+'coory = table '+POIVIR + texte=texte+'coorz = table '+POIVIR + texte=texte+'deny = table '+POIVIR + texte=texte+'nbely = table '+POIVIR + texte=texte+'denz = table '+POIVIR + texte=texte+'nbelz = table '+POIVIR + texte=texte+'axisym = table '+POIVIR + texte=texte+'sousep = table '+POIVIR + texte=texte+'* \n' + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mult_v1.datg'), 'r').read() + fdgib=open(nomFichierDATG,'w') + fdgib.write(texte) + fdgib.close() + +################################################################################ +################################################################################ +################################################################################ +# MACR_ASCOUF_MAIL write_file_pgib_ASCSDO +# +# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE +# "PLAQUE SOUS-EPAISSEURS" +# +#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- +# +# RM = RAYON MOYEN DU COUDE +# RC = RAYON DE CINTRAGE DU COUDE +# ALPHA = ANGLE DU COUDE +# EP = EPAISSEUR DU COUDE +# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT +# LCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES +# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) +# SYME = QUART DE STRUCTURE SI 'OUI' +# INDBG = INDICATEUR BORD GAUCHE DE LA ZONE CIRCONF J +# INDBD = INDICATEUR BORD DROIT DE LA ZONE CIRCONF J +# BG = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J +# BD = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J +# BI = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J +# BS = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J +# INDBI = INDICATEUR BORD INFERIEUR DE LA ZONE LONGI J +# INDBS = INDICATEUR BORD SUPERIEUR DE LA ZONE LONGI J +# INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J +# INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J +# DNX = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J +# DNY = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J +# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES +# NZONEY = NOMBRE DE ZONES LONGITUDINALES +# +# ------------------------------------------------------------------------------ +def write_file_pgib_ASCSDO(RM,RC,ALPHA,EP,LTCLIM,LTCHAR,NBEP,SUREP, + NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS, + DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME): + + POIVIR = ' ;\n' + NY=20 + DELTAY=2.*pi*RM/NY + + def nint(x): + if 0(ALPHA*RC*pi/180.0) : + message= ' valeur hors domaine de validite \n' + message=message+' sous-epaisseur numero : %d \n'%isep + message=message+' abscisse curv. longit. : %.2f \n'%ssep['POSI_CURV_LONGI'] + message=message+' valeur maximale autorisee : %.2f \n'%(ALPHA*RC*pi/180.0) + UTMESS('F', "MACR_ASCOUF_MAIL", message) + LDEFAU = ssep['POSI_CURV_LONGI'] + ssep['AXE_LONGI']/2.0 + BETA = 0.0 + else: + BETA=ssep['POSI_ANGUL'] + if (BETA<0.) or (BETA>ALPHA) : + message= ' valeur hors domaine de validite \n' + message=message+' sous-epaisseur numero : %d \n'%isep + message=message+' position angulaire centre sous-ep : %.2f \n'%BETA + message=message+' valeur limite autorisee : %.2f \n'%ALPHA + UTMESS('F', "MACR_ASCOUF_MAIL", message) + LDEFAU = (BETA*RC*pi/180.0) + ssep['AXE_LONGI']/2.0 +# + if ssep['POSI_CURV_CIRC']!=None: + if ssep['POSI_CURV_CIRC']>(2*pi*RM) : + message= ' valeur hors domaine de validite \n' + message=message+' sous-epaisseur numero : %d \n'%isep + message=message+' abscisse curv. circonf. : %.2f \n'%ssep['POSI_CURV_CIRC'] + message=message+' valeur limite autorisee : %.2f \n'%(2*pi*RM) + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if ssep['POSI_CURV_CIRC']!=(pi*RM) and ssep['TYPE']=='AXIS': + message= ' le centre d une sous-epaisseur \n' + message=message+' axisymetrique est impose en intrados (pi*RM) \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) + else: + ssep.IPHIC=ssep['AZIMUT'] + if ssep['AZIMUT']!=180. and ssep['TYPE']=='AXIS': + message= ' le centre d une sous-epaisseur \n' + message=message+' axisymetrique est impose en intrados \n' + message=message+' l azimut est fixe a 180 degres \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) +# l_ITYPE.append(ssep['TYPE' ]) +# l_ICIRC.append(ssep['AXE_CIRC' ]) +# l_ILONC.append(ssep['AXE_LONGI' ]) +# l_IPROC.append(ssep['PROFONDEUR' ]) +# l_ISLC.append( ssep['POSI_CURV_LONGI']) +# l_IBETC.append(BETA) + ssep.BETA=BETA +# l_ISCC.append( ssep['POSI_CURV_CIRC' ]) +# l_IPHIC.append(ssep['AZIMUT' ]) +# l_IPOS.append( ssep['SOUS_EPAIS' ]) +# l_INBEL.append(ssep['NB_ELEM_LONGI' ]) +# l_INBEC.append(ssep['NB_ELEM_CIRC' ]) +# l_IEVID.append(ssep['EMPREINTE' ]) + + if SOUS_EPAIS_COUDE!=None and COUDE['NB_ELEM_EPAIS']!=3 : + message= ' le nombre d elements dans l \n' + message=message+' epaisseur du coude n est pas parametrable pour \n' + message=message+' la version 2 de la procedure de plaque avec sous \n' + message=message+' -epaisseur : mot-cle NB_ELEM_EPAIS ignore \n' + UTMESS('A', "MACR_ASCOUF_MAIL", message) +# +################################################################################ +# --- verifications de coherences --- +################################################################################ +# +# donnees globales + if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' : + if SUREP<0. or SUREP>(RM-EP1/2.0): + message= ' valeur hors domaine de validite \n' + message=message+' surepaisseur : \n',SUREP + message=message+' valeur limite autorisee (RM-EP1/2) : %.2f \n'%(RM-EP1/2.0) + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if RC<=(RM+EP1/2.0): + message= ' valeur hors domaine de validite \n' + message=message+' le rayon de cintrage : %.2f \n',RC + message=message+' doit etre superieur a (RM+EP1/2) : %.2f \n'%(RM+EP1/2.0) + UTMESS('F', "MACR_ASCOUF_MAIL", message) +# +# coude fissure +# + if FISS_COUDE!=None: + if (RM/EP1)<5. or (RM/EP1)>50.: + message= ' valeur hors domaine de validite (5,50) \n' + message=message+' rapport RM/EP1 : %.2f \n'%(RM/EP1) + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if FISS_COUDE['ABSC_CURV']!=None: + if SF<0. or SF>(ALPHA*RC*pi/180.0) : + message= ' valeur hors domaine de validite \n' + message=message+' abscisse curviligne centre fissure : %.2f \n'%SF + message=message+' valeur limite autorisee : %.2f \n'%(ALPHA*RC*pi/180.0) + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (NT-2*(NT/2))!=0: + message= ' valeur hors domaine de validite \n' + message=message+' nombre de tranches : %d \n'%NT + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if FISS_COUDE['ABSC_CURV'] and ((BETA<0.) or (BETA>ALPHA)): + message= ' valeur hors domaine de validite \n' + message=message+' position angulaire centre fissure : %.2f \n'%BETA + message=message+' posi_angul doit etre >= 0 et <= %.2f \n'%ALPHA + UTMESS('F', "MACR_ASCOUF_MAIL", message) +# +# transition d epaisseur +# + if NBTRAN!=0: + LCOUDE = ALPHA * RC * pi / 180.0 + DEXT = 2.0*RM + EP1 + if (LTRANLCOUDE) : + message= ' valeur hors domaine de validite \n' + message=message+' debut transition d epaisseur : %.2f \n'%LTRAN + message=message+' valeur minimale autorisee : %.2f \n'%LDEFAU + message=message+' valeur maximale autorisee : %.2f \n'%LCOUDE + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (TETA1<0.) or (TETA1>30.) : + message= ' valeur hors domaine de validite \n' + message=message+' angle de transition TETA1 : %.2f \n'%TETA1 + message=message+' valeur minimale autorisee : %.2f \n'%0. + message=message+' valeur maximale autorisee : %.2f \n'%30. + UTMESS('F', "MACR_ASCOUF_MAIL", message) +# +# transition d epaisseur a une pente +# + if NBTRAN==1: + if (EP1<12.) or (EP1>80.) : + message= ' valeur hors domaine de validite \n' + message=message+' epaisseur avant la transition : %.2f \n'%EP1 + message=message+' valeur minimale autorisee : %.2f \n'%12. + message=message+' valeur maximale autorisee : %.2f \n'%80. + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (EP2<20.) or (EP2>110.) : + message= ' valeur hors domaine de validite \n' + message=message+' epaisseur apres la transition : %.2f \n'%EP2 + message=message+' valeur minimale autorisee : %.2f \n'%20. + message=message+' valeur maximale autorisee : %.2f \n'%110. + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (EP1>EP2) : + message= ' l epaisseur avant la transition \n' + message=message+' doit etre inferieure \n' + message=message+' a celle apres la transition \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) + LTRANF = LTRAN + ((EP2-EP1)/(tan(TETA1))) + if (LTRANF>LCOUDE) : + message= ' valeur hors domaine de validite \n' + message=message+' fin transition d epaisseur : %.2f \n'%LTRANF + message=message+' valeur limite autorisee : %.2f \n'%LCOUDE + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if DEXT<112. or DEXT>880. : + message= ' valeur hors domaine de validite\n' + message=message+' diam ext du tube avant transition: %.2f \n'%DEXT + message=message+' valeur minimum autorisee : %.2f \n'%112. + message=message+' valeur maximum autorisee : %.2f \n'%880. + UTMESS('F', "MACR_ASCOUF_MAIL", message) +# +# transition d epaisseur a une pente +# + else: + if (TETA2<0.) or (TETA2>45.) : + message= ' valeur hors domaine de validite\n' + message=message+' angle de transition TETA2: %.2f \n'%TETA2 + message=message+' valeur minimum autorisee : %.2f \n'%0. + message=message+' valeur maximum autorisee : %.2f \n'%45. + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (EP1<7.) or (EP1>35.) : + message= ' valeur hors domaine de validite\n' + message=message+' epaisseur avant 1ere transition: %.2f \n'%EP1 + message=message+' valeur minimum autorisee : %.2f \n'%7. + message=message+' valeur maximum autorisee : %.2f \n'%35. + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (EP2<15.) or (EP2>40.) : + message= ' valeur hors domaine de validite\n' + message=message+' epaisseur avant 2eme transition: %.2f \n'%EP2 + message=message+' valeur minimum autorisee : %.2f \n'%15. + message=message+' valeur maximum autorisee : %.2f \n'%40. + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (EPI<15.) or (EPI>40.) : + message= ' valeur hors domaine de validite\n' + message=message+' epaisseur intermediaire: %.2f \n'%EPI + message=message+' valeur minimum autorisee : %.2f \n'%15. + message=message+' valeur maximum autorisee : %.2f \n'%40. + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (EP1>EPI) : + message= ' valeur hors domaine de validite\n' + message=message+' l epaisseur avant la transition \n' + message=message+' doit etre inferieure a l epaisseur intermediaire \n' + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (EP2LCOUDE) : + message= ' valeur hors domaine de validite\n' + message=message+' fin transition d epaisseur: %.2f \n'%LTRANF + message=message+' valeur limite autorisee : %.2f \n'%LCOUDE + UTMESS('F', "MACR_ASCOUF_MAIL", message) + if (DEXT<77.) or (DEXT>355.) : + message= ' valeur hors domaine de validite\n' + message=message+' diam ext du tube avant transition: %.2f \n'%LTRANF + message=message+' valeur minimum autorisee : %.2f \n'%77. + message=message+' valeur maximum autorisee : %.2f \n'%355. + UTMESS('F', "MACR_ASCOUF_MAIL", message) +# +################################################################################ +# --- calcul taille initiale des defauts sur la plaque --- +################################################################################ +# +# + if FISS_COUDE!=None: + DSF=(FISS_COUDE['ABSC_CURV']!=None) + AXEAP,AXECP,SFP = ASCFIS(ALPHA, RM, RC, EP1, SUREP, GEOM, FPROF, + DGAXEC, AZIM, POSIT, SF, DSF, BETA, ORIEN) + elif MCL_SOUS_EPAIS!=None : + ier,AZIMC= ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP1,GEOM,SYME) + for ssep in MCL_SOUS_EPAIS: + ssep.IDENL = ssep.ILONP/ssep['NB_ELEM_LONGI']*180./(pi*RC) + ssep.IDENC = ssep.ICIRP/ssep['NB_ELEM_CIRC']*180./(pi*RM) + if SYME=='QUART' : +# quart de structure + ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\ + = ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM) + else : +# demi-structure ou entiere + ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\ + = ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM) +# +# + loc_gibi=aster.repout() + logiel = EXEC_MAILLAGE['LOGICIEL' ] + UNITD = EXEC_MAILLAGE['UNITE_DATG'] + UNITP = EXEC_MAILLAGE['UNITE_MGIB'] + if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' + elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' + + else : + UTMESS('F', "MACR_ASCOUF_MAIL", "seuls gibi98 et gibi2000 sont appelables") +# +# --- ecriture sur le fichier .datg de la procedure --- +# +# Nom du fichier de commandes pour GIBI + nomFichierDATG = 'fort.'+str(UNITD) +# Nom du fichier de maillage GIBI + nomFichierGIBI = 'fort.'+str(UNITP) + loc_datg = aster.repdex() +# + if FISS_COUDE!=None: +# procedure coude fissure (MOT-CLE FISS_COUDE) + write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, + TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC,SFP, + ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME,loc_datg) + elif MCL_SOUS_EPAIS!=None : + if SOUS_EPAIS_MULTI==None : +# procedure coude sous-ep.: (MOT-CLE SOUS_EPAIS_COUDE) + write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, + EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM, + SYME,NBEP,NLX,NLY,NIVMAG,SUREP,AZIMC,loc_datg) + write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY) + else: +# procedure coude sous-ep.:(MOT-CLE SOUS_EPAIS_MULTI) + write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg) + write_file_pgib_ASCSDO(RM,RC,ALPHA,EP1,LTCLIM,LTCHAR,NBEP,SUREP, + NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS, + DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME) + write_file_pgib_ASCSP2(MCL_SOUS_EPAIS,NLX,NLY) + else: +# procedure coude regle + write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP1,SUREP, + LTCLIM,LTCHAR,NBEP,loc_datg) + + +# GIBI + DEFI_FICHIER(ACTION='LIBERER',UNITE=19) + DEFI_FICHIER(ACTION='LIBERER',UNITE=20) + EXEC_LOGICIEL( LOGICIEL = logiel , + ARGUMENT = (nomFichierDATG, + nomFichierGIBI), ) +# PRE_GIBI + PRE_GIBI() + +# LIRE_MAILLAGE + __nomres=LIRE_MAILLAGE(INFO=INFO) + +# DEFI_GROUP 1 + + motscles={} + l_CREA_GROUP_NO=[] + l_CREA_GROUP_NO.append('BORD1') + l_CREA_GROUP_NO.append('CLGV') + l_CREA_GROUP_NO.append('BORD2') + l_CREA_GROUP_NO.append('PEAUINT') + l_CREA_GROUP_NO.append('PEAUEXT') + +# cas des fissures axisymetriques + if FISS_COUDE!=None: + if FISS_COUDE['AXIS']=='OUI': + motscles['CREA_GROUP_MA']=[] + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', + NOM = 'MAIL_ORI', + POSITION = 'INIT' , ),) + +# conversion des groupes de mailles en groupes du bloc fissure + if FISS_COUDE!=None: + if SYME == 'ENTIER': + l_CREA_GROUP_NO.append('NOLIG1') + l_CREA_GROUP_NO.append('FACE1') + l_CREA_GROUP_NO.append('NOLIG2') + l_CREA_GROUP_NO.append('FACE2') + l_CREA_GROUP_NO.append('FONDFISS') + + motscles['CREA_GROUP_NO']=[] + motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=tuple(l_CREA_GROUP_NO))) + +# conversion des groupes de mailles en groupes de noeuds pour les +# ligaments des sous-ep. + if MCL_SOUS_EPAIS!=None: + issep=0 + for ssep in MCL_SOUS_EPAIS: + issep=issep+1 + if ssep['TYPE']=='ELLI': + for k in range(2*NLX[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='CIR'+chtmp + ch2='ICI'+chtmp + motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, + GROUP_MA = ch1,),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'IPCEN'+str(issep), + GROUP_MA = 'PCENT'+str(issep),),) + for k in range(2*NLY[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='LON'+chtmp + ch2='ILO'+chtmp + motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, + GROUP_MA = ch1,),) + for k in range(2*NLX[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='ICI'+chtmp + ch2='OCI'+chtmp + ch3='ECI'+chtmp + motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, + INTERSEC = ('PEAUEXT',ch1),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, + INTERSEC = ('PEAUINT',ch1),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'OPCEN'+str(issep), + INTERSEC = ('PEAUEXT','IPCEN'+str(issep),),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'EPCEN'+str(issep), + INTERSEC = ('PEAUINT','IPCEN'+str(issep),),),) + for k in range(2*NLY[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='ILO'+chtmp + ch2='OLO'+chtmp + ch3='ELO'+chtmp + motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, + INTERSEC = ('PEAUEXT',ch1),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, + INTERSEC = ('PEAUINT',ch1),),) + for k in range(2*NLX[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='CIR'+chtmp + ch2='ICI'+chtmp + ch3='OCI'+chtmp + ch4='ECI'+chtmp + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = ch1, + GROUP_NO = ch2, + GROUP_NO_ORIG = ch3, + GROUP_NO_EXTR = ch4, + PRECISION = PRECIS, + CRITERE = CRITER,),) + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = 'PCENT'+str(issep), + GROUP_NO = 'IPCEN'+str(issep), + GROUP_NO_ORIG = 'OPCEN'+str(issep), + GROUP_NO_EXTR = 'EPCEN'+str(issep), + PRECISION = PRECIS, + CRITERE = CRITER,),) + for k in range(2*NLY[issep-1]+1): + chtmp=str(issep)+'_'+str(k+1) + ch1='LON'+chtmp + ch2='ILO'+chtmp + ch3='OLO'+chtmp + ch4='ELO'+chtmp + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = ch1, + GROUP_NO = ch2, + GROUP_NO_ORIG = ch3, + GROUP_NO_EXTR = ch4, + PRECISION = PRECIS, + CRITERE = CRITER,),) +# 1/ noms intermediaires des groupes de noeuds representant les ligaments +# des sections: TU,MI,GV et sous-ep. + for k in range(8): + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[k]+str(issep), + GROUP_MA = CAR6[k]+str(issep),),) + + for k in range(3): + if SYME == 'ENTIER' or k!=2: + for j in range(8): + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[j]+SECT[k], + GROUP_MA = CAR6[j]+SECT[k],),) + +# 2/ determination et nommage des noeuds origine et extremite des groupes de noeuds +# representant les ligaments de la ou des sections: sous-ep. + issep=0 + for ssep in MCL_SOUS_EPAIS: + issep=issep+1 + for k in range(8): + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[k]+str(issep), + INTERSEC = ('PEAUEXT',CAR3[k]+str(issep),),),) + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[k]+str(issep), + INTERSEC = ('PEAUINT',CAR3[k]+str(issep),),),) +# 3/ nommage final des groupes de noeuds representant les ligaments +# de la ou des sections: sous-ep. + for k in range(8): + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = CAR6[k]+str(issep), + GROUP_NO = CAR3[k]+str(issep), + GROUP_NO_ORIG = CAR4[k]+str(issep), + GROUP_NO_EXTR = CAR5[k]+str(issep), + PRECISION = PRECIS, + CRITERE = CRITER,),) + +# 4/ determination et nommage des noeuds origine et extremite des groupes de noeuds +# representant les ligaments des sections: TU,MI,GV + for k in range(3): + if SYME == 'ENTIER' or k!=2: + for j in range(8): + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[j]+SECT[k], + INTERSEC = ('PEAUEXT',CAR3[j]+SECT[k],),),) + motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[j]+SECT[k], + INTERSEC = ('PEAUINT',CAR3[j]+SECT[k],),),) +# 5/ nommage final des groupes de noeuds representant les ligaments des sections: TU,MI,GV + for j in range(8): + motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', + NOM = CAR6[j]+SECT[k], + GROUP_NO = CAR3[j]+SECT[k], + GROUP_NO_ORIG = CAR4[j]+SECT[k], + GROUP_NO_EXTR = CAR5[j]+SECT[k], + PRECISION = PRECIS, + CRITERE = CRITER,),) + + + __nomres=DEFI_GROUP(reuse =__nomres, + MAILLAGE=__nomres, + **motscles ) +# +# DEFI_GROUP 2 + if FISS_COUDE!=None: +# creation des groupes petit axe et grand axe fissure par +# intersection de groupes existants + motscles={} + motscles['CREA_GROUP_NO']=[] + l_peau=[] + l_intersec=[] + if POSIT == 'DEB_INT': + l_peau.append('PEAUINT') + else: + l_peau.append('PEAUEXT') + + if SYME == 'ENTIER' : + l_intersec.append('FACE1') + motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_1', + INTERSEC = ('NOLIG1','FACE1'),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_1', + INTERSEC = tuple(l_peau+l_intersec),),) + l_intersec=[] + l_intersec.append('FACE2') + motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_2', + INTERSEC = ('NOLIG2','FACE2'),),) + motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_2', + INTERSEC = tuple(l_peau+l_intersec),),) + + __nomres=DEFI_GROUP(reuse =__nomres, + MAILLAGE=__nomres, + **motscles ) + +# MODI_MAILLAGE 1 + motscles={} + if GEOM == 'COUDE': + motscles['TUBE_COUDE']=[] + motscles['TUBE_COUDE'].append(_F(ANGLE=ALPHA, + R_CINTR=RC, + L_TUBE_P1=LTCHAR),) + motscles['PLAQ_TUBE']=[] + D_PLAQ_TUBE={} + D_PLAQ_TUBE['DEXT']=DEXT + D_PLAQ_TUBE['EPAIS']=EP1 + D_PLAQ_TUBE['L_TUBE_P1']=LTCHAR + if SYME == 'QUART' : D_PLAQ_TUBE['COUTURE']='NON' + if FISS_COUDE!=None: + D_PLAQ_TUBE['AZIMUT']=AZIM + elif SOUS_EPAIS_COUDE!=None : + D_PLAQ_TUBE['AZIMUT']=MCL_SOUS_EPAIS[0].IPHIC + else:pass + motscles['PLAQ_TUBE'].append(_F(**D_PLAQ_TUBE),) + __nomres=MODI_MAILLAGE( reuse =__nomres, + MAILLAGE=__nomres, + **motscles ) + +# MODI_MAILLAGE 2 + motscles={} + motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE'),) + if FISS_COUDE!=None: + if FISS_COUDE['FISSURE'] == 'DEB_INIT': + motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE','FACE1','FACE2'),) + __nomres=MODI_MAILLAGE(reuse =__nomres, + MAILLAGE=__nomres, + **motscles) + +# CREA_MAILLAGE + self.DeclareOut('nomre2',self.sd) + motscles={} + motscles['CREA_POI1']=[] + motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P1', + GROUP_NO='P1'),) + if TYPBOL == None : + motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P2', + GROUP_NO='P2'),) + nomre2=CREA_MAILLAGE( MAILLAGE=__nomres, + **motscles) + + +# IMPRESSSION + if IMPRESSION!=None: + if IMPRESSION.__class__.__name__ !='MCList' : IMPRESSION =[IMPRESSION,] + for impr in IMPRESSION : +# + motscles={} + if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] + if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI'] =impr['NIVE_GIBI'] + if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] + impr_resu = _F( MAILLAGE = nomre2,) +# + IMPR_RESU( RESU = impr_resu, + FORMAT= impr['FORMAT'],**motscles) + + + + return ier + + diff --git a/Aster/Cata/cataSTA9/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA9/Macro/macr_aspic_calc_ops.py new file mode 100644 index 00000000..ac1b2f66 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_aspic_calc_ops.py @@ -0,0 +1,797 @@ +#@ MODIF macr_aspic_calc_ops Macro DATE 31/10/2006 AUTEUR REZETTE C.REZETTE +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM, + 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,BORNES ,**args): + """ + Ecriture de la macro MACR_ASPIC_CALC + """ + from Accas import _F + import types + from Utilitai.Utmess import UTMESS + ier=0 +#------------------------------------------------------------------ + # On recopie le mot cle affe_materiau pour le proteger + mc_AFFE_MATERIAU=AFFE_MATERIAU +#------------------------------------------------------------------ + # On importe les definitions des commandes a utiliser dans la macro + AFFE_MODELE =self.get_cmd('AFFE_MODELE' ) + AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU' ) + AFFE_CARA_ELEM =self.get_cmd('AFFE_CARA_ELEM' ) + AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F') + THER_LINEAIRE =self.get_cmd('THER_LINEAIRE' ) + AFFE_CHAR_MECA =self.get_cmd('AFFE_CHAR_MECA' ) + STAT_NON_LINE =self.get_cmd('STAT_NON_LINE' ) + CALC_ELEM =self.get_cmd('CALC_ELEM' ) + POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) + IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) + POST_RCCM =self.get_cmd('POST_RCCM' ) + DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) + CALC_THETA =self.get_cmd('CALC_THETA' ) + CALC_G =self.get_cmd('CALC_G' ) + IMPR_RESU =self.get_cmd('IMPR_RESU' ) + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + +#------------------------------------------------------------------ +# data + GRMAIL= ('EQUERRE','PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP') + NOMNOE= ('P1_CORP','P2_CORP','P_TUBU ') + IMPRT1= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', + 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , + 'SIXX' ,'SIXY' ,'SIXZ' ) + IMPRT2= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', + 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , + 'SIYY' ,'SIXY' ,'SIYZ' ) + IMPRT3= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', + 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , + 'TEMP' ) + APPRES= ('PEAUINT ','LEVRTUBU','LEVRCORP') +#------------------------------------------------------------------ +# + i=0 + for mate in mc_AFFE_MATERIAU: + if mate['RCCM']=='OUI' : + i=i+1 + MRCCM=mate['MATER'] + if i>1 : + UTMESS('E', "MACR_ASPIC_CALC", "vous affectez plus d un materiau contenant l option rccm") +# + if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) : + UTMESS('E', "MACR_ASPIC_CALC", "pour les piquages sains, TUBULURE doit etre renseigne") +# + if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') : + UTMESS('E', "MACR_ASPIC_CALC", "EQUILIBRE[NOEUD] : on attend P1_CORP ou P2_CORP") +# + if PRES_REP['EFFE_FOND']=='OUI' : + if PRES_REP['NOEUD']==None : + UTMESS('E', "MACR_ASPIC_CALC", "il faut preciser un noeud pour EFFE_FOND") + if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') : + UTMESS('E', "MACR_ASPIC_CALC", "PRES_REP[NOEUD] : on attend P1_CORP ou P2_CORP") + if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] : + UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloque") +# + if TORS_CORP!=None : + for tors in TORS_CORP : + if tors['NOEUD'] not in ('P1_CORP','P2_CORP') : + UTMESS('E', "MACR_ASPIC_CALC", "TORS_CORP[NOEUD] : on attend P1_CORP ou P2_CORP") + if tors['NOEUD']==EQUILIBRE['NOEUD'] : + UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloque") +# + if (TYPE_MAILLAGE[:4]=='SAIN') and (THETA_3D!=None) : + UTMESS('E', "MACR_ASPIC_CALC", "si TYPE_MAILLAGE SAIN : mecanique de la rupture impossible") +# + if OPTION in ('CALC_G_MAX','CALC_G_MAX_LOCAL') : + if BORNES==None : + UTMESS('E', "MACR_ASPIC_CALC", "mot-clef obligatoire avec cette option") +# + if IMPRESSION!=None : + if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : + if IMPRESSION['NOM_CHAM']==None : + UTMESS('E', "MACR_ASPIC_CALC", "impression de resultats demandée sans preciser le nom des champs cf. la documentation utilisateur : U4.PC.20.") +# +#------------------------------------------------------------------ +# +# --- commande AFFE_MODELE --- +# + if MODELE!=None : self.DeclareOut('modele',MODELE) + mcfact=[] + if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[-4:]=='_DEB') : + mcfact.append(_F(GROUP_MA=GRMAIL, PHENOMENE='MECANIQUE',MODELISATION='3D' )) + else: + mcfact.append(_F(GROUP_MA=GRMAIL[:-2],PHENOMENE='MECANIQUE',MODELISATION='3D' )) + mcfact.append( _F(GROUP_MA='P1_CORP' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + mcfact.append( _F(GROUP_MA='P2_CORP' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + mcfact.append( _F(GROUP_MA='P_TUBU' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) + modele = AFFE_MODELE( MAILLAGE = MAILLAGE , + AFFE = mcfact ) + if ECHANGE!=None : # modele thermique + __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE , + AFFE = _F(GROUP_MA =GRMAIL[:-2], + PHENOMENE ='THERMIQUE', + MODELISATION='3D' ) ) +# +# --- commande AFFE_MATERIAU --- +# + if CHAM_MATER!=None : self.DeclareOut('affmat',CHAM_MATER) + mcfact=[] + for mater in mc_AFFE_MATERIAU : + if mater['TOUT']!=None : mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + else : mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF'])) + affmat = AFFE_MATERIAU( MAILLAGE = MAILLAGE , + MODELE = modele , + AFFE = mcfact ) +# +# --- commande AFFE_CARA_ELEM --- +# + if CARA_ELEM!=None : self.DeclareOut('carael',CARA_ELEM) + carael = AFFE_CARA_ELEM( MODELE = modele , + DISCRET = ( _F( GROUP_MA='P1_CORP' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), + _F( GROUP_MA='P2_CORP' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), + _F( GROUP_MA='P_TUBU' , + CARA ='K_TR_D_N', + VALE = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), ) ) +# +# --- commande AFFE_CHAR_THER_F --- +# condition aux limites +# + if ECHANGE!=None : + __chther = AFFE_CHAR_THER_F( MODELE = __modthe , + ECHANGE=( _F(GROUP_MA='PEAUTUBU', + COEF_H =ECHANGE['COEF_H_TUBU'], + TEMP_EXT=ECHANGE['TEMP_EXT'],), + _F(GROUP_MA='PEAUCORP', + COEF_H =ECHANGE['COEF_H_CORP'], + TEMP_EXT=ECHANGE['TEMP_EXT'],),)) +# +# --- calcul thermique --- +# + if RESU_THER!=None : self.DeclareOut('resuth',RESU_THER) + mcsimp={} + if INCREMENT['NUME_INST_INIT']!=None : mcsimp['NUME_INIT']=INCREMENT['NUME_INST_INIT'] + if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_FIN' ]=INCREMENT['NUME_INST_FIN' ] + mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp) + resuth = THER_LINEAIRE( MODELE = __modthe , + CHAM_MATER = affmat , + TEMP_INIT = _F(STATIONNAIRE='OUI',), + EXCIT = _F(CHARGE=__chther,), + INCREMENT = mcfact, ) +# + if CHARGE!=None : self.DeclareOut('chmeth',CHARGE) + chmeth = AFFE_CHAR_MECA( MODELE = modele , + TEMP_CALCULEE = resuth ) +# +# --- commande AFFE_CHAR_MECA --- +# condition aux limites +# + if EQUILIBRE['NOEUD']=='P1_CORP' : + NENCAS = EQUILIBRE['NOEUD'] + AEFOCO = 'EXCORP2' + ATORCO = 'P2_CORP' + LINTC = 'L_INT_C2' + elif EQUILIBRE['NOEUD']=='P2_CORP' : + NENCAS = EQUILIBRE['NOEUD'] + AEFOCO = 'EXCORP1' + ATORCO = 'P1_CORP' + LINTC = 'L_INT_C1' + _conlim = AFFE_CHAR_MECA( MODELE = modele , + LIAISON_ELEM = ( _F( OPTION ='3D_POU' , + GROUP_MA_1='EXCORP1', + GROUP_NO_2='P1_CORP'), + _F( OPTION ='3D_POU' , + GROUP_MA_1='EXCORP2' , + GROUP_NO_2='P2_CORP'), + _F( OPTION ='3D_POU' , + GROUP_MA_1='EXTUBU', + GROUP_NO_2='P_TUBU'), ), + DDL_IMPO = _F( GROUP_NO = NENCAS , + DX = 0.0 , + DY = 0.0 , + DZ = 0.0 , + DRX = 0.0 , + DRY = 0.0 , + DRZ = 0.0 , ) ) +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : pres_rep, effet de fond +# + motscles={} + if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[-4:]=='_DEB') : + motscles['PRES_REP' ]= _F(GROUP_MA=APPRES, PRES=PRES_REP['PRES']) + else : + motscles['PRES_REP' ]= _F(GROUP_MA=APPRES[0],PRES=PRES_REP['PRES']) + if PRES_REP['EFFE_FOND' ]!=None : + motscles['EFFE_FOND' ]=(_F(GROUP_MA ='EXTUBU ', + GROUP_MA_INT='L_INT_TU', + PRES =PRES_REP['PRES']), + _F(GROUP_MA =AEFOCO, + GROUP_MA_INT=LINTC, + PRES =PRES_REP['PRES'])) + _chpres = AFFE_CHAR_MECA( MODELE = modele ,**motscles) +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : torseur sur le corps +# + if TORS_CORP!=None: + _chtrc = [None]*6 + i=0 + for tors in TORS_CORP : + mcsimp={} + if tors['FX']!=None : mcsimp['FX']=tors['FX'] + if tors['FY']!=None : mcsimp['FY']=tors['FY'] + if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] + if tors['MX']!=None : mcsimp['MX']=tors['MX'] + if tors['MY']!=None : mcsimp['MY']=tors['MY'] + if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] + mcfact=_F(GROUP_NO=ATORCO,**mcsimp) + _chtrc[i] = AFFE_CHAR_MECA( MODELE = modele , + FORCE_NODALE = mcfact , ) + i=i+1 +# +# --- commande AFFE_CHAR_MECA --- +# chargement mecanique : torseur sur la tubulure +# + if TORS_TUBU!=None: + _chtrt = [None]*6 + i=0 + for tors in TORS_TUBU : + mcsimp={} + if tors['FX']!=None : mcsimp['FX']=tors['FX'] + if tors['FY']!=None : mcsimp['FY']=tors['FY'] + if tors['FZ']!=None : mcsimp['FZ']=tors['FZ'] + if tors['MX']!=None : mcsimp['MX']=tors['MX'] + if tors['MY']!=None : mcsimp['MY']=tors['MY'] + if tors['MZ']!=None : mcsimp['MZ']=tors['MZ'] + mcfact=_F(GROUP_NO='P_TUBU ',**mcsimp) + _chtrt[i] = AFFE_CHAR_MECA( MODELE = modele , + FORCE_NODALE = mcfact , ) + i=i+1 +# +# --- commande STAT_NON_LINE --- +# + motscles={} +# + mcfex=[] # mot clé facteur EXCIT + mcfex.append(_F(CHARGE=_conlim,)) + if ECHANGE!=None : + mcfex.append(_F(CHARGE=chmeth,)) + if PRES_REP['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=_chpres,FONC_MULT=PRES_REP['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=_chpres,)) + if TORS_CORP!=None: + i=0 + for tors in TORS_CORP : + if tors['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=_chtrc[i],FONC_MULT=tors['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=_chtrc[i],)) + i=i+1 + if TORS_TUBU!=None: + i=0 + for tors in TORS_TUBU : + if tors['FONC_MULT']!=None : + mcfex.append(_F(CHARGE=_chtrt[i],FONC_MULT=tors['FONC_MULT'])) + else : + mcfex.append(_F(CHARGE=_chtrt[i],)) + i=i+1 + motscles['EXCIT'] =mcfex +# + mcfci=[] # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets + if COMP_INCR!=None : + mcfci.append(_F(TOUT ='OUI' ,RELATION=COMP_INCR['RELATION'])) + mcfci.append( _F(GROUP_MA=NOMNOE,RELATION='ELAS')) + motscles['COMP_INCR'] =mcfci +# + if COMP_ELAS!=None : + motscles['COMP_ELAS'] =_F(GROUP_MA=GRMAIL[:-2] ,RELATION=COMP_ELAS['RELATION']) +# + dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + for i in dSolveur.keys(): + if dSolveur[i]==None : del dSolveur[i] +# + dConverg=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) + for i in dConverg.keys(): + if dConverg[i]==None : del dConverg[i] +# + dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) + for i in dNewton.keys(): + if dNewton[i]==None : del dNewton[i] +# + dRechlin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) + for i in dRechlin.keys(): + if dRechlin[i]==None : del dRechlin[i] +# + dIncrem=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) + for i in dIncrem.keys(): + if dIncrem[i]==None : del dIncrem[i] +# + if TITRE!=None : + motscles['TITRE' ] =TITRE + motscles ['SOLVEUR' ] =dSolveur + motscles ['CONVERGENCE' ] =dConverg + motscles ['NEWTON' ] =dNewton + motscles ['RECH_LINEAIRE'] =dRechlin + motscles ['INCREMENT' ] =dIncrem + self.DeclareOut('nomres',self.sd) + nomres = STAT_NON_LINE( MODELE = modele , + CHAM_MATER = affmat , + CARA_ELEM = carael , + INFO = INFO , **motscles) +# + nomres = CALC_ELEM( reuse = nomres, + RESULTAT = nomres , + TOUT_ORDRE = 'OUI' , + OPTION = ('SIEF_ELNO_ELGA','VARI_ELNO_ELGA','EQUI_ELNO_SIGM') , + INFO = INFO ,) +# +#----------------------------------------------------------------------- + if TYPE_MAILLAGE[:4]=='SAIN' : +#----------------------------------------------------------------------- +# +# --- post traitement : POST_RELEVE_T --- azimuts droits +# +# ---- champs de contrainte SI, SII ET SIII ---- +# + if TYPE_MAILLAGE=='SAIN_GROS' : NBAZIM = 40 + else : NBAZIM = 48 + mcfact=[] + TYPSOU=None + if TUBULURE!=None : TYPSOU = TUBULURE['TYPE'] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + if TYPSOU=='TYPE_1': + mcsimp['REPERE' ]='CYLINDRIQUE', + mcsimp['ORIGINE']=( 0.0 , 0.0 , 0.0 ) + mcsimp['AXE_Z' ]=( 0.0 , 0.0 , 1.0 ) + INTITD = 'AZI_'+NUME+'_D-REP_CYL' + else: + mcsimp['REPERE' ]='LOCAL' + mcsimp['VECT_Y' ]=( 0.0 , 0.0 , 1.0 ) + INTITD = 'AZI_'+NUME+'_D-REP_LOC' + mcsimp['INTITULE' ]=INTITD + mcsimp['GROUP_NO' ]='LD'+str(i) + mcfact.append( _F( RESULTAT = nomres, + TOUT_ORDRE ='OUI', + NOM_CHAM ='SIEF_ELNO_ELGA', + PRECISION =55.E-1, + TOUT_CMP ='OUI', + OPERATION ='EXTRACTION',**mcsimp)) + __noposd=POST_RELEVE_T(ACTION = mcfact, + TITRE = '-- TRAITEMENT DES AZIMUTS DROITS --') +# +# --- IMPR_TABLE dans un repere cylindrique ou local +# des champs de contrainte SI, SII ET SIII +# + if TYPSOU=='TYPE_1' : nompara=IMPRT1 + else : nompara=IMPRT2 + IMPR_TABLE(TABLE = __noposd, + NOM_PARA = nompara ) +# +# ---- Pm, Pm+Pb sur les lignes de depouillement ---- +# + if mc_AFFE_MATERIAU[0]['RCCM']=='OUI': + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['INTITULE' ]='LD'+str(i) + mcsimp['GROUP_NO' ]='LD'+str(i) + mcsimp['RESULTAT' ]=nomres + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='SIEF_ELNO_ELGA' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['OPERATION' ]='EXTRACTION' + mcfact.append( _F(**mcsimp) ) + __prelsd=POST_RELEVE_T(ACTION=mcfact) + __pmpbsd=POST_RCCM(OPTION = 'PM_PB', + TYPE_RESU_MECA = 'EVOLUTION', + TYPE_RESU = 'VALE_MAX', + MATER = MRCCM, + TRANSITOIRE = _F(TABL_RESU_MECA = __prelsd,), + TITRE = '-- TRAITEMENT DES AZIMUTS DROITS --',) + IMPR_TABLE(TABLE = __pmpbsd, ) +# +# ---- champ de temperature, si il a ete calcule, sur les lignes de depouillement ---- +# + if ECHANGE!=None : + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LD'+str(i) + mcsimp['RESULTAT' ]=resuth + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='TEMP' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['INTITULE' ]='AZI_'+NUME+'_D' + mcsimp['OPERATION' ]='EXTRACTION' + mcfact.append( _F(**mcsimp) ) + __rthazd=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __rthazd, ) +# +# ---- parametres caracterisant la distribution de temperature, +# si elle a ete calculee, dans l epaisseur du ligament ---- +# + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LD'+str(i) + mcsimp['RESULTAT' ]=resuth + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='TEMP' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['INTITULE' ]='AZI_'+NUME+'_D' + mcsimp['OPERATION' ]='MOYENNE' + mcfact.append( _F(**mcsimp) ) + __rmothd=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __rmothd, ) +# +#----------------------------------------------------------------------- +# +# --- post traitement : POST_RELEVE_T --- azimuts inclines +# --- champs de contrainte SI, SII ET SIII ---- +# + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LI'+str(i) + mcsimp['RESULTAT' ]=nomres + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='SIEF_ELNO_ELGA' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['REPERE' ]='LOCAL' + mcsimp['VECT_Y' ]=( 0.0 , 0.0 , 1.0 ) + mcsimp['INTITULE' ]='AZI_'+NUME+'_I-REP_LOC' + mcsimp['OPERATION' ]='EXTRACTION' + mcfact.append( _F(**mcsimp) ) + __noposi=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __noposi, ) +# +# ---- Pm, Pm+Pb sur les lignes de depouillement ---- +# + if mc_AFFE_MATERIAU[0]['RCCM']=='OUI': + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['INTITULE' ]='LI'+str(i) + mcsimp['GROUP_NO' ]='LI'+str(i) + mcsimp['RESULTAT' ]=nomres + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='SIEF_ELNO_ELGA' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['OPERATION' ]='EXTRACTION' + mcfact.append( _F(**mcsimp) ) + __prelsi=POST_RELEVE_T(ACTION=mcfact) + __pmpbsi=POST_RCCM(OPTION = 'PM_PB', + TYPE_RESU_MECA = 'EVOLUTION', + TYPE_RESU = 'VALE_MAX', + MATER = MRCCM, + TRANSITOIRE = _F(TABL_RESU_MECA = __prelsi,), + TITRE = '-- TRAITEMENT DES AZIMUTS INCLINES --',) + IMPR_TABLE(TABLE = __pmpbsi, ) +# +# ---- champs de temperature,si il a ete calcule, sur les lignes de depouillement ---- +# + if ECHANGE!=None : + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LI'+str(i) + mcsimp['RESULTAT' ]=resuth + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='TEMP' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['INTITULE' ]='AZI_'+NUME+'_I' + mcsimp['OPERATION' ]='EXTRACTION' + mcfact.append( _F(**mcsimp) ) + __rthazi=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __rthazi, + NOM_PARA = IMPRT3 ) +# +# ---- parametres caracterisant la distribution de temperature, +# si elle a ete calculee, dans l epaisseur du ligament ---- +# + mcfact=[] + for i in range(1,NBAZIM+1,PAS_AZIMUT): + if i<10 : NUME = '0'+str(i) + else : NUME = str(i) + mcsimp={} + mcsimp['GROUP_NO' ]='LI'+str(i) + mcsimp['RESULTAT' ]=resuth + mcsimp['TOUT_ORDRE' ]='OUI' + mcsimp['NOM_CHAM' ]='TEMP' + mcsimp['PRECISION' ]=55.E-1 + mcsimp['TOUT_CMP' ]='OUI' + mcsimp['INTITULE' ]='AZI_'+NUME+'_I' + mcsimp['OPERATION' ]='MOYENNE' + mcfact.append( _F(**mcsimp) ) + __rmothi=POST_RELEVE_T(ACTION=mcfact) + IMPR_TABLE(TABLE = __rmothi, ) +# +#----------------------------------------------------------------------- + elif TYPE_MAILLAGE[:4]=='FISS' : +#----------------------------------------------------------------------- +# + NOMGRO=[] + NOMGRE=[] + TABMA8=[] + NOMMA =[] + if TYPE_MAILLAGE in ('FISS_COUR_DEB','FISS_LONG_DEB','FISS_AXIS_DEB','FISS_COUR_NONDEB') : + NBFIS = 1 + NOMGRO.append(('P_FON1' ,'P_FIS1' ),) + NOMGRE.append(('P_FON2' ,'P_FIS2' ),) + TABMA8.append('FONDFISS') + if TYPE_MAILLAGE in ('FISS_COUR_DEB','FISS_LONG_DEB') : FERME=0 + else : + FERME=1 + NOMMA.append('MAIL_ORI') + elif TYPE_MAILLAGE in ('FISS_LONG_NONDEB','FISS_AXIS_NONDEB') : + NBFIS = 2 + NOMGRO.append(('P_FON1' ,'P_FIS1' ),) + NOMGRE.append(('P_FON2' ,'P_FIS2' ),) + NOMGRO.append(('PI_FON1','PI_FIS1'),) + NOMGRE.append(('PI_FON2','PI_FIS2'),) + TABMA8.append('FOND_SUP') + TABMA8.append('FOND_INF') + if TYPE_MAILLAGE=='FISS_LONG_NONDEB' : FERME=0 + else : + FERME=1 + NOMMA.append('MA_ORI_S') + NOMMA.append('MA_ORI_I') +# + if ECHANGE!=None: +# +# ---- champs de temperature en fond de fissure +# si il a ete calcule, cas 1 fond de fissure ---- +# + if NBFIS==1: + __rthfis=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FONDFISS', + RESULTAT =resuth, + TOUT_ORDRE ='OUI', + NOM_CHAM ='TEMP', + PRECISION =55.E-1, + TOUT_CMP ='OUI', + INTITULE ='FONDFISS', + OPERATION ='EXTRACTION',)) + IMPR_TABLE(TABLE = __rthfis, ) +# +# ---- champs de temperature en fond de fissure +# si il a ete calcule, cas 2 fonds de fissure ---- +# + elif NBFIS==2: +# + __rthfis1=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FOND_SUP', + RESULTAT =resuth, + TOUT_ORDRE ='OUI', + NOM_CHAM ='TEMP', + PRECISION =55.E-1, + TOUT_CMP ='OUI', + INTITULE ='FOND_SUP', + OPERATION ='EXTRACTION',)) + IMPR_TABLE(TABLE = __rthfis1, ) + __rthfis2=POST_RELEVE_T(ACTION=_F(GROUP_NO ='FOND_INF', + RESULTAT =resuth, + TOUT_ORDRE ='OUI', + NOM_CHAM ='TEMP', + PRECISION =55.E-1, + TOUT_CMP ='OUI', + INTITULE ='FOND_INF', + OPERATION ='EXTRACTION',)) + IMPR_TABLE(TABLE = __rthfis2, ) +# +# boucle sur le nombre de fond de fissure +# + fond3d = [None]*2 + for j in range(NBFIS): + if FOND_FISS_1!=None : self.DeclareOut('fond3d_0',FOND_FISS_1) + if FOND_FISS_2!=None : self.DeclareOut('fond3d_1',FOND_FISS_2) +# +# --- commande DEFI_FOND_FISS --- +# + motscles={} + if not FERME: + motscles['FOND_FISS']=_F(GROUP_MA =TABMA8[j], + GROUP_NO_ORIG=NOMGRO[j][0], + GROUP_NO_EXTR=NOMGRE[j][0],) + motscles['VECT_GRNO_ORIG']=NOMGRO[j] + motscles['VECT_GRNO_EXTR']=NOMGRE[j] + else: + if TYPE_MAILLAGE.find('AXIS')!=-1 : grnoorig=NOMGRE[j][0] +# si AXIS, P_FON1 est remplace par P_FON2 pour +# fermer le fond de fissure + else : grnoorig=NOMGRO[j][0] + motscles['FOND_FERME']=_F(GROUP_MA =TABMA8[j], + GROUP_NO_ORIG=grnoorig, + GROUP_MA_ORIG=NOMMA[j],) + fond3d[j]=DEFI_FOND_FISS( MAILLAGE = MAILLAGE, + LEVRE_SUP = _F(GROUP_MA='LEVRCORP',), + LEVRE_INF = _F(GROUP_MA='LEVRTUBU',),**motscles) + if THETA_3D!=None: + for tht3d in THETA_3D : +# +# --- commande CALC_THETA --- +# + __theta = CALC_THETA( MODELE = modele, + FOND_FISS = fond3d[j], + THETA_3D = _F( TOUT = 'OUI', + MODULE = 1.0 , + R_INF = tht3d['R_INF'], + R_SUP = tht3d['R_SUP'], ) ) +# +# --- commande CALC_G (3D GLOBAL) --- +# + montit = 'G_THETA AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) + motscles={} + if COMP_ELAS!=None: motscles['COMP_ELAS']= _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],) + if COMP_INCR!=None: motscles['COMP_INCR']= _F(RELATION = COMP_INCR['RELATION'],) + __gtheta = CALC_G ( THETA = _F(THETA=__theta), + OPTION = 'CALC_G_GLOB', + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + TITRE = montit,**motscles) + IMPR_TABLE(TABLE = __gtheta, ) +# +# recherche du g max +# + if OPTION=='CALC_G_MAX' : + if BORNES!=None: + mcfact=[] + for born in BORNES : + mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , + VALE_MIN = born['VALE_MIN' ] , + VALE_MAX = born['VALE_MAX' ] ) ) + __gbil = CALC_G( THETA = _F(THETA=__theta), + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + COMP_ELAS = _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],), + TITRE = montit, + OPTION = 'G_MAX_GLOB', + BORNES = mcfact,) + IMPR_TABLE(TABLE = __gbil, ) +# +# --- commande CALC_G (3D LOCAL) --- +# + montit = 'G_LOCAL AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) + motscles={} + if COMP_ELAS!=None: motscles['COMP_ELAS' ]= _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],) + if FERME: + motscles['LISSAGE']=_F(LISSAGE_THETA= 'LAGRANGE', + LISSAGE_G= 'LAGRANGE',) + __glocal = CALC_G( THETA=_F( FOND_FISS = fond3d[j], + R_INF = tht3d['R_INF'], + R_SUP = tht3d['R_SUP'],), + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + TITRE = montit,**motscles) + IMPR_TABLE(TABLE = __glocal, ) +# +# recherche du g max local +# + if OPTION=='CALC_G_MAX_LOCAL' : + if BORNES!=None: + motscles={} + mcfact=[] + if FERME: + motscles['LISSAGE']=_F(LISSAGE_THETA= 'LAGRANGE', + LISSAGE_G= 'LAGRANGE',) + for born in BORNES : + mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , + VALE_MIN = born['VALE_MIN' ] , + VALE_MAX = born['VALE_MAX' ] ) ) + motscles['BORNES']=mcfact + __glbil = CALC_G( THETA=_F( FOND_FISS = fond3d[j], + R_INF = tht3d['R_INF'], + R_SUP = tht3d['R_SUP'],), + RESULTAT = nomres, + TOUT_ORDRE = 'OUI', + COMP_ELAS = _F(TOUT = 'OUI', + RELATION = COMP_ELAS['RELATION'],), + TITRE = montit, + OPTION = 'G_MAX',**motscles) + IMPR_TABLE(TABLE = __glbil, ) +# +# --- commande IMPR_RESU --- +# + if IMPRESSION!=None: + mcfresu =[] + motscles={} + motsclei={} + if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : + ncham =[] + if IMPRESSION['NOM_CHAM']!=None : + if type(IMPRESSION['NOM_CHAM']) in (types.TupleType,types.ListType) : ncham= IMPRESSION['NOM_CHAM'] + 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] + elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP') : + motscles['NOM_CHAM' ]=(ncham[0],ncham[1]) + elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[1] + elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[0] + if IMPRESSION['TOUT_ORDRE']!=None : + motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] + elif IMPRESSION['NUME_ORDRE']!=None : + motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE'] + elif IMPRESSION['INST']!=None : + motscles['INST' ]= IMPRESSION['INST'] + if IMPRESSION['FORMAT']=='IDEAS' : + motsclei['VERSION' ]= IMPRESSION['VERSION'] + if IMPRESSION['FORMAT']=='CASTEM' : + motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] + mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,**motscles)) + if ECHANGE!=None: + motscles={} + 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] + elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[0] + elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : + motscles['NOM_CHAM' ]= ncham[1] + if IMPRESSION['TOUT_ORDRE']!=None : + motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] + elif IMPRESSION['NUME_ORDRE']!=None : + motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE'] + elif IMPRESSION['INST']!=None : + motscles['INST' ]= IMPRESSION['INST'] + if IMPRESSION['FORMAT']=='IDEAS' : + motsclei['VERSION' ]= IMPRESSION['VERSION'] + if IMPRESSION['FORMAT']=='CASTEM' : + motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] + mcfresu.append(_F(RESULTAT=resuth,**motscles)) + IMPR_RESU( MODELE = modele, + RESU = mcfresu, + FORMAT=IMPRESSION['FORMAT'],**motsclei) +# + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA9/Macro/macr_aspic_mail_ops.py new file mode 100644 index 00000000..d1b14cb6 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_aspic_mail_ops.py @@ -0,0 +1,916 @@ +#@ MODIF macr_aspic_mail_ops Macro DATE 25/09/2006 AUTEUR GALENNE E.GALENNE +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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.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') + texte = """ +**************************************************************** +opti echo 0; +epT1 = %s; +DeT1 = %s; +d1 = %s; +d2 = %s; +epT2 = %s; +DeT2 = %s; +Zmax = %s; +type_s = %s; +d_pene = %s; +h = %s; +angl_s = %s; +jeu = %s; +epC = %s; +DeC = %s; +Xmax = %s; +typmai = MOT %s; +theta = %s; +typele = MOT %s; +typ_eque = MOT SAINE; +nivmag = %s; +**************************************************************** +""" % (EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, ITYPSO, DPENE, H, + ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, NIVMAG) + aster.affiche('MESSAGE',texte + ' + aspic.datg...\n') + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() + fdgib.write(texte) + fdgib.close() + +# Ecriture du fichier GIBI principal (dgib) - ASPID1 +def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, + ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA, + 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' + texte='****************************************************************\n' + texte=texte+'opti echo 0 ; \n' + texte=texte+'epT1 = '+str(EPT1) +POIVIR + texte=texte+'DeT1 = '+str(DET1) +POIVIR + texte=texte+'d1 = '+str(D1) +POIVIR + texte=texte+'d2 = '+str(D2) +POIVIR + texte=texte+'epT2 = '+str(EPT2) +POIVIR + texte=texte+'DeT2 = '+str(DET2) +POIVIR + texte=texte+'Zmax = '+str(ZMAX) +POIVIR + texte=texte+'type_s = '+str(ITYPSO) +POIVIR + texte=texte+'d_pene = '+str(DPENE) +POIVIR + texte=texte+'h = '+str(H) +POIVIR + texte=texte+'angl_s = '+str(ALPHA) +POIVIR + texte=texte+'jeu = '+str(JEU) +POIVIR + texte=texte+'epC = '+str(EPC) +POIVIR + texte=texte+'DeC = '+str(DEC) +POIVIR + texte=texte+'Xmax = '+str(XMAX) +POIVIR + texte=texte+'typmai = MOT '+TYPMAI +POIVIR + texte=texte+'theta = '+str(THETA) +POIVIR + texte=texte+'a = '+str(A) +POIVIR + texte=texte+'c = '+str(C) +POIVIR + texte=texte+'zeta = '+str(ZETA) +POIVIR + texte=texte+'eps = '+str(EPS) +POIVIR + texte=texte+'rc0 = '+str(RC0) +POIVIR + texte=texte+'ns = '+str(NS) +POIVIR + texte=texte+'nc = '+str(NC) +POIVIR + texte=texte+'nt = '+str(NT) +POIVIR + texte=texte+'dir_fiss = MOT '+POSI +POIVIR + texte=texte+'pos_fiss = MOT '+TFISS +POIVIR + texte=texte+'ndt = '+str(NDT) +POIVIR + texte=texte+'f_etir_f = '+str(FETIRF) +POIVIR + texte=texte+'f_etir_p = '+str(FETIRP) +POIVIR + texte=texte+'typ_eque = MOT '+'FISS_LON' +POIVIR + texte=texte+'nivmag = '+str(NIVMAG) +POIVIR + texte=texte+'* \n' + aster.affiche('MESSAGE',texte + ' + aspic_v2.datg...\n') + texte = texte + open(os.path.join(loc_datg, 'aspic_v2.datg'), 'r').read() + fdgib.write(texte) + fdgib.close() + +# Ecriture du fichier GIBI principal (dgib) - ASPID2 +def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, + H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, + THETA, A, C, EPS, RC0, RC1, RC2, RC3, + 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.) + STHETA = sin(THETA*pi/180.) +# + AOLD = A +# + if (ITYPSO == 1) : +# PIQUAGE TYPE 1 + if (POSI == 'DROIT') : +# PIQUAGE DROIT + if (TFISS == 'DEB_INT') : +# POSITION INTERNE + SGAMMA = STHETA * (DET1/2.0)/( (DEC/2.0) -EPC) + SGAMME = STHETA * (DET1/2.0)/( (DEC/2.0) ) + RAPPA = sqrt(1.0 - pow(SGAMMA,2)) + RAPPE = sqrt(1.0 - pow(SGAMME,2)) + AP = A - (1.0 - RAPPA)*A + RAPP = (AP/EPC*RAPPE) + (1.0-(AP/EPC))*RAPPA + XA = (DET1/2.0) * CTHETA + YA = (DET1/2.0) * STHETA + ZA = ((DEC/2.0) -EPC) * sqrt(1.0 - pow(SGAMMA,2)) + ZA0 = (DEC/2.0) - EPC + XA0 = DET1/2.0 + XN0 = XA0 + YN0 = 0.0 + ZN0 = ZA0 + A + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - (SGAMN*SGAMN)) + D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) + DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) + RAPP = D0N0 / DN + ECART = (1.0 - RAPP) * D0N0 + A = A - ECART + elif (TFISS == 'DEB_EXT') : +# POSITION EXTERNE + SGAMME = STHETA * (DET1/2.0)/ (DEC/2.0) + RAPPE = sqrt(1.0 - pow(SGAMME,2)) + A = A -(1.0 - RAPPE)*A + + elif (POSI == 'INCLINE') : +# PIQUAGE INCLINE + SGAMMA = STHETA * (DET1/2.0)/ ( (DEC/2.0) -EPC) + XA = (DET1/2.0) * CTHETA + YA = (DET1/2.0) * STHETA + ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) + ZA0 = (DEC/2.0) - EPC + ZD0 = DEC/2.0 + XA0 = DET1/2.0 + XD0 = XA0 + (tan(ALPHA*pi/180.0) * EPC) + A0D0 = sqrt( pow((ZD0 - ZA0),2) + pow((XD0 - XA0),2) ) + 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 (STHETA > 0) : + YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + else : + YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + + ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2)) + + if ( (abs(THETA - 0.0) < 1.e-3) or ((abs(THETA - 180.0)) < 1.e-3) ) : + XD = CTHETA * XD0 + else : + XD = YD / tan(THETA*pi/180.0) + + AD = sqrt( pow((XA - XD),2) + pow((YA - YD),2) + pow((ZA - ZD),2) ) + RAPP = A0D0 / AD + + if (TFISS == 'DEB_EXT') : + XN0 = XD0 - A*SALPHA + YN0 = 0.0 + 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) ) + DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) + RAPP = D0N0 / DN + ECART = (RAPP - 1.0) * D0N0 + A = A + ECART + + if (TFISS == 'DEB_INT') : + XN0 = XA0 + A*SALPHA + YN0 = 0.0 + ZN0 = ZA0 + A*CALPHA + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) + DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) + RAPP = D0N0 / DN + ECART = (RAPP - 1.0) * D0N0 + # Correction necessaire dans le cas theta grand (cf. AL9679) + if ( abs(STHETA) > 0.8) : + 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((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) + DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) + RAPP = D0N0 / DN + ECART = (ECART + (RAPP - 1.0) * D0N0)/2 + A = A + ECART + + + elif (ITYPSO == 2) : +# PIQUAGE TYPE 2 + if (POSI == 'DROIT') : +# PIQUAGE DROIT + SGAMMI = STHETA * ((DET1/2.0) - EPT1)/(DEC/2.0) + XI = ((DET1/2.0) - EPT1) * CTHETA + YI = ((DET1/2.0) - EPT1) * STHETA + ZI = (DEC/2.0) * sqrt(1.0 - pow(SGAMMI,2)) + XI0 = (DET1/2.0) -EPT1 + YI0 = 0.0 + ZI0 = (DEC/2.0) + + SGAMMA = STHETA * (DET1/2.0)/((DEC/2.0) -EPC) + YA = (DET1/2.0) * STHETA + ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) + TGALP = H / EPC + 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 (STHETA > 0) : + YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + else : + YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + + ZD = sqrt( pow((DEC/2.0),2) - pow(YD,2) ) + if ( (abs(THETA - 0.0) < 1.0e-3) or + (abs(THETA - 180.0) < 1.0e-3) or + (abs(THETA + 180.0) < 1.0e-3) or + (abs(THETA + 90.0) < 1.0e-3) or + (abs(THETA - 90.0) < 1.0e-3) ) : + XD = CTHETA * ((DET1/2.0) + H) + else : + XD = YD / (tan(THETA*pi/180.0)) + + XD0 = (DET1/2.0) + H + YD0 = 0.0 + ZD0 = (DEC/2.0) + + if (TFISS == 'DEB_EXT') : + XN0 = XD0 - A + YN0 = 0.0 + ZN0 = ZI0 + XN = XN0 * CTHETA + YN = XN0 * STHETA + DZID = abs(ZI - ZD) + DXYID = sqrt( pow((XD - XI),2) + pow((YD - YI),2) ) + DXYIN = sqrt( pow((XN - XI),2) + pow((YN - YI),2) ) + DZIN = (DXYIN * DZID) / DXYID + ZN = ZI - DZIN + D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) + DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) + RAPP = D0N0 / DN + ECART = DN - D0N0 + A = A - ECART + + if (TFISS == 'DEB_INT') : + XN0 = XI0 + A + YN0 = 0.0 + ZN0 = ZI0 + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + I0N0 = sqrt( pow((XI0 - XN0),2) + pow((ZI0 - ZN0),2) ) + IN = sqrt( pow((XI - XN),2) + pow((YI - YN),2) + pow((ZI - ZN),2) ) + RAPP = I0N0 / IN + ECART = I0N0 * ( 1.0 - RAPP ) + A = A - ECART + + elif (POSI == 'INCLINE') : +# PIQUAGE INCLINE + TGALPHA = SALPHA/CALPHA + REPB = (DEC/2.0) + JEU + (EPT1*TGALPHA) + SGAMB = (STHETA * DET1/2.0 ) / REPB + CGAMB = sqrt(1.0 - pow(SGAMB,2)) + XB = (DET1/2.0) * CTHETA + YB = (DET1/2.0) * STHETA + ZB = ( (DEC/2.0) + JEU + (EPT1*TGALPHA) ) * CGAMB + XB0 = (DET1/2.0) + YB0 = 0.0 + ZB0 = (DEC/2.0) + JEU + (EPT1*TGALPHA) +# + RIT1 = (DET1/2.0) - EPT1 + REPG = (DEC/2.0) + JEU + SGAMG = ((STHETA ) * RIT1) / REPG + CGAMG = sqrt(1.0 - pow(SGAMG,2)) + XG = RIT1 * CTHETA + YG = RIT1 * STHETA + ZG = ((DEC/2.0) + JEU) * CGAMG + XG0 = RIT1 + YG0 = 0.0 + ZG0 = (DEC/2.0) + JEU +# + if (TFISS == 'DEB_INT') : + XN0 = XG0 + A*CALPHA + YN0 = 0.0 + ZN0 = ZG0 + A*SALPHA + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + G0N0 = sqrt( pow((XG0 - XN0),2) + pow((ZG0 - ZN0),2) ) + GN = sqrt( pow((XG - XN),2) + pow((YG - YN),2) + pow((ZG - ZN),2) ) + RAPP = G0N0 / GN + ECART = (RAPP - 1.0) * G0N0 + A = A + ECART + + if (TFISS == 'DEB_EXT') : + XN0 = XB0 - A*CALPHA + YN0 = 0.0 + ZN0 = ZB0 - A*SALPHA + XN = XN0 * CTHETA + YN = XN0 * STHETA + SGAMN = YN / ZN0 + ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) + B0N0 = sqrt( pow((XB0 - XN0),2) + pow((ZB0 - ZN0),2) ) + BN = sqrt( pow((XB - XN),2) + pow((YB - YN),2) + pow((ZB - ZN),2) ) + RAPP = B0N0 / BN + ECART = (RAPP - 1.0) * B0N0 + A = A + ECART + + message= ' CORRECTION PROFONDEUR DEFAUT \n' + message=message+ ' PROFONDEUR SUR PIQUAGE : %.2f \n'%AOLD + message=message+ ' PROFONDEUR SUR EQUERRE : %.2f \n'%A + aster.affiche('MESSAGE',message) + +# Ouverture du fichier d'entrée de commandes + + fdgib=open(nomFichierDATG,'w') + POIVIR = ' ; \n' + texte='****************************************************************\n' + texte=texte+'opti echo 0 ; \n' + texte=texte+'epT1 = '+str(EPT1) +POIVIR + texte=texte+'DeT1 = '+str(DET1) +POIVIR + texte=texte+'d1 = '+str(D1) +POIVIR + texte=texte+'d2 = '+str(D2) +POIVIR + texte=texte+'epT2 = '+str(EPT2) +POIVIR + texte=texte+'DeT2 = '+str(DET2) +POIVIR + texte=texte+'Zmax = '+str(ZMAX) +POIVIR + texte=texte+'type_s = '+str(ITYPSO) +POIVIR + texte=texte+'d_pene = '+str(DPENE) +POIVIR + texte=texte+'h = '+str(H) +POIVIR + texte=texte+'angl_s = '+str(ALPHA) +POIVIR + texte=texte+'jeu = '+str(JEU) +POIVIR + texte=texte+'epC = '+str(EPC) +POIVIR + texte=texte+'DeC = '+str(DEC) +POIVIR + texte=texte+'Xmax = '+str(XMAX) +POIVIR + texte=texte+'typmai = MOT '+TYPMAI +POIVIR + texte=texte+'theta = '+str(THETA) +POIVIR + texte=texte+'a = '+str(A) +POIVIR + texte=texte+'c = '+str(C) +POIVIR + texte=texte+'zeta = '+str(ZETA) +POIVIR + texte=texte+'eps = '+str(EPS) +POIVIR + texte=texte+'rc0 = '+str(RC0) +POIVIR + texte=texte+'rc1 = '+str(RC1) +POIVIR + texte=texte+'rc2 = '+str(RC2) +POIVIR + texte=texte+'rc3 = '+str(RC3) +POIVIR + texte=texte+'alpha = '+str(ALP) +POIVIR + texte=texte+'beta = '+str(BETA) +POIVIR + texte=texte+'ns = '+str(NS) +POIVIR + texte=texte+'nc = '+str(NC) +POIVIR + texte=texte+'nt = '+str(NT) +POIVIR + texte=texte+'dir_fiss = MOT '+POSI +POIVIR + texte=texte+'pos_fiss = MOT '+TFISS +POIVIR + texte=texte+'ndt = '+str(NDT) +POIVIR + texte=texte+'nsdt = '+str(NSDT) +POIVIR + texte=texte+'typ_eque = MOT '+'FISS_COU' +POIVIR + texte=texte+'nivmag = '+str(NIVMAG) +POIVIR + texte=texte+'* \n' + texte=texte+'list epc ;\n' + aster.affiche('MESSAGE',texte + ' + aspic.datg...\n') + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() + fdgib.write(texte) + fdgib.close() + +def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, + SOUDURE,CORPS,FISS_SOUDURE,IMPRESSION,INFO, + **args): + """ + Ecriture de la macro MACR_ASPIC_MAIL + """ + from Accas import _F + import types + import aster + from Utilitai.Utmess import UTMESS + ier=0 + +# On importe les definitions des commandes a utiliser dans la macro + EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL') + PRE_GIBI =self.get_cmd('PRE_GIBI') + LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') + DEFI_GROUP =self.get_cmd('DEFI_GROUP') + MODI_MAILLAGE =self.get_cmd('MODI_MAILLAGE') + CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') + IMPR_RESU =self.get_cmd('IMPR_RESU') + DEFI_FICHIER =self.get_cmd('DEFI_FICHIER') + +# La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + TYPELE = TYPE_ELEM + NIVMAG = EXEC_MAILLAGE['NIVE_GIBI'] +# +# --- raffinement maillage --- +# + TYPMAI = RAFF_MAIL + GROS = (TYPMAI=='GROS') + if GROS : NBAZIT = 40 + else : NBAZIT = 48 +# +# --- caracteristiques de la tubulure --- +# + EPT1 = TUBULURE['E_BASE' ] + DET1 = TUBULURE['DEXT_BASE'] + D1 = TUBULURE['L_BASE' ] + D2 = TUBULURE['L_CHANF' ] + EPT2 = TUBULURE['E_TUBU' ] + DET2 = TUBULURE['DEXT_TUBU'] + ZMAX = TUBULURE['Z_MAX' ] + TYPSOU= TUBULURE['TYPE' ] + DPENE = TUBULURE['L_PENETR' ] + if TYPSOU=='TYPE_2' and DPENE>0.0 : + UTMESS('F', "MACR_ASPIC_MAIL", "les piquages penetrants sont autorises uniquement avec les soudures de type 1") + if TYPSOU=='TYPE_2' : + ITYPSO = 2 + else : + ITYPSO = 1 +# +# --- caracteristiques de la soudure --- +# + H = SOUDURE['H_SOUD' ] + ALPHA = SOUDURE['ANGL_SOUD'] + JEU = SOUDURE['JEU_SOUD' ] +# +# --- caracteristiques du corps --- +# + EPC = CORPS ['E_CORP' ] + DEC = CORPS ['DEXT_CORP'] + XMAX = CORPS ['X_MAX' ] + EPSI = 1.E-03 + RMB = ( DET1 - EPT1 ) / 2.0 + VAL1 = 1.5 * sqrt( RMB**3 / EPT1 ) + VAL3 = 3.0 * sqrt( RMB * EPT1 ) + RMT = ( DET2 - EPT2 ) / 2.0 + VAL2 = 1.5 * sqrt( RMT**3 / EPT2 ) + VAL4 = 3.0 * sqrt( RMT * EPT2 ) + LZMAX = max ( VAL1 , VAL2, VAL3, VAL4 ) + ZMAXC = LZMAX + ( DEC/2.0 ) + D1 + D2 + LOK = ( abs(ZMAX-ZMAXC) <= EPSI * abs(ZMAXC) ) + if not LOK : + message= ' erreur donnees \n' + message=message+ ' Z_MAX FOURNIE : %.2f \n'%ZMAX + message=message+ ' Z_MAX CALCULEE : %.2f \n'%ZMAXC + UTMESS('F', "MACR_ASPIC_MAIL", message) + RMC = ( DEC - EPC ) / 2.0 + VAL1 = 1.5 * sqrt( RMC**3 / EPC ) + VAL2 = 3.0 * sqrt( RMC * EPC ) + LXMAX = max( VAL1 , VAL2 ) + XMAXC = LXMAX + ( DET1 / 2.0 ) + LOK = ( abs(XMAX-XMAXC) <= EPSI * abs(XMAXC) ) + if not LOK : + message= ' erreur donnees \n' + message=message+ ' Z_MAX FOURNIE : %.2f \n'%ZMAX + message=message+ ' Z_MAX CALCULEE : %.2f \n'%ZMAXC + UTMESS('F', "MACR_ASPIC_MAIL", message) + message= ' MACR_ASPIC_MAIL / X_MAX CALCULEE : %.2f \n'%XMAX + message=message+ ' MACR_ASPIC_MAIL / Z_MAX CALCULEE : %.2f \n'%XMAXC + aster.affiche('MESSAGE',message) +# +# --- caracteristiques de la fissure --- +# + SAIN = 0 + FISLON = 0 + FISCOU = 0 + THETA = 0.0 + TFISS = None + if FISS_SOUDURE==None : + SAIN = 1 + else : + if FISS_SOUDURE['TYPE']=='LONGUE' : FISLON = 1 + elif FISS_SOUDURE['TYPE']=='COURTE' : FISCOU = 1 + THETA = FISS_SOUDURE['AZIMUT' ] + EPS = FISS_SOUDURE['ANGL_OUVERTURE'] + AXIS = FISS_SOUDURE['AXIS' ] + POSI = FISS_SOUDURE['POSITION' ] + TFISS = FISS_SOUDURE['FISSURE' ] + A = FISS_SOUDURE['PROFONDEUR' ] + if FISS_SOUDURE['LONGUEUR' ]!=None : + C = FISS_SOUDURE['LONGUEUR' ] + N1 = 1 + else : N1 = 0 + if (TFISS=='DEB_INT') and (POSI=='INCLINE') and (DPENE>0.0) and (JEU>0.0) : + message= ' erreur donnees \n' + message=message+ ' dans le cas de fissures \n' + message=message+ ' inclinees debouchant en peau interne avec \n' + message=message+ ' piquage penetrant le jeu doit etre nul \n' + UTMESS('F', "MACR_ASPIC_MAIL", message) + ZETA = 0.5 + if TFISS not in ('DEB_INT','DEB_EXT') : + if FISS_SOUDURE['LIGA_INT']==None : + message= ' erreur donnees \n' + message=message+ ' dans le cas de fissures internes\n' + message=message+ ' (NON_DEB) le ligament inferieur est obligatoire \n' + UTMESS('F', "MACR_ASPIC_MAIL", message) + LIGA = FISS_SOUDURE['LIGA_INT'] + if POSI=='DROIT' : + if ITYPSO==1 : ZETA = (A+LIGA)/(EPC+H) + else : ZETA = (A+LIGA)/(EPT1+H) + else : + if ITYPSO==1 : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPC + else : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPT1 + if ZETA < 0.1 : + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") + if ZETA > 0.9 : + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") + if LIGA < 0.1*EPC : + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ") + if (LIGA + 2.0*A) > 0.9*EPC : + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ") + if N1==0 : + if FISCOU : + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures courte il faut preciser la longueur") + if AXIS=='NON' : + UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de la fissure longue il faut preciser la longueur ou axis=oui ") + C = 0.0 + else : + if AXIS=='OUI' : UTMESS('A', "MACR_ASPIC_MAIL", "fissure axisymetrique : le mot clef ne doit pas etre renseigne") + C = 0.5 * C + LEQU=2.*(pi*(DEC-EPC)-DET1+2.*EPT1) +# +# LPIQ est une valeur qui depend theoriquement de la fissure. la valeur +# ci-dessous est approchee car elle ne sert qu'a calculer les facteurs d'etirement +# + LPIQ=pi*(DET1) + if AXIS=='OUI' : C=100.0*LPIQ + RAPL=LEQU/LPIQ + if FISCOU : + RAP=A/C + CAS1=RAP<0.3499 + CAS3=RAP>0.4999 + CAS2= not (CAS1 or CAS3) + if CAS1 : ALP=0.8 + if CAS2 : ALP=0.4 + if CAS3 : ALP=0.0 + BETA=1.0 + if GROS and not CAS1 : + NDT=1 + NSDT=2 + else : + NDT=2 + NSDT=4 +# + if FISLON : + if GROS : + NDT=2 + FETIRF=30.*RAPL + FETIRP=60.*RAPL + else : + NDT=3 + FETIRF=15.*RAPL + FETIRP=30.*RAPL +# + RC0 = FISS_SOUDURE['RAYON_TORE'] + if (FISCOU and RC0==None) : + if GROS : RC0=0.12 + else : RC0=0.10 + if CAS1 : RC0=0.08 + RC0=RC0*A + if (FISLON and RC0==None) : RC0=A/(NDT+1) +# + RC1 = FISS_SOUDURE['COEF_MULT_RC1'] + if (FISCOU and RC1==None) : + if GROS : RC1=1.2 + else : RC1=1.0 +# + RC2 = FISS_SOUDURE['COEF_MULT_RC2'] + if (FISCOU and RC2==None) : + if GROS : RC2=1.4 + else : RC2=1.2 +# + RC3 = FISS_SOUDURE['COEF_MULT_RC3'] + if (FISCOU and RC3==None) : + if GROS : + if CAS1 : RC3=2.5 + else : RC3=1.0 # valeur non utilisee + else : + if CAS3 : RC3=2.2 + else : RC3=2.0 +# + NT = FISS_SOUDURE['NB_TRANCHE'] + if (FISCOU and NT==None) : + if GROS : NT = 8 + else : NT = 16 + if CAS1 : NT = NT*2 + if (FISLON and NT==None) : NT=0 +# + NS = FISS_SOUDURE['NB_SECTEUR'] + if (FISCOU and NS==None) : + if GROS : NS = 2 + else : NS = 4 + if (FISLON and NS==None) : + if GROS : NS = 2 + else : NS = 4 +# + NC = FISS_SOUDURE['NB_COURONNE'] + if (FISCOU and NC==None) : + if GROS : NC = 3 + else : NC = 4 + if (FISLON and NC==None) : + if GROS : NC = 3 + else : NC = 4 +# + loc_gibi=aster.repout() + logiel = EXEC_MAILLAGE['LOGICIEL' ] + UNITD = EXEC_MAILLAGE['UNITE_DATG'] + UNITS = EXEC_MAILLAGE['UNITE_MGIB'] + if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' + elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' + else : + UTMESS('F', "MACR_ASPIC_MAIL", "seuls gibi98 et gibi2000 sont appelables ") +# +# --- ecriture sur le fichier .datg de la procedure --- +# +# Nom du fichier de commandes pour GIBI + nomFichierDATG = 'fort.'+str(UNITD) +# Nom du fichier de maillage GIBI + nomFichierGIBI = 'fort.'+str(UNITS) + loc_datg = aster.repdex() + if SAIN : 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) + if FISLON : write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, + ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA, + A,C,EPS, RC0,NS,NC,NT,POSI, NDT,FETIRF,FETIRP, + TFISS,ZETA,ITYPSO,DPENE, NIVMAG,loc_datg) + if FISCOU : write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, + H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, + THETA, A, C, EPS, RC0, RC1, RC2, RC3, + ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, + ZETA,ITYPSO,DPENE, NIVMAG,loc_datg) +# + DEFI_FICHIER(ACTION='LIBERER',UNITE=19) + DEFI_FICHIER(ACTION='LIBERER',UNITE=20) + EXEC_LOGICIEL( LOGICIEL = logiel , + ARGUMENT = (nomFichierDATG, + nomFichierGIBI), ) +# + PRE_GIBI() +# + __MAPROV=LIRE_MAILLAGE(INFO=INFO) +# + motscles={} + motscles['CREA_GROUP_MA']=[] + l_CREA_GROUP_NO=[] + if SAIN : + l_CREA_GROUP_NO.append('S_LAT1') + l_CREA_GROUP_NO.append('S_LAT2') + else : + l_CREA_GROUP_NO.append('S_LAT1_C') + l_CREA_GROUP_NO.append('S_LAT2_C') + l_CREA_GROUP_NO.append('S_LAT1_T') + l_CREA_GROUP_NO.append('S_LAT2_T') + if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : + l_CREA_GROUP_NO.append('PFONDINF') + l_CREA_GROUP_NO.append('PFONDSUP') + else : + l_CREA_GROUP_NO.append('PFONDFIS') + if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='COURTE') : + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', + NOM = 'MAIL_ORI', + POSITION = 'INIT' )) + if (TFISS[:4]=='DEB_') and (AXIS=='OUI') : + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', + NOM = 'MAIL_ORI', + POSITION = 'INIT' )) + if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_SUP', + NOM = 'MA_ORI_S', + POSITION = 'INIT' )) + motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_INF', + NOM = 'MA_ORI_I', + POSITION = 'INIT' )) + l_CREA_GROUP_NO.append('S_FOND1') + l_CREA_GROUP_NO.append('S_FOND2') + l_CREA_GROUP_NO.append('EQUERRE') + motscles['CREA_GROUP_NO']=_F(GROUP_MA=l_CREA_GROUP_NO) +# + __MAPROV=DEFI_GROUP(reuse =__MAPROV, + MAILLAGE=__MAPROV, + **motscles ) +# + if not SAIN : + motscles={} + motscles['CREA_GROUP_NO']=[] + if not (TFISS=='NON_DEB') : + motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = 'FONDFISS',)) + if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : + motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = ('FOND_SUP','FOND_INF',),)) + __MAPROV=DEFI_GROUP(reuse =__MAPROV, + MAILLAGE=__MAPROV, + **motscles ) +# + __MAPROV=MODI_MAILLAGE(reuse =__MAPROV, + MAILLAGE=__MAPROV, + EQUE_PIQUA=_F( GROUP_NO = 'EQUERRE' , + E_BASE = EPT1 , + DEXT_BASE = DET1 , + L_BASE = D1 , + L_CHANF = D2 , + TYPE = TYPSOU, + H_SOUD = H , + ANGL_SOUD = ALPHA , + JEU_SOUD = JEU , + E_CORP = EPC , + DEXT_CORP = DEC , + AZIMUT = THETA , + RAFF_MAIL = TYPMAI, + X_MAX = XMAX , ) + ) +# + + motscles={} + if TFISS=='DEB_INT' : + motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP'),) + else : + motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU',),) + __MAPROV=MODI_MAILLAGE(reuse =__MAPROV, + MAILLAGE=__MAPROV, + **motscles + ) +# + if SAIN : + __MAPROV=DEFI_GROUP(reuse = __MAPROV, + MAILLAGE = __MAPROV, + CREA_GROUP_NO = _F(GROUP_MA=('NIDXT','NEDXT','NIIXT','NEIXT')) ) +# + for i in range(1,NBAZIT+1): + prec = EPC / 5.0 + __MAPROV=DEFI_GROUP(reuse = __MAPROV, + MAILLAGE = __MAPROV, + CREA_GROUP_NO = ( _F( NOM = 'NID'+str(i) , + GROUP_NO = 'NIDXT' , + NUME_INIT = i , + NUME_FIN = i ,), + _F( NOM = 'NED'+str(i) , + GROUP_NO = 'NEDXT' , + NUME_INIT = i , + NUME_FIN = i ,), + _F( NOM = 'NII'+str(i) , + GROUP_NO = 'NIIXT' , + NUME_INIT = i , + NUME_FIN = i ,), + _F( NOM = 'NEI'+str(i) , + GROUP_NO = 'NEIXT' , + NUME_INIT = i , + NUME_FIN = i ,), + _F( NOM = 'LDN'+str(i) , + GROUP_MA = 'LD' +str(i) ,), + _F( NOM = 'LD' +str(i) , + GROUP_NO = 'LDN'+str(i) , + OPTION = 'SEGM_DROI_ORDO', + PRECISION = prec , + CRITERE = 'ABSOLU' , + GROUP_NO_ORIG = 'NID'+str(i), + GROUP_NO_EXTR = 'NED'+str(i),), + _F( NOM = 'LIN'+str(i) , + GROUP_MA = 'LI' +str(i) ,), + _F( NOM = 'LI' +str(i) , + GROUP_NO = 'LIN'+str(i) , + OPTION = 'SEGM_DROI_ORDO', + PRECISION = prec , + CRITERE = 'ABSOLU' , + GROUP_NO_ORIG = 'NII'+str(i), + GROUP_NO_EXTR = 'NEI'+str(i),),)) +# +# +# --- commande CREA_MAILLAGE --- +# + self.DeclareOut('nomres',self.sd) + nomres=CREA_MAILLAGE( MAILLAGE=__MAPROV, + CREA_POI1 = ( _F( NOM_GROUP_MA = 'P1_CORP ' , + GROUP_NO = 'P1_CORP ' , ), + _F( NOM_GROUP_MA = 'P2_CORP ' , + GROUP_NO = 'P2_CORP ' , ), + _F( NOM_GROUP_MA = 'P_TUBU ' , + GROUP_NO = 'P_TUBU ' , ),) + ) +# + if IMPRESSION!=None: + for impr in IMPRESSION : +# + motscles={} + if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] + if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI']=impr['NIVE_GIBI'] + if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] + impr_resu = _F( MAILLAGE = nomres,) +# + IMPR_RESU( RESU = impr_resu, + FORMAT = impr['FORMAT'],**motscles ) +# +# +# --- Verification profondeur fissure (courte débouchante) --- +# + 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) + + texte=" PROFONDEUR DE LA FISSURE DANS LE MAILLAGE : %.2f \n"%dist + aster.affiche('MESSAGE',texte) +# + return ier + + diff --git a/Aster/Cata/cataSTA9/Macro/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA9/Macro/macr_cabri_calc_ops.py new file mode 100644 index 00000000..95ac8187 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_cabri_calc_ops.py @@ -0,0 +1,542 @@ +#@ MODIF macr_cabri_calc_ops Macro DATE 10/07/2006 AUTEUR LEBOUVIE F.LEBOUVIER +# -*- 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. +# ====================================================================== + + + + +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 + if CHAM_MATER != None: + self.DeclareOut('_cham',CHAM_MATER) + 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'], + TEMP_REF = mat['TEMP_REF'],) ) + else: + # Creation de mots-cles pour les AFFE_CHAR_MECA + motscles['AFFE'].append(_F(TOUT='OUI', + MATER = mat['MATER'], + TEMP_REF = mat['TEMP_REF'],) ) + + _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,), + TEMP_INIT=_F(VALE=temp_ini,), + TITRE='CABRI THERMIQUE &DATE &HEURE',); + + ################################################################# + ########## 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']=="DEFO_THER": + self.DeclareOut('cl_me9',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,); + # Deformation thermique + cl_me9=AFFE_CHAR_MECA( MODELE=modmeca, + TEMP_CALCULEE=resuther, + 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=_cham, + 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_me9,), + _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=_cham, + 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_me9,), + _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 + diff --git a/Aster/Cata/cataSTA9/Macro/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA9/Macro/macr_cabri_mail_dat.py new file mode 100644 index 00000000..7d673257 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_cabri_mail_dat.py @@ -0,0 +1,630 @@ +#@ MODIF macr_cabri_mail_dat Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# -*- 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. +# ====================================================================== + + + +# 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} diff --git a/Aster/Cata/cataSTA9/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA9/Macro/macr_cabri_mail_ops.py new file mode 100644 index 00000000..af724996 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_cabri_mail_ops.py @@ -0,0 +1,459 @@ +#@ MODIF macr_cabri_mail_ops Macro DATE 29/08/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- 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. +# ====================================================================== + +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 Macro.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 diff --git a/Aster/Cata/cataSTA9/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA9/Macro/macr_cara_poutre_ops.py new file mode 100644 index 00000000..89195496 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_cara_poutre_ops.py @@ -0,0 +1,817 @@ +#@ MODIF macr_cara_poutre_ops Macro DATE 27/02/2006 AUTEUR DURAND C.DURAND +# -*- 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. +# ====================================================================== +# RESPONSABLE JMBHH01 J.M.PROIX + +def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, + GROUP_MA,ORIG_INER,**args): + """ + Ecriture de la macro MACR_CARA_POUTRE + """ + import types + from Accas import _F + from Utilitai.Utmess import UTMESS + 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 + LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') + DEFI_GROUP =self.get_cmd('DEFI_GROUP') + CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') + AFFE_MODELE =self.get_cmd('AFFE_MODELE') + DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU') + AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU') + DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') + DEFI_CONSTANTE =self.get_cmd('DEFI_CONSTANTE') + AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER') + AFFE_CHAR_THER_F=self.get_cmd('AFFE_CHAR_THER_F') + THER_LINEAIRE =self.get_cmd('THER_LINEAIRE') + CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM') + CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM') + NUME_DDL =self.get_cmd('NUME_DDL') + ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR') + POST_ELEM =self.get_cmd('POST_ELEM') + CALC_ELEM =self.get_cmd('CALC_ELEM') + INTE_MAIL_2D =self.get_cmd('INTE_MAIL_2D') + POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') + IMPR_TABLE =self.get_cmd('IMPR_TABLE') + CREA_TABLE =self.get_cmd('CREA_TABLE') + # 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 + + self.DeclareOut('nomres',self.sd) + +# if GROUP_MA_BORD and GROUP_MA: +# if not LIAISON: +# UTMESS('F', "MACR_CARA_POUTRE", "Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU") +# + __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,) + + __nomamo=AFFE_MODELE(MAILLAGE=__nomlma, + AFFE=_F(TOUT='OUI', + PHENOMENE='MECANIQUE', + MODELISATION='D_PLAN',), ) + + __nomdma=DEFI_MATERIAU(ELAS=_F(E=1.0,NU=0.,RHO=1.0),) + + + __nomama=AFFE_MATERIAU(MAILLAGE=__nomlma, + AFFE=_F(TOUT='OUI', + MATER=__nomdma,), ) + + +# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION : +# ------------------------------------------------------ + + motsimps={} + if GROUP_MA : motsimps['GROUP_MA'] = GROUP_MA + if SYME_X : motsimps['SYME_X'] = SYME_X + if SYME_Y : motsimps['SYME_Y'] = SYME_Y + motsimps['ORIG_INER'] = ORIG_INER + mfact=_F(TOUT='OUI',**motsimps) + __cageo=POST_ELEM(MODELE=__nomamo, + CHAM_MATER=__nomama, + CARA_GEOM=mfact ) +# nb : si GROUP_MA n existe pas : le mot clé est ignoré + +# +# ================================================================== +# --- = CALCUL DE LA CONSTANTE DE TORSION SUR TOUT LE MAILLAGE = +# --- = OU DU CENTRE DE TORSION/CISAILLEMENT = +# --- = DES COEFFICIENTS DE CISAILLEMENT = +# --- = ET DE L INERTIE DE GAUCHISSEMENT = +# --- = 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= +# ================================================================== + + if GROUP_MA_BORD and not GROUP_MA: + +# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS +# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE : +# --------------------------------------------------------- + motscles={} + if type(GROUP_MA_BORD)==types.StringType: + motscles['CREA_GROUP_NO']=_F(GROUP_MA=GROUP_MA_BORD,) + else: + motscles['CREA_GROUP_NO']=[] + for grma in GROUP_MA_BORD: + motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=grma,)) + __nomlma=DEFI_GROUP(reuse=__nomlma, + MAILLAGE=__nomlma, + **motscles) + + + +# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES +# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL +# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION : +# --------------------------------------------------------------- + + __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, + REPERE=_F(TABLE=__cageo, + NOM_ORIG='CDG', ), ) + +# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE +# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : +# ------------------------------------------------------ + + __nomoth=AFFE_MODELE(MAILLAGE=__nomapi, + AFFE=_F(TOUT='OUI', + PHENOMENE='THERMIQUE', + MODELISATION='PLAN',), ) + +# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON DEFINIT UN +# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT : +# --- LAMBDA = 1, RHO*CP = 0 : +# ---------------------- + + __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0,RHO_CP=0.,),) + +# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : +# --------------------------------------------------------- + + __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi, + AFFE=_F(TOUT='OUI', + MATER=__nomath,), ) + +# +# ------------------------------------------------------------ +# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION - +# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2 - +# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION : - +# --- - LAPLACIEN(PHI) = -2 DANS LA SECTION - +# --- - PHI = 0 SUR LE CONTOUR : - +# ------------------------------------------------------------ +# +# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR +# --- DE LA SECTION +# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION : +# ------------------------------------------------------- + + motscles={} + if args.has_key('GROUP_MA_INTE'): + if args['GROUP_MA_INTE'] != None : + motscles['LIAISON_UNIF']=_F(GROUP_MA=args['GROUP_MA_INTE'],DDL='TEMP'), + __chart1=AFFE_CHAR_THER(MODELE=__nomoth, + TEMP_IMPO =_F(GROUP_NO=GROUP_MA_BORD, + TEMP=0. ), + SOURCE =_F(TOUT='OUI', + SOUR=2.0), + **motscles ) + +# --- POUR CHAQUE TROU DE LA SECTION : +# --- .ON A IMPOSE QUE PHI EST CONSTANT SUR LE CONTOUR INTERIEUR +# --- EN FAISANT LE LIAISON_UNIF DANS LE AFFE_CHAR_THER PRECEDENT +# --- .ON IMPOSE EN PLUS D(PHI)/DN = 2*AIRE(TROU)/L(TROU) +# --- OU D/DN DESIGNE LA DERIVEE PAR RAPPORT A LA +# --- NORMALE ET L DESIGNE LA LONGUEUR DU BORD DU TROU : +# ------------------------------------------------------- + + if args.has_key('GROUP_MA_INTE'): + lgmaint=args['GROUP_MA_INTE'] + if lgmaint != None : + __tbaire=POST_ELEM(MODELE=__nomoth, + AIRE_INTERNE=_F(GROUP_MA_BORD=args['GROUP_MA_INTE'],), ) + + motscles={} + motscles['FLUX_REP']=[] + + if type(lgmaint)==types.StringType: + motscles['FLUX_REP']=_F(GROUP_MA=args['GROUP_MA_INTE'],CARA_TORSION=__tbaire) + else: + motscles['FLUX_REP']=[] + for grma in lgmaint: + motscles['FLUX_REP'].append(_F(GROUP_MA=grma,CARA_TORSION=__tbaire),) + __chart2=AFFE_CHAR_THER(MODELE=__nomoth,**motscles) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -2 +# --- AVEC PHI = 0 SUR LE CONTOUR : +# ---------------------------------------- + + motscles={} + motscles['EXCIT']=[_F(CHARGE=__chart1,),] + if args.has_key('GROUP_MA_INTE'): + if lgmaint != None : + motscles['EXCIT'].append(_F(CHARGE=__chart2,)) + __tempe1=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + SOLVEUR=_F(STOP_SINGULIER='NON',), + **motscles ) + +# +# ---------------------------------------------- +# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT - +# --- - ET DES COEFFICIENTS DE CISAILLEMENT : - +# ---------------------------------------------- +# +# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR +# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE +# --- PAR UNE FONCTION EGALE A Y : +# -------------------------- + + __fnsec1=DEFI_FONCTION(NOM_PARA='X', + VALE=(0.,0.,10.,10.), + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + ) + + __fnsec0=DEFI_CONSTANTE(VALE=0.,) + +# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION +# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION : +# -------------------------------------------------- + + + motscles={} + if args.has_key('NOEUD'): + motscles['TEMP_IMPO']=(_F(NOEUD=args['NOEUD'],TEMP=__fnsec0)) + __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth, + SOURCE=_F(TOUT='OUI', + SOUR=__fnsec1,), + **motscles ) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -Y +# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : +# ------------------------------------------------ + + __tempe2=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + EXCIT=_F(CHARGE=__chart2,), + SOLVEUR=_F(STOP_SINGULIER='NON',), + ) + +# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR +# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE +# --- PAR UNE FONCTION EGALE A Z : +# -------------------------- + + __fnsec2=DEFI_FONCTION(NOM_PARA='Y', + VALE=(0.,0.,10.,10.), + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + ) + +# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION +# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION : +# -------------------------------------------------- + + motscles={} + if args.has_key('NOEUD'): + motscles['TEMP_IMPO']=_F(NOEUD=args['NOEUD'],TEMP=__fnsec0) + __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth, + SOURCE=_F(TOUT='OUI', + SOUR=__fnsec2,), + **motscles) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -Z +# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : +# ------------------------------------------------ + + __tempe3=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + EXCIT=_F(CHARGE=__chart3,), + SOLVEUR=_F(STOP_SINGULIER='NON',), + ) + +# --- CALCUL DU RAYON DE TORSION : +# -------------------------- + +# CALCUL DU RAYON DE TORSION EXTERNE : rtext + + __tempe1=CALC_ELEM(reuse=__tempe1, + RESULTAT=__tempe1, + MODELE=__nomoth, + CHAM_MATER=__chmath, + TOUT_ORDRE='OUI', + OPTION='FLUX_ELNO_TEMP', + ) + + __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, + DEFI_CHEMIN=_F(GROUP_MA=GROUP_MA_BORD), + INFO=2,) + + __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', + CHEMIN=__chem, + RESULTAT=__tempe1, + NOM_CHAM='FLUX_ELNO_TEMP', + TRAC_NOR='OUI', + NOM_CMP=('FLUX','FLUY'), + OPERATION='MOYENNE')) + + __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 : + l_group_ma_inte=[args['GROUP_MA_INTE'],] + else: + l_group_ma_inte=args['GROUP_MA_INTE'] + for i in range(0,len(l_group_ma_inte)): + __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, + DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[i]), + INFO=2,) + __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', + CHEMIN=__chem, + RESULTAT=__tempe1, + NOM_CHAM='FLUX_ELNO_TEMP', + TRAC_NOR='OUI', + NOM_CMP=('FLUX','FLUY'), + 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 : +# --------------------------------- + + motscles={} + if args.has_key('GROUP_MA_INTE'): + lgmaint=args['GROUP_MA_INTE'] + if lgmaint != None : + motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo, + LAPL_PHI=__tempe1, + RT=__rt, + TOUT='OUI', + OPTION='CARA_TORSION', + GROUP_MA_INTE=args['GROUP_MA_INTE'],) + else: + motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo, + LAPL_PHI=__tempe1, + 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 : +# ------------------------------ + + __cacis=POST_ELEM(MODELE=__nomoth, + CHAM_MATER=__chmath, + CARA_POUTRE=_F(CARA_GEOM=__cator, + LAPL_PHI_Y=__tempe2, + LAPL_PHI_Z=__tempe3, + TOUT='OUI', + OPTION='CARA_CISAILLEMENT',), ) + + +# +# ------------------------------------------------------------ +# --- - CALCUL DE L INERTIE DE GAUCHISSEMENT PAR RESOLUTION DE - +# --- - LAPLACIEN(OMEGA) = 0 DANS LA SECTION - +# --- - AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ SUR LE - +# --- - CONTOUR DE LA SECTION - +# --- - NY ET NZ SONT LES COMPOSANTES DU VECTEUR N NORMAL - +# --- - A CE CONTOUR - +# --- - ET SOMME_S(OMEGA.DS) = 0 - +# --- - OMEGA EST LA FONCTION DE GAUCHISSEMENT - +# --- - L INERTIE DE GAUCHISSEMENT EST SOMME_S(OMEGA**2.DS) - +# ------------------------------------------------------------ +# +# --- CREATION D UN MAILLAGE DONT LES COORDONNEES SONT EXPRIMEES +# --- DANS LE REPERE PRINCIPAL D INERTIE MAIS AVEC COMME ORIGINE +# --- LE CENTRE DE TORSION DE LA SECTION, ON VA DONC UTILISER +# --- LE MAILLAGE DE NOM NOMAPI DONT LES COORDONNEES SONT +# --- EXPRIMEES DANS LE REPERE PRINCIPAL D'INERTIE, L'ORIGINE +# --- ETANT LE CENTRE DE GRAVITE DE LA SECTION (QUI EST DONC +# --- A CHANGER) : +# ---------- + + __nomapt=CREA_MAILLAGE(MAILLAGE=__nomapi, + REPERE=_F(TABLE=__cacis, + NOM_ORIG='TORSION',) ) + +# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE +# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : +# ------------------------------------------------------ + + __nomot2=AFFE_MODELE(MAILLAGE=__nomapt, + AFFE=_F(TOUT='OUI', + PHENOMENE='THERMIQUE', + MODELISATION='PLAN', ) ) + +# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : +# --------------------------------------------------------- + + __chmat2=AFFE_MATERIAU(MAILLAGE=__nomapt, + AFFE=_F(TOUT='OUI', + MATER=__nomath, ), ) + +# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR +# --- LA COMPOSANTE SELON Y DU FLUX A IMPOSER SUR LE CONTOUR +# --- PAR UNE FONCTION EGALE A -X : +# --------------------------- + + __fnsec3=DEFI_FONCTION(NOM_PARA='X', + VALE=(0.,0.,10.,-10.), + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + ) + +# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR +# --- LA COMPOSANTE SELON X DU FLUX A IMPOSER SUR LE CONTOUR +# --- PAR UNE FONCTION EGALE A Y : +# -------------------------- + + __fnsec4=DEFI_FONCTION(NOM_PARA='Y', + VALE=(0.,0.,10.,10.), + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + ) + +# --- DANS LE BUT D IMPOSER LA RELATION LINEAIRE ENTRE DDLS +# --- SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION +# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE +# --- N = 0, N ETANT L EFFORT NORMAL) +# --- ON CALCULE LE VECTEUR DE CHARGEMENT DU A UN TERME SOURCE EGAL +# --- A 1., LES TERMES DE CE VECTEUR SONT EGAUX A +# --- SOMME_SECTION(NI.DS) ET SONT DONC LES COEFFICIENTS DE +# --- LA RELATION LINEAIRE A IMPOSER. +# --- ON DEFINIT DONC UN CHARGEMENT DU A UN TERME SOURCE EGAL A 1 : +# ----------------------------------------------------------- + + __chart4=AFFE_CHAR_THER(MODELE=__nomot2, + SOURCE=_F(TOUT='OUI', + SOUR=1.0), ) + +# --- ON CALCULE LE VECT_ELEM DU AU CHARGEMENT PRECEDENT +# --- IL S AGIT DES VECTEURS ELEMENTAIRES DONT LE TERME +# --- AU NOEUD COURANT I EST EGAL A SOMME_SECTION(NI.DS) : +# -------------------------------------------------- + + __vecel=CALC_VECT_ELEM(CHARGE=__chart4, + OPTION='CHAR_THER' + ) + +# --- ON CALCULE LE MATR_ELEM DES MATRICES ELEMENTAIRES +# --- DE CONDUCTIVITE UNIQUEMENT POUR GENERER LE NUME_DDL +# --- SUR-LEQUEL S APPUIERA LE CHAMNO UTILISE POUR ECRIRE LA +# --- RELATION LINEAIRE ENTRE DDLS : +# ---------------------------- + + __matel=CALC_MATR_ELEM(MODELE=__nomot2, + CHAM_MATER=__chmat2, + CHARGE=__chart4, + OPTION='RIGI_THER',) + +# --- ON DEFINIT LE NUME_DDL ASSOCIE AU MATR_ELEM DEFINI +# --- PRECEDEMMENT POUR CONSTRUIRE LE CHAMNO UTILISE POUR ECRIRE LA +# --- RELATION LINEAIRE ENTRE DDLS : +# ---------------------------- + + __numddl=NUME_DDL(MATR_RIGI=__matel, + METHODE='LDLT', ) + +# --- ON CONSTRUIT LE CHAMNO QUI VA ETRE UTILISE POUR ECRIRE LA +# --- RELATION LINEAIRE ENTRE DDLS : +# ---------------------------- + + __chamno=ASSE_VECTEUR(VECT_ELEM=__vecel, + NUME_DDL=__numddl, ) + +# --- ON IMPOSE LA RELATION LINEAIRE ENTRE DDLS +# --- SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION +# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE +# --- N = 0, N ETANT L EFFORT NORMAL) +# --- POUR IMPOSER CETTE RELATION ON PASSE PAR LIAISON_CHAMNO, +# --- LES TERMES DU CHAMNO (I.E. SOMME_SECTION(NI.DS)) +# --- SONT LES COEFFICIENTS DE LA RELATION LINEAIRE : +# --------------------------------------------- + + __chart5=AFFE_CHAR_THER(MODELE=__nomot2, + LIAISON_CHAMNO=_F(CHAM_NO=__chamno, + COEF_IMPO=0.), ) + +# --- LE CHARGEMENT EST UN FLUX REPARTI NORMAL AU CONTOUR +# --- DONT LES COMPOSANTES SONT +Z (I.E. +Y) ET -Y (I.E. -X) +# --- SELON LA DIRECTION NORMALE AU CONTOUR : +# ------------------------------------- + + __chart6=AFFE_CHAR_THER_F(MODELE=__nomot2, + FLUX_REP=_F(GROUP_MA=GROUP_MA_BORD, + FLUX_X =__fnsec4, + FLUX_Y =__fnsec3,), ) + +# --- RESOLUTION DE LAPLACIEN(OMEGA) = 0 +# --- AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ SUR LE CONTOUR DE LA SECTION +# --- ET SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION +# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE +# --- N = 0, N ETANT L EFFORT NORMAL) : +# ------------------------------- + + __tempe4=THER_LINEAIRE(MODELE=__nomot2, + CHAM_MATER=__chmat2, + EXCIT=(_F(CHARGE=__chart5,), + _F(CHARGE=__chart6,),), + SOLVEUR=_F(METHODE='LDLT', + RENUM='SANS', + STOP_SINGULIER='NON',), ) + +# --- CALCUL DE L INERTIE DE GAUCHISSEMENT : +# ------------------------------------- + + nomres=POST_ELEM(MODELE=__nomot2, + CHAM_MATER=__chmat2, + CARA_POUTRE=_F(CARA_GEOM=__cacis, + LAPL_PHI=__tempe4, + TOUT='OUI', + OPTION='CARA_GAUCHI'), ) + + +# +# ================================================================== +# --- = CALCUL DE LA CONSTANTE DE TORSION SUR CHAQUE GROUPE = +# --- = ET DU RAYON DE TORSION SUR CHAQUE GROUPE = +# --- = DU CENTRE DE TORSION/CISAILLEMENT = +# --- = DES COEFFICIENTS DE CISAILLEMENT = +# ================================================================== + + +# + + + if GROUP_MA_BORD and GROUP_MA: + +# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION : +# ------------------------------------------------------ + + if type(GROUP_MA_BORD)==types.StringType : + l_group_ma_bord=[GROUP_MA_BORD,] + else: + l_group_ma_bord= GROUP_MA_BORD + if type(GROUP_MA)==types.StringType : + l_group_ma=[GROUP_MA,] + else: + l_group_ma= GROUP_MA + + if args.has_key('NOEUD'): + if type(args['NOEUD'])==types.StringType : + l_noeud=[args['NOEUD'],] + else: + l_noeud= args['NOEUD'] + + if len(l_group_ma)!=len(l_group_ma_bord): + UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et GROUP_MA_BORD incoherents") + if args.has_key('NOEUD') and (len(l_group_ma)!=len(l_noeud)): + UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et NOEUD incoherents") + + __catp2=__cageo + for i in range(0,len(l_group_ma_bord)): + +# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS +# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE : +# --------------------------------------------------------- + + __nomlma=DEFI_GROUP(reuse=__nomlma, + MAILLAGE=__nomlma, + CREA_GROUP_NO=_F(GROUP_MA=l_group_ma_bord[i],) ) + + +# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES +# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL +# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION : +# --------------------------------------------------------------- + + __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, + REPERE=_F(TABLE=__cageo, + NOM_ORIG='CDG', + GROUP_MA=l_group_ma[i], ), ) + +# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE +# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : +# ------------------------------------------------------ + + __nomoth=AFFE_MODELE(MAILLAGE=__nomapi, + AFFE=_F(GROUP_MA=l_group_ma[i], + PHENOMENE='THERMIQUE', + MODELISATION='PLAN', ) ) + +# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON DEFINIT UN +# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT : +# --- LAMBDA = 1, RHO*CP = 0 : +# ---------------------- + + __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0, + RHO_CP=0.0, ), ) + +# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : +# --------------------------------------------------------- + + __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi, + AFFE=_F(TOUT='OUI', + MATER=__nomath ), ) + +# +# ------------------------------------------------------------ +# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION - +# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2 - +# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION : - +# --- - LAPLACIEN(PHI) = -2 DANS LA SECTION - +# --- - PHI = 0 SUR LE CONTOUR : - +# ------------------------------------------------------------ +# +# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR +# --- DE LA SECTION +# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION : +# ------------------------------------------------------- + + __chart1=AFFE_CHAR_THER(MODELE=__nomoth, + TEMP_IMPO=_F(GROUP_NO=l_group_ma_bord[i], + TEMP=0.0 ), + SOURCE=_F(TOUT='OUI', + SOUR=2.0 ) ) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -2 +# --- AVEC PHI = 0 SUR LE CONTOUR : +# ---------------------------------------- + + __tempe1=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + EXCIT=_F(CHARGE=__chart1, ), + SOLVEUR=_F(STOP_SINGULIER='NON',) ) + +# +# ---------------------------------------------- +# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT - +# --- - ET DES COEFFICIENTS DE CISAILLEMENT : - +# ---------------------------------------------- +# +# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR +# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE +# --- PAR UNE FONCTION EGALE A Y : +# -------------------------- + + __fnsec1=DEFI_FONCTION(NOM_PARA='X', + VALE=(0.,0.,10.,10.), + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', ) + + __fnsec0=DEFI_CONSTANTE(VALE=0.,) + +# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION +# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION : +# -------------------------------------------------- + + __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth, + TEMP_IMPO=_F(NOEUD=l_noeud[i], + TEMP=__fnsec0), + SOURCE=_F(TOUT='OUI', + SOUR=__fnsec1) ) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -Y +# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : +# ------------------------------------------------ + + __tempe2=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + EXCIT=_F(CHARGE=__chart2, ), + SOLVEUR=_F(STOP_SINGULIER='NON',) ) + +# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR +# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE +# --- PAR UNE FONCTION EGALE A Z : +# -------------------------- + + __fnsec2=DEFI_FONCTION(NOM_PARA='Y', + VALE=(0.,0.,10.,10.), + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', ) + +# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION +# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION : +# -------------------------------------------------- + + __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth, + TEMP_IMPO=_F(NOEUD=l_noeud[i], + TEMP=__fnsec0), + SOURCE=_F(TOUT='OUI', + SOUR=__fnsec2) ) + +# --- RESOLUTION DE LAPLACIEN(PHI) = -Z +# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : +# ------------------------------------------------ + + __tempe3=THER_LINEAIRE(MODELE=__nomoth, + CHAM_MATER=__chmath, + EXCIT=_F(CHARGE=__chart3, ), + SOLVEUR=_F(STOP_SINGULIER='NON',) ) + +# --- CALCUL DU RAYON DE TORSION : +# -------------------------- + +# CALCUL DU RAYON DE TORSION EXTERNE : rtext + + __tempe1=CALC_ELEM(reuse=__tempe1, + RESULTAT=__tempe1, + MODELE=__nomoth, + CHAM_MATER=__chmath, + TOUT_ORDRE='OUI', + OPTION='FLUX_ELNO_TEMP', + ) + + __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, + DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_bord[i]), + INFO=2,) + + __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', + CHEMIN=__chem, + RESULTAT=__tempe1, + NOM_CHAM='FLUX_ELNO_TEMP', + TRAC_NOR='OUI', + NOM_CMP=('FLUX','FLUY'), + OPERATION='MOYENNE')) + + __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 : + l_group_ma_inte=[args['GROUP_MA_INTE'],] + else: + l_group_ma_inte=args['GROUP_MA_INTE'] + for j in range(0,len(l_group_ma_inte)): + __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, + DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[j]), + INFO=2,) + __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', + CHEMIN=__chem, + RESULTAT=__tempe1, + NOM_CHAM='FLUX_ELNO_TEMP', + TRAC_NOR='OUI', + NOM_CMP=('FLUX','FLUY'), + 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, + LAPL_PHI=__tempe1, + RT=__rt, + GROUP_MA=l_group_ma[i], + OPTION='CARA_TORSION' ), ) + +# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU +# --- CENTRE DE CISAILLEMENT/TORSION : +# ------------------------------ + + __catp2=POST_ELEM(MODELE=__nomoth, + CHAM_MATER=__chmath, + CARA_POUTRE=_F(CARA_GEOM=__catp1, + LAPL_PHI_Y=__tempe2, + LAPL_PHI_Z=__tempe3, + GROUP_MA=l_group_ma[i], + LONGUEUR=args['LONGUEUR'], + MATERIAU=args['MATERIAU'], + LIAISON =args['LIAISON'], + OPTION='CARA_CISAILLEMENT' ), ) + IMPR_TABLE(TABLE=__catp2) + dprod = __catp2.EXTR_TABLE().dict_CREA_TABLE() + nomres = CREA_TABLE(**dprod) + if not GROUP_MA_BORD : + nomres=POST_ELEM(MODELE=__nomamo, + CHAM_MATER=__nomama, + CARA_GEOM=mfact ) + IMPR_TABLE(TABLE=nomres) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA9/Macro/macr_ecla_pg_ops.py new file mode 100644 index 00000000..8bfada76 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_ecla_pg_ops.py @@ -0,0 +1,71 @@ +#@ MODIF macr_ecla_pg_ops Macro DATE 09/11/2004 AUTEUR VABHHTS J.PELLET +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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_ecla_pg_ops(self,RESULTAT,MAILLAGE,RESU_INIT,MODELE_INIT, + TOUT, GROUP_MA, MAILLE, + SHRINK, TAILLE_MIN, + NOM_CHAM, TOUT_ORDRE, NUME_ORDRE, LIST_ORDRE, INST, LIST_INST, PRECISION, CRITERE, + **args): + """ + Ecriture de la macro macr_ecla_pg + """ + import os, string + from Accas import _F + from Noyau.N_utils import AsType + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') + CREA_RESU =self.get_cmd('CREA_RESU') + + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + + # Appel à CREA_MAILLAGE : + motscles={} + if TOUT : motscles['TOUT'] =TOUT + if GROUP_MA : motscles['GROUP_MA'] =GROUP_MA + if MAILLE : motscles['MAILLE'] =MAILLE + + self.DeclareOut('ma2',MAILLAGE) + ma2=CREA_MAILLAGE(ECLA_PG=_F( MODELE = MODELE_INIT, NOM_CHAM=NOM_CHAM, + SHRINK = SHRINK, TAILLE_MIN=TAILLE_MIN, **motscles )); + + + + # Appel à CREA_RESU : + typ2=AsType(RESU_INIT).__name__ + if TOUT_ORDRE : motscles['TOUT_ORDRE'] =TOUT_ORDRE + if NUME_ORDRE : motscles['NUME_ORDRE'] =NUME_ORDRE + if LIST_ORDRE : motscles['LIST_ORDRE'] =LIST_ORDRE + if LIST_INST : motscles['LIST_INST'] =LIST_INST + if INST : motscles['INST'] =INST + if TOUT_ORDRE : motscles['TOUT_ORDRE'] =TOUT_ORDRE + + self.DeclareOut('resu2',RESULTAT) + resu2=CREA_RESU( OPERATION='ECLA_PG', TYPE_RESU=string.upper(typ2), + ECLA_PG=_F( MODELE_INIT= MODELE_INIT, RESU_INIT=RESU_INIT, NOM_CHAM=NOM_CHAM, + MAILLAGE= ma2, **motscles )); + return ier +############################################################################################ + diff --git a/Aster/Cata/cataSTA9/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA9/Macro/macr_fiab_impr_ops.py new file mode 100644 index 00000000..08ac8d10 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_fiab_impr_ops.py @@ -0,0 +1,110 @@ +#@ MODIF macr_fiab_impr_ops Macro DATE 24/01/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 GNICOLAS G.NICOLAS +# +def macr_fiab_impr_ops(self, INFO, + TABLE_CIBLE, NOM_PARA_CIBLE, GRADIENTS, **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. +# + """ Macro-commande réalisant l'impression des valeurs pour le logiciel de fiabilite. """ +# +# On charge les modules nécessaires + from Accas import _F +# +#____________________________________________________________________ +# +# 1. Préalables +#____________________________________________________________________ +# + erreur = 0 +# +# 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 +# + DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") + IMPR_TABLE = self.get_cmd("IMPR_TABLE") +# +# 1.3. ==> Des constantes +# Atention : le numéro d'unité utilisé ici et celui +# utlisé dans le python d'échange lance_aster_5 +# doivent correspondre. +# + Unite_Fichier_ASTER_vers_FIABILITE = 91 + Nom_Symbolique_Fichier_ASTER_vers_FIABILITE = "ASTER_vers_FIABILITE" + FORMAT_R="1PE17.10" +#____________________________________________________________________ +# +# 2. Définition d'un fichier d'échange +#____________________________________________________________________ +# + DEFI_FICHIER ( ACTION= "ASSOCIER", +# FICHIER = Nom_Symbolique_Fichier_ASTER_vers_FIABILITE, + UNITE = Unite_Fichier_ASTER_vers_FIABILITE, + TYPE = "ASCII", + INFO = INFO ) +#____________________________________________________________________ +# +# 4. Ecriture de la valeur cible +#____________________________________________________________________ +# + IMPR_TABLE ( TABLE = TABLE_CIBLE, + NOM_PARA = NOM_PARA_CIBLE, + UNITE = Unite_Fichier_ASTER_vers_FIABILITE, + FORMAT_R = FORMAT_R, + INFO = INFO ) +#____________________________________________________________________ +# +# 5. Ecritures des gradients +#____________________________________________________________________ +# + if GRADIENTS is not None : +# + for val in GRADIENTS : +# + IMPR_TABLE ( TABLE = val["TABLE"], + SENSIBILITE = val["PARA_SENSI"], + NOM_PARA = (val["NOM_PARA"]), + UNITE = Unite_Fichier_ASTER_vers_FIABILITE, + FORMAT_R = FORMAT_R, + INFO = INFO ) +#____________________________________________________________________ +# +# 6. Libération du fichier d'échange +#____________________________________________________________________ +# + DEFI_FICHIER ( ACTION= "LIBERER", + UNITE = Unite_Fichier_ASTER_vers_FIABILITE, + INFO = INFO ) +# +#-------------------------------------------------------------------- +# 7. C'est fini ! +#-------------------------------------------------------------------- +# + return erreur diff --git a/Aster/Cata/cataSTA9/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA9/Macro/macr_fiabilite_ops.py new file mode 100644 index 00000000..fae50474 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_fiabilite_ops.py @@ -0,0 +1,359 @@ +#@ MODIF macr_fiabilite_ops Macro DATE 27/11/2006 AUTEUR GNICOLAS G.NICOLAS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 GNICOLAS G.NICOLAS +# +def macr_fiabilite_ops(self, INFO, + LOGICIEL, VERSION, + UNITE_ESCL, MESS_ASTER, + SEUIL, SEUIL_TYPE, + VARIABLE, + **args ) : +# +# args est le dictionnaire des arguments optionnels +# 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. +### print args +### print args.keys() +### if len (args.keys())>0 : print args.keys()[0] +# + """ Macro-commande réalisant le pilotage du logiciel de fiabilite. """ +# +# On charge les modules nécessaires + from Accas import _F + from Macro import fiabilite_mefisto + import aster + import os + import string + import sys + import Numeric +# +#____________________________________________________________________ +# +# 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") + DEFI_LIST_REEL = self.get_cmd("DEFI_LIST_REEL") +# +# 1.3 ==> Le nom du programme de fiabilite à lancer +# + repertoire_outils = aster.repout() + fiabilite = repertoire_outils + "fiabilite" +# +# 1.4 ==> Initialisations +# + erreur = 0 + erreur_partiel = [0] + Rep_Calc_ASTER = os.getcwd() + Nom_Exec_ASTER = sys.executable +# + messages_erreur = { 0 : "Tout va bien", + 1 : "Impossible de créer le répertoire de travail pour le logiciel de fiabilité.", + 2 : "Probleme d'ouverture du fichier.", + 10 : "Erreur dans le choix du logiciel de fiabilité.", + 11 : "Erreur dans la création des données pour le logiciel de fiabilité.", + 100 : "Erreur." } +# + while not erreur : +# +#____________________________________________________________________ +# +# 2. Répertoires et fichiers +#____________________________________________________________________ +# +# 2.1. ==> Création du répertoire pour l'exécution du logiciel de fiabilité +# + Nom_Rep_local = "tmp_fiabilite" + Rep_Calc_LOGICIEL_local = os.path.join(".", Nom_Rep_local) + Rep_Calc_LOGICIEL_global = os.path.join(Rep_Calc_ASTER, Nom_Rep_local) +# + try : + os.mkdir(Rep_Calc_LOGICIEL_global) + 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 fiabilité : "+Rep_Calc_LOGICIEL_global) + erreur = erreur + 1 + break +# +# 2.2. ==> On définit un fichier pour les résultats du calcul de fiabilité +# + FIC_RESU_FIABILITE = os.path.join(Rep_Calc_LOGICIEL_global, "resu_fiabilite") +# +# 2.3. ==> On crée un fichier annexe pour transmettre des données à la procédure +# de lancement des calculs ASTER par le LOGICIEL. +# Ce fichier est créé dans le répertoire d'exécution du logiciel de fiabilité. +# On fait ainsi car les arguments passés ont du mal à transiter via l'exécutable. +# On stocke : +# 1. Le niveau d'information +# 2. L'unité logique associée au jeu de commandes déterministes +# 3. La gestion des sorties ASTER +# 4. Le nom de l'exécutable ASTER +# 5. Le type de seuil du problème (maximum ou minimum) +# + fic_Info_ASTER = os.path.join(Rep_Calc_LOGICIEL_global,"InfoExecASTER") + try : + f_execAster = open(fic_Info_ASTER, "w") + except os.error,erreur_partiel : + self.cr.warn("Fichier : "+fic_Info_ASTER) + self.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) + erreur = 2 + break +# + f_execAster.write(str(INFO)+"\n") + f_execAster.write(str(UNITE_ESCL)+"\n") + f_execAster.write(str(MESS_ASTER)+"\n") + f_execAster.write(str(Nom_Exec_ASTER)+"\n") + f_execAster.write(str(SEUIL_TYPE)) + f_execAster.close() + fichier = open (fic_Info_ASTER,"r") +# + if INFO >= 2 : + print "\nContenu du fichier " + fic_Info_ASTER," :" + les_lignes = fichier.readlines() + fichier.close() + print les_lignes, "\n" +# +#____________________________________________________________________ +# +# 3. Les variables par defaut +#____________________________________________________________________ +# +# 3.1. ==> Dictionnaire des valeurs physiques et liées à la loi +# + valeurs_lois = { } +# + for la_variable in VARIABLE : +# + v_moy_physique = None + v_moy_loi = None + v_min_loi = None + v_max_loi = None + sigma_loi = None +# +# 3.1.1. ==> loi uniforme : transfert des min et max +# on définit une moyennne comme étant la médiane des extremes. +# + if la_variable["LOI"] == "UNIFORME" : + v_moy_physique = 0.5 * ( la_variable["VALE_MIN"] + la_variable["VALE_MAX"] ) + v_min_loi = la_variable["VALE_MIN"] + v_max_loi = la_variable["VALE_MAX"] +# +# 3.1.2. ==> loi normale : transfert des moyennne et écart-type. +# + elif la_variable["LOI"] == "NORMALE" : + v_moy_loi = la_variable["VALE_MOY"] + v_moy_physique = v_moy_loi + sigma_loi = la_variable["ECART_TYPE"] +# +# 3.1.3. ==> loi lognormale : identité du min, conversion pour le reste +# + elif la_variable["LOI"] == "LOGNORMALE" : + v_min_loi = la_variable["VALE_MIN"] + if la_variable["VALE_MOY_PHY"] is None : + v_moy_loi = la_variable["VALE_MOY"] + sigma_loi = la_variable["ECART_TYPE"] + aux = Numeric.exp(0.5*sigma_loi*sigma_loi+v_moy_loi) + v_moy_physique = v_min_loi + aux + else : + v_moy_physique = la_variable["VALE_MOY_PHY"] + aux = la_variable["ECART_TYPE_PHY"]/(la_variable["VALE_MOY_PHY"]-la_variable["VALE_MIN"]) + aux1 = 1. + aux*aux + aux2 = Numeric.sqrt(aux1) + v_moy_loi = Numeric.log((la_variable["VALE_MOY_PHY"]-la_variable["VALE_MIN"])/aux2) + aux2 = Numeric.log(aux1) + sigma_loi = Numeric.sqrt(aux2) +# +# 3.1.4. ==> loi normale tronquée : transfert des moyenne, mini/maxi et écart-type +# on définit une moyennne comme étant la médiane des extremes. +# + else : + v_moy_loi = la_variable["VALE_MOY"] + v_min_loi = la_variable["VALE_MIN"] + v_max_loi = la_variable["VALE_MAX"] + sigma_loi = la_variable["ECART_TYPE"] + v_moy_physique = 0.5 * ( la_variable["VALE_MIN"] + la_variable["VALE_MAX"] ) +# + dico = { } + dico["v_moy_physique"] = v_moy_physique + dico["v_moy_loi"] = v_moy_loi + dico["v_min_loi"] = v_min_loi + dico["v_max_loi"] = v_max_loi + dico["sigma_loi"] = sigma_loi + valeurs_lois[la_variable] = dico +# +#____________________________________________________________________ +# +# 4. Création des fichiers de donnees pour le logiciel de fiabilite +#____________________________________________________________________ +# + if ( LOGICIEL == "MEFISTO" ) : +# +# 4.1. ==> MEFISTO +# + erreur = fiabilite_mefisto.fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, + INFO, VERSION, + SEUIL, SEUIL_TYPE, + VARIABLE, + valeurs_lois, + **args ) +# +# 4.2. ==> Erreur si autre logiciel +# + else : +# + self.cr.warn("Logiciel de fiabilité : "+LOGICIEL) + erreur = 10 +# +# 4.3. ==> Arret en cas d'erreur +# + if erreur : + break +# +#____________________________________________________________________ +# +# 5. Ecriture de la commande d"exécution du logiciel de fiabilité +# +# Remarque : dans la donnée de la version du logiciel de fiabilité, 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 = string.replace(VERSION, "_", ".") + VERSION = string.replace(VERSION, "N", "n") +# + EXEC_LOGICIEL ( ARGUMENT = (Rep_Calc_LOGICIEL_global, # nom du repertoire + LOGICIEL, # nom du logiciel de fiabilité + VERSION, # version du logiciel de fiabilité + FIC_RESU_FIABILITE, # fichier des résultats du logiciel de fiabilité + ), + LOGICIEL = fiabilite + ) +# +#-------------------------------------------------------------------- +# 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]) +# +# 6.2. ==> Si tout va bien, on crée une liste de réels pour le retour. +# Si le fichier n'a pas été rempli, on met une valeur nulle unique. +# + if os.path.isfile(FIC_RESU_FIABILITE) : + liste_reel = [] + fic = open(FIC_RESU_FIABILITE, "r") + tout = fic.readlines() + fic.close + for ligne in tout: + liste_reel.append(float(ligne[:-1])) + else : + liste_reel = [0.] +# + self.DeclareOut("nomres", self.sd) + nomres = DEFI_LIST_REEL( VALE = liste_reel , INFO = 1 ) +# +# 6.3. ==> Menage du répertoire créé pour le calcul fiabiliste +# + liste = os.listdir(Rep_Calc_LOGICIEL_global) +## print liste +# + for nomfic in liste : + fic_total = os.path.join(Rep_Calc_LOGICIEL_global, nomfic) +# + if os.path.isdir(fic_total) : + liste_bis = os.listdir(fic_total) + for nomfic_bis in liste_bis : + fic_total_bis = os.path.join(fic_total, nomfic_bis) + if os.path.islink(fic_total_bis) : + os.unlink (fic_total_bis) + else : + os.chmod (fic_total_bis, 0755) + os.remove (fic_total_bis) + os.rmdir (fic_total) +# + elif os.path.isfile(fic_total) : + os.chmod (fic_total, 0755) + os.remove (fic_total) +# + os.rmdir (Rep_Calc_LOGICIEL_global) +# + return +# +########################## Fin de la fonction################################## +# +########################## Auto-test################################## +# +if __name__ == "__main__" : +# + import os + import sys + import tempfile +# + Rep_Calc_LOGICIEL_global = tempfile.mktemp() + os.mkdir(Rep_Calc_LOGICIEL_global) +# + classe = None + INFO = 2 + LOGICIEL = "MEFISTO" + VERSION = "V3_2" + UNITE_ESCL = 38 + MESS_ASTER = "DERNIER" + SEUIL = 1789. + SEUIL_TYPE = "MAXIMUM" + VARIABLE = [] + args = {} +# + lr8 = macr_fiabilite_ops(classe, INFO, + LOGICIEL, VERSION, + UNITE_ESCL, MESS_ASTER, + SEUIL, SEUIL_TYPE, + VARIABLE, + **args ) +### print "lr8 = ", lr8 + Liste = os.listdir(Rep_Calc_LOGICIEL_global) +# + for nomfic in Liste : + fic_total = os.path.join(Rep_Calc_LOGICIEL_global, nomfic) + os.chmod (fic_total, 0755) + os.remove (fic_total) + os.rmdir (Rep_Calc_LOGICIEL_global) +# + sys.exit("blabla") diff --git a/Aster/Cata/cataSTA9/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA9/Macro/macr_lign_coupe_ops.py new file mode 100644 index 00000000..3305c818 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_lign_coupe_ops.py @@ -0,0 +1,576 @@ +#@ MODIF macr_lign_coupe_ops Macro DATE 05/03/2007 AUTEUR GALENNE E.GALENNE +# -*- 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. +# +# 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. +# ====================================================================== + +######################################################################## +# script PYTHON de creation du résultat local + +def crea_resu_local(dime,MODI_REPERE,NOM_CHAM,m,resin,mail,nomgrma): + + from Utilitai.Utmess import UTMESS + from math import pi,sqrt,atan2,asin + import os,string,types + import aster + from Accas import _F + + epsi=0.00000001 + + if NOM_CHAM == 'DEPL': + if dime == 2: + LCMP=['DX','DY'] + TYPE_CHAM='VECT_2D' + elif dime ==3 : + LCMP=['DX','DY','DZ'] + TYPE_CHAM='VECT_3D' + elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'): + if dime == 2: + LCMP=['SIXX','SIYY','SIZZ','SIXY'] + TYPE_CHAM='TENS_2D' + elif dime ==3 : + LCMP=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] + TYPE_CHAM='TENS_3D' + + + if m['TYPE']=='SEGMENT': + # --- determination des angles nautiques + cx1=m['COOR_EXTR'][0]-m['COOR_ORIG'][0] + cx2=m['COOR_EXTR'][1]-m['COOR_ORIG'][1] + cx3=0. + if dime == 3: + cx3=m['COOR_EXTR'][2]-m['COOR_ORIG'][2] + nvx=sqrt(cx1**2+cx2**2+cx3**2) + if abs(nvx) < epsi: + UTMESS('F', "MACR_LIGN_COUPE", "definition incorrecte de la ligne de coupe") + cx1=cx1/nvx + cx2=cx2/nvx + cx3=cx3/nvx + cy1=m['VECT_Y'][0] + cy2=m['VECT_Y'][1] + cy3=0. + if dime == 3: + cy3=m['VECT_Y'][2] + nvy=sqrt(cy1**2+cy2**2+cy3**2) + if abs(nvy) < epsi: + UTMESS('F', "MACR_LIGN_COUPE", "valeurs incorrectes pour VECT_Y") + cy1=cy1/nvy + cy2=cy2/nvy + cy3=cy3/nvy + if ((abs(cx1-cy1) epsi : + cz1=cx2*cy3-cx3*cy2 + cz2=cx3*cy1-cx1*cy3 + cz3=cx1*cy2-cx2*cy1 + nvz=sqrt(cz1**2+cz2**2+cz3**2) + cz1=cz1/nvz + cz2=cz2/nvz + cz3=cz3/nvz + cy1=cz2*cx3-cz3*cx2 + cy2=cz3*cx1-cz1*cx3 + cy3=cz1*cx2-cz2*cx1 + nvy=sqrt(cy1**2+cy2**2+cy3**2) + cy1=cy1/nvy + cy2=cy2/nvy + cy3=cy3/nvy + UTMESS('A','MACR_LIGN_COUPE','LE VECTEUR Y N EST PAS ORTHOGONAL A LA LIGNE DE COUPE' + +'LE VECTEUR Y A ETE ORTHONORMALISE POUR VOUS') + UTMESS('A','MACR_LIGN_COUPE','VECT_Y=('+str(cy1)+','+str(cy2)+','+str(cy3)+')') + else: + cz1=cx2*cy3-cx3*cy2 + cz2=cx3*cy1-cx1*cy3 + cz3=cx1*cy2-cx2*cy1 + beta=0. + gamma=0. + if dime ==2: + alpha = atan2(cx2,cx1) + else: + if cx1**2 + cx2**2 > epsi : + alpha=atan2(cx2,cx1) + beta=asin(cx3) + gamma=atan2(cy3,cz3) + else: +# alpha=atan2(cy1,cz1) + alpha=atan2(-cy1,cy2) + beta=asin(cx3) + gamma=0. + alpha=alpha*180/pi + beta=beta*180/pi + gamma=gamma*180/pi + + motscles={} + motscles['MODI_CHAM']=[] + motscles['DEFI_REPERE']=[] + motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) + ANGL_NAUT=[] + ANGL_NAUT.append(alpha) + if dime ==3: + ANGL_NAUT.append(beta) + ANGL_NAUT.append(gamma) + motscles['DEFI_REPERE'].append(_F(REPERE='UTILISATEUR',ANGL_NAUT=ANGL_NAUT),) + __remodr=MODI_REPERE(RESULTAT=resin,**motscles) + + + if m['TYPE']=='ARC': + motscles={} + motscles['MODI_CHAM']=[] + motscles['DEFI_REPERE']=[] + motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) + ORIGINE=[] + ORIGINE.append(m['CENTRE'][0]) + ORIGINE.append(m['CENTRE'][1]) + if dime ==3: + vy = m['VECT_Y'] + dn = m['DNOR'] + if vy != dn : + message = 'AVEC TYPE=ARC, IL FAUT OBLIGATOIREMENT QUE VECT_Y SOIT EGAL A DNOR \n POUR EXPRIMER LE RESULTAT DANS LE REPERE LOCAL. \n' + message = message +' ON POURSUIT LE CALCUL EN PRENANT VECT_Y = DNOR.' + UTMESS('A','MACR_LIGN_COUPE',message) + ORIGINE.append(m['CENTRE'][2]) + AXE_Z=[] + AXE_Z.append(m['DNOR'][0]) + AXE_Z.append(m['DNOR'][1]) + AXE_Z.append(m['DNOR'][2]) + motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=ORIGINE,AXE_Z=AXE_Z),) + elif dime ==2: + motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=ORIGINE,),) + __remodr=MODI_REPERE(RESULTAT=resin,**motscles) + + return __remodr + +######################################################################## +# script PYTHON de creation des noeuds d'une ligne de coupe 'arc' + +def crea_noeu_lig_coup(dimension,pt1,pt2,anglj,dnor): + from Utilitai.Utmess import UTMESS + from math import pi,sin,cos,sqrt + + a=pt1[0]-pt2[0] + b=pt1[1]-pt2[1] + eps=0.00000001 + anglr=anglj*pi/180. + if dimension==2: + r=sqrt(a**2+b**2) + if abs(r)0: + coltab=[] + val = dictab['ABSC_CURV'].values()['ABSC_CURV'] + nbi = len(val) / nbno + nba = len(angles) + tmp =[] + for k in range(nba) : + for j in range(nbi) : + for i in range(len(angles[k])) : + tmp.append(angles[k][i]) + dictab['ANGLE']=tmp + +### + del dictab['NOEUD'] + del dictab['RESU'] + dprod = dictab.dict_CREA_TABLE() + + nomres=CREA_TABLE(**dprod) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA9/Macro/macr_recal_ops.py new file mode 100644 index 00000000..bd7438bf --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_recal_ops.py @@ -0,0 +1,1031 @@ +#@ MODIF macr_recal_ops Macro DATE 26/03/2007 AUTEUR ASSIRE A.ASSIRE +# -*- 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. +# +# 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 + +import os, sys, copy, math +from glob import glob +import Numeric + +debug = False + +INFO = 1 +NOMPRO = 'MACR_RECAL' + +fichier_export = None +mode_python = False +type_fonctionnelle = 'float' + +# -------------------------------------------------------------------------------------------------- +def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + if INFO>0 or code=='F': print fmt % (code,sprg,texte) + if code=='F': + sys.exit() + + +# -------------------------------------------------------------------------------------------------- +def Ecriture_Fonctionnelle(output_file, type_fonctionnelle, fonctionnelle): + + try: os.remove(output_file) + except: pass + + f=open(output_file, 'w') + if type_fonctionnelle == 'vector': + fonctionnelle = str(fonctionnelle.tolist()) + fonctionnelle = fonctionnelle.replace('[','') + fonctionnelle = fonctionnelle.replace(']','') + f.write(str(fonctionnelle)) + f.close() + + +# -------------------------------------------------------------------------------------------------- +def Ecriture_Derivees(output_file, derivees): + + try: os.remove(output_file) + except: pass + + # On sort si il n'y a pas de derivees a imprimer + if not derivees: return + + txt = '' + a = derivees + for l in range(len(a[:,0])): + ligne = [] + for c in range(len(a[0,:])): + ligne.append( str(a[l,c]) ) + txt += ','.join(ligne) + '\n' + + f=open(output_file, 'w') + f.write(txt) + f.close() + + +# -------------------------------------------------------------------------------------------------- +def Sortie(LIST_NOM_PARA, LIST_PARA, val, CALCUL_ASTER, Mess): + """ Sortie de la macro, on renvoie les parametres obtenus """ + + import Cata, aster, Macro + from Cata.cata import DEFI_LIST_REEL + from Accas import _F + from Utilitai.Utmess import UTMESS + from Macro import reca_message + from Macro import reca_algo + from Macro import reca_interp + from Macro import reca_utilitaires + from Macro import reca_calcul_aster + from Macro.reca_controles import gestion + + if CALCUL_ASTER.METHODE != 'EXTERNE': + txt = "Nombre d'evaluation de la fonction : " + str(CALCUL_ASTER.evaluation_fonction) + UTMESS('I','MACR_RECAL',txt) + Mess.ecrire("\n"+txt) + + LIST_NOM_PARA_ALPHA = [ para[0] for para in LIST_PARA ] + LIST_NOM_PARA_ALPHA.sort() + lival=[] + for i in LIST_NOM_PARA: + lival.append( val[ LIST_NOM_PARA_ALPHA.index(i) ] ) + nomres = DEFI_LIST_REEL(VALE=lival) + + return nomres + + +# -------------------------------------------------------------------------------------------------- +def macr_recal_externe( RESU_EXP, LIST_PARA, RESU_CALC, UNITE_ESCL=3, POIDS=None, LIST_DERIV=None, + ITER_MAXI=10, ITER_FONC_MAXI=100, RESI_GLOB_RELA=1.e-6, UNITE_RESU=91, PARA_DIFF_FINI=0.001, + GRAPHIQUE=None, SUIVI_ESCLAVE='NON', METHODE='EXTERNE', INFO=1, **args ): + """ + Entree du mode EXTERNE (ici macr_recal_ops.py est traite comme un fichier Python et non pas par le superviseur Aster) + """ + + METHODE='EXTERNE' + + # Mot-cle GRAPHIQUE + if GRAPHIQUE: + GRAPHIQUE0 = {'INTERACTIF': 'NON', 'AFFICHAGE': 'TOUTE_ITERATION', 'UNITE': 90, 'FORMAT': 'XMGRACE'} + for k in GRAPHIQUE0.keys(): + if not GRAPHIQUE.has_key(k): GRAPHIQUE[k] = GRAPHIQUE0[k] + + if optparse_prefix_graph: args['prefix_graph'] = opts.prefix_graph + else: args['prefix_graph'] = os.getcwd() + os.sep + 'graph' + + # Les parametres passes sur la ligne de commande surchargent les parametres de la commande MACR_RECAL + if optparse_INFO: INFO=opts.INFO + if optparse_follow_output: + if opts.follow_output == True: SUIVI_ESCLAVE='OUI' + else: SUIVI_ESCLAVE='NON' + + if optparse_objective: + if type_fonctionnelle=='vector': args['FONCTIONNELLE']='VECTORIELLE' + else: args['FONCTIONNELLE']='SCALAIRE' + + if optparse_gradient: + if opts.gradient=='normal': args['GRADIENT']='NORMAL' + elif opts.gradient=='adim': args['GRADIENT']='ADIMENSIONNE' + else: args['GRADIENT']='NON_CALCULE' + + + fonctionnelle, gradient = macr_recal(UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC, + ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA, UNITE_RESU, PARA_DIFF_FINI, + GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args ) + + return fonctionnelle, gradient + + +# -------------------------------------------------------------------------------------------------- +def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC, + ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, + GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args ): + """Macro commande realisant le recalage de modeles Aster""" + # Initialisation du compteur d'erreurs + ier=0 + + import aster + import Macro + from Cata import cata + from Cata.cata import DEFI_LIST_REEL, CREA_TABLE, TEST_TABLE + from Cata.cata import OPER, MACRO + + from Macro import reca_message + from Macro import reca_algo + from Macro import reca_interp + from Macro import reca_utilitaires + from Macro import reca_calcul_aster + from Macro.reca_controles import gestion + from Utilitai.Utmess import UTMESS + + # Gestion des Exceptions + prev_onFatalError = aster.onFatalError() + aster.onFatalError('EXCEPTION') + + # La macro compte pour 1 dans l'execution des commandes + self.set_icmd(1) + + # Concept en sortir + self.DeclareOut('nomres',self.sd) + + # Declaration de toutes les commandes Aster + for k,v in cata.__dict__.items() : + if isinstance(v, (OPER, MACRO)): + 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, + ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, + GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args) + + aster.onFatalError(prev_onFatalError) + return + + +# -------------------------------------------------------------------------------------------------- +def macr_recal(UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC, + ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, + GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args ): + + + # Import d'as_profil + if os.environ.has_key('ASTER_ROOT'): + sys.path.append(os.path.join(os.environ['ASTER_ROOT'], 'ASTK', 'ASTK_SERV', 'lib')) + else: + try: sys.path.append(os.path.join(aster.repout, '..', 'ASTK', 'ASTK_SERV', 'lib')) + except: pass + try: + from as_profil import ASTER_PROFIL + except: + UTMESS('F','MACR_RECAL',"Impossible d'importer le module as_profil ! Vérifier la variable d'environnement ASTER_ROOT ou mettez a jour ASTK.") + + import Macro, Utilitai + from Macro import reca_message + from Macro import reca_algo + from Macro import reca_interp + from Macro import reca_utilitaires + from Macro import reca_calcul_aster + from Macro.reca_controles import gestion + if( METHODE != 'EXTERNE'): + from Utilitai.optimize import fmin, line_search, line_search_BFGS, approx_fprime, approx_fhess_p, fminBFGS, fminNCG + + if( METHODE == 'EXTERNE'): + pass + else: + if GRAPHIQUE: + dGRAPHIQUE=GRAPHIQUE[0].cree_dict_valeurs(GRAPHIQUE[0].mc_liste) + if dGRAPHIQUE.has_key('FORMAT') and dGRAPHIQUE['FORMAT'] == 'GNUPLOT': + # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE + try: + import Gnuplot + except ImportError: + GRAPHIQUE == None + if INFO>=1: UTMESS('A','MACR_RECAL',"Le logiciel Gnuplot ou le module python Gnuplot.py n'est pas disponible. On desactive l'affichage des courbes par Gnuplot.") + + + #_____________________________________________ + # + # VERIFICATION PREALABLE SUR MEM_ASTER + #_____________________________________________ + + # Lecture du fichier .export + list_export = glob('*.export') + if len(list_export) == 0: + UTMESS('F','MACR_RECAL',"Probleme : il n'y a pas de fichier .export dans le repertoire de travail!") + elif len(list_export) >1: + UTMESS('F','MACR_RECAL',"Probleme : il y a plus d'un fichier .export dans le repertoire de travail!") + + prof = ASTER_PROFIL(list_export[0]) + + mem_aster = prof['mem_aster'][0] + memjeveux = prof.args.get('memjeveux') + + if mem_aster in ('', '100'): + if INFO>=1: UTMESS('A','MACR_RECAL',"Attention : il faut specifier une valeur pour 'mem_aster' (menu Option de ASTK) " \ + "pour limiter la memoire allouee au calcul maitre.") + mem_aster = '0' + if not memjeveux: + UTMESS('F','MACR_RECAL',"Probleme : aucune valeur pour le parametre 'memjeveux'. Verifier le .export") + + try: + if mem_aster == '0': + memjeveux_esclave = float(memjeveux) + else: + memjeveux_esclave = float(memjeveux) / float(mem_aster) * 100. - float(memjeveux) + except: + UTMESS('F','MACR_RECAL',"Probleme : verifier les valeurs des parametres 'mem_aster' et 'memjeveux'") + + if INFO>=1: UTMESS('I','MACR_RECAL',"Information : les calculs esclaves utiliseront : %.1f Mega Mots." % memjeveux_esclave) + + + #_____________________________________________ + # + # INITIALISATIONS + #_____________________________________________ + + # Liste des parametres utilisant la sensibilité + if not LIST_DERIV: LIST_DERIV = {} + LIST_SENSI = LIST_DERIV.keys() + + # Stocke l'ordre initial des parametres pour restituer dans le bon ordre les valeurs en sortie de la macro + LIST_NOM_PARA = [ para[0] for para in LIST_PARA ] + + # On classe les parametres + LIST_SENSI.sort() + LIST_PARA.sort() + + # Defini si on utilise le mot-clé SENSIBILITE pour IMPR_TABLE ou non + if len(LIST_SENSI) >0: table_sensibilite = True + else: table_sensibilite = False + + # Defini si on ajoute l'echo des calculs esclaves dans le mess du calcul maitre + follow_output = False + if SUIVI_ESCLAVE and SUIVI_ESCLAVE=='OUI': follow_output = True +# if( METHODE == 'EXTERNE') and mode_python: follow_output = opts.follow_output + + # Pour les algorithmes d'optimize, on a des limitations + if METHODE in ['FMIN', 'FMINBFGS', 'FMINNCG']: + # On ne peut tracer qu'a la derniere iteration + if GRAPHIQUE: + if GRAPHIQUE['AFFICHAGE']=='TOUTE_ITERATION': UTMESS('I','MACR_RECAL',"Pour l'algorithme " + METHODE + " on ne peut tracer qu'a la derniere iteration") + # Les bornes ne sont pas gerees + UTMESS('I','MACR_RECAL',"Pour l'algorithme " + METHODE + " on ne tient pas compte des bornes sur les parametres.") + + #_______________________________________________ + # + # GESTION DE L'OPTION FACULTATIVE POUR LES POIDS + #_______________________________________________ + if( POIDS == None): + POIDS=Numeric.ones(len(RESU_EXP)) + + + #_____________________________________________ + # + # GESTION DES ERREURS DE SYNTAXE + #_____________________________________________ + texte_erreur, texte_alarme = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU,METHODE) + if (texte_erreur != ""): + UTMESS('F', "MACR_RECAL", texte_erreur) + if (texte_alarme != ""): + UTMESS('A', "MACR_RECAL", texte_alarme) + + + #_____________________________________________ + # + # INITIALISATIONS + #_____________________________________________ + + if( METHODE != 'EXTERNE'): + iter = 0 + restant,temps_iter=0.,0. + restant,temps_iter,err=reca_utilitaires.temps_CPU(restant,temps_iter) + + para,val,borne_inf,borne_sup = reca_utilitaires.transforme_list_Num(LIST_PARA,RESU_EXP) + + # Pour l'algorithme externe, les valeurs sont celles lues dans le fichier input.txt + if( METHODE == 'EXTERNE') and mode_python: val = val_externe + + val_init = copy.copy(val) + + # OBJET "PARAMETRES GLOBAUX" + PARAMETRES = reca_calcul_aster.PARAMETRES( + METHODE=METHODE, + UNITE_RESU=UNITE_RESU, + INFO=INFO, + fich_output='./REPE_OUT/output_esclave.txt', + mode_include=False, + follow_output=follow_output, + table_sensibilite=table_sensibilite, + memjeveux_esclave=memjeveux_esclave, + PARA_DIFF_FINI=PARA_DIFF_FINI, + ITER_MAXI=ITER_MAXI, + ITER_FONC_MAXI=ITER_FONC_MAXI, + ) + + if( METHODE == 'EXTERNE'): + PARAMETRES.fich_output = './tmp_macr_recal/output_esclave.txt' + type_fonctionnelle = 'float' + if args.has_key('FONCTIONNELLE') and args['FONCTIONNELLE'] == 'VECTORIELLE': + PARAMETRES.vector_output = True + type_fonctionnelle = 'vector' + + # On utilise le critere en erreur plutot que normalise + elif METHODE in ['FMIN', 'FMINBFGS', 'FMINNCG']: PARAMETRES.error_output = True + + # OBJET "CALCUL" + CALCUL_ASTER = reca_calcul_aster.CALCUL_ASTER(PARAMETRES, UL=UNITE_ESCL, para=para, reponses=RESU_CALC, LIST_SENSI=LIST_SENSI, LIST_DERIV=LIST_DERIV) + + # Instances des classes pour le calcul de l'erreur et le dimensionnemnt/adim + Simul = reca_interp.Sim_exp(RESU_EXP,POIDS) + Dim = reca_algo.Dimension(copy.copy(val_init),para) + + CALCUL_ASTER.Simul = Simul + CALCUL_ASTER.Dim = Dim + CALCUL_ASTER.reca_algo = reca_algo + + if (GRAPHIQUE): + CALCUL_ASTER.UNITE_GRAPHIQUE = GRAPHIQUE['UNITE'] + + + # Instance de la classe gérant l'affichage des resultats du calcul de l'optimisation + Mess = reca_message.Message(para,RESU_EXP,copy.copy(val_init),UNITE_RESU) + + if( METHODE != 'EXTERNE'): + Mess.initialise() + txt = "Lancement de l'optimisation avec la methode : " + METHODE + if INFO>=1: UTMESS('I','MACR_RECAL',txt) + Mess.ecrire(txt) + + + + #------------------------------------------------------------------------------- + # Methode EXTERNE (en fait juste une evaluation de la fonction puis on sort) + # + if( METHODE == 'EXTERNE'): + + # On sauvegarde le fichier esclave si celui-ci est fort.UL (sinon il sera ecrase) + fic_esclave = './fort.'+str(UNITE_ESCL) + txt_old_esclave = None + if os.path.isfile(fic_esclave): + f = open(fic_esclave,'r') + txt_old_esclave = f.read() + f.close() + +# try: os.remove('./fort.'+str(UNITE_ESCL)) +# except: pass + + # Fichier bilan + txt = '\nPARAMETRES : ' + str([ para[0] for para in LIST_PARA ]) + ' ' + str(val) + Mess.ecrire(txt) + + # Execution de l'esclave + if args.has_key('GRADIENT') and args['GRADIENT']!='NON_CALCULE': + + # Calcul de F et G + fonctionnelle, residu, A_nodim, A = CALCUL_ASTER.calcul_FG(val) + + # Ecriture du fichier grad.txt contenant les derivees + if args['GRADIENT'] == 'ADIMENSIONNE': gradient = A + else: gradient = A_nodim + + # Ecriture du fichier contenant le gradient + if not mode_python: Ecriture_Derivees(output_file='./fort.1901', derivees=gradient) + + else: + # Calcul de F + fonctionnelle = CALCUL_ASTER.calcul_F(val) + gradient = None + + # Ecriture du fichier contenant la fonctionnelle + if not mode_python: Ecriture_Fonctionnelle(output_file='./fort.1900', type_fonctionnelle=type_fonctionnelle, fonctionnelle=fonctionnelle) + + # Fichier bilan + if type(fonctionnelle) == float: txt = '---> fonctionnelle : ' + str(fonctionnelle) + else: txt = '---> norme fonctionnelle : ' + str( math.sqrt( (Numeric.sum( [x**2 for x in fonctionnelle] )) ) ) + Mess.ecrire(txt) + + # Affichage de la valeur de la fonctionnelle + if mode_python and opts.INFO==-1: print txt + + # Affichage de la norme du gradient (AA: a remplacer par une formule de norme L2 !!) + if gradient: + norme = 0 + for l in range(len(gradient[:,0])): + for c in range(len(gradient[0,:])): + norme += ( gradient[l,c] * gradient[l,c] ) + norme = math.sqrt(norme) + txt = '---> norme du gradient : ' + str(norme) + Mess.ecrire(txt) + if mode_python and opts.INFO==-1: print txt + + + try: os.remove('./fort.'+str(UNITE_ESCL)) + except: pass + + # On remet l'ancien fichier esclave si c'etait fort.UL + if txt_old_esclave: + f = open(fic_esclave,'w') + f.write(txt_old_esclave) + f.close() + + + L_F = CALCUL_ASTER.L + iter = None + + # On va ensuite jusqu'au bout (pour l'impression des graphes) + + + + #------------------------------------------------------------------------------- + # Algorithme FMIN (pas d'adimensionnement car n'utilise pas de gradient) + # + elif( METHODE == 'FMIN'): + val, fval, warnflag = fmin(CALCUL_ASTER.calcul_F, val, maxiter=ITER_MAXI, maxfun=ITER_FONC_MAXI, fulloutput=1) + + iter_fonc = CALCUL_ASTER.evaluation_fonction + + Mess.ecrire("\nDerniere iteration : ") + Mess.affiche_etat_final_convergence(iter,ITER_MAXI,iter_fonc,ITER_FONC_MAXI, RESI_GLOB_RELA,residu=0,Act=[]) + Mess.affiche_fonctionnelle(fval) + Mess.affiche_valeurs(val) + if warnflag==1: Mess.ecrire("Attention : le nombre maximum d'evaluations de la fonction (ITER_FONC_MAXI) a ete atteint") + if warnflag==2: Mess.ecrire("Attention : le nombre maximum d'iteration de l'algorithme (ITER_MAXI) a ete atteint") + + nomres = Sortie(LIST_NOM_PARA, LIST_PARA, val, CALCUL_ASTER, Mess) + return + + else: + #------------------------------------------------------------------------------- + # Pour tous les autres methodes, on adimensionne + + # Calcul d'initialisation de F, ici L_deriv_sensible ne contient que les termes calculés par la sensibilité, les autres termes sont nuls + L_init, L_deriv_sensible = CALCUL_ASTER.calcul_Aster(val, INFO) + + L_J_init, erreur = Simul.multi_interpole(L_init, RESU_CALC) + J_init = Simul.norme_J(copy.copy(L_J_init),copy.copy(L_J_init),UNITE_RESU) + J = J_init + + A = Simul.sensibilite(CALCUL_ASTER, L_init, L_deriv_sensible, val, PARA_DIFF_FINI) + A = Dim.adim_sensi(A) + + l = reca_algo.lambda_init(Numeric.matrixmultiply(Numeric.transpose(A),A)) + gradient_init =reca_algo.calcul_gradient(A,erreur) #utile pour le test de convergence, on prend les valeurs dimensionnées + residu = reca_algo.test_convergence(gradient_init,erreur,A,Numeric.zeros(len(gradient_init),Numeric.Float)) + + Mess.affiche_result_iter(iter,J,val,residu,Numeric.array([])) + # On teste un manque de temps CPU + restant,temps_iter,err=reca_utilitaires.temps_CPU(restant,temps_iter) + if (err==1): + ier=ier+1 + return ier + + CALCUL_ASTER.L_init = L_init + CALCUL_ASTER.L_J_init = L_J_init + CALCUL_ASTER.J_init = J_init + CALCUL_ASTER.A_init = A + CALCUL_ASTER.gradient_init = gradient_init + CALCUL_ASTER.residu_init = residu + + + #------------------------------------------------------------------------------- + # Methode FMINBFGS et FMINNCG + + if METHODE in ['FMINBFGS', 'FMINNCG']: + # Derivees + fprime=CALCUL_ASTER.calcul_G + warnflag=0 + + if args.has_key('GRADIENT') and args['GRADIENT'] == 'NON_CALCULE': fprime=None + + if fprime: UTMESS('I','MACR_RECAL',"Les derivees sont calculees par Aster") + else: UTMESS('I','MACR_RECAL',"Les derivees sont calculees par l'algorithme") + + # Lancement de l'optimisation + if METHODE == 'FMINBFGS': + val, fval, func_calls, grad_calls, warnflag = fminBFGS(CALCUL_ASTER.calcul_F, val, fprime=fprime, maxiter=ITER_MAXI, avegtol=RESI_GLOB_RELA, fulloutput=1) + + elif METHODE == 'FMINNCG': + val, fval, func_calls, grad_calls, hcalls, warnflag = fminNCG(CALCUL_ASTER.calcul_F, val, fprime=fprime, fhess_p=None, fhess=None, maxiter=ITER_MAXI, avextol=RESI_GLOB_RELA, fulloutput=1) + + # Affichage des messages de sortie + iter_fonc = CALCUL_ASTER.evaluation_fonction + Mess.ecrire("\nDerniere iteration : ") + Mess.affiche_etat_final_convergence(iter,ITER_MAXI,iter_fonc,ITER_FONC_MAXI, RESI_GLOB_RELA,residu=0,Act=[]) + Mess.affiche_fonctionnelle(fval) + Mess.affiche_valeurs(val) +# if warnflag==1: Mess.ecrire("\nAttention : le nombre maximum d'evaluations de la fonction (ITER_FONC_MAXI) a ete atteint") +# if warnflag==2: Mess.ecrire("\nAttention : le nombre maximum d'iteration de la methode (ITER_MAXI) a ete atteint") + + # Permet d'avoir un diagnostic NOOK pour le job + if warnflag: iter=ITER_MAXI + + L_F = CALCUL_ASTER.L + residu = fval + + + + + #------------------------------------------------------------------------------- + # Methode Levenberg-Marquardt + else: + + #_____________________________________________ + # + # BOUCLE PRINCIPALE DE L'ALGORITHME + #_____________________________________________ + epsilon = 10.*RESI_GLOB_RELA + while((residu > RESI_GLOB_RELA) & (iter=1: UTMESS('I','MACR_RECAL',txt) + + if (GRAPHIQUE): + if GRAPHIQUE['AFFICHAGE']=='TOUTE_ITERATION': + GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] + interactif=(GRAPHIQUE['INTERACTIF']=='OUI') + reca_utilitaires.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif) + + # On teste un manque de temps CPU + restant,temps_iter,err=reca_utilitaires.temps_CPU(restant,temps_iter) + if (err==1): + ier=ier+1 + return ier + + + #_____________________________________________ + # + # FIN DES ITERATIONS + # CONVERGENCE OU ECHEC + #_____________________________________________ + iter_fonc = CALCUL_ASTER.evaluation_fonction + Mess.affiche_etat_final_convergence(iter,ITER_MAXI,iter_fonc,ITER_FONC_MAXI, RESI_GLOB_RELA,residu,Act) + reca_algo.calcul_etat_final(para,A,iter,ITER_MAXI,RESI_GLOB_RELA,residu,Mess) + + + #------------------------------------------------------------------------------- + + + #_____________________________________________ + # + # FIN DES ITERATIONS POUR TOUS LES ALGOS + #_____________________________________________ + + if (GRAPHIQUE): + trace = False + fichier = None + # Pour les algorithmes d'optimize.py, on ne peut tracer qu'a la derniere iteration + if (GRAPHIQUE['AFFICHAGE']=='ITERATION_FINALE') or (METHODE in ['FMIN', 'FMINBFGS', 'FMINNCG']): + trace = True + if (METHODE=='EXTERNE' and GRAPHIQUE['AFFICHAGE']=='TOUTE_ITERATION'): + trace = True + fichier = args['prefix_graph'] + if trace: + if INFO>=1: UTMESS('I','MACR_RECAL',"Trace des graphiques") + GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] + interactif=(GRAPHIQUE['INTERACTIF']=='OUI') + reca_utilitaires.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif,fichier) + + if( METHODE == 'EXTERNE'): + if mode_python: return fonctionnelle, gradient + +# print residu, RESI_GLOB_RELA + + # Si pas de convergence alors diagnostic NOOK_TEST_RESU + if residu > RESI_GLOB_RELA: + from Cata.cata import CREA_TABLE, TEST_TABLE + _tmp = [] + _tmp.append( { 'PARA': 'ITER_MAXI', 'LISTE_R': 0.0, } ) + motscle= {'LISTE': _tmp } + + TBL=CREA_TABLE(**motscle); + + TEST_TABLE(TABLE=TBL, + TYPE_TEST='SOMM', + NOM_PARA='ITER_MAXI', + VALE=1.,); + + #_____________________________________________ + # + # CREATIONS DE LA LISTE DE REELS CONTENANT + # LES VALEURS DES PARAMETRES A CONVERGENCE + #_____________________________________________ + + + nomres = Sortie(LIST_NOM_PARA, LIST_PARA, val, CALCUL_ASTER, Mess) + return + + + + + + + + + + + + + +#------------------------------------------------------------------------------- +if __name__ == '__main__': + + mode_python = True + + from optparse import OptionParser, OptionGroup + + p = OptionParser(usage='usage: %s fichier_export [options]' % sys.argv[0]) + p.add_option('-i', '--input', action='store', dest='input', type='string', default='input.txt', help='fichier contenant les parametres') + p.add_option('-o', '--output', action='store', dest='output', type='string', default='output.txt', help='fichier contenant la fonctionnelle') + p.add_option('-g', '--output_grad', action='store', dest='output_grad', type='string', default='grad.txt', help='fichier contenant le gradient') + p.add_option('-p', '--prefix_graph', action='store', dest='prefix_graph', type='string', help='prefixe des fichiers contenant les courbes') + p.add_option('-v', '--info', action='store', dest='INFO', type='int', help='niveau de message (-1, 0, 1, 2)') + p.add_option('-f', '--follow', action='store', dest='follow_output', type='string', help="affiche ou non l'output du fichier Aster (True/False)") + p.add_option('-F', '--objective', action='store', dest='objective', type='string', help="type de la fonctionnelle (float/vector)") + p.add_option('-G', '--gradient', action='store', dest='gradient' , type='string', default='no', help="calcul du gradient par Aster (no/normal/adim)") + p.add_option('-d', '--display', action='store', dest='display' , type='string', help="renvoi du DISPLAY (pour que la creation des courbes soit moins genante)") + +# p.add_option('-n', '--name', action='store', dest='name', type='string', default='optim', help="prefixe du fichier de bilan") + + opts, args = p.parse_args() + + # renvoi du DISPLAY (pour que la creation des courbes soit moins genante) + if opts.display: os.environ['DISPLAY'] = opts.display + + + # Options par defaut + optparse_input = optparse_output = optparse_output_grad = optparse_prefix_graph = optparse_INFO = optparse_follow_output = optparse_objective = optparse_gradient = optparse_name = None + + if opts.INFO==None: opts.INFO=0 + + if opts.input: optparse_input = True + if opts.output: optparse_output = True + if opts.output_grad: optparse_output_grad = True + if opts.prefix_graph: optparse_prefix_graph = True + if opts.INFO in [-1, 0, 1, 2]: optparse_INFO = True + if opts.follow_output in ['True', 'False']: optparse_follow_output = True + if opts.objective in ['float', 'vector']: optparse_objective = True + if opts.gradient in ['no', 'normal', 'adim']: optparse_gradient = True +# if opts.name: optparse_name = True + + if opts.follow_output=='True': opts.follow_output=True + if opts.follow_output=='False': opts.follow_output=False + + + # Fichier .export + if args: + fichier_export = args[0] + if not os.path.isfile(fichier_export): fichier_export = None + + INFO = opts.INFO + input_file = opts.input + output_file = opts.output + output_grad = opts.output_grad + type_fonctionnelle = opts.objective + + # Import d'as_profil + if os.environ.has_key('ASTER_ROOT'): + sys.path.append(os.path.join(os.environ['ASTER_ROOT'], 'ASTK', 'ASTK_SERV', 'lib')) + try: + from as_profil import ASTER_PROFIL + except: + UTMESS('F','MACR_RECAL',"Impossible de determiner l'emplacement d'Aster ! Fixer le chemin avec la variable d'environnement ASTER_ROOT.") + + # Efface les fichiers resultats + try: os.remove(output) + except: pass + try: os.remove(output_grad) + except: pass + + + # Si le fichier export n'est pas en argument on prend l'export qui est dans le rep courant + if not fichier_export: + # Lecture du fichier .export + list_export = glob('*.export') + if len(list_export) != 1: + UTMESS('F','MACR_RECAL',"Impossible de determiner le fichier .export a utiliser. Specifier le sur la ligne de commande.") + else: + fichier_export = list_export[0] + prof = ASTER_PROFIL(fichier_export) + + # Execution du fichier .comm + nom_comm = None + # fichier/répertoire + for lab in ('data', 'resu'): + l_fr = getattr(prof, lab) + l_tmp = l_fr[:] + + for dico in l_tmp: + # fichiers + if not dico['isrep']: + # Ancien .comm a executer + if dico['type'] == 'comm' and dico['ul'] == '1': + nom_comm = dico['path'] + + # parametres + for lab in ('param',): + l_fr = getattr(prof, lab) +# print l_fr +# print l_fr['version'] + try: os.environ['ASTER_VERSION'] = l_fr['version'][0] + except: pass + + + if not nom_comm: + UTMESS('F','MACR_RECAL',"Probleme : le fichier .comm n'est pas defini dans le .export.") + if not os.path.isfile(nom_comm): + UTMESS('F','MACR_RECAL',"Probleme : le fichier .comm suivant n'est pas defini : " + nom_comm) + + + + # ------------------------------------------------------------------- + # Lecture des valeurs d'entree + if INFO==2: UTMESS('I',NOMPRO,"Lecture du fichier : " + input_file) + try: + f = open(input_file, 'r') + txt = f.read() + f.close() + txt = txt.replace(',', ' ') + val_externe = [ float(x) for x in txt.strip().split() ] + except: + UTMESS('F',NOMPRO,"Probleme : impossible de lire le fichier d'entree :\n" + input_file) + if INFO>=2: UTMESS('I',NOMPRO,"Parametres d'entree : " + str(val_externe)) + if optparse_INFO and opts.INFO == -1: print '\n'+ str(val_externe) + + + # ------------------------------------------------------------------- + # Efface les fichiers d'entree et de sortie + try: os.remove(input_file) + except: pass + try: os.remove(output_file) + except: pass + try: os.remove(output_grad) + except: pass + + + + + # -------------------------------------------------------------------------------------------------------- + # -------------------------------------------------------------------------------------------------------- + # -------------------------------------------------------------------------------------------------------- + # Ci-dessous on extrait le fichier de commande jusqu'a la commande MACR_RECAL exclue (fichiernew) + # Puis la commande MACR_RECAL (commandenew) + # Ensuite on annule l'effet des commandes Aster et on evalue en Python les deux chaines de textes + + # Lecture du fichier .comm + f=open(nom_comm,'r') + fichier=f.read() + f.close + + # Extraction des deux parties dans le fichier de commande + fichiernew=None + commandenew=None + nb_par=-99 + txt1='MACR_RECAL' + txt2='(' + txt3=')' + for ligne in fichier.split('\n'): + if ligne.find( txt1 )!=-1 and ligne.find( txt2 )!=-1 and ligne.strip()[0]!='#': + nb_par=0 + index_deb1 = fichier.index(ligne) + fichiernew=fichier[:index_deb1] +# if debug: print 80*'*' + 2*'\n'+fichiernew+80*'*' + 2*'\n' + if fichiernew and ligne.find( txt2 )!=-1: nb_par+=1 + if fichiernew and ligne.find( txt3 )!=-1: nb_par-=1 + if fichiernew and nb_par==0: + index_fin1 = fichier.index(ligne)+len(ligne) + commandenew=fichier[index_deb1:index_fin1] + + # Remplace le nom de concept a gauche du signe egal + index_deb2 = commandenew.index(txt1) + commandenew='fonctionnelle, gradient='+commandenew[index_deb2:]+ '\n' + + if debug: print 80*'*' + 2*'\n'+commandenew+80*'*' + 2*'\n' + break + if not fichiernew or not commandenew: + txt = "Probleme : Le fichier de commande :\n" + nom_comm + "\n ne semble pas comporter la commande MACR_RECAL" + UTMESS('F',NOMPRO,txt) + + + # ------------------------------------------------------------------- + # Import du module Utilitai + sys.path.append(os.path.join(os.getcwd(), 'Python')) + sys.path.append(os.path.join(os.environ['ASTER_ROOT'], os.environ['ASTER_VERSION'], 'bibpyt')) + try: + import Utilitai + from Utilitai.System import ExecCommand + except: + UTMESS('F','MACR_RECAL',"Probleme : impossible d'importer le module Utilitai! Prevenir la maintenance.") + + + # ------------------------------------------------------------------- + # On annule les commandes Aster du fichier maitre .comm + def DEBUT(*args, **kwargs): pass + def FIN(*args, **kwargs): pass + def MACR_RECAL(*args, **kwargs): pass + def _F(*args, **kwargs): return kwargs + def DEFI_LIST_REEL(*args, **kwargs): pass + def DEFI_FONCTION(*args, **kwargs): pass + def TEST_FONCTION(*args, **kwargs): pass + def DEFI_CONSTANTE(*args, **kwargs): pass + + + # ------------------------------------------------------------------- + # Evaluation du fichier de commande Aster jusqu'a MACR_RECAL + lance_aster = False + try: + exec(fichiernew) + except: + txt = "Le mode EXTERNE tourne en mode degrade. Lire la documentation." + UTMESS('A',NOMPRO,txt) + lance_aster = True + else: + exec(commandenew.replace(txt1, 'macr_recal_externe')) +# try: +# exec(commandenew.replace(txt1, 'macr_recal_externe')) +# except Exception, err: +# print err +# txt = "Erreur lors de l'execution de la commande MACR_RECAL" +# UTMESS('F',NOMPRO,txt) + + Ecriture_Fonctionnelle(output_file, type_fonctionnelle, fonctionnelle) + Ecriture_Derivees(output_grad, gradient) + + + + # -------------------------------------------------------------------------------------------------------- + # -------------------------------------------------------------------------------------------------------- + # -------------------------------------------------------------------------------------------------------- + # Si l'evaluation du fichier de commande Aster jusqu'a MACR_RECAL a echoue, on execute Aster "normalement" + if lance_aster: + + _PARAM_ = '_PARAM_' + new_fichier_comm = os.getcwd() + os.sep + 'tmp_comm' + new_fichier_export = os.getcwd() + os.sep + fichier_export.split('/')[-1] + '_new' + + # Lecture du fichier .comm + f=open(nom_comm,'r') + fichier=f.read() + f.close + + # ------------------------------------------------------------------- + # Modification du fichier .comm (changement des valeurs, ecriture du resultat dans un fichier) + if INFO==2: UTMESS('I',NOMPRO,"Lecture du fichier : " + nom_comm) + f = open(nom_comm, 'r') + ok1 = ok3 = ok4 = False + txt = '' + for ligne in f: + if ligne.find('MACR_RECAL')!=-1 and ligne.strip()[0]!='#': # On determine le nom du concept sortant de MACR_RECAL + ok3 = True + _RESU_ = ligne.split('=')[0].strip() + txt += ligne + elif ligne.strip()[:len(_PARAM_)] == _PARAM_: # On change les parametres : la variables _PARAM_ + ok1 = True + txt += _PARAM_ + " = " + str(val_externe) + '\n' + elif ligne.find('METHODE')!=-1 and ligne.strip()[0]!='#': # On verifie bien que la methode externe est choisi + if ligne.find("EXTERNE")!=-1: + ok4 = True + txt += ligne + else: txt += ligne + f.close() + + if not ok1: UTMESS('F',NOMPRO,"Probleme : il faut mettre les parametres sous la forme d'une ligne python " + str(_PARAM_) + " = [param1, param2, ...]") + if not ok3: UTMESS('F',NOMPRO,"Probleme : la commande MACR_RECAL n'a pas ete trouvee dans le .comm") + if not ok4: UTMESS('F',NOMPRO,"Probleme : dans la commande MACR_RECAL, il faut choisir METHODE='EXTERNE'") + + txt = txt.replace('_RESU_', _RESU_) + + # Ecriture du nouveau fichier comm temporaire + if INFO==2: UTMESS('I',NOMPRO,"Ecriture du fichier : " + new_fichier_comm) + f = open(new_fichier_comm, 'w') + f.write(txt) + f.close() + + # On remplace dans l'export par le nouveau .comm + prof = ASTER_PROFIL(fichier_export) + for lab in ('data', 'resu'): + l_fr = getattr(prof, lab) + l_tmp = l_fr[:] + for dico in l_tmp: + # fichiers + if not dico['isrep']: + # On remplace par le nouveau .comm + if dico['type'] == 'comm' and dico['ul'] == '1': + dico['path'] = new_fichier_comm + +# if lab == 'resu': +# dico['path'] = os.path.join(tmp_macr_recal, os.path.basename(dico['path'])) + + # On ajoute au profil le fichier output.txt (unite logique 1900) + try: os.remove('./fort.1900') + except: pass + if not output_file.find(os.sep)!=-1: output_file = os.getcwd() + os.sep + output_file + prof.Set('R', {'type':'libr', 'isrep':False, 'path': output_file, 'ul':1900, 'compr': False} ) + + # On ajoute au profil le fichier grad.txt (unite logique 1901) + if optparse_gradient and opts.gradient!='no': + try: os.remove('./fort.1901') + except: pass + output_grad = opts.gradient + if not output_grad.find(os.sep)!=-1: output_grad = os.getcwd() + os.sep + output_grad + prof.Set('R', {'type':'libr', 'isrep':False, 'path': output_grad, 'ul':1901, 'compr': False} ) + + + # Ecriture du nouveau fichier export + try: + if INFO==2: UTMESS('I',NOMPRO,"Ecriture du fichier : " + new_fichier_export) + prof.WriteExportTo(new_fichier_export) + except: + UTMESS('F',NOMPRO,"Probleme : Impossible d'ecrire le fichier export : " + new_fichier_export) + prof.WriteExportTo('/tmp/exp') + + + # chemin vers as_run + if os.environ.has_key('ASTER_ROOT'): + as_run = os.path.join(os.environ['ASTER_ROOT'], 'ASTK', 'ASTK_SERV', 'bin', 'as_run') + else: + as_run = 'as_run' + if INFO>=1: UTMESS('A', nompro, "Variable d'environnement ASTER_ROOT absente, " \ + "on essaiera avec 'as_run' dans le $PATH.") + + + # Import du module Utilitai + sys.path.append(os.path.join(os.environ['ASTER_ROOT'], os.environ['ASTER_VERSION'], 'bibpyt')) + try: + import Utilitai + from Utilitai.System import ExecCommand + except: + UTMESS('F','MACR_RECAL',"Probleme : impossible d'importer le module Utilitai! Prevenir la maintenance.") + + + # Lancement d'Aster avec le deuxieme export + cmd = '%s %s' % (as_run, new_fichier_export) + if INFO>=2: UTMESS('I','MACR_RECAL',"Lancement de la commande : " + cmd) + iret, txt_output = ExecCommand(cmd, follow_output=opts.follow_output,verbose=opts.follow_output) + if INFO>=2: UTMESS('I','MACR_RECAL',"Fin du lancement de la commande : " + cmd) + + try: os.remove(new_fichier_comm) + except: pass + try: os.remove(new_fichier_export) + except: pass + + diff --git a/Aster/Cata/cataSTA9/Macro/macr_spectre_ops.py b/Aster/Cata/cataSTA9/Macro/macr_spectre_ops.py new file mode 100644 index 00000000..6fb9a32f --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macr_spectre_ops.py @@ -0,0 +1,357 @@ +#@ MODIF macr_spectre_ops Macro DATE 14/11/2006 AUTEUR COURTOIS M.COURTOIS +# -*- 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. +# ====================================================================== + +from Accas import _F +import aster +import string +from Utilitai.Utmess import UTMESS +def macr_spectre_ops(self,MAILLAGE,PLANCHER,NOM_CHAM,CALCUL,RESU,IMPRESSION=None, + FREQ=None,LIST_FREQ=None,LIST_INST=None,AMOR_SPEC=None,**args): + """ + Ecriture de la macro MACR_SPECTRE + """ + ier=0 + import string + from types import ListType,TupleType,StringType + EnumType=(ListType,TupleType) + + ### On importe les definitions des commandes a utiliser dans la macro + RECU_FONCTION = self.get_cmd('RECU_FONCTION') + CALC_FONCTION = self.get_cmd('CALC_FONCTION') + IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') + CREA_TABLE = self.get_cmd('CREA_TABLE') + + ### Comptage commandes + déclaration concept sortant + self.set_icmd(1) + self.DeclareOut('tab',self.sd) + macro='MACR_SPECTRE' + + ### construction de la liste des noeuds à traiter + planch_nodes={} + dic_gpno=aster.getcolljev(MAILLAGE.nom.ljust(8)+".GROUPENO") + l_nodes =aster.getvectjev(MAILLAGE.nom.ljust(8)+".NOMNOE") + l_plancher=[] + for plancher in PLANCHER : + liste_no=[] + if plancher['NOEUD']!=None : + if type(plancher['NOEUD'])==StringType : + liste_no.append(plancher['NOEUD']) + else : + for noeud in plancher['NOEUD'] : + liste_no.append(plancher['NOEUD']) + if plancher['GROUP_NO']!=None : + if type(plancher['GROUP_NO'])==StringType : + noms_no =[string.strip(l_nodes[n-1]) \ + for n in dic_gpno[plancher['GROUP_NO'].ljust(8)]] + liste_no=liste_no+noms_no + else : + for group_no in plancher['GROUP_NO'] : + noms_no =[string.strip(l_nodes[n-1]) \ + for n in dic_gpno[group_no.ljust(8)]] + liste_no=liste_no+noms_no + planch_nodes[plancher['NOM']]=liste_no + l_plancher.append(plancher['NOM']) + + if AMOR_SPEC!=None and type(AMOR_SPEC) not in EnumType : + AMOR_SPEC=(AMOR_SPEC,) + + if NOM_CHAM=='ACCE' : dico_glob={} + if NOM_CHAM=='DEPL' : dico_glob={'DX_max' :[] , + 'DY_max' :[] , + 'DZ_max' :[] , + 'DH_max' :[] , } + + ############################################################ + ### boucle 1 sur les planchers + for plancher in l_plancher : + + if NOM_CHAM=='ACCE' : + __moy_x=[None]*len(planch_nodes[plancher]) + __moy_y=[None]*len(planch_nodes[plancher]) + __moy_z=[None]*len(planch_nodes[plancher]) + if NOM_CHAM=='DEPL' : + dicDmax={} + ############################################################ + ### boucle 2 sur les noeuds du plancher + indexn=0 + for node in planch_nodes[plancher] : + + ############################################################ + ### boucle 3 sur les directions (X,Y,Z) + for dd in ('X','Y','Z') : + + ############################################################ + ### boucle 4 sur les résultats + l_fonc=[] + for resu in RESU : + ### Récupération des fonctions + motscles={} + if resu['RESU_GENE']!=None : + if CALCUL=='ABSOLU' : + UTMESS('F', macro, 'Pas de calcul absolu avec tran_gene') + motscles['RESU_GENE'] = resu['RESU_GENE'] + + if resu['RESULTAT' ]!=None : + motscles['RESULTAT'] = resu['RESULTAT'] + + __spo=RECU_FONCTION(NOM_CHAM = NOM_CHAM, + TOUT_ORDRE = 'OUI', + NOM_CMP = 'D'+dd, + INTERPOL = 'LIN', + PROL_GAUCHE = 'CONSTANT', + PROL_DROITE = 'CONSTANT', + NOEUD = node , **motscles ) + + if NOM_CHAM=='ACCE' : + ### Accelerations relatives + if CALCUL=='RELATIF' : + ### Combinaison avec fonction d acceleration + motscles={} + if LIST_INST!=None : motscles['LIST_PARA']=LIST_INST + __spo=CALC_FONCTION(COMB=(_F(FONCTION=__spo, + COEF= 1.0 ), + _F(FONCTION=resu['ACCE_'+dd], + COEF= 1.0) ),**motscles ) + + ### Calcul des spectres d'oscillateur + motscles={} + if FREQ !=None : motscles['FREQ'] =FREQ + if LIST_FREQ!=None : motscles['LIST_FREQ']=LIST_FREQ + __spo=CALC_FONCTION( + SPEC_OSCI=_F(FONCTION = __spo, + AMOR_REDUIT = AMOR_SPEC, + NORME = args['NORME'], + **motscles ) ) + l_fonc.append(__spo) + + if NOM_CHAM=='DEPL' : + if CALCUL=='ABSOLU' : + ### On retranche les deplacements d entrainement + motscles={} + if LIST_INST!=None : motscles['LIST_PARA']=LIST_INST + __spo=CALC_FONCTION(COMB=(_F(FONCTION=__spo, + COEF= 1.0 ), + _F(FONCTION=resu['DEPL_'+dd], + COEF= -1.0) ),**motscles ) + + l_fonc.append(__spo) + + ### fin boucle 4 sur les résultats + ############################################################ + + ############################################################ + ### calcul de la moyenne sur les resultats à noeud et direction fixes + nbresu=len(RESU) + if NOM_CHAM=='ACCE' : + mcfCMBx=[] + mcfCMBy=[] + mcfCMBz=[] + for spo in l_fonc : + mcfCMBx.append(_F(FONCTION=spo, + COEF=1./float(nbresu),)) + mcfCMBy.append(_F(FONCTION=spo, + COEF=1./float(nbresu),)) + mcfCMBz.append(_F(FONCTION=spo, + COEF=1./float(nbresu),)) + motscles={} + if LIST_FREQ!=None : motscles['LIST_PARA']=LIST_FREQ + if dd=='X' : __moy_x[indexn]=CALC_FONCTION(COMB=mcfCMBx,**motscles) + if dd=='Y' : __moy_y[indexn]=CALC_FONCTION(COMB=mcfCMBy,**motscles) + if dd=='Z' : __moy_z[indexn]=CALC_FONCTION(COMB=mcfCMBz,**motscles) + + if NOM_CHAM=='DEPL' : + moy = 0. + for spo in l_fonc : + fspo = spo.convert() + aspo = fspo.abs() + vmax = aspo.extreme()['max'] + moy = moy + vmax[-1][-1] + dicDmax[(node,dd)]=moy/nbresu + + ### fin boucle 3 sur les directions + ############################################################ + + ################################ + ### impressions en chaque noeud + if NOM_CHAM=='ACCE' and IMPRESSION!=None : + if IMPRESSION['TOUT']=='OUI' : + __moyxa=[None]*len(AMOR_SPEC) + __moyya=[None]*len(AMOR_SPEC) + __moyza=[None]*len(AMOR_SPEC) + for i in range(len(AMOR_SPEC)) : + amor = AMOR_SPEC[i] + __moyxa[i]=RECU_FONCTION(NAPPE = __moy_x[indexn], + VALE_PARA_FONC = AMOR_SPEC[i] ) + __moyya[i]=RECU_FONCTION(NAPPE = __moy_y[indexn], + VALE_PARA_FONC = AMOR_SPEC[i] ) + __moyza[i]=RECU_FONCTION(NAPPE = __moy_z[indexn], + VALE_PARA_FONC = AMOR_SPEC[i] ) + motscles={} + dI = IMPRESSION[0].cree_dict_valeurs(IMPRESSION[0].mc_liste) + if dI.has_key('PILOTE') : motscles['PILOTE' ]=IMPRESSION['PILOTE'] + if IMPRESSION['FORMAT']!='TABLEAU' : motscles['ECHELLE_X']='LOG' + if IMPRESSION['TRI']=='AMOR_SPEC' : + for i in range(len(AMOR_SPEC)) : + TITRE ='Spectres / Plancher = '+plancher+\ + ' / amor='+str(AMOR_SPEC[i])+\ + ' / noeud='+node + IMPR_FONCTION( + FORMAT=IMPRESSION['FORMAT'], + UNITE =IMPRESSION['UNITE' ], + COURBE=( _F(FONCTION=__moyxa[i], LEGENDE ='X',), + _F(FONCTION=__moyya[i], LEGENDE ='Y',), + _F(FONCTION=__moyza[i], LEGENDE ='Z',),), + TITRE =TITRE, + **motscles) + elif IMPRESSION['TRI']=='DIRECTION' : + lfonc=[] + for dd in ('X','Y','Z') : + TITRE ='Spectres / Plancher = '+plancher+\ + ' / direction = '+dd+\ + ' / noeud = '+node + if dd=='X' : l_fonc=[_F(FONCTION=__moyxa[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ + for i in range(len(AMOR_SPEC)) ] + if dd=='Y' : l_fonc=[_F(FONCTION=__moyya[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ + for i in range(len(AMOR_SPEC)) ] + if dd=='Z' : l_fonc=[_F(FONCTION=__moyza[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ + for i in range(len(AMOR_SPEC)) ] + IMPR_FONCTION( + FORMAT=IMPRESSION['FORMAT'], + UNITE =IMPRESSION['UNITE' ], + COURBE=l_fonc, + TITRE =TITRE, + **motscles) + + ### increment de l'indice de noeud + indexn=indexn+1 + + ### fin boucle 2 sur les noeuds du plancher + ############################################################ + + ############################################################ + ### Calcul des enveloppes des spectres ou des deplacements max + if NOM_CHAM=='ACCE' : + mcslx=[] + mcsly=[] + mcslz=[] + indexn=0 + for node in planch_nodes[plancher] : + mcslx.append(__moy_x[indexn]) + mcsly.append(__moy_y[indexn]) + mcslz.append(__moy_z[indexn]) + indexn=indexn+1 + __snx=CALC_FONCTION(ENVELOPPE=_F(FONCTION=mcslx)) + __sny=CALC_FONCTION(ENVELOPPE=_F(FONCTION=mcsly)) + __snz=CALC_FONCTION(ENVELOPPE=_F(FONCTION=mcslz)) + __snh=CALC_FONCTION(ENVELOPPE=_F(FONCTION=(__snx,__sny))) + if NOM_CHAM=='DEPL' : + DRmX = max([dicDmax[(node,'X')] for node in planch_nodes[plancher]]) + DRmY = max([dicDmax[(node,'Y')] for node in planch_nodes[plancher]]) + DRmZ = max([dicDmax[(node,'Z')] for node in planch_nodes[plancher]]) + DRmH = max([DRmX,DRmY]) + + ############################################################ + ### Renseignement de la table finale des résultats + if NOM_CHAM=='ACCE' : + nbind=len(AMOR_SPEC) + for i in range(nbind) : + dico_glob['FREQ' ]=__snx.Valeurs()[1][i][0] + dico_glob['eX_%d_%s' % (i, plancher)]=__snx.Valeurs()[1][i][1] + dico_glob['eY_%d_%s' % (i, plancher)]=__sny.Valeurs()[1][i][1] + dico_glob['eZ_%d_%s' % (i, plancher)]=__snz.Valeurs()[1][i][1] + dico_glob['eH_%d_%s' % (i, plancher)]=__snh.Valeurs()[1][i][1] + elif NOM_CHAM=='DEPL' : + dico_glob['DX_max'].append(DRmX) + dico_glob['DY_max'].append(DRmY) + dico_glob['DZ_max'].append(DRmZ) + dico_glob['DH_max'].append(DRmH) + + ############################################################ + ### Impression des courbes + if NOM_CHAM=='ACCE' and IMPRESSION!=None : + motscles={} + dI = IMPRESSION[0].cree_dict_valeurs(IMPRESSION[0].mc_liste) + if dI.has_key('PILOTE') : motscles['PILOTE']=IMPRESSION['PILOTE'] + if IMPRESSION['FORMAT']!='TABLEAU' : motscles['ECHELLE_X']='LOG' + __snxa=[None]*len(AMOR_SPEC) + __snya=[None]*len(AMOR_SPEC) + __snza=[None]*len(AMOR_SPEC) + __snha=[None]*len(AMOR_SPEC) + for i in range(nbind) : + __snxa[i]=RECU_FONCTION(NAPPE = __snx, + VALE_PARA_FONC = AMOR_SPEC[i], ) + __snya[i]=RECU_FONCTION(NAPPE = __sny, + VALE_PARA_FONC = AMOR_SPEC[i], ) + __snza[i]=RECU_FONCTION(NAPPE = __snz, + VALE_PARA_FONC = AMOR_SPEC[i], ) + __snha[i]=RECU_FONCTION(NAPPE = __snh, + VALE_PARA_FONC = AMOR_SPEC[i], ) + if IMPRESSION['TRI']=='AMOR_SPEC' : + for i in range(nbind) : + TITRE ='Spectres moyens / Plancher = '+plancher+' / amor='+str(AMOR_SPEC[i]) + IMPR_FONCTION( + FORMAT=IMPRESSION['FORMAT'], + UNITE =IMPRESSION['UNITE' ], + COURBE=( _F(FONCTION=__snxa[i], LEGENDE ='X',), + _F(FONCTION=__snya[i], LEGENDE ='Y',), + _F(FONCTION=__snza[i], LEGENDE ='Z',), + _F(FONCTION=__snha[i], LEGENDE ='H',),), + TITRE =TITRE, + **motscles + ) + elif IMPRESSION['TRI']=='DIRECTION' : + for dd in ('X','Y','Z','H'): + TITRE ='Spectres moyens / Plancher = '+plancher+' / direction = '+dd + l_fonc =[] + if dd=='X' : l_fonc=[_F(FONCTION=__snxa[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ + for i in range(len(AMOR_SPEC)) ] + if dd=='Y' : l_fonc=[_F(FONCTION=__snya[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ + for i in range(len(AMOR_SPEC)) ] + if dd=='Z' : l_fonc=[_F(FONCTION=__snza[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ + for i in range(len(AMOR_SPEC)) ] + if dd=='H' : l_fonc=[_F(FONCTION=__snha[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ + for i in range(len(AMOR_SPEC)) ] + IMPR_FONCTION( + FORMAT=IMPRESSION['FORMAT'], + UNITE =IMPRESSION['UNITE' ], + COURBE=l_fonc, + TITRE =TITRE, + **motscles + ) + + ### fin boucle 1 sur les planchers + ############################################################ + + ############################################################ + ### Renseignement de la table finale des résultats + lListe=[] + if NOM_CHAM=='DEPL' : + lListe.append(_F(LISTE_K=l_plancher,PARA='PLANCHER')) + titre = 'Calcul des spectres enveloppes' + if NOM_CHAM=='ACCE' : + titre = ['Calcul des spectres enveloppes par planchers pour les amortissements numérotés :',] + b=[' %d : %g ' % (i,AMOR_SPEC[i]) for i in range(len(AMOR_SPEC)) ] + titre.append('/'.join(b)) + lkeys=dico_glob.keys() + lkeys.sort() + for key in lkeys : + lListe.append(_F(LISTE_R=dico_glob[key],PARA=key)) + tab = CREA_TABLE(LISTE=lListe,TITRE=titre) + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_elas_mult_ops.py b/Aster/Cata/cataSTA9/Macro/macro_elas_mult_ops.py new file mode 100644 index 00000000..b9dac9fe --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macro_elas_mult_ops.py @@ -0,0 +1,273 @@ +#@ MODIF macro_elas_mult_ops Macro DATE 07/11/2006 AUTEUR CIBHHLV L.VIVAN +# -*- 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. +# +# 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_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL, + CHAR_MECA_GLOBAL,CHAR_CINE_GLOBAL,LIAISON_DISCRET, + CAS_CHARGE,SOLVEUR,**args): + """ + Ecriture de la macro MACRO_ELAS_MULT + """ + ier=0 + import types + from Accas import _F + from Utilitai.Utmess import UTMESS + + # On met le mot cle NUME_DDL dans une variable locale pour le proteger + numeddl=NUME_DDL + # On importe les definitions des commandes a utiliser dans la macro + CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM') + NUME_DDL =self.get_cmd('NUME_DDL') + ASSE_MATRICE =self.get_cmd('ASSE_MATRICE') + FACT_LDLT =self.get_cmd('FACT_LDLT') + CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM') + ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR') + RESO_LDLT =self.get_cmd('RESO_LDLT') + CREA_RESU =self.get_cmd('CREA_RESU') + CALC_ELEM =self.get_cmd('CALC_ELEM') + CALC_NO =self.get_cmd('CALC_NO') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type mult_elas ou fourier_elas) est nommé + # 'nomres' dans le contexte de la macro + + self.DeclareOut('nomres',self.sd) + + ielas = 0 + ifour = 0 + for m in CAS_CHARGE: + if m['NOM_CAS']: + ielas=1 # mot clé NOM_CAS présent sous CAS_CHARGE + tyresu = 'MULT_ELAS' + else: + ifour=1 # mot clé MODE_FOURIER présent sous CAS_CHARGE + tyresu = 'FOURIER_ELAS' + if ielas==1 and ifour==1: + UTMESS('F', "MACRO_ELAS_MULT", "On ne peut avoir a la fois NOM_CAS et MODE_FOURIER") + + if (numeddl in self.sdprods) or (numeddl==None): + # Si le concept numeddl est dans self.sdprods ou n est pas nommé + # il doit etre produit par la macro + # il faudra donc appeler la commande NUME_DDL + lnume = 1 + else: + lnume = 0 + + if ielas==1 : + motscles={} + if CHAR_MECA_GLOBAL: motscles['CHARGE'] =CHAR_MECA_GLOBAL + elif CHAR_CINE_GLOBAL: motscles['CHARGE'] =CHAR_CINE_GLOBAL + if CHAM_MATER : motscles['CHAM_MATER']=CHAM_MATER + if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM + __nomrig=CALC_MATR_ELEM(OPTION='RIGI_MECA',MODELE=MODELE,**motscles) + + if lnume: + # On peut passer des mots cles egaux a None. Ils sont ignores + motscles={} + if SOLVEUR: + motscles['METHODE'] =SOLVEUR['METHODE'] + motscles['RENUM'] =SOLVEUR['RENUM'] + else: + motscles['METHODE'] ='MULT_FRONT' + motscles['RENUM'] ='METIS' + if numeddl!=None: + self.DeclareOut('num',numeddl) + num=NUME_DDL(MATR_RIGI=__nomrig,**motscles) + else: + _num=NUME_DDL(MATR_RIGI=__nomrig,**motscles) + num=_num + else: + num=numeddl + + __nomras=ASSE_MATRICE(MATR_ELEM=__nomrig,NUME_DDL=num) + + __nomraf=FACT_LDLT(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER']) + +##################################################################### +# boucle sur les items de CAS_CHARGE + + nomchn=[] + iocc=0 + for m in CAS_CHARGE: + iocc=iocc+1 + + if ifour: + motscles={} + if CHAR_MECA_GLOBAL: motscles['CHARGE'] =CHAR_MECA_GLOBAL + elif CHAR_CINE_GLOBAL: motscles['CHARGE'] =CHAR_CINE_GLOBAL + if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER + if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM + motscles['MODE_FOURIER'] =m['MODE_FOURIER'] + __nomrig=CALC_MATR_ELEM(OPTION='RIGI_MECA',MODELE=MODELE,**motscles) + + if lnume: + _num=NUME_DDL(MATR_RIGI=__nomrig,METHODE=SOLVEUR['METHODE'],RENUM=SOLVEUR['RENUM']) + num=_num + lnume=0 + + __nomras=ASSE_MATRICE(MATR_ELEM=__nomrig,NUME_DDL=num) + + __nomraf=FACT_LDLT(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER']) + + + if m['VECT_ASSE']==None : + motscles={} + if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER + if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM + if ifour : motscles['MODE_FOURIER'] =m['MODE_FOURIER'] + if m['CHAR_MECA'] : motscles['CHARGE'] =m['CHAR_MECA'] + elif m['CHAR_CINE'] : motscles['CHARGE'] =m['CHAR_CINE'] + __nomvel=CALC_VECT_ELEM(OPTION='CHAR_MECA',**motscles) + __nomasv=ASSE_VECTEUR(VECT_ELEM=__nomvel,NUME_DDL=num) + else : + __nomasv=m['VECT_ASSE'] + + + __nomchn=RESO_LDLT(MATR_FACT=__nomraf,CHAM_NO=__nomasv,TITRE=m['SOUS_TITRE']) + nomchn.append(__nomchn) + +# fin de la boucle sur les items de CAS_CHARGE +##################################################################### + + motscles={} + iocc=0 + motscle2={} + if CHAM_MATER : motscle2['CHAM_MATER']=CHAM_MATER + if CARA_ELEM : motscle2['CARA_ELEM']=CARA_ELEM + if CHAM_MATER or CARA_ELEM : + if ielas : + motscles['AFFE']=[] + for m in CAS_CHARGE: + motscles['AFFE'].append(_F(MODELE=MODELE, + CHAM_GD=nomchn[iocc], + NOM_CAS=m['NOM_CAS'], + **motscle2) ) + iocc=iocc+1 + else : + motscles['AFFE']=[] + for m in CAS_CHARGE: + motscles['AFFE'].append(_F(MODELE=MODELE, + CHAM_GD=nomchn[iocc], + NUME_MODE=m['MODE_FOURIER'], + TYPE_MODE=m['TYPE_MODE'], + **motscle2) ) + iocc=iocc+1 + else: + if ielas : + motscles['AFFE']=[] + for m in CAS_CHARGE: + motscles['AFFE'].append(_F(MODELE=MODELE, + CHAM_GD=nomchn[iocc], + NOM_CAS=m['NOM_CAS'],) ) + iocc=iocc+1 + else : + motscles['AFFE']=[] + for m in CAS_CHARGE: + motscles['AFFE'].append(_F(MODELE=MODELE, + CHAM_GD=nomchn[iocc], + NUME_MODE=m['MODE_FOURIER'], + TYPE_MODE=m['TYPE_MODE'],) ) + iocc=iocc+1 + + + nomres=CREA_RESU(OPERATION='AFFE',TYPE_RESU=tyresu,NOM_CHAM='DEPL',**motscles) + +##################################################################### +# boucle sur les items de CAS_CHARGE pour CALC_ELEM ete CALC_NO + + iocc=0 + for m in CAS_CHARGE: + iocc=iocc+1 + + if m['OPTION']: + nbel=0 + nbno=0 + liste_el=[] + liste_no=[] + if type(m['OPTION'])==types.StringType: + if m['OPTION'] in ('FORC_NODA','REAC_NODA', + 'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL', + 'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',): + nbno=nbno+1 + liste_no.append(m['OPTION']) + else: + nbel=nbel+1 + liste_el.append(m['OPTION']) + else: + for opt in m['OPTION']: + if opt in ('FORC_NODA','REAC_NODA', + 'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL', + 'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',): + nbno=nbno+1 + liste_no.append(opt) + else: + nbel=nbel+1 + liste_el.append(opt) + + lreac=0 + if nbel: + motscles={} + if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER + if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM + if ielas: + motscles['NOM_CAS']=m['NOM_CAS'] + else: + motscles['NUME_MODE']=m['MODE_FOURIER'] + motscles['EXCIT']=[] + if m['CHAR_MECA'] : + for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) + elif m['CHAR_CINE'] : + for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) + if CHAR_MECA_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_MECA_GLOBAL)) + elif CHAR_CINE_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_CINE_GLOBAL)) + CALC_ELEM(reuse=nomres, + RESULTAT=nomres, + MODELE=MODELE, + REPE_COQUE=_F(NIVE_COUCHE=m['NIVE_COUCHE'], + NUME_COUCHE=m['NUME_COUCHE'],), + OPTION=tuple(liste_el), + **motscles) + if nbno: + motscles={} + if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER + if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM + if ielas: + motscles['NOM_CAS']=m['NOM_CAS'] + else: + motscles['NUME_MODE']=m['MODE_FOURIER'] + motscles['EXCIT']=[] + if m['CHAR_MECA'] : + for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) + elif m['CHAR_CINE'] : + for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) + if CHAR_MECA_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_MECA_GLOBAL)) + elif CHAR_CINE_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_CINE_GLOBAL)) + CALC_NO(reuse=nomres, + RESULTAT=nomres, + MODELE=MODELE, + OPTION=tuple(liste_no), + **motscles) + +# fin de la boucle sur les items de CAS_CHARGE +##################################################################### + return ier + diff --git a/Aster/Cata/cataSTA9/Macro/macro_expans_ops.py b/Aster/Cata/cataSTA9/Macro/macro_expans_ops.py new file mode 100644 index 00000000..884e1556 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macro_expans_ops.py @@ -0,0 +1,157 @@ +#@ MODIF macro_expans_ops Macro DATE 22/12/2006 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. +# ====================================================================== + + + +def macro_expans_ops( self, + MODELE_CALCUL, + MODELE_MESURE, + NUME_DDL, + RESU_NX=None, + RESU_EX=None, + RESU_ET=None, + RESU_RD=None, + MODES_NUM=None, + MODES_EXP=None, + RESOLUTION=None, + *args + ): + """!macro MACRO_EXPANS """ + from Accas import _F + from Cata.cata import CO, mode_meca, dyna_harmo + from Utilitai.Utmess import UTMESS + from types import ListType, TupleType + ier = 0 + + 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') + 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'] + + RESU_NUM = MODELE_CALCUL['BASE'] + RESU_EXP = MODELE_MESURE['MESURE'] + + MOD_CALCUL = MODELE_CALCUL['MODELE'] + MOD_MESURE = MODELE_MESURE['MODELE'] + + NOM_CHAM = MODELE_MESURE['NOM_CHAM'] + + # Extraction des modes numériques + # ------------------------------- + self.DeclareOut( "RESU_NX", RESU_NX ) + if not NUME_MODE_NUM: + RESU_NX = RESU_NUM + else: + RESU_NX = EXTR_MODE( FILTRE_MODE=_F( MODE=RESU_NUM, + NUME_MODE=NUME_MODE_NUM ) ) + + + # Extraction des modes expérimentaux + # ---------------------------------- + self.DeclareOut( "RESU_EX", RESU_EX ) + if not NUME_MODE_EXP: + RESU_EX = RESU_EXP + else: + RESU_EX = EXTR_MODE( FILTRE_MODE=_F( MODE=RESU_EXP, + NUME_MODE=NUME_MODE_EXP ) ) + + + + # Projection des modes experimentaux - on passe le mot-clef + # RESOLUTION directement à PROJ_MESU_MODAL + # --------------------------------------------------------- + + # Mot-clé facteur de résolution + mfact = [] + for m in RESOLUTION: + if m['METHODE'] == 'SVD': + mfact.append({'METHODE':'SVD','EPS':m['EPS']}) + if m['METHODE'] == 'LU': + mfact.append({'METHODE':'LU'}) + if m['REGUL'] != 'NON': + if m['COEF_PONDER']: + mfact.append({'COEF_PONDER':m['COEF_PONDER']}) + if m['COEF_PONDER_F']: + mfact.append({'COEF_PONDER_F':m['COEF_PONDER_F']}) + + # Paramètres à garder : si on étend des mode_meca, on conserve les + # freq propres, amortissements réduits, et masses généralisées. Pour + # les dyna_harmo, on conserve les fréquences uniquement + if isinstance(RESU_EXP, mode_meca): + paras = ('FREQ','AMOR_REDUIT','MASS_GENE',) + elif isinstance(RESU_EXP, dyna_harmo): + paras = ('FREQ') + else: + paras = None + UTMESS('A', 'MACRO_OBSERV', + "LE MODELE MEDURE DOIT ETRE UN CONCEPT DE TYPE DYNA_HARMO OU MODE_MECA") + + + try: + __PROJ = PROJ_MESU_MODAL(MODELE_CALCUL = _F( BASE=RESU_NX, + MODELE=MOD_CALCUL, + ), + MODELE_MESURE = _F( MESURE=RESU_EX, + MODELE=MOD_MESURE, + NOM_CHAM=NOM_CHAM, + ), + RESOLUTION=mfact, + NOM_PARA=paras, + ); + 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, + 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 ) + RESU_RD = PROJ_CHAMP( METHODE = 'ELEM', + RESULTAT = RESU_ET, + MODELE_1 = MOD_CALCUL, + MODELE_2 = MOD_MESURE, + NOM_CHAM = NOM_CHAM, + TOUT_ORDRE = 'OUI', + NUME_DDL = NUME_DDL, + VIS_A_VIS =_F( TOUT_1='OUI', + TOUT_2='OUI',), + NOM_PARA = paras, + ); + + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA9/Macro/macro_matr_ajou_ops.py new file mode 100644 index 00000000..c3b17003 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macro_matr_ajou_ops.py @@ -0,0 +1,256 @@ +#@ MODIF macro_matr_ajou_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATION,MODE_MECA,DEPL_IMPO, + NUME_DDL_GENE,MODELE_GENE,MATR_MASS_AJOU,MATR_AMOR_AJOU,MATR_RIGI_AJOU, + NOEUD_DOUBLE,FLUIDE,DDL_IMPO,DIST_REFE,SOLVEUR,INFO,AVEC_MODE_STAT, + MODE_STAT,MONO_APPUI, + FORC_AJOU,ECOULEMENT,**args): + """ + Ecriture de la macro MACRO_MATR_AJOU + """ + from Accas import _F + import types + import aster + from Utilitai.Utmess import UTMESS + ier=0 + + # On importe les definitions des commandes a utiliser dans la macro + DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU') + AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU') + AFFE_MODELE =self.get_cmd('AFFE_MODELE') + AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER') + CALC_MATR_AJOU =self.get_cmd('CALC_MATR_AJOU') + THER_LINEAIRE =self.get_cmd('THER_LINEAIRE') + CALC_FORC_AJOU =self.get_cmd('CALC_FORC_AJOU') + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + if len(FLUIDE)==1 : + message= ' tout le domaine fluide specifie dans GROUP_MA_INTERF et GROUP_MA_FLUIDE \n' + message=message+ ' sera affecte par la masse volumique RHO = '+str(FLUIDE['RHO'])+' \n' + aster.affiche('MESSAGE',message) + if FLUIDE['GROUP_MA']!=None : + message= ' cas fluide simple : le group_ma dans lequel vous affectez la masse \n' + message=message+ 'volumique RHO doit etre la reunion de GROUP_MA_INTERF et GROUP_MA_FLUIDE. \n' + aster.affiche('MESSAGE',message) + else : + for flu in FLUIDE : + if flu['GROUP_MA']==None : + UTMESS('F', "MACRO_MATR_AJOU", "cas fluides multiples : precisez le GROUP_MA dans lequel vous affectez la masse volumique RHO") + + IOCFLU=len(FLUIDE) + +# --------------------------------------------------------------- +# definition du materiau fluide par caracteristique +# thermique equivalente + +# CAS FLUIDE SIMPLE + if IOCFLU==1 : + __NOMMAT=DEFI_MATERIAU( THER = _F( LAMBDA = 1.0, + RHO_CP = FLUIDE[0]['RHO'])) + __NOMCMA=AFFE_MATERIAU( MAILLAGE = MAILLAGE, + AFFE = _F( GROUP_MA = (GROUP_MA_FLUIDE,GROUP_MA_INTERF), + MATER = __NOMMAT), ) + +# --------------------------------------------------------------- +# cas fluides multiples + else : + affmat=[] + for flu in FLUIDE: + __NOMMAT=DEFI_MATERIAU( THER = _F( LAMBDA = 1.0, + RHO_CP = flu['RHO'])) + mfact=_F(GROUP_MA=flu['GROUP_MA'],MATER=__NOMMAT) + affmat.append(mfact) + + __NOMCMA=AFFE_MATERIAU( MAILLAGE = MAILLAGE, + AFFE = affmat ) + +# --------------------------------------------------------------- +# commande AFFE_MODELE modele fluide + __NOMFLU=AFFE_MODELE( MAILLAGE = MAILLAGE, + AFFE = _F( GROUP_MA = (GROUP_MA_FLUIDE,GROUP_MA_INTERF), + MODELISATION = MODELISATION, + PHENOMENE = 'THERMIQUE' ), ) + +# --------------------------------------------------------------- +# commande AFFE_MODELE modele interface + __NOMINT=AFFE_MODELE( MAILLAGE = MAILLAGE, + AFFE = _F( GROUP_MA = GROUP_MA_INTERF, + MODELISATION = MODELISATION, + PHENOMENE = 'THERMIQUE' ), ) + +# --------------------------------------------------------------- +# commande AFFE_CHAR_THER condition de pression imposee +# en un point ou un groupe du fluide + affimp=[] + nflui=0 + for DDL in DDL_IMPO : + if DDL['PRES_FLUIDE']!=None : + nflui=nflui+1 + if DDL['NOEUD'] !=None : mfact=_F(NOEUD =DDL['NOEUD'], TEMP=DDL['PRES_FLUIDE']) + if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_FLUIDE']) + affimp.append(mfact) + if nflui==0: + UTMESS('F', "MACRO_MATR_AJOU", "PRES_FLUIDE obligatoire une fois") + + __CHARGE=AFFE_CHAR_THER( MODELE = __NOMFLU, + TEMP_IMPO = affimp ) + +# --------------------------------------------------------------- +# calcul des masses, rigidites et amortissements ajoutes en theorie +# potentielle +# commande CALC_MATR_AJOU, calcul de la masse ajoutee + + if MATR_MASS_AJOU!=None : + self.DeclareOut('MASSAJ',MATR_MASS_AJOU) + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + mostcles={} + if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE + if INFO !=None : mostcles['INFO'] =INFO + if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA + elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO + elif MODELE_GENE !=None : + mostcles['MODELE_GENE'] =MODELE_GENE + mostcles['AVEC_MODE_STAT']=AVEC_MODE_STAT + mostcles['DIST_REFE'] =DIST_REFE + if NOEUD_DOUBLE !=None : mostcles['NOEUD_DOUBLE'] =NOEUD_DOUBLE + + MASSAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, + MODELE_INTERFACE = __NOMINT, + CHARGE = __CHARGE, + CHAM_MATER = __NOMCMA, + OPTION = 'MASS_AJOU', + SOLVEUR = solveur, + **mostcles) + +# --------------------------------------------------------------- +# calcul de l amortissement ajoute + if (MATR_AMOR_AJOU!=None ) or (MATR_RIGI_AJOU!=None ): + +# --------------------------------------------------------------- +# on definit un nouveau modele fluide pour calculer +# le potentiel stationnaire - AFFE_MODELE + grma=[GROUP_MA_FLUIDE,] + if ECOULEMENT!=None : + grma.append(ECOULEMENT['GROUP_MA_1']) + grma.append(ECOULEMENT['GROUP_MA_2']) + __NOFLUI=AFFE_MODELE( MAILLAGE = MAILLAGE, + AFFE = _F( GROUP_MA = grma, + MODELISATION = MODELISATION, + PHENOMENE = 'THERMIQUE' ), ) + affimp=[] + for DDL in DDL_IMPO : + if DDL['PRES_SORTIE']!=None : + if DDL['NOEUD'] !=None : mfact=_F(NOEUD =DDL['NOEUD'], TEMP=DDL['PRES_SORTIE']) + if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_SORTIE']) + affimp.append(mfact) + + affecl=[] + for ECL in ECOULEMENT : + mfact=_F(GROUP_MA=ECL['GROUP_MA_1'],FLUN=ECL['VNOR_1']) + affecl.append(mfact) + mfact=_F(GROUP_MA=ECL['GROUP_MA_2'],FLUN=ECL['VNOR_2']) + affecl.append(mfact) + __CHARG2=AFFE_CHAR_THER( MODELE = __NOFLUI, + TEMP_IMPO = affimp , + FLUX_REP = affecl ) + + __POTEN = THER_LINEAIRE( MODELE = __NOFLUI, + CHAM_MATER = __NOMCMA , + EXCIT = _F( CHARGE = __CHARG2 ) ) + +# --------------------------------------------------------------- +# calcul amortissement proprement dit + if MATR_AMOR_AJOU!=None : + self.DeclareOut('AMORAJ',MATR_AMOR_AJOU) + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + mostcles={} + if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE + if INFO !=None : mostcles['INFO'] =INFO + if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA + elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO + else : + UTMESS('F', "MACRO_MATR_AJOU", "amortissement ajoute sur modele generalise non encore implante") + + AMORAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, + MODELE_INTERFACE = __NOMINT, + CHARGE = __CHARGE, + CHAM_MATER = __NOMCMA, + OPTION = 'AMOR_AJOU', + SOLVEUR = solveur, + POTENTIEL = __POTEN, + **mostcles) + +# --------------------------------------------------------------- +# calcul de la rigidite ajoutee + if MATR_RIGI_AJOU!=None : + self.DeclareOut('RIGIAJ',MATR_RIGI_AJOU) + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + mostcles={} + if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE + if INFO !=None : mostcles['INFO'] =INFO + if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA + elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO + else : + UTMESS('F', "MACRO_MATR_AJOU", "rigidite ajoute sur modele generalise non encore implante") + + RIGIAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, + MODELE_INTERFACE = __NOMINT, + CHARGE = __CHARGE, + CHAM_MATER = __NOMCMA, + OPTION = 'RIGI_AJOU', + SOLVEUR = solveur, + POTENTIEL = __POTEN, + **mostcles) + +# --------------------------------------------------------------- +# boucle sur le nombre de vecteurs a projeter, commande CALC_FORC_AJOU + if FORC_AJOU!=None : + for FORCAJ in FORC_AJOU: + self.DeclareOut('VECTAJ',FORCAJ['VECTEUR']) + solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) + mostcles={} + if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE + if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA + elif MODELE_GENE !=None : + mostcles['MODELE_GENE'] =MODELE_GENE + mostcles['AVEC_MODE_STAT']=AVEC_MODE_STAT + mostcles['DIST_REFE'] =DIST_REFE + if NOEUD_DOUBLE !=None : mostcles['NOEUD_DOUBLE'] =NOEUD_DOUBLE + if MODE_STAT !=None : + mostcles['MODE_STAT'] =MODE_STAT + if FORCAJ['NOEUD'] !=None : mostcles['NOEUD'] =FORCAJ['NOEUD'] + if FORCAJ['GROUP_NO'] !=None : mostcles['GROUP_NO'] =FORCAJ['GROUP_NO'] + else : + mostcles['MONO_APPUI'] =MONO_APPUI + + VECTAJ = CALC_FORC_AJOU(DIRECTION = FORCAJ['DIRECTION'], + MODELE_FLUIDE = __NOMFLU, + MODELE_INTERFACE = __NOMINT, + CHARGE = __CHARGE, + CHAM_MATER = __NOMCMA, + SOLVEUR = solveur, + **mostcles) + + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA9/Macro/macro_matr_asse_ops.py new file mode 100644 index 00000000..ddf508f1 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macro_matr_asse_ops.py @@ -0,0 +1,158 @@ +#@ MODIF macro_matr_asse_ops Macro DATE 12/06/2006 AUTEUR CIBHHLV L.VIVAN +# -*- 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. +# +# 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_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, + SOLVEUR,NUME_DDL,CHARGE,CHAR_CINE,INST,**args): + """ + Ecriture de la macro MACRO_MATR_ASSE + """ + ier=0 + from Utilitai.Utmess import UTMESS + + # On met le mot cle NUME_DDL dans une variable locale pour le proteger + numeddl=NUME_DDL + # 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') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + if SOLVEUR: + methode=SOLVEUR['METHODE'] + if methode=='LDLT': + if SOLVEUR['RENUM']: + renum=SOLVEUR['RENUM'] + else: + renum='RCMK' + if renum not in ('SANS','RCMK'): + UTMESS('F', "MACRO_MATR_ASSE", "Avec methode LDLT, RENUM doit etre SANS ou RCMK") + elif methode=='MULT_FRONT': + if SOLVEUR['RENUM']: + renum=SOLVEUR['RENUM'] + else: + renum='MDA' + if renum not in ('MDA','MD','METIS'): + UTMESS('F', "MACRO_MATR_ASSE", "Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK") + elif methode=='MUMPS': + if SOLVEUR['RENUM']: + renum=SOLVEUR['RENUM'] + else: + renum='SANS' + if renum not in ('SANS',): + UTMESS('F', "MACRO_MATR_ASSE", "Avec methode MUMPS, RENUM doit etre SANS") + elif methode=='GCPC': + if SOLVEUR['RENUM']: + renum=SOLVEUR['RENUM'] + else: + renum='SANS' + if renum not in ('SANS','RCMK'): + UTMESS('F', "MACRO_MATR_ASSE", "Avec methode GCPC, RENUM doit etre SANS ou RCMK") + else: + methode='MULT_FRONT' + renum ='MDA' + + if numeddl in self.sdprods: + # Si le concept numeddl est dans self.sdprods + # il doit etre produit par la macro + # il faudra donc appeler la commande NUME_DDL + lnume = 1 + else: + lnume = 0 + lrigel = 0 + lmasel = 0 + +# decalage eventuel en premiere position dans la liste de l occurence de MATR_ASSE contenant +# l option de rigidite + try : + for m in MATR_ASSE: + option=m['OPTION'] + if option in ('RIGI_MECA','RIGI_MECA_LAGR','RIGI_THER','RIGI_ACOU') : + decal=m + MATR_ASSE.remove(decal) + MATR_ASSE.insert(0,decal) + break + except: pass + + iocc=0 + for m in MATR_ASSE: + iocc=iocc+1 + option=m['OPTION'] + if iocc == 1 and lnume == 1 and option not in ('RIGI_MECA','RIGI_MECA_LAGR', + 'RIGI_THER','RIGI_ACOU') : + UTMESS('F', "MACRO_MATR_ASSE", "UNE DES OPTIONS DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR") + + + motscles={'OPTION':option} + if option == 'RIGI_MECA_HYST': + if (not lrigel): + UTMESS('F', "MACRO_MATR_ASSE", "POUR CALCULER RIGI_MECA_HYST, IL FAUT AVOIR CALCULE RIGI_MECA AUPARAVANT (DANS LE MEME APPEL)") + motscles['RIGI_MECA'] =rigel + if option == 'AMOR_MECA': + if (not lrigel or not lmasel): + UTMESS('F', "MACRO_MATR_ASSE", "POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)") + if CHAM_MATER != None: + motscles['RIGI_MECA'] =rigel + motscles['MASS_MECA'] =masel + if CHARGE != None: + if option[0:9] not in ('MASS_THER','RIGI_GEOM','MASS_ID_M'): + motscles['CHARGE'] =CHARGE + if CHAM_MATER != None: motscles['CHAM_MATER'] =CHAM_MATER + if CARA_ELEM != None: motscles['CARA_ELEM'] =CARA_ELEM + if INST != None: motscles['INST'] =INST + + try : motscles['SIEF_ELGA'] =m['SIEF_ELGA'] + except IndexError : pass + + try : motscles['MODE_FOURIER'] =m['MODE_FOURIER'] + except IndexError : pass + + try : motscles['THETA'] =m['THETA'] + except IndexError : pass + + try : motscles['PROPAGATION'] =m['PROPAGATION'] + except IndexError : pass + _a=CALC_MATR_ELEM(MODELE=MODELE,**motscles) + + if option == 'RIGI_MECA': + rigel = _a + lrigel = 1 + if option == 'MASS_MECA': + masel = _a + lmasel = 1 + + if lnume and option in ('RIGI_MECA','RIGI_THER','RIGI_ACOU','RIGI_MECA_LAGR'): + self.DeclareOut('num',numeddl) + # On peut passer des mots cles egaux a None. Ils sont ignores + num=NUME_DDL(MATR_RIGI=_a,METHODE=methode,RENUM=renum) + else: + num=numeddl + + self.DeclareOut('mm',m['MATRICE']) + motscles={'OPTION':option} + if CHAR_CINE != None: + mm=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=num,CHAR_CINE=CHAR_CINE) + else: + mm=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=num) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA9/Macro/macro_miss_3d_ops.py new file mode 100644 index 00000000..97b6bd15 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macro_miss_3d_ops.py @@ -0,0 +1,141 @@ +#@ MODIF macro_miss_3d_ops Macro DATE 31/10/2006 AUTEUR ACBHHCD G.DEVESA +# -*- 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. +# +# 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_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS, + UNITE_MODELE_SOL,UNITE_RESU_IMPE, + PROJET,REPERTOIRE,OPTION,VERSION, + UNITE_RESU_FORC,PARAMETRE,**args): + """ + Ecriture de la macro MACRO_MISS_3D + """ + import types + from Accas import _F + from Utilitai.Utmess import UTMESS + from types import TupleType, ListType + + 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 + DEFI_FICHIER =self.get_cmd('DEFI_FICHIER') + EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + DEFI_FICHIER(ACTION='LIBERER',UNITE=UNITE_IMPR_ASTER) + + import aster + loc_fic=aster.repout() + tv = aster.__version__.split('.') + if len(tv) < 3: + tv.extend(['x']*(3-len(tv))) + elif len(tv) > 3: + tv = tv[:3] + vers = '%2s.%2s.%2s' % tuple(tv) + + # if vers > ' 8. 3.11': + # miss3d='/aster/logiciels/MISS3D/NEW/miss3d.csh' + # else: + # miss3d=loc_fic+'miss3d' + + miss3d=loc_fic+'miss3d' + + if VERSION=='V1_2': + if PARAMETRE != None and PARAMETRE['TYPE']=='BINAIRE': + raise AsException("MACRO_MISS_3D/PARAMETRE : type incompatible avec version") + + if OPTION['TOUT']!=None: + MODUL2='COMPLET' + elif OPTION['MODULE']=='MISS_IMPE': + MODUL2='CALC_IMPE' + elif OPTION['MODULE']=='MISS_EVOL': + MODUL2='MISS_PTAS' + elif OPTION['MODULE']=='PRE_MISS': + MODUL2='GTASTER' + + ETUDE = PROJET + BASE = REPERTOIRE + paste = 'fort.'+str(UNITE_IMPR_ASTER) + popti = 'fort.'+str(UNITE_OPTI_MISS) + pdsol = 'fort.'+str(UNITE_MODELE_SOL) + primp = 'fort.'+str(UNITE_RESU_IMPE) + prfor = 'fort.'+str(UNITE_RESU_FORC) + + l_para = ['FREQ_MIN','FREQ_MAX','FREQ_PAS','Z0','RFIC','SURF', + 'FICH_RESU_IMPE','FICH_RESU_FORC','TYPE','DREF','ALGO', + 'OFFSET_MAX','OFFSET_NB','SPEC_MAX','SPEC_NB','ISSF', + 'FICH_POST_TRAI','CONTR_NB','CONTR_LISTE','LFREQ_NB', + 'LFREQ_LISTE'] + if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None: + if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']: + UTMESS('F', 'MACRO_MISS3D', 'Longueur de LFREQ_LISTE incorrecte') + if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None: + if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']: + UTMESS('F', 'MACRO_MISS3D', 'Longueur de CONTR_LISTE incorrecte') + + dpara = {} + for cle in l_para: + if cle in ('SURF', 'ISSF', ): + dpara[cle] = 'NON' + else: + dpara[cle] = '0' + if PARAMETRE != None and PARAMETRE[cle] != None: + if type(PARAMETRE[cle]) in (TupleType, ListType): + dpara[cle] = repr(' '.join([str(s) for s in PARAMETRE[cle]])) + else: + dpara[cle] = str(PARAMETRE[cle]) + + EXEC_LOGICIEL( + LOGICIEL=miss3d, + ARGUMENT=(MODUL2, + ETUDE, + BASE, + paste, + popti, + pdsol, + primp, + VERSION, + dpara['FREQ_MIN'], + dpara['FREQ_MAX'], + dpara['FREQ_PAS'], + dpara['Z0'], + dpara['SURF'], + dpara['RFIC'], + dpara['FICH_RESU_IMPE'], + dpara['FICH_RESU_FORC'], + dpara['DREF'], + dpara['ALGO'], + dpara['OFFSET_MAX'], + dpara['OFFSET_NB'], + dpara['SPEC_MAX'], + dpara['SPEC_NB'], + dpara['ISSF'], + dpara['FICH_POST_TRAI'], + dpara['CONTR_NB'], + dpara['CONTR_LISTE'], + dpara['LFREQ_NB'], + dpara['LFREQ_LISTE'], + dpara['TYPE'], + prfor, + ), + ) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA9/Macro/macro_mode_meca_ops.py new file mode 100644 index 00000000..a24af1f6 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macro_mode_meca_ops.py @@ -0,0 +1,138 @@ +#@ MODIF macro_mode_meca_ops Macro DATE 14/06/2005 AUTEUR DURAND C.DURAND +# -*- 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. +# +# 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_mode_meca_ops(self,MATR_A,MATR_B,INFO,METHODE,OPTION,CALC_FREQ, + VERI_MODE,NORM_MODE,FILTRE_MODE,IMPRESSION,**args): + """ + Ecriture de la macro MACRO_MODE_MECA + """ + from Accas import _F + ier=0 + + # on protege le contenu du mot cle NORM_MODE pour eviter les confusions + # avec la commande du meme nom + + normode=NORM_MODE + + # On importe les definitions des commandes a utiliser dans la macro + MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT') + NORM_MODE =self.get_cmd('NORM_MODE') + IMPR_RESU =self.get_cmd('IMPR_RESU') + EXTR_MODE =self.get_cmd('EXTR_MODE') + DETRUIRE =self.get_cmd('DETRUIRE') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + nompro=None + iocc=0 + if CALC_FREQ['FREQ']: + nnfreq=len(CALC_FREQ['FREQ']) + else: + lborne=[] + nnfreq= CALC_FREQ['NB_BLOC_FREQ']+1 + zlborn=(CALC_FREQ['FREQ_MAX']-CALC_FREQ['FREQ_MIN'])/(nnfreq-1) + for i in range(0,nnfreq): + lborne.append(CALC_FREQ['FREQ_MIN']+i*zlborn) + + motscles={} + motscles['FILTRE_MODE']=[] + for i in range(0,nnfreq-1): + motscit={} + motscfa={} + 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['FREQ']: + motscfa['FREQ']=(CALC_FREQ['FREQ'][i],CALC_FREQ['FREQ'][i+1]) + else: + motscfa['FREQ']=(lborne[i],lborne[i+1]) + motscit['CALC_FREQ']=_F(OPTION ='BANDE', + 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'], + **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 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'] + + __nomre0=MODE_ITER_SIMULT(MATR_A =MATR_A, + MATR_B =MATR_B, + INFO =INFO, + METHODE =METHODE, + OPTION =OPTION, + **motscit) + + __nomre0=NORM_MODE(reuse =__nomre0, + MASS_INER =normode['MASS_INER'], + MODE =__nomre0, + NORME =normode['NORME'], + INFO =normode['INFO'],) + + if IMPRESSION['TOUT_PARA']=='OUI': + IMPR_RESU(RESU=_F(RESULTAT=__nomre0, + TOUT_ORDRE='OUI', + TOUT_CHAM ='NON', + TOUT_PARA ='OUI',) ) + + if FILTRE_MODE : + motscles['FILTRE_MODE'].append(_F(MODE =__nomre0, + CRIT_EXTR =FILTRE_MODE['CRIT_EXTR'], + SEUIL =FILTRE_MODE['SEUIL'], )) + else: + motscles['FILTRE_MODE'].append(_F(MODE =__nomre0, + TOUT_ORDRE='OUI',) ) + + + motscles['IMPRESSION']=_F(CUMUL =IMPRESSION['CUMUL'], + CRIT_EXTR=IMPRESSION['CRIT_EXTR'],) + self.DeclareOut('nomres',self.sd) + nomres=EXTR_MODE(**motscles) + DETRUIRE(CONCEPT=_F(NOM='__nomre0',),ALARME='NON') + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA9/Macro/macro_proj_base_ops.py new file mode 100644 index 00000000..589dde01 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macro_proj_base_ops.py @@ -0,0 +1,59 @@ +#@ MODIF macro_proj_base_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND +# -*- 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. +# +# 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_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args): + """ + Ecriture de la macro MACRO_PROJ_BASE + """ + ier=0 + from Utilitai.Utmess import UTMESS + # On importe les definitions des commandes a utiliser dans la macro + NUME_DDL_GENE =self.get_cmd('NUME_DDL_GENE') + PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE') + PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE') + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL) + if MATR_ASSE_GENE: + for m in MATR_ASSE_GENE: + motscles={} + if m['MATR_ASSE'] : motscles['MATR_ASSE'] =m['MATR_ASSE'] + elif m['MATR_ASSE_GENE']: motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE'] + else: + UTMESS('F', "MACRO_PROJ_BASE", "MATR_ASSE et MATR_ASSE_GENE absents") + self.DeclareOut('mm',m['MATRICE']) + mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles) + + if VECT_ASSE_GENE: + _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL) + for v in VECT_ASSE_GENE: + motscles={} + if v['VECT_ASSE'] : motscles['VECT_ASSE'] =v['VECT_ASSE'] + elif v['VECT_ASSE_GENE']: motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE'] + else: + UTMESS('F', "MACRO_PROJ_BASE", "MATR_ASSE et MATR_ASSE_GENE absents") + motscles['TYPE_VECT']=v['TYPE_VECT'] + self.DeclareOut('vv',v['VECTEUR']) + vv=PROJ_VECT_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/macro_visu_meidee_ops.py b/Aster/Cata/cataSTA9/Macro/macro_visu_meidee_ops.py new file mode 100644 index 00000000..920a6e2b --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/macro_visu_meidee_ops.py @@ -0,0 +1,140 @@ +#@ MODIF macro_visu_meidee_ops Macro DATE 02/04/2007 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, + RESULTATS = None, + UNITE_FIMEN = None, + UNITE_RESU = None, + EXPANSION = None, + FLUIDE_ELASTIQUE = None, + TURBULENT = None, + **args): + ier = 0 + + from Utilitai.UniteAster import UniteAster + from Meidee.meidee_correlation import InterfaceCorrelation + from Meidee.meidee_fludela import InterfaceFludela, InterfaceDisplay + from Meidee.meidee_turbulent import InterfaceTurbulent + from Meidee.meidee_iface import MessageBox, TabbedWindow + from Meidee.meidee_cata import MeideeObjects + from Tkinter import Tk + from Accas import _F + import aster + import sys + +## prev = aster.onFatalError() +## aster.onFatalError("EXCEPTION") + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + + + # Fichiers fimen éventuels associés aux unités logiques en entrée + 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)) ) + + tables = [] + type_tables = [] + for res in RESULTATS: + tables.append(res['TABLE']) + type_tables.append(res['TYPE_TABLE']) + out = {"DeclareOut" : self.DeclareOut, + "TablesOut" : tables, + "TypeTables" : type_tables} + + + + # Mode interactif : ouverture d'une fenetre Tk + if INTERACTIF == "OUI": + + # fenetre principale + tk = Tk() + tk.rowconfigure(0, weight=1) + tk.columnconfigure(0,weight=1) + tabs = TabbedWindow( tk, [ "Correlation", "Fludela","Fluide Turbulent" ] ) + tabs.grid(sticky='n'+'e'+'s'+'w') + main = tabs.root() + + # ecriture des message dans un fichier message + mess = MessageBox(UNITE_RESU, interactif = 'oui') + # importation des concepts aster de la memoire jeveux + objects = MeideeObjects(self, mess) + tabs.set_objects(objects) + + iface = InterfaceCorrelation(main, objects, self, mess) + fludela = InterfaceFludela(main, objects, fichiers_fimen, mess, out) + turbulent = InterfaceTurbulent(main, objects, mess, out) + + tabs.set_tab("Correlation",iface.main) + tabs.set_tab("Fludela", fludela ) + tabs.set_tab("Fluide Turbulent", turbulent) + tabs.set_current_tab("Correlation") + + + try: + tk.mainloop() + except : + print "MEIDEE : *ERREUR*" + + mess.close_file() + + + else: + from Meidee.meidee_test import TestMeidee + + mess = MessageBox(UNITE_RESU, interactif = 'non') + # importation des concepts aster existants de la memoire jeveux + objects = MeideeObjects(self, mess) + + mess.disp_mess( " mode non interactif" ) + + TestMeidee(self, + mess, + out, + objects, + EXPANSION, + FLUIDE_ELASTIQUE, + TURBULENT + ) + + mess.close_file() + +## aster.onFatalError(prev) + + return ier + diff --git a/Aster/Cata/cataSTA9/Macro/post_dyna_alea_ops.py b/Aster/Cata/cataSTA9/Macro/post_dyna_alea_ops.py new file mode 100644 index 00000000..db6f62ab --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/post_dyna_alea_ops.py @@ -0,0 +1,254 @@ +#@ MODIF post_dyna_alea_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- 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. +# ====================================================================== + +def post_dyna_alea_ops(self,INTE_SPEC,NUME_VITE_FLUI,TOUT_ORDRE,NUME_ORDRE_I, + NOEUD_I,OPTION,MOMENT,TITRE,INFO,**args): + import aster + from types import ListType, TupleType + EnumTypes = (ListType, TupleType) + from Accas import _F + from Utilitai.Utmess import UTMESS + from Utilitai.t_fonction import t_fonction + from Utilitai.Table import Table + import Numeric + import math + from math import pi,sqrt + + commande='POST_DYNA_ALEA' + + ier = 0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type table_sdaster ou dérivé) 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') + IMPR_TABLE = self.get_cmd('IMPR_TABLE') + RECU_FONCTION = self.get_cmd('RECU_FONCTION') + IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') + + intespec=INTE_SPEC.EXTR_TABLE() + +# ------------------------------------------------------------------ +# Liste des moments spectraux +# repérer le type de l'interspectre et son nom +# 1- concept interspectre +# 2- table de table d interspectre + + if 'NUME_VITE_FLUI' in intespec.para : + if TOUT_ORDRE!=None : + jnuor=intespec['NUME_VITE_FLUI'].values()['NUME_VITE_FLUI'] + jvite=dict([(i,0) for i in jnuor]).keys() + else : + jvite=[NUME_VITE_FLUI,] + else : + jvite =[None] + +# ------------------------------------------------------------------ +# Repérer les couples d'indices selectionnés +# vérification de l'égalité du nombre d indices en i et j + + if NUME_ORDRE_I!=None : + l_ind_i=NUME_ORDRE_I + l_ind_j=args['NUME_ORDRE_J'] + if type(l_ind_i) not in EnumTypes : l_ind_i=[l_ind_i] + if type(l_ind_j) not in EnumTypes : l_ind_j=[l_ind_j] + if len(l_ind_i)!=len(l_ind_j) : + txt = "il faut autant d indices en I et J" + UTMESS('F',commande, txt) + listpara=['NUME_ORDRE_I','NUME_ORDRE_J'] + listtype=['I','I'] + dicotabl={'NUME_ORDRE_I' : l_ind_i ,\ + 'NUME_ORDRE_J' : l_ind_j , } + elif NOEUD_I!=None : + l_ind_i=NOEUD_I + l_ind_j=args['NOEUD_J'] + l_cmp_i=args['NOM_CMP_I'] + l_cmp_j=args['NOM_CMP_J'] + if type(l_cmp_i) not in EnumTypes : l_cmp_i=[l_cmp_i] + if type(l_cmp_j) not in EnumTypes : l_cmp_j=[l_cmp_j] + if type(l_ind_i) not in EnumTypes : l_ind_i=[l_ind_i] + if type(l_ind_j) not in EnumTypes : l_ind_j=[l_ind_j] + if len(l_ind_i)!=len(l_ind_j) : + txt = "il faut autant d indices en I et J" + UTMESS('F',commande, txt) + if len(l_cmp_i)!=len(l_cmp_j) : + txt = "il faut autant de composantes en I et J" + UTMESS('F',commande, txt) + if len(l_ind_i)!=len(l_cmp_i) : + txt = "il faut autant de composantes que de noeuds" + UTMESS('F',commande, txt) + listpara=['NOEUD_I','NOEUD_J','NOM_CMP_I','NOM_CMP_J'] + listtype=['K8','K8','K8','K8',] + dicotabl={'NOEUD_I' : l_ind_i,\ + 'NOEUD_J' : l_ind_j,\ + 'NOM_CMP_I': l_cmp_i,\ + 'NOM_CMP_J': l_cmp_j } +# ------------------------------------------------------------------ +# Cas de tous les indices centraux + + elif OPTION!=None : + if 'NUME_ORDRE_I' in intespec.para : + inuor=intespec['NUME_ORDRE_I'].values()['NUME_ORDRE_I'] + imode=dict([(i,0) for i in inuor]).keys() + l_ind_i=imode + l_ind_j=imode + listpara=['NUME_ORDRE_I','NUME_ORDRE_J'] + listtype=['I','I'] + dicotabl={'NUME_ORDRE_I' : l_ind_i ,\ + 'NUME_ORDRE_J' : l_ind_j , } + else : + if 'NUME_VITE_FLUI' in intespec.para : + intespec=intespec.NUME_VITE_FLUI==jvite[0] + l_ind_i=intespec['NOEUD_I'].values()['NOEUD_I'] + l_ind_j=intespec['NOEUD_J'].values()['NOEUD_J'] + if len(l_ind_i)!=len(l_ind_j) : + txt = "il faut autant d indices en I et J" + UTMESS('F',commande, txt) + l_cmp_i=intespec['NOM_CMP_I'].values()['NOM_CMP_I'] + l_cmp_j=intespec['NOM_CMP_J'].values()['NOM_CMP_J'] + if (len(l_ind_i)!=len(l_cmp_i) or len(l_ind_j)!=len(l_cmp_j)) : + txt = "il faut autant de composantes que de noeuds" + UTMESS('F',commande, txt) + l_l=zip(zip(l_ind_i,l_cmp_i),zip(l_ind_j,l_cmp_j)) + l_ind_i=[] + l_ind_j=[] + l_cmp_i=[] + l_cmp_j=[] + for ai,aj in l_l : + if ai==aj : + l_ind_i.append(ai[0]) + l_ind_j.append(aj[0]) + l_cmp_i.append(ai[1]) + l_cmp_j.append(aj[1]) + listpara=['NOEUD_I','NOEUD_J','NOM_CMP_I','NOM_CMP_J'] + listtype=['K8','K8','K8','K8',] + dicotabl={'NOEUD_I' : l_ind_i*len(jvite) ,\ + 'NOEUD_J' : l_ind_j*len(jvite) ,\ + 'NOM_CMP_I': l_cmp_i*len(jvite) ,\ + 'NOM_CMP_J': l_cmp_j*len(jvite) } + + if jvite[0]!=None : + listpara.append('NUME_VITE_FLUI') + listtype.append('I') + dicotabl['NUME_VITE_FLUI']=[] +# ------------------------------------------------------------------ +# Liste des moments spectraux + + l_moments=[0,1,2,3,4] + if MOMENT!=None : + l_moments=l_moments+list(MOMENT) + l_moments=dict([(i,0) for i in l_moments]).keys() + +# ------------------------------------------------------------------ +# Boucle sur les tables + + l_ind=zip(l_ind_i,l_ind_j) + for vite in jvite : + if INFO==2 : + texte='POUR LA MATRICE INTERSPECTRALE '+INTE_SPEC.nom+'\n' + aster.affiche('MESSAGE',texte) + for ind in l_ind : + mcfact=[] + if vite!=None : + dicotabl['NUME_VITE_FLUI'].append(vite) + mcfact.append(_F(NOM_PARA='NUME_VITE_FLUI',VALE_I=vite)) + if 'NOEUD_I' in listpara : + mcfact.append(_F(NOM_PARA='NOEUD_I',VALE_K=ind[0])) + mcfact.append(_F(NOM_PARA='NOEUD_I',VALE_K=ind[1])) + if INFO==2 : + aster.affiche('MESSAGE','INDICES :'+ind[0]+' - '+ind[1]+'\n') + else : + mcfact.append(_F(NOM_PARA='NUME_ORDRE_I',VALE_I=ind[0])) + mcfact.append(_F(NOM_PARA='NUME_ORDRE_J',VALE_I=ind[1])) + if INFO==2 : + aster.affiche('MESSAGE','INDICES :'+str(ind[0])+' - '\ + +str(ind[1])+'\n') + __fon1=RECU_FONCTION(TABLE = INTE_SPEC, + NOM_PARA_TABL= 'FONCTION_C', + FILTRE = mcfact, ) + val = __fon1.Valeurs() + fvalx= Numeric.array(val[0]) + fvaly= Numeric.array(val[1]) + frez = fvalx[0] + +#--- moments spectraux + + val_mom={} + for i_mom in l_moments : + trapz = Numeric.zeros(len(fvaly),Numeric.Float) + trapz[0] = 0. + valy = fvaly*(2*pi*fvalx)**i_mom + trapz[1:] = (valy[1:]+valy[:-1])/2*(fvalx[1:]-fvalx[:-1]) + prim_y = Numeric.cumsum(trapz) + val_mom[i_mom] = prim_y[-1] + for i_mom in l_moments : + chmo='LAMBDA_'+str(i_mom).zfill(2) + if dicotabl.has_key(chmo) : dicotabl[chmo].append(val_mom[i_mom]) + else : + dicotabl[chmo]=[val_mom[i_mom],] + listpara.append(chmo) + listtype.append('R') + +#--- fonctions statistiques + + pstat = {'ECART' :0.,\ + 'NB_PASS_ZERO_P_S':0.,\ + 'NB_EXTREMA_P_S' :0.,\ + 'FACT_IRRE' :0.,\ + 'FREQ_APPAR' :0.,} + if (NUME_VITE_FLUI or frez>=0.) : +#--- cas NUME_VITE_FLUI, seule la partie positive du spectre est utilisée +#--- Il faut donc doubler lambda pour calculer le bon écart type + pstat['ECART'] = sqrt(val_mom[0]*2.) + else : + pstat['ECART'] = sqrt(val_mom[0]) + if abs(val_mom[2])>=1e-20 : + pstat['NB_EXTREMA_P_S'] = 1./pi*sqrt(val_mom[4]/val_mom[2]) + if abs(val_mom[0])>=1e-20 : + pstat['NB_PASS_ZERO_P_S'] = 1./pi*sqrt(val_mom[2]/val_mom[0]) + pstat['FREQ_APPAR'] = 0.5*pstat['NB_PASS_ZERO_P_S'] + if abs(val_mom[4])>=1e-20 : + pstat['FACT_IRRE'] = sqrt( val_mom[2]*val_mom[2]/val_mom[0]/val_mom[4]) + + for key in pstat.keys(): + if dicotabl.has_key(key) : dicotabl[key].append(pstat[key]) + else : + dicotabl[key]=[pstat[key],] + listpara.append(key) + listtype.append('R') + +#--- construction de la table produite + + mcfact=[] + for i in range(len(listpara)) : + if listtype[i]=='R': + mcfact.append(_F(PARA=listpara[i] ,LISTE_R=dicotabl[listpara[i]] )) + if listtype[i]=='K8': + mcfact.append(_F(PARA=listpara[i] ,LISTE_K=dicotabl[listpara[i]] )) + if listtype[i]=='I': + mcfact.append(_F(PARA=listpara[i] ,LISTE_I=dicotabl[listpara[i]] )) + tabout = CREA_TABLE(LISTE=mcfact,TITRE = 'POST_DYNA_ALEA concept : '+self.sd.nom) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/post_gp_ops.py b/Aster/Cata/cataSTA9/Macro/post_gp_ops.py new file mode 100644 index 00000000..c72135c1 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/post_gp_ops.py @@ -0,0 +1,371 @@ +#@ MODIF post_gp_ops Macro DATE 31/10/2006 AUTEUR REZETTE C.REZETTE +# -*- 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. +# ====================================================================== + +from types import ListType, TupleType +EnumTypes = (ListType, TupleType) +from sets import Set + +# ----------------------------------------------------------------------------- +def post_gp_ops(self, **args): + """ + Corps de la macro POST_GP + """ + macro = 'POST_GP' + ier=0 + from Accas import _F + from Utilitai.Utmess import UTMESS + from Utilitai.Table import Table, merge + from Utilitai.t_fonction import t_fonction + import aster + + # ----- On importe les definitions des commandes a utiliser dans la macro + CALC_THETA = self.get_cmd('CALC_THETA') + CALC_G = self.get_cmd('CALC_G') + POST_ELEM = self.get_cmd('POST_ELEM') + POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') + CREA_TABLE = self.get_cmd('CREA_TABLE') + + # ----- Comptage, commandes + déclaration concept sortant + self.set_icmd(1) + self.DeclareOut('result', self.sd) + self.DeclareOut('tabresult', self['TABL_RESU']) + info = self['INFO'] + + # 0. ----- Type de calcul + identification = self['IDENTIFICATION'] != None + if identification: + # 0.1. --- identification : on boule sur les valeurs de TEMP. + # Pour chaque couple (T, Kjc(T)), on évalue les Ki, Kmoy et + # les valeurs de Gpmax, DeltaLmax, inst.max correspondantes. + mccalc = self['IDENTIFICATION'] + l_crit = mccalc['KJ_CRIT'] + lv_ident = [] + l_temp = mccalc['TEMP'] + else: + # 0.2. --- prédiction : on ne fait qu'une itération. + # Il faut un RESU_THER (sinon on utilise la température du + # premier Gpcrit et cà n'a pas trop d'intéret). + # A chaque instant, on regarde à quelle température est le + # fond d'entaille et on compare Gpmax à cet instant au Gpcrit. + mccalc = self['PREDICTION'] + l_crit = mccalc['GP_CRIT'] + lv_pred = [] + l_temp = mccalc['TEMP'][0] + + if not type(l_temp) in EnumTypes: + l_temp = [l_temp,] + if not type(l_crit) in EnumTypes: + l_crit = [l_crit,] + + # 1. ----- calcul de G-theta + nbcour = len(self['THETA_2D']) + l_tab = [] + for occ in self['THETA_2D']: + dMC = occ.cree_dict_valeurs(occ.mc_liste) + + __theta = CALC_THETA(MODELE=self['MODELE'], + DIRECTION=self['DIRECTION'], + THETA_2D=_F(GROUP_NO=dMC['GROUP_NO'], + MODULE=1.0, + R_INF=dMC['R_INF'], + R_SUP=dMC['R_SUP']),) + + __gtheta = CALC_G(THETA=_F(THETA=__theta), + EXCIT=self['EXCIT'].List_F(), + RESULTAT=self['RESULTAT'], + TOUT_ORDRE='OUI', + SYME_CHAR=self['SYME_CHAR'], + COMP_ELAS=self['COMP_ELAS'].List_F(),) + + tab = __gtheta.EXTR_TABLE() + + # une Table par couronne + l_tab.append(tab) + + # 2. ----- Calcul de l'energie élastique en exploitant les groupes de + # mailles fournis par la procedure de maillage + l_copo = [grma.strip() for grma in self['GROUP_MA']] + nbcop = len(l_copo) + l_charg = [charg['CHARGE'] for charg in self['EXCIT']] + + __ener = POST_ELEM(MODELE=self['MODELE'], + RESULTAT=self['RESULTAT'], + CHARGE=l_charg, + TOUT_ORDRE='OUI', + ENER_ELAS=_F(GROUP_MA=l_copo), + TITRE='Energie élastique',) + + t_enel = __ener.EXTR_TABLE() + + # 2.1. ----- Indice de chaque copeau et deltaL + d_icop = dict(zip(l_copo, range(1, nbcop + 1))) + + l_lieu = [grma.strip() for grma in t_enel.LIEU.values()] + l_icop = [d_icop[grma] for grma in l_lieu] + t_enel['ICOP'] = l_icop + t_enel.fromfunction('DELTAL', fDL, 'ICOP', { 'pascop' : self['PAS_ENTAILLE'] }) + + # 2.2. ----- Calcul de Gp fonction de Ener.Totale et de deltaL + t_enel.fromfunction('GP', fGp_Etot, ('TOTALE', 'ICOP'), + { 'pascop' : self['PAS_ENTAILLE'], + 'syme' : self['SYME_CHAR'] != 'SANS', + 'R' : self['RAYON_AXIS'] }) + + # 2.3. ----- Tableau de Gp = f(icop) pour chaque instant + if info >= 2: + tGp_t_icop = t_enel['INST', 'DELTAL', 'GP'] + tGp_t_icop.titr = "Gp à chaque instant en fonction de la distance au " \ + "fond d'entaille" + tGp_t_icop.ImprTabCroise() + + # 2.4. ----- Table Gpmax + ttmp = t_enel['NUME_ORDRE', 'INST', 'ICOP', 'DELTAL', 'GP'] + l_numord = list(Set(ttmp.NUME_ORDRE.values())) + l_numord.sort() + for j in l_numord: + tj = ttmp.NUME_ORDRE == j + if self['CRIT_MAXI_GP'] == 'ABSOLU': + t = tj.GP.MAXI() + else: + t = MaxRelatif(tj, 'GP') + if j == 1: + tb_Gpmax = t + else: + tb_Gpmax = tb_Gpmax | t + tb_Gpmax.Renomme('GP', 'GPMAX') + tb_Gpmax.Renomme('ICOP', 'ICOPMAX') + tb_Gpmax.Renomme('DELTAL', 'DELTALMAX') + tb_Gpmax.titr = 'Gpmax à chaque instant' + if info >= 2: + print tb_Gpmax + + # 2.5. ----- extraction de la température en fond d'entaille + if self['RESU_THER']: + grno_fond = self['THETA_2D'][0]['GROUP_NO'] + __relev = POST_RELEVE_T(ACTION=_F(RESULTAT=self['RESU_THER'], + OPERATION='EXTRACTION', + INTITULE='Temperature', + NOM_CHAM='TEMP', + TOUT_ORDRE='OUI', + NOM_CMP='TEMP', + GROUP_NO=grno_fond,),) + t_relev = __relev.EXTR_TABLE()['NUME_ORDRE', 'TEMP'] + + + # 3. ----- boucle sur les mots-clés facteurs + # opérations dépendant de la température + MATER = self['MATER'] + flag_mat = True + + for iocc, TEMP in enumerate(l_temp): + # 3.0. ----- Temperature fonction du temps : si on n'a pas de RESU_THER, + # on prend la température d'identification. + if not self['RESU_THER']: + l_rows = [{'NUME_ORDRE' : i, 'TEMP' : TEMP} for i in l_numord] + t_relev = Table(rows=l_rows, para=('NUME_ORDRE', 'TEMP'), typ=('R', 'R')) + flag_mat = True + + # 3.1. ----- extrait du matériau E(TEMP) et NU(TEMP) (si nécessaire) + if flag_mat: + t_relev.fromfunction('YOUNG', CallRCVALE, 'TEMP', + { 'para' : 'E', 'MATER' : MATER }) + t_relev.fromfunction('NU', CallRCVALE, 'TEMP', + { 'para' : 'NU', 'MATER' : MATER }) + #tb_Gpmax = merge(tb_Gpmax, t_relev, 'NUME_ORDRE') + flag_mat = False + + # 3.2. ----- paramètres + dict_constantes = { + 'YOUNG' : CallRCVALE(TEMP, 'E', MATER), + 'NU' : CallRCVALE(TEMP, 'NU', MATER), + 'R' : self['RAYON_AXIS'], + } + + # 3.3. ----- calcul de Kj(G) + l_tabi = [] + for k, tab in enumerate(l_tab): + # fusion avec TEMP, E et nu. + tab = merge(tab, t_relev, 'NUME_ORDRE') + + # calcul de Kj(G) = K_i + new_para = 'K_%d' % (k + 1) + tab.fromfunction(new_para, fKj, ('G', 'YOUNG', 'NU'), + { 'R' : self['RAYON_AXIS'] }) + + # renomme G en G_i + tab.Renomme('G', 'G_%d' % (k + 1)) + l_tabi.append(tab) + + # 3.4 ----- Table des Gi, Ki sur les differentes couronnes + Kmoyen + tabK_G = l_tabi[0]['NUME_ORDRE'] + for tab in l_tabi: + tabK_G = merge(tabK_G, tab, 'NUME_ORDRE') + tabK_G.titr = 'G et K sur les differentes couronnes + moyennes' + tabK_G.fromfunction('GMOY', moyenne, ['G_%d' % (k + 1) for k in range(nbcour)]) + tabK_G.fromfunction('KMOY', moyenne, ['K_%d' % (k + 1) for k in range(nbcour)]) + + # 3.5. ----- Contribution à la table globale + tabres = merge(tabK_G, tb_Gpmax, 'NUME_ORDRE') + tabres['OCCURRENCE'] = [iocc + 1] * len(l_numord) + if info >= 2: + print tabres + + # 3.5.1. --- Table globale + if iocc == 0: + tabl_glob = tabres + else: + tabl_glob = merge(tabl_glob, tabres) + tabl_glob.titr = 'G, K sur les differentes couronnes, Gmoy, Kmoy et ' \ + 'Gpmax fonctions du temps' + + # 3.6. ----- traitement selon identification / prédiction + d_para = { + 'INTERPOL' : ['LIN', 'LIN'], + 'NOM_PARA' : 'INST', + 'PROL_DROITE' : 'CONSTANT', + 'PROL_GAUCHE' : 'CONSTANT', + } + # Gpmax fonction du temps + d_para.update({ 'NOM_RESU' : 'GPMAX' }) + fGp = t_fonction(tabres.INST.values(), tabres.GPMAX.values(), d_para) + + # 3.6.1. --- identification + if identification: + KJ_CRIT = l_crit[iocc] + # définition des fonctions pour faire les interpolations + d_para.update({ 'NOM_RESU' : 'DELTALMAX' }) + fdL = t_fonction(tabres.INST.values(), tabres.DELTALMAX.values(), d_para) + + d_para.update({ 'NOM_PARA' : 'KMOY', + 'NOM_RESU' : 'INST', }) + valkmoy = tabres.KMOY.values() + finv = t_fonction(valkmoy, tabres.INST.values(), d_para) + + if not (min(valkmoy) <= KJ_CRIT <= max(valkmoy)): + UTMESS('A', macro, 'Interpolation hors du domaine (prolongement ' \ + 'constant utilisé).') + # valeurs à mettre dans la table + ti = finv(KJ_CRIT) + Gpi = fGp(ti) + d_ident = { + 'KJ_CRIT' : KJ_CRIT, + 'INST' : ti, + 'GPMAX' : Gpi, + 'KGPMAX' : fKj(Gpi, **dict_constantes), + 'DELTALMAX' : fdL(ti), + } + lv_ident.append(d_ident) + + # 3.6.2. --- prédiction + else: + pass + + # 4. ----- Construction de la table résultat si demandée + # 4.1. --- identification + if identification: + tab_ident = Table(rows=lv_ident, + para=('KJ_CRIT', 'INST', 'GPMAX', 'KGPMAX', 'DELTALMAX'), + typ= ('R', 'R', 'R', 'R', 'R'), + titr='Identification aux valeurs de tenacités critiques') + dprod_result = tab_ident.dict_CREA_TABLE() + if info >= 2: + print tab_ident + + # 4.2. --- prédiction + else: + # définition de la fonction GPcrit = f(TEMP) + d_para.update({ 'NOM_PARA' : 'TEMP', + 'NOM_RESU' : 'GP_CRIT', }) + fGpc = t_fonction(mccalc['TEMP'], mccalc['GP_CRIT'], d_para) + + tab_pred = tabl_glob['NUME_ORDRE', 'INST', 'TEMP', 'DELTALMAX', 'GPMAX'] + tab_pred.fromfunction('GP_CRIT', fGpc, 'TEMP') + tab_pred.fromfunction('PREDICTION', crit, ('GP_CRIT', 'GPMAX')) + tab_pred.titr = 'Comparaison Gpmax à Gpcrit(T)' + dprod_result = tab_pred.dict_CREA_TABLE() + + # 9. ----- création de la table_sdaster résultat + dprod = tabl_glob.dict_CREA_TABLE() + result = CREA_TABLE(**dprod) + tabresult = CREA_TABLE(**dprod_result) + + + +# ----------------------------------------------------------------------------- +def CallRCVALE(TEMP, para, MATER): + """Fonction appelant RCVALE et retourne la valeur d'un paramètre. + """ + valres, flag_ok = MATER.RCVALE('ELAS', 'TEMP', TEMP, para) + assert list(flag_ok).count('OK') != 1, \ + 'Erreur lors de la récupération des valeurs du matériau.' + return valres + +# ----------------------------------------------------------------------------- +def fKj(G, YOUNG, NU, R): + """Calcul de Kj à partir de G (formule d'Irwin) + """ + return (G / R * YOUNG / (1.0 - NU**2))**0.5 + +# ----------------------------------------------------------------------------- +def fDL(ICOP, pascop): + """DeltaL = numéro copeau * pas d'entaille + """ + return ICOP * pascop + +# ----------------------------------------------------------------------------- +def fGp_Etot(TOTALE, ICOP, pascop, R, syme=False): + """Gp(Etotale, K), deltal pris dans le context global. + ICOP : numéro du copeau, + pascop : pas d'entaille. + syme : True s'il y a symétrie. + """ + fact_axis = 1. + if syme: + fact_axis = 2. + return fact_axis * TOTALE / (fDL(ICOP, pascop) * R) + +# ----------------------------------------------------------------------------- +def MaxRelatif(table, nom_para): + """Extrait le dernier maxi du champ `nom_para` de la table. + """ + l_val = getattr(table, nom_para).values() + l_val.reverse() + Vlast = l_val[0] + for val in l_val: + if val < Vlast: + break + Vlast = val + return getattr(table, nom_para) == Vlast + +# ----------------------------------------------------------------------------- +def crit(GP_CRIT, GPMAX): + """Retourne 1 quand GP_CRIT > GPMAX + """ + if GPMAX > GP_CRIT: + return 1 + else: + return 0 + +# ----------------------------------------------------------------------------- +def moyenne(*args): + """Fonction moyenne + """ + return sum(args)/len(args) + diff --git a/Aster/Cata/cataSTA9/Macro/post_k1_k2_k3_ops.py b/Aster/Cata/cataSTA9/Macro/post_k1_k2_k3_ops.py new file mode 100644 index 00000000..0a6f3723 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/post_k1_k2_k3_ops.py @@ -0,0 +1,1122 @@ +#@ MODIF post_k1_k2_k3_ops Macro DATE 05/03/2007 AUTEUR GALENNE E.GALENNE +# -*- 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. +# ====================================================================== + +def veri_tab(tab,nom,ndim) : + from Utilitai.Utmess import UTMESS + macro = 'POST_K1_K2_K3' + for label in ('DX','DY','COOR_X','COOR_Y','ABSC_CURV') : + if label not in tab.para : + message='le label '+label+' doit etre present dans la table : '+nom + UTMESS('F', macro, message) + if ndim==3 : + if 'DZ' not in tab.para : + message='le label DZ doit etre present dans la table : '+nom + UTMESS('F', macro, message) + if 'COOR_Z' not in tab.para : + message='le label COOR_Z doit etre present dans la table : '+nom + UTMESS('F', macro, message) + +def cross_product(a,b): + cross = [0]*3 + cross[0] = a[1]*b[2]-a[2]*b[1] + cross[1] = a[2]*b[0]-a[0]*b[2] + cross[2] = a[0]*b[1]-a[1]*b[0] + return cross + +def complete(Tab): + n = len(Tab) + for i in range(n) : + if Tab[i]==None : Tab[i] = 0. + return Tab + +def moy(t): + m = 0 + for value in t : + m += value + return (m/len(t)) + +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, + TOUT_ORDRE,NUME_ORDRE,LIST_ORDRE,INST,LIST_INST,SYME_CHAR, + INFO,VECT_K1,TITRE,**args): + """ + Macro POST_K1_K2_K3 + Calcul des facteurs d'intensité de contraintes en 2D et en 3D + par extrapolation des sauts de déplacements sur les lèvres de + la fissure. Produit une table. + """ + import aster + import string + import copy + import math + import Numeric + from Numeric import array,asarray,Float,sqrt,matrixmultiply,transpose,sign,resize,dot,multiply + from math import pi + from types import ListType, TupleType + from Accas import _F + from Utilitai.Table import Table, merge + EnumTypes = (ListType, TupleType) + + macro = 'POST_K1_K2_K3' + from Accas import _F + from Utilitai.Utmess import UTMESS + + ier = 0 + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type table_sdaster ou dérivé) 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') + POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') + DETRUIRE = self.get_cmd('DETRUIRE') + DEFI_GROUP = self.get_cmd('DEFI_GROUP') + MACR_LIGN_COUPE = self.get_cmd('MACR_LIGN_COUPE') + + AFFE_MODELE = self.get_cmd('AFFE_MODELE') + PROJ_CHAMP = self.get_cmd('PROJ_CHAMP') + +# ------------------------------------------------------------------ +# CARACTERISTIQUES MATERIAUX +# ------------------------------------------------------------------ + matph = aster.getvectjev( string.ljust(MATER.nom,8)+'.MATERIAU.NOMRC ') + phenom=None + for cmpt in matph : + if cmpt[:4]=='ELAS' : + phenom=cmpt + break + if phenom==None : UTMESS('F', macro, 'IL FAUT DEFINIR ELAS DANS DEFI_MATERIAU') +# --- RECHERCHE SI LE MATERIAU DEPEND DE LA TEMPERATURE: + valk = aster.getvectjev( string.ljust(MATER.nom,8)+'.'+phenom[:10]+'.VALK') + valk = [x.strip() for x in valk] + valr = aster.getvectjev( string.ljust(MATER.nom,8)+'.'+phenom[:10]+'.VALR') + dicmat=dict(zip(valk,valr)) +# --- PROPRIETES MATERIAUX DEPENDANTES DE LA TEMPERATURE + Tempe3D = False + if dicmat.has_key('TEMP_DEF') and FOND_FISS and RESULTAT : +# on recupere juste le nom du resultat thermique + ndim = 3 + Lchar = aster.getvectjev(string.ljust(RESULTAT.nom,8)+'.0000.EXCIT.LCHA ') + for i in range(len(Lchar)): + resuth = aster.getvectjev(Lchar[i][0:8]+'.CHME.TEMPE.TEMP ') + if resuth !=None : + Tempe3D = True + break + elif dicmat.has_key('TEMP_DEF') and not Tempe3D : + message = 'LES PROPRIETES MATERIAUX, NECESSAIRES AUX CALCULS \n' + message = message +'DES COEFFICIENTS D INTENSITE DES CONTRAINTES, ONT ETE OBTENUES A LA\n' + message = message +'TEMPERATURE DE REFERENCE DU MATERIAU ET NON A LA TEMPERATURE CALCULEE.' + UTMESS('A', macro, message) + nompar = ('TEMP',) + valpar = (dicmat['TEMP_DEF'],) + nomres=['E','NU'] + valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F') + e = valres[0] + nu = valres[1] + + +# --- PROPRIETES MATERIAUX INDEPENDANTES DE LA TEMPERATURE + else : + e = dicmat['E'] + nu = dicmat['NU'] + + if not Tempe3D : + coefd3 = 0. + coefd = e * sqrt(2.*pi) + unmnu2 = 1. - nu**2 + unpnu = 1. + nu + if MODELISATION=='3D' : + UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2 K3') + ndim = 3 + coefd = coefd / ( 8.0 * unmnu2 ) + coefd3 = e*sqrt(2*pi) / ( 8.0 * unpnu ) + coefg = unmnu2 / e + coefg3 = unpnu / e + elif MODELISATION=='AXIS' : + ndim = 2 + coefd = coefd / ( 8. * unmnu2 ) + coefg = unmnu2 / e + coefg3 = unpnu / e + elif MODELISATION=='D_PLAN' : + UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2') + ndim = 2 + coefd = coefd / ( 8. * unmnu2 ) + coefg = unmnu2 / e + coefg3 = unpnu / e + elif MODELISATION=='C_PLAN' : + UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2') + ndim = 2 + coefd = coefd / 8. + coefg = 1. / e + coefg3 = unpnu / e + else : + UTMESS('F', macro, 'modélisation non implantée') + + +# ------------------------------------------------------------------ +# CAS FOND_FISS +# ------------------------------------------------------------------ + if FOND_FISS : + MAILLAGE = args['MAILLAGE'] + NOEUD = args['NOEUD'] + SANS_NOEUD = args['SANS_NOEUD'] + GROUP_NO = args['GROUP_NO'] + SANS_GROUP_NO = args['SANS_GROUP_NO'] + TOUT = args['TOUT'] + TYPE_MAILLAGE = args['TYPE_MAILLAGE'] + NB_NOEUD_COUPE = args['NB_NOEUD_COUPE'] + if NB_NOEUD_COUPE ==None : NB_NOEUD_COUPE = 5 + LNOFO = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND .NOEU ') + RECOL = False +# Cas double fond de fissure : par convention les noeuds sont ceux de fond_inf + if LNOFO==None : + RECOL = True + LNOFO = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND_INF .NOEU ') + if LNOFO==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DES NOEUDS DU FOND DE FISSURE \n') + LNOFO = map(string.rstrip,LNOFO) + Nbfond = len(LNOFO) + + if MODELISATION=='3D' : +# ----------Mots cles TOUT, NOEUD, SANS_NOEUD ------------- + Typ = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND .TYPE ') + if (Typ[0]=='SEG2 ') or (Typ[0]=='SEG3 ' and TOUT=='OUI') : + pas = 1 + elif (Typ[0]=='SEG3 ') : + pas = 2 + else : + UTMESS('F', macro, 'TYPE DE MAILLES DU FOND DE FISSURE NON DEFINI') +#### + NO_SANS = [] + NO_AVEC = [] + if GROUP_NO!=None : + collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO') + cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE') + if type(GROUP_NO) not in EnumTypes : GROUP_NO = (GROUP_NO,) + for m in range(len(GROUP_NO)) : + ngrno=GROUP_NO[m].ljust(8).upper() + if ngrno not in collgrno.keys() : + UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE") + for i in range(len(collgrno[ngrno])) : NO_AVEC.append(cnom[collgrno[ngrno][i]-1]) + NO_AVEC= map(string.rstrip,NO_AVEC) + if NOEUD!=None : + if type(NOEUD) not in EnumTypes : NO_AVEC = (NOEUD,) + else : NO_AVEC = NOEUD + if SANS_GROUP_NO!=None : + collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO') + cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE') + if type(SANS_GROUP_NO) not in EnumTypes : SANS_GROUP_NO = (SANS_GROUP_NO,) + for m in range(len(SANS_GROUP_NO)) : + ngrno=SANS_GROUP_NO[m].ljust(8).upper() + if ngrno not in collgrno.keys() : + UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE") + for i in range(len(collgrno[ngrno])) : NO_SANS.append(cnom[collgrno[ngrno][i]-1]) + NO_SANS= map(string.rstrip,NO_SANS) + if SANS_NOEUD!=None : + if type(SANS_NOEUD) not in EnumTypes : NO_SANS = (SANS_NOEUD,) + else : NO_SANS = SANS_NOEUD +# Creation de la liste des noeuds du fond a traiter : Lnf1 + Lnf1 = [] + Nbf1 = 0 + if len(NO_AVEC)!=0 : + for i in range(len(NO_AVEC)) : + if NO_AVEC[i] in LNOFO : + Lnf1.append(NO_AVEC[i]) + Nbf1 = Nbf1 +1 + else : + UTMESS('F', macro, 'LE NOEUD %s N APPARTIENT PAS AU FOND DE FISSURE'%NO_AVEC[i]) + else : + for i in range(0,Nbfond,pas) : + if not (LNOFO[i] in NO_SANS) : + Lnf1.append(LNOFO[i]) + Nbf1 = Nbf1 +1 + else : + Lnf1 = LNOFO + Nbf1 = 1 + +##### Cas maillage libre########### +# creation des directions normales et macr_lign_coup + if TYPE_MAILLAGE =='LIBRE': + if not RESULTAT : UTMESS('F', macro, 'MOT CLE RESULTAT OBLIGATOIRE POUR TYPE_MAILLAGE = LIBRE') + Lnofon = Lnf1 + Nbnofo = Nbf1 + ListmaS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVRESUP .MAIL ') + if SYME_CHAR=='SANS': + ListmaI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVREINF .MAIL ') + __NCOFON=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds du fond', + NOEUD=LNOFO, + RESULTAT=RESULTAT, + NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',), + OPERATION='EXTRACTION',),); + tcoorf=__NCOFON.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__NCOFON),INFO=1) + nbt = len(tcoorf['NOEUD'].values()['NOEUD']) + xs=array(tcoorf['COOR_X'].values()['COOR_X'][:nbt],Float) + ys=array(tcoorf['COOR_Y'].values()['COOR_Y'][:nbt],Float) + if ndim==2 : zs=Numeric.zeros(nbt,Float) + elif ndim==3 : zs=array(tcoorf['COOR_Z'].values()['COOR_Z'][:nbt],Float) + ns = tcoorf['NOEUD'].values()['NOEUD'][:nbt] + ns = map(string.rstrip,ns) + l_coorf = [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)] + l_coorf = [(i[0],i[1:]) for i in l_coorf] + d_coorf = dict(l_coorf) +# Coordonnee d un pt quelconque des levres pr determination sens de propagation + cmail=aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMMAI') + for i in range(len(cmail)) : + if cmail[i] == ListmaS[0] : break + colcnx=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.CONNEX') + cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE') + NO_TMP = [] + for k in range(len(colcnx[i+1])) : NO_TMP.append(cnom[colcnx[i+1][k]-1]) + __NCOLEV=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees pt levre', + NOEUD = NO_TMP, + RESULTAT=RESULTAT, + NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',), + OPERATION='EXTRACTION',),); + tcoorl=__NCOLEV.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__NCOLEV),INFO=1) + nbt = len(tcoorl['NOEUD'].values()['NOEUD']) + xl=moy(tcoorl['COOR_X'].values()['COOR_X'][:nbt]) + yl=moy(tcoorl['COOR_Y'].values()['COOR_Y'][:nbt]) + zl=moy(tcoorl['COOR_Z'].values()['COOR_Z'][:nbt]) + Plev = array([xl, yl, zl]) +# Calcul des normales a chaque noeud du fond + v1 = array(VECT_K1) + VN = [None]*Nbfond + absfon = [0,] + if MODELISATION=='3D' : + DTANOR = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_ORIGINE') + Pfon2 = array([d_coorf[LNOFO[0]][0],d_coorf[LNOFO[0]][1],d_coorf[LNOFO[0]][2]]) + VLori = Pfon2 - Plev + if DTANOR != None : + VN[0] = array(DTANOR) + else : + Pfon3 = array([d_coorf[LNOFO[1]][0],d_coorf[LNOFO[1]][1],d_coorf[LNOFO[1]][2]]) + VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) + VN[0] = array(cross_product(VT,v1)) + for i in range(1,Nbfond-1): + Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]]) + Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]]) + Pfon3 = array([d_coorf[LNOFO[i+1]][0],d_coorf[LNOFO[i+1]][1],d_coorf[LNOFO[i+1]][2]]) + absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1] + absfon.append(absf) + VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) + VT = VT+(Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) + VN[i] = array(cross_product(VT,v1)) + VN[i] = VN[i]/sqrt(dot(transpose(VN[i]),VN[i])) + i = Nbfond-1 + Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]]) + Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]]) + VLextr = Pfon2 - Plev + absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1] + absfon.append(absf) + DTANEX = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_EXTREMITE') + if DTANEX != None : + VN[i] = array(DTANEX) + else : + VT = (Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) + VN[i] = array(cross_product(VT,v1)) + dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)]) + dicVN = dict([(LNOFO[i],VN[i]) for i in range(Nbfond)]) +#Sens de la tangente + v = cross_product(VLori,VLextr) + sens = sign(dot(transpose(v),v1)) +#Cas 2D + if MODELISATION!='3D' : + DTANOR = False + DTANEX = False + VT = array([0.,0.,1.]) + VN = array(cross_product(v1,VT)) + dicVN = dict([(LNOFO[0],VN)]) + Pfon = array([d_coorf[LNOFO[0]][0],d_coorf[LNOFO[0]][1],d_coorf[LNOFO[0]][2]]) + VLori = Pfon - Plev + sens = sign(dot(transpose(VN),VLori)) +#Extraction dep sup/inf sur les normales + TlibS = [None]*Nbf1 + TlibI = [None]*Nbf1 + if NB_NOEUD_COUPE < 3 : + message = 'LE NOMBRE DE NOEUDS NB_NOEUD_COUPE DOIT ETRE SUPERIEUR A 3 : ON PREND LA VALEUR PAR DEFAUT' + UTMESS('A', macro, message) + NB_NOEUD_COUPE = 5 + MOD = aster.getvectjev(string.ljust(RESULTAT.nom,19)+'.MODL ') + if MOD==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DU MODELE DANS LA SD RESULTAT FOURNIE') + MOD = map(string.rstrip,MOD) + MODEL = self.jdc.sds_dict[MOD[0]] + for i in range(Nbf1): + Porig = array(d_coorf[Lnf1[i]] ) + if Lnf1[i]==LNOFO[0] and DTANOR : Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]] + elif Lnf1[i]==LNOFO[Nbfond-1] and DTANEX : Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]] + else : Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]]*sens + TlibS[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT, + NOM_CHAM='DEPL',MODELE=MODEL, MAILLE = ListmaS, + 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]),),); + if SYME_CHAR=='SANS': + TlibI[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT, + NOM_CHAM='DEPL',MODELE=MODEL, MAILLE = ListmaI, + 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]),),); + + +##### Cas maillage regle########### + else: +# ---------- Dictionnaires des levres ------------- + NnormS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.SUPNORM .NOEU ') + if NnormS==None : + message= 'PROBLEME A LA RECUPERATION DES NOEUDS DE LA LEVRE SUP : VERIFIER ' + message=message+'QUE LE MOT CLE LEVRE_SUP EST BIEN RENSEIGNE DANS DEFI_FOND_FISS\n' + UTMESS('F', macro, message) + NnormS = map(string.rstrip,NnormS) + if LNOFO[0]==LNOFO[-1] and MODELISATION=='3D' : Nbfond=Nbfond-1 # Cas fond de fissure ferme + NnormS = [[LNOFO[i],NnormS[i*20:(i+1)*20]] for i in range(0,Nbfond)] + NnormS = [(i[0],i[1][0:]) for i in NnormS] + dicoS = dict(NnormS) + if SYME_CHAR=='SANS': + NnormI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.INFNORM .NOEU ') + if NnormI==None : + message= 'PROBLEME A LA RECUPERATION DES NOEUDS DE LA LEVRE INF : VERIFIER ' + message=message+'QUE LE MOT CLE LEVRE_INF EST BIEN RENSEIGNE DANS DEFI_FOND_FISS\n' + UTMESS('F', macro, message) + NnormI = map(string.rstrip,NnormI) + NnormI = [[LNOFO[i],NnormI[i*20:(i+1)*20]] for i in range(0,Nbfond)] + NnormI = [(i[0],i[1][0:]) for i in NnormI] + dicoI = dict(NnormI) + +# ---------- Dictionnaire des coordonnees ------------- + if RESULTAT : + Ltot = LNOFO + for i in range(Nbf1) : + for k in range(0,20) : + if dicoS[Lnf1[i]][k] !='': Ltot.append(dicoS[Lnf1[i]][k]) + if SYME_CHAR=='SANS': + for i in range(Nbf1) : + for k in range(0,20) : + if dicoI[Lnf1[i]][k] !='': Ltot.append(dicoI[Lnf1[i]][k]) + Ltot=dict([(i,0) for i in Ltot]).keys() + __NCOOR=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds des levres', + NOEUD=Ltot, + RESULTAT=RESULTAT, + NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',), + OPERATION='EXTRACTION',),); + tcoor=__NCOOR.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1) + else : + if SYME_CHAR=='SANS': + __NCOOR=CALC_TABLE(TABLE=TABL_DEPL_SUP, + ACTION=_F(OPERATION = 'COMB',NOM_PARA='NOEUD',TABLE=TABL_DEPL_INF,)) + tcoor=__NCOOR.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1) + else : + tcoor=TABL_DEPL_SUP.EXTR_TABLE() + nbt = len(tcoor['NOEUD'].values()['NOEUD']) + xs=array(tcoor['COOR_X'].values()['COOR_X'][:nbt],Float) + ys=array(tcoor['COOR_Y'].values()['COOR_Y'][:nbt],Float) + if ndim==2 : zs=Numeric.zeros(nbt,Float) + elif ndim==3 : zs=array(tcoor['COOR_Z'].values()['COOR_Z'][:nbt],Float) + ns = tcoor['NOEUD'].values()['NOEUD'][:nbt] + ns = map(string.rstrip,ns) + l_coor = [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)] + l_coor = [(i[0],i[1:]) for i in l_coor] + d_coor = dict(l_coor) + +# ---------- Abscisse curviligne du fond ------------- + absfon = [0,] + for i in range(Nbfond-1) : + Pfon1 = array([d_coor[LNOFO[i]][0],d_coor[LNOFO[i]][1],d_coor[LNOFO[i]][2]]) + Pfon2 = array([d_coor[LNOFO[i+1]][0],d_coor[LNOFO[i+1]][1],d_coor[LNOFO[i+1]][2]]) + absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i] + absfon.append(absf) + dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)]) + + +# ---Noeuds LEVRE_SUP et LEVRE_INF: ABSC_CURV_MAXI et PREC_VIS_A_VIS----- + + NBTRLS = 0 + NBTRLI = 0 + Lnosup = [None]*Nbf1 + Lnoinf = [None]*Nbf1 + Nbnofo = 0 + Lnofon = [] + precv = PREC_VIS_A_VIS + if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI + else : rmax = 100 + precn = precv * rmax + rmprec= rmax*(1.+precv/10.) + for i in range(0,Nbf1) : + Pfon = array([d_coor[Lnf1[i]][0],d_coor[Lnf1[i]][1],d_coor[Lnf1[i]][2]]) + Tmpsup = [] + Tmpinf = [] + itots = 0 + itoti = 0 + NBTRLS = 0 + NBTRLI = 0 + for k in range(0,20) : + if dicoS[Lnf1[i]][k] !='': + itots = itots +1 + Nsup = dicoS[Lnf1[i]][k] + Psup = array([d_coor[Nsup][0],d_coor[Nsup][1],d_coor[Nsup][2]]) + abss = sqrt(dot(transpose(Pfon-Psup),Pfon-Psup)) + if abssprecn : + message= 'LES NOEUDS NE SONT PAS EN VIS-A-VIS \n' + message=message+'DANS LE PLAN PERPENDICULAIRE AU NOEUD %s \n'%Lnf1[i] + UTMESS('A', macro, message) + else : + NBTRLI = NBTRLI +1 + Tmpinf.append(dicoI[Lnf1[i]][k]) +# On verifie qu il y a assez de noeuds + if NBTRLS < 3 : + message= 'IL MANQUE DES POINTS DANS LE PLAN DEFINI PAR LA LEVRE \n' + message=message+'SUPERIEURE ET PERPENDICULAIRE AU FOND %s :\n'%Lnf1[i] + if itots<3 : message=message+' Augmenter PREC_NORM dans DEFI_FOND_FISS \n' + else : message=message+' Augmenter ABSC_CURV_MAXI' + if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: message=message+' OU VERIFIER LES TANGENTES EXTREMITES' + UTMESS('A',macro, message) + elif (SYME_CHAR=='SANS') and (NBTRLI < 3) : + message= 'IL MANQUE DES POINTS DANS LE PLAN DEFINI PAR LA LEVRE \n' + message=message+'INFERIEURE ET PERPENDICULAIRE AU FOND %s :\n'%Lnf1[i] + if itoti<3 : message=message+' Augmenter PREC_NORM dans DEFI_FOND_FISS \n' + else : message=message+' Augmenter ABSC_CURV_MAXI' + if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: message=message+' OU VERIFIER LES TANGENTES EXTREMITES' + UTMESS('A',macro, message) + else : + Lnosup[Nbnofo] = Tmpsup + if SYME_CHAR=='SANS' : Lnoinf[Nbnofo] = Tmpinf + Lnofon.append(Lnf1[i]) + Nbnofo = Nbnofo+1 + if Nbnofo == 0 : + message= 'CALCUL POSSIBLE POUR AUCUN NOEUD DU FOND :' + message=message+' VERIFIER LES DONNEES' + UTMESS('F',macro, message) + +#------------- Cas X-FEM --------------------------------- + elif FISSURE : + MAILLAGE = args['MAILLAGE'] + DTAN_ORIG = args['DTAN_ORIG'] + DTAN_EXTR = args['DTAN_EXTR'] +#Projection du resultat sur le maillage lineaire initial + MOD = aster.getvectjev(string.ljust(RESULTAT.nom,19)+'.MODL ') + if MOD==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DU MODELE DANS LA SD RESULTAT FOURNIE') + MOD = map(string.rstrip,MOD) + MODEL = self.jdc.sds_dict[MOD[0]] + __MODLINE=AFFE_MODELE(MAILLAGE=MAILLAGE, + AFFE=(_F(TOUT='OUI', + PHENOMENE='MECANIQUE', + MODELISATION=MODELISATION,),),); + __RESLIN=PROJ_CHAMP(METHODE='ELEM',TYPE_CHAM='NOEU',NOM_CHAM='DEPL', + RESULTAT=RESULTAT, + MODELE_1=MODEL, + MODELE_2=__MODLINE, ); +#Recuperation des coordonnees des points du fond de fissure (x,y,z,absc_curv) + Listfo = aster.getvectjev(string.ljust(FISSURE.nom,8)+'.FONDFISS ') + Nbfond = len(Listfo)/4 +# Calcul des normales a chaque point du fond + v1 = array(VECT_K1) + v1 = v1/sqrt(v1[0]**2+v1[1]**2+v1[2]**2) + v1x = aster.getvectjev(string.ljust(FISSURE.nom,8)+'.GRLNNO .VALE ')[0:3] + v1x = array(v1x) + verif = dot(transpose(v1),v1x) + if verif < 0 : v1 = -v1 + if abs(verif) < 0.9 : + message= 'DIFFERENCE ENTRE LE VECTEUR VECT_K1 ET LA NORMALE AU PLAN DE LA FISSURE %s.\n'%FISSURE.nom + message=message+'ON CONTINUE AVEC LA NORMALE AU PLAN : (%f,%f,%f).'%(v1x[0],v1x[1],v1x[2]) + UTMESS('A',macro, message) + v1 = v1x + VN = [None]*Nbfond + absfon = [0,] + i = 0 + if MODELISATION=='3D' : + if DTAN_ORIG != None : + VN[i] = array(DTAN_ORIG) + 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]]) + VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) + VN[0] = array(cross_product(VT,v1)) + 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] + absfon.append(absf) + VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) + VT = VT+(Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) + VN[i] = array(cross_product(VT,v1)) + VN[i] = VN[i]/sqrt(dot(transpose(VN[i]),VN[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] + absfon.append(absf) + if DTAN_EXTR != None : + VN[i] = array(DTAN_EXTR) + else : + VT = (Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) + VN[i] = array(cross_product(VT,v1)) + else : + VT = array([0.,0.,1.]) + VN[i] = array(cross_product(v1,VT)) +#Sens de la tangente + if MODELISATION=='3D' : i = Nbfond/2 + else : i = 0 + Po = array([Listfo[4*(i-1)],Listfo[4*(i-1)+1],Listfo[4*(i-1)+2]]) + Porig = Po + ABSC_CURV_MAXI*VN[i] + Pextr = Po - ABSC_CURV_MAXI*VN[i] + __Tabg = MACR_LIGN_COUPE(RESULTAT=__RESLIN,NOM_CHAM='DEPL', + LIGN_COUPE=_F(NB_POINTS=3,COOR_ORIG=(Porig[0],Porig[1],Porig[2],), + TYPE='SEGMENT',COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),),); + tmp=__Tabg.EXTR_TABLE() + test = getattr(tmp,'H1X').values() + if test==[None]*3 : + message = 'PROBLEME DANS LA RECUPERATION DU SAUT DE DEPLACEMENT SUR LES LEVRES :\n ' + message=message+'VERIFIER QUE LE RESULTAT CORRESPOND BIEN A UN CALCUL SUR DES ELEMENT X-FEM ET QUE\n ' + message=message+'LE MAILLAGE FOURNI EST BIEN LE MAILLAGE LINEAIRE INITIAL' + UTMESS('F',macro, message) + if test[0]!=None : + sens = 1 + else : + 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 : + message = 'LE NOMBRE DE NOEUDS NB_NOEUD_COUPE DOIT ETRE SUPERIEUR A 3 : ON PREND LA VALEUR PAR DEFAUT' + UTMESS('A', macro, message) + NB_NOEUD_COUPE = 5 + for i in range(Nbfond): + Porig = array([Listfo[4*i],Listfo[4*i+1],Listfo[4*i+2]]) + if i==0 and DTAN_ORIG!=None : Pextr = Porig - ABSC_CURV_MAXI*VN[i] + elif i==(Nbfond-1) and DTAN_EXTR!=None : Pextr = Porig - ABSC_CURV_MAXI*VN[i] + else : Pextr = Porig + ABSC_CURV_MAXI*VN[i]*sens + TSaut[i] = MACR_LIGN_COUPE(RESULTAT=__RESLIN,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]),),); + + Nbnofo = Nbfond + DETRUIRE(CONCEPT=_F(NOM=__MODLINE),INFO=1) + DETRUIRE(CONCEPT=_F(NOM=__RESLIN),INFO=1) + + + else : + Nbnofo = 1 + +# ----------Recuperation de la temperature au fond ------------- + if Tempe3D : + resuth = map(string.rstrip,resuth) + Rth = self.jdc.sds_dict[resuth[0]] + __TEMP=POST_RELEVE_T(ACTION=_F(INTITULE='Temperature fond de fissure', + NOEUD=Lnofon,TOUT_CMP='OUI', + RESULTAT=Rth,NOM_CHAM='TEMP',TOUT_ORDRE='OUI', + OPERATION='EXTRACTION',),); + tabtemp=__TEMP.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__TEMP),INFO=1) + + +# ------------------------------------------------------------------ +# BOUCLE SUR NOEUDS DU FOND +# ------------------------------------------------------------------ + for ino in range(0,Nbnofo) : + if FOND_FISS and INFO==2 : + texte="\n\n--> TRAITEMENT DU NOEUD DU FOND DE FISSURE: %s"%Lnofon[ino] + aster.affiche('MESSAGE',texte) + if FISSURE and INFO==2 : + texte="\n\n--> TRAITEMENT DU POINT DU FOND DE FISSURE NUMERO %s"%(ino+1) + aster.affiche('MESSAGE',texte) +# ------------------------------------------------------------------ +# TABLE 'DEPSUP' +# ------------------------------------------------------------------ + if FOND_FISS : + if TYPE_MAILLAGE =='LIBRE': + tabsup=TlibS[ino].EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=TlibS[ino]),INFO=1) + elif RESULTAT : + __TSUP=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement SUP', + NOEUD=Lnosup[ino], + RESULTAT=RESULTAT, + NOM_CHAM='DEPL', + TOUT_ORDRE='OUI', + NOM_CMP=('DX','DY','DZ',), + OPERATION='EXTRACTION',),); + tabsup=__TSUP.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__TSUP),INFO=1) + else : + tabsup=TABL_DEPL_SUP.EXTR_TABLE() + veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim) + 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) + else : + tabsup=TABL_DEPL_SUP.EXTR_TABLE() + veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim) + +# ------------------------------------------------------------------ +# TABLE 'DEPINF' +# ------------------------------------------------------------------ + if SYME_CHAR=='SANS' and not FISSURE : + if FOND_FISS : + if TYPE_MAILLAGE =='LIBRE': + tabinf=TlibI[ino].EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=TlibI[ino]),INFO=1) + elif RESULTAT : + __TINF=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement INF', + NOEUD=Lnoinf[ino], + RESULTAT=RESULTAT, + NOM_CHAM='DEPL', + TOUT_ORDRE='OUI', + NOM_CMP=('DX','DY','DZ',), + OPERATION='EXTRACTION',),); + tabinf=__TINF.EXTR_TABLE() + DETRUIRE(CONCEPT=_F(NOM=__TINF),INFO=1) + else : + tabinf=TABL_DEPL_INF.EXTR_TABLE() + if TABL_DEPL_INF==None : UTMESS('F', macro, 'TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires si SYME_CHAR=SANS') + veri_tab(tabinf,TABL_DEPL_INF.nom,ndim) + Li = [string.ljust(Lnoinf[ino][i],8) for i in range(len(Lnoinf[ino]))] + tabinf=tabinf.NOEUD==Li + else : + if TABL_DEPL_INF==None : UTMESS('F', macro, 'TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires si SYME_CHAR=SANS') + tabinf=TABL_DEPL_INF.EXTR_TABLE() + veri_tab(tabinf,TABL_DEPL_INF.nom,ndim) + + +# ------------------------------------------------------------------ +# LES INSTANTS DE POST-TRAITEMENT +# ------------------------------------------------------------------ + if 'INST' in tabsup.para : + l_inst=None + l_inst_tab=tabsup['INST'].values()['INST'] + l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys() #elimine les doublons + l_inst_tab.sort() + if LIST_ORDRE !=None or NUME_ORDRE !=None : + l_ord_tab = tabsup['NUME_ORDRE'].values()['NUME_ORDRE'] + l_ord_tab.sort() + l_ord_tab=dict([(i,0) for i in l_ord_tab]).keys() + d_ord_tab= [[l_ord_tab[i],l_inst_tab[i]] for i in range(0,len(l_ord_tab))] + d_ord_tab= [(i[0],i[1]) for i in d_ord_tab] + d_ord_tab = dict(d_ord_tab) + if NUME_ORDRE !=None : + if type(NUME_ORDRE) not in EnumTypes : NUME_ORDRE=(NUME_ORDRE,) + l_ord=list(NUME_ORDRE) + elif LIST_ORDRE !=None : + l_ord= aster.getvectjev(string.ljust(LIST_ORDRE.nom,19)+'.VALE') + l_inst = [] + for ord in l_ord : + if ord in l_ord_tab : l_inst.append(d_ord_tab[ord]) + else : + message ='LE NUMERO D ORDRE %i N A PAS ETE ETE TROUVE DANS LA TABLE\n'%ord + UTMESS('F', macro, message) + PRECISION = 1.E-6 + CRITERE='ABSOLU' + elif INST !=None or LIST_INST !=None : + CRITERE = args['CRITERE'] + PRECISION = args['PRECISION'] + if INST !=None : + if type(INST) not in EnumTypes : INST=(INST,) + l_inst=list(INST) + elif LIST_INST !=None : l_inst=LIST_INST.Valeurs() + for inst in l_inst : + if CRITERE=='RELATIF' and inst!=0.: match=[x for x in l_inst_tab if abs((inst-x)/inst)=2 : + message = 'PLUSIEURS INSTANTS TROUVES DANS LA TABLE POUR L INSTANT %f\n'%inst + UTMESS('F', macro, message) + else : + l_inst=l_inst_tab + PRECISION = 1.E-6 + CRITERE='ABSOLU' + else : + l_inst = [None,] + +# ------------------------------------------------------------------ +# BOUCLE SUR LES INSTANTS +# ------------------------------------------------------------------ + for iord in range(len(l_inst)) : + inst=l_inst[iord] + if INFO==2 and inst!=None: + texte="#================================================================================\n" + texte=texte+"==> INSTANT: %f"%inst + aster.affiche('MESSAGE',texte) + if inst!=None: + if PRECISION == None : PRECISION = 1.E-6 + if CRITERE == None : CRITERE='ABSOLU' + if inst==0. : + tabsupi=tabsup.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION) + if SYME_CHAR=='SANS'and not FISSURE: tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION) + else : + tabsupi=tabsup.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION) + if SYME_CHAR=='SANS' and not FISSURE: tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION) + else : + tabsupi=tabsup + if SYME_CHAR=='SANS' and not FISSURE : tabinfi=tabinf + +# --- LEVRE SUP : "ABSC_CURV" CROISSANTES, < RMAX ET DEP --- + abscs = getattr(tabsupi,'ABSC_CURV').values() + if not FISSURE : + if not FOND_FISS : + refs=copy.copy(abscs) + refs.sort() + if refs!=abscs : UTMESS('F', macro, 'ABSC_CURV NON CROISSANTS POUR TABL_DEPL_INF') + if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI + else : rmax = abscs[-1] + precv = PREC_VIS_A_VIS + rmprec= rmax*(1.+precv/10.) + refsc=[x for x in refs if xprecn : UTMESS('F', macro, 'LES NOEUDS NE SONT PAS EN VIS_A_VIS') + + if FOND_FISS and not RESULTAT :#tri des noeuds avec abscisse + Pfon = array([d_coor[Lnofon[ino]][0],d_coor[Lnofon[ino]][1],d_coor[Lnofon[ino]][2]]) + absci = sqrt((coxi-Pfon[0])**2+(coyi-Pfon[1])**2+(cozi-Pfon[2])**2) + tabinfi['Abs_fo'] = absci + tabinfi.sort('Abs_fo') + absci = getattr(tabinfi,'Abs_fo').values() + absci=array(abscs[:nbval]) + coxi=array(tabinfi['COOR_X'].values()['COOR_X'][:nbval],Float) + coyi=array(tabinfi['COOR_Y'].values()['COOR_Y'][:nbval],Float) + if ndim==2 : cozi=Numeric.zeros(nbval,Float) + elif ndim==3 : cozi=array(tabinfi['COOR_Z'].values()['COOR_Z'][:nbval],Float) + + dxi=array(tabinfi['DX'].values()['DX'][:nbval],Float) + dyi=array(tabinfi['DY'].values()['DY'][:nbval],Float) + if ndim==2 : dzi=Numeric.zeros(nbval,Float) + elif ndim==3 : dzi=array(tabinfi['DZ'].values()['DZ'][:nbval],Float) + + if FOND_FISS and INFO==2 and iord==0 and not TYPE_MAILLAGE =='LIBRE': + for ki in range(0,nbval) : + texte="NOEUD RETENU POUR LA LEVRE INF: %s %f"%(Lnoinf[ino][ki],absci[ki]) + aster.affiche('MESSAGE',texte) + +# --- CAS FISSURE X-FEM --- + if FISSURE : + nbval = NB_NOEUD_COUPE + H1 = getattr(tabsupi,'H1X').values() + if H1[-1]==None : + message = 'PROBLEME DANS LA RECUPERATION DU SAUT DE DEPLACEMENT SUR LES LEVRES :\n ' + message=message+'VERIFIER QUE LE RESULTAT CORRESPOND BIEN A UN CALCUL SUR DES ELEMENT X-FEM ET QUE\n ' + message=message+'LE MAILLAGE FOURNI EST BIEN LE MAILLAGE LINEAIRE INITIAL' + UTMESS('F',macro, message) + H1 = complete(H1) + E1 = getattr(tabsupi,'E1X').values() + E1 = complete(E1) + dxs = 2*(H1 + sqrt(abscs)*E1) + H1 = getattr(tabsupi,'H1Y').values() + E1 = getattr(tabsupi,'E1Y').values() + H1 = complete(H1) + E1 = complete(E1) + dys = 2*(H1 + sqrt(abscs)*E1) + H1 = getattr(tabsupi,'H1Z').values() + E1 = getattr(tabsupi,'E1Z').values() + H1 = complete(H1) + E1 = complete(E1) + dzs = 2*(H1 + sqrt(abscs)*E1) + abscs=array(abscs[:nbval]) + +# --- TESTS NOMBRE DE NOEUDS--- + if nbval<3 : + message= 'IL FAUT AU MOINS TROIS NOEUDS DANS LE PLAN DEFINI PAR LES LEVRES ET PERPENDICULAIRE AU FOND DE FISSURE' + if FOND_FISS : message=message+'Noeud %.s \n'%Lnofon[ino] + message=message+' : augmenter ABSC_CURV_MAXI\n' + UTMESS('F',macro, message) + +# ---------- CALCUL PROP. MATERIAU AVEC TEMPERATURE ----------- + if Tempe3D : + tempeno=tabtemp.NOEUD==Lnofon[ino] + tempeno=tempeno.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION) + nompar = ('TEMP',) + valpar = (tempeno.TEMP.values()[0],) + nomres=['E','NU'] + valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F') + e = valres[0] + nu = valres[1] + coefd = e * sqrt(2.*pi) / ( 8.0 * (1. - nu**2)) + coefd3 = e*sqrt(2*pi) / ( 8.0 * (1. + nu)) + coefg = (1. - nu**2) / e + coefg3 = (1. + nu) / e + +# ------------------------------------------------------------------ +# CHANGEMENT DE REPERE +# ------------------------------------------------------------------ +# +# 1 : VECTEUR NORMAL AU PLAN DE LA FISSURE +# ORIENTE LEVRE INFERIEURE VERS LEVRE SUPERIEURE +# 2 : VECTEUR NORMAL AU FOND DE FISSURE EN M +# 3 : VECTEUR TANGENT AU FOND DE FISSURE EN M +# + if FISSURE : + v2 = 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 : + message= 'DEPLACEMENT NORMAL DU NOEUD %s NON NUL'%Lnofon[ino] + message=message+' ET SYME_CHAR = %s :\n'%SYME_CHAR + message=message+' VERIFIER LES CONDITIONS AUX LIMITES ET VECT_K1.' + UTMESS('A',macro, message) + 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] +# ------------------------------------------------------------------ +# --- 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) +# ------------------------------------------------------------------ +# --- 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) +# ------------------------------------------------------------------ +# --- 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) +# ------------------------------------------------------------------ +# CREATION DE LA TABLE +# ------------------------------------------------------------------ + kg=array([kg1,kg2,kg3]) + kg=transpose(kg) + mcfact=[] + if TITRE != None : + titre = TITRE + else : + v = aster.__version__ + titre = 'ASTER %s - CONCEPT CALCULE PAR POST_K1_K2_K3 LE &DATE A &HEURE \n'%v + if FOND_FISS and MODELISATION=='3D': + mcfact.append(_F(PARA='NOEUD_FOND',LISTE_K=[Lnofon[ino],]*3)) + mcfact.append(_F(PARA='ABSC_CURV',LISTE_R=[dicoF[Lnofon[ino]]]*3)) + if FISSURE and MODELISATION=='3D': + mcfact.append(_F(PARA='PT_FOND',LISTE_I=[ino+1,]*3)) + mcfact.append(_F(PARA='ABSC_CURV',LISTE_R=[absfon[ino],]*3)) + mcfact.append(_F(PARA='METHODE',LISTE_I=(1,2,3))) + mcfact.append(_F(PARA='K1_MAX' ,LISTE_R=kg[0].tolist() )) + mcfact.append(_F(PARA='K1_MIN' ,LISTE_R=kg[1].tolist() )) + mcfact.append(_F(PARA='K2_MAX' ,LISTE_R=kg[2].tolist() )) + mcfact.append(_F(PARA='K2_MIN' ,LISTE_R=kg[3].tolist() )) + if ndim==3 : + mcfact.append(_F(PARA='K3_MAX' ,LISTE_R=kg[4].tolist() )) + mcfact.append(_F(PARA='K3_MIN' ,LISTE_R=kg[5].tolist() )) + mcfact.append(_F(PARA='G_MAX' ,LISTE_R=kg[6].tolist() )) + mcfact.append(_F(PARA='G_MIN' ,LISTE_R=kg[7].tolist() )) + if (ino==0 and iord==0) and inst==None : + tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre) + elif iord==0 and ino==0 and inst!=None : + mcfact=[_F(PARA='INST' ,LISTE_R=[inst,]*3 )]+mcfact + tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre) + else : + if inst!=None : mcfact=[_F(PARA='INST' ,LISTE_R=[inst,]*3 )]+mcfact + __tabi=CREA_TABLE(LISTE=mcfact,) + npara = ['K1_MAX','METHODE'] + if inst!=None : npara.append('INST') + if FOND_FISS and MODELISATION=='3D' : npara.append('NOEUD_FOND') + tabout=CALC_TABLE(reuse=tabout,TABLE=tabout,TITRE = titre, + ACTION=_F(OPERATION = 'COMB',NOM_PARA=npara,TABLE=__tabi,)) + +# Tri de la table + if len(l_inst)!=1 and MODELISATION=='3D': + tabout=CALC_TABLE(reuse=tabout,TABLE=tabout, + ACTION=_F(OPERATION = 'TRI',NOM_PARA=('INST','ABSC_CURV','METHODE'),ORDRE='CROISSANT')) + + return ier + diff --git a/Aster/Cata/cataSTA9/Macro/post_k_trans_ops.py b/Aster/Cata/cataSTA9/Macro/post_k_trans_ops.py new file mode 100644 index 00000000..6295395b --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/post_k_trans_ops.py @@ -0,0 +1,245 @@ +#@ MODIF post_k_trans_ops Macro DATE 31/10/2006 AUTEUR REZETTE C.REZETTE +# -*- 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. +# ====================================================================== + +def post_k_trans_ops(self,RESU_TRANS,K_MODAL,TOUT_ORDRE, NUME_ORDRE, LIST_ORDRE, + INST, LIST_INST,INFO,**args): + """ + Ecriture de la macro post_k_trans + """ + import aster + import string + from Accas import _F + from Utilitai.Utmess import UTMESS + from types import ListType, TupleType + from Utilitai.Table import Table, merge + EnumTypes = (ListType, TupleType) + + macro = 'POST_K_TRANS' + ier=0 +#------------------------------------------------------------------ + # On importe les definitions des commandes a utiliser dans la macro + CALC_G =self.get_cmd('CALC_G' ) + IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) + CREA_TABLE =self.get_cmd('CREA_TABLE' ) + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Le concept sortant (de type table_sdaster ou dérivé) est tab + self.DeclareOut('tabout', self.sd) + +#------------------------------------------------------------------ + TABK = K_MODAL['TABL_K_MODA'] + F2D = K_MODAL['FOND_FISS'] + F3D = K_MODAL['FISSURE'] +# +# Calcul du tableau des K modaux +# + if TABK == None : + montit = 'Calcul des K modaux' + resumod = K_MODAL['RESU_MODA'] + thet = K_MODAL['THETA'] + + motscles={} + motscles2={} + motscles['THETA'] = [] + mcthet = {} + if F2D != None : mcthet['FOND_FISS'] = F2D + if thet != None : mcthet['THETA'] = thet + if F3D != None : mcthet['FISSURE'] = F3D + if K_MODAL['DIRECTION']!=None : mcthet['DIRECTION'] = K_MODAL['DIRECTION'] + if K_MODAL['DIRE_THETA']!=None: mcthet['DIRE_THETA'] = K_MODAL['DIRE_THETA'] + if K_MODAL['R_SUP']!=None : mcthet['R_SUP'] = K_MODAL['R_SUP'] + if K_MODAL['R_SUP_FO']!=None : mcthet['R_SUP_FO'] = K_MODAL['R_SUP_FO'] + if K_MODAL['R_INF']!=None : mcthet['R_INF'] = K_MODAL['R_INF'] + if K_MODAL['R_INF_FO']!=None : mcthet['R_INF_FO'] = K_MODAL['R_INF_FO'] + if K_MODAL['MODULE']!=None : mcthet['MODULE'] = K_MODAL['MODULE'] + if K_MODAL['MODULE']==None and F2D : mcthet['MODULE'] = 1 + if K_MODAL['MODULE_FO']!=None : mcthet['MODULE_FO'] = K_MODAL['MODULE_FO'] + + if thet == None and F3D : + motscles2['LISSAGE'] = [] + if K_MODAL['LISSAGE_G'] == None : K_MODAL['LISSAGE_G']='LEGENDRE' + if K_MODAL['LISSAGE_THETA'] == None : K_MODAL['LISSAGE_THETA']='LEGENDRE' + if K_MODAL['DEGRE'] : K_MODAL['DEGRE'] = 5 + motscles2['LISSAGE'].append(_F(LISSAGE_G =K_MODAL['LISSAGE_G'], + LISSAGE_THETA =K_MODAL['LISSAGE_G'], + DEGRE = K_MODAL['DEGRE'] )) + + __kgtheta = CALC_G( RESULTAT = resumod, + OPTION = 'K_G_MODA', + TOUT_MODE = 'OUI', + INFO = INFO, + TITRE = montit, + THETA=mcthet, + **motscles2) + + +# +# Recuperation du tableau des K modaux +# + else : + __kgtheta=TABK + +#----------------------------------------- +# +# Verification de cohérence sur le nombre de modes +# +# RESULTAT TRANSITOIRE + nomresu=RESU_TRANS.nom + coef=aster.getvectjev(nomresu.ljust(19)+'.DEPL') + nmodtr=aster.getvectjev(nomresu.ljust(19)+'.DESC')[1] +# BASE MODALE + if F2D : + n_mode = len((__kgtheta.EXTR_TABLE())['K1']) + nbno = 1 + 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] + + if nmodtr != n_mode : + n_mode = min(nmodtr,n_mode) + message = 'NOMBRE DE MODES DIFFERENT ENTRE LA BASE MODALE' + message = message +'ET %s : ON PREND LE MINIMUM DES DEUX (%i)\n'%(nomresu,n_mode) + UTMESS('A', macro, message) + +# +# Traitement des mots clés ORDRE/INST/LIST_INST et LIST_ORDRE +# + l0_inst = aster.getvectjev(nomresu.ljust(19)+'.INST') + l0_ord = aster.getvectjev(nomresu.ljust(19)+'.ORDR') + nbtrans = len(l0_ord) + li = [[l0_ord[i],l0_inst[i]] for i in range(nbtrans)] + ln = [[l0_ord[i],i] for i in range(nbtrans)] + lo = [[l0_inst[i],l0_ord[i]] for i in range(nbtrans)] + li = [(i[0],i[1:]) for i in li] + ln = [(i[0],i[1:]) for i in ln] + lo = [(i[0],i[1:]) for i in lo] + d_ord = dict(lo) + d_ins = dict(li) + d_num = dict(ln) + + + l_ord =[] + l_inst =[] + if LIST_ORDRE or NUME_ORDRE : + if NUME_ORDRE : + if type(NUME_ORDRE) not in EnumTypes : NUME_ORDRE=(NUME_ORDRE,) + ltmp = list(NUME_ORDRE) + elif LIST_ORDRE : + ltmp = aster.getvectjev(string.ljust(LIST_ORDRE.nom,19)+'.VALE') + for ord in ltmp : + if ord in l0_ord : + l_ord.append(ord) + l_inst.append(d_ins[ord][0]) + else : + message = 'LE NUMERO D ORDRE %i N APPARTIENT PAS AU RESULTAT %s'%(ord,nomresu) + UTMESS('A', macro, message) + elif LIST_INST or INST : + CRITERE = args['CRITERE'] + PRECISION = args['PRECISION'] + if INST : + if type(INST) not in EnumTypes : INST=(INST,) + ltmp = list(INST) + elif LIST_INST : + ltmp = aster.getvectjev(string.ljust(LIST_INST.nom,19)+'.VALE') + for ins in ltmp : + if CRITERE=='RELATIF' and ins!=0.: match=[x for x in l0_inst if abs((ins-x)/ins)=2 : + message = 'PLUSIEURS INSTANTS TROUVES DANS LA TABLE POUR L INSTANT %f\n'%ins + UTMESS('A', macro, message) + else : + l_inst.append(match[0]) + l_ord.append(d_ord[match[0]][0]) + else : + l_ord = l0_ord + l_inst = l0_inst + nbarch = len(l_ord) + if nbarch ==0 : UTMESS('F', macro, 'AUCUN INSTANT OU NUMERO D ORDRE TROUVE') + + +# +# Calcul des K(t) +# + + K1mod = [None]*n_mode*nbno + K2mod = [None]*n_mode*nbno + K1t = [None]*nbarch*nbno + K2t = [None]*nbarch*nbno + if F3D : + K3mod = [None]*n_mode*nbno + K3t = [None]*nbarch*nbno + k1 = 'K1_LOCAL' + k2 = 'K2_LOCAL' + k3 = 'K3_LOCAL' + else : + k1 = 'K1' + k2 = 'K2' + + + for x in range(0,nbno) : + for k in range(0,n_mode) : + K1mod[k*nbno + x] = __kgtheta[k1,k*nbno + x+1] + K2mod[k*nbno + x] = __kgtheta[k2,k*nbno + x+1] + if F3D : K3mod[k*nbno + x] = __kgtheta[k3,k*nbno + x+1] + + for num in range(0,nbarch) : + K1t[num*nbno + x] = 0.0 + K2t[num*nbno + x] = 0.0 + if F3D : K3t[num*nbno + x] = 0.0 + for k in range(0,n_mode) : + num_ord = d_num[l_ord[num]][0] + alpha = coef[n_mode*num_ord+k] + K1t[num*nbno + x] = K1t[num*nbno + x] + alpha*K1mod[k*nbno + x] + K2t[num*nbno + x] = K2t[num*nbno + x] + alpha*K2mod[k*nbno + x] + if F3D : K3t[num*nbno + x] = K3t[num*nbno + x] + alpha*K3mod[k*nbno + x] + + v = aster.__version__ + titre = 'ASTER %s - CONCEPT CALCULE PAR POST_K_TRANS LE &DATE A &HEURE \n'%v + if F2D : + tabout = CREA_TABLE(LISTE = (_F(LISTE_I =l_ord, PARA = 'NUME_ORDRE'), + _F(LISTE_R =l_inst, PARA = 'INST'), + _F(LISTE_R =K1t, PARA = k1), + _F(LISTE_R =K2t, PARA = k2),), + TITRE = titre, ); + if F3D : + lo = [] + li = [] + for i in range(nbarch) : + for j in range(nbno) : + lo.append(l_ord[i]) + li.append(l_inst[i]) + 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 =K1t, PARA = k1), + _F(LISTE_R =K2t, PARA = k2), + _F(LISTE_R =K3t, PARA = k3),), + TITRE = titre, + ); + +#------------------------------------------------------------------ + return ier diff --git a/Aster/Cata/cataSTA9/Macro/reca_algo.py b/Aster/Cata/cataSTA9/Macro/reca_algo.py new file mode 100644 index 00000000..4c22e2bf --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/reca_algo.py @@ -0,0 +1,305 @@ +#@ MODIF reca_algo Macro DATE 14/11/2006 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# RESPONSABLE ASSIRE A.ASSIRE +# 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 Numeric, MLab +from Numeric import take, size +import copy, os +import LinearAlgebra + +try: + import aster + from Cata.cata import INFO_EXEC_ASTER + from Cata.cata import DETRUIRE + from Accas import _F +except: pass + +try: + from Utilitai.Utmess import UTMESS +except ImportError: + def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + print fmt % (code,sprg,texte) + if code=='F': sys.exit() + + + +def calcul_gradient(A,erreur): + grad = Numeric.dot(Numeric.transpose(A),erreur) + return grad + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +class Dimension: + """ + Classe gérant l'adimensionnement et le dimensionnement + """ + + def __init__(self,val_initiales,para): + """ + Le constructeur calcul la matrice D et son inverse + """ + self.val_init = val_initiales + dim =len(self.val_init) + self.D = Numeric.zeros((dim,dim),Numeric.Float) + for i in range(dim): + self.D[i][i] = self.val_init[i] + self.inv_D=LinearAlgebra.inverse(self.D) + + +# ------------------------------------------------------------------------------ + + def adim_sensi(self,A): + for i in range(A.shape[0]): + for j in range(A.shape[1]): + A[i,j] = A[i,j] * self.val_init[j] + return A + + +# ------------------------------------------------------------------------------ + + def redim_sensi(self,A): + for i in range(A.shape[0]): + for j in range(A.shape[1]): + A[i,j] = A[i,j] / self.val_init[j] + return A + + +# ------------------------------------------------------------------------------ + + def adim(self,tab): + tab_adim = Numeric.dot(self.inv_D,copy.copy(tab)) + return tab_adim + + +# ------------------------------------------------------------------------------ + + def redim(self,tab_adim): + tab = Numeric.dot(self.D,tab_adim) + return tab + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + + + + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +def cond(matrix): + e1=LinearAlgebra.eigenvalues(matrix) + e=map(abs,e1) + size=len(e) + e=Numeric.sort(e) + try: + condi=e[size-1]/e[0] + except ZeroDivisionError: + condi=0.0 + return condi,e[size-1],e[0] + + + + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +def norm(matrix): + e=LinearAlgebra.Heigenvalues(matrix) + size=len(e) + e=Numeric.sort(e) + norm=e[size-1] + return norm + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +def lambda_init(matrix): + """ + Routine qui calcule la valeur initial du parametre de regularisation l. + """ + condi,emax,emin=cond(matrix) + id=Numeric.identity(matrix.shape[0]) + if (condi==0.0): + l=1.e-3*norm(matrix) + elif (condi<=10000): + l=1.e-16*norm(matrix) + elif (condi>10000): + l=abs(10000.*emin-emax)/10001. + return l + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +def Levenberg_bornes(val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out): + """ + On resoud le système par contraintes actives: + Q.dval + s + d =0 + soumis à : + borne_inf < dval < borne_sup + 0 < s + s.(borne_inf - dval)=0 + s.(borne_sup - dval)=0 + """ + dim = len(val) + id = Numeric.identity(dim) + # Matrice du système + Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id + # Second membre du système + d=Numeric.matrixmultiply(Numeric.transpose(A),erreur) + # Ens. de liaisons actives + Act=Numeric.array([]) + k=0 + done=0 + # Increment des parametres + dval=Numeric.zeros(dim,Numeric.Float) + while done <1 : + k=k+1 + I=Numeric.ones(dim) + for i in Act: + I[i]=0 + I=Numeric.nonzero(Numeric.greater(I,0)) + s=Numeric.zeros(dim,Numeric.Float) + for i in Act: + # test sur les bornes (on stocke si on est en butée haute ou basse) + if (val[i]+dval[i]>=borne_sup[i]): + dval[i]=borne_sup[i]-val[i] + s[i]=1. + if (val[i]+dval[i]<=borne_inf[i]): + 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)) + 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): + # s(Av)=-d(Act)-Q(Act,:).dval + sa=-take(d,Act)-Numeric.dot(take(Q,Act),Dim.adim(dval)) + for i in range(len(Act)): + if (s[Act[i]]==-1.): + s[Act[i]]=-sa[i] + else: + s[Act[i]]=sa[i] + # Nouvel ens. de liaisons actives + Act=Numeric.concatenate((Numeric.nonzero(Numeric.greater(dval,borne_sup-val)),Numeric.nonzero(Numeric.less(dval,borne_inf-val)),Numeric.nonzero(Numeric.greater(s,0.)))) + done=(max(val+dval-borne_sup)<=0)&(min(val+dval-borne_inf)>=0)&(min(s)>=0.0) + # Pour éviter le cyclage + if (k>50): + try: + l=l*2 + Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id + k=0 + except: + res=open(os.getcwd()+'/fort.'+str(ul_out),'a') + res.write('\n\nQ = \n'+Numeric.array2string(Q-l*id,array_output=1,separator=',')) + res.write('\n\nd = '+Numeric.array2string(d,array_output=1,separator=',')) + res.write('\n\nval = '+Numeric.array2string(val,array_output=1,separator=',')) + res.write('\n\nval_ini= '+Numeric.array2string(val_init,array_output=1,separator=',')) + res.write('\n\nborne_inf= '+Numeric.array2string(borne_inf,array_output=1,separator=',')) + res.write('\n\nborne_sup= '+Numeric.array2string(borne_sup,array_output=1,separator=',')) + UTMESS('F','MACR_RECAL',"Erreur dans l'algorithme de bornes de MACR_RECAL") + return + newval=copy.copy(val+dval) + return newval,s,l,Act + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +def actualise_lambda(l,val,new_val,A,erreur,new_J,old_J): + dim = len(val) + id = Numeric.identity(dim) + # Matrice du système + Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id + # Second membre du système + d=Numeric.matrixmultiply(Numeric.transpose(A),erreur) + old_Q=old_J + new_Q=old_J+0.5*Numeric.dot(Numeric.transpose(new_val-val),Numeric.dot(Q,new_val-val))+Numeric.dot(Numeric.transpose(new_val-val),d) + # Ratio de la décroissance réelle et de l'approx. quad. + try: + R=(old_J-new_J)/(old_Q-new_Q) + if (R<0.25): + l = l*10. + elif (R>0.75): + l = l/15. + except ZeroDivisionError: + if (old_J>new_J): + l = l*10. + else: + l = l/10. + return l + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +def test_convergence(gradient_init,erreur,A,s): + """ + Renvoie le residu + """ + gradient = calcul_gradient(A,erreur)+s + try: + epsilon = Numeric.dot(gradient,gradient)/Numeric.dot(gradient_init,gradient_init) + except: + UTMESS('F', "MACR_RECAL", "Erreur dans le test de convergence de MACR_RECAL") + return + epsilon = epsilon**0.5 + return epsilon + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +def calcul_etat_final(para,A,iter,max_iter,prec,residu,Messg): + """ + Fonction appelée quand la convergence est atteinte + on calcule le Hessien et les valeurs propres et vecteurs + propre associés au Hessien + A = sensibilite + At*A = hessien + """ + + if ((iter < max_iter) or (residu < prec)): + Hessien = Numeric.matrixmultiply(Numeric.transpose(A),A) + + # Desactive temporairement les FPE qui pourraient etre generees (a tord!) par blas + aster.matfpe(-1) + valeurs_propres,vecteurs_propres = LinearAlgebra.eigenvectors(Hessien) +# valeurs_propres,vecteurs_propres = MLab.eig(Hessien) + sensible=Numeric.nonzero(Numeric.greater(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-1)) + insensible=Numeric.nonzero(Numeric.less(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-2)) + # Reactive les FPE + aster.matfpe(1) + + Messg.affiche_calcul_etat_final(para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible) diff --git a/Aster/Cata/cataSTA9/Macro/reca_calcul_aster.py b/Aster/Cata/cataSTA9/Macro/reca_calcul_aster.py new file mode 100644 index 00000000..69554ef2 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/reca_calcul_aster.py @@ -0,0 +1,873 @@ +#@ MODIF reca_calcul_aster Macro DATE 26/03/2007 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# RESPONSABLE ASSIRE A.ASSIRE +# 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. +# ====================================================================== + +# mode_include = False +# __follow_output = False +# table_sensibilite = False +debug = False + +__commandes_aster__ = False + + +import copy, Numeric, types, os, sys, pprint, math +from glob import glob + +try: + import aster +except: pass + +try: + from Utilitai.Utmess import UTMESS +except ImportError: + def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + print fmt % (code,sprg,texte) + if code=='F': sys.exit() + +from Utilitai.System import ExecCommand + +# Nom de la routine +nompro = 'MACR_RECAL' + + +# ------------------------------------------------------------------------------ + +class PARAMETRES: + + def __init__(self, METHODE, UNITE_RESU, INFO=1, fich_output='./REPE_OUT/output_esclave.txt', mode_include=False, follow_output=False, table_sensibilite=False, memjeveux_esclave=None, PARA_DIFF_FINI=1.E-3, ITER_MAXI=10, ITER_FONC_MAXI=100): + + self.METHODE = METHODE + self.UNITE_RESU = UNITE_RESU + self.INFO = INFO + self.fich_output = fich_output + self.PARA_DIFF_FINI = PARA_DIFF_FINI + self.ITER_FONC_MAXI = ITER_FONC_MAXI + self.ITER_MAXI = ITER_MAXI, + + try: + import Cata, aster + from Cata.cata import INCLUDE, DETRUIRE, FIN, DEFI_FICHIER, IMPR_TABLE, LIRE_TABLE, INFO_EXEC_ASTER, EXTR_TABLE, CREA_TABLE + from Accas import _F + except: + mode_include = False + + if not mode_include: + try: + from Macro.lire_table_ops import lecture_table + mode_aster = True + except: + try: + sys.path.append( './Python/Macro' ) + from Macro.lire_table_ops import lecture_table + mode_aster = False + except: + UTMESS('F','MACR_RECAL',"Probleme : impossible d'importer le module de lecture des tables!") + self.mode_include = mode_include + self.follow_output = follow_output + self.mode_aster = mode_aster + self.memjeveux_esclave = memjeveux_esclave + self.table_sensibilite = table_sensibilite + + self.vector_output = False + self.error_output = False + + +# ------------------------------------------------------------------------------ + +class CALCUL_ASTER: + + def __init__(self, PARAMETRES, UL, para, reponses, LIST_SENSI=[], LIST_DERIV=[]): + + self.UL = UL + self.para = para + self.reponses = reponses + self.LIST_SENSI = LIST_SENSI + self.LIST_DERIV = LIST_DERIV + + self.METHODE = PARAMETRES.METHODE + self.UNITE_RESU = PARAMETRES.UNITE_RESU + self.INFO = PARAMETRES.INFO + self.fich_output = PARAMETRES.fich_output + self.mode_include = PARAMETRES.mode_include + self.follow_output = PARAMETRES.follow_output + self.table_sensibilite = PARAMETRES.table_sensibilite + self.mode_aster = PARAMETRES.mode_aster + self.memjeveux_esclave = PARAMETRES.memjeveux_esclave + self.PARA_DIFF_FINI = PARAMETRES.PARA_DIFF_FINI + self.ITER_FONC_MAXI = PARAMETRES.ITER_FONC_MAXI + self.vector_output = PARAMETRES.vector_output + self.error_output = PARAMETRES.vector_output + + self.UNITE_GRAPHIQUE = None + self.new_export = 'tmp_export' + self.nom_fichier_mess_fils = None + self.nom_fichier_resu_fils = None + + self.fichier_esclave = None + + self.evaluation_fonction = 0 + + self.L_J_init = None + self.val = None + self.L = None + self.L_deriv_sensible = None + + + + # ------------------------------------------------------------------------------ + + def Lancement_Commande(self, cmd): + + if self.INFO>=1: UTMESS('I','MACR_RECAL',"Lancement de la commande : " + cmd) + + fich_output = self.fich_output + follow_output = self.follow_output + + # Lancement d'Aster avec le deuxieme export + iret, txt_output = ExecCommand(cmd, follow_output=self.follow_output,verbose=False) + + if fich_output: + # Recuperation du .mess 'fils' + f=open(fich_output, 'w') + f.write( txt_output ) + f.close() + + if self.INFO>=1: UTMESS('I','MACR_RECAL',"Fin du lancement de la commande : " + cmd) + + diag = self.Recuperation_Diagnostic(txt_output) + + return + + + # ------------------------------------------------------------------------------ + + def Recuperation_Diagnostic(self, output): + + txt = '--- DIAGNOSTIC JOB :' + diag = None + for ligne in output.splitlines(): + if ligne.find(txt) > -1: + diag = ligne.split(txt)[-1].strip() + break + + if self.INFO>=1: UTMESS('I','MACR_RECAL',"Diagnostic du calcul esclave : " + diag) + + if diag in ['OK', 'NOOK_TEST_RESU', '_ALARM', '_COPY_ERROR']: return True + else: + UTMESS('F','MACR_RECAL',"Le fichier esclave ne s'est pas terminé correctement.") + + + # ------------------------------------------------------------------------------ + + def Remplace_fichier_esclave(self, val_in): pass + + + # ------------------------------------------------------------------------------ + + def calcul_Aster(self, val, INFO=0): + + self.val = val + UL = self.UL + para = self.para + reponses = self.reponses + UNITE_RESU = self.UNITE_RESU + LIST_SENSI = self.LIST_SENSI + LIST_DERIV = self.LIST_DERIV + + mode_include = self.mode_include + follow_output = self.follow_output + table_sensibilite = self.table_sensibilite + + if self.evaluation_fonction > self.ITER_FONC_MAXI: + UTMESS('F', nompro, "Le nombre d'evaluation de la fonctionnelle depasse le critere ITER_FONC_MAXI.") + self.evaluation_fonction += 1 + + + if not mode_include: + + # Creation du repertoire temporaire pour l'execution de l'esclave + tmp_macr_recal = self.Creation_Temporaire_Esclave() + + # Creation du fichier .export de l'esclave + self.Creation_Fichier_Export_Esclave(tmp_macr_recal) + + # Fichier esclave a modifier (si methode EXTERNE alors on prend directement le fichier esclave, sinon c'est le fort.UL dans le repertoire d'execution + try: + if self.METHODE=='EXTERNE': + fic = open(self.fichier_esclave,'r') + else: + fic = open('fort.'+str(UL),'r') + + # On stocke le contenu de fort.UL dans la variable fichier qui est une string + fichier=fic.read() + # On stocke le contenu initial de fort.UL dans la variable fichiersauv + fichiersauv=copy.copy(fichier) + fic.close() + except: + UTMESS('F', nompro, "Impossible de relire le fichier esclave : \n " + str(self.fichier_esclave)) + + # chemin vers as_run + if os.environ.has_key('ASTER_ROOT'): + as_run = os.path.join(os.environ['ASTER_ROOT'], 'ASTK', 'ASTK_SERV', 'bin', 'as_run') + elif os.path.isfile(aster.repout() + os.sep + 'as_run'): + as_run = aster.repout() + os.sep + 'as_run' + else: + as_run = 'as_run' + if INFO>=1: UTMESS('A', nompro, "Variable d'environnement ASTER_ROOT absente, " \ + "on essaiera avec 'as_run' dans le $PATH.") + + if __commandes_aster__: + try: + from Cata.cata import INCLUDE, DETRUIRE, FIN, DEFI_FICHIER, IMPR_TABLE, LIRE_TABLE, INFO_EXEC_ASTER, EXTR_TABLE, CREA_TABLE + except: + message = "Erreur" + UTMESS('F', nompro, message) + + # Utilisation du module Python de LIRE_TABLE + if self.mode_aster: + from Macro.lire_table_ops import lecture_table + else: + try: + sys.path.append( './Python/Macro' ) + from lire_table_ops import lecture_table + except: + UTMESS('F','MACR_RECAL',"Probleme : impossible d'importer le module de lecture des tables!") + + txt = [] + for i in para: + txt.append( "\t\t\t%s : %s" % (i, val[para.index(i)]) ) + if INFO>=1: UTMESS('I','MACR_RECAL',"Calcul de F avec les parametres:\n%s" % '\n'.join(txt)) + + + # MARCHE PAS !! +# # Quelques verifications/modifications sur le fichier esclave, pour blindage +# fichiernew=[] +# for ligne in fichier.split('\n'): +# # DEBUT et FIN (on retire les espaces entre le mot-clé et la premiere parenthese) +# for (txt1, txt2) in [('DEBUT','('), ('FIN','(')]: +# if ligne.find( txt1 )!=-1 and ligne.find( txt2 )!=-1: +# index_deb1 = ligne.index(txt1) +# ligne1 = ligne[ index_deb1+len(txt1):] +# if ligne.find( txt1 )!=-1: +# +# +# for (txt1, txt2) in [('DEBUT','('), ('FIN','(')]: +# if ligne.find( txt1 )!=-1 and ligne.find( txt2 )!=-1: +# index_deb1 = ligne.index(txt1) +# index_fin1 = index_deb1 + len(txt1) +# index_deb2 = ligne.index(txt2) +# index_fin2 = index_deb1 + len(txt2) +# ligne = ligne[:index_fin1]+ligne[index_deb2:] +# # on retire les parametes en commentaires +# for txt in para: +# if ligne.find(txt)!=-1: +# if ligne.replace(' ', '')[0] == '#': ligne = '' +# fichiernew.append(ligne) +# fichier = '\n'.join(fichiernew) + + #Fichier_Resu est une liste ou l'on va stocker le fichier modifié + #idée générale :on délimite des 'blocs' dans fichier + #on modifie ou non ces blocs suivant les besoins + #on ajoute ces blocs dans la liste Fichier_Resu + Fichier_Resu=[] + + # Dans le cas du mode INCLUDE on enleve le mot-clé DEBUT + if mode_include: + try: + #cherche l'indice de DEBUT() + index_deb=fichier.index('DEBUT(') + while( fichier[index_deb]!='\n'): + index_deb=index_deb+1 + #on restreint fichier en enlevant 'DEBUT();' + fichier = fichier[index_deb+1:] + except: + #on va dans l'except si on a modifié le fichier au moins une fois + pass + +# print 60*'o' +# print fichier +# print 60*'o' + + # On enleve le mot-clé FIN() + try: + #cherche l'indice de FIN() + index_fin = fichier.index('FIN(') + #on restreint fichier en enlevant 'FIN();' + fichier = fichier[:index_fin] + except : pass + +# print 60*'o' +# print fichier +# print 60*'o' + + #-------------------------------------------------------------------------------- + #on cherche à délimiter le bloc des parametres dans le fichier + #Tout d'abord on cherche les indices d'apparition des paras dans le fichier + #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise + #avec le meme ordre que son fichier de commande + index_para = Numeric.zeros(len(para)) + for i in range(len(para)): + index_para[i] = fichier.index(para[i]) + + #On range les indices par ordre croissant afin de déterminer + #les indice_max et indice_min + index_para = Numeric.sort(index_para) + index_first_para = index_para[0] + index_last_para = index_para[len(index_para)-1] + + + #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation + bloc_inter ='\n' + for i in range(len(para)-1): + j = index_para[i] + k = index_para[i+1] + while(fichier[j]!= '\n'): + j=j+1 + bloc_inter=bloc_inter + fichier[j:k] + '\n' + + #on veut se placer sur le premier retour chariot que l'on trouve sur la ligne du dernier para + i = index_last_para + while(fichier[i] != '\n'): + i = i + 1 + index_last_para = i + #on délimite les blocs suivants: + pre_bloc = fichier[:index_first_para] #fichier avant premier parametre + post_bloc = fichier[ index_last_para+ 1:] #fichier après dernier parametre + + #on ajoute dans L tous ce qui est avant le premier paramètre + Fichier_Resu.append(pre_bloc) + Fichier_Resu.append('\n') + + # Liste des parametres utilisant la SENSIBILITE + liste_sensibilite = [] + if len(LIST_SENSI)>0: + for i in LIST_SENSI: + liste_sensibilite.append( i ) + + #On ajoute la nouvelle valeur des parametres + dim_para=len(para) + for j in range(dim_para): + if not para[j] in liste_sensibilite: + Fichier_Resu.append(para[j]+'='+str(val[j]) + ';' + '\n') + else: + Fichier_Resu.append(para[j]+'=DEFI_PARA_SENSI(VALE='+str(val[j]) + ',);' + '\n') + + + #On ajoute à Fichier_Resu tous ce qui est entre les parametres + Fichier_Resu.append(bloc_inter) + + Fichier_Resu.append(post_bloc) + + #-------------------------------------------------------------------------------- + #on va ajouter la fonction d'extraction du numarray de la table par la méthode Array + #et on stocke les réponses calculées dans la liste Lrep + #qui va etre retournée par la fonction calcul_Aster + if mode_include: + self.g_context['Lrep'] = [] + Fichier_Resu.append('Lrep=[]'+'\n') + for i in range(len(reponses)): + Fichier_Resu.append('t'+str(reponses[i][0])+'='+str(reponses[i][0])+'.EXTR_TABLE()'+'\n') + Fichier_Resu.append('F = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n') + Fichier_Resu.append('Lrep.append(F)'+'\n') + + #ouverture du fichier fort.3 et mise a jour de celui ci + x=open('fort.'+str(UL),'w') + if mode_include: + x.writelines('from Accas import _F \nfrom Cata.cata import * \n') + x.writelines(Fichier_Resu) + x.close() + + del(pre_bloc) + del(post_bloc) + del(fichier) + + # ---------------------------------------------------------------------------------- + # Execution d'une deuxieme instance d'Aster + + if not mode_include: + + # Ajout des commandes d'impression des tables Resultats et Derivees à la fin du fichier esclave + Fichier_Resu = [] + num_ul = '99' + + # Tables correspondant aux Resultats + for i in range(len(reponses)): + _ul = str(int(100+i)) + + try: os.remove( tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul ) + except: pass + + Fichier_Resu.append("\n# Recuperation de la table : " + str(reponses[i][0]) + "\n") + Fichier_Resu.append("DEFI_FICHIER(UNITE="+num_ul+", FICHIER='"+tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul+"',);\n") + Fichier_Resu.append("IMPR_TABLE(TABLE="+str(reponses[i][0])+", FORMAT='ASTER', UNITE="+num_ul+", INFO=1, FORMAT_R='E30.20',);\n") + Fichier_Resu.append("DEFI_FICHIER(ACTION='LIBERER', UNITE="+num_ul+",);\n") + + # Tables correspondant aux Derivees + if len(LIST_SENSI)>0: + i = 0 + for _para in LIST_SENSI: + _lst_tbl = LIST_DERIV[_para][0] + for _lst_tbl in LIST_DERIV[_para]: + i += 1 + _tbl = _lst_tbl[0] + + _ul = str(int(100+len(reponses)+i)) + try: os.remove( tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul ) + except: pass + + Fichier_Resu.append("\n# Recuperation de la table derivee : " + _tbl + " (parametre " + _para + ")\n") + Fichier_Resu.append("DEFI_FICHIER(UNITE="+num_ul+", FICHIER='"+tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul+"',);\n") + if table_sensibilite: + Fichier_Resu.append("IMPR_TABLE(TABLE="+_tbl+", SENSIBILITE="+_para+", FORMAT='ASTER', UNITE="+num_ul+", INFO=1, FORMAT_R='E30.20',);\n") + else: + Fichier_Resu.append("IMPR_TABLE(TABLE="+_tbl+", FORMAT='ASTER', UNITE="+num_ul+", INFO=1, FORMAT_R='E30.20',);\n") + Fichier_Resu.append("DEFI_FICHIER(ACTION='LIBERER', UNITE="+num_ul+",);\n") + + # Ecriture du "nouveau" fichier .comm + x=open('fort.'+str(UL),'a') + x.write( '\n'.join(Fichier_Resu) ) + x.write('\nFIN();\n') + x.close() + +# os.system("cat %s" % self.new_export) + + # Lancement du calcul Aster esclave + cmd = '%s %s' % (as_run, self.new_export) + self.Lancement_Commande(cmd) + + # Recuperation du .mess et du .resu 'fils' + if self.METHODE != 'EXTERNE': + if self.nom_fichier_mess_fils: + cmd = 'cp ' + tmp_macr_recal + os.sep + self.nom_fichier_mess_fils + ' ./REPE_OUT/' + os.system( cmd ) + if self.nom_fichier_resu_fils: + cmd = 'cp ' + tmp_macr_recal + os.sep + self.nom_fichier_resu_fils + ' ./REPE_OUT/' + os.system( cmd ) + + if __commandes_aster__: + # Unite logique libre + _tbul_libre=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') + _ul_libre=_tbul_libre['UNITE_LIBRE',1] + + + # ------------------------------------------------------ + # Recuperation des tableaux resultats + Lrep=[] + _TB = [None]*len(reponses) + for i in range(len(reponses)): + + if __commandes_aster__: + + # Version par des commandes Aster + # ------- + + + DEFI_FICHIER(UNITE=_ul_libre, FICHIER=tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+str(int(100+i)), ); + try: + _TB[i]=LIRE_TABLE(UNITE=_ul_libre, + FORMAT='ASTER', + NUME_TABLE=1, + SEPARATEUR=' ',); + DEFI_FICHIER(ACTION='LIBERER', UNITE=_ul_libre,); + tREPONSE=_TB[i].EXTR_TABLE() + + F = tREPONSE.Array( str(reponses[i][1]), str(reponses[i][2]) ) + Lrep.append(F) + except: + message = "Impossible de recuperer les resultats de calcul esclave!" + UTMESS('F', nompro, message) + + else: + + # Version par utilisation directe du python de lire_table + # ------- + + # Chemin vers le fichier contenant la table + _fic_table = tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+str(int(100+i)) + + try: + file=open(_fic_table,'r') + texte=file.read() + file.close() + except Exception, err: + ier=1 + message = """Impossible de recuperer les resultats de calcul esclave (lecture des tables)! +Le calcul esclave n'a pas du se terminer correctement (ajouter un repertoire dans ASTK en Resultat avec +le type repe et voir l'output du fichier esclave dans ce repertoire. +Message: +""" + message += str(err) + UTMESS('F', nompro, message) + + try: + ier, message, table_lue = lecture_table(texte, 1, ' ') + list_para = table_lue.para + tab_lue = table_lue.values() + except Exception, err: + ier=1 + message = "Impossible de recuperer les resultats de calcul esclave (lecture des tables)!\nMessage:\n" + str(err) + + if ier!=0 : + UTMESS('F', nompro, message) + + try: + nb_val = len(tab_lue[ list_para[0] ]) + F = Numeric.zeros((nb_val,2), Numeric.Float) + for k in range(nb_val): +# F[k][0] = tab_lue[ list_para[0] ][1][k] +# F[k][1] = tab_lue[ list_para[1] ][1][k] + F[k][0] = tab_lue[ str(reponses[i][1]) ][k] + F[k][1] = tab_lue[ str(reponses[i][2]) ][k] + Lrep.append(F) + except Exception, err: + message = "Impossible de recuperer les resultats de calcul esclave (recuperation des tables)!\nMessage:\n" + str(err) + UTMESS('F', nompro, message) + + + # ------------------------------------------------------ + # Recuperation des tableaux des derivees (SENSIBILITE) + L_deriv={} + if len(LIST_SENSI)>0: + _lon = 0 + for _para in LIST_SENSI: + _lon += len(LIST_DERIV[_para]) + _TBD = [None]*_lon + + i = 0 + for _para in LIST_SENSI: + + L_deriv[_para] = [] + _lst_tbl = LIST_DERIV[_para][0] + + for _lst_tbl in LIST_DERIV[_para]: + j = LIST_DERIV[_para].index(_lst_tbl) + _tbl = _lst_tbl[0] + + if __commandes_aster__: + + # Version par des commandes Aster + # ------- + + DEFI_FICHIER(UNITE=_ul_libre, FICHIER=tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+str(int(100+len(reponses)+1+i)),); + _TBD[i]=LIRE_TABLE(UNITE=_ul_libre, + FORMAT='ASTER', + NUME_TABLE=1, + SEPARATEUR=' ',); + DEFI_FICHIER(ACTION='LIBERER', UNITE=_ul_libre,); + tREPONSE=_TBD[i].EXTR_TABLE() + DF = tREPONSE.Array( str(LIST_DERIV[_para][j][1]), str(LIST_DERIV[_para][j][2]) ) + L_deriv[_para].append(DF) + i+=1 + + else: + + # Version par utilisation directe du python de lire_table + # ------- + + # Chemin vers le fichier contenant la table + _fic_table = tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+str(int(100+len(reponses)+1+i)) + + try: + file=open(_fic_table,'r') + texte=file.read() + file.close() + except Exception, err: + message = """Impossible de recuperer les resultats de calcul esclave (lecture des tables)! +Le calcul esclave n'a pas du se terminer correctement (ajouter un repertoire en Resultat avec +le type repe et voir l'output du fichier esclave dans ce repertoire. +Message: +""" + message += str(err) + UTMESS('F', nompro, message) + + try: + ier, message, table_lue = lecture_table(texte, 1, ' ') + list_para = table_lue.para + tab_lue = table_lue.values() + except Exception, err: + ier=1 + message = "Impossible de recuperer les resultats de calcul esclave (lecture des tables)!\nMessage:\n" + str(err) + + + if ier!=0 : + UTMESS('F', nompro, message) + + try: + nb_val = len(tab_lue[ list_para[0] ]) + DF = Numeric.zeros((nb_val,2), Numeric.Float) + for k in range(nb_val): +# DF[k][0] = tab_lue[ list_para[0] ][1][k] +# DF[k][1] = tab_lue[ list_para[1] ][1][k] + DF[k][0] = tab_lue[ str(LIST_DERIV[_para][j][1]) ][k] + DF[k][1] = tab_lue[ str(LIST_DERIV[_para][j][2]) ][k] + L_deriv[_para].append(DF) + i+=1 + except Exception, err: + message = "Impossible de recuperer les resultats de calcul esclave (recuperation des tables)!\nMessage:\n" + str(err) + UTMESS('F', nompro, message) + + + # Nettoyage du export + try: os.remove(self.new_export) + except: pass + + # Nettoyage du repertoire temporaire + if self.METHODE == 'EXTERNE': listdir = ['REPE_TABLE', 'base', 'REPE_IN'] + else: listdir = ['.', 'REPE_TABLE', 'base', 'REPE_OUT', 'REPE_IN'] + for dir in listdir: + try: + for fic in os.listdir(tmp_macr_recal+os.sep+dir): + try: os.remove(tmp_macr_recal+os.sep+dir+os.sep+fic) + except: pass + except: pass + + + + # ---------------------------------------------------------------------------------- + # Ou bien on inclue le fichier Esclave + + elif mode_include: + + if debug: os.system('cp fort.'+str(UL)+' REPE_OUT/') + + INCLUDE(UNITE = UL) + + Lrep = self.g_context['Lrep'] + L_deriv = None + + # Destruction des concepts Aster + reca_utilitaires.detr_concepts(self) + + + # ---------------------------------------------------------------------------------- + # Ou alors probleme ? + else: sys.exit(1) + + + del(Fichier_Resu) + + # on remet le fichier dans son etat initial + x=open('fort.'+str(UL),'w') + x.writelines(fichiersauv) + x.close() + + return Lrep, L_deriv + + + + # ------------------------------------------------------------------------------ + + def calcul_FG(self, val): + + self.L, self.L_deriv_sensible = self.calcul_Aster(val, INFO=self.INFO) + self.L_J, self.erreur = self.Simul.multi_interpole(self.L, self.reponses) + if not self.L_J_init: self.L_J_init = copy.copy(self.L_J) + self.J = self.Simul.norme_J(self.L_J_init, self.L_J, self.UNITE_RESU) + + # Calcul des derivees + self.A_nodim = self.Simul.sensibilite(self, self.L, self.L_deriv_sensible, val, self.PARA_DIFF_FINI) + + self.A = self.Dim.adim_sensi( copy.copy(self.A_nodim) ) +# self.residu = self.reca_algo.test_convergence(self.gradient_init, self.erreur, self.A, Numeric.zeros(len(self.gradient_init),Numeric.Float) ) + self.residu = 0. + + if self.vector_output: + return self.erreur, self.residu, self.A_nodim, self.A + else: + # norme de l'erreur + self.norme = Numeric.dot(self.erreur, self.erreur)**0.5 + + self.norme_A_nodim = Numeric.zeros( (1,len(self.para)), Numeric.Float ) + self.norme_A = Numeric.zeros( (1,len(self.para)), Numeric.Float ) + for c in range(len(self.A[0,:])): + norme_A_nodim = 0 + norme_A = 0 + for l in range(len(self.A[:,0])): + norme_A_nodim += self.A_nodim[l,c] * self.A_nodim[l,c] + norme_A += self.A[l,c] * self.A[l,c] + self.norme_A_nodim[0,c] = math.sqrt( norme_A_nodim ) + self.norme_A[0,c] = math.sqrt( norme_A ) + + return self.norme, self.residu, self.norme_A_nodim, self.norme_A + + + # ------------------------------------------------------------------------------ + + def calcul_F(self, val): + + self.L, self.L_deriv_sensible = self.calcul_Aster(val, INFO=self.INFO) + L_J, erreur = self.Simul.multi_interpole(self.L, self.reponses) + if not self.L_J_init: self.L_J_init = copy.copy(L_J) + J = self.Simul.norme_J(self.L_J_init, L_J, self.UNITE_RESU) + + # norme de l'erreur + norme = Numeric.sum( [x**2 for x in erreur] ) + + if debug: + print 'erreur=', erreur + print "norme de l'erreur=", norme + print "norme de J (fonctionnelle)=", str(J) + + if self.INFO>=1: + txt = "Informations de convergence :" + txt += '\n=======================================================\n' + if self.evaluation_fonction >1: txt += "\n Nombre d'evaluation de la fonction = " + str(self.evaluation_fonction) + txt += "\n=> Fonctionnelle = "+str(J) + + if self.vector_output: + if self.INFO>=1: + txt += "\n=> Norme de l'erreur = " + str(norme) + txt += '\n=======================================================\n' + UTMESS('I','MACR_RECAL',txt) + return erreur + else: + if self.INFO>=1: + txt += "\n=> Erreur = " + str(norme) + txt += '\n=======================================================\n' + UTMESS('I','MACR_RECAL',txt) + return norme + + + + # ------------------------------------------------------------------------------ + + def calcul_G(self, val): + + # Si le calcul Aster est deja effectue pour val on ne le refait pas + if (self.val == val) and self.L and self.L_deriv_sensible: pass + else: + self.L, self.L_deriv_sensible = self.calcul_Aster(val, INFO=self.INFO) + A = self.Simul.sensibilite(self, self.L, self.L_deriv_sensible, val, self.PARA_DIFF_FINI) + A = self.Dim.adim_sensi(A) + L_J, erreur = self.Simul.multi_interpole(self.L, self.reponses) + grad = Numeric.dot(Numeric.transpose(A),erreur) + if debug: print 'grad=', grad + return grad + + + # ------------------------------------------------------------------------------ + + def Creation_Temporaire_Esclave(self): + """ + Creation du repertoire temporaire d'execution du calcul esclace + """ + + # Creation du repertoire temporaire + tmp_macr_recal = os.getcwd() + os.sep + 'tmp_macr_recal' + try: os.mkdir(tmp_macr_recal) + except: pass + if not os.path.exists(tmp_macr_recal): UTMESS('F','MACR_RECAL',"Probleme : Impossible de creer le repertoire temporaire : " + tmp_macr_recal) + try: os.mkdir(tmp_macr_recal + os.sep + 'REPE_TABLE') + except: pass + if not os.path.exists(tmp_macr_recal + os.sep + 'REPE_TABLE'): UTMESS('F','MACR_RECAL',"Probleme : Impossible de creer le repertoire temporaire : " + tmp_macr_recal + os.sep + 'REPE_TABLE') + + return tmp_macr_recal + + + # ------------------------------------------------------------------------------ + + def Creation_Fichier_Export_Esclave(self, tmp_macr_recal): + """ + Creation du fichier .export pour le calcul esclave + """ + + from as_profil import ASTER_PROFIL + + # Recuperation du fichier .export + list_export = glob('*.export') + + if len(list_export) == 0: UTMESS('F','MACR_RECAL',"Probleme : il n'y a pas de fichier .export dans le repertoire de travail!") + elif len(list_export) >1: UTMESS('F','MACR_RECAL',"Probleme : il y a plus d'un fichier .export dans le repertoire de travail!") + + # On modifie le profil + prof = ASTER_PROFIL(list_export[0]) + + # xterm + if prof.param.has_key('xterm'): + del prof.param['xterm'] + # memjeveux + prof.args['memjeveux'] = self.memjeveux_esclave + + # fichier/répertoire + for lab in ('data', 'resu'): + l_fr = getattr(prof, lab) + l_tmp = l_fr[:] + + for dico in l_tmp: + + # répertoires + if dico['isrep']: + + # base non prise en compte + if dico['type'] in ('base', 'bhdf'): + l_fr.remove(dico) + + if lab == 'resu': + dico['path'] = os.path.join(tmp_macr_recal, os.path.basename(dico['path'])) + + # fichiers + else: + + # Nom du fichier .mess (pour recuperation dans REPE_OUT) + if dico['ul'] == '6': + self.nom_fichier_mess_fils = os.path.basename(dico['path']) +# self.nom_fichier_mess_fils = os.path.join(os.getcwd(), 'fort.%d' % self.UL) + + # Nom du fichier .resu (pour recuperation dans REPE_OUT) + if dico['ul'] == '8': + self.nom_fichier_resu_fils = os.path.basename(dico['path']) + + # Ancien .comm non pris en compte + # Fichier d'unite logique UNITE_RESU (rapport de MACR_RECAL) non pris en compte + if dico['type'] == 'comm' or (dico['ul'] == str(self.UNITE_RESU) and lab == 'resu'): + l_fr.remove(dico) + + # Fichier d'unite logique UL devient le nouveau .comm + elif dico['ul'] == str(self.UL): + self.fichier_esclave = dico['path'] + dico['type'] = 'comm' + dico['ul'] = '1' + dico['path'] = os.path.join(os.getcwd(), 'fort.%d' % self.UL) + + # Tous les autres fichiers en Resultat + elif lab == 'resu': + if self.UNITE_GRAPHIQUE and dico['ul'] == str(self.UNITE_GRAPHIQUE): l_fr.remove(dico) + else: + dico['path'] = os.path.join(tmp_macr_recal, os.path.basename(dico['path'])) + + # Tous les autres fichiers en Donnees + elif lab == 'data': + if dico['type'] not in ('exec', 'ele'): + if dico['ul'] != '0': # Traite le cas des sources python sourchargees + dico['path'] = os.path.join(os.getcwd(), 'fort.%s' % dico['ul']) + + # sinon on garde la ligne telle quelle + setattr(prof, lab, l_fr) + + # Ecriture du nouveau fichier export + prof.WriteExportTo(self.new_export) + + os.system('cp ' + self.new_export + ' /tmp') + + # --FIN CLASSE ---------------------------------------------------------------------------- + + + diff --git a/Aster/Cata/cataSTA9/Macro/reca_controles.py b/Aster/Cata/cataSTA9/Macro/reca_controles.py new file mode 100644 index 00000000..d7cf8419 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/reca_controles.py @@ -0,0 +1,253 @@ +#@ MODIF reca_controles Macro DATE 26/03/2007 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# RESPONSABLE ASSIRE A.ASSIRE +# 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. +# ====================================================================== + +import string, copy, Numeric, types, os, sys, pprint + +try: + from Utilitai.Utmess import UTMESS +except ImportError: + def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + print fmt % (code,sprg,texte) + if code=='F': sys.exit() + + +# Nom de la routine +nompro = 'MACR_RECAL' + + + +#_____________________________________________ +# +# CONTROLE DES ENTREES UTILISATEUR +#_____________________________________________ + +# ------------------------------------------------------------------------------ + +def erreur_de_type(code_erreur,X): + """ + code_erreur ==0 --> X est une liste + code erreur ==1 --> X est un char + code erreur ==2 --> X est un float + test est un boolean (test = 0 défaut et 1 si un test if est verifier + """ + + txt = "" + if(code_erreur == 0 ): + if type(X) is not types.ListType: + txt="\nCette entrée: " +str(X)+" n'est pas une liste valide" + if(code_erreur == 1 ): + if type(X) is not types.StringType: + txt="\nCette entrée: " +str(X)+" n'est pas une chaine de caractère valide ; Veuillez la ressaisir en lui appliquant le type char de python" + if(code_erreur == 2 ): + if type(X) is not types.FloatType: + txt="\nCette entrée: " +str(X)+" n'est pas une valeur float valide ; Veuillez la ressaisir en lui appliquant le type float de python" + return txt + + +# ------------------------------------------------------------------------------ + +def erreur_dimension(PARAMETRES,REPONSES): + """ + On verifie que la dimension de chaque sous_liste de parametre est 4 + et que la dimension de chaque sous_liste de REPONSES est 3 + """ + + txt = "" + for i in range(len(PARAMETRES)): + if (len(PARAMETRES[i]) != 4): + txt=txt + "\nLa sous-liste de la variable paramètre numéro " + str(i+1)+" n'est pas de longueur 4" + for i in range(len(REPONSES)): + if (len(REPONSES[i]) != 3): + txt=txt + "\nLa sous-liste de la variable réponse numéro " + str(i+1)+" n'est pas de longueur 3" + return txt + + +# ------------------------------------------------------------------------------ + +def compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP): + """ + X et Y sont deux arguments qui doivent avoir la meme dimension + pour éviter l'arret du programme + """ + + txt = "" + if( len(REPONSES) != len(RESU_EXP)): + txt="\nVous avez entré " +str(len(REPONSES))+ " réponses et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de réponses que de résultats expérimentaux" + return txt + + +# ------------------------------------------------------------------------------ + +def compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP): + """ + POIDS et Y sont deux arguments qui doivent avoir la meme dimension + pour éviter l'arret du programme + """ + + txt = "" + if( len(POIDS) != len(RESU_EXP)): + txt="\nVous avez entré " +str(len(POIDS))+ " poids et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de poids que de résultats expérimentaux" + return txt + + +# ------------------------------------------------------------------------------ + +def verif_fichier(UL,PARAMETRES,REPONSES): + """ + On verifie les occurences des noms des PARAMETRES et REPONSES + dans le fichier de commande ASTER + """ + + txt = "" + txt_alarme = "" + try: + fichier = open('fort.'+str(UL),'r') + fic=fichier.read() + except: + txt += "\nImpossible d'ouvrir le fichier esclave declare avec l'unite logique " + str(UL) + return txt, txt_alarme + for i in range(len(PARAMETRES)): + if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))): + txt += "\nLe paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER" + for i in range(len(REPONSES)): + if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))): + txt_alarme += "\nLa réponse "+REPONSES[i][0]+" que vous avez entrée pour la phase d'optimisation n'a pas été trouvée dans votre fichier de commandes ASTER" + return txt, txt_alarme + + +# ------------------------------------------------------------------------------ + +def verif_valeurs_des_PARAMETRES(PARAMETRES): + """ + On verifie que pour chaque PARAMETRES de l'optimisation + les valeurs entrées par l'utilisateur sont telles que : + val_infPARAMETRES[i][3]): + txt=txt + "\nLa borne inférieure "+str(PARAMETRES[i][2])+" de "+PARAMETRES[i][0]+ "est plus grande que sa borne supérieure"+str(PARAMETRES[i][3]) + # verification de l'encadrement de val_init + for i in range(len(PARAMETRES)): + if( (PARAMETRES[i][1] < PARAMETRES[i][2]) or (PARAMETRES[i][1] > PARAMETRES[i][3])): + txt=txt + "\nLa valeur initiale "+str(PARAMETRES[i][1])+" de "+PARAMETRES[i][0]+ " n'est pas dans l'intervalle [borne_inf,born_inf]=["+str(PARAMETRES[i][2])+" , "+str(PARAMETRES[i][3])+"]" + # verification que val_init !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][1] == 0. ): + txt=txt + "\nProblème de valeurs initiales pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur initiale nulle mais un ordre de grandeur." + # verification que borne_sup !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][3] == 0. ): + txt=txt + "\nProblème de borne supérieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle." + # verification que borne_inf !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][2] == 0. ): + txt=txt + "\nProblème de borne inférieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle." + return txt + + +# ------------------------------------------------------------------------------ + +def verif_UNITE(GRAPHIQUE,UNITE_RESU): + """ + On vérifie que les unités de résultat et + de graphique sont différentes + """ + txt="" + if GRAPHIQUE: + GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] + if (GRAPHE_UL_OUT==UNITE_RESU): + txt=txt + "\nLes unités logiques des fichiers de résultats graphiques et de résultats d'optimisation sont les memes." + return txt + + +# ------------------------------------------------------------------------------ + +def gestion(UL,PARAMETRES,REPONSES,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU,METHODE): + """ + Cette methode va utiliser les methodes de cette classe declarée ci-dessus + test est un boolean: test=0 -> pas d'erreur + test=1 -> erreur détectée + """ + + texte = "" + texte_alarme = "" + + # On vérifie d'abord si PARAMETRES, REPONSES, RESU_EXP sont bien des listes au sens python + # test de PARAMETRES + texte = texte + erreur_de_type(0,PARAMETRES) + # test de REPONSES + texte = texte + erreur_de_type(0,REPONSES) + # test de RESU_EXP + texte = texte + erreur_de_type(0,RESU_EXP) + + # On vérifie si chaque sous liste de PARAMETRES, REPONSES, possède le type adéquat + # test des sous_listes de PARAMETRES + for i in range(len(PARAMETRES)): + texte = texte + erreur_de_type(0,PARAMETRES[i]) + # test des sous_listes de REPONSES + for i in range(len(REPONSES)): + texte = texte + erreur_de_type(0,REPONSES[i]) + + # On verifie si la dimension de chaque sous-liste de : PARAMETRES, REPONSES + # il faut que: la dimension d'une sous-liste de PARAMETRES = 4 + # et que la dimension d'une sous liste de REPONSES = 3 + texte = texte + erreur_dimension(PARAMETRES,REPONSES) + + # on verifie que l'on a autant de réponses que de résultats expérimentaux + texte = texte + compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP) + #on verifie que l'on a autant de poids que de résultats expérimentaux + texte = texte + compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP) + + # on verifie les types des arguments de chaque sous liste de PARAMETRES et REPONSES + # verification du type stringet type float des arguments de PARAMETRES + for i in range(len(PARAMETRES)): + texte = texte + erreur_de_type(1,PARAMETRES[i][0]) + for k in [1,2,3]: + texte = texte + erreur_de_type(2,PARAMETRES[i][k]) + + # verification du type string pour les arguments de REPONSES + for i in range(len(REPONSES)): + for j in range(len(REPONSES[i])): + texte = texte + erreur_de_type(1,REPONSES[i][j]) + + # verification du fichier de commandes Esclave ASTER + if METHODE != 'EXTERNE': # pour celui-ci le fort.UL n'est pas l'esclave... voir comment faire + texte_fatal, texte_alarme = verif_fichier(UL,PARAMETRES,REPONSES) + texte += texte_fatal + + # verification des valeurs des PARAMETRES entrées par l'utilisateur (pour fmin* les bornes ne sont pas prises en compte) + if METHODE == 'LEVENBERG': + texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES) + + # verification des unités logiques renseignées par l'utilisateur + if METHODE != 'EXTERNE': + texte = texte + verif_UNITE(GRAPHIQUE,UNITE_RESU) + + return texte, texte_alarme + diff --git a/Aster/Cata/cataSTA9/Macro/reca_graphique.py b/Aster/Cata/cataSTA9/Macro/reca_graphique.py new file mode 100644 index 00000000..bab1d8c2 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/reca_graphique.py @@ -0,0 +1,92 @@ +#@ MODIF reca_graphique Macro DATE 08/11/2005 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 diff --git a/Aster/Cata/cataSTA9/Macro/reca_interp.py b/Aster/Cata/cataSTA9/Macro/reca_interp.py new file mode 100644 index 00000000..d441a5e7 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/reca_interp.py @@ -0,0 +1,325 @@ +#@ MODIF reca_interp Macro DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# RESPONSABLE ASSIRE A.ASSIRE +# 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, pprint +import Numeric + +try: import Macro +except: pass + +try: + from Utilitai.Utmess import UTMESS +except ImportError: + def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + print fmt % (code,sprg,texte) + if code=='F': sys.exit() + + +#=========================================================================================== + + +# INTERPOLATION, CALCUL DE SENSIBILITE, ETC.... + +#-------------------------------------- +class Sim_exp : + + def __init__ (self,result_exp,poids) : + self.resu_exp = result_exp + self.poids = poids + +# ------------------------------------------------------------------------------ + + def InterpolationLineaire (self, 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] ) or ( x0 > points[n-1][0] ) : + txt = "Problème lors de l'interpolation du calcul dérivé sur les données expérimentale!" + txt += "\nValeur à interpoler : " + str(x0) + txt += "\nDomaine couvert par l'experience : [" + str(points[0][0]) + ":" + str(points[n-1][0]) + "]" + UTMESS('F','MACR_RECAL', txt) + + 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 DistVertAdimPointLigneBrisee (self, M, points) : + """ + Distance verticale d'un point M à une ligne brisée composée de n points + """ + # M = Point (2 colonnes, 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 ( M[0] < points[0][0] ) or ( M[0] > points[n-1][0] ): + return 0. + i = 1 + while M[0] > points[i][0]: + i = i+1 + y_proj_vert = (M[0]-points[i-1][0]) * (points[i][1]-points[i-1][1]) / (points[i][0]-points[i-1][0]) + points[i-1][1] + d = (M[1] - y_proj_vert) + # Attention: la distance n'est pas normalisée + # Attention: problème si points[0][0] = points[1][0] = M[0] + # Attention: problème si M[1] = 0 + return d + + +# ------------------------------------------------------------------------------ + + def _Interpole(self, F_calc,experience,poids) : #ici on passe en argument "une" experience + """ + La Fonction Interpole interpole une et une seule F_calc sur F_exp et renvoie l'erreur seulement + """ + + n = 0 + resu_num = F_calc + n_exp = len(experience) # nombre de points sur la courbe expérimentale num.i + stockage = Numeric.ones(n_exp, Numeric.Float) # matrice de stockage des erreurs en chaque point + for j in xrange(n_exp) : + d = self.DistVertAdimPointLigneBrisee(experience[j], resu_num) + try: + stockage[n] = d/experience[j][1] + except ZeroDivisionError: + stockage[n] = d + + n = n + 1 # on totalise le nombre de points valables + err = Numeric.ones(n, Numeric.Float) + + for i in xrange(n) : + err[i] = poids*stockage[i] + return err + + +# ------------------------------------------------------------------------------ + + def multi_interpole(self, L_F, reponses): + """ + Cette fonction appelle la fonction interpole et retourne les sous-fonctionnelles J et l'erreur. + On interpole toutes les reponses une à une en appelant la methode interpole. + """ + + L_erreur=[] + for i in range(len(reponses)): + err = self._Interpole(L_F[i],self.resu_exp[i],self.poids[i]) + L_erreur.append(err) + +# print "L_erreur=", L_erreur + + # On transforme L_erreur en tab num + dim=[] + J=[] + for i in range(len(L_erreur)): + dim.append(len(L_erreur[i])) + dim_totale = Numeric.sum(dim) + L_J = self.calcul_J(L_erreur) + a=0 + erreur = Numeric.zeros((dim_totale),Numeric.Float) + for n in range(len(L_erreur)): + for i in range(dim[n]): + erreur[i+a] = L_erreur[n][i] + a = dim[n] + del(L_erreur) #on vide la liste puisqu'on n'en a plus besoin + return L_J,erreur + + +# ------------------------------------------------------------------------------ + + def multi_interpole_sensib(self, L_F, reponses): + """ + Cette fonction retourne seulement l'erreur, elle est appelée dans la methode sensibilité. + On interpole toutes les reponses une à une en appelant la methode interpole. + """ + + L_erreur=[] + for i in range(len(reponses)): + err = self._Interpole(L_F[i], self.resu_exp[i], self.poids[i]) + L_erreur.append(err) + # On transforme L_erreur en tab num + return L_erreur + + +# ------------------------------------------------------------------------------ + + def calcul_J(self,L_erreur): + L_J = [] + for i in range(len(L_erreur)): + total = 0 + for j in range(len(L_erreur[i])): + total = total + L_erreur[i][j]**2 + L_J.append(total) + return L_J + + +# ------------------------------------------------------------------------------ + + def norme_J(self,L_J_init,L_J,unite_resu=None): + """ + Cette fonction calcul une valeur normée de J + """ + for i in range(len(L_J)): + try: + L_J[i] = L_J[i]/L_J_init[i] + except ZeroDivisionError: + message= 'Problème de division par zéro dans la normalisation de la fonctionnelle.\n' + message=message+'Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine : %.2f \n'%L_J_init + if unite_resu: + fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') + fic.write(message) + fic.close() + UTMESS('F', "MACR_RECAL", message) + return + + J = Numeric.sum(L_J) + J = J/len(L_J) + return J + + +# ------------------------------------------------------------------------------ + +# def sensibilite(self,objet,UL,F,L_deriv_sensible,val,para,reponses,pas,unite_resu,LIST_SENSI=[],LIST_DERIV=[],INFO=1): + + def sensibilite(self, CALCUL_ASTER, F, L_deriv_sensible, val, pas): + + # CALCUL_ASTER est l'objet regroupant le calcul de F et des derivées, ainsi que les options + UL = CALCUL_ASTER.UL + para = CALCUL_ASTER.para + reponses = CALCUL_ASTER.reponses + unite_resu = CALCUL_ASTER.UNITE_RESU + LIST_SENSI = CALCUL_ASTER.LIST_SENSI + LIST_DERIV = CALCUL_ASTER.LIST_DERIV + INFO = CALCUL_ASTER.INFO + + + + # Erreur de l'interpolation de F_interp : valeur de F interpolée sur les valeurs experimentales + F_interp = self.multi_interpole_sensib(F, reponses) #F_interp est une liste contenant des tab num des reponses interpolés + + # Creation de la liste des matrices de sensibilités + L_A=[] + for i in range(len(reponses)): + L_A.append(Numeric.zeros((len(self.resu_exp[i]),len(val)),Numeric.Float) ) + + for k in range(len(val)): # pour une colone de A (dim = nb parametres) + + # On utilise les differences finies pour calculer la sensibilité + # -------------------------------------------------------------- + # Dans ce cas, un premier calcul_Aster pour val[k] a deja ete effectué, on effectue un autre calcul_Aster pour val[k]+h + + if para[k] not in LIST_SENSI: + + # Message + if INFO>=2: UTMESS('I','MACR_RECAL','On utilise les differences finies pour calculer la sensibilite de : %s ' % para[k]) + + fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') + fic.write('\nCalcul de la sensibilité par differences finies pour : '+para[k]) + fic.close() + + # Perturbation + h = val[k]*pas + val[k] = val[k] + h + + # Calcul_Aster pour la valeur perturbée + F_perturbe, L_deriv = CALCUL_ASTER.calcul_Aster(val) + + # Erreur de l'interpolation de F_perturb : valeur de F (perturbée) interpolée sur les valeurs experimentales + F_perturbe_interp =self.multi_interpole_sensib(F_perturbe, reponses) + + # On replace les parametres a leurs valeurs initiales + val[k] = val[k] - h + + # Calcul de L_A (matrice sensibilité des erreurs sur F interpolée) + for j in range(len(reponses)): + for i in range(len(self.resu_exp[j])): + try: + L_A[j][i,k] = -1*(F_interp[j][i] - F_perturbe_interp[j][i])/h + except ZeroDivisionError: + fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') + fic.write('\n Probleme de division par zéro dans le calcul de la matrice de sensiblité') + fic.write('\n Le parametre '+para[k]+'est nul ou plus petit que la précision machine') + fic.close() + UTMESS('F','MACR_RECAL',"Probleme de division par zéro dans le calcul de la matrice de sensiblité.\n Le parametre "+para[k]+"est nul ou plus petit que la précision machine") + return + + + # On utilise le calcul de SENSIBILITE + # -------------------------------------------------------------- + # Dans ce cas, L_deriv_sensible a deja ete calculé pour le premier calcul pour val[k], aucun autre calcul_F n'est a lancer + else: + if INFO>=2: UTMESS('I','MACR_RECAL','On utilise le calcul de SENSIBILITE pour : %s ' % para[k]) + + # Message + fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') + fic.write('\nCalcul de la sensibilité par la SENSIBILITE pour : '+para[k]) + fic.close() + + L_deriv_sensible_interp = L_deriv_sensible + + # Calcul de L_A (matrice sensibilité des erreurs sur F interpolée) + for j in range(len(reponses)): + for i in range(len(self.resu_exp[j])): + + # On interpole la fonction derivée aux points experimentaux + val_derivee_interpolee = self.InterpolationLineaire( self.resu_exp[j][i][0], L_deriv_sensible_interp[ para[k] ][:][j] ) + + # Application du poids de la reponse courante j + val_derivee_interpolee = val_derivee_interpolee*self.poids[j] + + try: + L_A[j][i,k] = -1.* ( val_derivee_interpolee ) / self.resu_exp[j][i][1] + except ZeroDivisionError: + L_A[j][i,k] = -1.* ( val_derivee_interpolee ) + + # fin + # -------------------------------------------------------------- + + # On construit la matrice de sensiblité sous forme d'un tab num + dim =[] + for i in range(len(L_A)): + dim.append(len(L_A[i])) + dim_totale = Numeric.sum(dim) + a=0 + A = Numeric.zeros((dim_totale,len(val)),Numeric.Float) + for n in range(len(L_A)): + for k in range(len(val)): + for i in range(dim[n]): + A[i+a][k] = L_A[n][i,k] + a=dim[n] + + del(L_A) # On ecrase tout ce qu'il y a dans L_A puisqu'on n'en a plus besoin + + return A diff --git a/Aster/Cata/cataSTA9/Macro/reca_message.py b/Aster/Cata/cataSTA9/Macro/reca_message.py new file mode 100644 index 00000000..ec5d87fa --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/reca_message.py @@ -0,0 +1,173 @@ +#@ MODIF reca_message Macro DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# RESPONSABLE ASSIRE A.ASSIRE +# 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, Numeric + +try: + from Utilitai.Utmess import UTMESS +except: + def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + print fmt % (code,sprg,texte) + if code=='F': sys.exit() + +#=========================================================================================== + + +# AFFICHAGE DES MESSAGES + +class Message : + """classe gérant l'affichage des messages concernant le déroulement de l'optmisation """ + #Constructeur de la classe + +# ------------------------------------------------------------------------------ + + def __init__(self,para,val_init,resu_exp,ul_out): + self.nom_para = para + self.resu_exp = resu_exp + self.val_init = val_init + self.resu_exp = resu_exp + self.ul_out = ul_out + +# ------------------------------------------------------------------------------ + + def initialise(self): + res=open(os.getcwd()+'/fort.'+str(self.ul_out),'w') + res.close() + + txt = ' MACR_RECAL\n\n' + self.ecrire(txt) + +# ------------------------------------------------------------------------------ + + def ecrire(self,txt): + res=open(os.getcwd()+'/fort.'+str(self.ul_out),'a') + res.write(txt+'\n') + res.flush() + res.close() + + +# ------------------------------------------------------------------------------ + + def affiche_valeurs(self,val): + + txt = '\n=> Paramètres = ' + for i in range(len(val)): + txt += '\n '+ self.nom_para[i]+' = '+str(val[i]) + self.ecrire(txt) + +# ------------------------------------------------------------------------------ + + def affiche_fonctionnelle(self,J): + + txt = '\n=> Fonctionnelle = '+str(J) + self.ecrire(txt) + +# ------------------------------------------------------------------------------ + + def affiche_result_iter(self,iter,J,val,residu,Act=[],): + + txt = '\n=======================================================\n' + txt += 'Iteration '+str(iter)+' :\n' + txt += '\n=> Fonctionnelle = '+str(J) + txt += '\n=> Résidu = '+str(residu) + + self.ecrire(txt) + + txt = '' + self.affiche_valeurs(val) + + if (len(Act)!=0): + if (len(Act)==1): + txt += '\n\n Le paramètre ' + else: + txt += '\n\n Les paramètres ' + for i in Act: + txt += self.nom_para[i]+' ' + if (len(Act)==1): + txt += '\n est en butée sur un bord de leur domaine admissible.' + else: + txt += '\n sont en butée sur un bord de leur domaine admissible.' + txt += '\n=======================================================\n\n' + self.ecrire(txt) + + +# ------------------------------------------------------------------------------ + + def affiche_etat_final_convergence(self,iter,max_iter,iter_fonc,max_iter_fonc,prec,residu,Act=[]): + + txt = '' + if ((iter <= max_iter) or (residu <= prec) or (iter_fonc <= max_iter_fonc) ): + txt += '\n=======================================================\n' + txt += ' CONVERGENCE ATTEINTE ' + if (len(Act)!=0): + txt += "\n\n ATTENTION : L'OPTIMUM EST ATTEINT AVEC " + txt += "\n DES PARAMETRES EN BUTEE SUR LE BORD " + txt += "\n DU DOMAINE ADMISSIBLE " + txt += '\n=======================================================\n' + else: + txt += "\n=======================================================\n" + txt += ' CONVERGENCE NON ATTEINTE ' + if (iter > max_iter): + txt += "\n Le nombre maximal d'itération ("+str(max_iter)+") a été dépassé" + if (iter_fonc > max_iter_fonc): + txt += "\n Le nombre maximal d'evaluation de la fonction ("+str(max_iter_fonc)+") a été dépassé" + txt += '\n=======================================================\n' + self.ecrire(txt) + + +# ------------------------------------------------------------------------------ + + def affiche_calcul_etat_final(self,para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible): + + txt = '\n\nValeurs propres du Hessien:\n' + txt += str( valeurs_propres) + txt += '\n\nVecteurs propres associés:\n' + txt += str( vecteurs_propres) + txt += '\n\n --------' + txt += '\n\nOn peut en déduire que :' + # Paramètres sensibles + if (len(sensible)!=0): + txt += '\n\nLes combinaisons suivantes de paramètres sont prépondérantes pour votre calcul :\n' + k=0 + for i in sensible: + k=k+1 + colonne=vecteurs_propres[:,i] + numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1)) + txt += '\n '+str(k)+') ' + for j in numero: + txt += '%+3.1E ' %colonne[j]+'* '+para[j]+' ' + txt += '\n associée à la valeur propre %3.1E \n' %valeurs_propres[i] + # Paramètres insensibles + if (len(insensible)!=0): + txt += '\n\nLes combinaisons suivantes de paramètres sont insensibles pour votre calcul :\n' + k=0 + for i in insensible: + k=k+1 + colonne=vecteurs_propres[:,i] + numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1)) + txt += '\n '+str(k)+') ' + for j in numero: + txt += '%+3.1E ' %colonne[j]+'* '+para[j]+' ' + txt += '\n associée à la valeur propre %3.1E \n' %valeurs_propres[i] + + self.ecrire(txt) + diff --git a/Aster/Cata/cataSTA9/Macro/reca_utilitaires.py b/Aster/Cata/cataSTA9/Macro/reca_utilitaires.py new file mode 100644 index 00000000..c2c3cd27 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/reca_utilitaires.py @@ -0,0 +1,225 @@ +#@ MODIF reca_utilitaires Macro DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# RESPONSABLE ASSIRE A.ASSIRE +# 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. +# ====================================================================== + +import Numeric, LinearAlgebra, copy, os, string, types, sys, glob +from Numeric import take + +try: + from Cata.cata import INFO_EXEC_ASTER, DEFI_FICHIER, IMPR_FONCTION, DETRUIRE + from Accas import _F +except: pass + +try: import Gnuplot +except: pass + +try: + from Utilitai.Utmess import UTMESS +except ImportError: + def UTMESS(code,sprg,texte): + fmt='\n <%s> <%s> %s\n\n' + print fmt % (code,sprg,texte) + if code=='F': sys.exit() + + + +# ------------------------------------------------------------------------------ +# ------------------------------------------------------------------------------ + +#_____________________________________________ +# +# DIVERS UTILITAIRES POUR LA MACRO +#_____________________________________________ + + +def transforme_list_Num(parametres,res_exp): + """ + Transforme les données entrées par l'utilisateur en tableau Numeric + """ + + dim_para = len(parametres) #donne le nb de parametres + val_para = Numeric.zeros(dim_para,Numeric.Float) + borne_inf = Numeric.zeros(dim_para,Numeric.Float) + borne_sup = Numeric.zeros(dim_para,Numeric.Float) + para = [] + for i in range(dim_para): + para.append(parametres[i][0]) + val_para[i] = parametres[i][1] + borne_inf[i] = parametres[i][2] + borne_sup[i] = parametres[i][3] + return para,val_para,borne_inf,borne_sup + + +# ------------------------------------------------------------------------------ + +def mes_concepts(list_concepts=[],base=None): + """ + Fonction qui liste les concepts créés + """ + for e in base.etapes: + if e.nom in ('INCLUDE','MACR_RECAL',) : + list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e)) + elif (e.sd != None) and (e.parent.nom=='INCLUDE') : + nom_concept=e.sd.get_name() + if not(nom_concept in list_concepts): + list_concepts.append( nom_concept ) + return tuple(list_concepts) + + +# ------------------------------------------------------------------------------ + +def detr_concepts(self): + """ + Fonction qui detruit les concepts créés + """ + liste_concepts=mes_concepts(base=self.parent) + for e in liste_concepts: + nom = string.strip(e) + DETRUIRE( CONCEPT =self.g_context['_F'](NOM = nom), INFO=1, ALARME='NON') + if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom] + del(liste_concepts) + + +# ------------------------------------------------------------------------------ + + + + + + + + +#_____________________________________________ +# +# CALCUL DU TEMPS CPU RESTANT +#_____________________________________________ + + +#def temps_CPU(self,restant_old,temps_iter_old): +def temps_CPU(restant_old,temps_iter_old): + """ + Fonction controlant le temps CPU restant + """ + CPU=INFO_EXEC_ASTER(LISTE_INFO = ("CPU_RESTANT",)) + TEMPS=CPU['CPU_RESTANT',1] + DETRUIRE(CONCEPT=_F(NOM='CPU'),INFO=1) + err=0 + # Indique une execution interactive + if (TEMPS>1.E+9): + return 0.,0.,0 + # Indique une execution en batch + else: + restant=TEMPS + # Initialisation + if (restant_old==0.): + temps_iter=-1. + else: + # Première mesure + if (temps_iter_old==-1.): + temps_iter=(restant_old-restant) + # Mesure courante + else: + temps_iter=(temps_iter_old + (restant_old-restant))/2. + if ((temps_iter>0.96*restant)or(restant<0.)): + err=1 + UTMESS('F','MACR_RECAL',"Arret de MACR_RECAL par manque de temps CPU.") + + return restant,temps_iter,err + + + + +#_____________________________________________ +# +# IMPRESSIONS GRAPHIQUES +#_____________________________________________ + + +def graphique(FORMAT, L_F, res_exp, reponses, iter, UL_out, interactif, fichier=None, INFO=0): + + if iter: txt_iter = 'Iteration : ' + str(iter) + else: txt_iter = '' + + # Le try/except est la pour eviter de planter betement dans un trace de courbes (DISPLAY non defini, etc...) + try: + 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' + + IMPR_FONCTION(FORMAT='XMGRACE', + UNITE=int(UL_out), + TITRE='Courbe de : ' + reponses[i][0], + SOUS_TITRE=txt_iter, + LEGENDE_X=reponses[i][1], + LEGENDE_Y=reponses[i][2], + **motscle2 + ); + + elif FORMAT=='GNUPLOT': + if INFO>=2: UTMESS('I','MACR_RECAL',"Trace des courbes dans le fichier " + fichier ) + + if fichier: + # On efface les anciens graphes + liste = glob.glob(fichier + '*.ps') + for fic in liste: + try: os.remove(fic) + except: pass + + 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)): + 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]+' ' + txt_iter) + graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental')) + if interactif: + graphe[i]('pause 5') + else: + if fichier: + if INFO>=2: UTMESS('I','MACR_RECAL',"Trace des courbes dans le fichier " + fichier + '_' + str(i) + '.ps' ) + graphe[i].hardcopy(fichier + '_' + str(i) + '.ps', enhanced=1, color=1) + + 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')) + + except Exception, err: + UTMESS('A','MACR_RECAL',"Probleme lors de l'affichage des courbes. On ignore et on continue. Erreur :\n" + str(err) ) + diff --git a/Aster/Cata/cataSTA9/Macro/recal.py b/Aster/Cata/cataSTA9/Macro/recal.py new file mode 100644 index 00000000..684df91c --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/recal.py @@ -0,0 +1,358 @@ +#@ MODIF recal Macro DATE 29/08/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- 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. +# +# 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 INCLUDE, DETRUIRE + + +#_____________________________________________ +# +# DIVERS UTILITAIRES POUR LA MACRO +#_____________________________________________ + + +# Transforme les données entrées par l'utilisateur en tableau Numeric +def transforme_list_Num(parametres,res_exp): + dim_para = len(parametres) #donne le nb de parametres + val_para = Numeric.zeros(dim_para,Numeric.Float) + borne_inf = Numeric.zeros(dim_para,Numeric.Float) + borne_sup = Numeric.zeros(dim_para,Numeric.Float) + para = [] + for i in range(dim_para): + para.append(parametres[i][0]) + val_para[i] = parametres[i][1] + borne_inf[i] = parametres[i][2] + borne_sup[i] = parametres[i][3] + return para,val_para,borne_inf,borne_sup + +def mes_concepts(list_concepts=[],base=None): + # Fonction qui liste les concepts créés + for e in base.etapes: + if e.nom in ('INCLUDE','MACR_RECAL',) : + list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e)) + elif (e.sd != None) and (e.parent.nom=='INCLUDE') : + nom_concept=e.sd.get_name() + if not(nom_concept in list_concepts): + list_concepts.append( nom_concept ) + return tuple(list_concepts) + + +def detr_concepts(self): + liste_concepts=mes_concepts(base=self.parent) + for e in liste_concepts: + nom = string.strip(e) + DETRUIRE( CONCEPT =self.g_context['_F'](NOM = nom),INFO=1) + if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom] + del(liste_concepts) + + +def calcul_F(self,UL,para,val,reponses): + fic = open('fort.'+str(UL),'r') + #On stocke le contenu de fort.UL dans la variable fichier qui est un string + fichier=fic.read() + #On stocke le contenu initial de fort.UL dans la variable fichiersauv + fichiersauv=copy.copy(fichier) + fic.close() + + #Fichier_Resu est une liste ou l'on va stocker le fichier modifié + #idée générale :on délimite des 'blocs' dans fichier + #on modifie ou non ces blocs suivant les besoins + #on ajoute ces blocs dans la liste Fichier_Resu + Fichier_Resu=[] + + try: + #cherche l'indice de DEBUT() + index_deb=string.index(fichier,'DEBUT(') + while( fichier[index_deb]!='\n'): + index_deb=index_deb+1 + #on restreind fichier en enlevant 'DEBUT();' + fichier = fichier[index_deb+1:] + except : + #on va dans l'except si on a modifié le fichier au moins une fois + pass + + try: + #cherche l'indice de FIN() + index_fin = string.index(fichier,'FIN(') + #on restreind fichier en enlevant 'FIN();' + fichier = fichier[:index_fin] + except : pass + #-------------------------------------------------------------------------------- + #on cherche à délimiter le bloc des parametres dans le fichier + #Tout d'abord on cherche les indices d'apparition des paras dans le fichier + #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise + #avec le meme ordre de son fichier de commande + index_para = Numeric.zeros(len(para)) + for i in range(len(para)): + index_para[i] = string.index(fichier,para[i]) + #On range les indices par ordre croissant afin de déterminer + #les indice_max et indice_min + index_para = Numeric.sort(index_para) + index_first_para = index_para[0] + index_last_para = index_para[len(index_para)-1] + + + #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation + bloc_inter ='\n' + for i in range(len(para)-1): + j = index_para[i] + k = index_para[i+1] + while(fichier[j]!= '\n'): + j=j+1 + bloc_inter=bloc_inter + fichier[j:k] + '\n' + + #on veut se placer sur le premier retour chariot que l'on trouve sur la ligne du dernier para + i = index_last_para + while(fichier[i] != '\n'): + i = i + 1 + index_last_para = i + #on délimite les blocs suivants: + pre_bloc = fichier[:index_first_para] #fichier avant premier parametre + post_bloc = fichier[ index_last_para+ 1:] #fichier après dernier parametre + + #on ajoute dans L tous ce qui est avant le premier paramètre + Fichier_Resu.append(pre_bloc) + Fichier_Resu.append('\n') + #On ajoute la nouvelle valeur des parametres + dim_para=len(para) + for j in range(dim_para): + Fichier_Resu.append(para[j]+'='+str(val[j]) + ';' + '\n') + #On ajoute à Fichier_Resu tous ce qui est entre les parametres + Fichier_Resu.append(bloc_inter) + + Fichier_Resu.append(post_bloc) + #-------------------------------------------------------------------------------- + #on va ajouter la fonction d'extraction du numarray de la table par la méthode Array + #et on stocke les réponses calculées dans la liste Lrep + #qui va etre retournée par la fonction calcul_F + self.g_context['Lrep'] = [] + Fichier_Resu.append('Lrep=[]'+'\n') + for i in range(len(reponses)): + Fichier_Resu.append('t'+str(reponses[i][0])+'='+str(reponses[i][0])+'.EXTR_TABLE()'+'\n') + Fichier_Resu.append('_F_ = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n') + Fichier_Resu.append('Lrep.append(_F_)'+'\n') + + #ouverture du fichier fort.3 et mise a jour de celui ci + x=open('fort.'+str(UL),'w') + x.writelines('from Accas import _F \nfrom Cata.cata import * \n') + x.writelines(Fichier_Resu) + x.close() + del(Fichier_Resu) + del(pre_bloc) + del(post_bloc) + del(fichier) + + INCLUDE(UNITE = UL) + detr_concepts(self) + # on remet le fichier dans son etat initial + x=open('fort.'+str(UL),'w') + x.writelines(fichiersauv) + x.close() + return self.g_context['Lrep'] + + +#_____________________________________________ +# +# CONTROLE DES ENTREES UTILISATEUR +#_____________________________________________ + +def erreur_de_type(code_erreur,X): + #code_erreur ==0 --> X est une liste + #code erreur ==1 --> X est un char + #code erreur ==2 --> X est un float + #test est un boolean (test = 0 défaut et 1 si un test if est verifier + txt="" + if(code_erreur == 0 ): + if type(X) is not types.ListType: + txt="\nCette entrée: " +str(X)+" n'est pas une liste valide" + if(code_erreur == 1 ): + if type(X) is not types.StringType: + txt="\nCette entrée: " +str(X)+" n'est pas une chaine de caractère valide ; Veuillez la ressaisir en lui appliquant le type char de python" + if(code_erreur == 2 ): + if type(X) is not types.FloatType: + txt="\nCette entrée: " +str(X)+" n'est pas une valeur float valide ; Veuillez la ressaisir en lui appliquant le type float de python" + return txt + + +def erreur_dimension(PARAMETRES,REPONSES): +#On verifie que la dimension de chaque sous_liste de parametre est 4 +#et que la dimension de chaque sous_liste de REPONSES est 3 + txt="" + for i in range(len(PARAMETRES)): + if (len(PARAMETRES[i]) != 4): + txt=txt + "\nLa sous-liste de la variable paramètre numéro " + str(i+1)+" n'est pas de longueur 4" + for i in range(len(REPONSES)): + if (len(REPONSES[i]) != 3): + txt=txt + "\nLa sous-liste de la variable réponse numéro " + str(i+1)+" n'est pas de longueur 3" + return txt + + +def compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP): + # X et Y sont deux arguments qui doivent avoir la meme dimension + # pour éviter l'arret du programme + txt="" + if( len(REPONSES) != len(RESU_EXP)): + txt="\nVous avez entré " +str(len(REPONSES))+ " réponses et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de réponses que de résultats expérimentaux" + return txt + +def verif_RESU_EXP(RESU_EXP): + # RESU_EXP doit etre une liste de tableaux Numeric de taille Nx2 + # pour éviter l'arret du programme + txt="" + for index,resu in enumerate(RESU_EXP): + if (isinstance(resu,Numeric.ArrayType)): + if (len(Numeric.shape(resu)) != 2): + txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau de N lignes et 2 colonnes." + else: + if (Numeric.shape(resu)[1] != 2): + txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau de N lignes et 2 colonnes." + else: + txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau Numeric." + return txt + +def compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP): + # POIDS et Y sont deux arguments qui doivent avoir la meme dimension + # pour éviter l'arret du programme + txt="" + if( len(POIDS) != len(RESU_EXP)): + txt="\nVous avez entré " +str(len(POIDS))+ " poids et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de poids que de résultats expérimentaux" + return txt + + +def verif_fichier(UL,PARAMETRES,REPONSES): +#On verifie les occurences des noms des PARAMETRES et REPONSES +#dans le fichier de commande ASTER + txt="" + fichier = open('fort.'+str(UL),'r') + fic=fichier.read() + for i in range(len(PARAMETRES)): + if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))): + txt=txt + "\nLe paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER" + for i in range(len(REPONSES)): + if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))): + txt=txt + "\nLa réponse "+REPONSES[i][0]+" que vous avez entrée pour la phase d'optimisation n'a pas été trouvée dans votre fichier de commandes ASTER" + return txt + + +def verif_valeurs_des_PARAMETRES(PARAMETRES): +#On verifie que pour chaque PARAMETRES de l'optimisation +# les valeurs entrées par l'utilisateur sont telles que : +# val_infPARAMETRES[i][3]): + txt=txt + "\nLa borne inférieure "+str(PARAMETRES[i][2])+" de "+PARAMETRES[i][0]+ "est plus grande que sa borne supérieure"+str(PARAMETRES[i][3]) + #verification de l'encadrement de val_init + for i in range(len(PARAMETRES)): + if( (PARAMETRES[i][1] < PARAMETRES[i][2]) or (PARAMETRES[i][1] > PARAMETRES[i][3])): + txt=txt + "\nLa valeur initiale "+str(PARAMETRES[i][1])+" de "+PARAMETRES[i][0]+ " n'est pas dans l'intervalle [borne_inf,born_inf]=["+str(PARAMETRES[i][2])+" , "+str(PARAMETRES[i][3])+"]" + #verification que val_init !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][1] == 0. ): + txt=txt + "\nProblème de valeurs initiales pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur initiale nulle mais un ordre de grandeur." + #verification que borne_sup !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][3] == 0. ): + txt=txt + "\nProblème de borne supérieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle." + #verification que borne_inf !=0 + for i in range(len(PARAMETRES)): + if (PARAMETRES[i][2] == 0. ): + txt=txt + "\nProblème de borne inférieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle." + return txt + + +def verif_UNITE(GRAPHIQUE,UNITE_RESU): + # On vérifie que les unités de résultat et + # de graphique sont différentes + txt="" + GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] + if (GRAPHE_UL_OUT==UNITE_RESU): + txt=txt + "\nLes unités logiques des fichiers de résultats graphiques et de résultats d'optimisation sont les memes." + return txt + + + +def gestion(UL,PARAMETRES,REPONSES,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU): + #Cette methode va utiliser les methodes de cette classe declarée ci_dessus + #test est un boolean: test=0 -> pas d'erreur + # test=1 -> erreur détectée + + texte="" + #On vérifie d'abord si PARAMETRES, REPONSES, RESU_EXP sont bien des listes au sens python + #test de PARAMETRES + texte = texte + erreur_de_type(0,PARAMETRES) + #test de REPONSES + texte = texte + erreur_de_type(0,REPONSES) + #test de RESU_EXP + texte = texte + erreur_de_type(0,RESU_EXP) + + #On vérifie si chaque sous liste de PARAMETRES, REPONSES, possède le type adéquat + #test des sous_listes de PARAMETRES + for i in range(len(PARAMETRES)): + texte = texte + erreur_de_type(0,PARAMETRES[i]) + #test des sous_listes de REPONSES + for i in range(len(REPONSES)): + texte = texte + erreur_de_type(0,REPONSES[i]) + + #On verifie si la dimension de chaque sous-liste de : PARAMETRES, REPONSES + #il faut que:la dimension d'une sous-liste de PARAMETRES = 4 + #et que la dimension d'une sous liste de REPONSES = 3 + texte = texte + erreur_dimension(PARAMETRES,REPONSES) + + #on verifie le type et la dimension des résultats expérimentaux + texte = texte + verif_RESU_EXP(RESU_EXP) + #on verifie que l'on a autant de réponses que de résultats expérimentaux + texte = texte + compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP) + #on verifie que l'on a autant de poids que de résultats expérimentaux + texte = texte + compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP) + + #on verifie les types des arguments de chaque sous liste de PARAMETRES et REPONSES + #verification du type stringet type float des arguments de PARAMETRES + for i in range(len(PARAMETRES)): + texte = texte + erreur_de_type(1,PARAMETRES[i][0]) + for k in [1,2,3]: + texte = texte + erreur_de_type(2,PARAMETRES[i][k]) + + #verification du type string pour les arguments de REPONSES + for i in range(len(REPONSES)): + for j in range(len(REPONSES[i])): + texte = texte + erreur_de_type(1,REPONSES[i][j]) + + #verification du fichier de commndes ASTER + texte = texte + verif_fichier(UL,PARAMETRES,REPONSES) + + #verifiaction des valeurs des PARAMETRES entrées par l'utilisteur + texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES) + + #verifiaction des unités logiques renseignées par l'utilisateur + texte = texte + verif_UNITE(GRAPHIQUE,UNITE_RESU) + + return texte + + diff --git a/Aster/Cata/cataSTA9/Macro/simu_point_mat_ops.py b/Aster/Cata/cataSTA9/Macro/simu_point_mat_ops.py new file mode 100644 index 00000000..97d51a80 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/simu_point_mat_ops.py @@ -0,0 +1,431 @@ +#@ MODIF simu_point_mat_ops Macro DATE 09/01/2007 AUTEUR PROIX J-M.PROIX +# -*- 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. +# ====================================================================== +def simu_point_mat_ops(self, COMP_INCR, MATER, INCREMENT, NEWTON,CONVERGENCE, + SUIVI_DDL,ARCHIVAGE,SIGM_IMPOSE,EPSI_IMPOSE,MODELISATION, INFO, **args) : + + """Simulation de la reponse d'un point materiel""" + + 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 + DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') + LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') + AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') + AFFE_MODELE = self.get_cmd('AFFE_MODELE') + AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') + STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') + STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') + POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') + CALC_TABLE = self.get_cmd('CALC_TABLE') + CALC_ELEM = self.get_cmd('CALC_ELEM') + + from Accas import _F + from Utilitai.UniteAster import UniteAster + + +# -- Tests de cohérence + __fonczero = DEFI_FONCTION(NOM_PARA = 'INST', + VALE = ( 0,0, 10,0 ),PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT') + + EPS={} + SIG={} + + if MODELISATION=="3D": + nbsig=6 + CMP_EPS=['EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'] + CMP_SIG=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] + else: + nbsig=3 + CMP_EPS=['EPXX','EPYY','EPXY'] + CMP_SIG=['SIXX','SIYY','SIXY'] + + if SIGM_IMPOSE: + SIG=SIGM_IMPOSE[0].cree_dict_valeurs(SIGM_IMPOSE[0].mc_liste) + for i in SIG.keys(): + if SIG[i]==None : SIG[i]=__fonczero + else: + for i in range(nbsig): + SIG[CMP_SIG[i]]=__fonczero + + if EPSI_IMPOSE: + EPS=EPSI_IMPOSE[0].cree_dict_valeurs(EPSI_IMPOSE[0].mc_liste) +# for i in EPS.keys(): +# if EPS[i]==None : EPS[i]=__fonczero + else: + for i in range(nbsig): + EPS[CMP_EPS[i]]=None + + for index in range(nbsig): + iks=CMP_SIG[index] + ike=CMP_EPS[index] + if EPS[ike]!=None and SIG[iks] != __fonczero : + raise ' un seul parmi :' + str(iks) +' '+ str(ike) + +# print 'EPS=',EPS +# print 'SIG=',SIG +# -- Definition du maillage + if MODELISATION=="3D": + + texte_ma = """ + COOR_3D + P0 0.0 0.0 0.0 + P1 1.0 0.0 0.0 + P2 0.0 1.0 0.0 + P3 0.0 0.0 1.0 + FINSF + TRIA3 + F1 P0 P3 P2 + F2 P0 P1 P3 + F3 P0 P2 P1 + F4 P1 P2 P3 + FINSF + TETRA4 + VOLUME = P0 P1 P2 P3 + FINSF + FIN + """ + + else : + + texte_ma = """ + COOR_2D + P0 0.0 0.0 + P1 1.0 0.0 + P2 0.0 1.0 + FINSF + SEG2 + S1 P2 P0 + S2 P0 P1 + S3 P1 P2 + FINSF + TRIA3 + VOLUME = P0 P1 P2 + FINSF + FIN + """ + + UL = UniteAster() + umail = UL.Libre(action='ASSOCIER', nom='simu.mail' ) + + fi_mail = open('simu.mail','w') + fi_mail.write(texte_ma) + fi_mail.close() + + __MA = LIRE_MAILLAGE(UNITE=umail) + UL.EtatInit() + + +# -- Materiau et modele + + __CHMAT = AFFE_MATERIAU( + MAILLAGE = __MA, + AFFE = _F( + MAILLE = 'VOLUME', + MATER = MATER + ) + ) + + if MODELISATION=="3D": + + __MO = AFFE_MODELE( + MAILLAGE = __MA, + AFFE = _F( + MAILLE = ('VOLUME','F1','F2','F3','F4'), + PHENOMENE = 'MECANIQUE', + MODELISATION = '3D', + ) + ) +# -- Mouvement de corps rigide + + __C_RIGIDE = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD = 'P0',DX = 0,DY = 0,DZ = 0), + LIAISON_DDL = ( + _F(NOEUD=('P2','P1'),DDL=('DX','DY'),COEF_MULT=(1,-1),COEF_IMPO=0), + _F(NOEUD=('P3','P1'),DDL=('DX','DZ'),COEF_MULT=(1,-1),COEF_IMPO=0), + _F(NOEUD=('P3','P2'),DDL=('DY','DZ'),COEF_MULT=(1,-1),COEF_IMPO=0), + ) + ) + else: + + + __MO = AFFE_MODELE( + MAILLAGE = __MA, + AFFE = _F( + MAILLE = ('VOLUME','S1','S2','S3'), + PHENOMENE = 'MECANIQUE', + MODELISATION = MODELISATION + ) + ) + + __C_RIGIDE = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD = 'P0',DX = 0,DY = 0), + LIAISON_DDL = ( + _F(NOEUD=('P2','P1'),DDL=('DX','DY'),COEF_MULT=(1,-1),COEF_IMPO=0), + ) + ) + + + +# -- Chargement en deformation + + __E = [None]*nbsig + + __E[0] = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD='P1', DX=1) + ) + + __E[1] = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD='P2', DY=1) + ) + if MODELISATION=="3D": + + __E[2] = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD='P3', DZ=1) + ) + + __E[3] = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD='P1', DY=1) + ) + + __E[4] = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD='P1', DZ=1) + ) + + __E[5] = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD='P2', DZ=1) + ) + else: + __E[2] = AFFE_CHAR_MECA( + MODELE = __MO, + DDL_IMPO = _F(NOEUD='P1', DY=1) + ) + + +# -- Chargement en contrainte + + __S = [None]*nbsig + + if MODELISATION=="3D": + + + r33 = 3**-0.5 + + __S[0] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_FACE = ( + _F(MAILLE='F1', FX=-1), + _F(MAILLE='F4', FX= r33), + ) + ) + + __S[1] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_FACE = ( + _F(MAILLE='F2', FY=-1), + _F(MAILLE='F4', FY= r33), + ) + ) + + __S[2] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_FACE = ( + _F(MAILLE='F3', FZ=-1), + _F(MAILLE='F4', FZ= r33), + ) + ) + + __S[3] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_FACE = ( + _F(MAILLE='F1', FY=-1), + _F(MAILLE='F2', FX=-1), + _F(MAILLE='F4', FX= r33, FY=r33), + ) + ) + + __S[4] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_FACE = ( + _F(MAILLE='F1', FZ=-1), + _F(MAILLE='F3', FX=-1), + _F(MAILLE='F4', FX= r33, FZ=r33), + ) + ) + + __S[5] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_FACE = ( + _F(MAILLE='F2', FZ=-1), + _F(MAILLE='F3', FY=-1), + _F(MAILLE='F4', FY= r33, FZ=r33), + ) + ) + + else: + + r22 = 2**-0.5 + + __S[0] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_CONTOUR = ( + _F(MAILLE='S1', FX=-1), + _F(MAILLE='S3', FX= r22), + ) + ) + + __S[1] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_CONTOUR = ( + _F(MAILLE='S2', FY=-1), + _F(MAILLE='S3', FY= r22), + ) + ) + + __S[2] = AFFE_CHAR_MECA( + MODELE = __MO, + FORCE_CONTOUR = ( + _F(MAILLE='S1', FY=-1), + _F(MAILLE='S2', FX=-1), + _F(MAILLE='S3', FX= r22, FY=r22), + ) + ) + +# -- Construction de la charge + + l_char = [ _F(CHARGE=__C_RIGIDE) ] + + for i in xrange(nbsig) : + ike=CMP_EPS[i] + if EPS[ike]: + l_char.append( _F(CHARGE=__E[i],FONC_MULT=EPS[ike]) ) + + for i in xrange(nbsig) : + iks=CMP_SIG[i] + l_char.append( _F(CHARGE=__S[i],FONC_MULT=SIG[iks]) ) + +# -- Deroulement du calcul + motscles={} + motscles['COMP_INCR'] = COMP_INCR.List_F() + motscles['CONVERGENCE'] = CONVERGENCE.List_F() + motscles['NEWTON'] = NEWTON.List_F() + motscles['INCREMENT'] = INCREMENT.List_F() + + if SUIVI_DDL : + motscles['SUIVI_DDL'] = SUIVI_DDL.List_F() + + if ARCHIVAGE : + motscles['ARCHIVAGE'] = ARCHIVAGE.List_F() + + + __EVOL = STAT_NON_LINE( + MODELE = __MO, + CHAM_MATER = __CHMAT, + EXCIT = l_char,**motscles) + + + __EVOL = CALC_ELEM(reuse = __EVOL, + RESULTAT = __EVOL, + OPTION = ('SIEF_ELNO_ELGA','EPSI_ELNO_DEPL','VARI_ELNO_ELGA') + ) + + +# -- Recuperation des courbes + + __REP_VARI = POST_RELEVE_T( + ACTION = ( + _F( + INTITULE = 'VARI_INT', + RESULTAT = __EVOL, + NOM_CHAM = 'VARI_ELNO_ELGA', + TOUT_CMP = 'OUI', + OPERATION = 'EXTRACTION', + NOEUD = 'P0' + ), + ) + ) + + + __REP_EPSI = POST_RELEVE_T( + ACTION = ( + _F( + INTITULE = 'EPSILON', + RESULTAT = __EVOL, + NOM_CHAM = 'EPSI_ELNO_DEPL', + TOUT_CMP = 'OUI', + OPERATION = 'EXTRACTION', + NOEUD = 'P0' + ), + ) + ) + + __REP_SIGM = POST_RELEVE_T( + ACTION = ( + _F( + INTITULE = 'SIGMA', + RESULTAT = __EVOL, + NOM_CHAM = 'SIEF_ELNO_ELGA', + TOUT_CMP = 'OUI', + OPERATION = 'EXTRACTION', + NOEUD = 'P0' + ), + ) + ) + + __REP_INV = POST_RELEVE_T( + ACTION = ( + _F( + INTITULE = 'INV', + RESULTAT = __EVOL, + NOM_CHAM = 'SIEF_ELNO_ELGA', + INVARIANT = 'OUI', + OPERATION = 'EXTRACTION', + NOEUD = 'P0' + ), + ) + ) + __REP_INV=CALC_TABLE( TABLE=__REP_INV,reuse=__REP_INV, + ACTION=_F(OPERATION='EXTR',NOM_PARA=('INST','TRACE','VMIS'), ) ) + + self.DeclareOut('REPONSE',self.sd) + + REPONSE=CALC_TABLE( TABLE=__REP_EPSI, + ACTION=( + _F(OPERATION='COMB',TABLE=__REP_SIGM,NOM_PARA=('INST'), ), + _F(OPERATION='COMB',TABLE=__REP_INV ,NOM_PARA=('INST'), ), + _F(OPERATION='COMB',TABLE=__REP_VARI,NOM_PARA=('INST'), ), + ) + ) + + return ier + + + + diff --git a/Aster/Cata/cataSTA9/Macro/stanley_ops.py b/Aster/Cata/cataSTA9/Macro/stanley_ops.py new file mode 100644 index 00000000..761b45fb --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/stanley_ops.py @@ -0,0 +1,89 @@ +#@ MODIF stanley_ops Macro DATE 12/09/2006 AUTEUR ASSIRE A.ASSIRE +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args): + + """ + Importation et lancement de Stanley + """ + + import os,string + import aster + from Accas import _F + from Noyau.N_utils import AsType + from Utilitai.Utmess import UTMESS + from Utilitai.UniteAster import UniteAster + + prev_onFatalError = aster.onFatalError() + aster.onFatalError('EXCEPTION') + + ier=0 + + # La macro compte pour 1 dans la numerotation des commandes + self.set_icmd(1) + + # Redefinition eventuelle du DISPLAY + if DISPLAY: + UTMESS('I','STANLEY', 'Redefinition du DISPLAY vers : ' + DISPLAY) + os.environ['DISPLAY'] = DISPLAY + + # Mode validation de la non-regression + if args['UNITE_VALIDATION']: + UTMESS('I','STANLEY', 'Stanley fonctionne en mode validation de non-regresion') + UL = UniteAster() + FICHIER_VALID=UL.Nom(args['UNITE_VALIDATION']) + else: + FICHIER_VALID=None + + # On ne lance Stanley que si la variable DISPLAY est définie + if os.environ.has_key('DISPLAY'): + + import Stanley + from Stanley import stanley + + if (RESULTAT and MODELE and CHAM_MATER): + _MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) + _MAIL = string.strip(_MAIL[0]) + MAILLAGE = self.jdc.g_context[_MAIL] + if CARA_ELEM: + stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM) + else: + stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None) + else: + stanley.PRE_STANLEY(FICHIER_VALID) + + else: + UTMESS('A','STANLEY', + """Aucune variable d'environnement DISPLAY définie ! + STANLEY ne pourra pas fonctionner. On l'ignore. + + Si vous etes en Interactif, cochez le bouton Suivi Interactif + dans ASTK. + + Vous pouvez également préciser votre DISPLAY dans les arguments + de la commande STANLEY : + + STANLEY(DISPLAY='adresse_ip:0.0');""") + + aster.onFatalError(prev_onFatalError) + + return ier diff --git a/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py new file mode 100644 index 00000000..35d34da1 --- /dev/null +++ b/Aster/Cata/cataSTA9/Macro/test_fichier_ops.py @@ -0,0 +1,277 @@ +#@ MODIF test_fichier_ops Macro DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS +# -*- coding: iso-8859-1 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 sys +import os.path +import re +from math import floor, log10 +from types import StringType +import md5 + +#------------------------------------------------------------------------------- +def test_fichier_ops(self, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args): + """ + Macro TEST_FICHIER permettant de tester la non-regression d'un fichier + 'a une tolerance' pres pour les nombres reels en calculant + le md5sum. + """ + 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 + INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') + DETRUIRE = self.get_cmd('DETRUIRE') + CREA_TABLE = self.get_cmd('CREA_TABLE') + TEST_TABLE = self.get_cmd('TEST_TABLE') + + 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 = [] + if args['EXPR_IGNORE']: + if type(args['EXPR_IGNORE']) is StringType: + lexp = [args['EXPR_IGNORE']] + else: + lexp = args['EXPR_IGNORE'] + for exp in lexp: + try: + obj = re.compile(exp) + except re.error, s: + UTMESS('F', 'TEST_FICHIER', + ' %s pour %s' % (str(s), repr(exp))) + else: + l_regexp.append(exp) + + 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: + 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 + else: + 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)) + + if mdsum == VALE_K: + 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,),),) + if args['REFERENCE'] == 'NON_REGRESSION': + TEST_TABLE(TABLE=tab1__, + FILTRE=_F(NOM_PARA='TEST', + VALE_K='VALEUR ',), + NOM_PARA='BOOLEEN', + VALE_I=1, + PRECISION=1.e-3, + CRITERE='ABSOLU', + REFERENCE=args['REFERENCE'], + VERSION=args['VERSION'],) + else: + TEST_TABLE(TABLE=tab1__, + FILTRE=_F(NOM_PARA='TEST', + VALE_K='VALEUR ',), + NOM_PARA='BOOLEEN', + VALE_I=1, + PRECISION=1.e-3, + CRITERE='ABSOLU', + REFERENCE=args['REFERENCE'],) + + DETRUIRE(CONCEPT=_F(NOM=('tinfo__','tab1__'),), + ALARME='NON',INFO=1,) + return ier + + +#------------------------------------------------------------------------------- +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. + IN : + fich : nom du fichier + nbch : nombre de decimales significatives + 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 + + 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') + 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 + for exp in regexp_ignore: + if re.search(exp, ligne): + keep = False + if info >= 2: + print ' >>>>>>>>>> IGNOREE <<<<<<<<<<', + break + if keep: + # découpe des nombres collés : 1.34E-142-1.233D+09 + 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: + xv = float(x) + if abs(xv)= 2: + print (' %'+str(nbch+7)+'s') % s, + m.update(s) + if info >= 2: + print + f.close() + 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/cataSTA9/SD/__init__.py b/Aster/Cata/cataSTA9/SD/__init__.py new file mode 100644 index 00000000..2e177851 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/__init__.py @@ -0,0 +1,26 @@ +#@ MODIF __init__ 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 Accas import ASSD +from Sdbase.asnom import SDNom +from Sdbase.ascheckers import Parmi +from Sdbase.asojb import AsBase, AsVK8, AsVK16, AsVK24, AsVK32, AsVK80, \ + AsVI, AsVR, AsVC, AsColl, AsObject, Facultatif, OJBVect + diff --git a/Aster/Cata/cataSTA9/SD/co_base_modale.py b/Aster/Cata/cataSTA9/SD/co_base_modale.py new file mode 100644 index 00000000..398d0dcd --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_base_modale.py @@ -0,0 +1,28 @@ +#@ MODIF co_base_modale 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_base_modale import sd_base_modale + +from co_resultat_dyn import resultat_dyn + +# ----------------------------------------------------------------------------- +class base_modale(resultat_dyn, sd_base_modale): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_cabl_precont.py b/Aster/Cata/cataSTA9/SD/co_cabl_precont.py new file mode 100644 index 00000000..fff9b395 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_cabl_precont.py @@ -0,0 +1,26 @@ +#@ MODIF co_cabl_precont 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_cabl_precont import sd_cabl_precont + +# ----------------------------------------------------------------------------- +class cabl_precont(ASSD, sd_cabl_precont): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_cara_elem.py b/Aster/Cata/cataSTA9/SD/co_cara_elem.py new file mode 100644 index 00000000..74ed0fc5 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_cara_elem.py @@ -0,0 +1,26 @@ +#@ MODIF co_cara_elem 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_cara_elem import sd_cara_elem + +# ----------------------------------------------------------------------------- +class cara_elem(ASSD, sd_cara_elem): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_carte.py b/Aster/Cata/cataSTA9/SD/co_carte.py new file mode 100644 index 00000000..23392a45 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_carte.py @@ -0,0 +1,28 @@ +#@ MODIF co_carte 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_carte import sd_carte +from co_champ import cham_gd_sdaster + +# ----------------------------------------------------------------------------- +class carte_sdaster(cham_gd_sdaster, sd_carte): + pass + diff --git a/Aster/Cata/cataSTA9/SD/co_cham_elem.py b/Aster/Cata/cataSTA9/SD/co_cham_elem.py new file mode 100644 index 00000000..74ab6231 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_cham_elem.py @@ -0,0 +1,72 @@ +#@ MODIF co_cham_elem 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. +# ====================================================================== + +import Accas +from SD import * +from sd_cham_elem import sd_cham_elem +from co_champ import cham_gd_sdaster + +# ----------------------------------------------------------------------------- +# post-traitement : +class post_comp_cham_el : + def __init__(self,valeurs,maille=None,point=None,sous_point=None) : + self.valeurs=valeurs + self.maille=maille + self.point=point + self.sous_point=sous_point + +# ----------------------------------------------------------------------------- +class cham_elem(cham_gd_sdaster, sd_cham_elem): + def EXTR_COMP(self,comp,lgma,topo=0) : + """ retourne les valeurs de la composante comp du champ sur la liste + de groupes de mailles lgma avec eventuellement l'info de la + topologie si topo>0. Si lgma est une liste vide, c'est equivalent + a un TOUT='OUI' dans les commandes aster + Attributs retourne + - self.valeurs : Numeric.array contenant les valeurs + Si on a demande la topo : + - 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))*' ' + nchams=ncham[0:7]+'S' + ncmp=comp+(8-len(comp))*' ' + + aster.prepcompcham(ncham,nchams,ncmp,"EL ",topo,lgma) + + valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) + + if (topo>0) : + maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M')) + point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P')) + sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP')) + else : + maille=None + point=None + sous_point=None + + aster.prepcompcham("__DETR__",nchams,ncmp,"EL ",topo,lgma) + + return post_comp_cham_el(valeurs,maille,point,sous_point) + diff --git a/Aster/Cata/cataSTA9/SD/co_cham_mater.py b/Aster/Cata/cataSTA9/SD/co_cham_mater.py new file mode 100644 index 00000000..339f49ea --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_cham_mater.py @@ -0,0 +1,26 @@ +#@ MODIF co_cham_mater 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_cham_mater import sd_cham_mater + +# ----------------------------------------------------------------------------- +class cham_mater(ASSD, sd_cham_mater): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_cham_no.py b/Aster/Cata/cataSTA9/SD/co_cham_no.py new file mode 100644 index 00000000..8e35ba8b --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_cham_no.py @@ -0,0 +1,69 @@ +#@ MODIF co_cham_no 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. +# ====================================================================== + +import Accas +from SD import * +from sd_cham_no import sd_cham_no +from co_champ import cham_gd_sdaster + +# ----------------------------------------------------------------------------- +# post-traitement : +class post_comp_cham_no : + def __init__(self,valeurs,noeud=None) : + self.valeurs=valeurs + self.noeud=noeud + +# ----------------------------------------------------------------------------- +class cham_no_sdaster(cham_gd_sdaster, sd_cham_no): + def EXTR_COMP(self,comp,lgno,topo=0) : + """ retourne les valeurs de la composante comp du champ sur la liste + de groupes de noeuds lgno avec eventuellement l'info de la + topologie si topo>0. Si lgno est une liste vide, c'est equivalent + a un TOUT='OUI' dans les commandes aster + Attributs retourne + - 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' + ncmp=comp+(8-len(comp))*' ' + + aster.prepcompcham(ncham,nchams,ncmp,"NO ",topo,lgno) + + valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V')) + + if (topo>0) : + noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N')) + else : + noeud=None + + aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno) + + return post_comp_cham_no(valeurs,noeud) + + + + + + diff --git a/Aster/Cata/cataSTA9/SD/co_champ.py b/Aster/Cata/cataSTA9/SD/co_champ.py new file mode 100644 index 00000000..d8bd5ebf --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_champ.py @@ -0,0 +1,26 @@ +#@ MODIF co_champ 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_champ import sd_champ + +# ----------------------------------------------------------------------------- +class cham_gd_sdaster(ASSD, sd_champ): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_acou.py b/Aster/Cata/cataSTA9/SD/co_char_acou.py new file mode 100644 index 00000000..e9ea68c1 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_char_acou.py @@ -0,0 +1,26 @@ +#@ MODIF co_char_acou 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_char_acou import sd_char_acou + +# ----------------------------------------------------------------------------- +class char_acou(ASSD, sd_char_acou): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_cine_acou.py b/Aster/Cata/cataSTA9/SD/co_char_cine_acou.py new file mode 100644 index 00000000..795fe7ea --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_char_cine_acou.py @@ -0,0 +1,26 @@ +#@ MODIF co_char_cine_acou 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_char_cine import sd_char_cine + +# ----------------------------------------------------------------------------- +class char_cine_acou(ASSD, sd_char_cine): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_cine_meca.py b/Aster/Cata/cataSTA9/SD/co_char_cine_meca.py new file mode 100644 index 00000000..9de54b8e --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_char_cine_meca.py @@ -0,0 +1,26 @@ +#@ MODIF co_char_cine_meca 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_char_cine import sd_char_cine + +# ----------------------------------------------------------------------------- +class char_cine_meca(ASSD, sd_char_cine): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_cine_ther.py b/Aster/Cata/cataSTA9/SD/co_char_cine_ther.py new file mode 100644 index 00000000..fb1fa859 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_char_cine_ther.py @@ -0,0 +1,26 @@ +#@ MODIF co_char_cine_ther 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_char_cine import sd_char_cine + +# ----------------------------------------------------------------------------- +class char_cine_ther(ASSD, sd_char_cine): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_meca.py b/Aster/Cata/cataSTA9/SD/co_char_meca.py new file mode 100644 index 00000000..fbfc2ee9 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_char_meca.py @@ -0,0 +1,26 @@ +#@ MODIF co_char_meca 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_char_meca import sd_char_meca + +# ----------------------------------------------------------------------------- +class char_meca(ASSD, sd_char_meca): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_char_ther.py b/Aster/Cata/cataSTA9/SD/co_char_ther.py new file mode 100644 index 00000000..6347a4c1 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_char_ther.py @@ -0,0 +1,26 @@ +#@ MODIF co_char_ther 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_char_ther import sd_char_ther + +# ----------------------------------------------------------------------------- +class char_ther(ASSD, sd_char_ther): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_compor.py b/Aster/Cata/cataSTA9/SD/co_compor.py new file mode 100644 index 00000000..ed77879e --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_compor.py @@ -0,0 +1,26 @@ +#@ MODIF co_compor 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_compor import sd_compor + +# ----------------------------------------------------------------------------- +class compor_sdaster(ASSD, sd_compor): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_courbe.py b/Aster/Cata/cataSTA9/SD/co_courbe.py new file mode 100644 index 00000000..80fedf13 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_courbe.py @@ -0,0 +1,26 @@ +#@ MODIF co_courbe 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_courbe import sd_courbe + +# ----------------------------------------------------------------------------- +class courbe_sdaster(ASSD, sd_courbe): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_fiss_xfem.py b/Aster/Cata/cataSTA9/SD/co_fiss_xfem.py new file mode 100644 index 00000000..57d24dcb --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_fiss_xfem.py @@ -0,0 +1,26 @@ +#@ MODIF co_fiss_xfem 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_fiss_xfem import sd_fiss_xfem + +# ----------------------------------------------------------------------------- +class fiss_xfem(ASSD, sd_fiss_xfem): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_fonction.py b/Aster/Cata/cataSTA9/SD/co_fonction.py new file mode 100644 index 00000000..bef847f3 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_fonction.py @@ -0,0 +1,319 @@ +#@ MODIF co_fonction 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. +# ====================================================================== + +import types +import Accas +from SD import * +from sd_fonction import sd_fonction + +from math import pi + +# ----------------------------------------------------------------------------- +# types 'fonction' : +class fonction_class(ASSD): + def Valeurs(self): + pass + def Parametres(self): + """ + Retourne un dictionnaire contenant les parametres de la fonction ; + le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne, + le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel. + """ + from Utilitai.Utmess import UTMESS + if not self.par_lot(): + TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } + objev = '%-19s.PROL' % self.get_name() + prol = aster.getvectjev(objev) + if prol == None: + UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev) + dico={ + 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], + 'NOM_PARA' : prol[2][0:16].strip(), + 'NOM_RESU' : prol[3][0:16].strip(), + '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'], + 'NOM_RESU' : self.etape['NOM_RESU'], + 'PROL_DROITE' : self.etape['PROL_DROITE'], + 'PROL_GAUCHE' : self.etape['PROL_GAUCHE'], + } + if type(dico['INTERPOL']) == tuple: + dico['INTERPOL']=list(dico['INTERPOL']) + elif type(dico['INTERPOL']) == str: + dico['INTERPOL']=[dico['INTERPOL'],] + if len(dico['INTERPOL'])==1 : + dico['INTERPOL']=dico['INTERPOL']*2 + 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(), + Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU']]) + gr.Trace(FORMAT=FORMAT,**kargs) + +# ----------------------------------------------------------------------------- +class fonction_sdaster(fonction_class, sd_fonction): + def convert(self,arg='real'): + """ + Retourne un objet de la classe t_fonction + représentation python de la fonction + """ + from Utilitai.t_fonction import t_fonction,t_fonction_c + if arg=='real' : + return t_fonction(self.Absc(), + self.Ordo(), + self.Parametres()) + elif arg=='complex' : + return t_fonction_c(self.Absc(), + self.Ordo(), + self.Parametres()) + def Valeurs(self) : + """ + Retourne deux listes de valeurs : abscisses et ordonnees + """ + from Utilitai.Utmess import UTMESS + if not self.par_lot(): + vale = '%-19s.VALE' % self.get_name() + lbl = aster.getvectjev(vale) + if lbl == None: + UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale) + lbl = list(lbl) + dim = len(lbl)/2 + lx = lbl[0:dim] + ly = lbl[dim:2*dim] + elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION' : + if self.etape['VALE'] != None: + lbl = list(self.etape['VALE']) + dim = len(lbl) + lx = [lbl[i] for i in range(0,dim,2)] + ly = [lbl[i] for i in range(1,dim,2)] + elif self.etape['VALE_PARA']!=None: + lx = self.etape['VALE_PARA'].Valeurs() + ly = self.etape['VALE_FONC'].Valeurs() + else: + raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \ + "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \ + "dans le jdc courant.") + return [lx, ly] + def Absc(self): + """Retourne la liste des abscisses""" + return self.Valeurs()[0] + def Ordo(self): + """Retourne la liste des ordonnées""" + return self.Valeurs()[1] + def __call__(self,val): + ### Pour EFICAS : substitution de l'instance de classe + ### parametre par sa valeur + if type(val) == types.InstanceType and hasattr(val,"valeur"): + val=val.valeur + ### + __ff=self.convert() + return __ff(val) + +# ----------------------------------------------------------------------------- +class para_sensi(fonction_sdaster): + pass + +# ----------------------------------------------------------------------------- +class fonction_c(fonction_class, sd_fonction): + def convert(self,arg='real'): + """ + Retourne un objet de la classe t_fonction ou t_fonction_c, + représentation python de la fonction complexe + """ + from Utilitai.t_fonction import t_fonction,t_fonction_c + if arg=='real' : + return t_fonction(self.Absc(), + self.Ordo(), + self.Parametres()) + elif arg=='imag' : + return t_fonction(self.Absc(), + self.OrdoImg(), + self.Parametres()) + elif arg=='modul' : + modul=Numeric.sqrt(Numeric.array(self.Ordo())**2+Numeric.array(self.OrdoImg())**2) + return t_fonction(self.Absc(), + modul, + self.Parametres()) + elif arg=='phase' : + phase=Numeric.arctan2(Numeric.array(self.OrdoImg()),Numeric.array(self.Ordo())) + phase=phase*180./pi + return t_fonction(self.Absc(), + phase, + self.Parametres()) + elif arg=='complex' : + return t_fonction_c(self.Absc(), + map(complex,self.Ordo(),self.OrdoImg()), + self.Parametres()) + def Valeurs(self) : + """ + Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. + """ + from Utilitai.Utmess import UTMESS + if not self.par_lot(): + vale = '%-19s.VALE' % self.get_name() + lbl = aster.getvectjev(vale) + if lbl == None: + UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale) + lbl = list(lbl) + dim=len(lbl)/3 + lx=lbl[0:dim] + lr=[] + li=[] + for i in range(dim): + lr.append(lbl[dim+2*i]) + li.append(lbl[dim+2*i+1]) + elif hasattr(self, 'etape') and 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)] + else: + raise Accas.AsException("Erreur (fonction_c.Valeurs) : ne fonctionne en " \ + "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \ + "dans le jdc courant.") + return [lx, lr, li] + def Absc(self): + """Retourne la liste des abscisses""" + return self.Valeurs()[0] + def Ordo(self): + """Retourne la liste des parties réelles des ordonnées""" + return self.Valeurs()[1] + def OrdoImg(self): + """Retourne la liste des parties imaginaires des ordonnées""" + 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(), + Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU'],'IMAG']) + gr.Trace(FORMAT=FORMAT,**kargs) + def __call__(self,val): + ### Pour EFICAS : substitution de l'instance de classe + ### parametre par sa valeur + if isinstance(val, ASSD): + val=val.valeur + ### + __ff=self.convert() + return __ff(val) + +# ----------------------------------------------------------------------------- +class nappe_sdaster(fonction_class, sd_fonction): + def convert(self): + """ + Retourne un objet de la classe t_nappe, représentation python de la nappe + """ + from Utilitai.t_fonction import t_fonction,t_nappe + para=self.Parametres() + vale=self.Valeurs() + l_fonc=[] + i=0 + for pf in para[1] : + para_f={'INTERPOL' : pf['INTERPOL_FONC'], + 'PROL_DROITE' : pf['PROL_DROITE_FONC'], + 'PROL_GAUCHE' : pf['PROL_GAUCHE_FONC'], + 'NOM_PARA' : para[0]['NOM_PARA_FONC'], + 'NOM_RESU' : para[0]['NOM_RESU'], + } + l_fonc.append(t_fonction(vale[1][i][0],vale[1][i][1],para_f)) + i+=1 + return t_nappe(vale[0], + l_fonc, + para[0]) + def Valeurs(self): + """ + Retourne la liste des valeurs du parametre, + et une liste de couples (abscisses,ordonnees) de chaque fonction. + """ + from Utilitai.Utmess import UTMESS + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'") + nsd = '%-19s' % self.get_name() + dicv=aster.getcolljev(nsd+'.VALE') + # les cles de dicv sont 1,...,N (indice du parametre) + lpar=aster.getvectjev(nsd+'.PARA') + if lpar == None: + UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % (nsd+'.PARA')) + lval=[] + for k in range(len(dicv)): + lbl=dicv[k+1] + dim=len(lbl)/2 + lval.append([lbl[0:dim],lbl[dim:2*dim]]) + return [list(lpar),lval] + def Parametres(self): + """ + Retourne un dictionnaire contenant les parametres de la nappe, + le type jeveux (NAPPE) n'est pas retourne, + le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel, + et une liste de dictionnaire des parametres de chaque fonction. + """ + from Utilitai.Utmess import UTMESS + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'") + TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } + objev = '%-19s.PROL' % self.get_name() + prol=aster.getvectjev(objev) + if prol == None: + UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev) + dico={ + 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], + 'NOM_PARA' : prol[2][0:16].strip(), + 'NOM_RESU' : prol[3][0:16].strip(), + 'PROL_DROITE' : TypeProl[prol[4][1]], + 'PROL_GAUCHE' : TypeProl[prol[4][0]], + 'NOM_PARA_FONC' : prol[5][0:4].strip(), + } + lparf=[] + nbf=(len(prol)-6)/2 + for i in range(nbf): + dicf={ + 'INTERPOL_FONC' : [prol[6+i*2][0:3],prol[6+i*2][4:7]], + 'PROL_DROITE_FONC' : TypeProl[prol[7+i*2][1]], + 'PROL_GAUCHE_FONC' : TypeProl[prol[7+i*2][0]], + } + lparf.append(dicf) + return [dico,lparf] + def Absc(self): + """Retourne la liste des abscisses""" + return self.Valeurs()[0] + 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] + dp=self.Parametres()[0] + for lx,ly in lv: + gr.AjoutCourbe(Val=[lx,ly], Lab=[dp['NOM_PARA_FONC'],dp['NOM_RESU']]) + gr.Trace(FORMAT=FORMAT,**kargs) diff --git a/Aster/Cata/cataSTA9/SD/co_fond_fiss.py b/Aster/Cata/cataSTA9/SD/co_fond_fiss.py new file mode 100644 index 00000000..ebacba14 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_fond_fiss.py @@ -0,0 +1,26 @@ +#@ MODIF co_fond_fiss 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_fond_fiss import sd_fond_fiss + +# ----------------------------------------------------------------------------- +class fond_fiss(ASSD, sd_fond_fiss): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_gfibre.py b/Aster/Cata/cataSTA9/SD/co_gfibre.py new file mode 100644 index 00000000..39907ac8 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_gfibre.py @@ -0,0 +1,26 @@ +#@ MODIF co_gfibre 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_gfibre import sd_gfibre + +# ----------------------------------------------------------------------------- +class gfibre_sdaster(ASSD, sd_gfibre): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_interf_dyna_clas.py b/Aster/Cata/cataSTA9/SD/co_interf_dyna_clas.py new file mode 100644 index 00000000..a66111e0 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_interf_dyna_clas.py @@ -0,0 +1,26 @@ +#@ MODIF co_interf_dyna_clas 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_interf_dyna_clas import sd_interf_dyna_clas + +# ----------------------------------------------------------------------------- +class interf_dyna_clas(ASSD, sd_interf_dyna_clas): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_listis.py b/Aster/Cata/cataSTA9/SD/co_listis.py new file mode 100644 index 00000000..071d0094 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_listis.py @@ -0,0 +1,26 @@ +#@ MODIF co_listis 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_listis import sd_listis + +# ----------------------------------------------------------------------------- +class listis_sdaster(ASSD, sd_listis): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_listr8.py b/Aster/Cata/cataSTA9/SD/co_listr8.py new file mode 100644 index 00000000..05d5cd39 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_listr8.py @@ -0,0 +1,40 @@ +#@ MODIF co_listr8 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. +# ====================================================================== + +import Accas +from SD import * +from sd_listr8 import sd_listr8 + +# ----------------------------------------------------------------------------- +class listr8_sdaster(ASSD, sd_listr8): + def Valeurs(self) : + """ + Retourne la liste des valeurs : [val1, ..., valN] + """ + from Utilitai.Utmess import UTMESS + if not self.par_lot(): + vale='%-19s.VALE' % self.get_name() + t_vale = aster.getvectjev(vale) + if t_vale == None: + UTMESS('F', 'listr8.Valeurs', "Objet '%s' inexistant" % vale) + return list(t_vale) + else: + raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'") + diff --git a/Aster/Cata/cataSTA9/SD/co_macr_elem_dyna.py b/Aster/Cata/cataSTA9/SD/co_macr_elem_dyna.py new file mode 100644 index 00000000..993dc0f9 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_macr_elem_dyna.py @@ -0,0 +1,131 @@ +#@ MODIF co_macr_elem_dyna 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. +# ====================================================================== + +import Accas +from SD import * +from sd_macr_elem_dyna import sd_macr_elem_dyna + +# ----------------------------------------------------------------------------- +class macr_elem_dyna(ASSD, sd_macr_elem_dyna): + def NBRE_MODES(self) : + """ retourne le nombre de modes total, dynamiques et d'interface """ + if self.par_lot() : + raise Accas.AsException("Erreur dans macr_elem_dyna.NBRE_MODES en PAR_LOT='OUI'") + nommacr=self.get_name() + ncham=nommacr+(8-len(nommacr))*' ' + ncham=nommacr+(8-len(nommacr))*' '+'.MAEL' + nombase=aster.getvectjev(ncham+'_REFE')[0] + nbmode=Numeric.array(aster.getvectjev(nombase[0:8]+(19-len(nombase[0:8]))*' '+'.UTIL')) + nbmodtot=nbmode[1] + nbmoddyn=nbmode[2] + nbmodint=nbmode[3] + return [nbmodtot,nbmoddyn,nbmodint] + + def EXTR_MATR_GENE(self,typmat) : + """ retourne les valeurs des matrices generalisees reelles + dans un format Numerical Array + typmat='MASS_GENE' pour obtenir la matrice de masse generalisee + typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee + typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee + Attributs retourne + - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot() : + raise Accas.AsException("Erreur dans macr_elem_dyna.EXTR_MATR_GENE en PAR_LOT='OUI'") + + nommacr=self.get_name() + if (typmat=='MASS_GENE') : + ext='.MAEL_MASS' + elif (typmat=='RIGI_GENE') : + ext='.MAEL_RAID' + elif (typmat=='AMOR_GENE') : + ext='.MAEL_AMOR' + else: + raise Accas.AsException("Le type de la matrice est incorrect") + ncham=nommacr+(8-len(nommacr))*' '+ext + desc=Numeric.array(aster.getvectjev(ncham+'_DESC')) + + # On teste si le DESC du vecteur existe + if (desc==None): + raise Accas.AsException("L'objet matrice n'existe pas ou \ + est mal cree par Code Aster") + + tmp=Numeric.array(aster.getvectjev(ncham+'_VALE')) + matrice=Numeric.zeros([desc[1],desc[1]],Numeric.Float) + for j in range(desc[1]+1): + for i in range(j): + k=j*(j-1)/2+i + matrice[j-1,i]=tmp[k] + matrice=(matrice+Numeric.transpose(matrice)) + for i in range(desc[1]): + matrice[i,i]=0.5*matrice[i,i] + return matrice + + def RECU_MATR_GENE(self,typmat,matrice) : + """ envoie les valeurs d'un Numerical Array dans des matrices generalisees + reelles definies dans jeveux + typmat='MASS_GENE' pour obtenir la matrice de masse generalisee + typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee + typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee + Attributs ne retourne rien """ + if self.par_lot() : + raise Accas.AsException("Erreur dans macr_elem_dyna.RECU_MATR_GENE en PAR_LOT='OUI'") + from Utilitai.Utmess import UTMESS + + # avertissement generique + UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') + + nommacr=self.get_name() + if (typmat=='MASS_GENE') : + ext='.MAEL_MASS' + elif (typmat=='RIGI_GENE') : + ext='.MAEL_RAID' + elif (typmat=='AMOR_GENE') : + ext='.MAEL_AMOR' + else: + raise Accas.AsException("Le type de la matrice \ + est incorrect") + ncham=nommacr+(8-len(nommacr))*' '+ext + desc=Numeric.array(aster.getvectjev(ncham+'_DESC')) + + # On teste si le DESC de la matrice jeveux existe + if (desc==None): + raise Accas.AsException("L'objet matrice n'existe pas ou \ + est mal cree par Code Aster") + Numeric.asarray(matrice) + + # On teste si la matrice python est de dimension 2 + if (len(Numeric.shape(matrice))<>2): + raise Accas.AsException("La dimension de la matrice \ + est incorrecte") + + # On teste si les tailles de la matrice jeveux et python sont identiques + if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : + raise Accas.AsException("La dimension de la matrice \ + est incorrecte") + taille=desc[1]*desc[1]/2.0+desc[1]/2.0 + tmp=Numeric.zeros([int(taille)],Numeric.Float) + for j in range(desc[1]+1): + for i in range(j): + k=j*(j-1)/2+i + tmp[k]=matrice[j-1,i] + aster.putvectjev(ncham+'_VALE',len(tmp),tuple(( + range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) + return + diff --git a/Aster/Cata/cataSTA9/SD/co_macr_elem_stat.py b/Aster/Cata/cataSTA9/SD/co_macr_elem_stat.py new file mode 100644 index 00000000..8c1fd634 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_macr_elem_stat.py @@ -0,0 +1,27 @@ +#@ MODIF co_macr_elem_stat 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_macr_elem_stat import sd_macr_elem_stat + +# ----------------------------------------------------------------------------- +# Description de la structure de données +class macr_elem_stat(ASSD, sd_macr_elem_stat): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_maillage.py b/Aster/Cata/cataSTA9/SD/co_maillage.py new file mode 100644 index 00000000..45347812 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_maillage.py @@ -0,0 +1,53 @@ +#@ MODIF co_maillage 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. +# ====================================================================== + +import Accas +from SD import * +from sd_maillage import sd_maillage + +# ----------------------------------------------------------------------------- +class maillage_sdaster(ASSD, sd_maillage): + 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") + #dic_gpno = self.GROUPENO.get() + 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=[] + ltyma =aster.getvectjev("&CATA.TM.NOMTM") + catama=aster.getcolljev("&CATA.TM.TMDIM") + dic_gpma=aster.getcolljev(nommail+".GROUPEMA") + dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")] + for grp in dic_gpma.keys(): + dim=max([dimama[ma-1] for ma in dic_gpma[grp]]) + ngpma.append((grp.strip(),len(dic_gpma[grp]),dim)) + return ngpma + diff --git a/Aster/Cata/cataSTA9/SD/co_mater.py b/Aster/Cata/cataSTA9/SD/co_mater.py new file mode 100644 index 00000000..68301dab --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_mater.py @@ -0,0 +1,54 @@ +#@ MODIF co_mater 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. +# ====================================================================== + +import Accas +from SD import * +from sd_mater import sd_mater + +# ----------------------------------------------------------------------------- +class mater_sdaster(ASSD, sd_mater): + def RCVALE(self, phenomene, nompar=(), valpar=(), nomres=(), stop='F'): + """Appel à la routine fortran RCVALE pour récupérer les valeurs des + propriétés du matériau. + """ + if self.par_lot() : + raise Accas.AsException("Erreur dans mater.RCVALE en PAR_LOT='OUI'") + from Utilitai.Utmess import UTMESS + # vérification des arguments + if not type(nompar) in (list, tuple): + nompar = [nompar,] + if not type(valpar) in (list, tuple): + valpar = [valpar,] + if not type(nomres) in (list, tuple): + nomres = [nomres,] + nompar = tuple(nompar) + valpar = tuple(valpar) + nomres = tuple(nomres) + if len(nompar) != len(valpar): + UTMESS('F', 'RCVALE', """Arguments incohérents : + Nom des paramètres : %s + Valeur des paramètres : %s""" \ + % (', '.join(nompar), ', '.join([repr(v) for v in valpar]))) + if len(nomres) < 1: + UTMESS('F', 'RCVALE', 'Argument invalide : "nomres" vide !') + # appel à l'interface Python/C + return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop) + + diff --git a/Aster/Cata/cataSTA9/SD/co_matr_asse.py b/Aster/Cata/cataSTA9/SD/co_matr_asse.py new file mode 100644 index 00000000..b57e3846 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_matr_asse.py @@ -0,0 +1,27 @@ +#@ MODIF co_matr_asse 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_matr_asse import sd_matr_asse + +# ----------------------------------------------------------------------------- +class matr_asse(ASSD, sd_matr_asse): + pass + diff --git a/Aster/Cata/cataSTA9/SD/co_matr_asse_gd.py b/Aster/Cata/cataSTA9/SD/co_matr_asse_gd.py new file mode 100644 index 00000000..e315d4b6 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_matr_asse_gd.py @@ -0,0 +1,45 @@ +#@ MODIF co_matr_asse_gd 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_matr_asse_gd import sd_matr_asse_gd +from co_matr_asse import matr_asse + +# ----------------------------------------------------------------------------- +# Description de la structure de données +class matr_asse_gd(matr_asse, sd_matr_asse_gd): + pass + +class matr_asse_depl_c(matr_asse_gd): + pass + +class matr_asse_depl_r(matr_asse_gd): + pass + +class matr_asse_pres_c(matr_asse_gd): + pass + +class matr_asse_pres_r(matr_asse_gd): + pass + +class matr_asse_temp_c(matr_asse_gd): + pass + +class matr_asse_temp_r(matr_asse_gd): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_matr_asse_gene.py b/Aster/Cata/cataSTA9/SD/co_matr_asse_gene.py new file mode 100644 index 00000000..f38315d0 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_matr_asse_gene.py @@ -0,0 +1,211 @@ +#@ MODIF co_matr_asse_gene 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. +# ====================================================================== + +import Accas +from SD import * +from sd_matr_asse_gene import sd_matr_asse_gene + +# ----------------------------------------------------------------------------- +class matr_asse_gene(ASSD, sd_matr_asse_gene): + pass + +# ----------------------------------------------------------------------------- +class matr_asse_gene_r(matr_asse_gene): + def EXTR_MATR_GENE(self) : + """ retourne les valeurs de la matrice generalisee reelle + dans un format Numerical Array + Attributs retourne + - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot(): + raise Accas.AsException("Erreur dans matr_asse_gene.EXTR_MATR_GENE en PAR_LOT='OUI'") + + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) + # On teste si le DESC de la matrice existe + if (desc==None): + raise Accas.AsException("L'objet matrice n'existe pas ou \ + est mal cree par Code Aster") + # Si le stockage est plein + if desc[2]==2 : + tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) + valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float) + for j in range(desc[1]+1): + for i in range(j): + k=j*(j-1)/2+i + valeur[j-1,i]=tmp[k] + valeur=(valeur+Numeric.transpose(valeur)) + for i in range(desc[1]): + valeur[i,i]=0.5*valeur[i,i] + # Si le stockage est diagonal + elif desc[2]==1 : + tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) + valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float) + for i in range(desc[1]): + valeur[i,i]=tmp[i] + # Sinon on arrete tout + else: + raise KeyError + return valeur + + def RECU_MATR_GENE(self,matrice) : + """ envoie les valeurs d'un Numerical Array dans des matrices + generalisees reelles definies dans jeveux + Attributs ne retourne rien """ + if self.par_lot(): + raise Accas.AsException("Erreur dans matr_asse_gene.RECU_MATR_GENE en PAR_LOT='OUI'") + from Utilitai.Utmess import UTMESS + + # avertissement generique + UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') + + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) + + # On teste si le DESC de la matrice existe + if (desc==None): + raise Accas.AsException("L'objet matrice n'existe pas ou \ + est mal cree par Code Aster") + Numeric.asarray(matrice) + + # On teste si la dimension de la matrice python est 2 + if (len(Numeric.shape(matrice))<>2) : + raise Accas.AsException("La dimension de la matrice est incorrecte ") + + # On teste si les tailles des matrices jeveux et python sont identiques + if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : + raise Accas.AsException("La taille de la matrice est incorrecte ") + + # Si le stockage est plein + if desc[2]==2 : + taille=desc[1]*desc[1]/2.0+desc[1]/2.0 + tmp=Numeric.zeros([int(taille)],Numeric.Float) + for j in range(desc[1]+1): + for i in range(j): + k=j*(j-1)/2+i + tmp[k]=matrice[j-1,i] + aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\ + range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) + # Si le stockage est diagonal + elif desc[2]==1 : + tmp=Numeric.zeros(desc[1],Numeric.Float) + for j in range(desc[1]): + tmp[j]=matrice[j,j] + aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\ + range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) + # Sinon on arrete tout + else: + raise KeyError + return + +# ----------------------------------------------------------------------------- +class matr_asse_gene_c(matr_asse_gene): + def EXTR_MATR_GENE(self) : + """ retourne les valeurs de la matrice generalisee complexe + dans un format Numerical Array + Attributs retourne + - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot(): + raise Accas.AsException("Erreur dans matr_asse_gene_c.EXTR_MATR_GENE en PAR_LOT='OUI'") + + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) + if (desc==None): + raise Accas.AsException("L'objet matrice n'existe pas ou \ + est mal cree par Code Aster ") + # Si le stockage est plein + if desc[2]==2 : + tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) + valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex) + for j in range(desc[1]+1): + for i in range(j): + k=j*(j-1)/2+i + valeur[j-1,i]=tmp[k] + valeur=(valeur+Numeric.transpose(valeur)) + for i in range(desc[1]): + valeur[i,i]=0.5*valeur[i,i] + # Si le stockage est diagonal + elif desc[2]==1 : + tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) + valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex) + for i in range(desc[1]): + valeur[i,i]=tmp[i] + # Sinon on arrete tout + else: + raise KeyError + return valeur + + def RECU_MATR_GENE(self,matrice) : + """ envoie les valeurs d'un Numerical Array dans des matrices + generalisees reelles definies dans jeveux + Attributs ne retourne rien """ + if self.par_lot(): + raise Accas.AsException("Erreur dans matr_asse_gene_c.RECU_MATR_GENE en PAR_LOT='OUI'") + from Utilitai.Utmess import UTMESS + + # avertissement generique + UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') + + Numeric.asarray(matrice) + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) + + # On teste si le DESC de la matrice existe + if (desc==None): + raise Accas.AsException("L'objet matrice n'existe pas ou \ + est mal cree par Code Aster") + Numeric.asarray(matrice) + + # On teste si la dimension de la matrice python est 2 + if (len(Numeric.shape(matrice))<>2) : + raise Accas.AsException("La dimension de la matrice est incorrecte ") + + # On teste si la taille de la matrice jeveux et python est identique + if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : + raise Accas.AsException("La taille de la matrice est incorrecte ") + + # Si le stockage est plein + if desc[2]==2 : + taille=desc[1]*desc[1]/2.0+desc[1]/2.0 + tmpr=Numeric.zeros([int(taille)],Numeric.Float) + tmpc=Numeric.zeros([int(taille)],Numeric.Float) + for j in range(desc[1]+1): + for i in range(j): + k=j*(j-1)/2+i + tmpr[k]=matrice[j-1,i].real + tmpc[k]=matrice[j-1,i].imag + aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\ + range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) + # Si le stockage est diagonal + elif desc[2]==1 : + tmpr=Numeric.zeros(desc[1],Numeric.Float) + tmpc=Numeric.zeros(desc[1],Numeric.Float) + for j in range(desc[1]): + tmpr[j]=matrice[j,j].real + tmpc[j]=matrice[j,j].imag + aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\ + range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) + # Sinon on arrete tout + else: + raise KeyError + return diff --git a/Aster/Cata/cataSTA9/SD/co_matr_elem.py b/Aster/Cata/cataSTA9/SD/co_matr_elem.py new file mode 100644 index 00000000..35f2c44c --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_matr_elem.py @@ -0,0 +1,40 @@ +#@ MODIF co_matr_elem 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_matr_elem import sd_matr_elem + +# ----------------------------------------------------------------------------- +class matr_elem(ASSD, sd_matr_elem): + pass + +class matr_elem_depl_c(matr_elem): + pass + +class matr_elem_depl_r(matr_elem): + pass + +class matr_elem_pres_c(matr_elem): + pass + +class matr_elem_temp_r(matr_elem): + pass + + diff --git a/Aster/Cata/cataSTA9/SD/co_melasflu.py b/Aster/Cata/cataSTA9/SD/co_melasflu.py new file mode 100644 index 00000000..f1cf571a --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_melasflu.py @@ -0,0 +1,26 @@ +#@ MODIF co_melasflu 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_melasflu import sd_melasflu + +# ----------------------------------------------------------------------------- +class melasflu_sdaster(ASSD, sd_melasflu): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_mode_cycl.py b/Aster/Cata/cataSTA9/SD/co_mode_cycl.py new file mode 100644 index 00000000..7df3f4a8 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_mode_cycl.py @@ -0,0 +1,27 @@ +#@ MODIF co_mode_cycl 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_mode_cycl import sd_mode_cycl + +# ----------------------------------------------------------------------------- +class mode_cycl(ASSD, sd_mode_cycl): + pass + diff --git a/Aster/Cata/cataSTA9/SD/co_modele.py b/Aster/Cata/cataSTA9/SD/co_modele.py new file mode 100644 index 00000000..8fa95dbe --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_modele.py @@ -0,0 +1,27 @@ +#@ MODIF co_modele 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_modele import sd_modele + +# ----------------------------------------------------------------------------- +class modele_sdaster(ASSD, sd_modele): + pass + diff --git a/Aster/Cata/cataSTA9/SD/co_modele_gene.py b/Aster/Cata/cataSTA9/SD/co_modele_gene.py new file mode 100644 index 00000000..fb2e14a2 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_modele_gene.py @@ -0,0 +1,47 @@ +#@ MODIF co_modele_gene 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. +# ====================================================================== + +import Accas +from SD import * +from sd_modele_gene import sd_modele_gene + +# ----------------------------------------------------------------------------- +class modele_gene(ASSD, sd_modele_gene): + def LIST_SOUS_STRUCT(self) : + """ retourne la liste des sous structures du modele generalise + la liste des macro-elements sous-jacents""" + if self.par_lot(): + raise Accas.AsException("Erreur dans modele_gene.LIST_SOUS_STRUCT en PAR_LOT='OUI'") + nommodgen=self.get_name() + ncham=nommodgen+(8-len(nommodgen))*' ' + ssno=aster.getvectjev(ncham+(14-len(ncham))*' '+'.MODG.SSNO') + ssme=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.SSME') + return [([ssno[ind], ssme[ind+1]]) for ind in range(len(ssno))] + + def LIST_LIAIS_STRUCT(self) : + """ retourne la liste des liaisons entre sous structures du modele generalise sous la forme : + [ (ss1, nom_liais1, ss2 , nom_liais2), ...] """ + if self.par_lot() : + raise Accas.AsException("Erreur dans modele_gene.LIST_LIAIS_STRUCT en PAR_LOT='OUI'") + nommodgen=self.get_name() + ncham=nommodgen+(8-len(nommodgen))*' ' + lidf=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.LIDF') + return [([(lidf[ind][indb]) for indb in range(4)]) for ind in lidf] + diff --git a/Aster/Cata/cataSTA9/SD/co_nume_ddl.py b/Aster/Cata/cataSTA9/SD/co_nume_ddl.py new file mode 100644 index 00000000..d631a04b --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_nume_ddl.py @@ -0,0 +1,27 @@ +#@ MODIF co_nume_ddl 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_nume_ddl import sd_nume_ddl + +# ----------------------------------------------------------------------------- +# Description de la structure de données +class nume_ddl_sdaster(ASSD, sd_nume_ddl): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_nume_ddl_gene.py b/Aster/Cata/cataSTA9/SD/co_nume_ddl_gene.py new file mode 100644 index 00000000..6fe69af9 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_nume_ddl_gene.py @@ -0,0 +1,27 @@ +#@ MODIF co_nume_ddl_gene 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_nume_ddl import sd_nume_ddl +###sd_nume_eqge ???????? + +# ----------------------------------------------------------------------------- +class nume_ddl_gene(ASSD, sd_nume_ddl): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_resultat.py b/Aster/Cata/cataSTA9/SD/co_resultat.py new file mode 100644 index 00000000..0d8f2b14 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_resultat.py @@ -0,0 +1,53 @@ +#@ MODIF co_resultat 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. +# ====================================================================== + +import Accas +from SD import * +from sd_resultat import sd_resultat + +# ----------------------------------------------------------------------------- +class resultat_sdaster(ASSD, sd_resultat): + 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 resultat_jeveux(resultat_sdaster): + """Classe permettant d'accéder à un resultat jeveux qui n'a pas d'ASSD associée, + c'est le cas des concepts résultats (table, evol_xxxx) dérivés.""" + def __init__(self,nom_jeveux): + self.nom=nom_jeveux + AsBase.__init__(self, nomj=self.nom) diff --git a/Aster/Cata/cataSTA9/SD/co_resultat_dyn.py b/Aster/Cata/cataSTA9/SD/co_resultat_dyn.py new file mode 100644 index 00000000..b0b20439 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_resultat_dyn.py @@ -0,0 +1,28 @@ +#@ MODIF co_resultat_dyn 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_resultat_dyn import sd_resultat_dyn + +from co_resultat import resultat_sdaster + +# ----------------------------------------------------------------------------- +class resultat_dyn(resultat_sdaster, sd_resultat_dyn): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_sd_feti.py b/Aster/Cata/cataSTA9/SD/co_sd_feti.py new file mode 100644 index 00000000..73766b77 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_sd_feti.py @@ -0,0 +1,26 @@ +#@ MODIF co_sd_feti 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_feti import sd_feti + +# ----------------------------------------------------------------------------- +class sd_feti_sdaster(ASSD, sd_feti): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_spectre.py b/Aster/Cata/cataSTA9/SD/co_spectre.py new file mode 100644 index 00000000..aab725d3 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_spectre.py @@ -0,0 +1,26 @@ +#@ MODIF co_spectre 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_spectre import sd_spectre + +# ----------------------------------------------------------------------------- +class spectre_sdaster(ASSD, sd_spectre): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_squelette.py b/Aster/Cata/cataSTA9/SD/co_squelette.py new file mode 100644 index 00000000..993a2278 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_squelette.py @@ -0,0 +1,28 @@ +#@ MODIF co_squelette 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_squelette import sd_squelette + +from co_maillage import maillage_sdaster + +# ----------------------------------------------------------------------------- +class squelette(maillage_sdaster, sd_squelette): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_surface.py b/Aster/Cata/cataSTA9/SD/co_surface.py new file mode 100644 index 00000000..08c95ed7 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_surface.py @@ -0,0 +1,26 @@ +#@ MODIF co_surface 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_surface import sd_surface + +# ----------------------------------------------------------------------------- +class surface_sdaster(ASSD, sd_surface): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_table.py b/Aster/Cata/cataSTA9/SD/co_table.py new file mode 100644 index 00000000..ee866302 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_table.py @@ -0,0 +1,117 @@ +#@ MODIF co_table 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. +# ====================================================================== + +import Accas +from SD import * +from sd_table import sd_table + +# ----------------------------------------------------------------------------- +class table_sdaster(ASSD, sd_table): + def __getitem__(self,key): + from Utilitai.Utmess import UTMESS + 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 = aster.getvectjev(tblp) + #tabnom = self.TBLP.get() + if tabnom == None: + UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tblp) + for i in range(len(tabnom)) : + if tabnom[i]==requete: break + resu=aster.getvectjev(tabnom[i+2]) + if resu == None: + UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tabnom[i+2]) + exist=aster.getvectjev(tabnom[i+3]) + if exist == None: + UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tabnom[i+3]) + if key[1]>len(resu) or exist[key[1]-1]==0: + raise KeyError + else: + return resu[key[1]-1] + + def TITRE(self): + """Retourne le titre d'une table Aster + (Utile pour récupérer le titre et uniquement le titre d'une table dont + on souhaite manipuler la dérivée). + """ + if self.par_lot(): + raise Accas.AsException("Erreur dans table.TITRE en PAR_LOT='OUI'") + titj = aster.getvectjev('%-19s.TITR' % self.get_name()) + #titj = self.TITR.get() + if titj != None: + titr = '\n'.join(titj) + else: + titr = '' + return titr + + def EXTR_TABLE(self) : + """Produit un objet Table à partir du contenu d'une table Aster + """ + def Nonefy(l1,l2) : + if l2==0 : return None + else : return l1 + if self.par_lot(): + raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'") + from Utilitai.Table import Table + # titre + titr = self.TITRE() + # récupération des paramètres + v_tblp = aster.getvectjev('%-19s.TBLP' % self.get_name()) + #v_tblp = self.TBLP.get() + if v_tblp == None: + # retourne une table vide + return Table(titr=titr) + tabnom=list(v_tblp) + nparam=len(tabnom)/4 + lparam=[tabnom[4*i:4*i+4] for i in range(nparam)] + dval={} + # liste des paramètres et des types + lpar=[] + ltyp=[] + for i in lparam : + value=list(aster.getvectjev(i[2])) + exist=aster.getvectjev(i[3]) + dval[i[0].strip()] = map(Nonefy,value,exist) + lpar.append(i[0].strip()) + ltyp.append(i[1].strip()) + n=len(dval[lpar[0]]) + # contenu : liste de dict + lisdic=[] + for i in range(n) : + d={} + for p in lpar: + d[p]=dval[p][i] + lisdic.append(d) + return Table(lisdic, lpar, ltyp, titr) + +# ----------------------------------------------------------------------------- +class table_fonction(table_sdaster): + """Table contenant en plus une colonne FONCTION et/ou FONCTION_C dont les + valeurs des cellules sont des noms de fonction_sdaster ou fonction_c. + """ + +# ----------------------------------------------------------------------------- +class table_jeveux(table_sdaster): + """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée, + c'est le cas des concepts résultats (table, evol_xxxx) dérivés.""" + def __init__(self, nom_jeveux): + self.nom = nom_jeveux + AsBase.__init__(self, nomj=self.nom) diff --git a/Aster/Cata/cataSTA9/SD/co_table_fonction.py b/Aster/Cata/cataSTA9/SD/co_table_fonction.py new file mode 100644 index 00000000..6a1f4d4f --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_table_fonction.py @@ -0,0 +1,30 @@ +#@ MODIF co_table_fonction 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 co_table import table_sdaster +from sd_table_fonction import sd_table_fonction + +# ----------------------------------------------------------------------------- +class table_fonction(table_sdaster,sd_table_fonction): + """Table contenant une colonne FONCTION et/ou FONCTION_C dont les + valeurs des cellules sont des noms de fonction_sdaster ou fonction_c. + """ + diff --git a/Aster/Cata/cataSTA9/SD/co_tran_gene.py b/Aster/Cata/cataSTA9/SD/co_tran_gene.py new file mode 100644 index 00000000..69096a9c --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_tran_gene.py @@ -0,0 +1,26 @@ +#@ MODIF co_tran_gene 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_tran_gene import sd_tran_gene + +# ----------------------------------------------------------------------------- +class tran_gene(ASSD, sd_tran_gene): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_type_flui_stru.py b/Aster/Cata/cataSTA9/SD/co_type_flui_stru.py new file mode 100644 index 00000000..3b3d1520 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_type_flui_stru.py @@ -0,0 +1,26 @@ +#@ MODIF co_type_flui_stru 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_type_flui_stru import sd_type_flui_stru + +# ----------------------------------------------------------------------------- +class type_flui_stru(ASSD, sd_type_flui_stru): + pass diff --git a/Aster/Cata/cataSTA9/SD/co_vect_asse_gene.py b/Aster/Cata/cataSTA9/SD/co_vect_asse_gene.py new file mode 100644 index 00000000..328eae0d --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_vect_asse_gene.py @@ -0,0 +1,107 @@ +#@ MODIF co_vect_asse_gene 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. +# ====================================================================== + +import Accas +from SD import * +from sd_cham_gene import sd_cham_gene + +# ----------------------------------------------------------------------------- + +class vect_asse_gene(ASSD, sd_cham_gene): + def EXTR_VECT_GENE_R(self) : + """ retourne les valeurs du vecteur generalisee + dans un format Numerical Array + Attributs retourne + - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot(): + raise Accas.AsException("Erreur dans vect_asse_gene_r.EXTR_VECT_GENE en PAR_LOT='OUI'") + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE')) + return valeur + + def RECU_VECT_GENE_R(self,vecteur) : + """ envoie les valeurs d'un Numerical Array dans un vecteur generalise + reel definie dans jeveux + Attributs ne retourne rien """ + if self.par_lot(): + raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'") + from Utilitai.Utmess import UTMESS + + # avertissement generique + UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') + + Numeric.asarray(vecteur) + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) + # On teste si le DESC du vecteur existe + if (desc==None): + raise Accas.AsException("L'objet vecteur n'existe pas ou \ + est mal cree par Code Aster") + # On teste si la taille du vecteur jeveux et python est identique + if desc[1]<>Numeric.shape(vecteur)[0] : + raise Accas.AsException("La taille du vecteur python est incorrecte") + aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\ + range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1) + return + + def EXTR_VECT_GENE_C(self) : + """ retourne les valeurs du vecteur generalisee + dans un format Numerical Array + Attributs retourne + - self.valeurs : Numeric.array contenant les valeurs """ + if self.par_lot(): + raise Accas.AsException("Erreur dans vect_asse_gene_c.EXTR_VECT_GENE en PAR_LOT='OUI'") + + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'),Numeric.Complex) + + return valeur + + def RECU_VECT_GENE_C(self,vecteur) : + """ envoie les valeurs d'un Numerical Array dans un vecteur generalise + complexe definie dans jeveux + Attributs ne retourne rien """ + if self.par_lot(): + raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'") + from Utilitai.Utmess import UTMESS + + # avertissement generique + UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') + + Numeric.asarray(vecteur) + ncham=self.get_name() + ncham=ncham+(8-len(ncham))*' ' + desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) + # On teste si le DESC de la matrice existe + if (desc==None): + raise Accas.AsException("L'objet vecteur n'existe pas ou \ + est mal cree par Code Aster") + # On teste si la taille de la matrice jeveux et python est identique + if desc[1]<>Numeric.shape(vecteur)[0] : + raise Accas.AsException("La taille du vecteur python est incorrecte") + tmpr=vecteur.real + tmpc=vecteur.imag + aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple(( + range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) + return + diff --git a/Aster/Cata/cataSTA9/SD/co_vect_elem.py b/Aster/Cata/cataSTA9/SD/co_vect_elem.py new file mode 100644 index 00000000..4dd17cb6 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/co_vect_elem.py @@ -0,0 +1,38 @@ +#@ MODIF co_vect_elem 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_vect_elem import sd_vect_elem + +# ----------------------------------------------------------------------------- +class vect_elem(ASSD, sd_vect_elem): + pass + +class vect_elem_depl_r(vect_elem): + pass + +class vect_elem_pres_r(vect_elem): + pass + +class vect_elem_pres_c(vect_elem): + pass + +class vect_elem_temp_r(vect_elem): + pass diff --git a/Aster/Cata/cataSTA9/SD/sd_base_modale.py b/Aster/Cata/cataSTA9/SD/sd_base_modale.py new file mode 100644 index 00000000..1a07f3b9 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_base_modale.py @@ -0,0 +1,31 @@ +#@ MODIF sd_base_modale 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_resultat_dyn import sd_resultat_dyn + + +class sd_base_modale(sd_resultat_dyn): +#-------------------------------------------------- + nomj = SDNom(fin=8) + UTIL = Facultatif(AsVI(SDNom(debut=19))) # AJACOT_PB : .UTIL n'existe pas pour sdlx201a + + diff --git a/Aster/Cata/cataSTA9/SD/sd_cabl_precont.py b/Aster/Cata/cataSTA9/SD/sd_cabl_precont.py new file mode 100644 index 00000000..ee9b4c99 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_cabl_precont.py @@ -0,0 +1,36 @@ +#@ MODIF sd_cabl_precont 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_titre import sd_titre + +from SD.sd_liste_rela import sd_liste_rela +from SD.sd_carte import sd_carte +from SD.sd_l_table import sd_l_table + + +class sd_cabl_precont(sd_titre): +#----------------------------------------- + nomj = SDNom(fin=8) + chme_sigin = sd_carte(SDNom(nomj='.CHME.SIGIN', fin=19)) + lirela = sd_liste_rela(SDNom(nomj='.LIRELA', fin=19)) + lt = sd_l_table(SDNom(nomj='')) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_cara_elem.py b/Aster/Cata/cataSTA9/SD/sd_cara_elem.py new file mode 100644 index 00000000..46a55858 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_cara_elem.py @@ -0,0 +1,44 @@ +#@ MODIF sd_cara_elem 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_cham_elem import sd_cham_elem +from SD.sd_carte import sd_carte +class sd_cara_elem(AsBase): + nomj = SDNom(fin=8) + cargenba = Facultatif(sd_carte(SDNom(nomj='.CARGENBA', fin=19))) + cafibr = Facultatif(sd_cham_elem(SDNom(nomj='.CAFIBR', fin=19))) + carmassi = Facultatif(sd_carte(SDNom(nomj='.CARMASSI', fin=19))) + carcable = Facultatif(sd_carte(SDNom(nomj='.CARCABLE', fin=19))) + carcoque = Facultatif(sd_carte(SDNom(nomj='.CARCOQUE', fin=19))) + cargeoba = Facultatif(sd_carte(SDNom(nomj='.CARGEOBA', fin=19))) + canbsp = Facultatif(sd_cham_elem(SDNom(nomj='.CANBSP', fin=19))) + cardisck = Facultatif(sd_carte(SDNom(nomj='.CARDISCK', fin=19))) + cararcpo = Facultatif(sd_carte(SDNom(nomj='.CARARCPO', fin=19))) + cargenpo = Facultatif(sd_carte(SDNom(nomj='.CARGENPO', fin=19))) + cardiscm = Facultatif(sd_carte(SDNom(nomj='.CARDISCM', fin=19))) + carorien = Facultatif(sd_carte(SDNom(nomj='.CARORIEN', fin=19))) + cardisca = Facultatif(sd_carte(SDNom(nomj='.CARDISCA', fin=19))) + cventcxf = Facultatif(sd_carte(SDNom(nomj='.CVENTCXF', fin=19))) + carpoufl = Facultatif(sd_carte(SDNom(nomj='.CARPOUFL', fin=19))) + cargeopo = Facultatif(sd_carte(SDNom(nomj='.CARGEOPO', fin=19))) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_carte.py b/Aster/Cata/cataSTA9/SD/sd_carte.py new file mode 100644 index 00000000..b418df69 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_carte.py @@ -0,0 +1,36 @@ +#@ MODIF sd_carte 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_titre import sd_titre + + + +class sd_carte(sd_titre): +#---------------------------- + nomj = SDNom(fin=19) + + DESC = AsVI(docu='CART', ) + NOMA = AsVK8(lonmax=1, ) + NOLI = AsVK24() + VALE = AsObject(genr='V', xous='S', type=Parmi('C', 'K', 'R'), ltyp=Parmi(16, 24, 8), ) + LIMA = AsColl(acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_cham_elem.py b/Aster/Cata/cataSTA9/SD/sd_cham_elem.py new file mode 100644 index 00000000..ced947ab --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_cham_elem.py @@ -0,0 +1,39 @@ +#@ MODIF sd_cham_elem 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_titre import sd_titre + +from SD.sd_ligrel import sd_ligrel + + +class sd_cham_elem(sd_titre): +#------------------------------------- + nomj = SDNom(fin=19) + CELD = AsVI(docu='CHML', ) + CELV = AsObject(genr='V', xous='S', type=Parmi('C', 'I', 'K', 'R'), ltyp=Parmi(4,8,16), ) + CELK = AsVK24(lonmax=6, ) + + # indirection vers le LIGREL : + def check_cham_elem_i_LIGREL(self, checker): + if not self.CELK.get() : return + nom=self.CELK.get()[0] + sd2=sd_ligrel(nom); sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_cham_gene.py b/Aster/Cata/cataSTA9/SD/sd_cham_gene.py new file mode 100644 index 00000000..906b33b0 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_cham_gene.py @@ -0,0 +1,29 @@ +#@ MODIF sd_cham_gene 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_cham_gene(AsBase): + nomj = SDNom(fin=19) + REFE = AsVK24(lonmax=2, ) + VALE = AsObject(genr='V', xous='S', type=Parmi('C', 'R'), ltyp=Parmi(16, 8), ) + DESC = AsVI(docu='VGEN', ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_cham_mater.py b/Aster/Cata/cataSTA9/SD/sd_cham_mater.py new file mode 100644 index 00000000..99660f8a --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_cham_mater.py @@ -0,0 +1,49 @@ +#@ MODIF sd_cham_mater 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_carte import sd_carte + + +class sd_cham_mater(AsBase): +#---------------------------------- + nomj = SDNom(fin=8) + champ_mat = sd_carte(SDNom(nomj='.CHAMP_MAT', fin=19)) + tempe_ref = sd_carte(SDNom(nomj='.TEMPE_REF', fin=19)) + + CVRCNOM = Facultatif(AsVK8()) + CVRCGD = Facultatif(AsVK8()) + CVRCDEF = Facultatif(AsVR()) + CVRCVARC = Facultatif(AsVK8()) + CVRCCMP = Facultatif(AsVK8()) + + # indirection via CVRCVARC: + def check_cham_mater_i_CVRCVARC(self, checker): + if not self.CVRCVARC.get() : return + lnom=self.CVRCVARC.get() + for nom in lnom : + if not nom.strip() : continue + nom2=self.nomj()[:8]+'.'+nom+'.1' + sd2=sd_carte(nom2) ; sd2.check(checker) + nom2=self.nomj()[:8]+'.'+nom+'.2' + sd2=sd_carte(nom2) ; sd2.check(checker) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_cham_no.py b/Aster/Cata/cataSTA9/SD/sd_cham_no.py new file mode 100644 index 00000000..ba514af2 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_cham_no.py @@ -0,0 +1,54 @@ +#@ MODIF sd_cham_no 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_titre import sd_titre + +from SD.sd_nume_equa import sd_nume_equa + + +class sd_cham_no(sd_titre): +#------------------------------------ + nomj = SDNom(fin=19) + VALE = AsObject(genr='V', ltyp=Parmi(4,8,16,24), type=Parmi('C', 'I', 'K', 'R'), xous='S', docu=Parmi('', '2', '3'), ) + REFE = AsVK24() + DESC = AsVI(docu='CHNO', ) + + + # indirection vers PROF_CHNO/NUME_EQUA : + def check_cham_no_i_REFE(self, checker): + lnom = self.REFE.get() + + # pour se protéger des cham_no inexistants (suffixe=Facultatif(sd_cham_no(...))) : AJACOT_PB + # se serait mieux de le faire en amont + if not lnom : return + + # faut-il vérifier le sd_maillage de chaque sd_cham_no ? AJACOT_PB + # - cela risque de couter cher + # - cela pose un problème "import circulaire" avec sd_maillage -> sd_cham_no => import ici + # - cela pose un problème de boucle infinie : sd_maillage -> sd_cham_no -> sd_maillage -> ... + #from SD.sd_maillage import sd_maillage + #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() : + sd2 = sd_nume_equa(lnom[1]) ; sd2.check(checker) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_champ.py b/Aster/Cata/cataSTA9/SD/sd_champ.py new file mode 100644 index 00000000..d0b434e3 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_champ.py @@ -0,0 +1,68 @@ +#@ MODIF sd_champ 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 * +import aster + +from SD.sd_cham_no import sd_cham_no +from SD.sd_cham_elem import sd_cham_elem +from SD.sd_cham_gene import sd_cham_gene +from SD.sd_carte import sd_carte +from SD.sd_resuelem import sd_resuelem + +#--------------------------------------------------------------------------------- +# classe "chapeau" à sd_cham_no, sd_cham_elem, sd_carte, ... +#--------------------------------------------------------------------------------- + +class sd_champ(AsBase): +#--------------------------- + nomj = SDNom(fin=19) + + + def check_champ_1(self, checker): + # est-ce un sd_cham_no, un sd_cham_elem, ... ? + nom=self.nomj()[:19] + nom1=nom+'.CELD' + iexi=aster.jeveux_exists(nom1) + if iexi : + nom2=nom+'.CELD' + else : + nom2=nom+'.DESC' + iexi2=aster.jeveux_exists(nom2) + if not iexi2 : + if not self.optional and not checker.optional : + checker.err( self, "n'existe pas (%r)" %self._parent ) + return + + + docu=aster.jeveux_getattr(nom2,'DOCU')[1].strip() + if docu=='CHNO' : + sd2 = sd_cham_no(nom) + elif docu=='CART' : + sd2 = sd_carte(nom) + elif docu=='CHML' : + sd2 = sd_cham_elem(nom) + elif docu=='RESL' : + sd2 = sd_resuelem(nom) + elif docu=='VGEN' : + sd2 = sd_cham_gene(nom) + else : + assert 0,docu + sd2.check(checker) diff --git a/Aster/Cata/cataSTA9/SD/sd_char_acou.py b/Aster/Cata/cataSTA9/SD/sd_char_acou.py new file mode 100644 index 00000000..b480baab --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_char_acou.py @@ -0,0 +1,35 @@ +#@ MODIF sd_char_acou 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_ligrel import sd_ligrel +from SD.sd_carte import sd_carte +class sd_char_acou(AsBase): + nomj = SDNom(fin=8) + chac_vitfa = Facultatif(sd_carte(SDNom(nomj='.CHAC.VITFA', fin=19))) + CHAC_MODEL_NOMO = AsVK8(SDNom(nomj='.CHAC.MODEL.NOMO'), lonmax=1, ) + chac_cmult = Facultatif(sd_carte(SDNom(nomj='.CHAC.CMULT', 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))) + TYPE = AsVK8(lonmax=1, ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_char_cine.py b/Aster/Cata/cataSTA9/SD/sd_char_cine.py new file mode 100644 index 00000000..cc0868c8 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_char_cine.py @@ -0,0 +1,32 @@ +#@ MODIF sd_char_cine 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_char_cine(AsBase): + nomj = SDNom(fin=8) + CITH_MODEL_NOMO = Facultatif(AsVK8(SDNom(nomj='.CITH.MODEL.NOMO'), lonmax=1, )) + VALF = Facultatif(AsVK8(SDNom(debut=19), )) + VALE = Facultatif(AsVR(SDNom(debut=19), )) + CIME_MODEL_NOMO = Facultatif(AsVK8(SDNom(nomj='.CIME.MODEL.NOMO'), lonmax=1, )) + DEFI = AsVI(SDNom(debut=19), ) + TYPE = AsVK8(lonmax=1, ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_char_contact.py b/Aster/Cata/cataSTA9/SD/sd_char_contact.py new file mode 100644 index 00000000..03fbb250 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_char_contact.py @@ -0,0 +1,72 @@ +#@ MODIF sd_char_contact 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_char_contact(AsBase): + nomj =SDNom(fin=16) + + BAMACO =AsVI() + BANOCO =AsVI() + CARACF =AsVR() + COMAFO =AsVR() + CONVCO =AsVI() + DIRCO =AsVR() + ECPDON =AsVI() + FROTE =AsVR() + JEUCON =Facultatif(AsVR()) + JEUCOQ =AsVR() + JEUPOU =AsVR() + JFO1CO =AsVK8() + JFO2CO =AsVK8() + JFO3CO =AsVK8() + JSUPCO =AsVR() + MAESCL =Facultatif(AsVI()) + MAILCO =AsVI() + MAMACO =AsVI() + MANOCO =AsVI() + METHCO =AsVI() + NDIMCO =AsVI() + NOESCL =Facultatif(AsVR()) + NOEUCO =AsVI() + NOEUQU =Facultatif(AsVI()) + NOMACO =AsVI() + NORLIS =AsVI() + NOZOCO =AsVI() + PBAMACO =AsVI() + PBANOCO =AsVI() + PENAL =AsVR() + PMAMACO =AsVI() + PMANOCO =AsVI() + PNOEUQU =AsVI() + PNOMACO =AsVI() + PRANOCO =AsVI() + PSSNOCO =AsVI() + PSUMACO =AsVI() + PSUNOCO =AsVI() + PZONECO =AsVI() + RANOCO =AsVI() + SANSNQ =AsVI() + SSNOCO =AsVI() + SYMECO =AsVI() + TABFIN =Facultatif(AsVR()) + TANDEF =AsVR() + TANPOU =AsVR() + TOLECO =AsVR() diff --git a/Aster/Cata/cataSTA9/SD/sd_char_meca.py b/Aster/Cata/cataSTA9/SD/sd_char_meca.py new file mode 100644 index 00000000..c74c4a25 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_char_meca.py @@ -0,0 +1,73 @@ +#@ MODIF sd_char_meca 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_ligrel import sd_ligrel +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 + +class sd_char_meca(AsBase): + nomj = SDNom(fin=8) + + TYPE = AsVK8(lonmax=1) + CHME_MODEL_NOMO = AsVK8(SDNom(nomj='.CHME.MODEL.NOMO'), lonmax=1, ) + + chme_ligre = Facultatif(sd_ligrel(SDNom(nomj='.CHME.LIGRE'))) + + chme_cimpo = Facultatif(sd_carte(SDNom(nomj='.CHME.CIMPO'))) + chme_cmult = Facultatif(sd_carte(SDNom(nomj='.CHME.CMULT'))) + chme_epsin = Facultatif(sd_carte(SDNom(nomj='.CHME.EPSIN'))) + chme_f1d1d = Facultatif(sd_carte(SDNom(nomj='.CHME.F1D1D'))) + chme_f1d2d = Facultatif(sd_carte(SDNom(nomj='.CHME.F1D2D'))) + chme_f1d3d = Facultatif(sd_carte(SDNom(nomj='.CHME.F1D3D'))) + chme_f2d2d = Facultatif(sd_carte(SDNom(nomj='.CHME.F2D2D'))) + chme_f2d3d = Facultatif(sd_carte(SDNom(nomj='.CHME.F2D3D'))) + chme_f3d3d = Facultatif(sd_carte(SDNom(nomj='.CHME.F3D3D'))) + chme_fco2d = Facultatif(sd_carte(SDNom(nomj='.CHME.FCO2D'))) + chme_fco3d = Facultatif(sd_carte(SDNom(nomj='.CHME.FCO3D'))) + chme_felec = Facultatif(sd_carte(SDNom(nomj='.CHME.FELEC'))) + chme_fl101 = Facultatif(sd_carte(SDNom(nomj='.CHME.FL101'))) + chme_fl102 = Facultatif(sd_carte(SDNom(nomj='.CHME.FL102'))) + chme_flux = Facultatif(sd_carte(SDNom(nomj='.CHME.FLUX'))) + chme_forno = Facultatif(sd_carte(SDNom(nomj='.CHME.FORNO'))) + chme_impe = Facultatif(sd_carte(SDNom(nomj='.CHME.IMPE'))) + chme_onde = Facultatif(sd_carte(SDNom(nomj='.CHME.ONDE'))) + chme_pesan = Facultatif(sd_carte(SDNom(nomj='.CHME.PESAN'))) + chme_press = Facultatif(sd_carte(SDNom(nomj='.CHME.PRESS'))) + chme_rotat = Facultatif(sd_carte(SDNom(nomj='.CHME.ROTAT'))) + chme_sigin = Facultatif(sd_carte(SDNom(nomj='.CHME.SIGIN'))) + chme_vnor = Facultatif(sd_carte(SDNom(nomj='.CHME.VNOR'))) + + unilate = Facultatif(sd_char_unilate(SDNom(nomj='.UNILATE'))) + contact = Facultatif(sd_char_contact(SDNom(nomj='.CONTACT'))) + + CHME_EVOL_CHAR = Facultatif(AsVK8(SDNom(nomj='.CHME.EVOL.CHAR'), lonmax=1, )) + CHME_VEASS = Facultatif(AsVK8(SDNom(nomj='.CHME.VEASS'), lonmax=1, )) + TRANS01 = Facultatif(AsVR(lonmax=6, )) + CHME_TEMPE_TEMP = Facultatif(AsVK8(SDNom(nomj='.CHME.TEMPE.TEMP'), lonmax=1, )) + TRANS02 = Facultatif(AsVR(lonmax=6, )) + LISMA01 = Facultatif(AsVI(lonmax=12, )) + LISMA02 = Facultatif(AsVI(lonmax=12, )) + POIDS_MAILLE = Facultatif(AsVR()) + + + diff --git a/Aster/Cata/cataSTA9/SD/sd_char_ther.py b/Aster/Cata/cataSTA9/SD/sd_char_ther.py new file mode 100644 index 00000000..782b9b05 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_char_ther.py @@ -0,0 +1,51 @@ +#@ MODIF sd_char_ther 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_ligrel import sd_ligrel +from SD.sd_cham_elem import sd_cham_elem +from SD.sd_carte import sd_carte +from SD.sd_champ import sd_champ + + +class sd_char_ther(AsBase): +#-------------------------------- + nomj = SDNom(fin=8) + + CHTH_CONVE_VALE = Facultatif(AsVK8(SDNom(nomj='.CHTH.CONVE.VALE'), lonmax=1)) + CHTH_MODEL_NOMO = AsVK8(SDNom(nomj='.CHTH.MODEL.NOMO'), lonmax=1) + TYPE = AsVK8(lonmax=1) + chth_ligre = Facultatif(sd_ligrel(SDNom(nomj='.CHTH.LIGRE'))) + + chth_soure = Facultatif(sd_champ(SDNom(nomj='.CHTH.SOURE'))) # pour l'instant : sd_carte ou sd_cham_elem + + chth_cimpo = Facultatif(sd_carte(SDNom(nomj='.CHTH.CIMPO'))) + chth_cmult = Facultatif(sd_carte(SDNom(nomj='.CHTH.CMULT'))) + chth_coefh = Facultatif(sd_carte(SDNom(nomj='.CHTH.COEFH'))) + chth_flunl = Facultatif(sd_carte(SDNom(nomj='.CHTH.FLUNL'))) + chth_flur2 = Facultatif(sd_carte(SDNom(nomj='.CHTH.FLUR2'))) + chth_flure = Facultatif(sd_carte(SDNom(nomj='.CHTH.FLURE'))) + chth_grain = Facultatif(sd_carte(SDNom(nomj='.CHTH.GRAIN'))) + chth_hechp = Facultatif(sd_carte(SDNom(nomj='.CHTH.HECHP'))) + chth_rayo = Facultatif(sd_carte(SDNom(nomj='.CHTH.RAYO'))) + chth_t_ext = Facultatif(sd_carte(SDNom(nomj='.CHTH.T_EXT'))) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_char_unilate.py b/Aster/Cata/cataSTA9/SD/sd_char_unilate.py new file mode 100644 index 00000000..e23f01a4 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_char_unilate.py @@ -0,0 +1,34 @@ +#@ MODIF sd_char_unilate 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_char_unilate(AsBase): + nomj = SDNom(fin=16) + COEFD = AsVR() + COEFG = AsVR() + DIMECU = AsVI() + LISNOE = AsVI() + POINOE = AsVI() + METHCU = AsVI(lonmax=1,) + PARACU = AsVR(lonmax=1,) + CMPGCU = AsVK8() + + diff --git a/Aster/Cata/cataSTA9/SD/sd_compor.py b/Aster/Cata/cataSTA9/SD/sd_compor.py new file mode 100644 index 00000000..4fb1ad46 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_compor.py @@ -0,0 +1,28 @@ +#@ MODIF sd_compor 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_compor(AsBase): + nomj = SDNom(fin=8) + CPRK = AsVK16() + CPRI = AsVI(lonmax=7, ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_compor1.py b/Aster/Cata/cataSTA9/SD/sd_compor1.py new file mode 100644 index 00000000..651f4b0b --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_compor1.py @@ -0,0 +1,41 @@ +#@ 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) diff --git a/Aster/Cata/cataSTA9/SD/sd_courbe.py b/Aster/Cata/cataSTA9/SD/sd_courbe.py new file mode 100644 index 00000000..bdf87c1b --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_courbe.py @@ -0,0 +1,35 @@ +#@ MODIF sd_courbe 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_courbe_sa import sd_courbe_sa +from SD.sd_courbe_lm import sd_courbe_lm + + +class sd_courbe(AsBase): +#---------------------------- + nomj = SDNom(fin=8) + NOMMAIL = AsVK8(lonmax=1, ) + TYPCOURBE = AsVK8(lonmax=1, ) + lm= Facultatif(sd_courbe_lm(SDNom(nomj=''))) + sa= Facultatif(sd_courbe_sa(SDNom(nomj=''))) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_courbe_lm.py b/Aster/Cata/cataSTA9/SD/sd_courbe_lm.py new file mode 100644 index 00000000..5cc13d20 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_courbe_lm.py @@ -0,0 +1,29 @@ +#@ MODIF sd_courbe_lm 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_courbe_lm(AsBase): + nomj = SDNom(fin=8) + MAIL1 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + MAIL2 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + CHEMIN = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_courbe_sa.py b/Aster/Cata/cataSTA9/SD/sd_courbe_sa.py new file mode 100644 index 00000000..8092b5b5 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_courbe_sa.py @@ -0,0 +1,41 @@ +#@ MODIF sd_courbe_sa 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_courbe_sa(AsBase): + nomj = SDNom(fin=8) + MAIL2 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + XSARC = AsVR(SDNom(debut=8), ) + MAIL1 = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + PAREX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) + XYCARC = AsVR(SDNom(debut=8), ) + XYBSGT = AsVR(SDNom(debut=8), ) + XYASGT = AsVR(SDNom(debut=8), ) + XRARC = AsVR(SDNom(debut=8), ) + CNXOR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + PAROR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) + FACOR = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + ORSGT = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) + CNXEX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + FACEX = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + EXSGT = AsColl(SDNom(debut=8), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='R', ltyp=8, ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_feti.py b/Aster/Cata/cataSTA9/SD/sd_feti.py new file mode 100644 index 00000000..5f4906f9 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_feti.py @@ -0,0 +1,45 @@ +#@ MODIF sd_feti 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 * + +# AJACOT_PB en attendant la correction de la fiche 10475 : +# on dédouble la SD pour la rendre facultative. + + +class sd_feti1(AsBase): + nomj = SDNom(fin=19) + FLIM = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + FDIM = AsVI(lonmax=5, ) + FREF = AsVK8() + FETG = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + FLIN = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='K', ltyp=24, ) + FLII = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + FETB = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + FETA = AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + FETJ = AsVI(lonmax=20, ) + FETI = AsVI(lonmax=40, ) + FETH = AsVI(lonmax=4, ) + + +class sd_feti(AsBase): + nomj = SDNom(fin=19) + sd1 = Facultatif(sd_feti1(SDNom(''))) + diff --git a/Aster/Cata/cataSTA9/SD/sd_fiss_xfem.py b/Aster/Cata/cataSTA9/SD/sd_fiss_xfem.py new file mode 100644 index 00000000..f97c2699 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_fiss_xfem.py @@ -0,0 +1,87 @@ +#@ MODIF sd_fiss_xfem 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_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_fiss_xfem(AsBase): +#------------------------------- + nomj = SDNom(fin=8) + + CARAFOND = AsVR(lonmax=7) + FONDFISS = AsVR() + GROUP_MA_ENRI = AsVI() + GROUP_NO_ENRI = AsVI() + + FONDMULT = Facultatif(AsVI()) + + contact = Facultatif(sd_contact_xfem(SDNom(nomj='.CONTACT'))) + + MAILFISS__INDIC = AsVI(SDNom(nomj='.MAILFISS .INDIC'), lonmax=6, ) + mailfiss = Facultatif(sd_mailfiss_xfem(SDNom(nomj='.MAILFISS'))) + + + # cham_no : + basco = Facultatif(sd_cham_no(SDNom(nomj='.BASCO'))) + basloc = sd_cham_no(SDNom(nomj='.BASLOC')) + grlnno = sd_cham_no(SDNom(nomj='.GRLNNO')) + grltno = sd_cham_no(SDNom(nomj='.GRLTNO')) + lnno = sd_cham_no(SDNom(nomj='.LNNO')) + ltno = sd_cham_no(SDNom(nomj='.LTNO')) + stno = sd_cham_no(SDNom(nomj='.STNO')) + stnor = sd_cham_no(SDNom(nomj='.STNOR')) + + # 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'))) + topose_cri = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.CRI'))) + 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'))) + pro_mes_el = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.MES_EL'))) + pro_normal = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.NORMAL'))) diff --git a/Aster/Cata/cataSTA9/SD/sd_fonction.py b/Aster/Cata/cataSTA9/SD/sd_fonction.py new file mode 100644 index 00000000..28baafbf --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_fonction.py @@ -0,0 +1,32 @@ +#@ MODIF sd_fonction 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_titre import sd_titre + + +class sd_fonction(sd_titre): +#-------------------------------------- + nomj = SDNom(fin=19) + PROL = AsVK16() + VALE = AsObject(acces='NU', sd_stockage='CONTIG', modelong='VARIABLE', type='R', xous=Parmi('S', 'X'), genr='V', ltyp=8, ) + PARA = Facultatif(AsVR()) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_fond_fiss.py b/Aster/Cata/cataSTA9/SD/sd_fond_fiss.py new file mode 100644 index 00000000..37aa650c --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_fond_fiss.py @@ -0,0 +1,35 @@ +#@ MODIF sd_fond_fiss 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_fond_fiss(AsBase): + nomj = SDNom(fin=8) + LEVREINF___MAIL = Facultatif(AsVK8(SDNom(nomj='.LEVREINF .MAIL'), )) + NORMALE = Facultatif(AsVR(lonmax=3, )) + FOND_______TYPE = AsVK8(SDNom(nomj='.FOND .TYPE'), lonmax=1, ) + FOND_______NOEU = AsVK8(SDNom(nomj='.FOND .NOEU'), ) + DTAN_EXTREMITE = Facultatif(AsVR(lonmax=3, )) + INFNORM____NOEU = Facultatif(AsVK8(SDNom(nomj='.INFNORM .NOEU'), )) + DTAN_ORIGINE = Facultatif(AsVR(lonmax=3, )) + SUPNORM____NOEU = Facultatif(AsVK8(SDNom(nomj='.SUPNORM .NOEU'), )) + LEVRESUP___MAIL = Facultatif(AsVK8(SDNom(nomj='.LEVRESUP .MAIL'), )) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_formule.py b/Aster/Cata/cataSTA9/SD/sd_formule.py new file mode 100644 index 00000000..cea5820d --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_formule.py @@ -0,0 +1,28 @@ +#@ 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() + + diff --git a/Aster/Cata/cataSTA9/SD/sd_gfibre.py b/Aster/Cata/cataSTA9/SD/sd_gfibre.py new file mode 100644 index 00000000..e5ae2174 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_gfibre.py @@ -0,0 +1,32 @@ +#@ MODIF sd_gfibre 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_titre import sd_titre + + +class sd_gfibre(sd_titre): +#------------------------------------- + nomj = SDNom(fin=8) + POINTEUR = AsVI() + CARFI = AsVR() + NOMS_GROUPES = AsVK8() + NB_FIBRE_GROUPE = AsVI() + diff --git a/Aster/Cata/cataSTA9/SD/sd_interf_dyna_clas.py b/Aster/Cata/cataSTA9/SD/sd_interf_dyna_clas.py new file mode 100644 index 00000000..b2fb9931 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_interf_dyna_clas.py @@ -0,0 +1,57 @@ +#@ MODIF sd_interf_dyna_clas 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_maillage import sd_maillage +from SD.sd_nume_ddl import sd_nume_ddl +import SD.sd_util as sdu + + +class sd_interf_dyna_clas(AsBase): +#--------------------------------------- + nomj = SDNom(fin=8) + IDC_NOMS = AsObject(genr='N', xous='S', type='K', ltyp=8, ) + IDC_DDAC = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + IDC_DY_FREQ = AsVR(lonmax=1, ) + IDC_LINO = AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + IDC_TYPE = AsVK8() + IDC_DESC = AsVI(lonmax=5, ) + IDC_DEFO = AsVI() + IDC_REFE = AsVK24(lonmax=3, ) + + + def check_interf_dyna_class_1(self,checker): + refe=self.IDC_REFE.get() + desc=self.IDC_DESC.get() + + sd2=sd_maillage(refe[0]) ; sd2.check() + sd2=sd_nume_ddl(refe[1]) ; sd2.check() + sdu.compare(self.IDC_DESC, checker, refe[2].strip(), '==', '', comment='REFE[2]') + + nomgd=sdu.nom_gd(desc[3]) + sdu.compare(self.IDC_DESC, checker, nomgd, '==', 'DEPL_R', comment='DESC[3]') + + sdu.compare(self.IDC_DESC, checker, desc[0], '==', 1, comment='DESC[0]') + sdu.compare(self.IDC_DESC, checker, desc[4], '>', 0, comment='DESC[4]') + + freq=self.IDC_DY_FREQ.get() + sdu.compare(self.IDC_DY_FREQ, checker, freq[0], '>', 0., comment='FREQ[0]') + + # nbint = ??? à finir PB_AJACOT diff --git a/Aster/Cata/cataSTA9/SD/sd_l_charges.py b/Aster/Cata/cataSTA9/SD/sd_l_charges.py new file mode 100644 index 00000000..0bf88791 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_l_charges.py @@ -0,0 +1,29 @@ +#@ MODIF sd_l_charges 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_l_charges(AsBase): + nomj = SDNom(fin=19) + INFC = AsVI(SDNom(debut=19), ) + LCHA = AsVK24(SDNom(debut=19), ) + FCHA = AsVK24(SDNom(debut=19), ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_l_table.py b/Aster/Cata/cataSTA9/SD/sd_l_table.py new file mode 100644 index 00000000..9b62208d --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_l_table.py @@ -0,0 +1,39 @@ +#@ MODIF sd_l_table 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_table import sd_table + + +class sd_l_table(AsBase): +#--------------------- + nomj = SDNom(fin=19) + + LTNT = AsVK16(lonmax=7) + LTNS = AsVK24(lonmax=7) + + # indirection vers les tables : + def check_l_table_i_LTNS(self, checker): + lnom = self.LTNS.get() + if not lnom: return + for t in lnom: + if not t.strip(): continue + sd2 = sd_table(t) ; sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_ligrel.py b/Aster/Cata/cataSTA9/SD/sd_ligrel.py new file mode 100644 index 00000000..26b31e35 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_ligrel.py @@ -0,0 +1,34 @@ +#@ MODIF sd_ligrel 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_ligrel(AsBase): + nomj = SDNom(fin=19) + LGNS = Facultatif(AsVI(SDNom(debut=19), )) + NOMA = AsVK8(SDNom(debut=19), lonmax=1, docu=Parmi('ACOU', 'MECA', 'THER'), ) + NEMA = Facultatif(AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) + LIEL = Facultatif(AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) + PRNS = Facultatif(AsVI(SDNom(debut=19), )) + PRNM = Facultatif(AsVI(SDNom(debut=19), )) + NBNO = AsVI(SDNom(debut=19), lonmax=1, ) + REPE = Facultatif(AsVI(SDNom(debut=19), )) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_liste_rela.py b/Aster/Cata/cataSTA9/SD/sd_liste_rela.py new file mode 100644 index 00000000..d9259b06 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_liste_rela.py @@ -0,0 +1,37 @@ +#@ MODIF sd_liste_rela 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_liste_rela(AsBase): + nomj = SDNom(fin=19) + RLLA = AsVK8(SDNom(debut=19), ) + RLBE = AsVR(SDNom(debut=19), ) + RLSU = AsVI(SDNom(debut=19), ) + RLTC = AsVK8(SDNom(debut=19), lonmax=1, ) + RLNO = AsVK8(SDNom(debut=19), ) + RLCO = AsVR(SDNom(debut=19), ) + RLNT = AsVI(SDNom(debut=19), ) + RLPO = AsVI(SDNom(debut=19), ) + RLNR = AsVI(SDNom(debut=19), lonmax=1, ) + RLTV = AsVK8(SDNom(debut=19), lonmax=1, ) + RLDD = AsVK8(SDNom(debut=19), ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_listis.py b/Aster/Cata/cataSTA9/SD/sd_listis.py new file mode 100644 index 00000000..86ccd30e --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_listis.py @@ -0,0 +1,32 @@ +#@ MODIF sd_listis 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_titre import sd_titre + + +class sd_listis(sd_titre): +#------------------------------------- + nomj = SDNom(fin=19) + LPAS = AsVI() + BINT = AsVI() + NBPA = AsVI() + VALE = AsVI() + diff --git a/Aster/Cata/cataSTA9/SD/sd_listr8.py b/Aster/Cata/cataSTA9/SD/sd_listr8.py new file mode 100644 index 00000000..3b16649c --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_listr8.py @@ -0,0 +1,33 @@ +#@ MODIF sd_listr8 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_titre import sd_titre + + +class sd_listr8(sd_titre): +#---------------------------------- + nomj = SDNom(fin=19) + LPAS = AsVR() + BINT = AsVR() + NBPA = AsVI() + VALE = AsVR() + + diff --git a/Aster/Cata/cataSTA9/SD/sd_macr_elem_dyna.py b/Aster/Cata/cataSTA9/SD/sd_macr_elem_dyna.py new file mode 100644 index 00000000..5669d503 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_macr_elem_dyna.py @@ -0,0 +1,55 @@ +#@ MODIF sd_macr_elem_dyna 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 * +import SD.sd_util as sdu + + +class sd_macr_elem_dyna_m(AsBase): + nomj = SDNom(fin=18) + DESC = AsVI (SDNom(nomj='_DESC'),lonmax=3) + REFE = AsVK24 (SDNom(nomj='_REFE'),lonmax=2) + VALE = AsVR (SDNom(nomj='_VALE')) + + def check_macr_elem_dyna_m_1(self,checker): + vale=self.VALE.get() + if not vale : return # si Facultatif() + self.DESC.tous_compris(checker,vmin=1) + nbdef=self.DESC.get()[1] + sdu.compare(self.VALE, checker, len(vale), '==', (nbdef*(nbdef+1))/2, comment='lonmax(VALE)') + + +class sd_macr_elem_dyna(AsBase): + nomj = SDNom(fin=8) + + MAEL_RAID = sd_macr_elem_dyna_m() + MAEL_MASS = sd_macr_elem_dyna_m() + MAEL_AMOR = Facultatif(sd_macr_elem_dyna_m()) + + MAEL_INER_VALE = AsVR() + MAEL_INER_REFE = AsVK24(lonmax=2, ) + + MAEL_DESC = AsVI(lonmax=3, ) + MAEL_REFE = AsVK24(lonmax=2, ) + + def check_macr_elem_dyna_1(self,checker): + nbdef=self.MAEL_MASS.DESC.get()[1] + sdu.compare(self.MAEL_INER_VALE, checker, len(self.MAEL_INER_VALE.get()), '==', 3*nbdef, comment='lonmax(MAEL_INER_VALE)') + diff --git a/Aster/Cata/cataSTA9/SD/sd_macr_elem_stat.py b/Aster/Cata/cataSTA9/SD/sd_macr_elem_stat.py new file mode 100644 index 00000000..d61697cf --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_macr_elem_stat.py @@ -0,0 +1,53 @@ +#@ MODIF sd_macr_elem_stat 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_matr_asse_gd import sd_matr_asse_gd +from SD.sd_stoc_lciel import sd_stoc_lciel + + +class sd_macr_elem_stat(AsBase): +#---------------------------------------------- + nomj = SDNom(fin=8) + + # description géométrique et topolique : + DESM = AsVI(lonmax=10) + REFM = AsVK8() + LINO = AsVI() + VARM = AsVR(lonmax=2) + CONX = Facultatif(AsVI()) + + # rigidité condensée : + rigimeca = Facultatif(sd_matr_asse_gd(SDNom(nomj='.RIGIMECA', fin=19))) + KP_EE = Facultatif(AsVR()) + PHI_IE = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type='R', ltyp=8)) + + # masse condensée : + massmeca = Facultatif(sd_matr_asse_gd(SDNom(nomj='.MASSMECA', fin=19))) + MP_EE = Facultatif(AsVR()) + + # chargements condensés : + LICA = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='CONSTANT', type='R', ltyp=8)) + LICH = Facultatif(AsColl(acces='NO', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8)) + + + + diff --git a/Aster/Cata/cataSTA9/SD/sd_maillage.py b/Aster/Cata/cataSTA9/SD/sd_maillage.py new file mode 100644 index 00000000..71341b35 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_maillage.py @@ -0,0 +1,62 @@ +#@ MODIF sd_maillage 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_titre import sd_titre + +from SD.sd_cham_no import sd_cham_no +from SD.sd_carte import sd_carte +from SD.sd_l_table import sd_l_table + + +class sd_maillage(sd_titre): +#------------------------------- + nomj = SDNom(fin=8) + + DIME = AsVI(lonmax=6, ) + + # un sd_maillage a toujours des noeuds : + NOMNOE = AsObject(genr='N', xous='S', type='K', ltyp=8, ) + coordo = sd_cham_no(SDNom(nomj='.COORDO')) + + # normalement, un sd_maillage a toujours une "sd_l_table" mais POST_MAIL_XFEM ... + lt = Facultatif(sd_l_table(SDNom(nomj=''))) + + # si le sd_maillage a des groupes : + GROUPENO = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) + GROUPEMA = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) + + # si le sd_maillage a des mailles : + CONNEX = Facultatif(AsColl(acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', )) + TYPMAIL = Facultatif(AsVI()) + NOMMAI = Facultatif(AsObject(genr='N', xous='S', type='K', ltyp=8, )) + + # si le sd_maillage a des super-mailles : + NOMACR = Facultatif(AsVK8()) + SUPMAIL = Facultatif(AsColl(acces='NO', stockage='DISPERSE', modelong='VARIABLE', type='I', )) + PARA_R = Facultatif(AsVR()) + TYPL = Facultatif(AsVI()) + + # si le sd_maillage est linéique (tube_GV) : + abs_curv = Facultatif(sd_carte(SDNom(nomj='.ABS_CURV'))) + + ADAPTATION = Facultatif(AsVI(lonmax=1, )) + FORM = Facultatif(AsVK32(SDNom(debut=19), lonmax=2, )) + diff --git a/Aster/Cata/cataSTA9/SD/sd_mater.py b/Aster/Cata/cataSTA9/SD/sd_mater.py new file mode 100644 index 00000000..43cb9d08 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_mater.py @@ -0,0 +1,42 @@ +#@ MODIF sd_mater 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 +from SD.sd_compor1 import sd_compor1 + +class sd_mater(AsBase): + nomj = SDNom(fin=8) + NOMRC = AsVK16(SDNom(nomj='.MATERIAU.NOMRC'), ) + rdep = Facultatif(sd_fonction(SDNom(nomj='.&&RDEP', fin=19))) + + # indirection vers les COMPOR1 de NOMRC : + def check_mater_i_NOMRC(self, checker): + lnom = self.NOMRC.get() + if not lnom: return + for nom in lnom: + if not nom.strip(): continue + nomc1=self.nomj()[:8]+'.'+nom + comp1 = sd_compor1(nomc1) + + # parfois, comp1 est vide. AJACOT_PB : ssls115g/DEFI_COQU_MULT + if comp1.VALK.get() : comp1.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_asse.py b/Aster/Cata/cataSTA9/SD/sd_matr_asse.py new file mode 100644 index 00000000..3f884798 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_matr_asse.py @@ -0,0 +1,48 @@ +#@ MODIF sd_matr_asse 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_matr_asse_gd import sd_matr_asse_gd +from SD.sd_matr_asse_gene import sd_matr_asse_gene +from SD.sd_matr_asse_com import sd_matr_asse_com + +#--------------------------------------------------------------------------------- +# classe "chapeau" à sd_matr_asse_gene et sd_matr_asse_gd ne servant que pour "check" +#--------------------------------------------------------------------------------- + + +class sd_matr_asse(sd_matr_asse_com): +#-------------------------------------------- + nomj = SDNom(fin=19) + + + # pour orienter vers sd_matr_asse_gene ou sd_matr_asse_gd : + def check_matr_asse_1(self, checker): + # on est obligé de se protéger dans le cas des Facultatif(sd_matr_asse) : + if not self.REFA.get() : return + gene=self.REFA.get()[9].strip()=='GENE' + if gene : + sd2=sd_matr_asse_gene(self.nomj) + else : + sd2=sd_matr_asse_gd(self.nomj) + sd2.check(checker) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_asse_com.py b/Aster/Cata/cataSTA9/SD/sd_matr_asse_com.py new file mode 100644 index 00000000..13070207 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_matr_asse_com.py @@ -0,0 +1,40 @@ +#@ MODIF sd_matr_asse_com 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_titre import sd_titre + +from SD.sd_nume_ddl import sd_nume_ddl +from SD.sd_matr_cine import sd_matr_cine + + +class sd_matr_asse_com(sd_titre): +#----------------------------- + nomj = SDNom(fin=19) + + REFA = AsVK24(SDNom(debut=19), lonmax=10, ) + VALM = AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type=Parmi('C', 'R'), ltyp=Parmi(16, 8), ) + UALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type=Parmi('C', 'R'), ltyp=Parmi(16, 8), )) + VALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R'), ltyp=Parmi(16, 8), )) + CONL = Facultatif(AsVR()) + LIME = Facultatif(AsVK8(lonmax=1, )) + cine = Facultatif(sd_matr_cine(SDNom(nomj=''))) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_asse_gd.py b/Aster/Cata/cataSTA9/SD/sd_matr_asse_gd.py new file mode 100644 index 00000000..e6a24bb7 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_matr_asse_gd.py @@ -0,0 +1,38 @@ +#@ MODIF sd_matr_asse_gd 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_matr_asse_com import sd_matr_asse_com +from SD.sd_nume_ddl_gd import sd_nume_ddl_gd + + +class sd_matr_asse_gd(sd_matr_asse_com): +#-------------------------------------------- + nomj = SDNom(fin=19) + + + # indirection vers sd_nume_ddl_gd à faire car FACT_LDLT modifie le sd_nume_ddl_gd de la sd_matr_asse : + def check_matr_asse_gd_i_REFA(self, checker): + # on est obligé de se protéger dans le cas des Facultatif(sd_matr_asse) : + if not self.REFA.get() : return + nom=self.REFA.get()[1] + sd2=sd_nume_ddl_gd(nom) ; sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_asse_gene.py b/Aster/Cata/cataSTA9/SD/sd_matr_asse_gene.py new file mode 100644 index 00000000..0642796b --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_matr_asse_gene.py @@ -0,0 +1,40 @@ +#@ MODIF sd_matr_asse_gene 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_matr_asse_com import sd_matr_asse_com +from SD.sd_nume_ddl_gene import sd_nume_ddl_gene + + +class sd_matr_asse_gene(sd_matr_asse_com): +#----------------------------------- + nomj = SDNom(fin=19) + + DESC = Facultatif(AsVI(SDNom(debut=19), lonmax=3, )) + + + # indirection vers sd_nume_ddl à faire car FACT_LDLT modifie le sd_nume_ddl_gene de la sd_matr_asse : + def check_matr_asse_gene_i_REFA(self, checker): + # on est obligé de se protéger dans le cas des Facultatif(sd_matr_asse) : + if not self.REFA.get() : return + nom=self.REFA.get()[1] + sd2=sd_nume_ddl_gene(nom) ; sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_cine.py b/Aster/Cata/cataSTA9/SD/sd_matr_cine.py new file mode 100644 index 00000000..4fb519f7 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_matr_cine.py @@ -0,0 +1,33 @@ +#@ MODIF sd_matr_cine 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_matr_cine(AsBase): +#----------------------- + nomj = SDNom(fin=19) + + CCID = AsVI() + CCJJ = Facultatif(AsVI()) + CCLL = Facultatif(AsVI()) + CCVA = Facultatif(AsVR()) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_matr_elem.py b/Aster/Cata/cataSTA9/SD/sd_matr_elem.py new file mode 100644 index 00000000..d1149e02 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_matr_elem.py @@ -0,0 +1,45 @@ +#@ MODIF sd_matr_elem 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_resuelem import sd_resuelem + +class sd_matr_elem(AsBase): + nomj = SDNom(fin=8) + LISTE_RESU = AsVK24() + REFE_RESU = AsVK24(lonmax=5, ) + + + # indirection par LISTE_RESU : + def check_matr_elem_i_LISTE_RESU(self, checker): + lnom = self.LISTE_RESU.get() + if not lnom: + checker.err(self, "sd_champ LISTE_RESU absent") + return + for nom in lnom: + if not nom.strip(): + continue + resu1 = sd_resuelem(nom) + # parfois, le nom est non ' ' et pourtant le sd_resuelem n'existe pas + # Il faudrait corriger cette anomalie. + if resu1.NOLI.exists : + resu1.check(checker) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_melasflu.py b/Aster/Cata/cataSTA9/SD/sd_melasflu.py new file mode 100644 index 00000000..aa19b082 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_melasflu.py @@ -0,0 +1,64 @@ +#@ MODIF sd_melasflu 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_l_table import sd_l_table +from SD.sd_table import sd_table +from SD.sd_champ import sd_champ +from SD.sd_matr_asse_gene import sd_matr_asse_gene + + +class sd_melasflu(AsBase): +#------------------------------- + nomj = SDNom(fin=8) + + MASG = AsVR(SDNom(debut=19), ) + VITE = AsVR(SDNom(debut=19), ) + REMF = AsVK8(SDNom(debut=19), lonmax=2, ) + FREQ = AsVR(SDNom(debut=19), ) + NUMO = AsVI(SDNom(debut=19)) + FACT = AsVR(SDNom(debut=19), ) + DESC = AsVK16(SDNom(debut=19), lonmax=1, ) + col1 = AsVK24(SDNom(debut=19,nomj='.0001')) + col3 = Facultatif(AsVK24(SDNom(debut=8,nomj='.TB000000 .0003'))) + col4 = Facultatif(AsVK24(SDNom(debut=8,nomj='.TB000000 .0004'))) + col5 = Facultatif(AsVK24(SDNom(debut=8,nomj='.TB000000 .0005'))) + + sd_l_table = Facultatif(sd_l_table(SDNom(nomj=''))) + sd_table = Facultatif(sd_table(SDNom(nomj=''))) + + # indirection vers des champs : + def check_melasflu_i_COL1(self, checker): + lnom = self.col1.get() + for nom in lnom : + if not nom.strip(): continue + sd2 = sd_champ(nom) ; sd2.check(checker) + + # indirection vers des sd_matr_asse : + def check_melasflu_i_COL345(self, checker): + lnom=[] + if self.col3.get() : lnom= lnom+list(self.col3.get()) + if self.col4.get() : lnom= lnom+list(self.col4.get()) + if self.col5.get() : lnom= lnom+list(self.col5.get()) + for nom in lnom : + if not nom.strip(): continue + sd2 = sd_matr_asse_gene(nom) ; sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_mode_cycl.py b/Aster/Cata/cataSTA9/SD/sd_mode_cycl.py new file mode 100644 index 00000000..2ffb0b0f --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_mode_cycl.py @@ -0,0 +1,34 @@ +#@ MODIF sd_mode_cycl 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_mode_cycl(AsBase): + nomj = SDNom(fin=8) + CYCL_TYPE = AsVK8(lonmax=1, ) + CYCL_CMODE = AsVC() + CYCL_NBSC = AsVI(lonmax=1, ) + CYCL_DIAM = AsVI() + CYCL_REFE = AsVK24(lonmax=3, ) + CYCL_DESC = AsVI(lonmax=4, ) + CYCL_FREQ = AsVR() + CYCL_NUIN = AsVI(lonmax=3, ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_modele.py b/Aster/Cata/cataSTA9/SD/sd_modele.py new file mode 100644 index 00000000..984e443d --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_modele.py @@ -0,0 +1,43 @@ +#@ MODIF sd_modele 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_ligrel import sd_ligrel +from SD.sd_fiss_xfem import sd_fiss_xfem + + +class sd_modele(AsBase): +#----------------------------- + nomj = SDNom(fin=8) + NOEUD = Facultatif(AsVI()) + SSSA = Facultatif(AsVI()) + NOEUD_UTIL = AsVI() + FISS = Facultatif(AsVK8(lonmax=1, )) + MAILLE = Facultatif(AsVI()) + modele = sd_ligrel(SDNom(nomj='.MODELE', fin=19)) + + # indirection vers FISS_XFEM car MODI_MODELE_XFEM modifie FISS_XFEM + # (Damijan va corriger cela avec la multi-fissuration) + def check_modele_i_FISS(self, checker): + if not self.FISS.get() : return + nom=self.FISS.get()[0] + sd2=sd_fiss_xfem(nom) ; sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_modele_gene.py b/Aster/Cata/cataSTA9/SD/sd_modele_gene.py new file mode 100644 index 00000000..2ba619aa --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_modele_gene.py @@ -0,0 +1,34 @@ +#@ MODIF sd_modele_gene 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_modele_gene(AsBase): + nomj = SDNom(fin=14) + MODG_LIPR = AsVI(SDNom(nomj='.MODG.LIPR'), ) + MODG_LIDF = AsColl(SDNom(nomj='.MODG.LIDF'), acces='NU', stockage='DISPERSE', modelong='CONSTANT', type='K', ltyp=8, ) + MODG_SSTR = AsColl(SDNom(nomj='.MODG.SSTR'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='R', ltyp=8, ) + MODG_SSOR = AsColl(SDNom(nomj='.MODG.SSOR'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='R', ltyp=8, ) + MODG_SSNO = AsObject(SDNom(nomj='.MODG.SSNO'), genr='N', xous='S', type='K', ltyp=8, ) + MODG_SSME = AsColl(SDNom(nomj='.MODG.SSME'), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8, ) + MODG_DESC = AsVI(SDNom(nomj='.MODG.DESC'), lonmax=3, ) + MODG_LIMA = AsColl(SDNom(nomj='.MODG.LIMA'), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='R', ltyp=8, ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_ddl.py b/Aster/Cata/cataSTA9/SD/sd_nume_ddl.py new file mode 100644 index 00000000..5261d095 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_nume_ddl.py @@ -0,0 +1,47 @@ +#@ MODIF sd_nume_ddl 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_solveur import sd_solveur + +from SD.sd_nume_ddl_gene import sd_nume_ddl_gene +from SD.sd_nume_ddl_gd import sd_nume_ddl_gd +import aster + + +#--------------------------------------------------------------------------------- +# classe "chapeau" à sd_nume_ddl_gene et sd_nume_ddl_gd ne servant que pour "check" +#--------------------------------------------------------------------------------- + + +class sd_nume_ddl(AsBase): +#-------------------------------------------- + nomj = SDNom(fin=14) + + + # pour orienter vers sd_nume_ddl_gene ou sd_nume_ddl_gd : + def check_nume_ddl_i_GENE(self, checker): + gene= aster.jeveux_exists(self.nomj()[:14]+'.NUME.ORIG') + if gene : + sd2=sd_nume_ddl_gene(self.nomj) + else : + sd2=sd_nume_ddl_gd(self.nomj) + sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_com.py b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_com.py new file mode 100644 index 00000000..6d18fddd --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_com.py @@ -0,0 +1,38 @@ +#@ MODIF sd_nume_ddl_com 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_solveur import sd_solveur +from SD.sd_stockage import sd_stockage + + +class sd_nume_ddl_com(sd_stockage): +#-------------------------------- + nomj = SDNom(fin=14) + NSLV = AsVK24(lonmax=1, ) + + # indirection vers SOLVEUR : + def check_nume_ddl_com_i_NSLV(self, checker): + lnom = self.NSLV.get() + if not lnom: return + sd2=sd_solveur(lnom[0]); sd2.check(checker) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gd.py b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gd.py new file mode 100644 index 00000000..b0b3ad16 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gd.py @@ -0,0 +1,31 @@ +#@ MODIF sd_nume_ddl_gd 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_nume_ddl_com import sd_nume_ddl_com +from SD.sd_nume_equa import sd_nume_equa + + +class sd_nume_ddl_gd(sd_nume_ddl_com): +#-------------------------------- + nomj = SDNom(fin=14) + nume = sd_nume_equa(SDNom(nomj='.NUME')) + FETN = Facultatif(AsVK24()) diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gene.py b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gene.py new file mode 100644 index 00000000..25f06ed5 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_nume_ddl_gene.py @@ -0,0 +1,33 @@ +#@ MODIF sd_nume_ddl_gene 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_nume_ddl_com import sd_nume_ddl_com +from SD.sd_nume_eqge import sd_nume_eqge + + +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 + + + diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_eqge.py b/Aster/Cata/cataSTA9/SD/sd_nume_eqge.py new file mode 100644 index 00000000..295ae4d9 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_nume_eqge.py @@ -0,0 +1,31 @@ +#@ MODIF sd_nume_eqge 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_prof_vgen import sd_prof_vgen +class sd_nume_eqge(sd_prof_vgen): + nomj = SDNom(fin=19) + REFN = AsVK24(SDNom(debut=19), lonmax=2, ) + DESC = AsVI(SDNom(debut=19), lonmax=1, ) + NEQU = AsVI(SDNom(debut=19), lonmax=1, ) + ORIG = AsColl(SDNom(debut=19), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_nume_equa.py b/Aster/Cata/cataSTA9/SD/sd_nume_equa.py new file mode 100644 index 00000000..c95a2315 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_nume_equa.py @@ -0,0 +1,30 @@ +#@ MODIF sd_nume_equa 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_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), )) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_obstacle.py b/Aster/Cata/cataSTA9/SD/sd_obstacle.py new file mode 100644 index 00000000..128c15fc --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_obstacle.py @@ -0,0 +1,29 @@ +#@ 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, )) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_para_sensi.py b/Aster/Cata/cataSTA9/SD/sd_para_sensi.py new file mode 100644 index 00000000..cf649d87 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_para_sensi.py @@ -0,0 +1,27 @@ +#@ MODIF sd_para_sensi 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_para_sensi(sd_fonction): + nomj = SDNom(fin=19) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_prof_chno.py b/Aster/Cata/cataSTA9/SD/sd_prof_chno.py new file mode 100644 index 00000000..3d81d6d3 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_prof_chno.py @@ -0,0 +1,31 @@ +#@ MODIF sd_prof_chno 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_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), ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_prof_vgen.py b/Aster/Cata/cataSTA9/SD/sd_prof_vgen.py new file mode 100644 index 00000000..1be3a441 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_prof_vgen.py @@ -0,0 +1,30 @@ +#@ MODIF sd_prof_vgen 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_prof_vgen(AsBase): + nomj = SDNom(fin=19) + PRNO = AsColl(SDNom(debut=19), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type='I', ) + LILI = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=8, ) + NUEQ = AsVI(SDNom(debut=19), ) + DEEQ = AsVI(SDNom(debut=19), ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_reperage_1d.py b/Aster/Cata/cataSTA9/SD/sd_reperage_1d.py new file mode 100644 index 00000000..b250bb3f --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_reperage_1d.py @@ -0,0 +1,29 @@ +#@ MODIF sd_reperage_1d 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_reperage_1d(AsBase): + nomj = SDNom(fin=19) + TYPE = AsVI(SDNom(debut=19), ) + EXTR = AsVR(SDNom(debut=19), ) + ORIG = AsVR(SDNom(debut=19), ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_reperage_omega.py b/Aster/Cata/cataSTA9/SD/sd_reperage_omega.py new file mode 100644 index 00000000..70be9315 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_reperage_omega.py @@ -0,0 +1,35 @@ +#@ MODIF sd_reperage_omega 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_reperage_omega(AsBase): + nomj = SDNom(fin=13) + CREFF_EXTR = AsVR(SDNom(nomj='.CREFF.EXTR', debut=13), ) + FACE__ORIG = AsVI(SDNom(nomj='.FACE .ORIG', debut=13), ) + CREFF_ORIG = AsVR(SDNom(nomj='.CREFF.ORIG', debut=13), ) + ARETE_EXTR = AsVI(SDNom(nomj='.ARETE.EXTR', debut=13), ) + FACE__EXTR = AsVI(SDNom(nomj='.FACE .EXTR', debut=13), ) + MAIL = AsColl(SDNom(debut=13), acces='NU', stockage='CONTIG', modelong='VARIABLE', type='I', ) + CREFM_ORIG = AsVR(SDNom(nomj='.CREFM.ORIG', debut=13), ) + CREFM_EXTR = AsVR(SDNom(nomj='.CREFM.EXTR', debut=13), ) + ARETE_ORIG = AsVI(SDNom(nomj='.ARETE.ORIG', debut=13), ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_resuelem.py b/Aster/Cata/cataSTA9/SD/sd_resuelem.py new file mode 100644 index 00000000..097e1591 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_resuelem.py @@ -0,0 +1,29 @@ +#@ MODIF sd_resuelem 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_resuelem(AsBase): + nomj = SDNom(fin=19) + NOLI = AsVK24(SDNom(debut=19), lonmax=2, ) + RESL = AsColl(SDNom(debut=19), acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R'), ltyp=Parmi(16, 8), ) + DESC = AsVI(SDNom(debut=19), docu='RESL', ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_resultat.py b/Aster/Cata/cataSTA9/SD/sd_resultat.py new file mode 100644 index 00000000..bd533ebd --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_resultat.py @@ -0,0 +1,81 @@ +#@ MODIF sd_resultat 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_titre import sd_titre + +from SD.sd_l_table import sd_l_table +from SD.sd_champ import sd_champ +from SD.sd_l_charges import sd_l_charges +from sets import Set +import aster + + +class sd_resultat(sd_titre): +#--------------------------------------- + nomj = SDNom(fin=8) + TAVA = Facultatif(AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8, )) + NOVA = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=16, ) + TACH = AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=24, ) + ORDR = AsVI(SDNom(debut=19), ) + DESC = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=16, ) + # la déclaration suivante simplifie la sd_fonction check_resultat_i_char + CHAR = Facultatif(AsVI(SDNom(debut=19),type='K', ltyp=24, )) + + sd_l_table = Facultatif(sd_l_table(SDNom(nomj=''))) + + + # indirection vers les champs de .TACH : + def check_resultat_i_TACH(self, checker): + lnom = self.TACH.get() + if not lnom: return + for k in lnom.keys(): + for nom in lnom[k] : + if not nom.strip(): continue + sd2 = sd_champ(nom) + sd2.check(checker) + + + # indirection vers les objets de .TAVA : + def check_resultat_i_TAVA(self, checker): + lnom = self.TAVA.get() + if not lnom: return + S1=Set() + for k in lnom.keys(): + suffix=lnom[k][0][:5] + if not suffix.strip(): continue + S1.add(suffix) + for suffix in S1 : + nom=self.nomj()[:19]+suffix + sd2 = AsObject(SDNom(nomj=nom,debut=0), xous='S', genr='V', type=Parmi('I','R','C','K'), + 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): + lnom = self.CHAR.get() + if not lnom: return + S1=Set() + for nom in lnom: + if not nom.strip(): continue + S1.add(nom) + for nom in S1 : + sd2 = sd_l_charges(nomj=nom); sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_resultat_dyn.py b/Aster/Cata/cataSTA9/SD/sd_resultat_dyn.py new file mode 100644 index 00000000..51406bd5 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_resultat_dyn.py @@ -0,0 +1,47 @@ +#@ MODIF sd_resultat_dyn 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_resultat import sd_resultat +from SD.sd_nume_ddl import sd_nume_ddl +from SD.sd_matr_asse import sd_matr_asse +from SD.sd_interf_dyna_clas import sd_interf_dyna_clas + + +class sd_resultat_dyn(sd_resultat): +#-------------------------------------------------- + nomj = SDNom(fin=8) + PROFC_NUME_REFN = Facultatif(AsVK24(SDNom(nomj='.PROFC.NUME.REFN'), lonmax=2, )) + REFD = Facultatif(AsVK24(SDNom(debut=19), lonmax=6, )) # n'existe pas dans sdll23a + + + # indirection vers les SD de .REFD : + def check_resultat_dyn_i_REFD(self, checker): + lnom = self.REFD.get() + if not lnom : return + for k in 0,1,2 : + if lnom[k].strip() : + sd2 = sd_matr_asse(lnom[0]); sd2.check(checker) + if lnom[3].strip() : + sd2 = sd_nume_ddl(lnom[3]); sd2.check(checker) + if lnom[4].strip() : + sd2 = sd_interf_dyna_clas(lnom[4]); sd2.check(checker) + diff --git a/Aster/Cata/cataSTA9/SD/sd_solveur.py b/Aster/Cata/cataSTA9/SD/sd_solveur.py new file mode 100644 index 00000000..2d678261 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_solveur.py @@ -0,0 +1,29 @@ +#@ MODIF sd_solveur 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_solveur(AsBase): + nomj = SDNom(fin=19) + SLVK = AsVK24(SDNom(debut=19), lonmax=11, ) + SLVR = AsVR(SDNom(debut=19), lonmax=4, ) + SLVI = AsVI(SDNom(debut=19), lonmax=6, ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_spectre.py b/Aster/Cata/cataSTA9/SD/sd_spectre.py new file mode 100644 index 00000000..e1ebe65c --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_spectre.py @@ -0,0 +1,37 @@ +#@ MODIF sd_spectre 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_titre import sd_titre + + +class sd_spectre(sd_titre): +#------------------------------------ + nomj = SDNom(fin=19) + + VAIN = AsVI() + VATE = AsVK16() + + VARE = Facultatif(AsVR()) + VAVF = Facultatif(AsVK8(lonmax=1)) + NNOE = Facultatif(AsVK8()) + + + diff --git a/Aster/Cata/cataSTA9/SD/sd_squelette.py b/Aster/Cata/cataSTA9/SD/sd_squelette.py new file mode 100644 index 00000000..d867b8cf --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_squelette.py @@ -0,0 +1,30 @@ +#@ MODIF sd_squelette 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_maillage import sd_maillage +class sd_squelette(sd_maillage): + nomj = SDNom(fin=8) + INV_SKELETON = AsVI(SDNom(nomj='.INV.SKELETON'), ) + CORRES = Facultatif(AsVI(lonmax=1271, )) + NOMSST = Facultatif(AsVK8(SDNom(debut=17), )) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_stoc_lciel.py b/Aster/Cata/cataSTA9/SD/sd_stoc_lciel.py new file mode 100644 index 00000000..6407ce39 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_stoc_lciel.py @@ -0,0 +1,31 @@ +#@ MODIF sd_stoc_lciel 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_stoc_lciel(AsBase): + nomj = SDNom(fin=19) + SCDI = AsVI() + SCBL = AsVI() + SCHC = AsVI() + SCIB = AsVI() + SCDE = AsVI(lonmax=6) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_stoc_mltf.py b/Aster/Cata/cataSTA9/SD/sd_stoc_mltf.py new file mode 100644 index 00000000..3f266d26 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_stoc_mltf.py @@ -0,0 +1,44 @@ +#@ MODIF sd_stoc_mltf 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_stoc_mltf(AsBase): + nomj = SDNom(fin=19) + ADNT = AsVI() + ADPI = AsVI() + ADRE = AsVI() + ANCI = AsVI() + DECA = AsVI() + DESC = AsVI(lonmax=5,) + FILS = AsVI() + FRER = AsVI() + GLOB = AsVI() + LFRN = AsVI() + LGBL = AsVI() + LGSN = AsVI() + LOCL = AsVI() + NBAS = AsVI() + NBLI = AsVI() + NCBL = AsVI() + NOUV = AsVI() + RENU = AsVK8(lonmax=1,) + SEQU = AsVI() + SUPN = AsVI() diff --git a/Aster/Cata/cataSTA9/SD/sd_stoc_morse.py b/Aster/Cata/cataSTA9/SD/sd_stoc_morse.py new file mode 100644 index 00000000..a262080e --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_stoc_morse.py @@ -0,0 +1,29 @@ +#@ MODIF sd_stoc_morse 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_stoc_morse(AsBase): + nomj = SDNom(fin=19) + SMDE = AsVI(lonmax=6) + SMHC = AsVI() + SMDI = AsVI() + + diff --git a/Aster/Cata/cataSTA9/SD/sd_stockage.py b/Aster/Cata/cataSTA9/SD/sd_stockage.py new file mode 100644 index 00000000..5700beef --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_stockage.py @@ -0,0 +1,33 @@ +#@ MODIF sd_stockage 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_stoc_mltf import sd_stoc_mltf +from SD.sd_stoc_morse import sd_stoc_morse +from SD.sd_stoc_lciel import sd_stoc_lciel + +class sd_stockage(AsBase): + nomj = SDNom(fin=14) + slcs = Facultatif(sd_stoc_lciel(SDNom(nomj='.SLCS'))) + mltf = Facultatif(sd_stoc_mltf(SDNom(nomj='.MLTF'))) + smos = sd_stoc_morse(SDNom(nomj='.SMOS')) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_surface.py b/Aster/Cata/cataSTA9/SD/sd_surface.py new file mode 100644 index 00000000..796bfabe --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_surface.py @@ -0,0 +1,38 @@ +#@ MODIF sd_surface 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_surface_1d import sd_surface_1d + + +class sd_surface(AsBase): +#----------------------------- + nomj = SDNom(fin=8) + NSDS = AsVK24(lonmax=1, ) + NOMA = AsVK8(lonmax=1, ) + + + # indirection vers sd_surface_1d : + def check_surface_i_NSDS(self, checker): + lnom = self.NSDS.get() + #if not lnom: return + sd2=sd_surface_1d(lnom[0]); sd2.check(checker) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_surface_1d.py b/Aster/Cata/cataSTA9/SD/sd_surface_1d.py new file mode 100644 index 00000000..96dfb7f4 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_surface_1d.py @@ -0,0 +1,36 @@ +#@ MODIF sd_surface_1d 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_reperage_1d import sd_reperage_1d +from SD.sd_reperage_omega import sd_reperage_omega + + +class sd_surface_1d(AsBase): +#-------------------------------- + nomj = SDNom(fin=13) + sgtel = sd_reperage_1d(SDNom(nomj='.SGTEL')) + repom = sd_reperage_omega(SDNom(nomj='')) + CONEX_ORIG = AsVI(SDNom(nomj='.CONEX.ORIG'), lonmax=1, ) + CONEX_EXTR = AsVI(SDNom(nomj='.CONEX.EXTR'), lonmax=1, ) + DESC = AsVR(SDNom(debut=13), lonmax=6, ) + + diff --git a/Aster/Cata/cataSTA9/SD/sd_table.py b/Aster/Cata/cataSTA9/SD/sd_table.py new file mode 100644 index 00000000..191eb841 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_table.py @@ -0,0 +1,61 @@ +#@ MODIF sd_table 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_titre import sd_titre + + +class sd_table(sd_titre): +#------------------------------------- + nomj = SDNom(fin=17) + TBNP = AsVI(SDNom(debut=19), lonmax=2, ) + TBBA = AsVK8(SDNom(debut=19), lonmax=1, ) + TBLP = AsVK24(SDNom(debut=19), ) + + + def get_column(self, i): + nom = self.nomj()[:19]+".%04d"%i + return Colonne( nom ) + + def shape(self): + print self.nomj() + print self.TBNP.nomj(), self.TBNP.exists + print self.TBNP.get() + return tuple(self.TBNP.get()) + + def check_table_1(self, checker): + shape = self.TBNP.get() + if shape is None: + return + desc = self.TBLP.get() + for n in range(shape[0]): + nom = desc[4*n+2] + col = Colonne(nom) + col.check(checker) + data = col.data.get() + if data is not None: + if col.data.lonuti != shape[1]: + checker.err(self,"Taille inconsitante %d!=%d" % + (col.data.lonuti,shape[1])) + +class Colonne(AsBase): + nomj = SDNom(debut=0, fin=24) + data = OJBVect(SDNom(" ",debut=17,fin=19)) + mask = OJBVect(SDNom("LG",debut=17,fin=19)) diff --git a/Aster/Cata/cataSTA9/SD/sd_table_fonction.py b/Aster/Cata/cataSTA9/SD/sd_table_fonction.py new file mode 100644 index 00000000..37e64e61 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_table_fonction.py @@ -0,0 +1,50 @@ +#@ MODIF sd_table_fonction 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_table import sd_table, Colonne +from SD.sd_fonction import sd_fonction + +# -------------------------------------------------------------------- +# sd_table dont une colonne nommée "FONCTION[_C]" contient des fonctions +# -------------------------------------------------------------------- + + + +class sd_table_fonction(sd_table): +#------------------------------------- + nomj = SDNom(fin=17) + + + def check_table_fonction_i_COL_FONC(self, checker): + shape = self.TBNP.get() + if shape is None: return + desc = self.TBLP.get() + for n in range(shape[0]): + nomcol=desc[4*n].strip() + if not (nomcol == 'FONCTION' or nomcol == 'FONCTION_C') : continue + nom = desc[4*n+2] + col = Colonne(nom) + lnom = col.data.get() + if not lnom : return + for nom1 in lnom : + if not nom1.strip() : continue + sd2=sd_fonction(nom1) ; sd2.check(checker) diff --git a/Aster/Cata/cataSTA9/SD/sd_titre.py b/Aster/Cata/cataSTA9/SD/sd_titre.py new file mode 100644 index 00000000..791f9c1a --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_titre.py @@ -0,0 +1,27 @@ +#@ MODIF sd_titre 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 * + +# ----------------------------------------------------------------------------- +# Description de la structure de données +class sd_titre(AsBase): + TITR = AsVK80(SDNom(debut=19), optional=True) + diff --git a/Aster/Cata/cataSTA9/SD/sd_tran_gene.py b/Aster/Cata/cataSTA9/SD/sd_tran_gene.py new file mode 100644 index 00000000..aa27bb7f --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_tran_gene.py @@ -0,0 +1,61 @@ +#@ MODIF sd_tran_gene 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_titre import sd_titre + + +class sd_tran_gene(sd_titre) : +#-------------------------------------- + nomj = SDNom(fin=19) + + # objets commencant en 19 : + FDEP = Facultatif(AsVK8()) + ACCE = AsVR() + ICHO = Facultatif(AsVI()) + REDN = Facultatif(AsVK24(lonmax=1, )) + INST = AsVR() + IPSD = Facultatif(AsVR()) + DEPL = AsVR() + VINT = Facultatif(AsVR()) + FCHO = Facultatif(AsVR()) + DESC = AsVI(lonmax=5, ) + INTI = Facultatif(AsVK8()) + REDC = Facultatif(AsVI()) + NCHO = Facultatif(AsVK8()) + REDD = Facultatif(AsVR()) + REFD = AsVK24(lonmax=6, ) + VITE = AsVR() + FVIT = Facultatif(AsVK8()) + SST = Facultatif(AsVK8()) + DLOC = Facultatif(AsVR()) + ORDR = AsVI() + PTEM = AsVR() + FACC = Facultatif(AsVK8()) + VCHO = Facultatif(AsVR()) + + # objets commencant en 8 : + BASEPR = Facultatif(AsVR(SDNom(debut=8))) + VNOEUD = Facultatif(AsVI(SDNom(debut=8))) + VORIEN = Facultatif(AsVR(SDNom(debut=8))) + VRANGE = Facultatif(AsVK8(SDNom(debut=8))) + + + diff --git a/Aster/Cata/cataSTA9/SD/sd_type_flui_stru.py b/Aster/Cata/cataSTA9/SD/sd_type_flui_stru.py new file mode 100644 index 00000000..4134b1f3 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_type_flui_stru.py @@ -0,0 +1,41 @@ +#@ MODIF sd_type_flui_stru 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_type_flui_stru(AsBase): +#------------------------------------ + nomj = SDNom(fin=8) + FSIC = AsVI(SDNom(debut=19),lonmax=2, ) + + # AJACOT_PB : j'ai du ajouter plusieurs Facultatifs (sdll116a) + # il y en a vraiment beaucoup maintenant !! + FSGM = Facultatif(AsVK8(SDNom(debut=19))) + FSVR = Facultatif(AsVR(SDNom(debut=19))) + FSVK = Facultatif(AsVK8(SDNom(debut=19))) + FSVI = Facultatif(AsVI(SDNom(debut=19))) + FSCR = Facultatif(AsVR(SDNom(debut=19),lonmax=18, )) + FSGR = Facultatif(AsVR(SDNom(debut=19),lonmax=7, )) + UNIT_FAISCEAU = Facultatif(AsVI()) + UNIT_GRAPPES = Facultatif(AsVI()) + + + diff --git a/Aster/Cata/cataSTA9/SD/sd_util.py b/Aster/Cata/cataSTA9/SD/sd_util.py new file mode 100644 index 00000000..a1e9ad06 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_util.py @@ -0,0 +1,64 @@ +#@ MODIF sd_util 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. +# ====================================================================== + +""" + Utilitaires pour la vérification des SD +""" + +# pour utilisation dans eficas +try: + import aster +except: + pass + + +def compare(ojb, checker, val1, comp, val2, comment=''): + # Vérifie que la relation de comparaison entre val1 et val2 est respectée : + # comp= '==' / '!=' / '>=' / '>' / '<=' / '<' + if comp == "==" : + ok = val1 == val2 + elif comp == "!=" : + ok = val1 != val2 + elif comp == ">=" : + ok = val1 >= val2 + elif comp == "<=" : + ok = val1 <= val2 + elif comp == ">" : + ok = val1 > val2 + elif comp == "<" : + ok = val1 < val2 + else : + assert 0, comp + + if not ok : + checker.err(ojb, "condition non respectée : %s %s %s (%s)" % (val1,comp,val2,comment)) + + +def affirme(ojb, checker, bool,comment=''): + # Vérifie que le booléen (bool) est vrai + # émet un mesage d'erreur sinon + if not bool : + checker.err(ojb, "condition non respectée : (%s)" % (comment,)) + + +def nom_gd(numgd) : + # retourne le nom de la grandeur de numéro (numgd) + ptn=aster.getvectjev('&CATA.GD.NOMGD') + return ptn[numgd-1].strip() diff --git a/Aster/Cata/cataSTA9/SD/sd_vect_elem.py b/Aster/Cata/cataSTA9/SD/sd_vect_elem.py new file mode 100644 index 00000000..bcadd9d7 --- /dev/null +++ b/Aster/Cata/cataSTA9/SD/sd_vect_elem.py @@ -0,0 +1,29 @@ +#@ MODIF sd_vect_elem 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_resuelem import sd_resuelem +from SD.sd_matr_elem import sd_matr_elem + +class sd_vect_elem(sd_matr_elem): + nomj = SDNom(fin=8) + LISTE_CHAR = Facultatif(AsColl(acces='NO', stockage='CONTIG', modelong='CONSTANT', type='I', )) + + diff --git a/Aster/Cata/cataSTA9/__init__.py b/Aster/Cata/cataSTA9/__init__.py new file mode 100644 index 00000000..ea9a6f6b --- /dev/null +++ b/Aster/Cata/cataSTA9/__init__.py @@ -0,0 +1,9 @@ +import os,sys +sys.modules["Cata"]=sys.modules[__name__] +rep_macro = os.path.dirname(__file__) +sys.path.insert(0,rep_macro) + +from cata import * +from math import ceil +from Extensions import param2 +pi=param2.Variable('pi',pi) diff --git a/Aster/Cata/cataSTA9/cata.py b/Aster/Cata/cataSTA9/cata.py new file mode 100644 index 00000000..a355fdfe --- /dev/null +++ b/Aster/Cata/cataSTA9/cata.py @@ -0,0 +1,24051 @@ +#& MODIF ENTETE DATE 13/02/2007 AUTEUR PELLET J.PELLET +# -*- coding: iso-8859-1 -*- +# 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. +# ====================================================================== + +__version__ = "$Name: $" +__Id__ = "$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $" + +import Accas +from Accas import * +from Accas import _F +import Numeric +from math import sin,cos,tan,asin,acos,atan2,atan,sinh,cosh,tanh,exp,log,log10 +from math import sqrt,pi +import ops + +try: + import aster +except: + pass + +# ----------------------------------------------------------------------------- +JdC = JDC_CATA(code='ASTER', + execmodul=None, + regles = (AU_MOINS_UN('DEBUT','POURSUITE'), + AU_MOINS_UN('FIN'), + A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) +# Type le plus general +class entier (ASSD): + def __init__(self,valeur=None,**args): + ASSD.__init__(self,**args) + self.valeur=valeur + + def __adapt__(self,validator): + if validator.name == "list": + #validateur liste,cardinalité + return (self,) + elif validator.name == "type": + #validateur type + return validator.adapt(self.valeur or 0) + else: + #validateur into et valid + return self + +class reel(ASSD): + def __init__(self,valeur=None,**args): + ASSD.__init__(self,**args) + self.valeur=valeur + + def __call__(self): + return self.valeur + + def __adapt__(self,validator): + if validator.name == "list": + #validateur liste,cardinalité + return (self,) + elif validator.name == "type": + #validateur type + return validator.adapt(self.valeur or 0.) + else: + #validateur into et valid + return self + +# ----------------------------------------------------------------------------- +# Type geometriques +class no (GEOM):pass +class grno(GEOM):pass +class ma (GEOM):pass +class grma(GEOM):pass + +# ----------------------------------------------------------------------------- +from SD.co_cabl_precont import cabl_precont +from SD.co_cara_elem import cara_elem +from SD.co_cham_mater import cham_mater +from SD.co_char_acou import char_acou +from SD.co_char_cine_acou import char_cine_acou +from SD.co_char_cine_meca import char_cine_meca +from SD.co_char_cine_ther import char_cine_ther +from SD.co_char_meca import char_meca +from SD.co_char_ther import char_ther +from SD.co_compor import compor_sdaster +from SD.co_courbe import courbe_sdaster +from SD.co_fiss_xfem import fiss_xfem +from SD.co_fond_fiss import fond_fiss +from SD.co_interf_dyna_clas import interf_dyna_clas +from SD.co_gfibre import gfibre_sdaster +from SD.co_listis import listis_sdaster +from SD.co_melasflu import melasflu_sdaster +from SD.co_mode_cycl import mode_cycl +from SD.co_nume_ddl_gene import nume_ddl_gene +from SD.co_nume_ddl import nume_ddl_sdaster +from SD.co_sd_feti import sd_feti_sdaster +from SD.co_spectre import spectre_sdaster +from SD.co_surface import surface_sdaster +from SD.co_tran_gene import tran_gene +from SD.co_type_flui_stru import type_flui_stru + +# ----------------------------------------------------------------------------- +# modeles : +from SD.co_modele import modele_sdaster +from SD.co_modele_gene import modele_gene + +# ----------------------------------------------------------------------------- +# materiau +from SD.co_mater import mater_sdaster + +# ----------------------------------------------------------------------------- +# macro-elements : +from SD.co_macr_elem_dyna import macr_elem_dyna +from SD.co_macr_elem_stat import macr_elem_stat + +# ----------------------------------------------------------------------------- +# liste : +from SD.co_listr8 import listr8_sdaster + +# ----------------------------------------------------------------------------- +# maillage : +from SD.co_maillage import maillage_sdaster +from SD.co_squelette import squelette + +# ----------------------------------------------------------------------------- +# champs +from SD.co_champ import cham_gd_sdaster +from SD.co_cham_no import cham_no_sdaster +from SD.co_carte import carte_sdaster +from SD.co_cham_elem import cham_elem + +# ----------------------------------------------------------------------------- +# resultat : (evol_sdaster,mode_stat,mode_meca) +from SD.co_resultat import resultat_sdaster, resultat_jeveux +from SD.co_resultat_dyn import resultat_dyn +from SD.co_base_modale import base_modale + +# ----------------------------------------------------------------------------- +class acou_harmo (resultat_dyn):pass +class dyna_harmo (resultat_dyn):pass +class dyna_trans (resultat_dyn):pass +class harm_gene (resultat_dyn):pass +class mode_acou (resultat_dyn):pass +class mode_flamb (resultat_dyn):pass +class mode_gene (resultat_dyn):pass + +# ----------------------------------------------------------------------------- +class comb_fourier (resultat_sdaster):pass +class fourier_elas (resultat_sdaster):pass +class fourier_ther (resultat_sdaster):pass +class mult_elas (resultat_sdaster):pass +class theta_geom (resultat_sdaster):pass + +# ----------------------------------------------------------------------------- +# resultat_sdaster/evol_sdaster : +class evol_sdaster(resultat_sdaster):pass +class evol_char(evol_sdaster):pass +class evol_elas(evol_sdaster):pass +class evol_noli(evol_sdaster):pass +class evol_ther(evol_sdaster):pass +class evol_varc(evol_sdaster):pass + +# ----------------------------------------------------------------------------- +# resultat_sdaster/mode_stat : +class mode_stat(resultat_dyn):pass +class mode_stat_depl(mode_stat):pass +class mode_stat_acce(mode_stat):pass +class mode_stat_forc(mode_stat):pass + +# ----------------------------------------------------------------------------- +# resultat_sdaster/mode_meca : +class mode_meca(resultat_dyn):pass +class mode_meca_c(mode_meca):pass + +# ----------------------------------------------------------------------------- +# fonctions / nappe / para_sensi +from SD.co_fonction import fonction_sdaster, para_sensi, fonction_c, nappe_sdaster + +# ----------------------------------------------------------------------------- +# matr_asse : +from SD.co_matr_asse import matr_asse +from SD.co_matr_asse_gene import matr_asse_gene +from SD.co_matr_asse_gene import matr_asse_gene_r +from SD.co_matr_asse_gene import matr_asse_gene_c + +from SD.co_matr_asse_gd import matr_asse_gd, \ + matr_asse_depl_r, matr_asse_depl_c, \ + matr_asse_pres_r, matr_asse_pres_c, \ + matr_asse_temp_r, matr_asse_temp_c + +# ----------------------------------------------------------------------------- +# matr_elem : +from SD.co_matr_elem import matr_elem, \ + matr_elem_depl_r, matr_elem_depl_c, \ + matr_elem_pres_c, \ + matr_elem_temp_r + +# ----------------------------------------------------------------------------- +# table : +from SD.co_table import table_sdaster, table_jeveux +from SD.co_table_fonction import table_fonction + +# ----------------------------------------------------------------------------- +# vect_asse_gene : +from SD.co_vect_asse_gene import vect_asse_gene + +# ----------------------------------------------------------------------------- +# vect_elem : +from SD.co_vect_elem import vect_elem, \ + vect_elem_depl_r, \ + vect_elem_pres_r, vect_elem_pres_c, \ + vect_elem_temp_r + +#& MODIF COMMUN DATE 02/04/2007 AUTEUR LAVERNE J.LAVERNE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# RESPONSABLE JMBHH01 J.M.PROIX +# ====================================================================== +# 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. +# ====================================================================== +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", + "DIS_ECRO_CINE", +# Spécial Discrets : fin + "ELAS_HYPER", + "VMIS_ISOT_TRAC", + "VISC_ISOT_TRAC", + "VMIS_ISOT_LINE", + "VISC_ISOT_LINE", + "VMIS_ISOT_PUIS", + "VMIS_ECMI_TRAC", + "VMIS_ECMI_LINE", + "LABORD_1D", + "ENDO_FRAGILE", + "ENDO_ISOT_BETON", + "ENDO_ORTH_BETON", + "BETON_REGLE_PR", + "MAZARS", + "JOINT_BA", + "RUPT_FRAG", + "CZM_EXP_REG", + "CZM_LIN_REG", + "CZM_EXP", + "META_P_IL", + "META_P_IL_PT", + "META_P_IL_RE", + "META_P_IL_PT_RE", + "META_V_IL", + "META_V_IL_PT", + "META_V_IL_RE", + "META_V_IL_PT_RE", + "META_P_INL", + "META_P_INL_PT", + "META_P_INL_RE", + "META_P_INL_PT_RE", + "META_V_INL", + "META_V_INL_PT", + "META_V_INL_RE", + "META_V_INL_PT_RE", + "META_P_CL", + "META_P_CL_PT", + "META_P_CL_RE", + "META_P_CL_PT_RE", + "META_V_CL", + "META_V_CL_PT", + "META_V_CL_RE", + "META_V_CL_PT_RE", + "VMIS_CINE_LINE", + "VISC_TAHERI", + "VISCOCHAB", + "VMIS_CIN1_CHAB", + "VMIS_CIN2_CHAB", + "VISC_CIN1_CHAB", + "VISC_CIN2_CHAB", + "LMARC", + "LMARC_IRRA", + "ROUSSELIER", + "ROUSS_PR", + "ROUSS_VISC", + "VMIS_POU_LINE", + "VMIS_POU_FLEJOU", + "ARME", + "ASSE_CORN", + "NORTON_HOFF", + "LEMAITRE", + "LEMAITRE_IRRA", + "LEMA_SEUIL", + "IRRAD3M", + "ZIRC_CYRA2", + "VISC_IRRA_LOG", + "GRAN_IRRA_LOG", + "ZIRC_EPRI", + "VENDOCHAB", + "NADAI_B", + "DIS_CONTACT", + "DIS_CHOC", + "DIS_GRICRA", + "DIS_GOUJ2E_PLAS", + "DIS_GOUJ2E_ELAS", + "GRILLE_ISOT_LINE", + "GRILLE_CINE_LINE", + "GRILLE_PINTO_MEN", + "PINTO_MENEGOTTO", + "CJS", + "HUJEUX", + "CAM_CLAY", + "BARCELONE", + "LAIGLE", + "DRUCKER_PRAGER", + "HOEK_BROWN", + "HOEK_BROWN_EFF", + "HOEK_BROWN_TOT", + "GRANGER_FP", + "GRANGER_FP_INDT", + "GRANGER_FP_V", + "BAZANT_FD", + "BETON_UMLV_FP", + "BETON_DOUBLE_DP", + "KIT_HM", + "KIT_HHM", + "KIT_THH", + "KIT_THV", + "KIT_THM", + "KIT_THHM", + "VMIS_ASYM_LINE", + "ELAS_THER", + "KIT_DDI", + "GLRC_DAMAGE", + "GLRC_DM", + "SANS", + "CORR_ACIER", + "MONOCRISTAL", + "POLYCRISTAL", + "ZMAT", + "GATT_MONERIE", + "MULTIFIBRE", + ) ), +# 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,)), +# 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,)), + 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,)), + 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,)), + ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)), + ZIRC_EPRI =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_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), + 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=9,into=(9,)), + CAM_CLAY =SIMP(statut='c',typ='I',defaut=2,into=(2,)), + BARCELONE =SIMP(statut='c',typ='I',defaut=5,into=(5,)), + LAIGLE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), + DRUCKER_PRAGER =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,)), + BAZANT_FD =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)), + 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=21,into=(21,)), + 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", + "DRUCKER_PRAGER", + "HOEK_BROWN_EFF", + "HOEK_BROWN_TOT", + "ELAS_THER", + "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", + "HYDR_ENDO", +# MECA_META + "ACIER", + "ZIRC", +# MECA KIT_DDI + "VMIS_ISOT_TRAC", + "VMIS_ISOT_LINE", + "VMIS_ISOT_CINE", + "VMIS_ISOT_PUIS", + "GRANGER_FP", + "GRANGER_FP_INDT", + "GRANGER_FP_V", + "BETON_UMLV_FP", + "ROUSS_PR", + "NADAI_B", + "BETON_DOUBLE_DP", + ),), + + + ELAS_THER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + 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 =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")), + 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",)), + 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")), + b_perturb = BLOC(condition = " TYPE_MATR_TANG != None ", + fr="Calcul de la matrice tangente par perturbation, valeur de la perturbation", + VALE_PERT_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-5), + ), + PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), + ) ; +#& MODIF COMMUN DATE 07/11/2006 AUTEUR CIBHHLV L.VIVAN +# 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. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +# ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM +# c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD) +def C_NOM_CHAM_INTO() : return ("ACCE", #COMMUN# + "ACCE_ABSOLU", + "ALPH0_ELGA_EPSP", + "ALPHP_ELGA_ALPH0", + "ARCO_ELNO_SIGM", + "ARCO_NOEU_SIGM", + "COMPORTEMENT", + "COMPORTHER", + "CRIT_ELNO_RUPT", + "DCHA_ELGA_SIGM", + "DCHA_ELNO_SIGM", + "DCHA_NOEU_SIGM", + "DEDE_ELNO_DLDE", + "DEDE_NOEU_DLDE", + "DEGE_ELNO_DEPL", + "DEGE_NOEU_DEPL", + "DEPL", + "DEPL_ABSOLU", + "DESI_ELNO_DLSI", + "DESI_NOEU_DLSI", + "DETE_ELNO_DLTE", + "DETE_NOEU_DLTE", + "DURT_ELGA_META", + "DURT_ELNO_META", + "DURT_NOEU_META", + "ECIN_ELEM_DEPL", + "EFGE_ELNO_CART", + "EFGE_ELNO_DEPL", + "EFGE_NOEU_CART", + "EFGE_NOEU_DEPL", + "ENDO_ELGA", + "ENDO_ELNO_ELGA", + "ENDO_ELNO_SIGA", + "ENDO_ELNO_SINO", + "ENDO_NOEU_SINO", + "ENEL_ELGA", + "ENEL_ELNO_ELGA", + "ENEL_NOEU_ELGA", + "EPEQ_ELNO_TUYO", + "EPVC_ELGA", + "EPVC_ELNO", + "EPFD_ELGA", + "EPFD_ELNO", + "EPFP_ELGA", + "EPFP_ELNO", + "EPME_ELGA_DEPL", + "EPME_ELNO_DEPL", + "EPMG_ELGA_DEPL", + "EPMG_ELNO_DEPL", + "EPMG_NOEU_DEPL", + "EPOT_ELEM_DEPL", + "EPSA_ELNO", + "EPSA_NOEU", + "EPSG_ELGA_DEPL", + "EPSG_ELNO_DEPL", + "EPSG_NOEU_DEPL", + "EPSI_ELGA_DEPL", + "EPSI_ELNO_DEPL", + "EPSI_ELNO_TUYO", + "EPSI_NOEU_DEPL", + "EPSP_ELGA", + "EPSP_ELNO", + "EPSP_ELNO_ZAC", + "EPSP_NOEU", + "EPSP_NOEU_ZAC", + "EQUI_ELGA_EPME", + "EQUI_ELGA_EPSI", + "EQUI_ELGA_SIGM", + "EQUI_ELNO_EPME", + "EQUI_ELNO_EPSI", + "EQUI_ELNO_SIGM", + "EQUI_NOEU_EPME", + "EQUI_NOEU_EPSI", + "EQUI_NOEU_SIGM", + "ERRE_ELEM_SIGM", + "ERRE_ELEM_TEMP", + "ERRE_ELNO_ELEM", + "ERRE_NOEU_ELEM", + "ERZ1_ELEM_SIGM", + "ERZ2_ELEM_SIGM", + "QIRE_ELEM_SIGM", + "QIRE_ELNO_ELEM", + "QIZ1_ELEM_SIGM", + "QIZ2_ELEM_SIGM", + "SING_ELEM", + "SING_ELNO_ELEM", + "ETOT_ELEM", + "ETOT_ELGA", + "ETOT_ELNO_ELGA", + "EXTR_ELGA_VARI", + "EXTR_ELNO_VARI", + "EXTR_NOEU_VARI", + "FLUX_ELGA_TEMP", + "FLUX_ELNO_TEMP", + "FLUX_NOEU_TEMP", + "FORC_NODA", + "FSUR_2D", + "FSUR_3D", + "FVOL_2D", + "FVOL_3D", + "GRAD_NOEU_THETA", + "HYDR_ELNO_ELGA", + "HYDR_NOEU_ELGA", + "INDI_LOCA_ELGA", + "INTE_ELNO_ACTI", + "INTE_ELNO_REAC", + "INTE_NOEU_ACTI", + "INTE_NOEU_REAC", + "IRRA", + "LANL_ELGA", + "META_ELGA_TEMP", + "META_ELNO_TEMP", + "META_NOEU_TEMP", + "MODE_FLAMB", + "PMPB_ELGA_SIEF", + "PMPB_ELNO_SIEF", + "PMPB_NOEU_SIEF", + "PRES", + "PRES_DBEL_DEPL", + "PRES_ELNO_DBEL", + "PRES_ELNO_IMAG", + "PRES_ELNO_REEL", + "PRES_NOEU_DBEL", + "PRES_NOEU_IMAG", + "PRES_NOEU_REEL", + "RADI_ELGA_SIGM", + "RADI_ELNO_SIGM", + "RADI_NOEU_SIGM", + "REAC_NODA", + "SIEF_ELGA", + "SIEF_ELGA_DEPL", + "SIEF_ELNO", + "SIEF_ELNO_ELGA", + "SIEF_NOEU", + "SIEF_NOEU_ELGA", + "SIEQ_ELNO_TUYO", + "SIGM_ELNO_CART", + "SIGM_ELNO_COQU", + "SIGM_ELNO_DEPL", + "SIGM_ELNO_SIEF", + "SIGM_ELNO_TUYO", + "SIGM_ELNO_ZAC", + "SIGM_NOEU_CART", + "SIGM_NOEU_COQU", + "SIGM_NOEU_DEPL", + "SIGM_NOEU_SIEF", + "SIGM_NOEU_ZAC", + "SIGM_NOZ1_ELGA", + "SIGM_NOZ2_ELGA", + "SIPO_ELNO_DEPL", + "SIPO_ELNO_SIEF", + "SIPO_NOEU_DEPL", + "SIPO_NOEU_SIEF", + "SIRE_ELNO_DEPL", + "SIRE_NOEU_DEPL", + "SOUR_ELGA_ELEC", + "TEMP", + "THETA", + "VALE_CONT", + "VALE_NCOU_MAXI", + "VARI_ELGA", + "VARI_ELGA_ZAC", + "VARI_ELNO", + "VARI_ELNO_COQU", + "VARI_ELNO_ELGA", + "VARI_ELNO_TUYO", + "VARI_NOEU", + "VARI_NOEU_ELGA", + "VARI_NON_LOCAL", + "VITE", + "VITE_ABSOLU", + "VITE_VENT", + ) +#& MODIF COMMUN DATE 27/06/2005 AUTEUR D6BHHJP J.P.LEFEBVRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM +def C_TYPE_CHAM_INTO() : #COMMUN# + l=[] + for gd in C_NOM_GRANDEUR() : + for typ in ("ELEM","ELNO","ELGA","CART","NOEU") : + l.append(typ+"_"+gd) + return tuple(l) + +#& MODIF COMMUN DATE 29/03/2007 AUTEUR GRANET S.GRANET +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 fichier contient la liste des PARA possibles pour les fonctions et les nappes +def C_PARA_FONCTION() : return ( #COMMUN# + "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC", + "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP", + "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT", + "PGAZ","PCAP","PLIQ","PVAP","PAD","VITE","ENDO", + "NORM","EPAIS","NEUT1","NEUT2",) +#& MODIF COMMUN DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN +# 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. +# ====================================================================== +# ce fichier contient la liste des noms des grandeurs de CODE_ASTER +def C_NOM_GRANDEUR() : return ( #COMMUN# +"ABSC_R", +"ADRSJEVE", +"ADRSJEVN", +"CAARPO", +"CACABL", +"CACOQU", +"CADISA", +"CADISK", +"CADISM", +"CAFI_R", +"CAGEBA", +"CAGEPO", +"CAGNBA", +"CAGNPO", +"CAMASS", +"CAORIE", +"CAPOUF", +"CARCRI", +"CASECT", +"CHLI_R", +"CODE_I", +"COEH_F", +"COEH_R", +"COMPOR", +"CORR_R", +"CRRU_R", +"DBEL_R", +"DCEL_I", +"DDLI_C", +"DDLI_F", +"DDLI_R", +"DDLM_C", +"DDLM_R", +"DEPL_C", +"DEPL_F", +"DEPL_R", +"DOMMAG", +"DURT_R", +"ENER_R", +"EPSI_F", +"EPSI_R", +"ERREUR", +"FACY_R", +"FELECR", +"FISS_R", +"FLAPLA", +"FLUN_F", +"FLUN_R", +"FLUX_F", +"FLUX_R", +"FORC_C", +"FORC_F", +"FORC_R", +"FREQ_R", +"FTHM_F", +"FTHM_R", +"G", +"GEOM_R", +"G_DEPL_R", +"HARMON", +"HYDR_R", +"IMPE_C", +"IMPE_F", +"IMPE_R", +"IND_LOCA", +"INFC_R", +"INST_R", +"INTE_R", +"INTLOC", +"IRRA_R", +"ITECREL", +"ITEDEC", +"J", +"LISTMA", +"MACOMP", +"MASS_R", +"MATE_F", +"NBSP_I", +"NEUT_F", +"NEUT_I", +"NEUT_K16", +"NEUT_K24", +"NEUT_K8", +"NEUT_R", +"NUMC_I", +"NUMMOD", +"ONDE_F", +"ONDE_R", +"PESA_R", +"PILO_K", +"PILO_R", +"POSI", +"PREC", +"PRES_C", +"PRES_F", +"PRES_R", +"RAYO_F", +"RAYO_R", +"RCCM_K", +"RCCM_R", +"RESCREL", +"RICE_TRA", +"ROTA_R", +"SECTION", +"SIEF_C", +"SIEF_R", +"SIZZ_R", +"SOUR_F", +"SOUR_R", +"SPMA_R", +"STAOUDYN", +"TEMP_C", +"TEMP_F", +"TEMP_R", +"THETA", +"VALO_R", +"VANL_R", +"VAR2_R", +"VARI_R", +"VENTCX_F", +"VNOR_C", +"VNOR_F", +"VOISIN", +"WEIBULL", +"XCONTAC", + ) +#& MODIF COMMANDE DATE 13/02/2007 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. +# +# 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 MJBHHPE J.L.FLEJOU +AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, + fr="Affectation de caractéristiques à des éléments de structure", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF', + 'GRILLE','MULTIFIBRE','RIGI_PARASOL'), + PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE'),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), + VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ), + +#============================================================================ + POUTRE =FACT(statut='f',max='**', + 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='**'), + SECTION =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ), + PREC_AIRE =SIMP(statut='f',typ='R',defaut=0.01), + PREC_INERTIE =SIMP(statut='f',typ='R',defaut=0.1), + b_generale =BLOC( condition = "SECTION=='GENERALE'", + VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"), + b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=4 ,max=15, + fr="A,IY,IZ,JX sont des paramètres obligatoires", + into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT", + "JG","IYR2","IZR2","AI") ), + VALE =SIMP(statut='o',typ='R',min=4 ,max=15), + ), + b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=8 ,max=30, + fr="A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires", + into=("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1", + "RZ1","RT1","JG1","IYR21","IZR21","AI1", + "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2", + "RZ2","RT2","JG2","IYR22","IZR22","AI2") ), + VALE =SIMP(statut='o',typ='R',min=8 ,max=30), + ), + ), + b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", + VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut="CONSTANT"), + b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=4, + into=("H","EP", "HY","HZ","EPY","EPZ") ), + VALE =SIMP(statut='o',typ='R',min=1 ,max=4), + ), + b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=8, + into=("H1","HZ1","HY1","EP1","EPY1","EPZ1", + "H2","HZ2","HY2","EP2","EPY2","EPZ2") ), + VALE =SIMP(statut='o',typ='R',min=2 ,max=8), + ), + b_affine =BLOC( condition = "VARI_SECT=='AFFINE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=3 ,max=6, + into=("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ), + VALE =SIMP(statut='o',typ='R',min=3 ,max=6), + ), + ), + b_cercle =BLOC( condition = "SECTION=='CERCLE'", + VARI_SECT =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"), + b_constant =BLOC( condition = "VARI_SECT=='CONSTANT'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=2, + fr="R est un paramètre obligatoire", + into=("R","EP") ), + VALE =SIMP(statut='o',typ='R',min=1 ,max=2), + ), + b_homothetique =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=4, + fr="R1, R2 sont des paramètres obligatoires", + into=("R1","R2","EP1","EP2") ), + VALE =SIMP(statut='o',typ='R',min=2 ,max=4), + ), + MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TUYAU_NSEC =SIMP(statut='f',typ='I',val_max=32,defaut=16), + TUYAU_NCOU =SIMP(statut='f',typ='I',val_max=10,defaut=3), + ), + ), + +#============================================================================ + BARRE =FACT(statut='f',max='**', + 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='**'), + SECTION =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ), + b_generale =BLOC( condition = "SECTION=='GENERALE'", + CARA =SIMP(statut='o',typ='TXM',into=("A",) ), + VALE =SIMP(statut='o',typ='R',min=1,max=1 ), + ), + b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", + CARA =SIMP(statut='o',typ='TXM',into=("H","EP", + "HZ","HY","EPY","EPZ"), + validators=NoRepeat(),min=1,max=4 ), + VALE =SIMP(statut='o',typ='R',min=1,max=4 ), + ), + b_cercle =BLOC( condition = "SECTION=='CERCLE'", + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ), + VALE =SIMP(statut='o',typ='R',min=1,max=2 ), + ), + FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + +#============================================================================ + COQUE =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA' ), + PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + EPAIS =SIMP(statut='o',typ='R' ), + ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), + VECTEUR =SIMP(statut='f',typ='R',min=3,max=3), + A_CIS =SIMP(statut='c',typ='R',defaut= 0.8333333E0), + COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ), + COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ), + EXCENTREMENT =SIMP(statut='f',typ='R' ), + INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + +#============================================================================ + CABLE =FACT(statut='f',max='**', + 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='**'), + N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ), + SECTION =SIMP(statut='f',typ='R' ), + FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + +#============================================================================ + DISCRET =FACT(statut='f',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, + 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", + "K_T_N", "K_T_L", "K_TR_N", "K_TR_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") ), + +# 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'), + 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=3 ,max=3 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=3 ,max=3 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=6 ,max=6 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=6 ,max=6 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=6 ,max=6 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=21,max=21), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=21,max=21), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=78,max=78), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=1 ,max=1 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=10,max=10), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=6 ,max=6 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=21,max=21), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=21,max=21), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=78,max=78), + VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),), + ), + +#============================================================================ + DISCRET_2D =FACT(statut='f',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, + 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", + "K_T_N", "K_T_L", "K_TR_N", "K_TR_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") ), + +# 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'), + 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=2 ,max=2 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=2 ,max=2 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=3 ,max=3 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=3 ,max=3 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=3 ,max=3 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=10,max=10), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=6 ,max=6), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=21,max=21), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=1 ,max=1 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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_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'), + 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=3 ,max=3 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=10,max=10), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=6 ,max=6 ), + VALE_F =SIMP(statut='f',typ=(para_sensi,),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'), + 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=21,max=21), + VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), + ), + +#============================================================================ + ORIENTATION =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + CARA =SIMP(statut='o',typ='TXM', + into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ), + VALE =SIMP(statut='o',typ='R',max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + +#============================================================================ + DEFI_ARC =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE', + 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'), + PRESENT_PRESENT('ORIE_ARC','RAYON'), + EXCLUS('COEF_FLEX','COEF_FLEX_XY'), + EXCLUS('COEF_FLEX','COEF_FLEX_XZ'), + EXCLUS('INDI_SIGM','INDI_SIGM_XY'), + EXCLUS('INDI_SIGM','INDI_SIGM_XZ'), + PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'), + PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ORIE_ARC =SIMP(statut='f',typ='R'), + CENTRE =SIMP(statut='f',typ='R',max='**'), + NOEUD_CENTRE =SIMP(statut='f',typ=no), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), + POIN_TANG =SIMP(statut='f',typ='R',max='**'), + NOEUD_POIN_TANG =SIMP(statut='f',typ=no), + GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno), + RAYON =SIMP(statut='f',typ='R'), + COEF_FLEX =SIMP(statut='f',typ='R'), + INDI_SIGM =SIMP(statut='f',typ='R'), + COEF_FLEX_XY =SIMP(statut='f',typ='R'), + INDI_SIGM_XY =SIMP(statut='f',typ='R'), + COEF_FLEX_XZ =SIMP(statut='f',typ='R'), + INDI_SIGM_XZ =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") ), + ), + +#============================================================================ + MASSIF =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + UN_PARMI('ANGL_REP','ANGL_AXE','ANGL_EULER'), + EXCLUS('ANGL_REP','ANGL_EULER'), + EXCLUS('ANGL_REP','ANGL_AXE'), + EXCLUS('ANGL_REP','ORIG_AXE'), + PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ANGL_REP =SIMP(statut='f',typ='R',max=3), + ANGL_EULER =SIMP(statut='f',typ='R',min=3,max=3), + ANGL_AXE =SIMP(statut='f',typ='R',max=2), + ORIG_AXE =SIMP(statut='f',typ='R',max=3), + ), + + +#============================================================================ + POUTRE_FLUI =FACT(statut='f',max='**', + 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='**'), + B_T =SIMP(statut='o',typ='R'), + B_N =SIMP(statut='o',typ='R'), + B_TN =SIMP(statut='o',typ='R',defaut= 0.E+0 ), + A_FLUI =SIMP(statut='o',typ='R'), + A_CELL =SIMP(statut='o',typ='R'), + COEF_ECHELLE =SIMP(statut='o',typ='R'), + ), + +#============================================================================ + GRILLE =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + EXCLUS('ANGL_REP','ORIG_AXE'), + ENSEMBLE('ORIG_AXE','AXE')), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SECTION =SIMP(statut='o',typ='R'), + ANGL_REP =SIMP(statut='f',typ='R',max=2), + EXCENTREMENT =SIMP(statut='f',typ='R'), + ORIG_AXE =SIMP(statut='f',typ='R',max='**'), + AXE =SIMP(statut='f',typ='R',max='**'), + COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ), + GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,), + ), + +#============================================================================ + RIGI_PARASOL =FACT(statut='f',max='**', + regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'), + UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), + EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),), + GROUP_MA =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**', + fr="Surface servant à répartir les caractéristiques des discrets"), + GROUP_MA_POI1 =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1, + fr="Mailles de type point correspondant aux discrets"), + GROUP_MA_SEG2 =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1, + fr="Mailles de type seg2 correspondant aux discrets"), + FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_GROUP =SIMP(statut='f',typ='R',max='**'), + REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), + CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2, + into=("K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L", + "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L") ), + VALE =SIMP(statut='o',typ='R',max='**'), + 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), + ), + +#============================================================================ + RIGI_MISS_3D =FACT(statut='f',max='**', + GROUP_MA_POI1 =SIMP(statut='o',typ=ma,max=1), + GROUP_MA_SEG2 =SIMP(statut='f',typ=ma,max=1), + FREQ_EXTR =SIMP(statut='o',typ='R',max=1), + UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), + ), + +#============================================================================ + GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster, + fr="Donner le nom de la SD regroupant tous les groupes de fibres (issue de DEFI_GEOM_FIBRE)"), + MULTIFIBRE =FACT(statut='f',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='**'), + + GROUP_FIBRE =SIMP(statut='o',typ='TXM',max='**'), + + ), + + + +) ; +#& MODIF COMMANDE DATE 10/06/2004 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. +# +# 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. +# ====================================================================== +AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, + fr="Affectation de charges et conditions aux limites acoustiques constantes", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + 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") ), + 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",) ), + 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='**'), + PRES =SIMP(statut='o',typ='C' ), + ), + VITE_FACE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + 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='**'), + VNOR =SIMP(statut='o',typ='C' ), + ), + IMPE_FACE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + 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='**'), + IMPE =SIMP(statut='o',typ='C' ), + ), + LIAISON_UNIF =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),), + 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='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + ), +) ; +#& MODIF COMMANDE DATE 12/12/2006 AUTEUR VIVAN 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. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_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 constantes pour un 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'),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + MECA_IMPO =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', + 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', + 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', + 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', + 'VO6','WI6','WO6','WO','WI1','WO1','GONF','DCX','DCY','DCZ', + 'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', + 'E3X','E3Y','E3Z','E4X','E4Y','E4Z'),), + 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='**'), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), + GRX =SIMP(statut='f',typ='R' ), + PRES =SIMP(statut='f',typ='R' ), + PHI =SIMP(statut='f',typ='R' ), + TEMP =SIMP(statut='f',typ='R' ), + PRE1 =SIMP(statut='f',typ='R' ), + PRE2 =SIMP(statut='f',typ='R' ), + UI2 =SIMP(statut='f',typ='R' ), + UI3 =SIMP(statut='f',typ='R' ), + UI4 =SIMP(statut='f',typ='R' ), + UI5 =SIMP(statut='f',typ='R' ), + UI6 =SIMP(statut='f',typ='R' ), + UO2 =SIMP(statut='f',typ='R' ), + UO3 =SIMP(statut='f',typ='R' ), + UO4 =SIMP(statut='f',typ='R' ), + UO5 =SIMP(statut='f',typ='R' ), + UO6 =SIMP(statut='f',typ='R' ), + VI2 =SIMP(statut='f',typ='R' ), + VI3 =SIMP(statut='f',typ='R' ), + VI4 =SIMP(statut='f',typ='R' ), + VI5 =SIMP(statut='f',typ='R' ), + VI6 =SIMP(statut='f',typ='R' ), + VO2 =SIMP(statut='f',typ='R' ), + VO3 =SIMP(statut='f',typ='R' ), + VO4 =SIMP(statut='f',typ='R' ), + VO5 =SIMP(statut='f',typ='R' ), + VO6 =SIMP(statut='f',typ='R' ), + WI2 =SIMP(statut='f',typ='R' ), + WI3 =SIMP(statut='f',typ='R' ), + WI4 =SIMP(statut='f',typ='R' ), + WI5 =SIMP(statut='f',typ='R' ), + WI6 =SIMP(statut='f',typ='R' ), + WO2 =SIMP(statut='f',typ='R' ), + WO3 =SIMP(statut='f',typ='R' ), + WO4 =SIMP(statut='f',typ='R' ), + WO5 =SIMP(statut='f',typ='R' ), + WO6 =SIMP(statut='f',typ='R' ), + WO =SIMP(statut='f',typ='R' ), + WI1 =SIMP(statut='f',typ='R' ), + WO1 =SIMP(statut='f',typ='R' ), + GONF =SIMP(statut='f',typ='R' ), + DCX =SIMP(statut='f',typ='R' ), + DCY =SIMP(statut='f',typ='R' ), + DCZ =SIMP(statut='f',typ='R' ), + H1X =SIMP(statut='f',typ='R' ), + H1Y =SIMP(statut='f',typ='R' ), + H1Z =SIMP(statut='f',typ='R' ), + E1X =SIMP(statut='f',typ='R' ), + E1Y =SIMP(statut='f',typ='R' ), + E1Z =SIMP(statut='f',typ='R' ), + E2X =SIMP(statut='f',typ='R' ), + E2Y =SIMP(statut='f',typ='R' ), + E2Z =SIMP(statut='f',typ='R' ), + E3X =SIMP(statut='f',typ='R' ), + E3Y =SIMP(statut='f',typ='R' ), + E3Z =SIMP(statut='f',typ='R' ), + E4X =SIMP(statut='f',typ='R' ), + E4Y =SIMP(statut='f',typ='R' ), + E4Z =SIMP(statut='f',typ='R' ), + ), + THER_IMPO =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),), + 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='**'), + TEMP_SUP =SIMP(statut='f',typ='R' ), + TEMP =SIMP(statut='f',typ='R' ), + TEMP_INF =SIMP(statut='f',typ='R' ), + ), + ACOU_IMPO =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), + 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='**'), + PRES =SIMP(statut='o',typ='C' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 05/09/2005 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. +#fon +# 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 affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args): + if MECA_IMPO != None : return char_cine_meca + if THER_IMPO != None : return char_cine_ther + raise AsException("type de concept resultat non prevu") + +AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod, + fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres" + +" pour un traitement sans dualisation", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + 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_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), + 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='**'), + DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + THER_IMPO =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),), + 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='**'), + TEMP_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 09/02/2007 AUTEUR TORKHANI M.TORKHANI +# 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 G8BHHXD X.DESROCHES +AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, + fr="Affectation de charges et conditions aux limites mécaniques constantes", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','CHAMNO_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE', + 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', + 'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE', + 'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE', + 'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT', + 'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP','LIAISON_SOLIDE', + 'LIAISON_ELEM','ONDE_FLUI','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE', + 'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU', + 'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE', + 'LIAISON_UNILATER'), + ), + VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d'un autre calcul", + typ=(evol_ther,cham_no_sdaster,carte_sdaster) ), + EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul", + typ=evol_char ), + + PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4), + 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),), + + 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'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', + 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', + 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', + 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', + 'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX', + 'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', + 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),), + 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='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), + GRX =SIMP(statut='f',typ='R' ), + PRES =SIMP(statut='f',typ='R' ), + PHI =SIMP(statut='f',typ='R' ), + TEMP =SIMP(statut='f',typ='R' ), + PRE1 =SIMP(statut='f',typ='R' ), + PRE2 =SIMP(statut='f',typ='R' ), + UI2 =SIMP(statut='f',typ='R' ), + UI3 =SIMP(statut='f',typ='R' ), + UI4 =SIMP(statut='f',typ='R' ), + UI5 =SIMP(statut='f',typ='R' ), + UI6 =SIMP(statut='f',typ='R' ), + UO2 =SIMP(statut='f',typ='R' ), + UO3 =SIMP(statut='f',typ='R' ), + UO4 =SIMP(statut='f',typ='R' ), + UO5 =SIMP(statut='f',typ='R' ), + UO6 =SIMP(statut='f',typ='R' ), + VI2 =SIMP(statut='f',typ='R' ), + VI3 =SIMP(statut='f',typ='R' ), + VI4 =SIMP(statut='f',typ='R' ), + VI5 =SIMP(statut='f',typ='R' ), + VI6 =SIMP(statut='f',typ='R' ), + VO2 =SIMP(statut='f',typ='R' ), + VO3 =SIMP(statut='f',typ='R' ), + VO4 =SIMP(statut='f',typ='R' ), + VO5 =SIMP(statut='f',typ='R' ), + VO6 =SIMP(statut='f',typ='R' ), + WI2 =SIMP(statut='f',typ='R' ), + WI3 =SIMP(statut='f',typ='R' ), + WI4 =SIMP(statut='f',typ='R' ), + WI5 =SIMP(statut='f',typ='R' ), + WI6 =SIMP(statut='f',typ='R' ), + WO2 =SIMP(statut='f',typ='R' ), + WO3 =SIMP(statut='f',typ='R' ), + WO4 =SIMP(statut='f',typ='R' ), + WO5 =SIMP(statut='f',typ='R' ), + WO6 =SIMP(statut='f',typ='R' ), + WO =SIMP(statut='f',typ='R' ), + WI1 =SIMP(statut='f',typ='R' ), + WO1 =SIMP(statut='f',typ='R' ), + GONF =SIMP(statut='f',typ='R' ), + DCX =SIMP(statut='f',typ='R' ), + DCY =SIMP(statut='f',typ='R' ), + DCZ =SIMP(statut='f',typ='R' ), + H1X =SIMP(statut='f',typ='R' ), + H1Y =SIMP(statut='f',typ='R' ), + H1Z =SIMP(statut='f',typ='R' ), + E1X =SIMP(statut='f',typ='R' ), + E1Y =SIMP(statut='f',typ='R' ), + E1Z =SIMP(statut='f',typ='R' ), + E2X =SIMP(statut='f',typ='R' ), + E2Y =SIMP(statut='f',typ='R' ), + E2Z =SIMP(statut='f',typ='R' ), + E3X =SIMP(statut='f',typ='R' ), + E3Y =SIMP(statut='f',typ='R' ), + E3Z =SIMP(statut='f',typ='R' ), + E4X =SIMP(statut='f',typ='R' ), + E4Y =SIMP(statut='f',typ='R' ), + E4Z =SIMP(statut='f',typ='R' ), + LAGS_C =SIMP(statut='f',typ='R' ), + ), + + + + DDL_POUTRE =FACT(statut='f',max='**', + fr="Bloque des DDLs dans un repère local d'une poutre", + regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'), + UN_PARMI('VECT_Y','ANGL_VRIL'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), +# définition du repère local + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + ANGL_VRIL =SIMP(statut='f',typ='R',), +# restriction sur les mailles servant à définir le repère local + GROUP_MA =SIMP(statut='f',typ=grma,), + MAILLE =SIMP(statut='f',typ=ma,), + ), + + + + FACE_IMPO =FACT(statut='f',max='**', + fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)", + regles=(UN_PARMI('GROUP_MA','MAILLE',), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', + 'TEMP','PRE1','PRE2','DNOR','DTAN'), + EXCLUS('DNOR','DX'), + EXCLUS('DNOR','DY'), + EXCLUS('DNOR','DZ'), + EXCLUS('DNOR','DRX'), + EXCLUS('DNOR','DRY'), + EXCLUS('DNOR','DRZ'), + EXCLUS('DTAN','DX'), + EXCLUS('DTAN','DY'), + EXCLUS('DTAN','DZ'), + EXCLUS('DTAN','DRX'), + EXCLUS('DTAN','DRY'), + EXCLUS('DTAN','DRZ'),), +# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), + DNOR =SIMP(statut='f',typ='R' ), + DTAN =SIMP(statut='f',typ='R' ), + GRX =SIMP(statut='f',typ='R' ), + PRES =SIMP(statut='f',typ='R' ), + PHI =SIMP(statut='f',typ='R' ), + TEMP =SIMP(statut='f',typ='R' ), + PRE1 =SIMP(statut='f',typ='R' ), + PRE2 =SIMP(statut='f',typ='R' ), + ), + + CHAMNO_IMPO =FACT(statut='f',max='**', + fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster", +# type de cham_no_sdaster CO() + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() + COEF_MULT =SIMP(statut='o',typ='R' ), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + + LIAISON_DDL =FACT(statut='f',max='**', + fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds", + regles=(UN_PARMI('GROUP_NO','NOEUD'),), + GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT =SIMP(statut='o',typ='R' ,max='**'), + COEF_IMPO =SIMP(statut='o',typ='R' ), + ), + + LIAISON_OBLIQUE =FACT(statut='f',max='**', + fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante" + +" dans un repère oblique quelconque", + regles=(UN_PARMI('GROUP_NO','NOEUD'), + UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + ANGL_NAUT =SIMP(statut='o',typ='R',max=3), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + DRX =SIMP(statut='f',typ='R' ), + DRY =SIMP(statut='f',typ='R' ), + DRZ =SIMP(statut='f',typ='R' ), + ), + + LIAISON_GROUP =FACT(statut='f',max='**', + fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds", + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), + EXCLUS('GROUP_MA_1','GROUP_NO_2'), + EXCLUS('GROUP_MA_1','NOEUD_2'), + EXCLUS('GROUP_NO_1','GROUP_MA_2'), + EXCLUS('GROUP_NO_1','MAILLE_2'), + EXCLUS('MAILLE_1','GROUP_NO_2'), + EXCLUS('MAILLE_1','NOEUD_2'), + EXCLUS('NOEUD_1','GROUP_MA_2'), + EXCLUS('NOEUD_1','MAILLE_2'), + EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), + + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + DDL_1 =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT_1 =SIMP(statut='o',typ='R' ,max='**'), + DDL_2 =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT_2 =SIMP(statut='o',typ='R' ,max='**'), + COEF_IMPO =SIMP(statut='o',typ='R' ), + SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRAN =SIMP(statut='f',typ='R',max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + CENTRE =SIMP(statut='f',typ='R',max=3), + ), + + LIAISON_MAIL =FACT(statut='f',max='**', + fr="Définit des relations linéaires permettant de recoller deux bords d'une structure", + regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), + AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), + PRESENT_PRESENT('DDL_MAIT','DDL_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='**'), + GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TRAN =SIMP(statut='f',typ='R',max=3 ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), + CENTRE =SIMP(statut='f',typ='R',max=3 ), + DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), + DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), + ELIM_MULT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + + LIAISON_CYCL =FACT(statut='f',max='**', + fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques", + regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'), + AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), + PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'), + ), + GROUP_MA_MAIT1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_MAIT2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT2 =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='**'), + GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TRAN =SIMP(statut='f',typ='R',max=3 ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), + CENTRE =SIMP(statut='f',typ='R',max=3 ), + COEF_MAIT1 =SIMP(statut='f',typ='R',max=1 ), + COEF_MAIT2 =SIMP(statut='f',typ='R',max=1 ), + COEF_ESCL =SIMP(statut='f',typ='R',max=1 ), + DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), + DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), + ), + + + LIAISON_SOLIDE =FACT(statut='f',fr="Modélise une partie indéformable d'une structure",max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + 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='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + LIAISON_ELEM =FACT(statut='f',max='**', + fr="Modélise le raccord d'une partie massive 3D avec une poutre ou avec un tuyau, le raccord d'une coque" + +" avec une poutre ou avec un tuyau", + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), + UN_PARMI('GROUP_NO_2','NOEUD_2'),), + OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), + AXE_POUTRE =SIMP(statut='f',typ='R',max=3), + ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), + ), + + LIAISON_UNIF =FACT(statut='f',max='**', + fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + 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='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + ), + + LIAISON_CHAMNO =FACT(statut='f',max='**', + fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO", +# type de cham_no_sdaster CO() + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() + COEF_IMPO =SIMP(statut='o',typ='R' ), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + LIAISON_XFEM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), + + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster ), +# +# LIAISON UNILATERALE +# + LIAISON_UNILATER=FACT(statut='f',max='**', + fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)", + regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), + + 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='**'), + + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + + COEF_IMPO =SIMP(statut='f',typ='R'), + COEF_MULT =SIMP(statut='f',typ='R',max='**'), + + METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", + into=("CONTRAINTE","GCPC",) ), + + + ), +# +# CONTACT +# + CONTACT =FACT(statut='f',max='**', + fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement", + regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), + APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", + into=("RIGIDE","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), + RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE", + into=("NOEUD_BOUCLE","NOEUD_VOISIN")), + LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON", + into=("OUI","NON")), + DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), + DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), + NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT", + into=("MAIT","MAIT_ESCL")), + METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", + into=("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ), + PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE", + into=("LINEAIRE","QUADRATIQUE") ), + 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_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'", + CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), + ), + + 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.), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + ), + + 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.), + ), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + 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_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", + fr="Paramètre de la réactualisation géométrique", + ), + 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'), + + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Paramètre de la réactualisation géométrique auto", + ), + 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")), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + + ), + 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",) ), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + 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_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", + ), + 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'), + + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Paramètre de la réactualisation géométrique auto", + ), + + + 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")), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + + regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), + + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + 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",) ), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + 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_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", + ), + 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'), + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Paramètre de la réactualisation géométrique auto", + ), + + 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")), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + + 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'),), + 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.), + ), + FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), + COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + FOND_FISSURE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + + INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", + "NCOTES","NCOTES1","NCOTES2")), + MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), + FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), + DIRE_APPA =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)), + ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), + ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), + DIST_MAIT =SIMP(statut='f',typ='R',defaut=0.), + DIST_ESCL =SIMP(statut='f',typ='R',defaut=0.), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + EXCLUSION_PIV_NUL=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='**'),), + 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='**'),), + + 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),), + 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 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_Z =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"), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), + 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_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", + fr="Paramètre de la réactualisation géométrique", + STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON", + into=("OUI","NON")), + ), + 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'), + + STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", + into=("OUI","NON")), + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Paramètre de la réactualisation géométrique auto", + NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), + ), + PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS", + into=("DIRICHLET","SANS"),fr="Choix d'un préconditionneur (accélère la convergence)"), + COEF_RESI =SIMP(statut='f',typ='R',defaut = 1.,val_min=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")), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + ), + ), + + 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' ),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + ), + + FORCE_FACE =FACT(statut='f',max='**', + fr="Applique des forces surfaciques sur une face d'élément volumique", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + ), + + FORCE_ARETE =FACT(statut='f',max='**', + fr="Applique des forces linéiques à une arete d'élément volumique ou de coque", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE',), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + ), + + FORCE_CONTOUR =FACT(statut='f',max='**', + fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + ), + + FORCE_INTERNE =FACT(statut='f',max='**', + fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ' ),), + 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='**'), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + ), + + SIGM_INTERNE =FACT(statut='f',max='**', + fr="Applique des contraintes volumiques (2D ou 3D) à un domaine volumique", + #INST =SIMP(statut='f',typ='R' ), + SIGM =SIMP(statut='o',typ=(cham_elem,carte_sdaster)), + ), + + PRES_REP =FACT(statut='f',max='**', + fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('PRES','CISA_2D' ),), + 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='**'), + PRES =SIMP(statut='f',typ='R' ), + CISA_2D =SIMP(statut='f',typ='R' ), + ), + + EFFE_FOND =FACT(statut='f',max='**', + fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), + GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='o',typ='R' ), + ), + + EPSI_INIT =FACT(statut='f',max='**', + fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX', + 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),), + 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='**'), + EPXX =SIMP(statut='f',typ='R' ), + EPYY =SIMP(statut='f',typ='R' ), + EPZZ =SIMP(statut='f',typ='R' ), + EPXY =SIMP(statut='f',typ='R' ), + EPXZ =SIMP(statut='f',typ='R' ), + EPYZ =SIMP(statut='f',typ='R' ), + EPX =SIMP(statut='f',typ='R' ), + KY =SIMP(statut='f',typ='R' ), + KZ =SIMP(statut='f',typ='R' ), + EXX =SIMP(statut='f',typ='R' ), + EYY =SIMP(statut='f',typ='R' ), + EXY =SIMP(statut='f',typ='R' ), + KXX =SIMP(statut='f',typ='R' ), + KYY =SIMP(statut='f',typ='R' ), + KXY =SIMP(statut='f',typ='R' ), + ), + + ARLEQUIN =FACT(statut='f',min=1,max='**', + fr="Définit les paramètres de la méthode Arlequin", + GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), + GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'), + GROUP_MA_COLL =SIMP(statut='f',typ=grma,max='**'), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + COND_LIM =SIMP(statut='f',typ=char_meca ), + COLLAGE =SIMP(statut='f',typ='TXM',defaut="GROSSIER",into=("GROSSIER","FIN","GROUP_MA_1","GROUP_MA_2"),), + regles =(UN_PARMI('POIDS_1','POIDS_2','POIDS_GROSSIER','POIDS_FIN',),), + POIDS_1 =SIMP(statut='f',typ='R'), + POIDS_2 =SIMP(statut='f',typ='R'), + POIDS_GROSSIER =SIMP(statut='f',typ='R'), + POIDS_FIN =SIMP(statut='f',typ='R'),), + + FORCE_POUTRE =FACT(statut='f',max='**', + fr="Applique des forces linéiques sur des éléments de type poutre", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), + PRESENT_ABSENT('FX','N','VY','VZ'), + PRESENT_ABSENT('FY','N','VY','VZ'), + PRESENT_ABSENT('FZ','N','VY','VZ'), + PRESENT_ABSENT('N','FX','FY','FZ'), + PRESENT_ABSENT('VY','FX','FY','FZ'), + PRESENT_ABSENT('VZ','FX','FY','FZ'),), + 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='**'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ), +# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + + N =SIMP(statut='f',typ='R' ), + VY =SIMP(statut='f',typ='R' ), + VZ =SIMP(statut='f',typ='R' ), + + ), + + FORCE_TUYAU =FACT(statut='f',max='**', + fr="Applique une pression sur des éléments TUYAU", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + 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='**'), + PRES =SIMP(statut='f',typ='R' ), + ), + + FORCE_COQUE =FACT(statut='f',max='**', + fr="Applique des forces surfaciques sur des éléments de types coques", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'), + PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'), + PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'), + PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'), + PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'), + PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), +# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL + 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='**'), + + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + + F1 =SIMP(statut='f',typ='R' ), + F2 =SIMP(statut='f',typ='R' ), + F3 =SIMP(statut='f',typ='R' ), + MF1 =SIMP(statut='f',typ='R' ), + MF2 =SIMP(statut='f',typ='R' ), + + PRES =SIMP(statut='f',typ='R' ), + PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ), + ), + + + GRAPPE_FLUIDE =FACT(statut='f',max='**', + fr="Définit les données de calcul des forces fluides lors des études de chute de grappe", + regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'), + EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'), + PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'), + PRESENT_PRESENT('CARA_GRAPPE','VALE_GRAPPE'), + PRESENT_PRESENT('CARA_COMMANDE','VALE_COMMANDE'), + PRESENT_PRESENT('CARA_MANCHETTE','VALE_MANCHETTE'), + PRESENT_PRESENT('CARA_GUIDE','VALE_GUIDE'), + PRESENT_PRESENT('CARA_ASSEMBLAGE','VALE_ASSEMBLAGE'), + PRESENT_PRESENT('CARA_PDC','VALE_PDC'),), + GROUP_MA =SIMP(statut='f',typ=grma,max=1), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), + NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), + NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), + Z0 =SIMP(statut='f',typ='R' ), + CARA_HYDR =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données hydrauliques", + into=("Q","ROC","ROD","ROP","ROM","ROML","ROG","NUC","NUM", + "NUML","NUG","P2","P3","P4","CGG","G") ), + VALE_HYDR =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données hydrauliques",), + CARA_GRAPPE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques de la grappe", + into=("M","DTIGE","DTMOY","ROTIGE","LTIGE","LLT","LCT", + "VARAI","RORAI","DCRAY","ROCRAY","LCRAY","LCHUT", + "CFCM","CFCI","CFCG","HRUGC","HRUGTC","NCA") ), + VALE_GRAPPE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques de la grappe",), + CARA_COMMANDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques du mécanisme de commande", + into=("LI","LML","LG","LIG","DIML","DEML","DCSP", + "DG","HRUGML","HRUGCSP","HRUGG") ), + VALE_COMMANDE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques du mécanisme de commande",), + CARA_MANCHETTE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques de la manchette et son adaptateur", + into=("LM","LA","LIM","DIMT","DEMT","DCMT","VMT", + "ROMT","DA","HRUGM","HRUGA") ), + VALE_MANCHETTE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques de la manchette et son adaptateur",), + CARA_GUIDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques des tubes guides", + into=("NRET","L0","L1","L2","L3","L4","DTG","DR", + "DOR","D0","D00","HRUGTG") ), + VALE_GUIDE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques des tubes guides",), + CARA_ASSEMBLAGE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des données géométriques des assemblages", + into=("SASS","DCC","DTI","NGM","NGMDP","KM","KS","KI", + "KES","KEI","KF") ), + VALE_ASSEMBLAGE =SIMP(statut='f',typ='R',max='**', + fr="valeurs des données géométriques des assemblages",), + CARA_PDC =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + fr="définition des coefficients de perte de charge singulière", + into=("CD0","CD1","CD2","CDELARG","CDRET","CDM","CDA","CDML", + "CDI","CDG") ), + VALE_PDC =SIMP(statut='f',typ='R',max='**', + fr="valeurs des coefficients de perte de charge singulière",), + APPL_FORC_ARCHI =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , + fr="application de la force d'archimède", + into=("REPARTIE","CDG") ), + APPL_FORC_FPLAQ =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , + fr="application de la force de plaquage dans le guidage continu", + into=("REPARTIE","CDG","ZONE","MILIEU","DISTRI") ), + APPL_FORC_FMEC =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , + fr="application de la force dans le mécanisme de levée", + into=("REPARTIE","CDG","ZONE","PTREP") ), + APPL_FORC_FTG =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , + fr="application de la force tube_guide", + into=("REPARTIE","CDG","ZONE","PTREP") ), + DIRE_FORC_FPLAQ =SIMP(statut='f',typ='R',min=3,max=3, + fr="direction d'application de la force de plaquage",), + b_CDG =BLOC(condition = "(APPL_FORC_ARCHI == 'CDG') or (APPL_FORC_FPLAQ == 'CDG') or \ + (APPL_FORC_FMEC == 'CDG') or (APPL_FORC_FTG == 'CDG')", + MASS_INER =SIMP(statut='o',typ=table_sdaster ), + ), + UNITE_IMPR_FORCE =SIMP(statut='f',typ='I', + fr="unité d'impression des forces",), + UNITE_IMPR_NOEUD =SIMP(statut='f',typ='I', + fr="unité d'impression des noeuds par zone",), + ), + + LIAISON_COQUE =FACT(statut='f',max='**', + fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + RELA_CINE_BP =FACT(statut='f',max='**', + fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier" + +" la prise en compte des contraintes initiales dans les cables", + CABLE_BP =SIMP(statut='o',typ=cabl_precont ), + SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + + FORCE_ELEC =FACT(statut='f',max='**', + fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" + +" secondaire droit", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + 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='**'), + + POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ), + b_fxyz =BLOC ( condition = "POSITION == None", + FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + b_para =BLOC ( condition = "POSITION == 'PARA'", + regles=(UN_PARMI('TRANS','DIST'),), + TRANS =SIMP(statut='f',typ='R',max=3), + DIST =SIMP(statut='f',typ='R' ), + b_point2 =BLOC ( condition = "DIST != None", + POINT2 =SIMP(statut='o',typ='R',max=3), + ), + ), + b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')", + POINT1 =SIMP(statut='o',typ='R',max=3), + POINT2 =SIMP(statut='o',typ='R',max=3), + ), + ), + + + + + INTE_ELEC =FACT(statut='f',max='**', + fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" + +" secondaire non nécessairement droit", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'), + EXCLUS('TRANS','SYME'),), + 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_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + TRANS =SIMP(statut='f',typ='R' ,max='**'), + SYME =SIMP(statut='f',typ='R' ,max='**'), + ), + + + IMPE_FACE =FACT(statut='f',fr="Applique une impédance acoustique à une face",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='**'), + IMPE =SIMP(statut='o',typ='R' ), + ), + + VITE_FACE =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",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='**'), + VNOR =SIMP(statut='o',typ='R' ), + ), + + + + ONDE_FLUI =FACT(statut='f',max='**', + fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face", + 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='**'), + PRES =SIMP(statut='o',typ='R' ), + ), + + FLUX_THM_REP =FACT(statut='f',max='**', + fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide" + +" (flux hydraulique)", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), + 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='**'), + FLUN =SIMP(statut='f',typ='R' ), + FLUN_HYDR1 =SIMP(statut='f',typ='R' ), + FLUN_HYDR2 =SIMP(statut='f',typ='R' ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; + + +#& MODIF COMMANDE DATE 24/08/2005 AUTEUR MABBAS M.ABBAS +# 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 G8BHHXD X.DESROCHES +AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, + fr="Affectation de charges et conditions aux limites mécaniques complexes", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + 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") ), + 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',), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),), + 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='**'), + 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' ), + DRX =SIMP(statut='f',typ='C' ), + DRY =SIMP(statut='f',typ='C' ), + DRZ =SIMP(statut='f',typ='C' ), + GRX =SIMP(statut='f',typ='C' ), + PRES =SIMP(statut='f',typ='C' ), + PHI =SIMP(statut='f',typ='C' ), + ), + FORCE_POUTRE =FACT(statut='f',max='**', + fr="Applique des forces linéiques sur des éléments de type poutre", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',), + PRESENT_ABSENT('FX','N','VY','VZ',), + PRESENT_ABSENT('FY','N','VY','VZ',), + PRESENT_ABSENT('FZ','N','VY','VZ',), + PRESENT_ABSENT('N','FX','FY','FZ',), + PRESENT_ABSENT('VY', 'FX','FY','FZ',), + PRESENT_ABSENT('VZ','FX','FY','FZ', ),), + 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='**'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), + FX =SIMP(statut='f',typ='C' ), + FY =SIMP(statut='f',typ='C' ), + FZ =SIMP(statut='f',typ='C' ), + N =SIMP(statut='f',typ='C' ), + VY =SIMP(statut='f',typ='C' ), + VZ =SIMP(statut='f',typ='C' ), + ), + LIAISON_DDL =FACT(statut='f',max='**', + fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds", + regles=(UN_PARMI('GROUP_NO','NOEUD', ),), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT =SIMP(statut='o',typ='R' ,max='**'), + COEF_IMPO =SIMP(statut='o',typ='C' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 14/11/2006 AUTEUR TARDIEU N.TARDIEU +# 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 G8BHHXD X.DESROCHES +AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, + fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', + 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', + 'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE', + 'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF', + 'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU', + +'CONTACT','EFFE_FOND','FLUX_THM_REP','LIAISON_UNILATER'),), + 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), + + DDL_IMPO =FACT(statut='f',max='**', + fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies" + +" par l'intermédiaire d'un concept fonction ", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', + 'TEMP','PRE1','PRE2','LIAISON','DCX','DCY','DCZ','H1X', + 'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', + 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),), + 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='**'), + LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), + DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DCY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DCZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + H1X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + H1Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + H1Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E1X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E1Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E1Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E2X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E2Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E2Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E3X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E3Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E3Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E4X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E4Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + E4Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + LAGS_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FACE_IMPO =FACT(statut='f',max='**', + fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)" + +" fournies par l'intérmédiaire d'un concept fonction", + regles=(UN_PARMI('GROUP_MA','MAILLE'), + AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'), + EXCLUS('DNOR','DX'), + EXCLUS('DNOR','DY'), + EXCLUS('DNOR','DZ'), + EXCLUS('DNOR','DRX'), + EXCLUS('DNOR','DRY'), + EXCLUS('DNOR','DRZ'), + EXCLUS('DTAN','DX'), + EXCLUS('DTAN','DY'), + EXCLUS('DTAN','DZ'), + EXCLUS('DTAN','DRX'), + EXCLUS('DTAN','DRY'), + EXCLUS('DTAN','DRZ'),), +# rajout d un mot cle REPERE : / GLOBAL / LOCAL + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DNOR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DTAN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + LIAISON_DDL =FACT(statut='f',max='**', + fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par" + +" l'intermediaire d'un concept de type fonction", + regles=(UN_PARMI('GROUP_NO','NOEUD'),UN_PARMI('COEF_MULT','COEF_MULT_FONC'),), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT =SIMP(statut='f',typ='R',max='**'), + COEF_MULT_FONC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), + COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + LIAISON_OBLIQUE =FACT(statut='f',max='**', + fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique" + +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction", + regles=(UN_PARMI('GROUP_NO','NOEUD'), + UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + ANGL_NAUT =SIMP(statut='o',typ='R',max=3), + DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + LIAISON_GROUP =FACT(statut='f',max='**', + fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par" + +" l'intermédiaire de concept fonction", + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), + EXCLUS('GROUP_MA_1','GROUP_NO_2'), + EXCLUS('GROUP_MA_1','NOEUD_2'), + EXCLUS('GROUP_NO_1','GROUP_MA_2'), + EXCLUS('GROUP_NO_1','MAILLE_2'), + EXCLUS('MAILLE_1','GROUP_NO_2'), + EXCLUS('MAILLE_1','NOEUD_2'), + EXCLUS('NOEUD_1','GROUP_MA_2'), + EXCLUS('NOEUD_1','MAILLE_2'), + EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DDL_1 =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), + DDL_2 =SIMP(statut='o',typ='TXM',max='**'), + COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRAN =SIMP(statut='f',typ='R',max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + CENTRE =SIMP(statut='f',typ='R',max=3), + ), +# +# LIAISON UNILATERALE +# + LIAISON_UNILATER=FACT(statut='f',max='**', + fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)", + regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), + + 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='**'), + + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + + NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), + + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + + COEF_IMPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), + + METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", + into=("CONTRAINTE","GCPC",) ), + + + ), + CONTACT =FACT(statut='f', + fr="Définit les zones soumises à des conditions de contact unilatéral avec ou \sans frottement, certaines valeurs" + +" sont données par l'intermédiaire de concept fonction",max='**', + regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), + APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", + into=("NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), + RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), + LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), + DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), + NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")), + METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", + into=("CONTRAINTE","VERIF","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ), + PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ), + 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_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'", + CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), + ), + + 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.), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + ), + + 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.), + ), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + 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_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", + fr="Parametre de la reactualisation geometrique", + + ), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", + fr="Parametre de la reactualisation geometrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'), + + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Parametre de la reactualisation geometrique auto", + ), + 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")), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + 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",) ), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + 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_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Parametre de la reactualisation geometrique", + ), + b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Parametre de la reactualisation geometrique", + NB_REAC_GEOM =SIMP(statut='o',typ='I'), + + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Parametre de la reactualisation geometrique auto", + ), + + 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")), + DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + 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",) ), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + 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_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", + ), + 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'), + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Paramètre de la réactualisation géométrique auto", + ), + 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")), + DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + 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'),), + 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.), + ), + FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), + COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", + "NCOTES","NCOTES1","NCOTES2")), + COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), + FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")), + MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), + DIRE_APPA =SIMP(statut='f',typ='R',max=3), + ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), + ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), + DIST_MAIT =SIMP(statut='f',typ='R'), + DIST_ESCL =SIMP(statut='f',typ='R'), + CONTACT_INIT =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),), + 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='**'), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), + VECT_Z =SIMP(statut='f',typ='R',min=3,max=3), + 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='I',defaut=0),),), + + 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"), + TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), + TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), + TOLE_REAC_GEOM =SIMP(statut='f',typ='R' ,defaut=0.05), + 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_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", + fr="Paramètre de la réactualisation géométrique", + + STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON", + into=("OUI","NON")), + ), + 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'), + + STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME", + into=("OUI","NON")), + ), + b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", + fr="Paramètre de la réactualisation géométrique auto", + NB_REAC_MAXI =SIMP(statut='o',typ='I',defaut = 10), + ), + 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")), + VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), + VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), + DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + ), + + LIAISON_UNIF =FACT(statut='f',max='**', + fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + 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='**'), + DDL =SIMP(statut='o',typ='TXM',max='**'), + ), + + LIAISON_SOLIDE =FACT(statut='f',max='**', + fr="Modélise une partie indéformable d'une structure", + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + 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='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), + ), + + + + FORCE_NODALE =FACT(statut='f',max='**', + fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire" + +" d'un concept fonction", + regles=(UN_PARMI('GROUP_NO','NOEUD'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ANGL_NAUT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ), + ), + + FORCE_FACE =FACT(statut='f',max='**', + fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies" + +" par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + FORCE_ARETE =FACT(statut='f',max='**', + fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont" + +" fournies par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + FORCE_CONTOUR =FACT(statut='f',max='**', + fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes" + +" sont fournies par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FORCE_INTERNE =FACT(statut='f',max='**', + fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies" + +" par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ'),), + 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='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + PRES_REP =FACT(statut='f',max='**', + fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les" + +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('PRES','CISA_2D'),), + 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='**'), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + CISA_2D =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + EFFE_FOND =FACT(statut='f',max='**', + fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise" + +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), + GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + PRES =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + EPSI_INIT =FACT(statut='f',max='**', + fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes" + +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),), + 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='**'), + EPXX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPYY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPZZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPXZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FORCE_POUTRE =FACT(statut='f',max='**', + fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par" + +" l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), + PRESENT_ABSENT('FX','N','VY','VZ'), + PRESENT_ABSENT('FY','N','VY','VZ'), + PRESENT_ABSENT('FZ','N','VY','VZ'), + PRESENT_ABSENT('N','FX','FY','FZ'), + PRESENT_ABSENT('VY','FX','FY','FZ'), + PRESENT_ABSENT('VZ','FX','FY','FZ'),), +# rajout d un mot cle REPERE : / GLOBAL / LOCAL + 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='**'), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FORCE_TUYAU =FACT(statut='f',max='**', + fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + 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='**'), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FORCE_COQUE =FACT(statut='f',max='**', + fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par" + +" l'intermédiaires d'un concept fonction", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), + PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'), + PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), +# rajout d un mot cle REPERE : / GLOBAL / LOCAL + 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='**'), + FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MF1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MF2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL", + into=("SUP","INF","MOY","MAIL") ), + ), + + LIAISON_COQUE =FACT(statut='f',max='**', + fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), + ), + + + VITE_FACE =FACT(statut='f',max='**', + fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par" + +" l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + PRESENT_ABSENT('GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + VNOR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + IMPE_FACE =FACT(statut='f',max='**', + fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire" + +" d'un concept fonction", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), + PRESENT_ABSENT('GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + IMPE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + ONDE_PLANE =FACT(statut='f',max='**', + fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire" + +" d'un concept fonction", + DIRECTION =SIMP(statut='o',typ='R',max='**'), + TYPE_ONDE =SIMP(statut='o',typ='TXM' ), + FONC_SIGNAL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DIST_ORIG =SIMP(statut='o',typ='R' ), + ), + + + + FLUX_THM_REP =FACT(statut='f',max='**', + fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)" + +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), + 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='**'), + FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUN_HYDR1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUN_HYDR2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; + + +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther, + fr="Affectation de charges et conditions limites thermiques spécifique à CARA_TORSION", + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + regles=(AU_MOINS_UN('CARA_TORSION', ),), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI", + into=("OUI","NON") ), + CARA_TORSION =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 16/05/2006 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. +# +# 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. +# ====================================================================== +AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther + ,fr="Affectation de charges et conditions aux limites thermiques constantes", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE', + 'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP', + 'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + + 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'),), + 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='**'), + TEMP =SIMP(statut='f',typ='R'), + TEMP_INF =SIMP(statut='f',typ='R'), + TEMP_SUP =SIMP(statut='f',typ='R'), ), + + FLUX_REP =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + PRESENT_PRESENT('CARA_TORSION','GROUP_MA'), + AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ), + 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='**'), + FLUN =SIMP(statut='f',typ='R'), + FLUN_INF =SIMP(statut='f',typ='R'), + FLUN_SUP =SIMP(statut='f',typ='R'), + CARA_TORSION =SIMP(statut='f',typ=table_sdaster), + ), + + + RAYONNEMENT =FACT(statut='f',max='**', + fr="Attention, exprimer les températures en Celsius si rayonnement", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + 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='**'), + SIGMA =SIMP(statut='o',typ='R'), + EPSILON =SIMP(statut='o',typ='R'), + TEMP_EXT =SIMP(statut='o',typ='R'), + ), + + ECHANGE =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), + ENSEMBLE('COEF_H','TEMP_EXT',), + ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), + ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), + 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='**'), + COEF_H =SIMP(statut='f',typ='R'), + TEMP_EXT =SIMP(statut='f',typ='R'), + COEF_H_INF =SIMP(statut='f',typ='R'), + TEMP_EXT_INF =SIMP(statut='f',typ='R'), + COEF_H_SUP =SIMP(statut='f',typ='R'), + TEMP_EXT_SUP =SIMP(statut='f',typ='R'), + ), + + SOURCE =FACT(statut='f',max='**', + regles=(UN_PARMI('SOUR','SOUR_CALCULEE',), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('SOUR_CALCULEE','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='**'), + SOUR =SIMP(statut='f',typ='R'), + SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem) ), + ), + + GRAD_TEMP_INIT =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), + 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='**'), + FLUX_X =SIMP(statut='f',typ='R' ), + FLUX_Y =SIMP(statut='f',typ='R' ), + FLUX_Z =SIMP(statut='f',typ='R' ), + ), + + LIAISON_DDL =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD', ),), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + DDL =SIMP(statut='f',typ='TXM',max='**', + into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ='R' ), + ), + + LIAISON_GROUP =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), + EXCLUS('GROUP_MA_1','GROUP_NO_2'), + EXCLUS('GROUP_MA_1','NOEUD_2'), + EXCLUS('GROUP_NO_1','GROUP_MA_2'), + EXCLUS('GROUP_NO_1','MAILLE_2'), + EXCLUS('MAILLE_1','GROUP_NO_2'), + EXCLUS('MAILLE_1','NOEUD_2'), + EXCLUS('NOEUD_1','GROUP_MA_2'), + EXCLUS('NOEUD_1','MAILLE_2'), + EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), + DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP",) ), + COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ='R' ), + SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRAN =SIMP(statut='f',typ='R',max='**'), + ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), + CENTRE =SIMP(statut='f',typ='R',max='**'), + ), + + LIAISON_MAIL =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), + AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL', + 'NOEUD_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='**'), + GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TRAN =SIMP(statut='f',typ='R',max='**' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ), + CENTRE =SIMP(statut='f',typ='R',max='**' ), + ELIM_MULT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + + ECHANGE_PAROI =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + COEF_H =SIMP(statut='f',typ='R'), + TRAN =SIMP(statut='f',typ='R',min=2,max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + CENTRE =SIMP(statut='f',typ='R',min=2,max=3), + ), + + LIAISON_UNIF =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + 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='**'), + DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + ), + + LIAISON_CHAMNO =FACT(statut='f',max='**', + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno" + COEF_IMPO =SIMP(statut='o',typ='R' ), + NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), + ), + + CONVECTION =FACT(statut='f',max='**', + VITESSE =SIMP(statut='o',typ=(cham_no_sdaster) ), + ), + + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 03/04/2007 AUTEUR DURAND C.DURAND +# 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. +# ====================================================================== +AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther, + fr="Affectation de charges et conditions aux limites thermiques fonction d'un (ou plusieurs)" + +" paramètres (temps, ...)", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE', + 'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF', + 'GRAD_TEMP_INIT','RAYONNEMENT'),), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + + 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'),), + 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'), + AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),), + 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='**'), + FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUN_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUN_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUX_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUX_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FLUX_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + FLUX_NL =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + 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='**'), + 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", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + 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='**'), + SIGMA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + 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='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), + ENSEMBLE('COEF_H','TEMP_EXT'), + ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), + ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), + 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='**'), + COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_H_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_EXT_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + 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'),), + 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='**'), + 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'), + AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), + 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='**'), + FLUX_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + 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'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + COEF_H =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TRAN =SIMP(statut='f',typ='R',min=2,max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + CENTRE =SIMP(statut='f',typ='R',min=2,max=3), + ), + + LIAISON_DDL =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD'),), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + DDL =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + LIAISON_GROUP =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), + UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), + EXCLUS('GROUP_MA_1','GROUP_NO_2'), + EXCLUS('GROUP_MA_1','NOEUD_2'), + EXCLUS('GROUP_NO_1','GROUP_MA_2'), + EXCLUS('GROUP_NO_1','MAILLE_2'), + EXCLUS('MAILLE_1','GROUP_NO_2'), + EXCLUS('MAILLE_1','NOEUD_2'), + EXCLUS('NOEUD_1','GROUP_MA_2'), + EXCLUS('NOEUD_1','MAILLE_2'), + EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), + DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), + COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRAN =SIMP(statut='f',typ='R',max='**'), + ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), + CENTRE =SIMP(statut='f',typ='R',max='**'), + ), + + LIAISON_UNIF =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), + 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='**'), + DDL =SIMP(statut='f',typ='TXM',defaut="TEMP", + into=("TEMP","TEMP_INF","TEMP_SUP") ), + ), + + CONVECTION =FACT(statut='f',max='**', + VITESSE =SIMP(statut='o',typ=cham_no_sdaster ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 28/03/2007 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. +# +# 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 VABHHTS J.PELLET +AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, + fr="Affecter des matériaux à des zones géométriques d'un maillage", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=modele_sdaster), + + # affectation du nom du matériau (par mailles): + # ---------------------------------------------- + AFFE =FACT(statut='o',max='**', + regles=(UN_PARMI('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='**'), + MATER =SIMP(statut='o',typ=mater_sdaster,max=30), + TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + # affectation du nom du matériau (par noeuds): + # ---------------------------------------------- + AFFE_NOEUD =FACT(statut='f',max='**', + regles=(UN_PARMI('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='**'), + MATER =SIMP(statut='o',typ=mater_sdaster,max=1), + ), + + # affectation de comportement (multifibres pour l'instant): + # ---------------------------------------------- + AFFE_COMPOR =FACT(statut='f',max='**', + regles=(UN_PARMI('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='**'), + COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1), + ), + + # affectation des variables de commande : + # -------------------------------------------------- + # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles : + LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA", + "M_ACIER","M_ZIRC","NEUT1","NEUT2")), + + AFFE_VARC =FACT(statut='f',max='**', + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + PRESENT_ABSENT('GROUP_MA','TOUT'), + PRESENT_ABSENT('MAILLE','TOUT'), + UN_PARMI('EVOL','CHAMP_GD'),), + + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut] + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + CHAMP_GD =SIMP(statut='f',typ=cham_gd_sdaster,), + B_CHAMP_GD =BLOC(condition="CHAMP_GD!=None", + NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC", + "EPSA","NEUT1","NEUT2")), + ), + EVOL =SIMP(statut='f',typ=evol_sdaster,), + B_EVOL =BLOC(condition="EVOL!=None", + NOM_VARC =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER", + "M_ZIRC","EPSA","NEUT1","NEUT2")), + B_NOM_TEMP =BLOC(condition="NOM_VARC=='TEMP'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'TEMP',),), + B_NOM_CORR =BLOC(condition="NOM_VARC=='CORR'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'CORR',),), + B_NOM_IRRA =BLOC(condition="NOM_VARC=='IRRA'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'IRRA',),), + B_NOM_HYDR =BLOC(condition="NOM_VARC=='HYDR'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'HYDR_ELNO_ELGA',),), + B_NOM_SECH =BLOC(condition="NOM_VARC=='SECH'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'TEMP',),), + B_NOM_EPSA =BLOC(condition="NOM_VARC=='EPSA'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'EPSA_ELNO',),), + B_NOM_M_ACIER =BLOC(condition="NOM_VARC=='M_ACIER'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'META_ELNO_TEMP',),), + B_NOM_M_ZIRC =BLOC(condition="NOM_VARC=='M_ZIRC'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'META_ELNO_TEMP',),), + B_NOM_NEUT1 =BLOC(condition="NOM_VARC=='NEUT1'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),), + B_NOM_NEUT2 =BLOC(condition="NOM_VARC=='NEUT2'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),), + 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") ), + ), + VALE_REF =SIMP(statut='f',typ='R'), # defaut=0. pour TEMP (fait dans le fortran : op0006.f) + ), + + # mots clés cachés pour les variables de commande NEUTi : + # ------------------------------------------------------- + VARC_NEUT1 =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="NEUT1"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="NEUT_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT1")), + ), + VARC_NEUT2 =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="NEUT2"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="NEUT_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")), + ), + + # mots clés cachés pour variable de commande TEMP : + # -------------------------------------------------- + VARC_TEMP =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="TEMP"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="TEMP_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), + VALE_DEF =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)), + ), + + # mots clés cachés pour variable de commande SECH : + # -------------------------------------------------- + VARC_SECH =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="SECH"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="TEMP_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)), + ), + + # mots clés cachés pour variable de commande HYDR : + # -------------------------------------------------- + VARC_HYDR =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="HYDR"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="HYDR_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)), + ), + + # mots clés cachés pour variable de commande CORR : + # -------------------------------------------------- + VARC_CORR =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="CORR"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="CORR_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)), + ), + + # mots clés cachés pour variable de commande IRRA : + # -------------------------------------------------- + VARC_IRRA =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="IRRA"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="IRRA_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)), + ), + + # mots clés cachés pour variable de commande EPSA : + # -------------------------------------------------- + VARC_EPSA =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="EPSA"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="EPSI_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)), + CMP_VARC =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPSAXX","EPSAYY","EPSAZZ","EPSAXY","EPSAXZ","EPSAYZ",)), + ), + # mots clés cachés pour variable de commande metallurgique ACIER : + # ----------------------------------------------------------------- + VARC_M_ACIER =FACT(statut='d', + NOM_VARC =SIMP(statut='c',typ='TXM',defaut="M_ACIER"), + GRANDEUR =SIMP(statut='c',typ='TXM',defaut="VARI_R"), + CMP_GD =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("V1","V2","V3","V4","V5","V6","V7")), + CMP_VARC =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("PFERRITE","PPERLITE","PBAINITE", + "PMARTENS","TAUSTE","TRANSF","TACIER",)), + ), + # mots clés cachés pour variable de commande metallurgique ZIRCALOY : + # -------------------------------------------------------------------- + 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",)), + ), +) ; + + +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +AIDE=PROC(nom="AIDE",op=42, + UIinfo={"groupes":("Modélisation",)}, + fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples" + +" (type d'éléments, option) disponibles dans la version.", + regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),), + UNITE =SIMP(statut='f',typ='I',defaut=8), + TYPE_ELEM =FACT(fr="couple type_elem option",statut='f', + INITEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + ), + CONCEPT =FACT(statut='f',max='**', + NOM =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"), + OPTION =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE", + into=("TOUT_TYPE","CREER","A_CREER",) ), + ), +) ; +#& MODIF COMMANDE DATE 19/02/2007 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. +# ====================================================================== +DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', + UIinfo={"groupes":("Gestion du travail",)}, + fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers", + sd_prod=ops.DEBUT, + + PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', + into=("OUI","NON"),defaut="OUI"), + IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", + statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), +# 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=2, + FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM', + into=('GLOBALE','VOLATILE'),), + TITRE =SIMP(statut='f',typ='TXM'), + CAS =SIMP(statut='f',typ='TXM'), + NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), + LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), + LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), + ), + + IMPRESSION =FACT(statut='f',min=1,max=3, + FICHIER =SIMP(statut='o',typ='TXM'), + UNITE =SIMP(statut='o',typ='I'), + ), + + CATALOGUE =FACT(statut='f',min=1,max=10, + FICHIER =SIMP(statut='o',typ='TXM'), + TITRE =SIMP(statut='f',typ='TXM'), + UNITE =SIMP(statut='f',typ='I'), + ), + + CODE =FACT(fr="définition d un nom pour l'ensemble d'une étude", + statut='f',min=1,max=1, + NOM =SIMP(statut='o',typ='TXM'), + NIV_PUB_WEB =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')), + VISU_EFICAS =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'), + UNITE =SIMP(statut='f',typ='I',defaut=15), + ), + + 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'), + ), + + DEBUG =FACT(fr="option de déboggage reservée aux développeurs", + statut='f',min=1,max=1, + JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", + statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), + SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", + statut='f',typ='TXM',into=('OUI','NON')), + 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=('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'), + 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'), + ), + RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1, + regles=(EXCLUS('VALE','POURCENTAGE'),), + VALE =SIMP(statut='f',typ='I',val_min=0), + POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), +# valeur en pourcentage du temps maximum bornée à 180 secondes + BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=180) + ), + ); +#& MODIF COMMANDE DATE 12/03/2007 AUTEUR LAVERNE J.LAVERNE +# 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 JMBHH01 J.M.PROIX +AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, + UIinfo={"groupes":("Modélisation",)}, + fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n', + regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),), + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), + VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ), + AFFE_SOUS_STRUC =FACT(statut='f', + regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + SUPER_MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ), + ), + AFFE =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + PHENOMENE =SIMP(statut='o',typ='TXM', + into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ), + b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'", + fr="modélisations mécaniques", + MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( + "2D_DIS_T", + "2D_DIS_TR", + "2D_FLUI_ABSO", + "2D_FLUI_PESA", + "2D_FLUI_STRU", + "2D_FLUIDE", + "3D", + "3D_ABSO", + "3D_FAISCEAU", + "3D_FLUI_ABSO", + "3D_FLUIDE", + "3D_INCO", + "3D_INCO_GD", + "3D_SI", + "3D_GRAD_EPSI", + "3D_GRAD_VARI", + "3D_XFEM", + "3D_JOINT", + "AXIS", + "AXIS_FLUI_STRU", + "AXIS_FLUIDE", + "AXIS_FOURIER", + "AXIS_INCO", + "AXIS_INCO_GD", + "AXIS_NS", + "AXIS_SI", + "AXIS_GRAD_VARI", + "AXIS_JOINT", + "AXIS_ELDI", + "BARRE", + "2D_BARRE", + "C_PLAN", + "C_PLAN_XFEM", + "C_PLAN_NS", + "C_PLAN_SI", + "C_PLAN_GRAD_EPSI", + "C_PLAN_GRAD_VARI", + "CABLE", + "CABLE_POULIE", + "COQUE_3D", + "COQUE_AXIS", + "COQUE_C_PLAN", + "COQUE_D_PLAN", + "D_PLAN", + "D_PLAN_XFEM", + "D_PLAN_GRAD_EPSI", + "D_PLAN_GRAD_VARI", + "D_PLAN_NS", + "PLAN_JOINT", + "PLAN_ELDI", + "D_PLAN_ABSO", + "D_PLAN_INCO", + "D_PLAN_INCO_GD", + "D_PLAN_SI", + "DIS_T", + "DIS_TR", + "DKT", + "DKTG", + "DST", + "FLUI_STRU", + "GRILLE", + "GRILLE_MEMBRANE", + "POU_C_T", + "POU_D_E", + "POU_D_EM", + "POU_D_T", + "POU_D_T_GD", + "POU_D_TG", + "POU_D_TGM", + "Q4G", + "TUYAU_3M", + "TUYAU_6M", + "SHB8", + "D_PLAN_HHM", + "D_PLAN_HM", + "D_PLAN_THH", + "D_PLAN_THHM", + "D_PLAN_THM", + "D_PLAN_HHMD", + "D_PLAN_HH2MD", + "D_PLAN_HMD", + "D_PLAN_THHD", + "D_PLAN_THH2D", + "D_PLAN_THVD", + "D_PLAN_THH2MD", + "D_PLAN_THHMD", + "D_PLAN_THMD", + "D_PLAN_HHMS", + "D_PLAN_HH2MS", + "D_PLAN_HMS", + "D_PLAN_THHS", + "D_PLAN_THH2S", + "D_PLAN_THVS", + "D_PLAN_THH2MS", + "D_PLAN_THHMS", + "D_PLAN_THMS", + "D_PLAN_HM_P", + "AXIS_THH", + "AXIS_THHM", + "AXIS_THM", + "AXIS_HHM", + "AXIS_HM", + "AXIS_HH2MD", + "AXIS_HHMD", + "AXIS_HMD", + "AXIS_THHD", + "AXIS_THH2D", + "AXIS_THVD", + "AXIS_THHMD", + "AXIS_THH2MD", + "AXIS_THMD", + "AXIS_HH2MS", + "AXIS_HHMS", + "AXIS_HMS", + "AXIS_THHS", + "AXIS_THH2S", + "AXIS_THVS", + "AXIS_THHMS", + "AXIS_THH2MS", + "AXIS_THMS", + "3D_HHM" , + "3D_HM", + "3D_THH", + "3D_THV", + "3D_THHM", + "3D_THM", + "3D_HHMD", + "3D_HMD", + "3D_THHD", + "3D_THVD", + "3D_THHMD", + "3D_THMD", + "3D_HHMS", + "3D_HMS", + "3D_THHS", + "3D_THVS", + "3D_THHMS", + "3D_THMS", + "3D_THH2MD", + "3D_THH2MS", + "3D_HH2MD", + "3D_HH2MS", + "3D_THH2S", + "3D_THH2D", + ) ) ), + + b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", + fr="modélisations thermiques", + MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( + "3D", + "3D_DIAG", + "AXIS", + "AXIS_DIAG", + "AXIS_FOURIER", + "COQUE", + "COQUE_AXIS", + "COQUE_PLAN", + "PLAN", + "PLAN_DIAG", + ),),), + + b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", + fr="modélisations acoustiques", + MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( + "3D", + "PLAN" + ), ),), + + ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 VABHHTS J.PELLET +ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, + fr="Assembler deux maillages pour en former un nouveau", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + MAILLAGE_1 = SIMP(statut='o',typ=maillage_sdaster,), + MAILLAGE_2 = SIMP(statut='o',typ=maillage_sdaster,), + OPERATION = SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),), + b_collage = BLOC(condition = "OPERATION == 'COLLAGE'", + COLLAGE = FACT(statut='o', + GROUP_MA_1 =SIMP(statut='o',typ=grma), + GROUP_MA_2 =SIMP(statut='o',typ=grma), + ), + ), +) ; +#& MODIF COMMANDE DATE 18/04/2005 AUTEUR NICOLAS O.NICOLAS +# 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. +# ====================================================================== +ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r, + fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ), + b_option =BLOC(condition = "METHODE == 'CLASSIQUE'", + OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ), + ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 VABHHTS J.PELLET +def asse_matrice_prod(MATR_ELEM,**args): + if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r + if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c + if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r + if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c + raise AsException("type de concept resultat non prevu") + +ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, + fr="Construction d'une matrice assemblée",reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + 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), + CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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. +# ====================================================================== +ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene, + fr="Projection des chargements sur la base modale d'une sous structure", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ), + b_nume =BLOC(condition = "METHODE == 'CLASSIQUE'", + CHAR_SOUS_STRUC =FACT(statut='o',max='**', + SOUS_STRUC =SIMP(statut='o',typ='TXM' ), + VECT_ASSE =SIMP(statut='o',typ=cham_no_sdaster ), + ), + ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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 VABHHTS J.PELLET + +ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster, + fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'), + NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), + INFO =SIMP(statut='f',typ='I',into=(1,2,) ), +) ; +#& MODIF COMMANDE DATE 03/01/2006 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. +# +# 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. +# ====================================================================== +CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, + fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + ENER_SOL =FACT(statut='o', + regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'), + PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'), +# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ') + PRESENT_PRESENT('KRX','KRY'), + PRESENT_PRESENT('KRX','KRZ'), + PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'), + PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'), + PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),), + METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), + GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_GROUP =SIMP(statut='f',typ='R',max='**'), + KX =SIMP(statut='o',typ='R' ), + KY =SIMP(statut='o',typ='R' ), + KZ =SIMP(statut='o',typ='R' ), + KRX =SIMP(statut='f',typ='R' ), + KRY =SIMP(statut='f',typ='R' ), + KRZ =SIMP(statut='f',typ='R' ), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), + NOEUD_CENTRE =SIMP(statut='f',typ=no), + COOR_CENTRE =SIMP(statut='f',typ='R',max=3), + ), + AMOR_INTERNE =FACT(statut='o', + ENER_POT =SIMP(statut='o',typ=table_sdaster ), + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), + ), + AMOR_SOL =FACT(statut='o', + AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FONC_AMOR_GEO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + HOMOGENE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), + ), +) ; +#& MODIF COMMANDE DATE 16/05/2006 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. +# +# 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 + +CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem, + fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + + regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','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='**'), + +# +# +# introduire un mot cle de type modelisation : mécanique,thermique,... +# + + OPTION =SIMP(statut='o',typ='TXM', + into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", + "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", + "COOR_ELGA"), ), + + b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP',)", + TEMP =SIMP(statut='o',typ=(cham_no_sdaster,)), + ), + + b_acoustique =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)", + PRES =SIMP(statut='o',typ=(cham_no_sdaster,)), + ), + + + + EXCIT =FACT(statut='f',max='**', + regles=(EXCLUS('FONC_MULT','COEF_MULT', ),), + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_MULT =SIMP(statut='f',typ='R'), ), + + INST =SIMP(statut='f',typ='R',defaut= 0.E+0), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), + ANGLE =SIMP(statut='f',typ='I',defaut= 0), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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 VABHHTS J.PELLET + +CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster, + fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), + CHAR_CINE =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ),validators=NoRepeat(),max='**' ), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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 calc_char_seisme_prod(MATR_MASS,**args ): + if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_sdaster + raise AsException("type de concept resultat non prevu") + +CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod, + reentrant='n',fr="Calcul du chargement sismique", + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),), + MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ), + DIRECTION =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"), + MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), + b_mode_stat =BLOC ( condition = "MODE_STAT != None", + regles=(UN_PARMI('NOEUD','GROUP_NO' ),), + NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 03/04/2007 AUTEUR DURAND C.DURAND +# 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 JMBHH01 J.M.PROIX +def calc_elem_prod(RESULTAT,**args): + if AsType(RESULTAT) != None : return AsType(RESULTAT) + raise AsException("type de concept resultat non prevu") + +CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f', + UIinfo={"groupes":("Post traitements",)}, + fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )", + MODELE =SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + + RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, + mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc, + evol_noli,mult_elas,fourier_elas,fourier_ther, + evol_ther,base_modale, + acou_harmo,mode_acou,mode_flamb) , + fr="Résultat d'une commande globale"), + + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'), + CONCEPT_SENSIBLE("SEPARE"), + DERIVABLE('RESULTAT'),), + 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='**'), + 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",) ), + 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à"), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**', + fr="le calcul ne sera effectué que sur ces mailles là"), + +# definition d'un repere local + + REPE_COQUE =FACT(statut='f',max='**', + fr="définiton du lieu de post-traitement", + regles=EXCLUS('ANGL_REP','VECTEUR'), + 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='**',), + + NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, + fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), + fr="position dans l'épaisseur de la coque, ou de la couche" ), + + ANGLE =SIMP(statut='f',typ='I',defaut= 0, + fr="angle de dépouillement pour les tuyaux, en degres à partir de la génératrice" ), + + PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), + fr="Plan de calcul pour les plaques excentrées" ), + + ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2, + fr="définition du repere de post-traitement, par défaut ANGL_REP=(0.,0.)"), + VECTEUR =SIMP(statut='f',typ='R',min=3,max=3, + fr="définition du repere de post-traitement, par défaut VECTEUR=(1.,0.,0.)"), + ), + +# options pour des resultats lineaires + + b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\ + mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,\ + mult_elas,fourier_elas,base_modale,mode_flamb)", + fr="options mecaniques lineaires", + TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires", + into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES", + "INDI_ERREUR","AUTRES","TOUTES"), + ), + b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA", + # contraintes + into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", + "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", + "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","SIGM_ELNO_TUYO","ARCO_ELNO_SIGM", + # déformations + "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELGA_DEPL","EPSG_ELNO_DEPL", + "EPME_ELNO_DEPL","EPME_ELGA_DEPL","DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", + "EPVC_ELNO","EPVC_ELGA", + # ENER + "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", + "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM", + # estimateurs erreur + "SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM", + "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM", + "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", + "SING_ELEM","SING_ELNO_ELEM", + # CRIT + "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT", + "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", + "ENDO_ELGA","ENDO_ELNO_ELGA", + "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", + # derivees + "DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", + # autres + "VALE_NCOU_MAXI","PRES_DBEL_DEPL"),), + + NOM_CHAM =SIMP(statut='f',typ='TXM',fr="nom du champ pour VALE_NCOU_MAXI", ), + NOM_CMP =SIMP(statut='f',typ='TXM',fr="nom de la composante pour VALE_NCOU_MAXI", ), + + 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,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.,val_max= 1., + fr="precision demandee pour calculer la carte de taille des elements"),), + + EXCIT =FACT(statut='f',max='**', + fr="Charges contenant les températures, les efforts répartis pour les poutres...", + regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), + CHARGE =SIMP(statut='o',typ=char_meca ), + 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",),),), + + + ), +# fin bloc b_toutes + + b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", + fr="options de contraintes elasticite 2D et 3D", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', + fr="option de calcul des contraintes", + into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),), + + b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',) or \ + (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) ", + fr="charge contenant les temperatures ou autre charge", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=char_meca ),), + ), + ), + + b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", + fr="options de contraintes elasticite poutres, coques, tuyaux", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', + fr="option de calcul des contraintes ou efforts generalises", + into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL","SIGM_ELNO_TUYO", + "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", + "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF"),), + + b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',\ + 'SIPO_ELNO_DEPL','EFGE_ELNO_DEPL',) or \ + (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'SIPO_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION ) ", + fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre", + EXCIT =FACT(statut='f',max='**', + regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), + CHARGE =SIMP(statut='f',typ=char_meca ), + 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",),),), + ), + + + ), +# fin bloc contraintes struct + + b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL", + "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO","EPVC_ELNO","EPVC_ELGA",), + ), +b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ELGA_DEPL','EPSI_ELNO_DEPL','EPSI_ELNO_TUYO' ) or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION ) or \ + (type(OPTION)==type(()) and 'EPSI_ELGA_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'EPME_ELNO_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'EPME_ELGA_DEPL' in OPTION ) ", + fr="charge contenant les temperatures", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + ), + b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", + "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",), + ), + b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM_DEPL','ECIN_ELEM_DEPL','ENEL_ELGA','ENEL_ELNO_ELGA',) or \ + (type(OPTION)==type(()) and 'EPOT_ELEM_DEPL' in OPTION ) or \ + (type(OPTION)==type(()) and 'ENEL_ELGA' in OPTION ) or \ + (type(OPTION)==type(()) and 'ENEL_ELNO_ELGA' in OPTION ) or \ + (type(OPTION)==type(()) and 'ECIN_ELEM_DEPL' in OPTION ) ", + fr="charge contenant les temperatures", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',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_ELGA","ENDO_ELNO_ELGA", + "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", + ) ), + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + + b_derivees =BLOC( condition = "TYPE_OPTION=='DERIVEES'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", + ) ),), + + b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL", + ) ), + 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=("SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM", + "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM", + "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,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.,val_max=1., + fr="precision demandee pour calculer la carte de taille des elements" ),), + + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + ), +# fin bloc lineaire + + +# statique ou dynamique non lineaire : evol_noli + b_noli =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options evol noli", + TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES', + into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT", + "VARI","INDI_ERREUR","TOUTES","AUTRES"), + ), + b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=( "SIEF_ELNO_ELGA", + "SIGM_ELNO_TUYO","SIGM_ELNO_COQU","ARCO_ELNO_SIGM", + "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART", + # EPSI + "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", + "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", + "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", + "EPSP_ELNO","EPSP_ELGA", + "EPFD_ELNO","EPFD_ELGA","EPVC_ELNO","EPVC_ELGA", + "EPFP_ELNO","EPFP_ELGA", + "VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU","CRIT_ELNO_RUPT", + "EXTR_ELGA_VARI","EXTR_ELNO_VARI", + # CRIT + "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", + "ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", + "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", + "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", + "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", + "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM", + "SING_ELNO_ELEM","ENDO_ELNO_SIGA","ENDO_ELNO_SINO", + "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA", + "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"), + ), + NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", + into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE"), + fr="Type de norme pour les options RADI_ et DCHA_"), + + NOM_CHAM =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"), + NOM_CMP =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"), + + 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.,val_max=1., + fr="precision demandee pour calculer la carte de taille des elements" ),), + + + b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')", + NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire", + into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR", + "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23", + "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE", + "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4",),), + ), + EXCIT =FACT(statut='f',max='**', + regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), + CHARGE =SIMP(statut='o',typ=char_meca ), + 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_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", + fr="options de contraintes non lin 2D et 3D", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + # contraintes + into=( "SIEF_ELNO_ELGA",),), + ), + + b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", + fr="options de contraintes non lin poutres, coques", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + # contraintes + into=( "SIEF_ELNO_ELGA","EFGE_ELNO_CART","SIGM_ELNO_TUYO","SIGM_ELNO_COQU", + "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",),), + ), + + b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=( "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", + "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", + "EPSP_ELNO","EPSP_ELGA","DEGE_ELNO_DEPL","EPVC_ELNO","EPVC_ELGA", + "EPFD_ELNO","EPFD_ELGA","EPFP_ELNO","EPFP_ELGA"), + ), + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + b_epstuyo =BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \ + (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION) ", + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), + ), + + b_vari =BLOC( condition = "TYPE_OPTION=='VARI'", + fr="Calcul et extraction des variables internes", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU", + "EXTR_ELGA_VARI","EXTR_ELNO_VARI"), + ), + b_extr =BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')", + NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire", + into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR", + "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23", + "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE", + "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4"),), + ), + ), + + b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",), + ), + EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", + 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_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.,val_max=1., + fr="precision demandee pour calculer la carte de taille des elements" ),), + + 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",),),), + ), + + 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 16/10/2006 AUTEUR JMBHH01 J.M.PROIX +# 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. +# ====================================================================== +def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args): + if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem + if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem + if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_sdaster + raise AsException("type de calcul non prevu") + +CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n', + fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique" + +" dans lequel le cisaillement est maximal.", + UIinfo={"groupes":("Post traitements",)}, + + TYPE_CALCUL = SIMP(statut='o',typ='TXM', + into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ), + + b_cumul_domma =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'", + fr="Calcul d un champ de dommage subi par une structure.", + regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),), + OPTION =SIMP(statut='o',typ='TXM', + into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM", + "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI", + "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ), + HISTOIRE =FACT(statut='o', + RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, + evol_noli) ), + EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG", + into=("VMIS_SG","INVA_2_SG") ), + ), + DOMMAGE =SIMP(statut='o',typ='TXM', + into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON", + "TAHERI_MIXTE",) ), + MATER =SIMP(statut='o',typ=(mater_sdaster) ), + TAHERI_NAPPE =SIMP(statut='f',typ=(nappe_sdaster,formule) ), + TAHERI_FONC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'", + fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.", + TYPE_CHARGE =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ), + OPTION =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ), + RESULTAT =SIMP(statut='o',typ=(evol_elas, evol_noli) ), + CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), + 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='**' ), + COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0), + b_period =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'", + CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC","DANG_VAN_MODI_AC","VMIS_TRESCA") ), + b_fati_p =BLOC(condition = "(CRITERE == 'MATAKE_MODI_AC' or CRITERE == 'DANG_VAN_MODI_AC')", + METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ), + ), + ), + b_non_period =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'", + CRITERE =SIMP(statut='o',typ='TXM', + into=("MATAKE_MODI_AV","DANG_VAN_MODI_AV","FATESOCI_MODI_AV","VMIS_TRESCA") ), + b_fati_np =BLOC(condition = + "(CRITERE == 'MATAKE_MODI_AV' or CRITERE == 'DANG_VAN_MODI_AV' or CRITERE == 'FATESOCI_MODI_AV')", + PROJECTION =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ), + DELTA_OSCI =SIMP(statut='f',typ='R',defaut= 0.0E+0), + ), + ), + b_fati_grmano =BLOC(condition = "(GROUP_MA != None or MAILLE != None or GROUP_NO != None or NOEUD != None)", + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, + reentrant='n', + fr="Calculer les paramètres modaux d'une structure soumise à un écoulement", + UIinfo={"groupes":("Matrices/vecteurs",)}, + VITE_FLUI =FACT(statut='f', + fr="Définir la plage de vitesse fluide étudiée", + VITE_MIN =SIMP(statut='f',typ='R' ), + VITE_MAX =SIMP(statut='f',typ='R' ), + NB_POIN =SIMP(statut='f',typ='I' ), + ), + BASE_MODALE =FACT(statut='o', + + regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), + NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**',val_min=0.E+00), + AMOR_UNIF =SIMP(statut='f',typ='R',val_min=0.E+00 ), + AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00), + ), + TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ), + IMPRESSION =FACT(statut='f', + fr="Choix des informations à imprimer dans le fichier RESULTAT", + PARA_COUPLAGE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), +) ; +#& MODIF COMMANDE DATE 02/05/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +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: + 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") + +CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod, + docu="U4.32.01-e",reentrant='n', + fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables", + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('VALE_PARA','LIST_PARA'),), + FONCTION =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ), + VALE_PARA =SIMP(statut='f',typ='R',max='**'), + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + NOM_RESU =SIMP(statut='f',typ='TXM'), + NOM_PARA =SIMP(statut='f',typ='TXM'), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), + NOM_PARA_FONC =SIMP(statut='f',typ='TXM'), + b_eval_nappe =BLOC(condition = "NOM_PARA_FONC != None", + regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),), + VALE_PARA_FONC =SIMP(statut='f',typ='R',max='**'), + LIST_PARA_FONC =SIMP(statut='f',typ=listr8_sdaster ), + INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")), + PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), + PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), +) ; +#& MODIF COMMANDE DATE 09/02/2007 AUTEUR GREFFET N.GREFFET +# 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 MCOURTOI M.COURTOIS +from Macro.calc_fonction_ops import calc_fonction_ops +def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C, + ENVELOPPE,SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE, + LISS_ENVELOP,ABS, **args): + + if (INTEGRE != None): return fonction_sdaster + if (DERIVE != None): return fonction_sdaster + if (INVERSE != None): return fonction_sdaster + if (COMB != None): + type_vale=AsType(COMB[0]['FONCTION']) + for mcfact in COMB : + if(AsType(mcfact['FONCTION'])!=type_vale): + raise AsException("CALC_FONCTION/COMB : pas de types hétérogènes nappe/fonction") + return type_vale + if (COMB_C != None): + vale=COMB_C[0]['FONCTION'] + if(AsType(vale) == nappe_sdaster): + for mcfact in COMB_C[1:] : + if(AsType(mcfact['FONCTION'])!=nappe_sdaster): + raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction") + return nappe_sdaster + else: + for mcfact in COMB_C : + if(AsType(mcfact['FONCTION'])==nappe_sdaster): + raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction") + return fonction_c + if (ENVELOPPE != None): return AsType(ENVELOPPE[0]['FONCTION']) + if (EXTRACTION != None): return fonction_sdaster + if (SPEC_OSCI != None): return nappe_sdaster + if (COMPOSE != None): return fonction_sdaster + if (ASSE != None): return fonction_sdaster + if (FFT != None): + vale=FFT[0]['FONCTION'] + if (AsType(vale) == fonction_sdaster ) : return fonction_c + if (AsType(vale) == fonction_c) : return fonction_sdaster + if (CORR_ACCE != None): return fonction_sdaster + if (LISS_ENVELOP!= None): return nappe_sdaster + if (PUISSANCE != None): return AsType(PUISSANCE[0]['FONCTION']) + if (ABS != None): return fonction_sdaster + raise AsException("type de concept resultat non prevu") + +CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_fonction_prod + ,fr="Effectue des opérations mathématiques sur des concepts de type fonction", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE', + 'COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE', + 'LISS_ENVELOP','INVERSE','ABS'),), + FFT =FACT(statut='f',fr="Transformée de Fourier ou de son inverse", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ), + METHODE =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE","COMPLET") ), + b_syme =BLOC ( condition = " AsType(FONCTION)==fonction_c ", + SYME =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ), + ), + ), + DERIVE =FACT(statut='f',fr="Dérivée d une fonction", + METHODE =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ), + FONCTION =SIMP(statut='o',typ=fonction_sdaster ), + ), + INTEGRE =FACT(statut='f',fr="Intégrale d'une fonction", + METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), + FONCTION =SIMP(statut='o',typ=fonction_sdaster), + COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ), + ), + LISS_ENVELOP = FACT(statut='f',fr="Lissage d une enveloppe", + NAPPE =SIMP(statut='o',typ=nappe_sdaster ), + FREQ_MIN =SIMP(statut='f',typ='R',defaut =0.2), + FREQ_MAX =SIMP(statut='f',typ='R',defaut =35.5), + ELARG =SIMP(statut='f',typ='R',defaut =0.1 ), + TOLE_LISS =SIMP(statut='f',typ='R',defaut =0.25 ), + ), + SPEC_OSCI =FACT(statut='f',fr="Spectre d'oscillateur", + METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ), + FONCTION =SIMP(statut='o',typ=fonction_sdaster ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + FREQ =SIMP(statut='f',typ='R',max='**'), + NORME =SIMP(statut='o',typ='R',fr="Valeur de la norme du spectre d oscillateur" ), + NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), + NATURE_FONC =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), + ), + ABS =FACT(statut='f',fr="Valeur absolue d'une fonction", + FONCTION =SIMP(statut='o',typ=fonction_sdaster,), + ), + COMB =FACT(statut='f',max='**',fr="Combinaison linéaire réelle de fonctions", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), + COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), + ), + COMB_C =FACT(statut='f',max='**',fr="Combinaison linéaire complexe de fonctions", + regles=(UN_PARMI('COEF_R','COEF_C'),), + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ), + COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), + COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ), + ), + b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)", + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + ), + COMPOSE =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)", + FONC_RESU =SIMP(statut='o',typ=fonction_sdaster), + FONC_PARA =SIMP(statut='o',typ=fonction_sdaster), + ), + EXTRACTION =FACT(statut='f',fr="Extraction sur une fonction complexe", + FONCTION =SIMP(statut='o',typ=fonction_c), + PARTIE =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"), + ), + ENVELOPPE =FACT(statut='f',fr="Enveloppe d une famille de fonctions", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ), + ), + ASSE =FACT(statut='f',fr="Concatenation de fonctions", + FONCTION =SIMP(statut='o',typ=fonction_sdaster,min=2,max=2 ), + SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")), + ), + CORR_ACCE =FACT(statut='f',fr="Correction d un accelerogramme reel", + CORR_DEPL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + FONCTION =SIMP(statut='o',typ=fonction_sdaster ), + ), + PUISSANCE =FACT(statut='f',fr="Fonction élevée à une puissance", + FONCTION =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ), + EXPOSANT =SIMP(statut='f', typ='I', defaut=1 ), + ), + INVERSE =FACT(statut='f',fr="Inverse d'une fonction", + FONCTION =SIMP(statut='o', typ=fonction_sdaster), + ), + NOM_PARA =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ), + NOM_RESU =SIMP(statut='f',typ='TXM' ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ), + INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), + PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + 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/02/2006 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. +# +# 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. +# ====================================================================== +CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene, + fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure" + +" en analyse sismique", + reentrant ='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + + regles=(EXCLUS('MODE_MECA','MODELE_GENE'), + PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'), + UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'), + UN_PARMI('MONO_APPUI','MODE_STAT')), + + MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), + MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='o',typ=char_ther ), + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + MODELE_GENE =SIMP(statut='f',typ=modele_gene ), + NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), + DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + NUME_MODE_MECA =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + POTENTIEL =SIMP(statut='f',typ=evol_ther ), + NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + + DIRECTION =SIMP(statut='o',typ='R',max=3), + MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), + + 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") ), + 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 iversibilité 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 ), + ), + ), + + ) ; +#& MODIF COMMANDE DATE 31/10/2006 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== + +from Macro.post_k_trans_ops import post_k_trans_ops + +POST_K_TRANS=MACRO(nom="POST_K_TRANS",op=post_k_trans_ops,sd_prod=table_sdaster, + fr="Calcul des facteurs d intensite des contrainte par recombinaison modale",reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + RESU_TRANS =SIMP(statut='o',typ=tran_gene), + K_MODAL =FACT(statut='o', + TABL_K_MODA =SIMP(statut='f',typ=table_sdaster,), + RESU_MODA =SIMP(statut='f',typ=mode_meca,), + FOND_FISS =SIMP(statut='f',typ=fond_fiss,), + FISSURE =SIMP(statut='f',typ=fiss_xfem,), + THETA =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster)), + R_INF =SIMP(statut='f',typ='R'), + R_SUP =SIMP(statut='f',typ='R'), + MODULE =SIMP(statut='f',typ='R'), + DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + 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)), + DEGRE =SIMP(statut='f',typ='I',into=(0,1,2,3,4,5,6,7) ), + LISSAGE_THETA =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),), + LISSAGE_G =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO","LAGRANGE_REGU"),), + + + regles=(UN_PARMI('TABL_K_MODA','RESU_MODA'), + UN_PARMI('FISSURE','FOND_FISS'), + EXCLUS('MODULE','MODULE_FO'), + PRESENT_PRESENT('R_INF','R_SUP'), + PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), + ), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), + 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), + 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",) ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM'), +) + +#& MODIF COMMANDE DATE 09/01/2007 AUTEUR PROIX J-M.PROIX +# 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. +# ====================================================================== +# -*- coding: iso-8859-1 -*- + +from Macro.simu_point_mat_ops import simu_point_mat_ops + +SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", op=simu_point_mat_ops,sd_prod=table_sdaster, + UIinfo={"groupes":("Résolution",)}, + fr="Calcul de l'évolution mécanique, en quasi-statique," + +" d'un point matériel en non linéaire", + COMP_INCR =C_COMP_INCR(), + MATER =SIMP(statut='o',typ=mater_sdaster,max=30), + INCREMENT =FACT(statut='o', + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + # 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 + ), + NEWTON =FACT(statut='d', + 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=1), + REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), + ), + 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'), + 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=50), + ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + ), + SUIVI_DDL = FACT(statut='f',max=4, + NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, + into=("DEPL","SIEF_ELGA","VARI_ELGA",)), + NOM_CMP =SIMP(statut='o',typ='TXM',max=1 ), + ), + ARCHIVAGE =FACT(statut='f', + regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), + EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), + 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), + 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",)), + HAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + into=("DEPL","SIEF_ELGA","VARI_ELGA","VARI_NON_LOCAL","LANL_ELGA")), + ), + MODELISATION =SIMP(statut='f',typ='TXM',defaut="3D",validators=NoRepeat(),max=1, + into=("3D","C_PLAN","D_PLAN",)), + b_3D = BLOC(condition="MODELISATION == '3D'", + fr="Trajets de chargeement en 3D", + SIGM_IMPOSE=FACT(statut='f', + SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + EPSI_IMPOSE=FACT(statut='f', + EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + ), + + b_2D = BLOC(condition="MODELISATION != '3D'", + fr="Trajets de chargeement en 2D", + + SIGM_IMPOSE=FACT(statut='f', + SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + EPSI_IMPOSE=FACT(statut='f', + EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) + +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_fonction, + fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + INST_FIN =SIMP(statut='o',typ='R' ), + DUREE_ANALYSE =SIMP(statut='f',typ='R' ), + DUREE_DECALAGE =SIMP(statut='f',typ='R' ), + NB_POIN =SIMP(statut='o',typ='I' ), + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1 , 2) ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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. +# ====================================================================== +CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, + fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), + PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'), + PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),), + MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), + MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='o',typ=char_ther ), + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster ), + MODELE_GENE =SIMP(statut='f',typ=modele_gene ), + NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), + DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + NUME_MODE_MECA =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ), + POTENTIEL =SIMP(statut='f',typ=evol_ther ), + NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + 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") ), + 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 iversibilité 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 ), + ), + ), +) ; +#& MODIF COMMANDE DATE 16/05/2006 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. +# +# 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 VABHHTS J.PELLET +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 == "RIGI_MECA_LAGR" : 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 + if OPTION == "RIGI_ROTA" : return matr_elem_depl_r + 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 + if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r + if OPTION == "RIGI_ACOU" : return matr_elem_pres_c + if OPTION == "MASS_ACOU" : return matr_elem_pres_c + if OPTION == "AMOR_ACOU" : return matr_elem_pres_c + raise AsException("type de concept resultat non prevu") + +CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod + ,fr="Calcul des matrices élémentaires",reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + + OPTION =SIMP(statut='o',typ='TXM', + into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", + "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", + "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", + "RIGI_MECA_LAGR") ), + + # mots clés facultatifs que l'on a du mal à mettre dans les blocs + # sans gener MACRO_MATR_ASSE : + #------------------------------------------------------------------ + INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ), + + + 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 ), + ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), + ), + + b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), + THETA =SIMP(statut='o',typ=theta_geom ), + PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + 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 ), + ), + 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_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 ), + RIGI_MECA =SIMP(statut='o',typ=matr_elem_depl_r ), + ), + + 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 ), + ), + 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/02/2006 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. +# +# 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. +# ====================================================================== +CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', + UIinfo={"groupes":("Post traitements",)}, + fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique", + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + RESULTAT =SIMP(statut='o',typ=evol_ther ), + ETAT_INIT =FACT(statut='o', + regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),), + EVOL_THER =SIMP(statut='f',typ=evol_ther ), + META_INIT_ELNO =SIMP(statut='f',typ=carte_sdaster ), + b_etat =BLOC(condition="EVOL_THER != None", + regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),), + 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") ) + ), + ), + ), + COMP_INCR =FACT(statut='o',max='**', + 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,) ), + 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), + ), + OPTION =SIMP(statut='f',typ='TXM' + ,into=("META_ELNO_TEMP",) ), +) ; +#& MODIF COMMANDE DATE 12/02/2007 AUTEUR KHAM M.KHAM +# 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 G8BHHXD X.DESROCHES +def calc_no_prod(RESULTAT,**args): + 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', + 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=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, + mode_acou,mode_stat,mode_stat_depl,mode_stat_acce, + mode_stat_forc,evol_ther,evol_noli,base_modale, + mult_elas,fourier_elas,fourier_ther,mode_flamb ) ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'), + CONCEPT_SENSIBLE("SEPARE"), + DERIVABLE('RESULTAT'),), + 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='**'), + 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") ), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("FORC_NODA","REAC_NODA", + "DCHA_NOEU_SIGM", + "DEGE_NOEU_DEPL", + "DETE_NOEU_DLTE", + "DEDE_NOEU_DLDE", + "DESI_NOEU_DLSI", + "DURT_NOEU_META", + "EFGE_NOEU_CART","EFGE_NOEU_DEPL", + "ENDO_NOEU_SINO", + "ENEL_NOEU_ELGA", + "EPMG_NOEU_DEPL", + "EPSA_NOEU", + "EPSG_NOEU_DEPL", + "EPSI_NOEU_DEPL", + "EPSP_NOEU" ,"EPSP_NOEU_ZAC", + "EPVC_NOEU","EPFD_NOEU","EPFP_NOEU","EPFP_NOEU", + "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM", + "ERRE_NOEU_ELEM","QIRE_NOEU_ELEM", + "FLUX_NOEU_TEMP", + "HYDR_NOEU_ELGA", + "INTE_NOEU_ACTI","INTE_NOEU_REAC", + "META_NOEU_TEMP", + "PMPB_NOEU_SIEF", + "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL", + "RADI_NOEU_SIGM", + "SIEF_NOEU" ,"SIEF_NOEU_ELGA", + "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL", + "SIGM_NOEU_SIEF","SIGM_NOEU_ZAC", + "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF", + "SIRE_NOEU_DEPL", + "VARI_NOEU","EXTR_NOEU_VARI","VARI_NOEU_ELGA", + "ARCO_NOEU_SIGM",) ), + + b_forc_reac =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\ + (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""", + MODELE =SIMP(statut='f',typ=modele_sdaster), + ), + + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV") ), + ), + 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_MA_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),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 05/03/2007 AUTEUR GALENNE E.GALENNE +# 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. +# ====================================================================== +CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="Définir un champ theta pour le calcul du taux de restitution d'énergie" + +" ou des facteurs d'intensité de contraintes", + regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'), + PRESENT_ABSENT('THETA_2D','DIRE_THETA'), + EXCLUS('DIRECTION','DIRE_THETA'),), + OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + THETA_3D =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), + UN_PARMI('MODULE','MODULE_FO'), + ENSEMBLE('MODULE','R_INF','R_SUP'), + ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),), + 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='**'), + MODULE =SIMP(statut='f',typ='R'), + R_INF =SIMP(statut='f',typ='R'), + R_SUP =SIMP(statut='f',typ='R'), + MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + b_theta_3d =BLOC(condition="THETA_3D != None", + FOND_FISS =SIMP(statut='o',typ=fond_fiss),), + DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + THETA_2D =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_NO','NOEUD'),), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + MODULE =SIMP(statut='o',typ='R'), + R_INF =SIMP(statut='o',typ='R'), + R_SUP =SIMP(statut='o',typ='R'), + ), + THETA_BANDE =FACT(statut='f',max='**', + MODULE =SIMP(statut='o',typ='R'), + R_INF =SIMP(statut='o',typ='R'), + R_SUP =SIMP(statut='o',typ='R'), + ), + GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + IMPRESSION =FACT(statut='f', + UNITE =SIMP(statut='f',typ='I',defaut=8), + FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ), + ), +) ; +#& MODIF COMMANDE DATE 12/03/2007 AUTEUR DEVESA G.DEVESA +# 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 VABHHTS J.PELLET +def calc_vect_elem_prod(OPTION,**args): + if OPTION == "CHAR_MECA" : return vect_elem_depl_r + if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r + if OPTION == "CHAR_THER" : return vect_elem_temp_r + if OPTION == "CHAR_ACOU" : return vect_elem_pres_c + if OPTION == "FORC_NODA" : return vect_elem_depl_r + raise AsException("type de concept resultat non prevu") + +CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Calcul des seconds membres élémentaires", + OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU", + "FORC_NODA","CHAR_MECA_LAGR") ), + b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'", + regles=(AU_MOINS_UN('CHARGE','MODELE'),), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + MODELE =SIMP(statut='f',typ=modele_sdaster), + b_charge =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure", + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure", + SOUS_STRUC =FACT(statut='o',min=01, + regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), + CAS_CHARGE =SIMP(statut='o',typ='TXM' ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), + ), + ), + ), + b_char_ther =BLOC(condition = "OPTION=='CHAR_THER'", + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + CHARGE =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + b_char_acou =BLOC(condition = "OPTION=='CHAR_ACOU'", + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CHARGE =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'), + ), + + b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'", + SIEF_ELGA =SIMP(statut='o',typ=cham_elem), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + MODELE =SIMP(statut='f',typ=modele_sdaster), + ), + + b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'", + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + THETA =SIMP(statut='o',typ=theta_geom), + PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), +) ; +#& MODIF COMMANDE DATE 31/10/2006 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== + +from Macro.post_gp_ops import post_gp_ops +def post_gp_prod(self, TABL_RESU, **kargs): + """Typage des sd_prod + """ + if TABL_RESU != None: + self.type_sdprod(TABL_RESU, table_sdaster) + return table_sdaster + +POST_GP=MACRO(nom="POST_GP", op=post_gp_ops, sd_prod=post_gp_prod, + fr="Calcul du critère énergétique Gp suite à un calcul thermo-mécanique", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + regles=(AU_MOINS_UN('IDENTIFICATION', 'PREDICTION'),), + + # Résultat, modèle, comportement, chargement + RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),), + RESU_THER = SIMP(statut='f',typ=evol_ther,), + MODELE = SIMP(statut='o',typ=modele_sdaster), + MATER = SIMP(statut='o',typ=mater_sdaster), + + COMP_ELAS = FACT(statut='o', + RELATION = SIMP(statut='f',typ='TXM',defaut="ELAS", + into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC"),), + DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN"),), + ), + + EXCIT = FACT(statut='f', max='**', + CHARGE = SIMP(statut='o', typ=(char_meca,char_cine_meca)), + FONC_MULT = SIMP(statut='f', typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE = SIMP(statut='f', typ='TXM', defaut="FIXE", into=("FIXE",)), + ), + SYME_CHAR = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS")), + + DIRECTION = SIMP(statut='o', typ='R', max=3), + THETA_2D = FACT(statut='o', max='**', + fr="paramètres de définition des champs theta", + GROUP_NO = SIMP(statut='o', typ=grno, validators=NoRepeat(), max='**'), + R_INF = SIMP(statut='o', typ='R'), + R_SUP = SIMP(statut='o', typ='R'), + ), + + # copeaux + GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), + PAS_ENTAILLE = SIMP(statut='o', typ='R', val_min=0.), + + # critère sur Gp + CRIT_MAXI_GP = SIMP(statut='f', typ='TXM', defaut="ABSOLU", + into=("RELATIF","ABSOLU")), + + # correction axisymétrie + RAYON_AXIS = SIMP(statut='f', typ='R', val_min=0., defaut=1.), + + # identification + IDENTIFICATION = FACT(statut='f', max=1, + KJ_CRIT = SIMP(statut='o', typ='R', val_min=0., max='**'), + TEMP = SIMP(statut='o', typ='R', val_min=0., max='**'), + ), + + # prédiction + PREDICTION = FACT(statut='f', max=1, + GP_CRIT = SIMP(statut='o', typ='R', val_min=0., max='**'), + TEMP = SIMP(statut='o', typ='R', val_min=0., max='**'), + ), + + # table résultat + TABL_RESU = SIMP(statut='o', typ=CO,), + + INFO = SIMP(statut='f', typ='I', defaut=1, into=(1, 2),), +) +#& MODIF COMMANDE DATE 09/01/2007 AUTEUR ABBAS M.ABBAS +# 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. +# ====================================================================== + +from Macro.macr_spectre_ops import macr_spectre_ops + +MACR_SPECTRE=MACRO(nom="MACR_SPECTRE",op=macr_spectre_ops,sd_prod=table_sdaster, + reentrant='n', UIinfo={"groupes":("Outils métier",)}, + fr="calcul de spectre, post-traitement de séisme", + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster,), + PLANCHER =FACT(statut='o',max='**', + regles=(AU_MOINS_UN('NOEUD','GROUP_NO' ),), + NOM =SIMP(statut='o',typ='TXM',), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), ), + NOM_CHAM =SIMP(statut='o',typ='TXM' ,into=('ACCE','DEPL')), + CALCUL =SIMP(statut='o',typ='TXM' ,into=('ABSOLU','RELATIF'),position='global'), + b_acce =BLOC( condition = "NOM_CHAM=='ACCE'", + regles=(UN_PARMI('LIST_FREQ','FREQ'),), + AMOR_SPEC =SIMP(statut='o',typ='R',max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + FREQ =SIMP(statut='f',typ='R',max='**'), + NORME =SIMP(statut='o',typ='R'), + RESU =FACT(statut='o',max='**', + regles=(UN_PARMI('RESU_GENE','RESULTAT'),), + RESU_GENE =SIMP(statut='f',typ=tran_gene), + RESULTAT =SIMP(statut='f',typ=(dyna_trans,evol_noli)), + b_calc =BLOC( condition = "CALCUL=='RELATIF'", + ACCE_X =SIMP(statut='o',typ=fonction_sdaster), + ACCE_Y =SIMP(statut='o',typ=fonction_sdaster), + ACCE_Z =SIMP(statut='o',typ=fonction_sdaster),), ), + IMPRESSION =FACT(statut='f', + TRI =SIMP(statut='f',typ='TXM',defaut='AMOR_SPEC',into=("AMOR_SPEC","DIRECTION",),), + FORMAT =SIMP(statut='f',typ='TXM',defaut='TABLEAU',into=("TABLEAU","XMGRACE",),), + UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", + PILOTE =SIMP(statut='f',typ='TXM',defaut='', + into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),),), + TOUT =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON",),), + ), + ), + b_depl =BLOC( condition = "NOM_CHAM=='DEPL'", + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + RESU =FACT(statut='o',max=3, + regles=(UN_PARMI('RESU_GENE','RESULTAT'),), + RESU_GENE =SIMP(statut='f',typ=tran_gene), + RESULTAT =SIMP(statut='f',typ=(dyna_trans,evol_noli)), + b_calc =BLOC( condition = "CALCUL=='ABSOLU'", + DEPL_X =SIMP(statut='o',typ=fonction_sdaster), + DEPL_Y =SIMP(statut='o',typ=fonction_sdaster), + DEPL_Z =SIMP(statut='o',typ=fonction_sdaster),),), + ), +) +#& MODIF COMMANDE DATE 12/09/2006 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. +# +# 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 G8BHHXD X.DESROCHES +COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, + reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières", + UIinfo={"groupes":("Post traitements",)}, + RESULTAT =SIMP(statut='o',typ=(fourier_elas,fourier_ther),), + ANGL =SIMP(statut='o',typ='R',max='**'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=6, + into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL","TEMP","FLUX_ELNO_TEMP"),), +) ; +#& MODIF COMMANDE DATE 29/01/2007 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. +# +# 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 VABHHTS J.PELLET +def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args): + if COMB_C != None: + type_mat = AsType(COMB_C[0]['MATR_ASSE']) + if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c + if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c + if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c + if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c + elif COMB_R != None: + type_mat = AsType(COMB_R[0]['MATR_ASSE']) + if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r + if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r + if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r + if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r + elif CALC_AMOR_GENE != None: return matr_asse_gene_r + raise AsException("type de concept resultat non prevu") + +COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, + fr="Effectuer la combinaison linéaire de matrices assemblées", + reentrant='f', + UIinfo={"groupes":("Résultats et champs",)}, + regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),), + COMB_R =FACT(statut='f',max='**', + PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), + MATR_ASSE =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,matr_asse_gene_r,matr_asse_gene_c ) ), + COEF_R =SIMP(statut='o',typ='R' ), + ), + COMB_C =FACT(statut='f',max='**', + regles=(UN_PARMI('COEF_R','COEF_C' ),), + MATR_ASSE =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,matr_asse_gene_r,matr_asse_gene_c ) ), + COEF_R =SIMP(statut='f',typ='R' ), + COEF_C =SIMP(statut='f',typ='C' ), + ), + CALC_AMOR_GENE =FACT(statut='f', + RIGI_GENE = SIMP(statut='o', typ=matr_asse_gene_r), + MASS_GENE = SIMP(statut='o', typ=matr_asse_gene_r), + regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),), + AMOR_REDUIT = SIMP(statut='f',typ='R',max='**'), + LIST_AMOR = SIMP(statut='f',typ=listr8_sdaster ), + ), + SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), +) ; +#& MODIF COMMANDE DATE 03/01/2006 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. +# +# 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. +# ====================================================================== +COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, + fr="Réponse sismique par recombinaison modale par une méthode spectrale", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), + UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), + 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 ), + 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 ), + b_freq =BLOC(condition = "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") ), + ), + MODE_CORR =SIMP(statut='f',typ=mode_stat_acce ), + + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), + AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), + + MASS_INER =SIMP(statut='f',typ=table_sdaster ), + CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + + EXCIT =FACT(statut='o',max='**', + regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'), + UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),), + + MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",), + TRI_AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",), + TRI_SPEC =SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Excitation suivant les trois axes avec trois spectres"), + b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe", + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), + ECHELLE =SIMP(statut='f',typ='R',), + ), + b_tri_axe =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre", + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), + ECHELLE =SIMP(statut='f',typ='R',), + ), + b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres", + SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),min=3,max=3 ), + ECHELLE =SIMP(statut='f',typ='R',min=3,max=3), + ), + NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ), + ), + COMB_MODE =FACT(statut='o', + TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ), + DUREE =SIMP(statut='f',typ='R' ), + ), + COMB_DIRECTION =FACT(statut='f', + TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ), + ), + COMB_MULT_APPUI =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ), + ), + COMB_DEPL_APPUI=FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','LIST_CAS'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + LIST_CAS =SIMP(statut='f',typ='I',max='**'), + TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ), + ), + DEPL_MULT_APPUI =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO'), + AU_MOINS_UN('DX','DY','DZ' ),), + NOM_CAS =SIMP(statut='o',typ='TXM',max='**'), + NUME_CAS =SIMP(statut='o',typ='I',max='**'), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,), ), + NOEUD_REFE =SIMP(statut='f',typ=no), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DX =SIMP(statut='f',typ='R' ), + DY =SIMP(statut='f',typ='R' ), + DZ =SIMP(statut='f',typ='R' ), + ), + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9, + into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", + "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART", + "SIPO_ELNO_DEPL") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), + IMPRESSION =FACT(statut='f',max='**', + regles=(EXCLUS('TOUT','NIVEAU'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 12/09/2006 AUTEUR REZETTE C.REZETTE +# RESPONSABLE VABHHTS 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. +# +# 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 crea_champ_prod(TYPE_CHAM,**args): + if TYPE_CHAM[0:5] == "CART_" : + return carte_sdaster + elif TYPE_CHAM[0:5] == "NOEU_" : + return cham_no_sdaster + elif TYPE_CHAM[0:2] == "EL" : + return cham_elem + else : + raise AsException("type de concept resultat_sdaster non prevu") + + +CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, + fr="Création d'un champ ",reentrant='n', + 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 +# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS : +# ------------------------------------------------------------------ + regles=(EXCLUS('NUME_DDL','CHAM_NO',)), + NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), + CHAM_NO =SIMP(statut='f',typ=(cham_no_sdaster) ), + +# SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ : +# (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM) +# ------------------------------------------------------------------ + OPTION =SIMP(statut='f',typ='TXM'), + + OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE","R2C","C2R") ), + +# ------------------------------------------------------------------ + b_norm =BLOC(condition = "OPERATION == 'NORMALE'", + regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), +# ------------------------------------------------------------------ + b_affe =BLOC(condition = "OPERATION == 'AFFE'", + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), + MODELE =SIMP(statut='f',typ=(modele_sdaster) ), + b_affe_modele =BLOC(condition = "MODELE != None", + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), + AFFE =FACT(statut='o',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), + UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),), + 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='**'), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + VALE =SIMP(statut='f',typ='R',max='**' ), + VALE_I =SIMP(statut='f',typ='I',max='**' ), + VALE_C =SIMP(statut='f',typ='C',max='**' ), + VALE_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), + ), + ), +# ------------------------------------------------------------------ + b_asse =BLOC(condition = "OPERATION == 'ASSE'", + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), + MODELE =SIMP(statut='f',typ=(modele_sdaster) ), + b_asse_modele =BLOC(condition = "MODELE != None", + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), + ASSE =FACT(statut='o',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), + PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), + NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ), + CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), + COEF_C =SIMP(statut='f',typ='C',max=1), + ), + ), +# ------------------------------------------------------------------ + b_eval =BLOC(condition = "OPERATION == 'EVAL'", + CHAM_F =SIMP(statut='o',typ=cham_gd_sdaster), + CHAM_PARA =SIMP(statut='o',typ=cham_gd_sdaster,max='**'), + ), +# ------------------------------------------------------------------ + b_r2c =BLOC(condition = "OPERATION == 'R2C'", + CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), + ), +# ------------------------------------------------------------------ + b_c2r =BLOC(condition = "OPERATION == 'C2R'", + CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), + PARTIE =SIMP(statut='o',typ='TXM',into=('REEL','IMAG'),), + ), +# ------------------------------------------------------------------ + b_disc =BLOC(condition = "OPERATION == 'DISC'", + MODELE =SIMP(statut='f',typ=(modele_sdaster) ), + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), + ), +# ------------------------------------------------------------------ + b_extr =BLOC(condition = "OPERATION == 'EXTR'", + regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), + FISSURE =SIMP(statut='f',typ=(fiss_xfem) ), + RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ), + TABLE =SIMP(statut='f',typ=(table_sdaster),min=1,max=1), + b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None", + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)), + ), + b_extr_fissure =BLOC(condition = "FISSURE != None", + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO","STNO","STNOR","BASLOC")), + ), + b_extr_table =BLOC(condition = "TABLE != None", + regles=( EXCLUS('MODELE','MAILLAGE'), + EXCLUS('PROL_ZERO','MAILLAGE'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster),), + MODELE =SIMP(statut='f',typ=(modele_sdaster),), + OPTION =SIMP(statut='f',typ='TXM'), + PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + ), + b_extr_resultat =BLOC(condition = "RESULTAT != None", + regles=(DERIVABLE('RESULTAT'),), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ), + + # si TYPE_MAXI, on spécifie en général plusieurs numéros d'ordre : + b_type_maxi =BLOC(condition = "TYPE_MAXI != None", + TYPE_RESU =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ), + + regles=(EXCLUS('TOUT_ORDRE','LIST_INST','LIST_FREQ','NUME_ORDRE','INST', + 'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), + LIST_FREQ =SIMP(statut='f',typ=(listr8_sdaster) ), + NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), + INST =SIMP(statut='f',typ='R',max='**'), + FREQ =SIMP(statut='f',typ='R',max='**'), + NUME_MODE =SIMP(statut='f',typ='I',max='**'), + NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), + ANGL =SIMP(statut='f',typ='R',max='**'), + ), + + # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre : + b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None", + regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), + NUME_ORDRE =SIMP(statut='f',typ='I'), + INST =SIMP(statut='f',typ='R'), + FREQ =SIMP(statut='f',typ='R'), + NUME_MODE =SIMP(statut='f',typ='I'), + NOEUD_CMP =SIMP(statut='f',typ='TXM',max=2), + NOM_CAS =SIMP(statut='f',typ='TXM'), + ANGL =SIMP(statut='f',typ='R'), + + 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",) ), + + ), # fin bloc b_extr + + + ), +# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULTAT : +#----------------------------------------------------- + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 13/12/2006 AUTEUR PELLET J.PELLET +# RESPONSABLE MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, + reentrant='n',fr="Crée un maillage à partir d'un maillage existant", + UIinfo={"groupes":("Maillage",)}, + regles=(EXCLUS('ECLA_PG','CREA_MAILLE'), + EXCLUS('ECLA_PG','CREA_GROUP_MA'), + EXCLUS('ECLA_PG','DETR_GROUP_MA'), + EXCLUS('ECLA_PG','MODI_MAILLE'), + EXCLUS('ECLA_PG','LINE_QUAD'), + EXCLUS('ECLA_PG','CREA_FISS'), + EXCLUS('ECLA_PG','COQU_VOLU'), + EXCLUS('LINE_QUAD','MODI_MAILLE'), + EXCLUS('LINE_QUAD','CREA_MAILLE'), + EXCLUS('LINE_QUAD','CREA_GROUP_MA'), + EXCLUS('LINE_QUAD','DETR_GROUP_MA'), + EXCLUS('LINE_QUAD','CREA_FISS'), + EXCLUS('LINE_QUAD','COQU_VOLU'), + EXCLUS('CREA_FISS','MODI_MAILLE'), + EXCLUS('CREA_FISS','CREA_MAILLE'), + EXCLUS('CREA_FISS','CREA_GROUP_MA'), + EXCLUS('CREA_FISS','DETR_GROUP_MA'), + EXCLUS('CREA_FISS','COQU_VOLU'), + EXCLUS('COQU_VOLU','MODI_MAILLE'), + EXCLUS('COQU_VOLU','CREA_MAILLE'), + EXCLUS('COQU_VOLU','CREA_GROUP_MA'), + EXCLUS('COQU_VOLU','DETR_GROUP_MA'), + ), + + # le MAILLAGE est inutile si ECLA_PG + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), + + CREA_POI1 =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds", + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),), + NOM_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='**'), + 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='**'), + ), + CREA_MAILLE =FACT(statut='f',max='**',fr="Duplication de mailles", + regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),), + 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='**'), + PREF_MAILLE =SIMP(statut='o',typ='TXM' ), + PREF_NUME =SIMP(statut='f',typ='I' ), + ), + CREA_GROUP_MA =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles", + regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), + NOM =SIMP(statut='o',typ='TXM'), + 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='**'), + PREF_MAILLE =SIMP(statut='o',typ='TXM' ), + PREF_NUME =SIMP(statut='f',typ='I' ), + ), + DETR_GROUP_MA =FACT(statut='f',fr="Destruction de groupes de mailles", + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + NB_MAILLE =SIMP(statut='f',typ='I',defaut= 0, + fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ), + ), + COQU_VOLU =FACT(statut='f', + fr="Creation de mailles volumiques à partir de mailles surfaciques", + NOM =SIMP(statut='o',typ='TXM'), + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'), + EPAIS =SIMP(statut='o',typ='R' ), + PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), + PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS" ), + PREF_NUME =SIMP(statut='f',typ='I' ,defaut=1 ), + PLAN =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")), + b_MOY =BLOC(condition = "PLAN == 'MOY'", + TRANSLATION =SIMP(statut='o',typ='TXM',into=("SUP","INF") ), + ), + ), + 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='**'), + 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'", + PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), + PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), + ), + b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'", + PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), + PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), + ), + ), + CREA_FISS = FACT(statut='f',max='**',fr="Creation d'une fissure potentielle avec elts de joint ou elts à disc", + NOM =SIMP(statut='o',typ='TXM'), + GROUP_NO_1 =SIMP(statut='o',typ=grno), + GROUP_NO_2 =SIMP(statut='o',typ=grno), + PREF_MAILLE =SIMP(statut='o',typ='TXM'), + PREF_NUME =SIMP(statut='f',typ='I',defaut=1 ), + ), + 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='**'), + 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='**'), + ), + REPERE =FACT(statut='f',max='**', + fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre", + TABLE =SIMP(statut='o',typ=table_sdaster, + fr="Nom de la table contenant les caractéristiques de la section de poutre" ), + NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ), + NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ), + b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'", + GROUP_MA =SIMP(statut='f',typ=grma, + fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"), + ), + ), + ECLA_PG =FACT(statut='f', + fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss", + MODELE =SIMP(statut='o',typ=modele_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='**'), + SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), + TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +# + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 28/03/2007 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. +# +# 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 crea_resu_prod(TYPE_RESU,**args): + if TYPE_RESU == "EVOL_ELAS" : return evol_elas + 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 == "FOURIER_ELAS" : return fourier_elas + if TYPE_RESU == "FOURIER_THER" : return fourier_ther + if TYPE_RESU == "EVOL_VARC" : return evol_varc + if TYPE_RESU == "EVOL_CHAR" : return evol_char + raise AsException("type de concept resultat non prevu") + +CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', + UIinfo={"groupes":("Modélisation",)}, + 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","PREP_VRC1","PREP_VRC2",), + fr="choix de la fonction a activer",), + + 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") ), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + + AFFE =FACT(statut='o',max='**', + CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), + MODELE =SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + + 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') or (TYPE_RESU=='EVOL_CHAR'))", + 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), + NUME_FIN =SIMP(statut='f',typ='I', val_min=1), + PRECISION =SIMP(statut='f',typ='R',defaut= 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_ecla_pg =BLOC(condition = "OPERATION == 'ECLA_PG'", + + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ), + + ECLA_PG =FACT(statut='o', + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + MODELE_INIT =SIMP(statut='o',typ=modele_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='**'), + RESU_INIT =SIMP(statut='o',typ=resultat_sdaster), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + 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), + 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_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'", + + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ), + 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'), + MAILLAGE_INIT =SIMP(statut='o',typ=maillage_sdaster,), + RESU_FINAL =SIMP(statut='o',typ=evol_noli,), + MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), + PERM_CHAM =FACT(statut='o',max='**', + GROUP_MA_FINAL =SIMP(statut='o',typ=grma), + GROUP_MA_INIT =SIMP(statut='o',typ=grma), + TRAN =SIMP(statut='o',typ='R',max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + ), + ), + + b_prol_rtz =BLOC(condition = "OPERATION == 'PROL_RTZ'", + + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ), + + PROL_RTZ =FACT(statut='o', + regles=(EXCLUS('INST','LIST_INST'),), + MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), + 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)", + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + 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",),), + REPERE =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),), + ORIGINE =SIMP(statut='o',typ='R',min=3,max=3), + AXE_Z =SIMP(statut='o',typ='R',min=3,max=3), + ), + ), + + b_prep_vrc1 =BLOC(condition = "OPERATION == 'PREP_VRC1'", + # calculer la température dans les couches des coques multicouche à partir d'un champ de fonctions + # de fonctions du temps et de l'espace (épaisseur) + + TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ), + + PREP_VRC1 =FACT(statut='o',max=1, + CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), # carte de fonctions du temps et de l'épaisseur + MODELE =SIMP(statut='o',typ=modele_sdaster), # modèle mécanique contenant les coques multicouche + CARA_ELEM =SIMP(statut='o',typ=cara_elem), # CARA_ELEM pour connaitre EPAIS et COQU_NCOU + INST =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**'), + ), + ), + + b_prep_vrc2 =BLOC(condition = "OPERATION == 'PREP_VRC2'", + # calculer la température dans les couches des coques multicouche à partir d'un evol_ther "coque" + # contenant TEMP/TEMP_INF/TEMP_SUP + + TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ), + + PREP_VRC2 =FACT(statut='o',max=1, + EVOL_THER =SIMP(statut='o',typ=(evol_ther)), # evol_ther de type "coque" (TEMP/TEMP_INF/TEMP_SUP) + MODELE =SIMP(statut='o',typ=modele_sdaster), # modèle mécanique contenant les coques multicouche + CARA_ELEM =SIMP(statut='o',typ=cara_elem), # CARA_ELEM pour connaitre EPAIS et COQU_NCOU + ), + ), +) ; +#& MODIF COMMANDE DATE 03/10/2005 AUTEUR NICOLAS O.NICOLAS +# 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. +# ====================================================================== +DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale, + reentrant='f', + fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale", + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS','ORTHO_BASE'),), + CLASSIQUE =FACT(statut='f', + INTERF_DYNA =SIMP(statut='o',typ=interf_dyna_clas ), + MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), + NMAX_MODE =SIMP(statut='f',typ='I',defaut= 10 ), + ), + RITZ =FACT(statut='f',max='**', + regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),), + MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ), + NMAX_MODE =SIMP(statut='f',typ='I',defaut= 999 ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), + MULT_ELAS =SIMP(statut='f',typ=mult_elas ), + BASE_MODALE =SIMP(statut='f',typ=base_modale ), + ), + b_ritz =BLOC(condition = "RITZ != None", + INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ), + NUME_REF =SIMP(statut='o',typ=nume_ddl_sdaster ), + ORTHO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Reorthonormalisation de la base de Ritz" ), + b_ortho =BLOC(condition = "ORTHO == 'OUI' ", + MATRICE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ), + ), + ), + DIAG_MASS =FACT(statut='f',max='**', + MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), + MODE_STAT =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), + ), + ORTHO_BASE =FACT(statut='f',max='**', + 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 ) ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 26/03/2007 AUTEUR ASSIRE A.ASSIRE +# 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. +# ====================================================================== + +from Macro.defi_cable_bp_ops import defi_cable_bp_ops + +# =========================================================================== +# CATALOGUE DE LA MACRO "DEFI_CABLE_BP" +# ----------------------------------------- +# +# USAGE : +# Entrée : +# - MODELE +# - CABLE +# - CHAM_MATER +# - CARA_ELEM +# - GROUP_MA_BETON +# - DEFI_CABLE +# - TENSION_INIT +# - RECUL_ANCRAGE +# - RELAXATION +# - CONE +# RAYON +# LONGUEUR +# PRESENT OUI ou NON deux fois +# - TITRE +# - INFO 1 / 2 +# +# =========================================================================== + +DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont, + fr="Calculer les profils initiaux de tension le long des cables de précontrainte d'une structure en béton", + reentrant='n',UIinfo={"groupe":("Modélisation",)}, + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), + DEFI_CABLE =FACT(statut='o',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), + MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma), + NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), + GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + ), + TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), + TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), + RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), + RELAXATION =FACT(statut='f',min=0, + R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), + ), + CONE =FACT(statut='f', + RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), + LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0 ), + PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction_sdaster, + fr="Définir la valeur d'une grandeur invariante", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), + VALE =SIMP(statut='o',typ='R',), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + fr="Déterminer les caractéristiques matériaux homogénéisées d'une coque multicouche à partir" + +" des caractéristiques de chaque couche", + COUCHE =FACT(statut='o',max='**', + EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), + MATER =SIMP(statut='o',typ=(mater_sdaster) ), + ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.E+0, + val_min=-90.E+0,val_max=90.E+0 ), + ), + IMPRESSION =FACT(statut='f', + UNITE =SIMP(statut='f',typ='I',defaut=8), + ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, + reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement", + UIinfo={"groupes":("Maillage",)}, + regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),), + FAISCEAU_TRANS =FACT(statut='f',max='**', + regles=( ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),), + COUPLAGE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PROF_RHO_F_INT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PROF_RHO_F_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ), + COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), + TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ), + TYPE_RESEAU =SIMP(statut='f',typ='I' ), + UNITE_CD =SIMP(statut='f',typ='I',defaut=70), + UNITE_CK =SIMP(statut='f',typ='I',defaut=71), + PAS =SIMP(statut='f',typ='R' ), + CSTE_CONNORS =SIMP(statut='f',typ='R',min=2,max=2,val_min=0.E+00), + NB_CONNORS =SIMP(statut='f',typ='I',val_min=2,), + RHO_TUBE =SIMP(statut='f',typ='R' ), + ), + GRAPPE =FACT(statut='f', + regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',), + PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),), +# peut on créer un bloc a partir de la valeur de couplage + COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ), + GRAPPE_2 =SIMP(statut='f',typ='TXM', + into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ), + NOEUD =SIMP(statut='f',typ=no), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + MODELE =SIMP(statut='f',typ=modele_sdaster ), + COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), + RHO_FLUI =SIMP(statut='f',typ='R' ), + UNITE_CA =SIMP(statut='f',typ='I',defaut=70), + UNITE_KA =SIMP(statut='f',typ='I',defaut=71), + ), + FAISCEAU_AXIAL =FACT(statut='f',max='**', + regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'), + UN_PARMI('CARA_ELEM','RAYON_TUBE'), + ENSEMBLE('RAYON_TUBE','COOR_TUBE'), + PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'), + ENSEMBLE('CARA_PAROI','VALE_PAROI'), + ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG', + 'COOR_GRILLE','TYPE_GRILLE', ),), +# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ), + VECT_X =SIMP(statut='f',typ='R',max=3), + PROF_RHO_FLUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PROF_VISC_CINE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + RAYON_TUBE =SIMP(statut='f',typ='R' ), + COOR_TUBE =SIMP(statut='f',typ='R',max='**'), + PESANTEUR =SIMP(statut='f',typ='R',min=4,max=4), + RUGO_TUBE =SIMP(statut='f',typ='R' ), + CARA_PAROI =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5, + into=("YC","ZC","R","HY","HZ") ), + VALE_PAROI =SIMP(statut='f',typ='R',max=5), + ANGL_VRIL =SIMP(statut='f',typ='R' ), + LONG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + LARG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + EPAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + RUGO_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), + COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'), + COOR_GRILLE =SIMP(statut='f',typ='R',max='**'), + TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'), + ), + COQUE_COAX =FACT(statut='f', + MASS_AJOU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + GROUP_MA_INT =SIMP(statut='o',typ=grma), + GROUP_MA_EXT =SIMP(statut='o',typ=grma), + VECT_X =SIMP(statut='o',typ='R',max='**'), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + MATER_INT =SIMP(statut='o',typ=mater_sdaster ), + MATER_EXT =SIMP(statut='o',typ=mater_sdaster ), + RHO_FLUI =SIMP(statut='o',typ='R' ), + VISC_CINE =SIMP(statut='o',typ='R' ), + RUGOSITE =SIMP(statut='o',typ='R' ), + PDC_MOY_1 =SIMP(statut='o',typ='R' ), + PDC_DYN_1 =SIMP(statut='o',typ='R' ), + PDC_MOY_2 =SIMP(statut='o',typ='R' ), + PDC_DYN_2 =SIMP(statut='o',typ='R' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + fr="Définir une fonction du temps intervenant dans le calcul des forces de LAPLACE", + regles=(UN_PARMI('COUR_PRIN','COUR'), + EXCLUS('COUR','COUR_SECO'), ), + FREQ =SIMP(statut='f',typ='R',defaut= 50.), + SIGNAL =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ), + COUR =FACT(statut='f',max='**', + fr="Définition du courant de court-circuit", + regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'), + UN_PARMI('PHI_CC_2','INTC_CC_2'),), + INTE_CC_1 =SIMP(statut='o',typ='R'), + TAU_CC_1 =SIMP(statut='o',typ='R'), + PHI_CC_1 =SIMP(statut='f',typ='R'), + INTC_CC_1 =SIMP(statut='f',typ='R'), + INTE_CC_2 =SIMP(statut='o',typ='R'), + TAU_CC_2 =SIMP(statut='o',typ='R'), + PHI_CC_2 =SIMP(statut='f',typ='R'), + INTC_CC_2 =SIMP(statut='f',typ='R'), + INST_CC_INIT =SIMP(statut='o',typ='R'), + INST_CC_FIN =SIMP(statut='o',typ='R'), + ), + COUR_PRIN =FACT(statut='f', + fr="Définition du courant de court-circuit avec réenclenchement", + regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),), + INTE_CC_1 =SIMP(statut='o',typ='R'), + TAU_CC_1 =SIMP(statut='o',typ='R'), + PHI_CC_1 =SIMP(statut='f',typ='R'), + INTC_CC_1 =SIMP(statut='f',typ='R'), + INTE_RENC_1 =SIMP(statut='f',typ='R'), + TAU_RENC_1 =SIMP(statut='f',typ='R'), + PHI_RENC_1 =SIMP(statut='f',typ='R'), + INST_CC_INIT =SIMP(statut='o',typ='R'), + INST_CC_FIN =SIMP(statut='o',typ='R'), + INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0), + INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0), + ), + COUR_SECO =FACT(statut='f',max='**', + fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN", + regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),), + INTE_CC_2 =SIMP(statut='o',typ='R'), + TAU_CC_2 =SIMP(statut='o',typ='R'), + PHI_CC_2 =SIMP(statut='f',typ='R'), + INTC_CC_2 =SIMP(statut='f',typ='R'), + INTE_RENC_2 =SIMP(statut='f',typ='R'), + TAU_RENC_2 =SIMP(statut='f',typ='R'), + PHI_RENC_2 =SIMP(statut='f',typ='R'), + DIST =SIMP(statut='f',typ='R',defaut=1.0E+0), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster, + reentrant='n', + fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre", + UIinfo={"groupes":("Fonction",)}, + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), + NOEUD_INIT =SIMP(statut='o',typ=no), + NOEUD_FIN =SIMP(statut='o',typ=no), + VITE =FACT(statut='o', + VALE =SIMP(statut='f',typ='R',defaut= 1. ), + PROFIL =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ), + NB_BAV =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ), + ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN", + into=("NON","LIN","LOG") ), + 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") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 MCOURTOI M.COURTOIS +def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args): + if VALE != None : return fonction_sdaster + if VALE_C != None : return fonction_c + if VALE_PARA != None : return fonction_sdaster + if NOEUD_PARA != None : return fonction_sdaster + raise AsException("type de concept resultat non prevu") + +DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod + ,fr="Définit une fonction réelle ou complexe d'une variable réelle", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),), + NOM_PARA =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), + VALE =SIMP(statut='f',typ='R',min=2,max='**', + fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"), + VALE_C =SIMP(statut='f',typ='R',min=2,max='**', + fr ="Fonction complexe définie par une liste de couples"), + VALE_PARA =SIMP(statut='f',typ=listr8_sdaster, + fr ="Fonction réelle définie par deux concepts de type listr8" ), + b_vale_para =BLOC(condition = "VALE_PARA != None", + VALE_FONC =SIMP(statut='o',typ=listr8_sdaster ), + ), + NOEUD_PARA =SIMP(statut='f',typ=no,max='**', + fr ="Fonction réelle définie par une liste de noeuds et un maillage"), + b_noeud_para =BLOC(condition = "NOEUD_PARA != None", + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + VALE_Y =SIMP(statut='o',typ='R',max='**'), + ), + + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + 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") ), + VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 05/03/2007 AUTEUR GALENNE E.GALENNE +# 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. +# ====================================================================== +DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="Définition de lèvres et d'un fond de fissure en 3D", + regles=(UN_PARMI('FOND_FISS','FOND_FERME','FOND_INF'), + EXCLUS('FOND_FERME','DTAN_ORIG'), + EXCLUS('FOND_FERME','DTAN_EXTR'), + EXCLUS('FOND_FERME','VECT_GRNO_ORIG'), + EXCLUS('FOND_FERME','VECT_GRNO_EXTR'), + UN_PARMI('LEVRE_SUP','NORMALE'), + EXCLUS('LEVRE_INF','NORMALE'), + ENSEMBLE('DTAN_ORIG','DTAN_EXTR'), + ENSEMBLE('FOND_SUP','FOND_INF'), + EXCLUS('FOND_INF','FOND_FISS'), + EXCLUS('FOND_INF','FOND_FERME'), + ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'), + EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'), + EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + FOND_FISS =FACT(statut='f', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), + EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), + 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='**'), +# à mettre à jour le max vaut-il 1 + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + ), + FOND_FERME =FACT(statut='f', + regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), + EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),), + 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='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + MAILLE_ORIG =SIMP(statut='f',typ=ma,), + GROUP_MA_ORIG =SIMP(statut='f',typ=ma,), + ), + FOND_INF =FACT(statut='f', + 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='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + ), + FOND_SUP =FACT(statut='f', + 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='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + ), + LEVRE_SUP =FACT(statut='f', + regles=(UN_PARMI('GROUP_MA','MAILLE'),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), + LEVRE_INF =FACT(statut='f', + regles=(UN_PARMI('GROUP_MA','MAILLE', ),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + ), + NORMALE =SIMP(statut='f',typ='R',max='**'), + PREC_NORM =SIMP(statut='f',typ='R',defaut=0.1), + DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), + DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), + VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 04/07/2005 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. +# +# 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 VABHHTS J.PELLET +def defi_group_prod(MAILLAGE,**args): + if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster + if AsType(MAILLAGE) == squelette : return squelette + raise AsException("type de concept resultat non prevu") + +DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, + fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage", + reentrant='o', + UIinfo={"groupes":("Maillage",)}, + regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),), + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), + DETR_GROUP_MA =FACT(statut='f',max='**', + NOM =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),), + DETR_GROUP_NO =FACT(statut='f',max='**', + NOM =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),), + CREA_GROUP_MA =FACT(statut='f',max='**', + +regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),), +# quel est le concept attendu deriere NOM + NOM =SIMP(statut='o',typ=grma), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + INTERSEC =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + UNION =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + DIFFE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE","APPUI_LACHE") ), + b_group_ma =BLOC(condition = "GROUP_MA != None", + regles=(EXCLUS('POSITION','NUME_INIT'),), + NUME_INIT =SIMP(statut='f',typ='I'), + POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), + b_nume_init =BLOC(condition = "NUME_INIT != None", + NUME_FIN =SIMP(statut='f',typ='I' ), + ), + ), + b_face_normale =BLOC(condition = "OPTION == 'FACE_NORMALE'", + regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + ANGL_NAUT =SIMP(statut='f',typ='R',max=2), + VECT_NORMALE =SIMP(statut='f',typ='R',max=3), + ANGL_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ), + VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + b_sphere =BLOC(condition = "OPTION == 'SPHERE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), + POINT =SIMP(statut='f',typ='R',max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), + RAYON =SIMP(statut='o',typ='R' ), + ), + b_cylindre =BLOC(condition = "OPTION == 'CYLINDRE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + POINT =SIMP(statut='f',typ='R',max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), + RAYON =SIMP(statut='o',typ='R' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=2), + VECT_NORMALE =SIMP(statut='f',typ='R',max=3), + ), + b_bande =BLOC(condition = "OPTION == 'BANDE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + POINT =SIMP(statut='f',typ='R' ,max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + DIST =SIMP(statut='o',typ='R' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=2), + VECT_NORMALE =SIMP(statut='f',typ='R',max=3), + ), + b_app_lache =BLOC(condition = "OPTION == 'APPUI_LACHE'", + regles=(UN_PARMI('NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + ), + CREA_GROUP_NO =FACT(statut='f',max='**', + OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN", + "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ), + + b_option =BLOC(condition = "OPTION == None" , + regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD', + 'INTERSEC','UNION','DIFFE'),), + TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + INTERSEC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + UNION =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + DIFFE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + + b_nom_group_ma =BLOC(condition = "GROUP_MA != None", + NOM = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS", + into=("TOUS","SOMMET","MILIEU","CENTRE"),), + ), + b_group_no =BLOC(condition = "GROUP_NO != None", + regles=(EXCLUS('POSITION','NUME_INIT'),), + NUME_INIT =SIMP(statut='f',typ='I'), + POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), + b_nume_init =BLOC(condition = "NUME_INIT != None", + NUME_FIN =SIMP(statut='f',typ='I' ), + ), + ), + b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" , + NOM =SIMP(statut='o',typ=geom), + ), + ), + + b_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), + NOM =SIMP(statut='o',typ=geom), + POINT =SIMP(statut='f',typ='R' ,max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + RAYON =SIMP(statut='o',typ='R' ), + PRECISION =SIMP(statut='o',typ='R' ), + ), + b_env_cylindre =BLOC(condition = "OPTION == 'ENV_CYLINDRE'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + NOM =SIMP(statut='o',typ=geom), + POINT =SIMP(statut='f',typ='R' ,max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + RAYON =SIMP(statut='o',typ='R' ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + VECT_NORMALE =SIMP(statut='f',typ='R',max=3), + PRECISION =SIMP(statut='o',typ='R' ), + ), + b_env_plan =BLOC(condition = "OPTION == 'PLAN'", + regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), + NOM =SIMP(statut='o',typ=geom), + POINT =SIMP(statut='f',typ='R' ,max=3), + NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + ANGL_NAUT =SIMP(statut='f',typ='R' ,max=3), + VECT_NORMALE =SIMP(statut='f',typ='R' ,max=3), + PRECISION =SIMP(statut='o',typ='R' ), + ), + b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'", + regles=(AU_MOINS_UN('NOEUD','GROUP_NO'), + UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'), + UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),), + NOM =SIMP(statut='o',typ=geom), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno), + NOEUD_EXTR =SIMP(statut='f',typ=no), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno), + PRECISION =SIMP(statut='o',typ='R' ), + CRITERE =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ), + ), + b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'", + regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), + NOM =SIMP(statut='o',typ=geom), + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno), + NOEUD_EXTR =SIMP(statut='f',typ=no), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno), + ), + b_tunnel =BLOC(condition = "OPTION == 'TUNNEL'", + regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'), + EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),), + NOM =SIMP(statut='o',typ=geom), + 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_MA_AXE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_AXE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD_ORIG =SIMP(statut='f',typ=no), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno), + RAYON =SIMP(statut='o',typ='R'), + LONGUEUR =SIMP(statut='f',typ='R'), + ), + ), + ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +from Macro.defi_inte_spec_ops import defi_inte_spec_ops + +DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC",op= defi_inte_spec_ops,sd_prod=table_fonction, + reentrant='n', + fr="Définit une matrice interspectrale", + UIinfo={"groupes":("Fonction",)}, + + DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), + + PAR_FONCTION =FACT(statut='f',max='**', + NUME_ORDRE_I =SIMP(statut='o',typ='I' ), + NUME_ORDRE_J =SIMP(statut='o',typ='I' ), + FONCTION =SIMP(statut='o',typ=fonction_c ), + ), + KANAI_TAJIMI =FACT(statut='f',max='**', + regles=(EXCLUS('VALE_R','VALE_C'),), + NUME_ORDRE_I =SIMP(statut='o',typ='I' ), + NUME_ORDRE_J =SIMP(statut='o',typ='I' ), + FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), + PAS =SIMP(statut='f',typ='R',defaut= 1. ), + AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ), + FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ), + VALE_R =SIMP(statut='f',typ='R' ), + VALE_C =SIMP(statut='f',typ='C' ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + 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") ), + ), + CONSTANT =FACT(statut='f',max='**', + regles=(EXCLUS('VALE_R','VALE_C'),), + NUME_ORDRE_I =SIMP(statut='o',typ='I' ), + NUME_ORDRE_J =SIMP(statut='o',typ='I' ), + FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), + PAS =SIMP(statut='f',typ='R',defaut= 1. ), + VALE_R =SIMP(statut='f',typ='R' ), + VALE_C =SIMP(statut='f',typ='C' ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + 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") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 26/06/2006 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. +# ====================================================================== +DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Définir les interfaces d'une structure et leur affecter un type", + NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), + INTERFACE =FACT(statut='o',max='**', + regles=(ENSEMBLE('NOM','TYPE'), +# erreur doc U sur la condition qui suit + UN_PARMI('NOEUD','GROUP_NO'),), + NOM =SIMP(statut='f',typ='TXM' ), + TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ), + NOEUD =SIMP(statut='f',typ=no,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,max='**'), +# DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), + MASQUE =SIMP(statut='f',typ='TXM',max='**'), + ), + FREQ =SIMP(statut='f',typ='R',defaut= 1.), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 VABHHTS J.PELLET +DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, + fr="Définir une liste d'entier strictement croissante", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('VALE','DEBUT'), + EXCLUS('VALE','INTERVALLE'),), + VALE =SIMP(statut='f',typ='I',max='**'), + DEBUT =SIMP(statut='f',typ='I'), + INTERVALLE =FACT(statut='f',max='**', + regles=(UN_PARMI('NOMBRE','PAS'),), + JUSQU_A =SIMP(statut='o',typ='I'), + NOMBRE =SIMP(statut='f',typ='I',val_min=1,), + PAS =SIMP(statut='f',typ='I',val_min=1,), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 VABHHTS J.PELLET +DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, + fr="Définir une liste de réels strictement croissante", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('VALE','DEBUT',), + EXCLUS('VALE','INTERVALLE'), + ENSEMBLE('DEBUT','INTERVALLE')), + VALE =SIMP(statut='f',typ='R',max='**'), + DEBUT =SIMP(statut='f',typ='R'), + INTERVALLE =FACT(statut='f',max='**', + regles=(UN_PARMI('NOMBRE','PAS'),), + JUSQU_A =SIMP(statut='o',typ='R'), + NOMBRE =SIMP(statut='f',typ='I'), + PAS =SIMP(statut='f',typ='R'), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 12/03/2007 AUTEUR DEVESA G.DEVESA +# 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 VABHHTS J.PELLET +DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, + fr="Définition d'un nouveau maillage à partir de macro-éléments", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + DEFI_SUPER_MAILLE =FACT(statut='o',max='**', + MACR_ELEM =SIMP(statut='o',typ=(macr_elem_stat,macr_elem_dyna),max='**' ), + SUPER_MAILLE =SIMP(statut='f',typ=ma,max='**'), + TRAN =SIMP(statut='f',typ='R',max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + b_angl_naut =BLOC(condition = "ANGL_NAUT != None", + CENTRE =SIMP(statut='f',typ='R',max=3), + ), + ), + RECO_GLOBAL =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + SUPER_MAILLE =SIMP(statut='f',typ=ma,max='**'), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + RECO_SUPER_MAILLE =FACT(statut='f',max='**', + SUPER_MAILLE =SIMP(statut='o',typ=ma,max='**'), + GROUP_NO =SIMP(statut='o',typ=grno,max='**'), + OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ), + geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'", + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + ), + DEFI_NOEUD =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','NOEUD_INIT'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Renommage de tous les noeuds" ), + NOEUD_INIT =SIMP(statut='f',typ=no, + fr="Renommage d un seul noeud"), + b_tout =BLOC(condition = "TOUT != None", + PREFIXE =SIMP(statut='f',typ='TXM' ), + INDEX =SIMP(statut='o',typ='I',max='**'), + ), + b_noeud_init =BLOC(condition = "NOEUD_INIT != None", + SUPER_MAILLE =SIMP(statut='o',typ=ma), + NOEUD_FIN =SIMP(statut='o',typ=no), + ), + ), + DEFI_GROUP_NO =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','SUPER_MAILLE'), + AU_MOINS_UN('INDEX','GROUP_NO_FIN'), + ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),), +# la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), + fr="Création de plusieurs groupes de noeuds" ), + SUPER_MAILLE =SIMP(statut='f',typ=ma, + fr="Création de plusieurs groupes de noeuds"), + GROUP_NO_INIT =SIMP(statut='f',typ=grno, + fr="Création d un seul groupe de noeuds"), + PREFIXE =SIMP(statut='f',typ='TXM' ), + INDEX =SIMP(statut='f',typ='I',max='**'), + GROUP_NO_FIN =SIMP(statut='f',typ=grno), + ), +) ; +#& MODIF COMMANDE DATE 03/04/2007 AUTEUR VIVAN 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. +# ====================================================================== +DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster, + fr="Définition des paramètres décrivant le comportement d un matériau", + reentrant='f', + UIinfo={"groupes":("Modélisation",)}, + regles=(EXCLUS('ELAS','ELAS_FO','ELAS_FLUI','ELAS_ISTR','ELAS_ISTR_FO','ELAS_ORTH', + 'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO', + 'ELAS_HYPER',), + EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'), + EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS'), + EXCLUS('TAHERI','TAHERI_FO'), + EXCLUS('ROUSSELIER','ROUSSELIER_FO'), + EXCLUS('VISC_SINH','VISC_SINH_FO'), + PRESENT_PRESENT('ROUSSELIER','TRACTION'), + PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'), + EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'), + EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'), + EXCLUS('VISCOCHAB','VISCOCHAB_FO'), + EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI','VISC_IRRA_LOG', + 'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',), + EXCLUS('LMARC','LMARC_FO'), + EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'), + EXCLUS('VENDOCHAB','VENDOCHAB_FO'), + PRESENT_PRESENT('BPEL_ACIER','ELAS'), + EXCLUS('RCCM','RCCM_FO'), + EXCLUS('WEIBULL','WEIBULL_FO'), + PRESENT_PRESENT('BARCELONE','CAM_CLAY','ELAS'), + PRESENT_PRESENT('CAM_CLAY','ELAS'), + PRESENT_PRESENT('LAIGLE','ELAS'), + PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), + PRESENT_PRESENT('HOEK_BROWN','ELAS'), + EXCLUS('MAZARS','MAZARS_FO'), + PRESENT_PRESENT('BAZANT_FD','ELAS_FO'), + PRESENT_PRESENT('JOINT_BA','ELAS'), + PRESENT_PRESENT('CABLE','ELAS'), + EXCLUS('GLRC_DAMAGE','GLRC_DM'), + ), + MATER =SIMP(statut='f',typ=mater_sdaster), +# +# comportement élastique +# + ELAS =FACT(statut='f', + E =SIMP(statut='o',typ='R',val_min=0.E+0), + NU =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0), + RHO =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ='R'), + AMOR_ALPHA =SIMP(statut='f',typ='R'), + AMOR_BETA =SIMP(statut='f',typ='R'), + AMOR_HYST =SIMP(statut='f',typ='R'), + ), + ELAS_FO =FACT(statut='f', + regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),), + E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.), + ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_HYST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + K_DESSIC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + B_ENDOGE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + FONC_DESORP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH","NEUT1","NEUT2",) ), + ), + ELAS_FLUI =FACT(statut='f', + E =SIMP(statut='o',typ='R'), + NU =SIMP(statut='o',typ='R'), + RHO =SIMP(statut='o',typ='R'), + PROF_RHO_F_INT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PROF_RHO_F_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_MASS_AJOU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("ABSC",) ), + ), + ELAS_ISTR =FACT(statut='f', + E_L =SIMP(statut='o',typ='R'), + E_N =SIMP(statut='o',typ='R'), + NU_LT =SIMP(statut='o',typ='R'), + NU_LN =SIMP(statut='o',typ='R'), + G_LN =SIMP(statut='o',typ='R'), + RHO =SIMP(statut='f',typ='R'), + ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + ELAS_ISTR_FO =FACT(statut='f', + regles=( + PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), + ), + E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.), + ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST")), + ), + ELAS_ORTH =FACT(statut='f', + E_L =SIMP(statut='o',typ='R'), + E_T =SIMP(statut='o',typ='R'), + E_N =SIMP(statut='f',typ='R'), + NU_LT =SIMP(statut='o',typ='R'), + NU_LN =SIMP(statut='f',typ='R'), + NU_TN =SIMP(statut='f',typ='R'), + G_LT =SIMP(statut='o',typ='R'), + G_LN =SIMP(statut='f',typ='R'), + G_TN =SIMP(statut='f',typ='R'), + RHO =SIMP(statut='f',typ='R'), + ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + XT =SIMP(statut='f',typ='R',defaut= 1. ), + XC =SIMP(statut='f',typ='R',defaut= 1. ), + YT =SIMP(statut='f',typ='R',defaut= 1. ), + YC =SIMP(statut='f',typ='R',defaut= 1. ), + S_LT =SIMP(statut='f',typ='R',defaut= 1. ), + AMOR_ALPHA =SIMP(statut='f',typ='R'), + AMOR_BETA =SIMP(statut='f',typ='R'), + AMOR_HYST =SIMP(statut='f',typ='R'), + ), + ELAS_ORTH_FO =FACT(statut='f', + regles=( + PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'), + ), + E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1. ), + ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ), + AMOR_ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AMOR_HYST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + ELAS_HYPER =FACT(statut='f', + regles=(UN_PARMI('K','NU'),), + C10 =SIMP(statut='f',typ='R',defaut=0.0), + C01 =SIMP(statut='o',typ='R'), + C20 =SIMP(statut='f',typ='R',defaut=0.0), + K =SIMP(statut='f',typ='R'), + RHO =SIMP(statut='f',typ='R',defaut=0.0), + NU =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0), + ), + ELAS_COQUE =FACT(statut='f', + regles=(EXCLUS('MEMB_L','M_LLLL',), + PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', + 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), + PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', + 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL', + 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ', + 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ', + 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ', + 'C_LZTZ','C_TZTZ'),), + MEMB_L =SIMP(statut='f',typ='R'), + MEMB_LT =SIMP(statut='f',typ='R'), + MEMB_T =SIMP(statut='f',typ='R'), + MEMB_G_LT =SIMP(statut='f',typ='R'), + FLEX_L =SIMP(statut='f',typ='R'), + FLEX_LT =SIMP(statut='f',typ='R'), + FLEX_T =SIMP(statut='f',typ='R'), + FLEX_G_LT =SIMP(statut='f',typ='R'), + CISA_L =SIMP(statut='f',typ='R'), + CISA_T =SIMP(statut='f',typ='R'), + M_LLLL =SIMP(statut='f',typ='R'), + M_LLTT =SIMP(statut='f',typ='R'), + M_LLLT =SIMP(statut='f',typ='R'), + M_TTTT =SIMP(statut='f',typ='R'), + M_TTLT =SIMP(statut='f',typ='R'), + M_LTLT =SIMP(statut='f',typ='R'), + F_LLLL =SIMP(statut='f',typ='R'), + F_LLTT =SIMP(statut='f',typ='R'), + F_LLLT =SIMP(statut='f',typ='R'), + F_TTTT =SIMP(statut='f',typ='R'), + F_TTLT =SIMP(statut='f',typ='R'), + F_LTLT =SIMP(statut='f',typ='R'), + MF_LLLL =SIMP(statut='f',typ='R'), + MF_LLTT =SIMP(statut='f',typ='R'), + MF_LLLT =SIMP(statut='f',typ='R'), + MF_TTTT =SIMP(statut='f',typ='R'), + MF_TTLT =SIMP(statut='f',typ='R'), + MF_LTLT =SIMP(statut='f',typ='R'), + MC_LLLZ =SIMP(statut='f',typ='R'), + MC_LLTZ =SIMP(statut='f',typ='R'), + MC_TTLZ =SIMP(statut='f',typ='R'), + MC_TTTZ =SIMP(statut='f',typ='R'), + MC_LTLZ =SIMP(statut='f',typ='R'), + MC_LTTZ =SIMP(statut='f',typ='R'), + FC_LLLZ =SIMP(statut='f',typ='R'), + FC_LLTZ =SIMP(statut='f',typ='R'), + FC_TTLZ =SIMP(statut='f',typ='R'), + FC_TTTZ =SIMP(statut='f',typ='R'), + FC_LTLZ =SIMP(statut='f',typ='R'), + FC_LTTZ =SIMP(statut='f',typ='R'), + C_LZLZ =SIMP(statut='f',typ='R'), + C_LZTZ =SIMP(statut='f',typ='R'), + C_TZTZ =SIMP(statut='f',typ='R'), + RHO =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ='R'), + ), + ELAS_COQUE_FO =FACT(statut='f', + regles=(EXCLUS('MEMB_L','M_LLLL',), + PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', + 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), + PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', + 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT', + 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ', + 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ', + 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),), + MEMB_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEMB_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEMB_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEMB_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLEX_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLEX_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLEX_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLEX_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CISA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CISA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MF_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_LZLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_LZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_TZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST") ), + ), + APPUI_ELAS =FACT(statut='f', + E_N =SIMP(statut='o',typ='R'), + E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0), + ), + CABLE =FACT(statut='f', + EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ), + ), +# +# comportement mécanique non linéaire +# + TRACTION =FACT(statut='f', + SIGM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP","HYDR","SECH",) ), + ), + ECRO_LINE =FACT(statut='f', + D_SIGM_EPSI =SIMP(statut='o',typ='R',), + SY =SIMP(statut='o',typ='R',), + ), + ECRO_LINE_FO =FACT(statut='f', + D_SIGM_EPSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + ECRO_PUIS =FACT(statut='f', + SY =SIMP(statut='o',typ='R',), + A_PUIS =SIMP(statut='o',typ='R',val_min=0.0), + N_PUIS =SIMP(statut='o',typ='R',val_min=1.E-6), + ), + ECRO_PUIS_FO =FACT(statut='f', + SY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_PUIS =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N_PUIS =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + BETON_ECRO_LINE =FACT(statut='f', + D_SIGM_EPSI =SIMP(statut='o',typ='R'), + SYT =SIMP(statut='o',typ='R'), + SYC =SIMP(statut='f',typ='R'), + ), + BETON_REGLE_PR =FACT(statut='f', + D_SIGM_EPSI =SIMP(statut='o',typ='R'), + SYT =SIMP(statut='o',typ='R'), + SYC =SIMP(statut='f',typ='R'), + EPSC =SIMP(statut='f',typ='R'), + N =SIMP(statut='f',typ='R'), + ), + ENDO_ORTH_BETON =FACT(statut='f', + ALPHA =SIMP(statut='f',typ='R',defaut=0.9), + K0 =SIMP(statut='o',typ='R'), + K1 =SIMP(statut='o',typ='R'), + K2 =SIMP(statut='f',typ='R',defaut=7.E-4), + ECROB =SIMP(statut='o',typ='R'), + ECROD =SIMP(statut='o',typ='R'), + ), + PRAGER =FACT(statut='f', + C =SIMP(statut='o',typ='R'), + ), + PRAGER_FO =FACT(statut='f', + C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + ECRO_FLEJOU =FACT(statut='f', + EP =SIMP(statut='o',typ='R'), + SY =SIMP(statut='o',typ='R'), + SU =SIMP(statut='o',typ='R'), + PUISS =SIMP(statut='o',typ='R'), + ), + TAHERI =FACT(statut='f', + R_0 =SIMP(statut='o',typ='R'), + ALPHA =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + A =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + C1 =SIMP(statut='o',typ='R'), + C_INF =SIMP(statut='o',typ='R'), + S =SIMP(statut='o',typ='R'), + ), + TAHERI_FO =FACT(statut='f', + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_INF =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + ROUSSELIER =FACT(statut='f', + D =SIMP(statut='o',typ='R'), + SIGM_1 =SIMP(statut='o',typ='R'), + PORO_INIT =SIMP(statut='o',typ='R'), + PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), + PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), + PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), + D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), + AN =SIMP(statut='f',typ='R',defaut= 0. ), + DP_MAXI =SIMP(statut='f',typ='R',defaut= 0.1), + BETA =SIMP(statut='f',typ='R',defaut=0.85), + ), + ROUSSELIER_FO =FACT(statut='f', + D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PORO_INIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), + PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), + PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), + D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), + AN =SIMP(statut='f',typ='R',defaut= 0. ), + DP_MAXI =SIMP(statut='f',typ='R',defaut= 0.1), + BETA =SIMP(statut='f',typ='R',defaut=0.85), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + VISC_SINH =FACT(statut='f', + SIGM_0 =SIMP(statut='o',typ='R'), + EPSI_0 =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + ), + VISC_SINH_FO =FACT(statut='f', + SIGM_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSI_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + CIN1_CHAB =FACT(statut='f', + R_0 =SIMP(statut='o',typ='R'), + R_I =SIMP(statut='f',typ='R'), + B =SIMP(statut='f',typ='R',defaut= 0.0E+0), + C_I =SIMP(statut='o',typ='R'), + K =SIMP(statut='f',typ='R',defaut= 1.0E+0), + W =SIMP(statut='f',typ='R',defaut= 0.0E+0), + G_0 =SIMP(statut='o',typ='R'), + A_I =SIMP(statut='f',typ='R',defaut= 1.0E+0), + ), + CIN1_CHAB_FO =FACT(statut='f', + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), + ), + CIN2_CHAB =FACT(statut='f', + R_0 =SIMP(statut='o',typ='R'), + R_I =SIMP(statut='f',typ='R'), + B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + C1_I =SIMP(statut='o',typ='R'), + C2_I =SIMP(statut='o',typ='R'), + K =SIMP(statut='f',typ='R',defaut= 1.), + W =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + G1_0 =SIMP(statut='o',typ='R'), + G2_0 =SIMP(statut='o',typ='R'), + A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), + ), + CIN2_CHAB_FO =FACT(statut='f', + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C1_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C2_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + VISCOCHAB =FACT(statut='f', + K_0 =SIMP(statut='o',typ='R'), + A_K =SIMP(statut='o',typ='R'), + A_R =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + ALP =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + M_R =SIMP(statut='o',typ='R'), + G_R =SIMP(statut='o',typ='R'), + MU =SIMP(statut='o',typ='R'), + Q_M =SIMP(statut='o',typ='R'), + Q_0 =SIMP(statut='o',typ='R'), + QR_0 =SIMP(statut='o',typ='R'), + ETA =SIMP(statut='o',typ='R'), + C1 =SIMP(statut='o',typ='R'), + M_1 =SIMP(statut='o',typ='R'), + D1 =SIMP(statut='o',typ='R'), + G_X1 =SIMP(statut='o',typ='R'), + G1_0 =SIMP(statut='o',typ='R'), + C2 =SIMP(statut='o',typ='R'), + M_2 =SIMP(statut='o',typ='R'), + D2 =SIMP(statut='o',typ='R'), + G_X2 =SIMP(statut='o',typ='R'), + G2_0 =SIMP(statut='o',typ='R'), + A_I =SIMP(statut='o',typ='R'), + ), + VISCOCHAB_FO =FACT(statut='f', + K_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + QR_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ETA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_X1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G_X2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + LEMAITRE =FACT(statut='f', + N =SIMP(statut='o',typ='R'), + UN_SUR_K =SIMP(statut='o',typ='R'), + UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + LEMAITRE_IRRA =FACT(statut='f', + N =SIMP(statut='o',typ='R'), + UN_SUR_K =SIMP(statut='o',typ='R'), + UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + QSR_K =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PHI_ZERO =SIMP(statut='f',typ='R',defaut= 1.E+20), + L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + LMARC_IRRA =FACT(statut='f', + DE_0 =SIMP(statut='o',typ='R'), + R_0 =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + Y_I =SIMP(statut='o',typ='R'), + Y_0 =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + A_0 =SIMP(statut='o',typ='R'), + RM =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + P =SIMP(statut='o',typ='R'), + P1 =SIMP(statut='o',typ='R'), + P2 =SIMP(statut='o',typ='R'), + M11 =SIMP(statut='o',typ='R'), + M22 =SIMP(statut='o',typ='R'), + M33 =SIMP(statut='o',typ='R'), + M66 =SIMP(statut='o',typ='R'), + N11 =SIMP(statut='o',typ='R'), + N22 =SIMP(statut='o',typ='R'), + N33 =SIMP(statut='o',typ='R'), + N66 =SIMP(statut='o',typ='R'), + Q11 =SIMP(statut='o',typ='R'), + Q22 =SIMP(statut='o',typ='R'), + Q33 =SIMP(statut='o',typ='R'), + Q66 =SIMP(statut='o',typ='R'), + R11 =SIMP(statut='o',typ='R'), + R22 =SIMP(statut='o',typ='R'), + R33 =SIMP(statut='o',typ='R'), + R66 =SIMP(statut='o',typ='R'), + GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + ZIRC_CYRA2 =FACT(statut='f', + EPSI_FAB =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TEMP_RECUIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + FLUX_PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), + ), + VISC_IRRA_LOG =FACT(statut='f', + A =SIMP(statut='f',typ='R',defaut= 1.28E-1), + B =SIMP(statut='f',typ='R',defaut= 0.01159), + CSTE_TPS =SIMP(statut='f',typ='R',defaut= 0.3540), + ENER_ACT =SIMP(statut='f',typ='R',defaut= 5000.), + FLUX_PHI =SIMP(statut='o',typ='R',), + ), + GRAN_IRRA_LOG =FACT(statut='f', + A =SIMP(statut='f',typ='R',defaut= 1.28E-1), + B =SIMP(statut='f',typ='R',defaut= 0.01159), + CSTE_TPS =SIMP(statut='f',typ='R',defaut= 0.3540), + ENER_ACT =SIMP(statut='f',typ='R',defaut= 5000.), + FLUX_PHI =SIMP(statut='o',typ='R',), + GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0), + GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0), + GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0), + ), + LEMA_SEUIL =FACT(statut='f', + A =SIMP(statut='o',typ='R',), + S =SIMP(statut='o',typ='R',), + ), + LEMA_SEUIL_FO=FACT(statut='f', + A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + IRRAD3M=FACT(statut='f', + R02 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSI_U =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + AI0 =SIMP(statut='o',typ='R',val_min=0.0), + ZETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ETAI_S =SIMP(statut='o',typ='R',val_min=0.0), + R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ALPHA =SIMP(statut='o',typ='R',val_min=0.0), + PHI0 =SIMP(statut='o',typ='R',val_min=0.0), + KAPPA =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.8,val_max=1.0), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","IRRA") ), + ), + ZIRC_EPRI =FACT(statut='f', + FLUX_PHI =SIMP(statut='o',typ='R'), + R_P =SIMP(statut='o',typ='R'), + THETA_MAX =SIMP(statut='o',typ='R'), + ), + LEMAITRE_FO =FACT(statut='f', + N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + UN_SUR_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + UN_SUR_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + LMARC =FACT(statut='f', + DE_0 =SIMP(statut='o',typ='R'), + R_0 =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + Y_I =SIMP(statut='o',typ='R'), + Y_0 =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + A_0 =SIMP(statut='o',typ='R'), + RM =SIMP(statut='o',typ='R'), + M =SIMP(statut='o',typ='R'), + P =SIMP(statut='o',typ='R'), + P1 =SIMP(statut='o',typ='R'), + P2 =SIMP(statut='o',typ='R'), + M11 =SIMP(statut='o',typ='R'), + M22 =SIMP(statut='o',typ='R'), + M33 =SIMP(statut='o',typ='R'), + M66 =SIMP(statut='o',typ='R'), + N11 =SIMP(statut='o',typ='R'), + N22 =SIMP(statut='o',typ='R'), + N33 =SIMP(statut='o',typ='R'), + N66 =SIMP(statut='o',typ='R'), + Q11 =SIMP(statut='o',typ='R'), + Q22 =SIMP(statut='o',typ='R'), + Q33 =SIMP(statut='o',typ='R'), + Q66 =SIMP(statut='o',typ='R'), + R11 =SIMP(statut='o',typ='R'), + R22 =SIMP(statut='o',typ='R'), + R33 =SIMP(statut='o',typ='R'), + R66 =SIMP(statut='o',typ='R'), + ), + LMARC_FO =FACT(statut='f', + DE_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Y_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Y_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + P =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + P1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + P2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + M66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + N66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + Q66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + R66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + VMIS_POUTRE =FACT(statut='f', + NP =SIMP(statut='o',typ='R'), + MEY =SIMP(statut='o',typ='R'), + MPY =SIMP(statut='o',typ='R'), + CAY =SIMP(statut='o',typ='R'), + CBY =SIMP(statut='o',typ='R'), + MEZ =SIMP(statut='o',typ='R'), + MPZ =SIMP(statut='o',typ='R'), + CAZ =SIMP(statut='o',typ='R'), + CBZ =SIMP(statut='o',typ='R'), + MPX =SIMP(statut='o',typ='R'), + ), + VMIS_POUTRE_FO =FACT(statut='f', + NP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MPY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CAY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CBY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MEZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MPZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CAZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CBZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + MPX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + ARME =FACT(statut='f', + KYE =SIMP(statut='o',typ='R'), + DLE =SIMP(statut='o',typ='R'), + KYP =SIMP(statut='o',typ='R'), + DLP =SIMP(statut='o',typ='R'), + KYG =SIMP(statut='o',typ='R'), + ), + ASSE_CORN =FACT(statut='f', + NU_1 =SIMP(statut='o',typ='R'), + MU_1 =SIMP(statut='o',typ='R'), + DXU_1 =SIMP(statut='o',typ='R'), + DRYU_1 =SIMP(statut='o',typ='R'), + C_1 =SIMP(statut='o',typ='R'), + NU_2 =SIMP(statut='o',typ='R'), + MU_2 =SIMP(statut='o',typ='R'), + DXU_2 =SIMP(statut='o',typ='R'), + DRYU_2 =SIMP(statut='o',typ='R'), + C_2 =SIMP(statut='o',typ='R'), + KY =SIMP(statut='o',typ='R'), + KZ =SIMP(statut='o',typ='R'), + KRX =SIMP(statut='o',typ='R'), + KRZ =SIMP(statut='o',typ='R'), + R_P0 =SIMP(statut='f',typ='R',defaut= 1.E+4 ), + ), + DIS_CONTACT =FACT(statut='f', + RIGI_NOR =SIMP(statut='f',typ='R' ), + DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + AMOR_NOR =SIMP(statut='f',typ='R' ), + AMOR_TAN =SIMP(statut='f',typ='R' ), + COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + KT_ULTM =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + EFFO_N_INIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',), + EXCLUS('RELA_MZ','ANGLE_1'), + PRESENT_PRESENT('ANGLE_1','ANGLE_2','ANGLE_3','ANGLE_4', + 'MOMENT_1','MOMENT_2','MOMENT_3','MOMENT_4'),), + RIGI_N_IRRA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RIGI_N_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RELA_MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANGLE_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANGLE_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANGLE_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANGLE_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MOMENT_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MOMENT_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MOMENT_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MOMENT_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), + ), + DIS_GRICRA =FACT(statut='f', + KN_AX =SIMP(statut='o',typ='R' ), + KT_AX =SIMP(statut='o',typ='R' ), + COUL_AX =SIMP(statut='o',typ='R' ), + F_SER =SIMP(statut='f',typ='R' ), + F_SER_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ET_AX =SIMP(statut='f',typ='R',defaut=1.e-7 ), + ET_ROT =SIMP(statut='f',typ='R',defaut=1.e-7 ), + ANG1 =SIMP(statut='f',typ='R' ), + ANG2 =SIMP(statut='f',typ='R' ), + PEN1 =SIMP(statut='f',typ='R' ), + PEN2 =SIMP(statut='f',typ='R' ), + PEN3 =SIMP(statut='f',typ='R' ), + ANG1_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ANG2_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PEN1_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PEN2_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PEN3_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles=(EXCLUS('ANG1','ANG1_FO',), + UN_PARMI('ANG1','ANG1_FO',), + EXCLUS('F_SER','F_SER_FO',), + UN_PARMI('F_SER','F_SER_FO',), + PRESENT_PRESENT('ANG1','ANG2','PEN1','PEN2','PEN3',), + PRESENT_PRESENT('ANG1_FO','ANG2_FO','PEN1_FO','PEN2_FO','PEN3_FO',), + ), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), + ), + NADAI_B =FACT(statut='f', + F_C =SIMP(statut='o',typ='R'), + F_T =SIMP(statut='o',typ='R'), + CRIT_E_C =SIMP(statut='o',typ='R'), + EPSP_P_C =SIMP(statut='o',typ='R'), + EPSP_R_C =SIMP(statut='o',typ='R'), + EPSI_R_T =SIMP(statut='o',typ='R'), + FAC_T_C =SIMP(statut='o',typ='R'), + ), + BETON_DOUBLE_DP =FACT(statut='f', + F_C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_BIAX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ENER_COMP_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ENER_TRAC_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_ELAS_COMP =SIMP(statut='o',typ='R'), + LONG_CARA =SIMP(statut='f',typ='R'), + ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ), + ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ), + ), + LABORD_1D=FACT(statut='f',min=0 , + Y01 =SIMP(statut='o',typ='R'), + Y02 =SIMP(statut='o',typ='R'), + A1 =SIMP(statut='o',typ='R'), + A2 =SIMP(statut='o',typ='R'), + B1 =SIMP(statut='o',typ='R'), + B2 =SIMP(statut='o',typ='R'), + BETA1 =SIMP(statut='o',typ='R'), + BETA2 =SIMP(statut='o',typ='R'), + SIGF =SIMP(statut='o',typ='R'), + ), + MAZARS=FACT(statut='f',min=0 , + EPSD0 =SIMP(statut='o',typ='R'), + BETA =SIMP(statut='o',typ='R'), + AC =SIMP(statut='o',typ='R'), + BC =SIMP(statut='o',typ='R'), + AT =SIMP(statut='o',typ='R'), + BT =SIMP(statut='o',typ='R'), + ), + MAZARS_FO=FACT(statut='f',min=0 , + EPSD0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BETA =SIMP(statut='o',typ='R'), + AC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BC =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") ), + ), + JOINT_BA=FACT(statut='f',min=0 ,max=1, + HPEN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0), + GTT =SIMP(statut='o',typ='R',val_min=0.E+0), + GAMD0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1), + AD1 =SIMP(statut='o',typ='R',val_min=0.E+0), + BD1 =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1), + GAMD2 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), + AD2 =SIMP(statut='o',typ='R',val_min=0.E+0), + BD2 =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), + VIFROT =SIMP(statut='o',typ='R',val_min=0.E+0), + FA =SIMP(statut='o',typ='R',val_min=0.E+0), + FC =SIMP(statut='o',typ='R',val_min=0.E+0), + EPSTR0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), + ADN =SIMP(statut='o',typ='R',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'), + 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)), + 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)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","X",) ), + ), + PINTO_MENEGOTTO =FACT(statut='f', + SY =SIMP(statut='o',typ='R'), + EPSI_ULTM =SIMP(statut='o',typ='R'), + SIGM_ULTM =SIMP(statut='o',typ='R'), + ELAN =SIMP(statut='f',typ='R',defaut= 4. ), + EPSP_HARD =SIMP(statut='o',typ='R'), + R_PM =SIMP(statut='f',typ='R',defaut= 20. ), + EP_SUR_E =SIMP(statut='f',typ='R'), + A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ), + A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ), + A6_PM =SIMP(statut='f',typ='R',defaut= 620. ), + C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ), + A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ), + ), + BPEL_BETON =FACT(statut='f', + PERT_FLUA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PERT_RETR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + BPEL_ACIER =FACT(statut='f', + regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',), + PRESENT_PRESENT('MU0_RELAX','F_PRG',),), + RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + MU0_RELAX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + F_PRG =SIMP(statut='f',typ='R'), + FROT_COURB =SIMP(statut='f',typ='R',defaut=0.E+0), + FROT_LINE =SIMP(statut='f',typ='R',defaut=0.E+0), + ), + CAM_CLAY =FACT(statut='f', + 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'), + ), + BARCELONE =FACT(statut='f', + R =SIMP(statut='o',typ='R'), + BETA =SIMP(statut='o',typ='R'), + KC =SIMP(statut='o',typ='R'), + PC0_INIT =SIMP(statut='o',typ='R'), + KAPAS =SIMP(statut='o',typ='R'), + LAMBDAS =SIMP(statut='o',typ='R'), + ALPHAB =SIMP(statut='f',typ='R'), + ), + CJS =FACT(statut='f', + BETA_CJS =SIMP(statut='o',typ='R'), + RM =SIMP(statut='o',typ='R'), + N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ), + C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + GAMMA_CJS =SIMP(statut='o',typ='R'), + MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PA =SIMP(statut='o',typ='R'), + Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + HUJEUX =FACT(statut='f', + N =SIMP(statut='o',typ='R' ), + BETA =SIMP(statut='o',typ='R' ), + B =SIMP(statut='o',typ='R' ), + D =SIMP(statut='o',typ='R' ), + PHI =SIMP(statut='o',typ='R' ), + ANGDIL =SIMP(statut='o',typ='R' ), + PCO =SIMP(statut='o',typ='R' ), + PREF =SIMP(statut='o',typ='R' ), + ACYC =SIMP(statut='o',typ='R' ), + AMON =SIMP(statut='o',typ='R' ), + CCYC =SIMP(statut='o',typ='R' ), + CMON =SIMP(statut='o',typ='R' ), + RD_ELA =SIMP(statut='o',typ='R' ), + RI_ELA =SIMP(statut='o',typ='R' ), + RHYS =SIMP(statut='o',typ='R' ), + RMOB =SIMP(statut='o',typ='R' ), + XM =SIMP(statut='o',typ='R'), + ), + ECRO_ASYM_LINE =FACT(statut='f', + DC_SIGM_EPSI =SIMP(statut='o',typ='R'), + SY_C =SIMP(statut='o',typ='R'), + DT_SIGM_EPSI =SIMP(statut='o',typ='R'), + SY_T =SIMP(statut='o',typ='R'), + ), + GRANGER_FP =FACT(statut='f', + J1 =SIMP(statut='f',typ='R'), + J2 =SIMP(statut='f',typ='R'), + J3 =SIMP(statut='f',typ='R'), + J4 =SIMP(statut='f',typ='R'), + J5 =SIMP(statut='f',typ='R'), + J6 =SIMP(statut='f',typ='R'), + J7 =SIMP(statut='f',typ='R'), + J8 =SIMP(statut='f',typ='R'), + TAUX_1 =SIMP(statut='f',typ='R'), + TAUX_2 =SIMP(statut='f',typ='R'), + TAUX_3 =SIMP(statut='f',typ='R'), + TAUX_4 =SIMP(statut='f',typ='R'), + TAUX_5 =SIMP(statut='f',typ='R'), + TAUX_6 =SIMP(statut='f',typ='R'), + TAUX_7 =SIMP(statut='f',typ='R'), + TAUX_8 =SIMP(statut='f',typ='R'), + QSR_K =SIMP(statut='f',typ='R'), + ), + GRANGER_FP_INDT =FACT(statut='f', + J1 =SIMP(statut='f',typ='R'), + J2 =SIMP(statut='f',typ='R'), + J3 =SIMP(statut='f',typ='R'), + J4 =SIMP(statut='f',typ='R'), + J5 =SIMP(statut='f',typ='R'), + J6 =SIMP(statut='f',typ='R'), + J7 =SIMP(statut='f',typ='R'), + J8 =SIMP(statut='f',typ='R'), + TAUX_1 =SIMP(statut='f',typ='R'), + TAUX_2 =SIMP(statut='f',typ='R'), + TAUX_3 =SIMP(statut='f',typ='R'), + TAUX_4 =SIMP(statut='f',typ='R'), + TAUX_5 =SIMP(statut='f',typ='R'), + TAUX_6 =SIMP(statut='f',typ='R'), + TAUX_7 =SIMP(statut='f',typ='R'), + TAUX_8 =SIMP(statut='f',typ='R'), + ), + V_GRANGER_FP =FACT(statut='f', + QSR_VEIL =SIMP(statut='f',typ='R'), + FONC_V =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), + ), + BAZANT_FD =FACT(statut='f', + LAM_VISC =SIMP(statut='o',typ='R'), + ), + BETON_UMLV_FP =FACT(statut='f',min=0 , + K_RS =SIMP(statut='o',typ='R'), + ETA_RS =SIMP(statut='o',typ='R'), + K_IS =SIMP(statut='o',typ='R'), + ETA_IS =SIMP(statut='o',typ='R'), + K_RD =SIMP(statut='o',typ='R'), + ETA_RD =SIMP(statut='o',typ='R'), + ETA_ID =SIMP(statut='o',typ='R'), + ETA_FD =SIMP(statut='f',typ='R'), + ), + GLRC_DAMAGE =FACT(statut='f',min=0,max=1, + FMEX1 =SIMP(statut='o',typ=(fonction_sdaster)), + FMEY1 =SIMP(statut='o',typ=(fonction_sdaster)), + FMEX2 =SIMP(statut='o',typ=(fonction_sdaster)), + FMEY2 =SIMP(statut='o',typ=(fonction_sdaster)), + DFMEX1 =SIMP(statut='o',typ=(fonction_sdaster)), + DFMEY1 =SIMP(statut='o',typ=(fonction_sdaster)), + DFMEX2 =SIMP(statut='o',typ=(fonction_sdaster)), + DFMEY2 =SIMP(statut='o',typ=(fonction_sdaster)), + DDFMEX1 =SIMP(statut='o',typ=(fonction_sdaster)), + DDFMEY1 =SIMP(statut='o',typ=(fonction_sdaster)), + DDFMEX2 =SIMP(statut='o',typ=(fonction_sdaster)), + DDFMEY2 =SIMP(statut='o',typ=(fonction_sdaster)), + + CX1 =SIMP(statut='o',typ='R',val_min=0.E+0), + CY1 =SIMP(statut='o',typ='R',val_min=0.E+0), + CXY1 =SIMP(statut='o',typ='R',val_min=0.E+0), + CX2 =SIMP(statut='o',typ='R',val_min=0.E+0), + CY2 =SIMP(statut='o',typ='R',val_min=0.E+0), + CXY2 =SIMP(statut='o',typ='R',val_min=0.E+0), + MF1 =SIMP(statut='o',typ='R',val_min=0.E+0), + MF2 =SIMP(statut='o',typ='R',val_max=0.E+0), + QP1 =SIMP(statut='o',typ='R',val_min=0.E+0), + QP2 =SIMP(statut='o',typ='R',val_min=0.E+0), + GAMMA =SIMP(statut='o',typ='R',val_min=0.E+0), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("X ",) ), + ), + GLRC_DM =FACT(statut='f',min=0,max=1, + GAMMA_T =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), + GAMMA_F =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), + SYT =SIMP(statut='o',typ='R',val_min=0.E+0), + SYF =SIMP(statut='o',typ='R',val_min=0.E+0), + EF =SIMP(statut='f',typ='R',val_min=0.E+0), + NUF =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0), + ), + GLRC_ACIER =FACT(statut='f',min=0,max=1, + AX =SIMP(statut='o',typ='R',val_min=0.E+0), + AY =SIMP(statut='o',typ='R',val_min=0.E+0), + E =SIMP(statut='o',typ='R',val_min=0.E+0), + ENROB =SIMP(statut='o',typ='R',val_min=0.E+0), + ), + GATT_MONERIE =FACT(statut='f',min=0,max=1, + D_GRAIN =SIMP(statut='o',typ='R',val_min=0.E+0), + PORO_INIT =SIMP(statut='o',typ='R',val_min=0.E+0), + EPSI_01 =SIMP(statut='o',typ='R',defaut= 2.7252E-10,val_min=0.E+0), + EPSI_02 =SIMP(statut='o',typ='R',defaut= 9.1440E-41,val_min=0.E+0), + ), + CORR_ACIER =FACT(statut='f',min=0 ,max=1, + D_CORR =SIMP(statut='o',typ='R'), + ECRO_K =SIMP(statut='o',typ='R'), + ECRO_M =SIMP(statut='o',typ='R'), + SY =SIMP(statut='o',typ='R'), + ), +# Discrets non-linéaires : début + DIS_ECRO_CINE =FACT(statut='f', + fr="Loi pour les discrets avec érouissage cinematique.", + regles=(PRESENT_PRESENT('LIMY_DX','KCIN_DX',),PRESENT_PRESENT('PUIS_DX','LIMU_DX',), + PRESENT_PRESENT('LIMY_DY','KCIN_DY',),PRESENT_PRESENT('PUIS_DY','LIMU_DY',), + PRESENT_PRESENT('LIMY_DZ','KCIN_DZ',),PRESENT_PRESENT('PUIS_DZ','LIMU_DZ',), + PRESENT_PRESENT('LIMY_RX','KCIN_RX',),PRESENT_PRESENT('PUIS_RX','LIMU_RX',), + PRESENT_PRESENT('LIMY_RY','KCIN_RY',),PRESENT_PRESENT('PUIS_RY','LIMU_RY',), + PRESENT_PRESENT('LIMY_RZ','KCIN_RZ',),PRESENT_PRESENT('PUIS_RZ','LIMU_RZ',),), + LIMY_DX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Effort limite élastique suivant l'axe local x de l'élément."), + LIMY_DY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Effort limite élastique suivant l'axe local y de l'élément."), + LIMY_DZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Effort limite élastique suivant l'axe local z de l'élément."), + LIMY_RX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Moment limite élastique suivant l'axe local x de l'élément."), + LIMY_RY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Moment limite élastique suivant l'axe local y de l'élément."), + LIMY_RZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Moment limite élastique suivant l'axe local z de l'élément."), + KCIN_DX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Raideur suivant l'axe local x de l'élément."), + KCIN_DY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Raideur suivant l'axe local y de l'élément."), + KCIN_DZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Raideur suivant l'axe local z de l'élément."), + KCIN_RX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Raideur suivant l'axe local Rx de l'élément."), + KCIN_RY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Raideur suivant l'axe local Ry de l'élément."), + KCIN_RZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Raideur suivant l'axe local Rz de l'élément."), + LIMU_DX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Effort limite suivant l'axe local x de l'élément."), + LIMU_DY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Effort limite suivant l'axe local y de l'élément."), + LIMU_DZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Effort limite suivant l'axe local z de l'élément."), + LIMU_RX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Moment limite suivant l'axe local x de l'élément."), + LIMU_RY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Moment limite suivant l'axe local y de l'élément."), + LIMU_RZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Moment limite suivant l'axe local z de l'élément."), + PUIS_DX =SIMP(statut='f',typ='R',val_min = 1.0, + fr="Coefficient de non-linéarité suivant l'axe local x de l'élément."), + PUIS_DY =SIMP(statut='f',typ='R',val_min = 1.0, + fr="Coefficient de non-linéarité suivant l'axe local y de l'élément."), + PUIS_DZ =SIMP(statut='f',typ='R',val_min = 1.0, + fr="Coefficient de non-linéarité suivant l'axe local z de l'élément."), + PUIS_RX =SIMP(statut='f',typ='R',val_min = 1.0, + fr="Coefficient de non-linéarité suivant l'axe local Rx de l'élément."), + PUIS_RY =SIMP(statut='f',typ='R',val_min = 1.0, + fr="Coefficient de non-linéarité suivant l'axe local Ry de l'élément."), + PUIS_RZ =SIMP(statut='f',typ='R',val_min = 1.0, + fr="Coefficient de non-linéarité suivant l'axe local Rz de l'élément."), + ), + DIS_VISC =FACT(statut='f', + fr="Loi pour un discret de type amortisseur visqueux.", + regles=(PRESENT_PRESENT('PUIS_DX','COEF_DX',), + PRESENT_PRESENT('PUIS_DY','COEF_DY',), + PRESENT_PRESENT('PUIS_DZ','COEF_DZ',), + PRESENT_PRESENT('PUIS_RX','COEF_RX',), + PRESENT_PRESENT('PUIS_RY','COEF_RY',), + PRESENT_PRESENT('PUIS_RZ','COEF_RZ',), + ), + PUIS_DX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Puissance dans la direction locale Dx de l'élément."), + PUIS_DY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Puissance dans la direction locale Dy de l'élément."), + PUIS_DZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Puissance dans la direction locale Dz de l'élément."), + PUIS_RX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Puissance autour de la direction locale Rx de l'élément."), + PUIS_RY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Puissance autour de la direction locale Ry de l'élément."), + PUIS_RZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Puissance autour de la direction locale Rz de l'élément."), + COEF_DX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Coefficient C dans la direction locale Dx de l'élément."), + COEF_DY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Coefficient C dans la direction locale Dy de l'élément."), + COEF_DZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Coefficient C dans la direction locale Dz de l'élément."), + COEF_RX =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Coefficient C autour de la direction locale Rx de l'élément."), + COEF_RY =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Coefficient C autour de la direction locale Ry de l'élément."), + COEF_RZ =SIMP(statut='f',typ='R',val_min = 0.0, + fr="Coefficient C autour de la direction locale Rz de l'élément."), + ), +# Discrets non-linéaires : fin +# +# comportement thermique +# + THER_NL =FACT(statut='f', + regles=(UN_PARMI('BETA','RHO_CP', ),), + LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + THER_HYDR =FACT(statut='f', + LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + AFFINITE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHALHYDR =SIMP(statut='o',typ='R'), + QSR_K =SIMP(statut='o',typ='R'), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("HYDR","TEMP",) ), + ), + THER =FACT(statut='f', + LAMBDA =SIMP(statut='o',typ='R'), + RHO_CP =SIMP(statut='f',typ='R'), + ), + THER_FO =FACT(statut='f', + LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), + ), + THER_ORTH =FACT(statut='f', + LAMBDA_L =SIMP(statut='o',typ='R'), + LAMBDA_T =SIMP(statut='o',typ='R'), + LAMBDA_N =SIMP(statut='f',typ='R'), + RHO_CP =SIMP(statut='f',typ='R'), + ), + THER_COQUE =FACT(statut='f', + COND_LMM =SIMP(statut='o',typ='R'), + COND_TMM =SIMP(statut='o',typ='R'), + COND_LMP =SIMP(statut='o',typ='R'), + COND_TMP =SIMP(statut='o',typ='R'), + COND_LPP =SIMP(statut='o',typ='R'), + COND_TPP =SIMP(statut='o',typ='R'), + COND_LSI =SIMP(statut='o',typ='R'), + COND_TSI =SIMP(statut='o',typ='R'), + COND_NMM =SIMP(statut='o',typ='R'), + COND_NMP =SIMP(statut='o',typ='R'), + COND_NPP =SIMP(statut='o',typ='R'), + COND_NSI =SIMP(statut='o',typ='R'), + CMAS_MM =SIMP(statut='f',typ='R'), + CMAS_MP =SIMP(statut='f',typ='R'), + CMAS_PP =SIMP(statut='f',typ='R'), + CMAS_SI =SIMP(statut='f',typ='R'), + ), + THER_COQUE_FO =FACT(statut='f', + COND_LMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_TMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_LMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_TMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_LPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_TPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_LSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_TSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_NMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_NMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_NPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COND_NSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + CMAS_MM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CMAS_MP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CMAS_PP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CMAS_SI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + SECH_GRANGER =FACT(statut='f', + A =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + QSR_K =SIMP(statut='o',typ='R'), + TEMP_0_C =SIMP(statut='o',typ='R'), + ), + SECH_MENSI =FACT(statut='f', + A =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + ), + SECH_BAZANT =FACT(statut='f', + D1 =SIMP(statut='o',typ='R'), + ALPHA_BAZANT =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + FONC_DESORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + SECH_NAPPE =FACT(statut='f', + FONCTION =SIMP(statut='o',typ=(nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","TSEC",) ), + ), +# +# comportement métallurgique +# + META_ACIER =FACT(statut='f', + TRC =SIMP(statut='o',typ=(table_sdaster) ), + AR3 =SIMP(statut='o',typ='R'), + ALPHA =SIMP(statut='o',typ='R'), + MS0 =SIMP(statut='o',typ='R'), + AC1 =SIMP(statut='o',typ='R'), + AC3 =SIMP(statut='o',typ='R'), + TAUX_1 =SIMP(statut='o',typ='R'), + TAUX_3 =SIMP(statut='o',typ='R'), + LAMBDA0 =SIMP(statut='f',typ='R'), + QSR_K =SIMP(statut='f',typ='R'), + D10 =SIMP(statut='f',typ='R'), + WSR_K =SIMP(statut='f',typ='R'), + ), + META_ZIRC =FACT(statut='f', + TDEQ =SIMP(statut='o',typ='R'), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + TDC =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'), + AR =SIMP(statut='o',typ='R'), + BR =SIMP(statut='o',typ='R'), + ), + DURT_META =FACT(statut='f', + F1_DURT =SIMP(statut='o',typ='R'), + F2_DURT =SIMP(statut='o',typ='R'), + F3_DURT =SIMP(statut='o',typ='R'), + F4_DURT =SIMP(statut='o',typ='R'), + C_DURT =SIMP(statut='o',typ='R'), + ), + ELAS_META =FACT(statut='f', + E =SIMP(statut='o',typ='R'), + NU =SIMP(statut='o',typ='R'), + F_ALPHA =SIMP(statut='o',typ='R'), + C_ALPHA =SIMP(statut='o',typ='R'), + PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), + EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), + F1_SY =SIMP(statut='f',typ='R'), + F2_SY =SIMP(statut='f',typ='R'), + F3_SY =SIMP(statut='f',typ='R'), + F4_SY =SIMP(statut='f',typ='R'), + C_SY =SIMP(statut='f',typ='R'), + SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_S_VP =SIMP(statut='f',typ='R'), + F2_S_VP =SIMP(statut='f',typ='R'), + F3_S_VP =SIMP(statut='f',typ='R'), + F4_S_VP =SIMP(statut='f',typ='R'), + C_S_VP =SIMP(statut='f',typ='R' ), + S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("META",)), + ), + ELAS_META_FO =FACT(statut='f', + regles=( + PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'), + PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'), + ), + E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + F_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), + EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), + TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), + F1_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",)), + ), + META_ECRO_LINE =FACT(statut='f', + F1_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), + ), + META_TRACTION =FACT(statut='f', + SIGM_F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_F4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP",)), + ), + META_VISC_FO =FACT(statut='f', + F1_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F1_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + C_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + META_PT =FACT(statut='f', + F1_K =SIMP(statut='f',typ='R'), + F2_K =SIMP(statut='f',typ='R'), + F3_K =SIMP(statut='f',typ='R'), + F4_K =SIMP(statut='f',typ='R'), + F1_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F2_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F3_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + F4_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",) ), + ), + META_RE =FACT(statut='f', + C_F1_THETA =SIMP(statut='f',typ='R'), + C_F2_THETA =SIMP(statut='f',typ='R'), + C_F3_THETA =SIMP(statut='f',typ='R'), + C_F4_THETA =SIMP(statut='f',typ='R'), + F1_C_THETA =SIMP(statut='f',typ='R'), + F2_C_THETA =SIMP(statut='f',typ='R'), + F3_C_THETA =SIMP(statut='f',typ='R'), + F4_C_THETA =SIMP(statut='f',typ='R'), + ), +# +# comportement fluide +# + FLUIDE =FACT(statut='f', + regles=(EXCLUS('CELE_C','CELE_R'),), + RHO =SIMP(statut='o',typ='R'), + CELE_C =SIMP(statut='f',typ='C'), + CELE_R =SIMP(statut='f',typ='R'), + ), + PORO_JOINT =FACT(statut='f', + RHO_FLUI =SIMP(statut='o',typ='R'), + ENTRO_FLUI =SIMP(statut='o',typ='R'), + BIOT_M =SIMP(statut='o',typ='R'), + C_0 =SIMP(statut='o',typ='R'), + T_R =SIMP(statut='o',typ='R'), + ALPHA_M =SIMP(statut='o',typ='R'), + LAMBDA_T =SIMP(statut='o',typ='R'), + LAMBDA_H =SIMP(statut='o',typ='R'), + SOURCE_INIT =SIMP(statut='o',typ='R'), + OMEGA_0 =SIMP(statut='o',typ='R'), + ), +# ================================================================================= +# COMPORTEMENT THERMO_HYDRO_MECANIQUE +# LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES +# DE LA LOI DE COUPLAGE THM DE LA RELATION +# LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS +# DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE +# ET LIQU_AD_GAZ_VAPE +# LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE : +# 1 --> LIQU_SATU +# 2 --> GAZ +# 3 --> LIQU_VAPE +# 4 --> LIQU_VAPE_GAZ +# 5 --> LIQU_GAZ +# 6 --> LIQU_GAZ_ATM +# 9 --> LIQU_AD_GAZ_VAPE +# ================================================================================= + COMP_THM = SIMP(statut='f', typ='TXM', + into = ( "LIQU_SATU" , + "LIQU_GAZ" , + "GAZ" , + "LIQU_GAZ_ATM" , + "LIQU_VAPE_GAZ" , + "LIQU_VAPE" , + "LIQU_AD_GAZ_VAPE" , + ) ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_SATU ------------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU ----------------------------------------------- +# ================================================================================= + b_liqusatu = BLOC(condition = "COMP_THM == 'LIQU_SATU' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRE2 = SIMP(statut='f',typ='R'), + PRES_VAPE = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 1.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='f',typ='R'), + EMMAG = SIMP(statut='f',typ='R'), + SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ -------------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- +# ================================================================================= + b_liqugaz = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PRE2 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRES_VAPE = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 5.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE GAZ ------------------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------ +# ================================================================================= + b_gaz = BLOC(condition = "COMP_THM == 'GAZ' ", + fr="Paramètres nécessaires pour une loi de couplage de type GAZ", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='o',typ='R'), + PRE1 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRE2 = SIMP(statut='f',typ='R'), + PRES_VAPE = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 2.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_LIQU =FACT(statut='f', + RHO =SIMP(statut='f',typ='R'), + UN_SUR_K =SIMP(statut='f',typ='R'), + ALPHA =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_HENRY =SIMP(statut='f',typ='R'), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ---------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- +# ================================================================================= + b_liqugazatm = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRE2 = SIMP(statut='f',typ='R'), + PRES_VAPE = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 6.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + R_GAZ =SIMP(statut='f',typ='R'), + PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='f', + MASS_MOL = SIMP(statut='f',typ='R'), + VISC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CP = SIMP(statut='f',typ='R'), + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ --------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------ +# ================================================================================= + b_liquvapegaz = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PRE2 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), + PRES_VAPE = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 4.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES FACULTATIVE ---------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT" ,"PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + CP = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE ------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS--------- +# ================================================================================= + b_liquadvape = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PRE2 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), + PRES_VAPE = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 9.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES FACULTATIVES ------------------------------------ +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + CP = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_AIR_DISS = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='o',typ='R'), + COEF_HENRY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), + ), + ), +# ================================================================================= +# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE ------------------------------------------- +# ================================================================================= +# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- +# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ --------------------------------- +# ================================================================================= + b_liquvape = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ", + fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE", +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_INIT = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + PRE1 = SIMP(statut='o',typ='R'), + PORO = SIMP(statut='o',typ='R'), + PRES_VAPE = SIMP(statut='o',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + TEMP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + PRE2 = SIMP(statut='f',typ='R'), + DEGR_SATU = SIMP(statut='f',typ='R'), + PRES_ATMO = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEE CACHEE --------------------------------------------- +# --------------------------------------------------------------------------------- + COMP_THM = SIMP(statut='c',typ='R',defaut= 3.0,), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_DIFFU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + R_GAZ = SIMP(statut='o',typ='R'), + RHO = SIMP(statut='o',typ='R'), + BIOT_COEF = SIMP(statut='o',typ='R'), + PESA_X = SIMP(statut='o',typ='R'), + PESA_Y = SIMP(statut='o',typ='R'), + PESA_Z = SIMP(statut='o',typ='R'), + SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + CP = SIMP(statut='f',typ='R'), + PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), + PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), + PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + LAMB_CT = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES INUTILES ---------------------------------------- +# --------------------------------------------------------------------------------- + EMMAG = SIMP(statut='f',typ='R'), + SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), + ) , +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_LIQU = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + RHO = SIMP(statut='o',typ='R'), + UN_SUR_K = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- +# --------------------------------------------------------------------------------- + ALPHA = SIMP(statut='f',typ='R'), + CP = SIMP(statut='f',typ='R'), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES --------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- +# ================================================================================= + THM_VAPE_GAZ = FACT(statut='o', +# --------------------------------------------------------------------------------- +# ------------------- DONNEES OBLIGATOIRE ------------------------------------- +# --------------------------------------------------------------------------------- + MASS_MOL = SIMP(statut='o',typ='R'), + CP = SIMP(statut='o',typ='R'), + VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), +# --------------------------------------------------------------------------------- +# ------------------- DONNEES CACHEES ------------------------------------------- +# --------------------------------------------------------------------------------- + VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), +# ================================================================================= +# --- MOT-CLE INUTILE ------------------------------------------------------------- +# ================================================================================= + THM_GAZ =FACT(statut='f', + MASS_MOL =SIMP(statut='f',typ='R'), + CP =SIMP(statut='f',typ='R'), + VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), + ), + ), +# courbes et coefficients associés à la fatigue et au dommage +# + FATIGUE =FACT(statut='f', + regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'), + PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'), + PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'), + ENSEMBLE('A_BASQUIN','BETA_BASQUIN'), + ENSEMBLE('A0','A1','A2','A3','SL'), + PRESENT_PRESENT('A0','E_REFE'), + ENSEMBLE('D0','TAU0'),), + WOHLER =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_BASQUIN =SIMP(statut='f',typ='R'), + BETA_BASQUIN =SIMP(statut='f',typ='R'), + A0 =SIMP(statut='f',typ='R'), + A1 =SIMP(statut='f',typ='R'), + A2 =SIMP(statut='f',typ='R'), + A3 =SIMP(statut='f',typ='R'), + SL =SIMP(statut='f',typ='R'), + MANSON_COFFIN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + E_REFE =SIMP(statut='f',typ='R'), + D0 =SIMP(statut='f',typ='R'), + TAU0 =SIMP(statut='f',typ='R'), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ), + ), + DOMMA_LEMAITRE =FACT(statut='f', + S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP_SEUIL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + EXP_S =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + CISA_PLAN_CRIT =FACT(statut='f', + CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC", + "DANG_VAN_MODI_AC", + "DANG_VAN_MODI_AV", + "MATAKE_MODI_AV", + "FATESOCI_MODI_AV", + ) ), + + b_critere_matake =BLOC(condition="CRITERE=='MATAKE_MODI_AC' or CRITERE=='MATAKE_MODI_AV'", + fr="Cisaillement plan critique critère de matake pour les cas amplitude constante et amplitude variable", + MATAKE_A =SIMP(statut='o',typ='R'), + MATAKE_B =SIMP(statut='o',typ='R'), + COEF_FLEX_TORS =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), + ), + + b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')", + fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable", + D_VAN_A =SIMP(statut='o',typ='R'), + D_VAN_B =SIMP(statut='o',typ='R'), + COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), + ), + + b_critere_fate_soci =BLOC(condition="CRITERE=='FATESOCI_MODI_AV'", + fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable", + FATSOC_A =SIMP(statut='o',typ='R'), + COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), + ), + ), +# +# autres comportements ... +# + WEIBULL =FACT(statut='f', + M =SIMP(statut='o',typ='R'), + VOLU_REFE =SIMP(statut='o',typ='R'), + SIGM_REFE =SIMP(statut='o',typ='R'), + SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), + ), + WEIBULL_FO =FACT(statut='f', + M =SIMP(statut='o',typ='R'), + VOLU_REFE =SIMP(statut='o',typ='R'), + SIGM_CNV =SIMP(statut='o',typ='R'), + SIGM_REFE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + NON_LOCAL =FACT(statut='f', + regles=(AU_MOINS_UN('LONG_CARA','C_GONF'),), + LONG_CARA =SIMP(statut='f',typ='R'), + C_GONF =SIMP(statut='f',typ='R'), + COEF_RIGI_MINI =SIMP(statut='f',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_CONTACT =SIMP(statut='f',typ='R',defaut=1.), + ), + RUPT_FRAG_FO =FACT(statut='f', + GC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PENA_ADHERENCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + RCCM =FACT(statut='f', + regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),), + SY_02 =SIMP(statut='f',typ='R'), + SM =SIMP(statut='f',typ='R'), + SU =SIMP(statut='f',typ='R'), + SC =SIMP(statut='f',typ='R'), + SH =SIMP(statut='f',typ='R'), + N_KE =SIMP(statut='f',typ='R'), + M_KE =SIMP(statut='f',typ='R'), + A_AMORC =SIMP(statut='f',typ='R'), + B_AMORC =SIMP(statut='f',typ='R'), + D_AMORC =SIMP(statut='f',typ='R'), + R_AMORC =SIMP(statut='f',typ='R'), + ), + RCCM_FO =FACT(statut='f', + regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),), + SY_02 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + S =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + N_KE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + M_KE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + A_AMORC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + B_AMORC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + D_AMORC =SIMP(statut='f',typ='R'), + R_AMORC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), + ), + LAIGLE =FACT(statut='f', + GAMMA_ULT =SIMP(statut='o',typ='R'), + GAMMA_E =SIMP(statut='o',typ='R'), + M_ULT =SIMP(statut='o',typ='R'), + M_E =SIMP(statut='o',typ='R'), + A_E =SIMP(statut='o',typ='R'), + M_PIC =SIMP(statut='o',typ='R'), + A_PIC =SIMP(statut='o',typ='R'), + ETA =SIMP(statut='o',typ='R'), + SIGMA_C =SIMP(statut='o',typ='R'), + GAMMA =SIMP(statut='o',typ='R'), + KSI =SIMP(statut='o',typ='R'), + GAMMA_CJS =SIMP(statut='o',typ='R'), + SIGMA_P1 =SIMP(statut='o',typ='R'), + PA =SIMP(statut='o',typ='R'), + ), + DRUCK_PRAGER =FACT(statut='f', + ALPHA =SIMP(statut='o',typ='R'), + SY =SIMP(statut='o',typ='R'), + P_ULTM =SIMP(statut='o',typ='R'), + ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), + b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", + fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", + H =SIMP(statut='o',typ='R'), + TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), + ), + b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", + fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", + SY_ULTM =SIMP(statut='o',typ='R'), + TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), + ), + ), + HOEK_BROWN =FACT(statut='f', + GAMMA_RUP =SIMP(statut='o',typ='R'), + GAMMA_RES =SIMP(statut='o',typ='R'), + S_END =SIMP(statut='o',typ='R'), + S_RUP =SIMP(statut='o',typ='R'), + M_END =SIMP(statut='o',typ='R'), + M_RUP =SIMP(statut='o',typ='R'), + BETA =SIMP(statut='o',typ='R'), + ALPHAHB =SIMP(statut='o',typ='R'), + PHI_RUP =SIMP(statut='o',typ='R'), + PHI_RES =SIMP(statut='o',typ='R'), + PHI_END =SIMP(statut='f',typ='R'), + ), +#### MONOCRISTAL + + ECOU_VISC1 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + C =SIMP(statut='o',typ='R'), + ), + ECOU_VISC2 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + N =SIMP(statut='o',typ='R'), + K =SIMP(statut='o',typ='R'), + C =SIMP(statut='o',typ='R'), + D =SIMP(statut='o',typ='R'), + A =SIMP(statut='o',typ='R'), + ), + ECOU_VISC3 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + K =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), + TAUMU =SIMP(statut='o',typ='R',fr="Seuil d ecoulement, en unite de contraintes"), + GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"), + DELTAV =SIMP(statut='o',typ='R',fr="Volume d activation"), + DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), + ), + KOCKS_RAUCH =FACT(statut='f', + regles=(UN_PARMI('H','H1'), + PRESENT_PRESENT('H1','H2','H3','H4'), + PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'), + ), + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),), + K =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"), + TAUR =SIMP(statut='o',typ='R',fr="Contraintes de cisaillement à T=0K, en unite de contraintes"), + TAU0 =SIMP(statut='o',typ='R',fr="Contraintes critique initiale de cisaillement, en unite de contraintes"), + GAMMA0 =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"), + DELTAG0 =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"), + BSD =SIMP(statut='o',typ='R',fr="fonction de la taille du grain B/D"), + GCB =SIMP(statut='o',typ='R',fr="distance critique d'annihilation GC/B"), + KDCS =SIMP(statut='o',typ='R',fr="Parametre relatif à la direction principale de la dislocation"), + P =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), + Q =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"), + H =SIMP(statut='f',typ='R'), + H1 =SIMP(statut='f',typ='R'), + H2 =SIMP(statut='f',typ='R'), + H3 =SIMP(statut='f',typ='R'), + H4 =SIMP(statut='f',typ='R'), + H5 =SIMP(statut='f',typ='R'), + H6 =SIMP(statut='f',typ='R'), + ), + ECRO_ISOT1 =FACT(statut='f', + regles=(UN_PARMI('H','H1'), + PRESENT_PRESENT('H1','H2','H3','H4'), + PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'), + ), + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), + R_0 =SIMP(statut='o',typ='R'), + Q =SIMP(statut='o',typ='R'), + B =SIMP(statut='o',typ='R'), + H =SIMP(statut='f',typ='R'), + H1 =SIMP(statut='f',typ='R'), + H2 =SIMP(statut='f',typ='R'), + H3 =SIMP(statut='f',typ='R'), + H4 =SIMP(statut='f',typ='R'), + H5 =SIMP(statut='f',typ='R'), + H6 =SIMP(statut='f',typ='R'), + ), + ECRO_ISOT2 =FACT(statut='f', + regles=(UN_PARMI('H','H1'), + PRESENT_PRESENT('H1','H2','H3','H4'), + PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'), + ), + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), + R_0 =SIMP(statut='o',typ='R'), + Q1 =SIMP(statut='o',typ='R'), + B1 =SIMP(statut='o',typ='R'), + H =SIMP(statut='f',typ='R'), + H1 =SIMP(statut='f',typ='R'), + H2 =SIMP(statut='f',typ='R'), + H3 =SIMP(statut='f',typ='R'), + H4 =SIMP(statut='f',typ='R'), + H5 =SIMP(statut='f',typ='R'), + H6 =SIMP(statut='f',typ='R'), + Q2 =SIMP(statut='o',typ='R'), + B2 =SIMP(statut='o',typ='R'), + ), + ECRO_CINE1 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), + D =SIMP(statut='o',typ='R'), + ), + ECRO_CINE2 =FACT(statut='f', + TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), + D =SIMP(statut='o',typ='R'), + GM =SIMP(statut='o',typ='R'), + PM =SIMP(statut='o',typ='R'), + C =SIMP(statut='o',typ='R'), + ), + +#### MONOCRISTAL + + DRUCK_PRAGER_FO =FACT(statut='f', + ALPHA =SIMP(statut='o',typ=(fonction_sdaster,formule)), + SY =SIMP(statut='o',typ=(fonction_sdaster,formule)), + P_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), + ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), + b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", + fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", + H =SIMP(statut='o',typ=(fonction_sdaster,formule)), + TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), + ), + b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", + fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", + SY_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), + TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), + ), + ), + + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, + reentrant='n', + fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", + UIinfo={"groupes":("Matrices/vecteurs",)}, + SOUS_STRUC =FACT(statut='o',max='**', + NOM =SIMP(statut='o',typ='TXM' ), + MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + TRANS =SIMP(statut='f',typ='R',max=3), + ), + LIAISON =FACT(statut='o',max='**', + SOUS_STRUC_1 =SIMP(statut='o',typ='TXM' ), + INTERFACE_1 =SIMP(statut='o',typ='TXM' ), + SOUS_STRUC_2 =SIMP(statut='o',typ='TXM' ), + INTERFACE_2 =SIMP(statut='o',typ='TXM' ), + regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'), + EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),), + GROUP_MA_MAIT_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA_MAIT_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_MAIT_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ), + ), + VERIF =FACT(statut='f',max='**', +# dans la doc U stop_erreur est obligatoire + STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=nappe_sdaster, + fr="Définir une fonction réelle de deux variables réelles", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), + EXCLUS('FONCTION','NOM_PARA_FONC',), + ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),), + NOM_PARA =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), + PARA =SIMP(statut='o',typ='R',max='**'), + FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", + "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ), + DEFI_FONCTION =FACT(statut='f',max='**', + VALE =SIMP(statut='o',typ='R',max='**'), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + 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") ), + ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + 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") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=table_fonction, + fr="Définition d'un obstacle plan perpendiculaire à une structure filaire", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE", + into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET", + "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT", + "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900", + "GUID_B_CARTE_900","GUID_C_CARTE_900", + "GUID_D_CARTE_900","GUID_E_CARTE_900", + "GUID_F_CARTE_900","GUID_A_CARTE_1300", + "GUID_B_CARTE_1300","GUID_C_CARTE_1300", + "GUID_D_CARTE_1300","GUID_E_CARTE_1300", + "GUID_F_CARTE_1300","GUID_A_CARSP_900", + "GUID_B_CARSP_900","GUID_C_CARSP_900", + "GUID_D_CARSP_900","GUID_E_CARSP_900", + "GUID_F_CARSP_900","GUID_A_CARSP_1300", + "GUID_B_CARSP_1300","GUID_C_CARSP_1300", + "GUID_D_CARSP_1300","GUID_E_CARSP_1300", + "GUID_F_CARSP_1300","GUID_A_GCONT_900", + "GUID_B_GCONT_900","GUID_C_GCONT_900", + "GUID_D_GCONT_900","GUID_E_GCONT_900", + "GUID_F_GCONT_900","GUID_A_GCONT_1300", + "GUID_B_GCONT_1300","GUID_C_GCONT_1300", + "GUID_D_GCONT_1300","GUID_E_GCONT_1300", + "GUID_F_GCONT_1300","GUID_A_GCOMB_900", + "GUID_B_GCOMB_900","GUID_C_GCOMB_900", + "GUID_D_GCOMB_900","GUID_E_GCOMB_900", + "GUID_F_GCOMB_900","GUID_A_GCOMB_1300", + "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300", + "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300", + "GUID_F_GCOMB_1300",) ), + VALE =SIMP(statut='f',typ='R',max='**'), + VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"), +) ; +#& MODIF COMMANDE DATE 10/06/2004 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. +# +# 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 GNICOLAS G.NICOLAS +DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, + fr="Définition d'un paramètre de sensibilité", + ang="Definition of a sensitive parameter", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + NOM_RESU =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU", + fr="Nom du concept créé", + ang="Name of the concept"), + VALE =SIMP(statut='o',typ='R', + fr="Valeur du parametre", + ang="Value of the parameter"), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, + fr="Définition d'un spectre d'excitation turbulente", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3', + 'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2', + 'SPEC_FONC_FORME','SPEC_EXCI_POINT'),), + SPEC_LONG_COR_1 =FACT(statut='f', + LONG_COR =SIMP(statut='o',typ='R' ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VISC_CINE =SIMP(statut='o',typ='R' ), + ), + SPEC_LONG_COR_2 =FACT(statut='f', + regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),), + LONG_COR =SIMP(statut='o',typ='R' ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ), + PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ), + BETA =SIMP(statut='f',typ='R',defaut= 2.7 ), + ), + SPEC_LONG_COR_3 =FACT(statut='f', + regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),), + LONG_COR =SIMP(statut='o',typ='R' ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ), + PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ), + BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ), + PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.E-5 ), + BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ), + ), + SPEC_LONG_COR_4 =FACT(statut='f', + regles=(ENSEMBLE('BETA','GAMMA'),), + LONG_COR =SIMP(statut='o',typ='R' ), + PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TAUX_VIDE =SIMP(statut='o',typ='R' ), + BETA =SIMP(statut='f',typ='R',defaut= 2. ), + GAMMA =SIMP(statut='f',typ='R',defaut= 4. ), + ), + SPEC_CORR_CONV_1=FACT(statut='f', + LONG_COR_1 =SIMP(statut='o',typ='R' ), + LONG_COR_2 =SIMP(statut='f',typ='R' ), + VITE_FLUI =SIMP(statut='o',typ='R' ), + RHO_FLUI =SIMP(statut='o',typ='R' ), + FREQ_COUP =SIMP(statut='f',typ='R' ), + K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ), + D_FLUI =SIMP(statut='o',typ='R' ), + COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), + COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), + METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", + into=("AU_YANG","GENERALE","CORCOS") ), + ), + SPEC_CORR_CONV_2=FACT(statut='f', + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VITE_FLUI =SIMP(statut='o',typ='R' ), + FREQ_COUP =SIMP(statut='f',typ='R' ), + METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", + into=("AU_YANG","GENERALE","CORCOS",) ), + COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), + COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), + ), + SPEC_FONC_FORME =FACT(statut='f', + regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'), + ENSEMBLE('INTE_SPEC','FONCTION'),), + INTE_SPEC =SIMP(statut='f',typ=table_fonction), + FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), + GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ), + NOEUD =SIMP(statut='o',typ=no), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + ), + SPEC_EXCI_POINT =FACT(statut='f', + regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), + INTE_SPEC =SIMP(statut='f',typ=table_fonction), + GRAPPE_2 =SIMP(statut='f',typ='TXM', + into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ), +# Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent + b_inte_spec =BLOC(condition = "INTE_SPEC != None", + NATURE =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ), + ANGL =SIMP(statut='o',typ='R',max='**'), + NOEUD =SIMP(statut='o',typ=no,max='**'), + ), + b_grappe_2 =BLOC(condition = "GRAPPE_2 != None", + RHO_FLUI =SIMP(statut='o',typ='R' ), + NOEUD =SIMP(statut='o',typ=no), + ), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, + fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'), + PRESENT_PRESENT('CYCLIQUE','SECTEUR'), + EXCLUS('SOUS_STRUC','SECTEUR'), + PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'), + PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),), + CYCLIQUE =FACT(statut='f',max='**', + regles=(UN_PARMI('MODE_CYCL','MAILLAGE'), + PRESENT_PRESENT('NB_SECTEUR','MAILLAGE'),), + MODE_CYCL =SIMP(statut='f',typ=mode_cycl ), + NB_SECTEUR =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), + ), + MODELE_GENE =SIMP(statut='f',typ=modele_gene ), + SQUELETTE =SIMP(statut='f',typ=squelette ), + RECO_GLOBAL =FACT(statut='f',max='**', + regles=(EXCLUS('TOUT','GROUP_NO_1'), + PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'), + PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'), + PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'), + PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),), + TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), + GROUP_NO_1 =SIMP(statut='f',typ=grno), + SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), + GROUP_NO_2 =SIMP(statut='f',typ=grno), + SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + DIST_REFE =SIMP(statut='f',typ='R' ), + ), + NOM_GROUP_MA =FACT(statut='f',max='**', + NOM =SIMP(statut='o',typ='TXM' ), + SOUS_STRUC =SIMP(statut='o',typ='TXM' ), + GROUP_MA =SIMP(statut='o',typ=grma), + ), + EXCLUSIF =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + TRANS =SIMP(statut='f',typ='R',min=3,max=3), + ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), + SOUS_STRUC =FACT(statut='f',max='**', + NOM =SIMP(statut='f',typ='TXM' ), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ), + SECTEUR =FACT(statut='f',max='**', + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/08/2006 AUTEUR MASSIN P.MASSIN +# 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. +# ====================================================================== + +PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + fr="Propagation de fissure avec X-FEM", + + MODELE =SIMP(statut='o',typ=modele_sdaster), + + TABLE =SIMP(statut='o',typ=table_sdaster), + + LOI_PROPA =FACT(statut='o',max=01, + LOI =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"), + b_paris =BLOC( condition = "LOI=='PARIS'", + C =SIMP(statut='o',typ='R',), + M =SIMP(statut='o',typ='R',),), + ), + + RAYON =SIMP(statut='o',typ='R',), + + METHODE =SIMP(statut='f',typ='TXM',into=("SIMPLEXE","UPWIND",),defaut="COEFF_POSITIF"), + +# RUNGE_KUTTA =SIMP(statut='f',typ='I',into=("1","2",),defaut=1), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 03/01/2006 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. +# +# 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. +# ====================================================================== +DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier" + +" pour les calculs métallurgiques.", + HIST_EXP =FACT(statut='o',max='**', + VALE =SIMP(statut='o',typ='R',max='**'), + ), + TEMP_MS =FACT(statut='o',max='**', + SEUIL =SIMP(statut='o',typ='R'), + AKM =SIMP(statut='o',typ='R'), + BKM =SIMP(statut='o',typ='R'), + TPLM =SIMP(statut='o',typ='R'), + ), + GRAIN_AUST =FACT(statut='f',max='**', + DREF =SIMP(statut='f',typ='R'), + A =SIMP(statut='f',typ='R'), + ), +) ; +#& MODIF COMMANDE DATE 13/12/2006 AUTEUR PELLET J.PELLET +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 Macro.macr_ecla_pg_ops import macr_ecla_pg_ops + +def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args): + self.type_sdprod(RESULTAT,AsType(RESU_INIT)) + self.type_sdprod(MAILLAGE,maillage_sdaster) + return None + + +MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation", + + + # SD résultat ,modèle et champs à "éclater" : + RESU_INIT =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",), + MODELE_INIT =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + + # paramètres numériques de la commande : + SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), + TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), + + # concepts produits par la commande : + RESULTAT =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"), + MAILLAGE =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"), + + # Sélection éventuelle d'un sous-ensemble des éléments à visualiser : + 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='**'), + + # Sélection des numéros d'ordre : + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), + 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), + 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",) ), + ) +#& MODIF COMMANDE DATE 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA +# 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. +# ====================================================================== +def depl_interne_prod(DEPL_GLOBAL,**args ): + if AsType(DEPL_GLOBAL) == cham_no_sdaster: return cham_no_sdaster + if AsType(DEPL_GLOBAL) == evol_elas : return evol_elas + 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) == 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),), + SUPER_MAILLE =SIMP(statut='o',typ=ma,), + NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), +) ; +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +DETRUIRE=MACRO(nom="DETRUIRE",op=-7, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX", + op_init=ops.detruire, + regles=(UN_PARMI('CONCEPT','OBJET',),), + CONCEPT =FACT(statut='f',max='**', + regles=(DERIVABLE('NOM'),), + NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter",max='**'), + ), + OBJET =FACT(statut='f',max='**', + CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'), + CHAINE =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + POSITION =SIMP(statut='f',typ='I' ,max='**'), + ), + ALARME =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',), + INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ), +); +#& MODIF COMMANDE DATE 31/10/2006 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== +CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster, + fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité" + +" et les facteurs d'intensité de contraintes.", + reentrant='f', + UIinfo={"groupes":("Post traitements",)}, + regles=(EXCLUS('COMP_ELAS','COMP_INCR'), + CONCEPT_SENSIBLE("ENSEMBLE"), + REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', + 'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),), + + THETA =FACT(statut='o', + THETA =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster),), + FOND_FISS =SIMP(statut='f',typ=fond_fiss,max=1), + FISSURE =SIMP(statut='f',typ=fiss_xfem,max=1), + regles=(EXCLUS('FOND_FISS','FISSURE'),), + b_theta =BLOC(condition="THETA == None",fr="calcul de theta", + regles=(UN_PARMI('R_INF','R_INF_FO'), + EXCLUS('MODULE','MODULE_FO'), + PRESENT_PRESENT('R_INF','R_SUP'), + PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), + NUME_FOND =SIMP(statut='f',typ='I',defaut=1), + R_INF =SIMP(statut='f',typ='R'), + R_SUP =SIMP(statut='f',typ='R'), + MODULE =SIMP(statut='f',typ='R'), + DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + 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)), + ), + ), + + RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),), + + 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), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =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='**'), + LIST_MODE =SIMP(statut='f',typ=listis_sdaster), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + 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") ), + ), + + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), + ), + SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), + + COMP_ELAS =FACT(statut='f', + RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", + into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), + ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), + 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",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + ), + 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 =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",) ), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), + ), + ETAT_INIT =FACT(statut='f', + SIGM =SIMP(statut='f',typ=cham_elem), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + ), + + LISSAGE =FACT(statut='d', + DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ), + LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),), + LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE", + "LAGRANGE_NO_NO","LAGRANGE_REGU"),), + ), + + OPTION =SIMP(statut='o',typ='TXM',max=1,defaut='CALC_G', + into=("CALC_G","CALC_G_GLOB","CALC_K_G","K_G_MODA","G_MAX","G_MAX_GLOB","G_BILI", + "G_BILI_GLOB","G_LAGR","G_LAGR_GLOB","CALC_K_MAX"),), + + b_g_max =BLOC(condition="(OPTION=='G_MAX') or (OPTION=='G_MAX_GLOB')", + BORNES =FACT(statut='o',max='**', + NUME_ORDRE =SIMP(statut='o',typ='I'), + VALE_MIN =SIMP(statut='o',typ='R'), + VALE_MAX =SIMP(statut='o',typ='R'), + ), + ), + b_k_max =BLOC(condition="(OPTION=='CALC_K_MAX')", + SIGNES =FACT(statut='o',max=1, + CHARGE_S =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'), + CHARGE_NS =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'), + ), + ), + + PROPAGATION =SIMP(statut='f',typ='R'), + THETA_LAGR =SIMP(statut='f',typ=theta_geom), + DIRE_THETA_LAGR =SIMP(statut='f',typ=cham_no_sdaster), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +); +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_fonction, + fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + BASE_MODALE =FACT(statut='o', + regles=(UN_PARMI('NUME_ORDRE','BANDE'),), + MODE_MECA =SIMP(statut='o',typ=mode_meca ), + BANDE =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + b_bande =BLOC(condition = "BANDE != None", + AMOR_UNIF =SIMP(statut='o',typ='R' ), + ), + b_nume_ordre =BLOC(condition = "NUME_ORDRE != None", + AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), + ), + ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), +# MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait +# ainsi rajouter un bloc du genre b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')", + EXCIT =FACT(statut='o', + INTE_SPEC =SIMP(statut='o',typ=table_fonction), + NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ), + MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')", + regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),), + NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'), + NOEUD_I =SIMP(statut='f',typ=no,max='**'), + b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", + regles=(EXCLUS('CHAM_NO','NOEUD'),), +# on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO' +# cela impliquerait d'enlever la valeur par defaut a GRANDEUR + NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), + NOEUD =SIMP(statut='f',typ=no,max='**'), + b_noeud =BLOC(condition = "NOEUD != None", + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + ), + GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", + into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), +# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP + DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), + ), + b_noeud_i =BLOC(condition = "NOEUD_I != None", + NOEUD_J =SIMP(statut='o',typ=no,max='**'), + NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'), + NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'), + NOEUD =SIMP(statut='o',typ=no,max='**'), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), +# ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans +# NOEUD_I, NOM_CMP_I ... => modif. du Fortran + GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", + into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), +# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I + DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), + ), + ), + b_modal_oui = BLOC(condition = "(MODAL == 'OUI')", +# dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes + NUME_ORDRE_I =SIMP(statut='o',typ='I',max='**'), + NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), + GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", + into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), + DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), +# dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO On devrait +# pouvoir supprimer GRANDEUR et DERIVATION ici + ), + + ), + REPONSE =FACT(statut='f', + regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),), + DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ), + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), + FREQ_MIN =SIMP(statut='f',typ='R' ), + FREQ_MAX =SIMP(statut='f',typ='R' ), + PAS =SIMP(statut='f',typ='R' ), + b_defaut_freq =BLOC(condition = "FREQ_MIN == NONE", + FREQ_EXCIT =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ), + NB_POIN_MODE =SIMP(statut='f',typ='I',defaut= 50 ), + ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +def dyna_line_harm_prod(MATR_RIGI,**args): + if (AsType(MATR_RIGI) == matr_asse_depl_r) : return dyna_harmo + elif (AsType(MATR_RIGI) == matr_asse_depl_c) : return dyna_harmo + elif (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo + elif (AsType(MATR_RIGI) == matr_asse_gene_r) : return harm_gene + elif (AsType(MATR_RIGI) == matr_asse_gene_c) : return harm_gene + raise AsException("type de concept resultat non prevu") + +DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, + fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'), + PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'), + 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 ) ), + MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c + ,matr_asse_gene_r,matr_asse_gene_c ) ), + MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), + MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), + b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : RESULTAT obligatoire", + RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene)), + ), + EXCIT =FACT(statut='o',max='**', + 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 ), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), + FONC_MULT_C =SIMP(statut='f',typ=fonction_c ), + COEF_MULT_C =SIMP(statut='f',typ='C' ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_MULT =SIMP(statut='f',typ='R' ), + PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), +) ; +# 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 13/12/2006 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. +# +# 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. +# ====================================================================== +DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, + fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, +# regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),), + regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'), + 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_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), + NEWMARK =FACT(statut='f', + ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ), + DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ), + ), + WILSON =FACT(statut='f', + THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), + ), + DIFF_CENTRE =FACT(statut='f', + ), + ADAPT =FACT(statut='f', + ), + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'), + PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),), + DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ), + b_dyna_trans =BLOC(condition = "DYNA_TRANS != None", + regles=(EXCLUS('NUME_INIT','INST_INIT' ),), + 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") ), + ), + ), + DEPL_INIT =SIMP(statut='f',typ=cham_no_sdaster), + VITE_INIT =SIMP(statut='f',typ=cham_no_sdaster), + ACCE_INIT =SIMP(statut='f',typ=cham_no_sdaster), + ), + EXCIT =FACT(statut='f',max='**', + regles=(UN_PARMI('CHARGE','VECT_ASSE'), + EXCLUS('CHARGE','COEF_MULT'), + EXCLUS('FONC_MULT','COEF_MULT'), + EXCLUS('ACCE','COEF_MULT'), + PRESENT_ABSENT('ACCE','FONC_MULT'), + PRESENT_PRESENT('ACCE','VITE','DEPL'), + # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), + ), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), + CHARGE =SIMP(statut='f',typ=char_meca ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_MULT =SIMP(statut='f',typ='R' ), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + AMOR_MODAL =FACT(statut='f', + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), + REAC_VITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), + + 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 ), + ), + 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")), + SCALING =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.E-6,), + ), + ), + + INCREMENT =FACT(statut='o',max='**', + regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + PAS =SIMP(statut='f',typ='R' ), + b_pas =BLOC(condition = "PAS != None", + INST_INIT =SIMP(statut='f',typ='R' ), + INST_FIN =SIMP(statut='f',typ='R' ), + ), + b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None", + regles=(EXCLUS('INST_FIN','NUME_FIN'),), + NUME_FIN =SIMP(statut='f',typ='I' ), + INST_FIN =SIMP(statut='f',typ='R' ), + ), + VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), + COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), + COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ), + PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), + NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), + PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ), + ), + ARCHIVAGE =FACT(statut='f', + regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), + PAS_ARCH =SIMP(statut='f',typ='I' ), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramétres de sensibilité.", + ang="List of sensitivity parameters", + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 12/03/2007 AUTEUR DEVESA G.DEVESA +# 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. +# ====================================================================== +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",)}, + regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), + UN_PARMI('NEWMARK','HHT','TETA_METHODE',), + CONCEPT_SENSIBLE('ENSEMBLE'),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='o',max='**', + regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), + PRESENT_PRESENT('ACCE','VITE','DEPL'), + # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), + ), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), + CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + SOUS_STRUC =FACT(statut='f',min=01,max='**', + regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), + CAS_CHARGE =SIMP(statut='o',typ='TXM' ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + AMOR_MODAL =FACT(statut='f', + regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), + MODE_MECA =SIMP(statut='f',typ=mode_meca), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), + NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), + REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + COMP_INCR =C_COMP_INCR(), + COMP_ELAS =FACT(statut='f',max='**', + 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",) ), + 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")), + ), +#------------------------------------------------------------------- + b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", + ETAT_INIT =FACT(statut='o', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','VITE'), + EXCLUS('EVOL_NOLI','ACCE'), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + VITE =SIMP(statut='f',typ=cham_no_sdaster), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), + 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") ), + NUME_DIDI =SIMP(statut='f',typ='I'), + INST_ETAT_INIT =SIMP(statut='f',typ='R'), + ),), + b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','VITE'), + EXCLUS('EVOL_NOLI','ACCE'), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + VITE =SIMP(statut='f',typ=cham_no_sdaster), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), + 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") ), + NUME_DIDI =SIMP(statut='f',typ='I'), + INST_ETAT_INIT =SIMP(statut='f',typ='R'), + ),), +#------------------------------------------------------------------- + INCREMENT =FACT(statut='o', + 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 + 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'), + ), +#------------------------------------------------------------------- + NEWMARK =FACT(statut='f', + ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), + DELTA =SIMP(statut='f',typ='R',defaut= 0.5), + ), + HHT =FACT(statut='f', + ALPHA =SIMP(statut='f',typ='R',defaut= -0.3 ), + MODI_EQUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + TETA_METHODE =FACT(statut='f', + TETA =SIMP(statut='f',typ='R' + ,defaut= 1.,val_min=0.5,val_max=1. ), + ), + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + 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), + 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") ), + 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","DECOUPE") ), + ), + 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")), + SCALING =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,), + ), + 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") ), + ), +#------------------------------------------------------------------- + RECH_LINEAIRE =FACT(statut='f', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + 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), + RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), + RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.), + ), + PILOTAGE =FACT(statut='f', + regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), + ETA_PILO_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_MIN =SIMP(statut='f',typ='R'), + ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), + PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), + 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='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), + ), + 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'), + FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD2_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), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + ), +#------------------------------------------------------------------- + OBSERVATION =FACT(statut='f',max='**', + NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), + SUIVI_DDL =SIMP(statut='f',typ='TXM',defaut="NON",max=1,into=("OUI","NON")), + b_suivi =BLOC(condition = "SUIVI_DDL == 'OUI' ", + regles=(UN_PARMI('NOEUD','MAILLE','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'), + PRESENT_PRESENT('MAILLE','POINT'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, + into=("DEPL","VITE","ACCE","SIEF_ELGA", + "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), + VALE_MAX =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ), + VALE_MIN =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),), + b_non_suivi =BLOC(condition = "SUIVI_DDL == 'NON' ", + regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),PRESENT_PRESENT('MAILLE','POINT'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA", + "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU")), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),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") ),), + ), + + AFFICHAGE = FACT(statut='f',max=16, + + UNITE = SIMP(statut='f',typ='I',val_min=1), + + LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), + PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), + LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), + + NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", + into=("STANDARD","MINIMUM", + "ITER_NEWT", + "INCR_TPS", + "RESI_RELA","RELA_NOEU", + "RESI_MAXI","MAXI_NOEU", + "RESI_REFE","REFE_NOEU", + "RELI_ITER","RELI_COEF", + "PILO_PARA", + "LAGR_ECAR","LAGR_INCR","LAGR_ITER", + "MATR_ASSE", + "ITER_DEBO", + "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", + "CTCC_GEOM","CTCC_FROT","CTCC_CONT", + "SUIV_1","SUIV_2","SUIV_3","SUIV_4", + ), + ), + b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ + NOM_COLONNE == 'RESI_MAXI' or\ + NOM_COLONNE == 'RESI_REFE' or\ + NOM_COLONNE == 'CTCD_GEOM' or\ + NOM_COLONNE == 'STANDARD' ", + INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + ), + ), +#------------------------------------------------------------------- + ARCHIVAGE =FACT(statut='f', + regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), + EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), + 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), + 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",)), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), + ), + +#------------------------------------------------------------------- + CRIT_FLAMB =FACT(statut='f',min=1,max=1, + NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), + CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10.), + fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), + ), + MODE_VIBR =FACT(statut='f',min=1,max=1, + MATR_RIGI =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE") ), + NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), + ), +#------------------------------------------------------------------- + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité", + ang="List of sensitivity parameters"), +#------------------------------------------------------------------- + SOLV_NON_LOCAL =FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), + 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_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")), + SCALING =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,), + ), + 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 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + LAGR_NON_LOCAL =FACT(statut='f', + ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), + RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), + RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), + R =SIMP(statut='f',typ='R',defaut= 1000.), + ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), + ), +#------------------------------------------------------------------- + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=table_fonction, + fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), + EXCIT =FACT(statut='o', + INTE_SPEC_GENE =SIMP(statut='o',typ=table_fonction), + ), + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, + fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées" + +" par superposition modale ou par sous structuration", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, + 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") ), + MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), + RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), + AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + 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") ), + ), + DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), + VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), + ), + INCREMENT =FACT(statut='o',max='**', + INST_INIT =SIMP(statut='f',typ='R' ), + INST_FIN =SIMP(statut='o',typ='R' ), + PAS =SIMP(statut='f',typ='R' ), + VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), + COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), + COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ), + PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ), + NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), + NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), + ), + ARCHIVAGE =FACT(statut='f', + regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),), + 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'), + PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'), + PRESENT_ABSENT('NUME_ORDRE','VECT_GENE','COEF_MULT'), + EXCLUS('MULT_APPUI','CORR_STAT'), + PRESENT_ABSENT('MULT_APPUI','COEF_MULT'), + PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),), + VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ), + NUME_ORDRE =SIMP(statut='f',typ='I' ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_MULT =SIMP(statut='f',typ='R' ), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + b_loca =BLOC(condition= "DIRECTION != None", + regles=(EXCLUS('NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + D_FONC_DT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + D_FONC_DT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + CHOC =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ), + EXCLUS('NOEUD_2','GROUP_NO_2'), + PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'), + PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),), + INTITULE =SIMP(statut='f',typ='TXM' ), + GROUP_MA =SIMP(statut='f',typ=grma,max='**'), + MAILLE =SIMP(statut='f',typ=ma,max='**'), + NOEUD_1 =SIMP(statut='f',typ=no), + NOEUD_2 =SIMP(statut='f',typ=no), + GROUP_NO_1 =SIMP(statut='f',typ=grno), + GROUP_NO_2 =SIMP(statut='f',typ=grno), + OBSTACLE =SIMP(statut='o',typ=table_fonction), + ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3), + NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3), + ANGL_VRIL =SIMP(statut='f',typ='R' ), + JEU =SIMP(statut='f',typ='R',defaut= 1. ), + DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ), + DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ), + SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), + SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), + REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), + RIGI_NOR =SIMP(statut='f',typ='R' ), + AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + + LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + b_lame =BLOC(condition="LAME_FLUIDE=='OUI'", + ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + ), + VERI_CHOC =FACT(statut='f',max='**', + STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), + ), + FLAMBAGE =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), + EXCLUS('NOEUD_2','GROUP_NO_2'),), + NOEUD_1 =SIMP(statut='f',typ=no), + NOEUD_2 =SIMP(statut='f',typ=no), + GROUP_NO_1 =SIMP(statut='f',typ=grno), + GROUP_NO_2 =SIMP(statut='f',typ=grno), + OBSTACLE =SIMP(statut='o',typ=table_fonction), + ORIG_OBST =SIMP(statut='f',typ='R',max='**'), + NORM_OBST =SIMP(statut='o',typ='R',max='**'), + ANGL_VRIL =SIMP(statut='f',typ='R' ), + JEU =SIMP(statut='f',typ='R',defaut= 1. ), + DIST_1 =SIMP(statut='f',typ='R' ), + DIST_2 =SIMP(statut='f',typ='R' ), + REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), + RIGI_NOR =SIMP(statut='f',typ='R' ), + FNOR_CRIT =SIMP(statut='f',typ='R' ), + FNOR_POST_FL =SIMP(statut='f',typ='R' ), + RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ), + ), + ANTI_SISM =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), + UN_PARMI('NOEUD_2','GROUP_NO_2'),), + NOEUD_1 =SIMP(statut='f',typ=no), + NOEUD_2 =SIMP(statut='f',typ=no), + GROUP_NO_1 =SIMP(statut='f',typ=grno), + GROUP_NO_2 =SIMP(statut='f',typ=grno), + RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + C =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ), + ), + RELA_EFFO_DEPL =FACT(statut='f',max='**', + NOEUD =SIMP(statut='o',typ=no), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + RELA_TRANSIS =FACT(statut='f',max='**', + NOEUD =SIMP(statut='o',typ=no), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + RELA_EFFO_VITE =FACT(statut='f',max='**', + NOEUD =SIMP(statut='o',typ=no), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + b_itmi =BLOC(condition = "METHODE=='ITMI'", + regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), + BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), + NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), + ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + NB_MODE =SIMP(statut='f',typ='I' ), + NB_MODE_FLUI =SIMP(statut='f',typ='I' ), + NB_MODE_DIAG =SIMP(statut='f',typ='I' ), + TS_REG_ETAB =SIMP(statut='f',typ='R' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + IMPRESSION =FACT(statut='f',max='**', + regles=(EXCLUS('TOUT','NIVEAU'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NIVEAU =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ), + INST_INIT =SIMP(statut='f',typ='R' ), + INST_FIN =SIMP(statut='f',typ='R' ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + ) ; +#& MODIF COMMANDE DATE 12/12/2006 AUTEUR VIVAN 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. +# ====================================================================== +# RESPONSABLE VABHHTS J.PELLET +ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178, + UIinfo={"groupes":("Impression",)}, + fr="Engendre des tests pour la non régression du code (pour développeurs)", + UNITE =SIMP(statut='f',typ='I',defaut=8), + FORMAT =SIMP(statut='f',typ='TXM',into=("OBJET",) ), + FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE20.13"), + PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-10"), +#============================================================================ + b_aster =BLOC( condition = "FORMAT==None", + CO =SIMP(statut='o',typ=(cham_gd_sdaster,resultat_sdaster,table_sdaster), + validators=NoRepeat(),max='**'), + TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMM_ABS",into=("SOMM","SOMM_ABS","MAX","MIN") ), + ), +#============================================================================ + b_objet =BLOC( condition = "FORMAT=='OBJET'", + regles=(UN_PARMI('TOUT','CO'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + CO =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'), + TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ), + ), +) ; +#& MODIF COMMANDE DATE 29/08/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== + +from Macro.exec_logiciel_ops import exec_logiciel_ops +def exec_logiciel_prod(self, MAILLAGE, **args): + if MAILLAGE != None: + mcf = MAILLAGE[0] + self.type_sdprod(mcf['MAILLAGE'], maillage_sdaster) + return None + +EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL",op=exec_logiciel_ops, sd_prod=exec_logiciel_prod, + fr="Exécute un logiciel ou une commande système depuis Aster", + UIinfo={"groupes":("Outils métier",)}, + + regles = (AU_MOINS_UN('LOGICIEL', 'MAILLAGE'),), + + LOGICIEL = SIMP(statut='f', typ='TXM'), + ARGUMENT = SIMP(statut='f', max='**', typ='TXM'), + + MAILLAGE = FACT(statut='f', + FORMAT = SIMP(statut='o', typ='TXM', into=("GMSH", "GIBI", "SALOME")), + UNITE_GEOM = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=16, + fr="Unité logique définissant le fichier (fort.N) contenant les données géométriques (datg)"), + UNITE = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=19, + fr="Unité logique définissant le fichier (fort.N) produit par le mailleur"), + MAILLAGE = SIMP(statut='o', typ=CO), + ), + + CODE_RETOUR_MAXI = SIMP(statut='f', typ='I', defaut=0, val_min=-1, + fr="Valeur maximale du code retour toléré (-1 pour l'ignorer)"), + + INFO = SIMP(statut='f', typ='I', defaut=2, into=(1,2),), +) +#& MODIF COMMANDE DATE 14/10/2005 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. +# ====================================================================== +def extr_mode_prod(FILTRE_MODE,**args): + vale=FILTRE_MODE[0]['MODE'] + if AsType(vale) == mode_meca : return mode_meca + if AsType(vale) == mode_meca_c : return mode_meca_c + if AsType(vale) == mode_gene : return mode_gene + raise AsException("type de concept resultat non prevu") + +EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, + reentrant='n',fr="Extraire séléctivement des modes des structures de données modales", + UIinfo={"groupes":("Résolution",)}, + FILTRE_MODE =FACT(statut='o',max='**', + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),), + MODE =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + FREQ_MIN =SIMP(statut='f',typ='R' ), + CRIT_EXTR =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ), + b_freq_min =BLOC(condition = "FREQ_MIN != None", + FREQ_MAX =SIMP(statut='o',typ='R' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + b_crit_extr =BLOC(condition = "CRIT_EXTR != None", + regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),), + SEUIL =SIMP(statut='f',typ='R'), + SEUIL_X =SIMP(statut='f',typ='R'), + SEUIL_Y =SIMP(statut='f',typ='R'), + SEUIL_Z =SIMP(statut='f',typ='R'), + ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + IMPRESSION =FACT(statut='f', + CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), + ), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR VABHHTS 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. +# +# 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 extr_resu_prod(RESULTAT,**args): + if AsType(RESULTAT) == evol_elas : return evol_elas + if AsType(RESULTAT) == evol_noli : return evol_noli + if AsType(RESULTAT) == evol_ther : return evol_ther + if AsType(RESULTAT) == dyna_trans : return dyna_trans + if AsType(RESULTAT) == dyna_harmo : return dyna_harmo + if AsType(RESULTAT) == acou_harmo : return acou_harmo + if AsType(RESULTAT) == mode_meca : return mode_meca + if AsType(RESULTAT) == mode_acou : return mode_acou + if AsType(RESULTAT) == mode_stat_depl : return mode_stat_depl + if AsType(RESULTAT) == mode_stat_acce : return mode_stat_acce + if AsType(RESULTAT) == mode_stat_forc : return mode_stat_forc + if AsType(RESULTAT) == mult_elas : return mult_elas + if AsType(RESULTAT) == fourier_elas : return fourier_elas + raise AsException("type de concept resultat non prevu") + +EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f', + UIinfo={"groupes":("Résultats et champs",)}, + fr="Extraire des champs au sein d'une SD Résultat", + regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), + RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, + mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli, + mult_elas,fourier_elas,fourier_ther ) ), + + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + + ARCHIVAGE =FACT(statut='f', + regles=( UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE', + 'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE', + 'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ), + 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"), + 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='**'), + 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), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + 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'), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 fact_grad_prod(MATR_ASSE,**args): + if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r + if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r + if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r + raise AsException("type de concept resultat non prevu") + +FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod, + UIinfo={"groupes":("Résolution",)}, + fr="Construire une matrice de préconditionnement pour une résolution par gradient conjugué", + reentrant='n', + MATR_ASSE =SIMP(statut='o', + typ=(matr_asse_depl_r,matr_asse_temp_r, + matr_asse_pres_r) ), + PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ), + NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 GNICOLAS G.NICOLAS + +from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops + +MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops, + docu="U7.04.41",UIinfo={"groupe":("Impression",)}, + fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.", + ang="Print values for the fiability software", +# +# 1. Le niveau d'information +# + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +# +# 2. Impression de la valeur de la cible +# +# 2.1. ==> La table contenant la valeur à imprimer +# + TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster, + fr="Table contenant la valeur cible.", + ang="Table which includes the target value."), +# +# 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table +# + NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM', + fr="Nom du paramètre associé à la valeur cible.", + ang="Name of the parameter connected to the target value."), +# +# 3. Impressions des valeurs des éventuels gradients +# + GRADIENTS = FACT(statut='f',min=1,max='**', +# +# 3.1. ==> La table contenant la valeur à imprimer +# + TABLE = SIMP(statut='o',typ=table_sdaster, + fr="Table contenant le gradient.", + ang="Table which includes the gradient."), +# +# 3.2. ==> Le paramètre sensible +# + PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom), + fr="Paramètre sensible associé au gradient.", + ang="Sensitivity parameter connected to the gradient."), +# +# 3.3. ==> Le nom du paramètre associé au gradient dans cette table +# + NOM_PARA = SIMP(statut='o',typ='TXM', + fr="Nom du paramètre associé au gradient.", + ang="Name of the parameter connected to the gradient."), +# + ), +# +); +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 VABHHTS J.PELLET +def fact_ldlt_prod(MATR_ASSE,**args): + if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r + if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c + if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r + if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c + if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r + if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c + raise AsException("type de concept resultat non prevu") + +FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod, + fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'), + EXCLUS('BLOC_FIN','DDL_FIN'),), + MATR_ASSE =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) ), + STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + NPREC =SIMP(statut='f',typ='I',defaut=8,val_min=0,), + PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ), + BLOC_DEBUT =SIMP(statut='f',typ='I',val_min=1,), + DDL_DEBUT =SIMP(statut='f',typ='I',val_min=1,), + BLOC_FIN =SIMP(statut='f',typ='I',val_min=1,), + DDL_FIN =SIMP(statut='f',typ='I',val_min=1,), +# + EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + +# mots clés pour solveur MUMPS : + TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), + PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE", + UIinfo={"groupes":("Gestion du travail",)}, + FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', + typ='TXM',defaut="NON",into=("OUI","NON",) ), + RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE", + statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ", + statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), + INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données", + statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), + UNITE =SIMP(statut='f',typ='I',defaut=6), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster, + reentrant='n',fr="Crée une fonction constante paramètrée par l'abscisse curviligne", + UIinfo={"groupes":("Fonction",)}, + TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 form_pyth_ops(self,d): + import types,string + NOM_PARA=self.etape['NOM_PARA'] + VALE =self.etape['VALE'] + if type(NOM_PARA) not in (types.ListType,types.TupleType) : NOM_PARA=[NOM_PARA,] + if self.sd==None : return + texte=string.join(VALE.splitlines()) + + self.sd.setFormule(NOM_PARA,string.strip(texte)) + +FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5, + sd_prod=formule,UIinfo={"groupes":("Fonction",)}, + fr="Définit une formule réelle à partir de son expression mathématique", + VALE =SIMP(statut='f',typ='TXM'), + NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), +); +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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 CAMBIER S.CAMBIER +GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_fonction, + fr="Génération de la fonction temporelle à partir d une matrice interspectrale", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + INTE_SPEC =SIMP(statut='o',typ=table_fonction), + NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), + INTERPOL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), + b_interpol_oui =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee", + DUREE_TIRAGE =SIMP(statut='f',typ='R' ), + FREQ_INIT =SIMP(statut='f',typ='R' ), + FREQ_FIN =SIMP(statut='f',typ='R' ), + ), + NB_POIN =SIMP(statut='f',typ='I'), + NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1 ), + INIT_ALEA =SIMP(statut='f',typ='I'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& 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 10/05/2006 AUTEUR MCOURTOI M.COURTOIS +# 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 VABHHTS J.PELLET +IMPR_CO=PROC(nom="IMPR_CO",op=17, + UIinfo={"groupes":("Impression",)}, + fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)", + regles=(UN_PARMI('CONCEPT','CHAINE','TOUT' ),), + + UNITE =SIMP(statut='f',typ='I',defaut=8), + NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(-1,0,1,2) ), + ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), + CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), + BASE =SIMP(statut='f',typ='TXM',defaut="G",into=(" ","G","V","L") ), + CONCEPT =FACT(statut='f',max='**', + regles=(DERIVABLE('NOM'),), + NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter",max='**'),), + CHAINE =SIMP(statut='f',typ='TXM'), + POSITION =SIMP(statut='f',typ='I',defaut=1), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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_GENE=PROC(nom="IMPR_GENE",op= 157, + fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT", + UIinfo={"groupes":("Impression",)}, + FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), + UNITE =SIMP(statut='f',typ='I',defaut=8), + GENE =FACT(statut='o',max='**', + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'), + EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'), + EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'), + EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'), + EXCLUS('TOUT_CHAM','NOM_CHAM'), + EXCLUS('TOUT_PARA','NOM_PARA'),), +# faut-il faire des blocs selon le type de RESU_GENE + RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), + 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 ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), + TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + 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") ), + 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") ), + NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), + TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), + NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), + SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), + INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), + ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, + UIinfo={"groupes":("Impression",)}, + fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)", + ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM', + into=("DISQUE","MEMOIRE","REPERTOIRE", + "OBJET","ATTRIBUT","SYSTEME") ), + b_objet =BLOC(condition = "(ENTITE=='OBJET')", + NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ), + NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ), + NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ), + ), + b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')", + NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ), + NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM', + into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG', + '$$LONO','$$LUTI','$$NUM') ), + ), + b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')", + CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ), + NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM', + into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ', + '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG', + '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX', + '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ), + ), + b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')", + CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '), + ), + b_disque =BLOC(condition = "(ENTITE=='DISQUE')", + CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '), + ), + IMPRESSION =FACT(statut='f', + NOM =SIMP(statut='f',typ='TXM' ), + UNITE =SIMP(statut='f',typ='I'), + ), + COMMENTAIRE =SIMP(statut='f',typ='TXM' ), +) ; +#& MODIF COMMANDE DATE 26/03/2007 AUTEUR DEVESA G.DEVESA +# 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_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, + UIinfo={"groupes":("Impression",)}, + fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D PLEXUS ou CADYRO", + MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), + FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", + into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ), + + b_plexus =BLOC(condition = "FORMAT == 'IDEAS'", + UNITE =SIMP(statut='f',typ='I',defaut=30), + VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), + ), + + b_ideas =BLOC(condition = "FORMAT == 'PLEXUS'", + UNITE =SIMP(statut='f',typ='I',defaut=30), + VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), + ), + + b_miss_3d =BLOC(condition = "FORMAT == 'MISS_3D'", + regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),), + UNITE =SIMP(statut='f',typ='I',defaut= 26 ), + SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), + AMOR_REDUIT =SIMP(statut='f',typ='R' ,max='**'), + LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), + GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'), + GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'), + GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'), + GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'), + GROUP_MA_CONTROL=SIMP(statut='f',typ=grma,max='**'), + IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + + b_cadyro =BLOC(condition = "FORMAT == 'CADYRO'", + SQUELETTE =SIMP(statut='f',typ=squelette ), + UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ), + UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ), + UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 28 ), + IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, + fr="Imprimer sur un fichier au format IDEAS ou RESULTAT des matrices élémentaires et assemblées", + UIinfo={"groupes":("Impression",)}, + regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),), +# ====================================================================== + MATR_ELEM =FACT(statut='f',max='**', +# + MATRICE =SIMP(statut='o',typ=(matr_elem, vect_elem)), + FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", + into=("IDEAS","RESULTAT") ), +# + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", + UNITE =SIMP(statut='f',typ='I',defaut=30), + VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ), ), +# + b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), + UNITE =SIMP(statut='f',typ='I',defaut=8), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD","MAILLE") ), + NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), ), + ), +# ====================================================================== + MATR_ASSE =FACT(statut='f',max='**', +# + MATRICE =SIMP(statut='o',typ=matr_asse_gd), + FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","RESULTAT") ), +# + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", + UNITE =SIMP(statut='f',typ='I',defaut=30), + VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ), ), +# + b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), + UNITE =SIMP(statut='f',typ='I',defaut=8), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,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='f',typ='TXM',defaut="SOUS_MATRICE",into=("SOUS_MATRICE","LIGNE","COLONNE") ), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD") ), + NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), + VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), ), + ), +# ====================================================================== +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, + UIinfo={"groupes":("Impression",)}, + fr="Impression des données d'entrée pour une étude sismique avec MISS3D", + regles=(UN_PARMI('INST_INIT','FREQ_INIT'), + PRESENT_PRESENT('INST_INIT','INST_FIN'), + PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),), + MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), + EXCIT =FACT(statut='f',max='**', + regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + COEF_MULT =SIMP(statut='f',typ='R' ), + ), + EXCIT_SOL =FACT(statut='f',max='**', + DIRECTION =SIMP(statut='o',typ='R',min=3,max=3), + FONC_SIGNAL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", + into=("DEPL","VITE","ACCE","FORC",) ), + ), + INST_INIT =SIMP(statut='f',typ='R' ), + INST_FIN =SIMP(statut='f',typ='R' ), + FREQ_INIT =SIMP(statut='f',typ='R' ), + FREQ_FIN =SIMP(statut='f',typ='R' ), + PAS =SIMP(statut='o',typ='R' ), + UNITE =SIMP(statut='f',typ='I',defaut= 26 ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 06/11/2006 AUTEUR MCOURTOI M.COURTOIS +# 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_RESU=PROC(nom="IMPR_RESU",op=39, + UIinfo={"groupes":("Impression",)}, + fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)", + MODELE =SIMP(statut='f',typ=modele_sdaster), + + FORMAT =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT", + 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), + ), + + b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", + 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), + ), + + b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM", + 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), + ), + + b_format_med =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED", + 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), + VERSION =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)), + ), + + RESU =FACT(statut='o',max='**', + + regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'), + EXCLUS('CHAM_GD','RESULTAT'),), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,squelette)), + INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), + RESULTAT =SIMP(statut='f',typ=resultat_sdaster),# CO() sd a creer !!! + + b_sensibilite =BLOC(condition="RESULTAT != None", + fr="Définition des paramètres de sensibilité", + ang="Definition of sensitivity parameters", + regles=(DERIVABLE('RESULTAT'),), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"),), + +# b_partie =BLOC(condition="""((AsType(RESULTAT)==dyna_harmo) or +# (AsType(CHAM_GD)!=carte_sdaster)) and ((FORMAT=='CASTEM') or (FORMAT=='GMSH'))""", + PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), +# ), + b_extrac =BLOC(condition="RESULTAT != None", + fr="extraction d un champ de grandeur", + regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP', + 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),), + TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), + + 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='**'), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + ANGL =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + 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), + + 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") ), + ), + ), +### + b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""", + regles=(EXCLUS('TOUT_PARA','NOM_PARA'),), + INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), + NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), + FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ), + ), +### + b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ + ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""", + fr="sélection des composantes", + regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), +### + b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""", + fr="sélection des composantes et des entités toplogiques", + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), +### + b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ + ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""", + fr="sélection des entités topologiques", + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + ), +### + b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')", + fr="sélection sur les valeurs", + VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ), + VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ), + BORNE_SUP =SIMP(statut='f',typ='R'), + BORNE_INF =SIMP(statut='f',typ='R'), + IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), + ), + + SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& 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_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné", + UIinfo={"groupes":("Résolution",)}, + MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), + MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), + TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"), + fr="Type d analyse" ), + b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", + fr="Recheche du nombre de fréquences propres", + FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ), + FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), + ), + b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", + fr="Recherche du nombre de charges critiques", + CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ), + CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), + ), + NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), + UNITE =SIMP(statut='f',typ='I',defaut=8), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), +) ; +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS +# 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 MCOURTOI M.COURTOIS +from Macro.impr_table_ops import impr_table_ops + +IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None, + UIinfo={"groupes":("Impression",)}, + fr="Impression du contenu d'une table dans un fichier", + regles=(DERIVABLE("TABLE"),), + TABLE =SIMP(statut='o',typ=table_sdaster), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLEAU", + into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),), + b_pilote =BLOC(condition = "FORMAT == 'XMGRACE'", + fr="Mots-clés propres à XMGRACE", + PILOTE =SIMP(statut='f',typ='TXM',defaut='', + into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), + fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), + UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + ), + b_unite =BLOC(condition = "FORMAT != 'XMGRACE'", + UNITE =SIMP(statut='f',typ='I',defaut=8, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + ), + FILTRE =FACT(statut='f',max='**', + NOM_PARA =SIMP(statut='o',typ='TXM'), + CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", + into=("EQ","LT","GT","NE","LE","GE","VIDE", + "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),), + b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE =SIMP(statut='f',typ='R'), + VALE_I =SIMP(statut='f',typ='I'), + VALE_C =SIMP(statut='f',typ='C'), + VALE_K =SIMP(statut='f',typ='TXM'), + ), + b_crit =BLOC(condition = "CRIT_COMP in ('EQ','NE')", + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ), + ), + TRI =FACT(statut='f', + NOM_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + ORDRE =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**', + into=("CROISSANT","DECROISSANT") ), + ), + PAGINATION =SIMP(statut='f',typ='TXM',max='**'), + FORMAT_R =SIMP(statut='f',typ='TXM',defaut="E12.5"), + FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE", + into=("MODULE_PHASE","REEL_IMAG") ), + NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + + # mise en forme pour les formats qui passent par Graph + b_forme =BLOC(condition = "FORMAT == 'XMGRACE'", + fr="Données de mise en forme du graphique", + # pour la courbe + LEGENDE =SIMP(statut='f',typ='TXM', + fr="Légende associée à la fonction" ), + STYLE =SIMP(statut='f',typ='I',val_min=0, + fr="Style de la ligne représentant la fonction",), + COULEUR =SIMP(statut='f',typ='I',val_min=0, + fr="Couleur associée à la fonction",), + MARQUEUR =SIMP(statut='f',typ='I',val_min=0, + fr="Type du marqueur associé à la fonction",), + FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, + fr="Fréquence d impression du marqueur associé à la fonction", ), + # format du graphique + BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, + fr="Intervalles de variation des abscisses"), + BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, + fr="Intervalles de variation des ordonnées"), + ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), + fr="Type d'échelle pour les abscisses" ), + ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), + fr="Type d'échelle pour les ordonnées" ), + GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., + fr="Pas du quadrillage vertical" ), + GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., + fr="Pas du quadrillage horizontal" ), + LEGENDE_X =SIMP(statut='f',typ='TXM', + fr="Légende associée à l'axe des abscisses" ), + LEGENDE_Y =SIMP(statut='f',typ='TXM', + fr="Légende associée à l'axe des ordonnées" ), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) +#& MODIF COMMANDE DATE 10/06/2004 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. +# +# 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. +# ====================================================================== +INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include, + 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, + UNITE = SIMP(statut='o',typ='I'), + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +); +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14, + UIinfo={"groupes":("Modélisation",)}, + fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ", + sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0, + NOM_AFNOR =SIMP(statut='o',typ='TXM' ), + TYPE_MODELE =SIMP(statut='o',typ='TXM',into=("REF","PAR") ), + VARIANTE =SIMP(statut='o',typ='TXM', + into=("A","B","C","D","E","F","G","H","I","J", + "K","L","M","N","O","P","Q","R","S","T","U","V", + "W","X","Y","Z",) ), + TYPE_VALE =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ), + NOM_MATER =SIMP(statut='o',typ='TXM' ), + UNITE =SIMP(statut='f',typ='I',defaut= 32 ), + EXTRACTION =FACT(statut='f',max=99, + COMPOR =SIMP(statut='o',typ='TXM' ), + TEMP_EVAL =SIMP(statut='o',typ='R' ), + ), + UNITE_LONGUEUR =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 G8BHHXD X.DESROCHES +INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, + UIinfo={"groupes":("Post traitements",)}, + fr="Définition d'une courbe dans un maillage 2D",reentrant='n', + + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), + + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), + AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'), + PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'), + PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'), + PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), + EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'), + EXCLUS('DEFI_CHEMIN','DEFI_ARC'),), + + 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='**'), + + DEFI_SEGMENT =FACT(statut='f',max='**', + regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), + UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), + ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + ), + + DEFI_ARC =FACT(statut='f',max='**', + regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), + UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), + UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'), + PRESENT_PRESENT('RAYON','SECTEUR'),), + CENTRE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_CENTRE =SIMP(statut='f',typ=no,), + GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,), + RAYON =SIMP(statut='f',typ='R',val_min=0.E+0), + SECTEUR =SIMP(statut='f',typ='R',min=2,max=2, + val_min=-180.E+0,val_max=180E+0), + ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", + into=("RELATIF","ABSOLU",) ), + ), + + DEFI_CHEMIN =FACT(statut='f',max='**', + 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='**'), + ), + + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 G8BHHXD X.DESROCHES +INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster, + UIinfo={"groupes":("Post traitements",)}, + fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n', + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + 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='**'), + DEFI_SEGMENT =FACT(statut='o',max='**', + regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), + UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), + ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), + NOEUD_ORIG =SIMP(statut='f',typ=no,), + GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), + EXTREMITE =SIMP(statut='f',typ='R',min=3,max=3), + NOEUD_EXTR =SIMP(statut='f',typ=no,), + GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), + ), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 16/05/2006 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. +# +# 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 lire_champ_prod(TYPE_CHAM=None,**args): +# Remarque : si cette liste évolue, il faut penser à mettre à jour son +# homologue dans macr_adap_mail + import string +# + if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster + if TYPE_CHAM[0:2] == "EL" : return cham_elem + raise AsException("type de concept resultat non prevu") + +LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, + fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.", + reentrant='n',UIinfo={"groupe":("Résultats et champs",)}, + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster,), + FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),), + UNITE =SIMP(statut='f',typ='I',defaut= 81,), + b_format =BLOC(condition = "FORMAT == 'MED'", + regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'), + PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ), + EXCLUS('NUME_ORDRE','INST'), + EXCLUS('NUME_PT','INST'),), + NOM_MED =SIMP(statut='o',typ='TXM', ), + NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ), + NOM_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), + NOM_CMP_MED =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), + NUME_PT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**',), + NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**', + fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ), + 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" ),), +# + NOM_MAIL_MED =SIMP(statut='f',typ='TXM',), + ), +# Remarque : si cette liste évolue, il faut penser à mettre à jour son +# homologue dans macr_adap_mail + TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), + b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'", + MODELE =SIMP(statut='o',typ=modele_sdaster, ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 Macro.lire_fonction_ops import lire_fonction_ops + +def lire_fonction_prod(self,TYPE,**args): + if (TYPE == 'FONCTION') : return fonction_sdaster + elif (TYPE == 'FONCTION_C'): return fonction_c + elif (TYPE == 'NAPPE' ) : return nappe_sdaster + raise AsException("type de concept resultat non prevu") + +LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod, + fr="Lit les valeurs réelles dans un fichier de données représentant une fonction et" + +" crée un concept de type fonction ou nappe", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + FORMAT =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE" ), + TYPE =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION" ), + SEPAR =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ), + INDIC_PARA =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]), + b_fonction =BLOC(condition = "TYPE=='FONCTION' ", + INDIC_RESU =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ), + b_fonction_c =BLOC(condition = "TYPE=='FONCTION_C' ", + FORMAT_C =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ), + b_reel_imag =BLOC(condition = "FORMAT_C=='REEL_IMAG' ", + INDIC_REEL =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), + INDIC_IMAG =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) , + b_modu_phas =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ", + INDIC_MODU =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), + INDIC_PHAS =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ), + b_nappe =BLOC(condition = "TYPE=='NAPPE' ", + NOM_PARA_FONC =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), + INDIC_ABSCISSE =SIMP(statut='o',typ='I',min=2,max=2,), + INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), + DEFI_FONCTION =FACT(statut='f',max='**', + INDIC_RESU =SIMP(statut='o',typ='I',min=2,max=2,),), ), + UNITE =SIMP(statut='o',typ='I' ), + NOM_PARA =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), + 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") ), + VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== + +from Macro.lire_inte_spec_ops import lire_inte_spec_ops + +LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=table_fonction, + fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + UNITE =SIMP(statut='o',typ='I' ), + FORMAT =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), + NOM_PARA =SIMP(statut='f',typ='TXM',defaut="FREQ", + into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", + "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), + NOM_RESU =SIMP(statut='f',typ='TXM',defaut="DSP" ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 21/11/2006 AUTEUR COURTOIS M.COURTOIS +# 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 VABHHTS J.PELLET +LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage_sdaster, + fr="Crée un maillage par lecture d'un fichier au format Aster ou Med", + ang="Readings of a mesh file", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, +# + UNITE =SIMP(statut='f',typ='I',defaut= 20 ), +# + FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), + fr="Format du fichier : ASTER ou MED.", + ang="Format of the file : ASTER or MED.",), +# + ABSC_CURV =FACT(statut='f',min=0, + TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), +# + 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 ), + ), +# + b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " , + fr="Informations complémentaires pour la lecture MED.", + ang="Further information for MED readings.", +# +# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel +# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer. + NOM_MED = SIMP(statut='f',typ='TXM', + fr="Nom du maillage dans le fichier MED.", + ang="Name of the mesh into the MED file.",), + INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +# + RENOMME = FACT(statut='f', max='**', + fr="Renommer un nom de groupe MED", + NOM_MED = SIMP(statut='o', typ=grma, + fr="Nom du groupe dans le fichier MED"), + NOM = SIMP(statut='o', typ=grma, validators=LongStr(1,8), + fr="Nom du groupe dans le maillage ASTER"), + ), + ), +# + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +# +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 lire_miss_3d_prod(TYPE_RESU,**args): + if TYPE_RESU == "TRANS" : return dyna_trans + if TYPE_RESU == "HARMO" : return dyna_harmo + raise AsException("type de concept resultat non prevu") + +LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, + fr="Restituer sur base physique une réponse harmonique ou transitoire issue de MISS3D", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), + UNITE =SIMP(statut='f',typ='I',defaut= 27 ), + NOM =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 22/06/2005 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. +# +# 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. +# ====================================================================== +LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, + fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS", + reentrant='n', + UIinfo={"groupes":("Maillage",)}, + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), + UNITE =SIMP(statut='f',typ='I',defaut= 19 ), + FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), + MAIL_PLEXUS =SIMP(statut='o',typ=maillage_sdaster ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + MODELE =SIMP(statut='o',typ=modele_sdaster ), + 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 ), + 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") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 13/02/2007 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. +# +# 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 VABHHTS J.PELLET + +def lire_resu_prod(TYPE_RESU,**args): + if TYPE_RESU == "EVOL_CHAR" : return evol_char + if TYPE_RESU == "EVOL_THER" : return evol_ther + if TYPE_RESU == "EVOL_ELAS" : return evol_elas + if TYPE_RESU == "EVOL_NOLI" : return evol_noli + if TYPE_RESU == "DYNA_TRANS" : return dyna_trans + if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo + if TYPE_RESU == "HARM_GENE" : return harm_gene + if TYPE_RESU == "MODE_MECA" : return mode_meca + if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c + raise AsException("type de concept resultat non prevu") + +# pour éviter d'écrire 3 fois cette liste : +def l_nom_cham_pas_elga(): return ( + "ACCE", "ACCE_ABSOLU", "CRIT_ELNO_RUPT", "DCHA_ELNO_SIGM", + "DCHA_NOEU_SIGM", "DEDE_ELNO_DLDE", "DEDE_NOEU_DLDE", "DEGE_ELNO_DEPL", "DEGE_NOEU_DEPL", + "DEPL", "DEPL_ABSOLU", "DESI_ELNO_DLSI", "DESI_NOEU_DLSI", "DETE_ELNO_DLTE", "DETE_NOEU_DLTE", + "DURT_ELNO_META", "DURT_NOEU_META", "ECIN_ELEM_DEPL", "EFGE_ELNO_CART", "EFGE_ELNO_DEPL", + "EFGE_NOEU_CART", "EFGE_NOEU_DEPL", "ENDO_ELNO_SIGA", "ENDO_ELNO_SINO", "ENDO_NOEU_SINO", + "ENEL_ELNO_ELGA", "ENEL_NOEU_ELGA", "EPEQ_ELNO_TUYO", "EPGR_ELNO", "EPME_ELNO_DEPL", + "EPMG_ELNO_DEPL", "EPMG_NOEU_DEPL", "EPOT_ELEM_DEPL", "EPSA_ELNO", "EPSA_NOEU", + "EPSG_ELNO_DEPL", "EPSG_NOEU_DEPL", "EPSI_ELNO_DEPL", "EPSI_ELNO_TUYO", "EPSI_NOEU_DEPL", + "EPSP_ELNO", "EPSP_ELNO_ZAC", "EPSP_NOEU", "EPSP_NOEU_ZAC", "EQUI_ELNO_EPME", "EQUI_ELNO_EPSI", + "EQUI_ELNO_SIGM", "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", "ERRE_ELEM_NOZ1", + "ERRE_ELEM_NOZ2", "ERRE_ELNO_ELGA", "ERRE_NOEU_ELGA", "ERTH_ELEM_TEMP", "ERTH_ELNO_ELEM", + "ETOT_ELEM", "ETOT_ELNO_ELGA", "FLUX_ELNO_TEMP", "FLUX_NOEU_TEMP", "FORC_NODA", "FSUR_2D", + "FSUR_3D", "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA", + "INTE_ELNO_ACTI", "INTE_ELNO_REAC", "INTE_NOEU_ACTI", "INTE_NOEU_REAC", "IRRA", + "META_ELNO_TEMP", "META_NOEU_TEMP", "PMPB_ELNO_SIEF", "PMPB_NOEU_SIEF", + "PRES", "PRES_DBEL_DEPL", "PRES_ELNO_DBEL", "PRES_ELNO_IMAG", "PRES_ELNO_REEL", + "PRES_NOEU_DBEL", "PRES_NOEU_IMAG", "PRES_NOEU_REEL", + "RADI_ELNO_SIGM", "RADI_NOEU_SIGM", "REAC_NODA", + "SIEF_ELNO", "SIEF_ELNO_ELGA", "SIEF_NOEU", "SIEF_NOEU_ELGA", "SIEQ_ELNO_TUYO", + "SIGM_ELNO_CART", "SIGM_ELNO_COQU", "SIGM_ELNO_DEPL", "SIGM_ELNO_SIEF", + "SIGM_ELNO_TUYO", "SIGM_ELNO_ZAC", "SIGM_NOEU_CART", "SIGM_NOEU_COQU", + "SIGM_NOEU_DEPL", "SIGM_NOEU_SIEF", "SIGM_NOEU_ZAC", "SIGM_NOZ1_ELGA", + "SIGM_NOZ2_ELGA", "SIPO_ELNO_DEPL", "SIPO_ELNO_SIEF", "SIPO_NOEU_DEPL", + "SIPO_NOEU_SIEF", "SIRE_ELNO_DEPL", "SIRE_NOEU_DEPL", "TEMP", "THETA", + "VALE_CONT", "VALE_NCOU_MAXI", "VARI_ELNO", "VARI_ELNO_COQU", + "VARI_ELNO_ELGA", "VARI_ELNO_TUYO", "VARI_NOEU", "VARI_NOEU_ELGA", "VARI_NON_LOCAL", + "VITE", "VITE_ABSOLU", "VITE_VENT", + ) + +LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + fr="Lire dans un fichier, soit format IDEAS, soit au format ENSIGHT soit au format MED," + +" des champs et les stocker dans une SD résultat", + + +# 0) mots clés généraux : +#---------------------- + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA", + "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO","HARM_GENE", + "EVOL_CHAR") ), + + FORMAT =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ), + + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=modele_sdaster), + + NB_VARI =SIMP(statut='f',typ='I' ), + + CHAM_MATER =SIMP(statut='f',typ=cham_mater,), + + CARA_ELEM =SIMP(statut='f',typ=cara_elem,), + + b_evol_elas = BLOC(condition="TYPE_RESU=='EVOL_ELAS'", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),), + ), + + b_evol_ther = BLOC(condition="TYPE_RESU=='EVOL_THER'", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), + ), + + b_evol_noli = BLOC(condition="TYPE_RESU=='EVOL_NOLI'", + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),), + ), + + +# 1) blocs selon le format choisi : +#--------------------------------- + +# 1-1 ideas dataset-58 : +# ---------------------- + b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'", + UNITE =SIMP(statut='f',typ='I',defaut= 19 ), + ), + b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\ + (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))", + UNITE =SIMP(statut='f',typ='I',defaut= 19 ), + NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ), + REDEFI_ORIENT=FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),), + CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ), + DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,), + NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),), + ), + +# 1-2 ideas : +# --------- + b_ideas =BLOC(condition="FORMAT=='IDEAS'", + 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()), + 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()), + NUME_DATASET =SIMP(statut='f',typ='I',into=(55,57,2414) ), + RECORD_3 =SIMP(statut='f',typ='I',max=10), + RECORD_6 =SIMP(statut='f',typ='I',max=10), + RECORD_9 =SIMP(statut='f',typ='I',max=10), + POSI_ORDRE =SIMP(statut='o',typ='I',min=2,max=2), + POSI_NUME_MODE =SIMP(statut='f',typ='I',min=2,max=2), + POSI_MASS_GENE =SIMP(statut='f',typ='I',min=2,max=2), + POSI_AMOR_GENE =SIMP(statut='f',typ='I',min=2,max=2), + POSI_INST =SIMP(statut='f',typ='I',min=2,max=2), + POSI_FREQ =SIMP(statut='f',typ='I',min=2,max=2), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),), + ), +# 1-3 ensight : +# ------------- + b_ensight =BLOC(condition="FORMAT=='ENSIGHT'", + NOM_FICHIER =SIMP(statut='f',typ='TXM'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()), + ), + +# 1-4 med : +# --------- + b_med =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED", + UNITE =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",), + FORMAT_MED =FACT(statut='f',max='**', + regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), + NOM_CHAM_MED =SIMP(statut='o',typ='TXM', fr="Nom du champ dans le fichier MED.", ), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans ASTER.", ), + NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans MED.", ), + ), + ), + +# 2) blocs selon le type du résultat : +#--------------------------------- + b_mode_meca =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')", + MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,), + MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,), + ), + + +# 3) autres blocs : +#--------------------------------- + b_extrac =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat", + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),), + 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='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + 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") ), + ), + ), +) ; +#& MODIF COMMANDE DATE 30/10/2006 AUTEUR DURAND C.DURAND +# 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 GNICOLAS G.NICOLAS + + +from Macro.macr_adap_mail_ops import macr_adap_mail_ops + +def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args): +# +# 0. Typage des structures produites +# + maillage_np1=args['MAILLAGE_NP1'] + self.type_sdprod(maillage_np1,maillage_sdaster) +# + if ( args['MAILLAGE_NP1_ANNEXE'] is not None ) : + maillage_np1_annexe=args['MAILLAGE_NP1_ANNEXE'] + self.type_sdprod(maillage_np1_annexe,maillage_sdaster) +# + if MAJ_CHAM == None:return None +# Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP + for ch in MAJ_CHAM: + t=ch['TYPE_CHAM'] + if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sdaster) + if t[0:2] == "EL": self.type_sdprod(ch['CHAM_MAJ'],cham_elem) + return None + + +MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod, + fr="Adapter un maillage avec le logiciel HOMARD.", + ang="Mesh adaptation with HOMARD software.", + docu="U7.03.01-b",UIinfo={"groupe":("Maillage",)}, +# +# 1. Le niveau d'information +# + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +# +# 2. Version de HOMARD +# + VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_5", + into=("V8_5", "V8_N", "V8_N_PERSO"), + fr="Version de HOMARD", + ang="HOMARD release"), +# +# 3. Langue des messages produits par HOMARD +# + LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", + into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), + fr="Langue des messages produits par HOMARD.", + ang="Language for HOMARD messages." ), +# +# 4. Les maillages +# 4.1. Quel que soit le type de traitement, il faut donner : +# A. Le concept du maillage initial (entree) +# B. Le concept du maillage final (sortie) +# + MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, + fr="Maillage avant adaptation", + ang="Mesh before adaptation" ), +# + MAILLAGE_NP1 = SIMP(statut='o',typ=CO, + fr="Maillage apres adaptation", + ang="Mesh after adaptation" ), +# +# 4.2. Eventuellement, on peut produire un maillage annexe +# Actuellement, c'est le maillage n+1, mais de degré différent. +# + MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO, + fr="Maillage annexe apres adaptation", + ang="Additional mesh after adaptation" ), +# +# 5. Le pilotage de l'adaptation, avec les variantes suivantes : +# . Raffinement et deraffinement, selon un champ d'indicateurs d'erreur +# . Raffinement seul, selon un champ d'indicateurs d'erreur +# . Deraffinement seul, selon un champ d'indicateurs d'erreur +# . Raffinement seul, selon des zones geometriques +# . Raffinement uniforme : toutes les mailles sont divisées +# . Deraffinement uniforme : toutes les mailles sont regroupées +# . Rien : le maillage est le meme a la sortie et a l'entree +# + ADAPTATION = SIMP(statut='o',typ='TXM', + into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT","RAFFINEMENT_ZONE", \ + "RAFFINEMENT_UNIFORME","DERAFFINEMENT_UNIFORME","RIEN"), + fr="Pilotage de l'adaptation : selon un indicateur d'erreur ou uniforme.", + ang="Adaptation control : among an error indicator or uniform" ), +# +# 6. Pour de l'adaptation libre, il faut un indicateur d'erreur +# + b_indicateur_d_erreur = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'RAFFINEMENT') or \ + (ADAPTATION == 'DERAFFINEMENT') " , + fr="Pour une adaptation libre, choix de l'indicateur d'erreur ou d'une zone à raffiner", + ang="For free adaptation, selection of error indicator or zone", +# + regles=(UN_PARMI('CHAM_GD','RESULTAT_N')), +# +# 6.1. Repérage de la zone à raffiner à l'aide d'un indicateur +# +# 6.1.1. Sous forme de champ de grandeur +# + CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster, + fr="Champ de grandeur Code_Aster contenant l'indicateur d'erreur", + ang="Code_Aster champ de grandeur with error indicator" ), +# +# 6.1.2. Sous forme de concept resultat_sdaster +# + RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) , + fr="Concept resultat Code_Aster contenant l'indicateur d'erreur", + ang="Code_Aster result with error indicator" ), +# + b_champ_indicateur = BLOC(condition="(RESULTAT_N != None)", + INDICATEUR = SIMP(statut='o',typ='TXM', + fr="Champ de l'indicateur d'erreur dans le résultat", + ang="Error indicator field in the result structure" ), + ), +# +# 6.1.3. Est-ce un champ dérivé +# + b_sensibilite = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", + fr="Est-ce un champ dérivé", + ang="Is the indicator a derivative field", +# + SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter") +# + ), +# +# 6.1.4. La composante retenue +# + b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", + fr="Choix de la composante pour l'indicateur", + ang="Component selection for error indicator", +# + NOM_CMP_INDICA = SIMP(statut='o',typ='TXM', + fr="Composante retenue pour l'indicateur d'erreur", + ang="Selected component for error indicator" ), +# + ), +# +# 6.1.5. Le paramètre temporel pour l'indicateur +# + b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)", + fr="Choix éventuel du paramètre temporel pour l'indicateur", + ang="Time selection for error indicator (option)", +# + regles=(EXCLUS('NUME_ORDRE','INST'),), +# +# 6.1.5.1. Soit le numero d'ordre +# + NUME_ORDRE = SIMP(statut='f',typ='I', + fr="Numero d ordre", + ang="Rank" ), +# +# 6.1.5.2. Soit l'instant +# 6.1.5.2.1. Sa valeur +# + INST = SIMP(statut='f',typ='R', + fr="Instant associé", + ang="Instant" ), +# +# 6.1.5.2.2. La précision du choix de l'instant +# + 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"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ), + ), +# + ), +# +# 6.1.6. Type de valeur de l'indicateur : absolue ou relative +# + b_valeur_indicateur = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", + fr="Type de valeur pour l'indicateur", + ang="Value type for error indicator", +# + TYPE_VALEUR_INDICA = SIMP(statut='f',typ='TXM',defaut="V_ABSOLUE",into=("V_ABSOLUE","V_RELATIVE"), + fr="Valeur absolue ou relative pour l'indicateur", + ang="Absolute or relative value for error indicator" ), +# + ), +# + ) , +# +# 7. Les criteres pour de l'adaptation libre avec un indicateur d'erreur : +# absolu, relatif, en proportion d'entite +# 7.1. Pour le raffinement : +# + b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'RAFFINEMENT') " , + fr="Critère de raffinement.", + ang="Refinement threshold.", +# + regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), +# + CRIT_RAFF_ABS = SIMP(statut='f',typ='R', + fr="Critère absolu", + ang="Absolute threshold" ), + CRIT_RAFF_REL = SIMP(statut='f',typ='R', + fr="Critère relatif : fraction réelle entre 0. et 1.", + ang="Relative threshold : ratio between 0. and 1." ), + CRIT_RAFF_PE = SIMP(statut='f',typ='R', + fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.", + ang="Percentage of elements : ratio between 0. and 1." ), + ) , +# +# 7.2. Pour le deraffinement : +# + b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'DERAFFINEMENT') " , + fr="Critère de déraffinement.", + ang="Unrefinement threshold.", +# + regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), +# + CRIT_DERA_ABS = SIMP(statut='f',typ='R' , + fr="Critère absolu", + ang="Absolute threshold" ), + CRIT_DERA_REL = SIMP(statut='f',typ='R', + fr="Critère relatif : fraction réelle entre 0. et 1.", + ang="Relative threshold : ratio between 0. and 1." ), + CRIT_DERA_PE = SIMP(statut='f',typ='R', + fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.", + ang="Percentage of elements : ratio between 0. and 1." ), + ) , +# +# 8. Pour de l'adaptation par zone, définitions des zones +# + b_zone = BLOC( condition = " (ADAPTATION == 'RAFFINEMENT_ZONE') " , + fr="Pour une adaptation selon une zone à raffiner", + ang="For adaptation among zone", + ZONE = FACT(statut='f',max='**', + fr="Définition de zones à raffiner.", + ang="Refined zone definition.", +# + regles=(AU_MOINS_UN('X_MINI','X_CENTRE'), + EXCLUS('X_MINI','X_CENTRE',), + EXCLUS('Z_MINI','X_CENTRE',), + EXCLUS('X_MINI','Z_CENTRE',), + EXCLUS('Z_MINI','Z_CENTRE',), + PRESENT_PRESENT('X_MINI','X_MAXI','Y_MINI','Y_MAXI'), + PRESENT_PRESENT('Z_MINI','Z_MAXI'), + PRESENT_PRESENT('X_CENTRE','Y_CENTRE','RAYON'),), +# +# 6.2.1. Une boite parallelepipedique +# + X_MINI = SIMP(statut='f',typ='R', + fr="Abscisse minimum de la boite", + ang="Minimum X for the box"), + X_MAXI = SIMP(statut='f',typ='R', + fr="Abscisse maximum de la boite", + ang="Maximum X for the box"), +# + Y_MINI = SIMP(statut='f',typ='R', + fr="Orodnnée minimum de la boite", + ang="Minimum Y for the box"), + Y_MAXI = SIMP(statut='f',typ='R', + fr="Abscisse maximum de la boite", + ang="Maximum Y for the box"), +# + Z_MINI = SIMP(statut='f',typ='R', + fr="Cote minimum de la boite", + ang="Minimum Z for the box"), + Z_MAXI = SIMP(statut='f',typ='R', + fr="Cote maximum de la boite", + ang="Maximum Z for the box"), +# +# 6.2.2. Une sphere +# + X_CENTRE = SIMP(statut='f',typ='R', + fr="Abscisse du centre de la sphere", + ang="X for the center of the sphere"), + Y_CENTRE = SIMP(statut='f',typ='R', + fr="Ordonnee du centre de la sphere", + ang="Y for the center of the sphere"), + Z_CENTRE = SIMP(statut='f',typ='R', + fr="Cote du centre de la sphere", + ang="Z for the center of the sphere"), + RAYON = SIMP(statut='f',typ='R', + fr="Rayon de la sphere", + ang="Radius of the sphere"), +# + ) , +# + ) , +# +# 9. Les niveaux extremes pour le maillage adapte +# 9.1. Pour le raffinement : +# + b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'RAFFINEMENT') or \ + (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \ + (ADAPTATION == 'RAFFINEMENT_ZONE') " , + fr="Niveau maximum de profondeur de raffinement", + ang="Maximum level for refinement", + NIVE_MAX = SIMP(statut='f',typ='I', + fr="Niveau maximum de profondeur de raffinement", + ang="Maximum level for refinement"), + ) , +# +# 9.2. Pour le deraffinement : +# + b_niveau_minimum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ + (ADAPTATION == 'DERAFFINEMENT') or \ + (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " , + fr="Niveau minimum de profondeur de déraffinement", + ang="Minimum level for unrefinement", + NIVE_MIN = SIMP(statut='f',typ='I', + fr="Niveau minimum de profondeur de déraffinement", + ang="Minimum level for unrefinement"), + ) , +# +# 10. Suivi d'une frontiere +# + MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, + fr="Maillage de la frontiere à suivre", + ang="Boundary mesh" ), +# + b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " , + fr="Information complémentaire sur la frontière", + ang="Further information about boundary", +# + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="Liste des groupes de mailles définissant la frontière", + ang="Mesh groups which define the boundary" ), +# + ) , +# +# 11. Mise à jour de champs sur le nouveau maillage +# + MAJ_CHAM = FACT(statut='f',max='**', + fr="Mise à jour de champs sur le nouveau maillage.", + ang="Updating of fields over the new mesh.", +# +# 11.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour +# + CHAM_MAJ = SIMP(statut='o',typ=CO, + fr="Nom du champ de grandeur qui contiendra le champ mis à jour", + ang="Name of the field for the updated field"), +# +# 11.2. Le type du champ qui contiendra le resultat de la mise a jour +# + TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(), + fr="Type du champ qui contiendra le champ mis à jour", + ang="Type of the field for the updated field" ), +# +# 11.3. Le champ a interpoler +# + regles=(UN_PARMI('CHAM_GD','RESULTAT')), +# +# 11.3.1. Sous forme de champ de grandeur +# + CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster, + fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour", + ang="Champ de grandeur with field to be updated" ), +# +# 11.3.2. Sous forme de champ dans un resultat +# + RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), + fr="Resultat contenant le champ à mettre à jour", + ang="Result with field to be updated" ), +# + b_nom_du_champ = BLOC(condition="(RESULTAT != None)", + fr="Choix éventuel du nom du champ à interpoler", + ang="Selection for the name of the field (option)", +# + NOM_CHAM = SIMP(statut='o',typ='TXM', + fr="Nom du champ à mettre à jour", + ang="Name of the field to be updated" ), +# + ), +# +# 11.4. Est-ce un champ dérivé +# + SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), +# +# 11.5. Le paramètre temporel pour le champ a interpoler +# + b_parametre_temporel = BLOC(condition="(RESULTAT != None)", + fr="Choix éventuel du paramètre temporel pour le champ à interpoler", + ang="Time selection for the field (option)", +# + regles=(EXCLUS('NUME_ORDRE','INST'),), +# +# 11.5.1. Soit le numero d'ordre +# + NUME_ORDRE = SIMP(statut='f',typ='I', + fr="Numero d ordre du champ à mettre à jour", + ang="Rank of the field to be updated" ), +# +# 11.5.2. Soit l'instant +# 11.5.2.1. Sa valeur +# + INST = SIMP(statut='f',typ='R', + fr="Instant associé", + ang="Instant" ), +# +# 11.5.2.2. La précision du choix de l'instant +# + 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"), + fr="Critère de précision sur le choix de l'instant associé", + ang="Accuracy criterium over instant choice" ), +# + ), +# + ), + ), +# +# 12. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres +# 12.1. Nombre de noeuds et éléments +# + NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Nombre de noeuds et éléments du maillage", + ang="Number of nodes and éléments in the mesh" ), +# +# 12.2. Determination de la qualité des éléments du maillage +# + QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Qualité du maillage", + ang="Mesh quality" ), +# +# 12.3. Connexite du maillage +# + CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Connexité du maillage.", + ang="Mesh connexity." ), +# +# 12.4. Taille des sous-domaines du maillage +# + TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Tailles des sous-domaines du maillage.", + ang="Sizes of mesh sub-domains." ), +# +# 12.5. Controle de la non-interpenetration des éléments +# + INTERPENETRATION= SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Controle de la non interpénétration des éléments.", + ang="Overlapping checking." ), +# +# 13. Gestion des éléments autres que ceux compatibles avec HOMARD +# "REFUSER" : ils sont refuses (defaut) +# "IGNORER" : ils sont ignorés +# + ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), + fr="Acceptation d'éléments incompatibles avec HOMARD", + ang="Incompatible elements for HOMARD" ), +# +) ; +#& MODIF COMMANDE DATE 25/09/2006 AUTEUR MJBHHPE J.L.FLEJOU +# 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 F1BHHAJ J.ANGLES +from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops +def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args): + self.type_sdprod(MODELE,modele_sdaster) + if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) + if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) + if FOND_FISS != None:self.type_sdprod(FOND_FISS,fond_fiss) + if CHARGE != None:self.type_sdprod(CHARGE,char_meca) + if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) + return evol_noli + +MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod, + fr="Réalise l'analyse thermomécanique du coude dont le maillage a été concu par MACR_ASCOUF_MAIL", + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), + + TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', + into=("SAIN", + "FISS_COUDE", + "FISS_AXIS_DEB", + "SOUS_EPAIS_COUDE" + ) ), + + CL_BOL_P2_GV =FACT(statut='f', + ANGLE =SIMP(statut='o',typ='R' ), + AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), + ), + + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + MODELE =SIMP(statut='o',typ=CO,), + CHAM_MATER =SIMP(statut='f',typ=CO,), + CARA_ELEM =SIMP(statut='f',typ=CO,), + FOND_FISS =SIMP(statut='f',typ=CO,), + CHARGE =SIMP(statut='f',typ=CO,), + RESU_THER =SIMP(statut='f',typ=CO,), + + 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=("COUDE","BOL") ), + MATER =SIMP(statut='o',typ=mater_sdaster ), + TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + + PRES_REP =FACT(statut='f', + PRES =SIMP(statut='o',typ='R' ), + EFFE_FOND_P1 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + ECHANGE =FACT(statut='f', + COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + TORS_P1 =FACT(statut='f',max=6, + regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + FX =SIMP(statut='f',typ='R' ), + FY =SIMP(statut='f',typ='R' ), + FZ =SIMP(statut='f',typ='R' ), + MX =SIMP(statut='f',typ='R' ), + MY =SIMP(statut='f',typ='R' ), + MZ =SIMP(statut='f',typ='R' ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + + 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 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), + + 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 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), + + 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") ), + ), + + CONVERGENCE =FACT(statut='d', + 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), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + ), + + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), + REAC_ITER =SIMP(statut='f',typ='I',defaut=0), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + ), + + RECH_LINEAIRE =FACT(statut='d', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + ), + + INCREMENT =FACT(statut='o', + 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 + ), + + THETA_3D =FACT(statut='f',max='**', + R_INF =SIMP(statut='o',typ='R' ), + R_SUP =SIMP(statut='o',typ='R' ), + ), + + IMPR_TABLE =FACT(statut='f', + regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ), + PRESENT_PRESENT('TOUT_PARA','ANGLE', ), + PRESENT_PRESENT('TOUT_PARA','R_CINTR', ), + UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),), + NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4, + into=("TRESCA_MEMBRANE", + "TRESCA_MFLE", + "TRESCA", + "SI_LONG" + "SI_RADI" + "SI_CIRC" + ) ), + TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ANGLE =SIMP(statut='f',typ='R',max='**' ), + R_CINTR =SIMP(statut='f',typ='R',max='**' ), + POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ), + POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ), + TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), + ), + + IMPRESSION =FACT(statut='f', + FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", + into=("RESULTAT","ASTER","IDEAS","CASTEM") ), + + 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)), + ), + + ), + + TITRE =SIMP(statut='f',typ='TXM' ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 F1BHHAJ J.ANGLES +from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops +MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster, + fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)", + UIinfo={"groupes":("Outils métier",)},reentrant='n', + + regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), + + 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)), + ), + + TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ), + + COUDE =FACT(statut='o', + ANGLE =SIMP(statut='o',typ='R' ), + R_CINTR =SIMP(statut='o',typ='R' ), + L_TUBE_P1 =SIMP(statut='o',typ='R' ), + L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ), + SYME =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ), + TRANSFORMEE =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), + b_transf_coude =BLOC(condition = "TRANSFORMEE == 'COUDE' ", + DEXT =SIMP(statut='o',typ='R' ), + EPAIS =SIMP(statut='o',typ='R' ), + SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), + ), + b_transf_tube =BLOC(condition = "TRANSFORMEE == 'TUBE' ", + TRAN_EPAIS =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ), + b_trans_epais_oui =BLOC(condition = "TRAN_EPAIS == 'OUI' ", + regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'), + UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),), + DEXT_T1 =SIMP(statut='o',typ='R' ), + EPAIS_T1 =SIMP(statut='o',typ='R' ), + EPAIS_T2 =SIMP(statut='o',typ='R' ), + EPAIS_TI =SIMP(statut='f',typ='R' ), + ANGL_TETA1 =SIMP(statut='o',typ='R' ), + ANGL_TETA2 =SIMP(statut='f',typ='R' ), + ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ), + POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ), + ), + b_trans_epais_non =BLOC(condition = "TRAN_EPAIS == 'NON' ", + DEXT =SIMP(statut='o',typ='R' ), + EPAIS =SIMP(statut='o',typ='R' ), + SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), + ), + ), + ), + + SOUS_EPAIS_COUDE=FACT(statut='f', + regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), + UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), + TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), + AXE_CIRC =SIMP(statut='f',typ='R' ), + AXE_LONGI =SIMP(statut='o',typ='R' ), + PROFONDEUR =SIMP(statut='o',typ='R' ), + POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), + POSI_ANGUL =SIMP(statut='f',typ='R' ), + POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), + AZIMUT =SIMP(statut='f',typ='R' ), + SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), + NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), + NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), + NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ), + EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + + SOUS_EPAIS_MULTI=FACT(statut='f',max='**', + regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), + UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), + TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), + AXE_CIRC =SIMP(statut='f',typ='R' ), + AXE_LONGI =SIMP(statut='o',typ='R' ), + PROFONDEUR =SIMP(statut='o',typ='R' ), + POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), + POSI_ANGUL =SIMP(statut='f',typ='R' ), + POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), + AZIMUT =SIMP(statut='f',typ='R' ), + SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), + NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), + NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), + EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + + FISS_COUDE =FACT(statut='f', + regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),), + AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), + b_axis_non =BLOC(condition = "AXIS == 'NON' ", + LONGUEUR =SIMP(statut='o',typ='R' ), + ), + b_axis_oui =BLOC(condition = "AXIS == 'OUI' ", + LONGUEUR =SIMP(statut='f',typ='R' ), + ), + PROFONDEUR =SIMP(statut='o',typ='R' ), + ABSC_CURV =SIMP(statut='f',typ='R' ), + POSI_ANGUL =SIMP(statut='f',typ='R' ), + FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ), + AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), + ORIEN =SIMP(statut='o',typ='R', + into=(45.,-45.,90.,0.E+0) ), + NB_TRANCHE =SIMP(statut='o',typ='I' ), + NB_SECTEUR =SIMP(statut='o',typ='I' ), + NB_COURONNE =SIMP(statut='o',typ='I' ), + RAYON_TORE =SIMP(statut='f',typ='R' ), + COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ), + COEF_MULT_RC3 =SIMP(statut='f',typ='R' ), + ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ), + ), + + IMPRESSION =FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('FICHIER','UNITE'),), + FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER", + into=("ASTER","IDEAS","CASTEM") ), + 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)), + ), + FICHIER =SIMP(statut='f',typ='TXM' ), + UNITE =SIMP(statut='f',typ='I' ), + ), + + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 25/09/2006 AUTEUR MJBHHPE J.L.FLEJOU +# 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 F1BHHAJ J.ANGLES +from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops + +def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args): + if MODELE != None:self.type_sdprod(MODELE,modele_sdaster) + if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) + if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) + if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss) + if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss) + if CHARGE != None:self.type_sdprod(CHARGE,char_meca) + if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) + return evol_noli + +MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod, + fr="Réalise un calcul prédéfini de piquages sains ou fissurés ainsi que les post-traitements associés ", + UIinfo={"groupes":("Outils métier",)},reentrant='n', + regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), + + TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', + into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB", + "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ), + + TUBULURE =FACT(statut='o', + TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ), + ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=CO,), + CHAM_MATER =SIMP(statut='f',typ=CO,), + CARA_ELEM =SIMP(statut='f',typ=CO,), + FOND_FISS_1 =SIMP(statut='f',typ=CO,), + FOND_FISS_2 =SIMP(statut='f',typ=CO,), + CHARGE =SIMP(statut='f',typ=CO,), + RESU_THER =SIMP(statut='f',typ=CO,), + + 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=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ), + MATER =SIMP(statut='o',typ=mater_sdaster), + TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")), + ), + + EQUILIBRE =FACT(statut='o', + NOEUD =SIMP(statut='o',typ=no), + ), + + PRES_REP =FACT(statut='o', + PRES =SIMP(statut='o',typ='R'), + NOEUD =SIMP(statut='f',typ=no), + EFFE_FOND =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + ECHANGE =FACT(statut='f', + COEF_H_TUBU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + COEF_H_CORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + TORS_CORP =FACT(statut='f',max=6, + regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + NOEUD =SIMP(statut='o',typ=no), + FX =SIMP(statut='f',typ='R'), + FY =SIMP(statut='f',typ='R'), + FZ =SIMP(statut='f',typ='R'), + MX =SIMP(statut='f',typ='R'), + MY =SIMP(statut='f',typ='R'), + MZ =SIMP(statut='f',typ='R'), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + TORS_TUBU =FACT(statut='f',max=6, + regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), + FX =SIMP(statut='f',typ='R'), + FY =SIMP(statut='f',typ='R'), + FZ =SIMP(statut='f',typ='R'), + MX =SIMP(statut='f',typ='R'), + MY =SIMP(statut='f',typ='R'), + MZ =SIMP(statut='f',typ='R'), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + + 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), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), + + 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 ), + RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", + into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), + ), + + THETA_3D =FACT(statut='f',max='**', + R_INF =SIMP(statut='o',typ='R'), + R_SUP =SIMP(statut='o',typ='R'), + ), + + OPTION =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ), + BORNES =FACT(statut='f',max='**', + NUME_ORDRE =SIMP(statut='o',typ='I'), + VALE_MIN =SIMP(statut='o',typ='R'), + VALE_MAX =SIMP(statut='o',typ='R'), + ), + + 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 iversibilité 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") ), + ), + + CONVERGENCE =FACT(statut='d', + 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), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + ), + + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut=1), + PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")), + MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")), + REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), + ), + + RECH_LINEAIRE =FACT(statut='d', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-3), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut=3), + ), + + INCREMENT =FACT(statut='o', + 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 + ), + + PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1), + + IMPRESSION =FACT(statut='f', + FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", + into=("RESULTAT","ASTER","CASTEM","IDEAS")), + + 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)), + ), + + b_extrac =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))", + fr="extraction d un champ de grandeur", + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3, + into=("DEPL","EQUI_ELNO_SIGM","TEMP")), + + 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)), + + TITRE =SIMP(statut='f',typ='TXM'), +) +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 F1BHHAJ J.ANGLES + +from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops + +MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n', + fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)", + UIinfo={"groupes":("Outils métier",)}, + + 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)), + ), + + TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")), + + RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")), + + TUBULURE =FACT(statut='o', + E_BASE =SIMP(statut='o',typ='R'), + DEXT_BASE =SIMP(statut='o',typ='R'), + L_BASE =SIMP(statut='o',typ='R'), + L_CHANF =SIMP(statut='o',typ='R'), + E_TUBU =SIMP(statut='o',typ='R'), + DEXT_TUBU =SIMP(statut='o',typ='R'), + Z_MAX =SIMP(statut='o',typ='R'), + TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), + L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0), + ), + + SOUDURE =FACT(statut='o', + H_SOUD =SIMP(statut='o',typ='R'), + ANGL_SOUD =SIMP(statut='o',typ='R'), + JEU_SOUD =SIMP(statut='o',typ='R'), + ), + + CORPS =FACT(statut='o', + E_CORP =SIMP(statut='o',typ='R'), + DEXT_CORP =SIMP(statut='o',typ='R'), + X_MAX =SIMP(statut='o',typ='R'), + ), + + FISS_SOUDURE =FACT(statut='f', + TYPE =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")), + AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + PROFONDEUR =SIMP(statut='o',typ='R'), + LONGUEUR =SIMP(statut='f',typ='R'), + AZIMUT =SIMP(statut='o',typ='R'), + RAYON_TORE =SIMP(statut='f',typ='R'), + POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")), + FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")), + LIGA_INT =SIMP(statut='f',typ='R'), + ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0), + COEF_MULT_RC1 =SIMP(statut='f',typ='R'), + COEF_MULT_RC2 =SIMP(statut='f',typ='R'), + COEF_MULT_RC3 =SIMP(statut='f',typ='R'), + NB_TRANCHE =SIMP(statut='f',typ='I'), + NB_SECTEUR =SIMP(statut='f',typ='I'), + NB_COURONNE =SIMP(statut='f',typ='I'), + ), + + IMPRESSION =FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('FICHIER','UNITE'),), + FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")), + + 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)), + ), + FICHIER =SIMP(statut='f',typ='TXM'), + UNITE =SIMP(statut='f',typ='I'), + ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 12/03/2007 AUTEUR DEVESA G.DEVESA +# 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. +# ====================================================================== +MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, + fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ), + PRESENT_ABSENT('MATR_IMPE','MATR_RIGI','MATR_MASS'),), + BASE_MODALE =SIMP(statut='o',typ=base_modale ), + MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r ), + MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), + MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ", + "DIAG_MASS") ), + MATR_IMPE =SIMP(statut='f',typ=matr_asse_gene_c ), + b_matr_impe =BLOC(condition = "MATR_IMPE != None", + FREQ_EXTR =SIMP(statut='o',typ='R' ), + AMOR_SOL =SIMP(statut='f',typ='R',defaut=0.E+0 ), + ), + CAS_CHARGE =FACT(statut='f',max='**', + NOM_CAS =SIMP(statut='o',typ='TXM'), + VECT_ASSE_GENE =SIMP(statut='o',typ=vect_asse_gene ), + ), +) ; +#& MODIF COMMANDE DATE 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA +# 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. +# ====================================================================== +MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f', + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration", + regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'), + ENSEMBLE('DEFINITION','EXTERIEUR'),), + DEFINITION =FACT(statut='f', + regles=(PRESENT_PRESENT('PROJ_MESU','MODE_MESURE'),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca), + INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ), + NMAX_CAS =SIMP(statut='f',typ='I',defaut=10), + NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10), + PROJ_MESU =SIMP(statut='f',typ=(mode_gene,tran_gene,harm_gene),max=1), + MODE_MESURE =SIMP(statut='f',typ=( mode_meca,base_modale) ), + ), + EXTERIEUR =FACT(statut='f', + regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + RIGI_MECA =FACT(statut='f', + ), + MASS_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")), + CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + INST =SIMP(statut='f',typ='R',defaut=0.E+0), + ), + +) ; +#& MODIF COMMANDE DATE 07/11/2006 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 thomasso D.THOMASSON +# +from Macro.impr_oar_ops import impr_oar_ops +IMPR_OAR =MACRO(nom="IMPR_OAR",op= impr_oar_ops, sd_prod=None, + fr="Impression au format OAR", + UIinfo={"groupes":("Impression",)}, + TYPE_CALC = SIMP(statut='o', typ='TXM',into=('COMPOSANT', 'MEF', 'TUYAUTERIE')), + b_composant =BLOC(condition = "TYPE_CALC == 'COMPOSANT' ", + regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')), + DIAMETRE = SIMP(statut='o', typ='R'), + ORIGINE = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')), + COEF_U = SIMP(statut='f', typ='R', defaut=1.0), + ANGLE_C = SIMP(statut='o', typ='R', defaut=0.0), + REVET = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')), + RESU_MECA = FACT(statut='f', max='**', + NUM_CHAR = SIMP(statut='o', typ='I'), + TYPE = SIMP(statut='o', typ='TXM', defaut='FX', into=('FX', 'FY', 'FZ', 'MX', 'MY', 'MZ', 'PRE')), + TABLE = SIMP(statut='o', typ=table_sdaster), + TABLE_S = SIMP(statut='f', typ=table_sdaster)), + RESU_THER = FACT(statut='f', max='**', + NUM_TRAN = SIMP(statut='o', typ='I'), + TABLE_T = SIMP(statut='o', typ=table_sdaster), + TABLE_TEMP= SIMP(statut='o', typ=table_sdaster), + TABLE_S = SIMP(statut='f', typ=table_sdaster), + TABLE_ST = SIMP(statut='f', typ=table_sdaster)), + ), + b_mef = BLOC(condition = "TYPE_CALC == 'MEF' ", + regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')), + DIAMETRE = SIMP(statut='o', typ='R'), + ORIGINE = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')), + COEF_U = SIMP(statut='f', typ='R', defaut=1.0), + RESU_MECA = FACT(statut='f', max='**', + AZI = SIMP(statut='o', typ='R'), + TABLE_T = SIMP(statut='o', typ=table_sdaster), + TABLE_F = SIMP(statut='o', typ=table_sdaster), + TABLE_P = SIMP(statut='o', typ=table_sdaster), + TABLE_CA = SIMP(statut='o', typ=table_sdaster)), + RESU_THER=FACT(statut='f', max='**', + AZI = SIMP(statut='o', typ='R'), + NUM_CHAR = SIMP(statut='o', typ='I'), + TABLE_T = SIMP(statut='o', typ=table_sdaster), + TABLE_TI = SIMP(statut='o', typ=table_sdaster)), + ), + b_tuyauterie = BLOC(condition = "TYPE_CALC == 'TUYAUTERIE' ", + RESU_MECA = FACT(statut='o', max='**', + NUM_CHAR = SIMP(statut='o', typ='I'), + TABLE = SIMP(statut='o', typ=table_sdaster), + MAILLAGE = SIMP(statut='o', typ=maillage_sdaster)), + ), + UNITE = SIMP(statut='f',typ='I',defaut=38), + AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')), + ); +#& MODIF COMMANDE DATE 25/04/2006 AUTEUR CIBHHPD L.SALMONA +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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. +# ====================================================================== + +DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='n', + UIinfo={"groupes":("Modélisation",)}, + fr="Définition des caratéristiques d'une fissure avec X-FEM", + + MODELE =SIMP(statut='o',typ=modele_sdaster), + DEFI_FISS =FACT(statut='o',max=01, + regles =(UN_PARMI('GROUP_MA_FISS','FONC_LT'), + ENSEMBLE('FONC_LT','FONC_LN'), + ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')), + FONC_LT =SIMP(statut='f',typ=(fonction_sdaster,formule) ), + 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), + ), + GROUP_MA_ENRI =SIMP(statut='o',typ=grma,max=01), + RAYON_ENRI =SIMP(statut='f',typ='R',defaut=0.E+0), + 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), + ), + CONTACT =FACT(statut='f',max=01, + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",) ), + FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), + INTEGRATION =SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ), + COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), + MODL_AXIS =SIMP(statut='f',typ='TXM',into=("NON",)), + ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), + 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), + b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramères 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),), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ), +) ; +#& MODIF COMMANDE DATE 30/10/2006 AUTEUR DURAND C.DURAND +# 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 GNICOLAS G.NICOLAS + +from Macro.macr_adap_mail_ops import macr_adap_mail_ops + +MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops, + docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)}, + fr="Donner des informations sur un maillage.", + ang="To give information about a mesh.", +# +# 1. Le niveau d'information +# + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +# +# 2. Version de HOMARD +# + VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_5", + into=("V8_5", "V8_N", "V8_N_PERSO"), + fr="Version de HOMARD", + ang="HOMARD release"), +# +# 3. Langue des messages issus de HOMARD +# + LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", + into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), + fr="Langue des messages issus de HOMARD.", + ang="Language for HOMARD messages." ), +# +# 4. Le nom du maillage a analyser +# + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster, + fr="Maillage à analyser.", + ang="Mesh to be checked." ), +# +# 5. Suivi d'une frontiere +# + MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, + fr="Maillage de la frontiere à suivre", + ang="Boundary mesh" ), +# + b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " , + 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" ), +# + ) , +# +# 6. Les options ; par defaut, on controle tout +# 6.1. Nombre de noeuds et elements +# + NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Nombre de noeuds et éléments du maillage", + ang="Number of nodes and elements in the mesh" ), +# +# 6.2. Determination de la qualite des elements du maillage +# + QUALITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Qualité du maillage", + ang="Mesh quality" ), +# +# 6.3. Connexite du maillage +# + CONNEXITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Connexité du maillage.", + ang="Mesh connexity." ), +# +# 6.4. Taille des sous-domaines du maillage +# + TAILLE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), + fr="Tailles des sous-domaines du maillage.", + ang="Sizes of mesh sub-domains." ), +# +# 6.5. Controle de la non-interpenetration des elements +# + INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), + fr="Controle de la non interpénétration des éléments.", + ang="Overlapping checking." ), +# +# 7. Gestion des éléments autres que ceux compatibles avec HOMARD +# "REFUSER" : ils sont refuses (defaut) +# "IGNORER" : ils sont ignorés +# + ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), + fr="Acceptation d'éléments incompatibles avec HOMARD", + ang="Incompatible elements for HOMARD" ), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== +# RESPONSABLE ASSIRE A.ASSIRE + +from Macro.calc_precont_ops import calc_precont_ops + + +# =========================================================================== +# CATALOGUE DE LA MACRO "CALC_PRECONT" +# ----------------------------------------- +# USAGE : +# +# +# =========================================================================== + +CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, + fr="Imposer la tension définie par le BPEL dans les cables", + reentrant='f',UIinfo={"groupe":("Modélisation",)}, + reuse =SIMP(statut='f',typ='evol_noli'), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CARA_ELEM =SIMP(statut='o',typ=cara_elem), + CABLE_BP =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'), + CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'), + INCREMENT =FACT(statut='o', + 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 ), + # 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 + ), + + NEWTON =FACT(statut='d', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + 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), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + ), + RECH_LINEAIRE =FACT(statut='f', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + ), + CONVERGENCE =FACT(statut='d', + 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), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + ), + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(carte_sdaster,cham_elem)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), + 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") ), + 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") ), + 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","DECOUPE") ), + ), + 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") ), + ), + SOLV_NON_LOCAL =FACT(statut='f', + 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 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + LAGR_NON_LOCAL =FACT(statut='f', + ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), + RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), + RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), + R =SIMP(statut='f',typ='R',defaut= 1000.), + ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), + ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_meca), + ), + + COMP_INCR =C_COMP_INCR(), + ) ; +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== + +DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n', + fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte" + +" (utilisée par la macro DEFI_CABLE_BP)", + UIinfo={"groupes":("Modélisation",)}, + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='o',typ=cara_elem ), + GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), + DEFI_CABLE =FACT(statut='o',max='**', + regles=(UN_PARMI('MAILLE','GROUP_MA'), + UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), + MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma), + NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), + GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + GROUP_NO_FUT =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), + ), + TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), + TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), + RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), + RELAXATION =FACT(statut='f',min=0, + R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + CONE =FACT(statut='f',min=0, + RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), + LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ), + PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), + ), +) ; +#& 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 +# 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 G8BHHXD X.DESROCHES + +from Macro.macro_elas_mult_ops import macro_elas_mult_ops + +def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ): + if isinstance(NUME_DDL,CO) : + self.type_sdprod(NUME_DDL,nume_ddl_sdaster) + else: + self.type_sdprod(NUME_DDL,NUME_DDL.__class__) + if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas + if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas + raise AsException("type de concept resultat non prevu") + +MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f', + UIinfo={"groupes":("Résolution",)}, + fr="Calculer les réponses statiques linéaires pour différents cas de charges ou modes de Fourier", + regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)), + CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)), + CAS_CHARGE =FACT(statut='o',max='**', + regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'), + UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),), + NOM_CAS =SIMP(statut='f',typ='TXM' ), + MODE_FOURIER =SIMP(statut='f',typ='I' ), + TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), + CHAR_MECA =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + CHAR_CINE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", + "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL", + "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA", + "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", + "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI", + "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA", + "ERZ2_ELEM_SIGM","VNOR_ELEM_DEPL","ERRE_ELNO_ELEM","SIRE_ELNO_DEPL", + "ERRE_ELEM_SIGM","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI", + "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", + "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL", + "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ), + NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")), + SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), + ), + 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 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") ), + ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== +# RESPONSABLE D6BHHJP J.P.LEFEBVRE +def DEFIC_prod(self,ACTION,UNITE,**args): + if ACTION == "ASSOCIER" or ACTION == "RESERVER": + if UNITE != None : + return + else : + return entier + elif ACTION == "LIBERER" : + return + else : + raise AsException("ACTION non prevue : %s" % ACTION) + +DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n', + UIinfo={"groupes":("Gestion du travail",)}, + fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique", + + ACTION =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"), + + b_associer =BLOC(condition = "ACTION == 'ASSOCIER'", + fr="Paramètres pour l'ouverture du fichier", + regles=(AU_MOINS_UN('FICHIER','UNITE'),), + UNITE =SIMP(statut='f',typ='I' ,val_min=1), + FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), + TYPE =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"), + + b_type_ascii =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII", + ACCES =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"), + ), + b_type_autre =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE", + ACCES =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"), + ), + ), + + b_reserver =BLOC(condition = "ACTION == 'RESERVER'", + fr="Paramètres pour la réservation de l'unité du fichier", + regles=(AU_MOINS_UN('FICHIER','UNITE'),), + UNITE =SIMP(statut='f',typ='I' ,val_min=1), + FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), + TYPE =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"), + ACCES =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"), + ), + + b_liberer =BLOC(condition = "ACTION == 'LIBERER'", + fr="Paramètres pour la fermeture du fichier", + regles=(UN_PARMI('FICHIER','UNITE'),), + UNITE =SIMP(statut='f',typ='I' ,val_min=1), + FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)), + ), + + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + ) +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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 Macro.macro_matr_ajou_ops import macro_matr_ajou_ops + +def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args): + self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r) + self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r) + self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r) + if FORC_AJOU != None: + for m in FORC_AJOU: + self.type_sdprod(m['VECTEUR'],vect_asse_gene) + + return None + +MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod, + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des matrices de masse, d'amortissement" + +" ou de rigidité ajoutés", + regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'), + AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), + EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'), + EXCLUS('MONO_APPUI','MODE_STAT',), + ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), + GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma), + GROUP_MA_INTERF =SIMP(statut='o',typ=grma), + MODELISATION =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")), + FLUIDE =FACT(statut='o',max='**', + RHO =SIMP(statut='o',typ='R'), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + GROUP_MA =SIMP(statut='f',typ=grma), + MAILLE =SIMP(statut='f',typ=ma), + ), + DDL_IMPO =FACT(statut='o',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO'), + UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + PRES_FLUIDE =SIMP(statut='f',typ='R'), + PRES_SORTIE =SIMP(statut='f',typ='R'), + ), + ECOULEMENT =FACT(statut='f', + GROUP_MA_1 =SIMP(statut='o',typ=grma), + GROUP_MA_2 =SIMP(statut='o',typ=grma), + VNOR_1 =SIMP(statut='o',typ='R'), + VNOR_2 =SIMP(statut='f',typ='R'), + POTENTIEL =SIMP(statut='f',typ=evol_ther), + ), + MODE_MECA =SIMP(statut='f',typ=mode_meca), + DEPL_IMPO =SIMP(statut='f',typ=cham_no_sdaster), + MODELE_GENE =SIMP(statut='f',typ=modele_gene), + NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene), + DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2), + MATR_MASS_AJOU =SIMP(statut='f',typ=CO,), + MATR_RIGI_AJOU =SIMP(statut='f',typ=CO,), + MATR_AMOR_AJOU =SIMP(statut='f',typ=CO,), + MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), + FORC_AJOU =FACT(statut='f',max='**', + DIRECTION =SIMP(statut='o',typ='R',max=3), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + VECTEUR =SIMP(statut='o',typ=CO), + ), + 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 iversibilité 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 ), + ), + ), + 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 12/06/2006 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. +# ====================================================================== + +from Macro.macro_matr_asse_ops import macro_matr_asse_ops + +def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args): + if not MATR_ASSE: raise AsException("Impossible de typer les concepts resultats") + if not NUME_DDL : raise AsException("Impossible de typer les concepts resultats") + if isinstance(NUME_DDL,CO) : + self.type_sdprod(NUME_DDL,nume_ddl_sdaster) + else: + self.type_sdprod(NUME_DDL,NUME_DDL.__class__) + for m in MATR_ASSE: + opti=m['OPTION'] + + 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", + "ONDE_FLUI","MASS_MECA_DIAG" ) : 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 + + if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c + + self.type_sdprod(m['MATRICE'],t) + return None + +MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, + UIinfo={"groupes":("Matrices/vecteurs",)}, + sd_prod=macro_matr_asse_prod, + fr="Calcul des matrices assemblées (rigidité, masse, amortissement,...) ", + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',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,char_ther,char_acou),validators=NoRepeat(),max='**'), + 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=("LDLT","MULT_FRONT","GCPC","MUMPS")), + RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")), + ), + + MATR_ASSE =FACT(statut='o',max='**', + MATRICE =SIMP(statut='o',typ=CO), + OPTION =SIMP(statut='o',typ='TXM', + into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG", + "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA", + "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU", + "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR", + "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",) + ), + + b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), + ), + + b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'", + SIEF_ELGA =SIMP(statut='o',typ=cham_elem), + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), + ), + + b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'", + THETA =SIMP(statut='o',typ=theta_geom), + PROPAGATION =SIMP(statut='f',typ='R'), + ), + + b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'", + MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), + ), + + ), # fin MATR_ASSE + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 19/09/2006 AUTEUR ACBHHCD G.DEVESA +# 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. +# ====================================================================== + +from Macro.macro_miss_3d_ops import macro_miss_3d_ops + +MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops, + fr="Préparation des données puis exécution du logiciel MISS3D", + UIinfo={"groupes":("Matrices/vecteurs",)}, + OPTION =FACT(statut='o', + regles=(UN_PARMI('TOUT','MODULE'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")), + ), + PROJET =SIMP(statut='o',typ='TXM'), + REPERTOIRE =SIMP(statut='f',typ='TXM'), + VERSION =SIMP(statut='f',typ='TXM',into=("V1_2","V1_3",),defaut="V1_2"), + UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25), + UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26), + UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27), + UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), + UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=0), + PARAMETRE =FACT(statut='f', + regles=(PRESENT_PRESENT('FREQ_MIN','FREQ_MAX','FREQ_PAS'), + PRESENT_PRESENT('CONTR_NB','CONTR_LISTE'), + PRESENT_PRESENT('LFREQ_NB','LFREQ_LISTE'), + PRESENT_PRESENT('OFFSET_MAX','OFFSET_NB'), + PRESENT_PRESENT('SPEC_MAX','SPEC_NB'),), + FREQ_MIN =SIMP(statut='f',typ='R'), + FREQ_MAX =SIMP(statut='f',typ='R'), + FREQ_PAS =SIMP(statut='f',typ='R'), + Z0 =SIMP(statut='f',typ='R'), + SURF =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"), + RFIC =SIMP(statut='f',typ='R'), + FICH_RESU_IMPE =SIMP(statut='f',typ='TXM'), + FICH_RESU_FORC =SIMP(statut='f',typ='TXM'), + TYPE =SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII",),defaut="ASCII"), + DREF =SIMP(statut='f',typ='R'), + ALGO =SIMP(statut='f',typ='TXM',into=("DEPL","REGU")), + OFFSET_MAX =SIMP(statut='f',typ='R'), + OFFSET_NB =SIMP(statut='f',typ='I'), + SPEC_MAX =SIMP(statut='f',typ='R'), + SPEC_NB =SIMP(statut='f',typ='I'), + ISSF =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"), + FICH_POST_TRAI =SIMP(statut='f',typ='TXM'), + CONTR_NB =SIMP(statut='f',typ='I'), + CONTR_LISTE =SIMP(statut='f',typ='R',max='**'), + LFREQ_NB =SIMP(statut='f',typ='I'), + LFREQ_LISTE =SIMP(statut='f',typ='R',max='**'), + ), +) ; +#& MODIF COMMANDE DATE 27/03/2007 AUTEUR BOYERE E.BOYERE +# 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. +# ====================================================================== + +from Macro.macro_mode_meca_ops import macro_mode_meca_ops + +MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca, + reentrant='n',fr="Lancer une succession de calculs de modes propres réels", + UIinfo={"groupes":("Résolution",)}, + MATR_A =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_B =SIMP(statut='o',typ=matr_asse_depl_r ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +# ce mot cle ne devrait il pas etre dans calc_freq + METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", + into=("TRI_DIAG","JACOBI","SORENSEN",) ), + 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 ), + ), + OPTION =SIMP(statut='f',typ='TXM',defaut="SANS", + into=("MODE_RIGIDE","SANS") ), + CALC_FREQ =FACT(statut='d',min=0, + regles=(UN_PARMI('FREQ','FREQ_MAX'), + PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'), + PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'), + EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), + FREQ =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**', ), + FREQ_MIN =SIMP(statut='f',typ='R' ), + FREQ_MAX =SIMP(statut='f',typ='R' ), + NB_BLOC_FREQ =SIMP(statut='f',typ='I' ), + 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 ), + NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), + SEUIL_FREQ =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ), + STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ), + ), + VERI_MODE =FACT(statut='d',min=0, + STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ), + STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + ), + NORM_MODE =FACT(statut='o',max='**', + MASS_INER =SIMP(statut='o',typ=table_sdaster), + NORME =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA", + into=("MASS_GENE","RIGI_GENE","EUCL", + "EUCL_TRAN","TRAN","TRAN_ROTA") ), + INFO =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ), + ), + FILTRE_MODE =FACT(statut='f', + CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", + into=("MASS_EFFE_UN","MASS_GENE") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + IMPRESSION =FACT(statut='d', + TOUT_PARA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + CUMUL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", + into=("MASS_EFFE_UN","MASS_GENE",) ), + ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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 Macro.macro_proj_base_ops import macro_proj_base_ops + +def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ): + if MATR_ASSE_GENE != None: + for m in MATR_ASSE_GENE: + self.type_sdprod(m['MATRICE'],matr_asse_gene_r) + if VECT_ASSE_GENE != None: + for v in VECT_ASSE_GENE: + self.type_sdprod(v['VECTEUR'],vect_asse_gene) + return None + +MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops, + regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')), + UIinfo={"groupes":("Matrices/vecteurs",)}, + sd_prod=macro_proj_base_prod, + fr="Projection des matrices et/ou vecteurs assemblés sur une base (modale ou de RITZ)", + BASE =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ), + NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), + PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ), + MATR_ASSE_GENE =FACT(statut='f',max='**', + MATRICE =SIMP(statut='o',typ=CO,), + regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),), + MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r), + MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r), + ), + VECT_ASSE_GENE =FACT(statut='f',max='**', + VECTEUR =SIMP(statut='o',typ=CO,), + regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),), + TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), + VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +MAJ_CATA=PROC(nom="MAJ_CATA",op=20, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Compilation des catalogues de commandes et d'éléments", + + ELEMENT =FACT(statut='f',), + +) ; +#& MODIF COMMANDE DATE 13/12/2006 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. +# +# 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 VABHHTS J.PELLET +MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, + fr="Résoudre un problème de mécanique statique linéaire",reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(EXCLUS("INST","LIST_INST"), + AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), + CONCEPT_SENSIBLE('ENSEMBLE'),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater, + fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)", + ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"), + CARA_ELEM =SIMP(statut='f',typ=cara_elem, + fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...", + ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + 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)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), + ), + INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST_FIN =SIMP(statut='f',typ='R'), + OPTION =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1, + fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.", + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","FETI","MUMPS") ), + + 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") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.), + NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), + TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), + NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), + NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0), + PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), + SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), + VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), + INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'), + STOCKAGE_GI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ), + 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_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' or METHODE == 'FETI' ", + 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 ), + ), + + 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")), + SCALING =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.E-6,), + ), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 10/06/2004 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. +# +# 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 GNICOLAS G.NICOLAS +MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129, + UIinfo={"groupes":("Fonction",)}, + fr="Mémorisation des noms des concepts dérivés.", + ang="Memorisation of the names of the sensitive concepts.", + + regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),), + + NOM=FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('MOT_CLE','VALEUR','MOT_FACT' ),), + + NOM_SD=SIMP(statut='o',typ='TXM', + fr="Nom de la structure de base", + ang="Name of the basic structure"), + + PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom), + fr="Nom du paramètre sensible", + ang="Name of the sensitive parameter"), + + NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ", + fr="Nom de la structure composée", + ang="Name of the built structure"), + + MOT_FACT=SIMP(statut='f',typ='TXM',max='**', + fr="Liste des mots clés facteurs concernés par la dérivation", + ang="Factor keyword list involved in derivation"), + + MOT_CLE=SIMP(statut='f',typ='TXM',max='**', + fr="Liste des mots clés concernés par la dérivation", + ang="Keyword list involved in derivation"), + + VALEUR=SIMP(statut='f',typ='TXM',max='**', + fr="Liste des objets concernés par la dérivation", + ang="Object list involved in derivation"), + + ), + + NOM_ZERO=SIMP(statut='f',typ=fonction_sdaster, + fr="Nom de la fonction nulle", + ang="Name of the zero fonction"), + + NOM_UN =SIMP(statut='f',typ=fonction_sdaster, + fr="Nom de la fonction unité", + ang="Name of the one fonction"), + +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl, + fr="Calcul des modes propres d'une structure à répétitivité cyclique à partir" + +" d'une base de modes propres réels", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + BASE_MODALE =SIMP(statut='o',typ=base_modale ), + NB_MODE =SIMP(statut='f',typ='I',defaut= 999 ), + NB_SECTEUR =SIMP(statut='o',typ='I' ), + LIAISON =FACT(statut='o', + DROITE =SIMP(statut='o',typ='TXM' ), + GAUCHE =SIMP(statut='o',typ='TXM' ), + AXE =SIMP(statut='f',typ='TXM' ), + ), + VERI_CYCL =FACT(statut='f', + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ), + DIST_REFE =SIMP(statut='f',typ='R' ), + ), + CALCUL =FACT(statut='o', + TOUT_DIAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NB_DIAM =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE" + ,into=("PLUS_PETITE","CENTRE","BANDE") ), + b_centre =BLOC(condition = "OPTION == 'CENTRE'", + FREQ =SIMP(statut='o',typ='R',), + ), + b_bande =BLOC(condition = "OPTION == 'BANDE'", + FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2), + ), +# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), + PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ), + PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ): + if TYPE_RESU == "MODE_FLAMB" : return mode_flamb + if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c + if AsType(MATR_A) == matr_asse_depl_r : return mode_meca + if AsType(MATR_A) == matr_asse_pres_r : return mode_acou + if AsType(MATR_A) == matr_asse_gene_r : return mode_gene + raise AsException("type de concept resultat non prevu") + +MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod + ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), + MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ), + TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE", + into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ), + b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", + CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", + + OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), + fr="Choix de l option pour estimer les valeurs propres" ), + FREQ =SIMP(statut='o',typ='R',max='**'), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), + NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), + PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), + NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ), + PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), + + 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, ), + ), + ), + b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", + CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", + + OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), + fr="Choix de l option pour estimer les valeurs propres" ), + CHAR_CRIT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), + NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), + NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), + PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), + NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ), + PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), + + 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, ), + ), + ), + CALC_MODE =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres", + OPTION =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ), + PREC =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), + ), + VERI_MODE =FACT(statut='d',min=0, + STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, + fr="Valeur limite admise pour l ereur a posteriori des modes" ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des param\350tres de sensibilit\351.", + ang="List of sensitivity parameters", + ), + b_sensibilite =BLOC(condition = "SENSIBILITE != None", + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + EXCIT =FACT(statut='f',max='**',), # que pour NMDOME + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), +) ; +#& MODIF COMMANDE DATE 13/03/2007 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. +# +# 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 mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ): + if TYPE_RESU == "MODE_FLAMB" : return mode_flamb + if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c + if AsType(MATR_A) == matr_asse_depl_r : return mode_meca + if AsType(MATR_A) == matr_asse_depl_c : return mode_meca_c + if AsType(MATR_A) == matr_asse_pres_r : return mode_acou + if AsType(MATR_A) == matr_asse_gene_r : return mode_gene + if AsType(MATR_A) == matr_asse_gene_c : return mode_gene + + raise AsException("type de concept resultat non prevu") + +MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_prod, + fr="Calcul des modes propres par itérations simultanées ; valeurs propres et" + +" modes propres réels ou complexes", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), + MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c, + matr_asse_gene_r,matr_asse_gene_c,matr_asse_pres_r ) ), + MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), + MATR_C =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), + METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", + into=("TRI_DIAG","JACOBI","SORENSEN") ), + 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 ), + ), + TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE", + into=("MODE_FLAMB","DYNAMIQUE"), + fr="Type d analyse" ), + OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"), + fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), + + b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", + CALC_FREQ =FACT(statut='d',min=0, + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), + 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", + CHAR_CRIT =SIMP(statut='o',typ='R', + fr="Charge critique autour de laquelle on cherche les charges critiques propres"), + 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", + CHAR_CRIT =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2, + fr="Valeur des deux charges critiques délimitant la bande de recherche"), + ), + APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"), + 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 ), + ), + ), + + b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", + CALC_FREQ =FACT(statut='d',min=0, + OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), + 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 ), + ), + ), + + 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") ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des param\350tres de sensibilit\351.", + ang="List of sensitivity parameters", + ), + b_sensibilite =BLOC(condition = "SENSIBILITE != None", + CHAM_MATER =SIMP(statut='f',typ=cham_mater ), + CARA_ELEM =SIMP(statut='f',typ=cara_elem ), + EXCIT =FACT(statut='f',max='**',), # que pour NMDOME + ), + STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args): + if (MODE_STAT != None) : return mode_stat_depl + if (PSEUDO_MODE !=None) : return mode_stat_acce + if (FORCE_NODALE != None) : return mode_stat_forc + raise AsException("type de concept resultat non prevu") +MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod, + fr="Calcul de modes statiques pour un déplacement, une force ou une accélération unitaire imposé", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), + MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), + regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),), + MODE_STAT =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), + UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ,), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), + 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='**'), + ), + FORCE_NODALE =FACT(statut='f',max='**', + regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), + UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), + 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='**'), + ), + PSEUDO_MODE =FACT(statut='f',max='**', + regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),), + AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3), + DIRECTION =SIMP(statut='f',typ='R',min=3,max=3), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), + b_dir =BLOC(condition = "DIRECTION != None", + NOM_DIR =SIMP(statut='f',typ='TXM' ),), + b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None", + 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='**'), + ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, + reentrant='f', + fr="Définir la base modale d'une structure sous écoulement", + UIinfo={"groupes":("Matrices/vecteurs",)}, +# la commande modi_base _modale : reentrant = f ou o + regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),), + BASE =SIMP(statut='o',typ=mode_meca ), + BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), + NUME_VITE_FLUI =SIMP(statut='o',typ='I' ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), + AMOR_UNIF =SIMP(statut='f',typ='R' ), + 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 +# 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 G8BHHXD X.DESROCHES +MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, + fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant," + +" à l'application d'une pression, à la modélisation du contact,...", + reentrant='o', + 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', + ), + PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'PLAQ_TUBE','MODI_MAILLE',), + PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',), + PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', + 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',), + EXCLUS('EQUE_PIQUA','PLAQ_TUBE'), + EXCLUS('EQUE_PIQUA','TUBE_COUDE'), + EXCLUS('ROTATION','MODI_BASE'), + EXCLUS('SYMETRIE','ROTATION'), + EXCLUS('SYMETRIE','TRANSLATION'), + EXCLUS('SYMETRIE','MODI_BASE'), + EXCLUS('SYMETRIE','ECHELLE'), + ), + MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), + + ORIE_FISSURE =FACT(statut='f', + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + + 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'", + GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ), + GROUP_NO_STRU = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),), + ), + + EQUE_PIQUA =FACT(statut='f', + GROUP_NO =SIMP(statut='o',typ=grno), + E_BASE =SIMP(statut='o',typ='R' ), + DEXT_BASE =SIMP(statut='o',typ='R' ), + L_BASE =SIMP(statut='o',typ='R' ), + L_CHANF =SIMP(statut='o',typ='R' ), + TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), + H_SOUD =SIMP(statut='o',typ='R' ), + ANGL_SOUD =SIMP(statut='o',typ='R' ), + JEU_SOUD =SIMP(statut='o',typ='R' ), + E_CORP =SIMP(statut='o',typ='R' ), + DEXT_CORP =SIMP(statut='o',typ='R' ), + AZIMUT =SIMP(statut='o',typ='R' ), + RAFF_MAIL =SIMP(statut='o',typ='TXM' ), + X_MAX =SIMP(statut='o',typ='R' ), + ), + ORIE_PEAU_2D =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + ORIE_PEAU_3D =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + ORIE_SHB8 =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), + ), + PLAQ_TUBE =FACT(statut='f', + DEXT =SIMP(statut='o',typ='R' ), + EPAIS =SIMP(statut='o',typ='R' ), + L_TUBE_P1 =SIMP(statut='o',typ='R' ), + AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), + COUTURE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), + ), + TUBE_COUDE =FACT(statut='f', + ANGLE =SIMP(statut='o',typ='R' ), + R_CINTR =SIMP(statut='o',typ='R' ), + L_TUBE_P1 =SIMP(statut='o',typ='R' ), + ), + MODI_MAILLE =FACT(statut='f',max=1, + regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),), + OPTION =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ), + GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1), + MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), + GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), + NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), + ), + MODI_BASE =FACT(statut='f', + 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',), + 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), + ANGL =SIMP(statut='o',typ='R',defaut= 0.E+0 ), + regles=(EXCLUS('DIR','POIN_2'),), + POIN_2 =SIMP(statut='f',typ='R',min=2,max=3), + DIR =SIMP(statut='f',typ='R',min=2,max=3), + ), + SYMETRIE =FACT(statut='f',max='**', + fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.", + POINT =SIMP(statut='o',typ='R',min=2,max=3, + fr="Point appartenant à la droite ou au plan."), + AXE_1 =SIMP(statut='o',typ='R',min=2,max=3, + fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."), + AXE_2 =SIMP(statut='f',typ='R',min=3,max=3, + fr="2nd vecteur appartenant du plan."), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=table_fonction, + fr="Calculer les obstacles dans les systèmes guidage-tube après usure", + reentrant='f', + UIinfo={"groupes":("Modélisation",)}, + regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'), + PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),), + OBSTACLE =SIMP(statut='f',typ=table_fonction), + GUIDE =SIMP(statut='o',typ=table_sdaster), + CRAYON =SIMP(statut='f',typ=table_sdaster), + TABL_USURE =SIMP(statut='f',typ=table_sdaster), + INST =SIMP(statut='f',typ='R'), + R_MOBILE =SIMP(statut='f',typ='R'), + PERCEMENT =SIMP(statut='f',typ='R',defaut=1), + V_USUR_TUBE =SIMP(statut='f',typ='R',max='**'), + V_USUR_OBST =SIMP(statut='f',typ='R',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 12/09/2005 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. +# ====================================================================== +# RESPONSABLE JMBHH01 J.M.PROIX +def modi_repere_prod(RESULTAT,**args): + if AsType(RESULTAT) == evol_elas : return evol_elas + if AsType(RESULTAT) == evol_noli : return evol_noli + if AsType(RESULTAT) == evol_ther : return evol_ther + if AsType(RESULTAT) == dyna_trans : return dyna_trans + if AsType(RESULTAT) == dyna_harmo : return dyna_harmo + if AsType(RESULTAT) == mode_meca : return mode_meca + if AsType(RESULTAT) == mode_flamb : return mode_flamb + if AsType(RESULTAT) == mult_elas : return mult_elas + if AsType(RESULTAT) == base_modale : return base_modale + raise AsException("type de concept resultat non prevu") + +MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + fr="Calcule des résultats dans le repère cylindrique", + RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, + evol_noli,mult_elas, + evol_ther,base_modale,mode_flamb) ), + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),), + 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='**'), + 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",),), + + MODI_CHAM =FACT(statut='o',max='**', + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TYPE_CHAM =SIMP(statut='o',typ='TXM', + into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + b_vect_2d =BLOC(condition = "TYPE_CHAM=='VECT_2D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=2,max=2 ),), + b_vect_3d =BLOC(condition = "TYPE_CHAM=='VECT_3D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=3,max=3 ),), + b_tors_3d =BLOC(condition = "TYPE_CHAM=='TORS_3D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), + b_tens_2d =BLOC(condition = "TYPE_CHAM=='TENS_2D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=4,max=4 ),), + b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'", + NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), + ), + DEFI_REPERE =FACT(statut='o', + regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),), + REPERE =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR", + into=("UTILISATEUR","CYLINDRIQUE"),), + ANGL_NAUT =SIMP(statut='f',typ='R',max=3), + ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), + AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA +# 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. +# ====================================================================== +def norm_mode_prod(MODE,**args ): + if AsType(MODE) == mode_meca : return mode_meca + if AsType(MODE) == mode_meca_c : return mode_meca_c + if AsType(MODE) == mode_flamb : return mode_flamb + if AsType(MODE) == base_modale : return base_modale + raise AsException("type de concept resultat non prevu") + +NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, + fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'), + CONCEPT_SENSIBLE('SEPARE'), + DERIVABLE('MODE'),), + MODE =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ), + NORME =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...", + into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ), + NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"), + b_noeud =BLOC(condition = "NOEUD != None", + NOM_CMP =SIMP(statut='o',typ='TXM' ), + ), + AVEC_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + SANS_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + MASS_INER =SIMP(statut='f',typ=table_sdaster), + MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes", + NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"), + NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ), + SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"), + fr="Choix du signe" ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des param\350tres de sensibilit\351.", + ang="List of sensitivity parameters", + ), + b_base =BLOC(condition = "AsType(MODE) == base_modale", + MASSE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ), + RAIDE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ), ), + AMOR = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 13/12/2006 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. +# +# 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 VABHHTS J.PELLET +NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice", + regles=(UN_PARMI('MATR_RIGI','MODELE'),), + MATR_RIGI =SIMP(statut='f',validators=NoRepeat(),max=100, + typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ), + MODELE =SIMP(statut='f',typ=modele_sdaster ), + 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") ), + 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")), + ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",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" ), + ), + INFO =SIMP(statut='f',typ='I',into=(1,2)), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, + fr="Etablissement de la numérotation des ddl d'un modèle établi en coordonnées généralisées", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=UN_PARMI('MODELE_GENE','BASE'), + MODELE_GENE =SIMP(statut='f',typ=modele_gene ), + b_modele_gene =BLOC(condition = "MODELE_GENE != None", + STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ), + METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("INITIAL","CLASSIQUE") ), + ), + BASE =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ), + b_base =BLOC(condition = "BASE != None", + STOCKAGE =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ), + NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), + ), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +from Macro.post_dyna_alea_ops import post_dyna_alea_ops + +POST_DYNA_ALEA=MACRO(nom="POST_DYNA_ALEA",op= post_dyna_alea_ops,sd_prod=table_sdaster, + fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), + INTE_SPEC =SIMP(statut='o',typ=table_fonction), + NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**' ), + NOEUD_I =SIMP(statut='f',typ=no,max='**'), + OPTION =SIMP(statut='f',typ='TXM',into=("DIAG",) ), + b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", + NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**' ), + ), + b_noeud_i =BLOC(condition = "NOEUD_I != None", + NOEUD_J =SIMP(statut='o',typ=no,max='**'), + NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ), + NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ), + ), + MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 03/01/2006 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. +# +# 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. +# ====================================================================== +POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster, + fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),), + RESU_GENE =SIMP(statut='o',typ=tran_gene ), + CHOC =FACT(statut='f',max='**', + fr="Analyse des non linéarités de choc", + INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ), + INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ), + NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), + SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ), + NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ), + ), + RELA_EFFO_DEPL =FACT(statut='f', + fr="Analyse des relationsnon linéaires effort-déplacement", + NOEUD =SIMP(statut='o',typ=no), + NOM_CMP =SIMP(statut='o',typ='TXM' ), + ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 12/09/2006 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. +# +# 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 G8BHHXD X.DESROCHES +POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle", + + regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT', + 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE', + 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL', + 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','INTEGRALE'), + ), + + MASS_INER = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + ORIG_INER = SIMP(statut='f',typ='R',min=3,max=3 ), + ), + b_mass_iner = BLOC(condition = "( MASS_INER != None )", + fr="calcul de la masse, les inerties et le centre de gravité", + regles=(EXCLUS('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + GEOMETRIE = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")), + 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")), + TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE = SIMP(statut='f',typ='I',), + LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), + INST = SIMP(statut='f',typ='R',), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + FREQ = SIMP(statut='f',typ='R',), + LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), + NUME_MODE = SIMP(statut='f',typ='I',), + NOEUD_CMP = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2), + NOM_CAS = SIMP(statut='f',typ='TXM',), + ), + + ENER_POT = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + ), + b_ener_pot = BLOC(condition = "( ENER_POT != None )", + fr="calcul de l'énergie potentielle de déformation", + regles=(UN_PARMI('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + ANGLE = SIMP(statut='f',typ='I',defaut=0), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), + 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',validators=NoRepeat(),max='**'), + ), + + ENER_CIN = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + OPTION = SIMP(statut='f',typ='TXM', + into=("MASS_MECA","MASS_MECA_DIAG"), + defaut="MASS_MECA" ), + 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='**'), + ), + b_ener_cin = BLOC(condition = "( ENER_CIN != None )", + fr="calcul de l'énergie cinétique", + regles=(UN_PARMI('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', + 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + ANGLE = SIMP(statut='f',typ='I',defaut=0), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), + 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',validators=NoRepeat(),max='**'), + ), + + ENER_ELAS = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + ), + b_ener_elas = BLOC(condition = "( ENER_ELAS != None )", + fr="calcul de l'énergie de déformation élastique", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + ENER_TOTALE = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + ), + b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )", + fr="calcul de l'énergie de déformation totale", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + INTEGRALE = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + ), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + WEIBULL = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + OPTION = SIMP(statut='f',typ='TXM', + into=("SIGM_ELGA","SIGM_ELMOY"), + defaut="SIGM_ELGA"), + CORR_PLAST = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + COEF_MULT = SIMP(statut='f',typ='R',defaut=1.), + ), + b_weibull = BLOC(condition = "( WEIBULL != None )", + fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull", + regles=(UN_PARMI('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + RICE_TRACEY = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + OPTION = SIMP(statut='f',typ='TXM', + into=("SIGM_ELGA","SIGM_ELMOY"), + defaut="SIGM_ELGA"), + LOCAL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + ), + b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )", + fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine", + regles=(UN_PARMI('CHAM_GD','RESULTAT'), + EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), + NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + INDIC_ENER = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + ), + b_indic_ener = BLOC(condition = "( INDIC_ENER != None )", + fr="calcul un indicateur global de perte de proportionnalité du chargement", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + INDIC_SEUIL = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + ), + b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )", + fr="calcul un indicateur global de perte de proportionnalité du chargement", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + CHAR_LIMITE = FACT(statut='f',min=0, + CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON") + ), + b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )", + fr="post-traitement du calcul de la charge limite", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CARA_ELEM = SIMP(statut='f',typ=cara_elem), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + 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")), + 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), + INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST = SIMP(statut='f',typ=listr8_sdaster), + ), + + CARA_GEOM = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + 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='**'), + SYME_X = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + SYME_Y = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ORIG_INER = SIMP(statut='f',typ='R',min=2,max=2), + ), + b_cara_geom = BLOC(condition = "( CARA_GEOM != None )", + fr="calcul des caractéristiques géométriques d'un section de poutre", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + ), + + CARA_POUTRE = FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT','GROUP_MA'), + ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + CARA_GEOM = SIMP(statut='o',typ=table_sdaster), + RT = SIMP(statut='f',typ='R'), + LAPL_PHI = SIMP(statut='f',typ=evol_ther), + LAPL_PHI_Y = SIMP(statut='f',typ=evol_ther), + LAPL_PHI_Z = SIMP(statut='f',typ=evol_ther), + LIAISON = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), + LONGUEUR = SIMP(statut='f',typ='R'), + MATERIAU = SIMP(statut='f',typ=mater_sdaster), + OPTION = SIMP(statut='f',typ='TXM', + into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ), + ), + b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )", + fr="calcul des caractéristiques mécaniques d'un section de poutre", + MODELE = SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER = SIMP(statut='f',typ=cham_mater), + CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), + MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), + ), + + AIRE_INTERNE = FACT(statut='f',max='**', + GROUP_MA_BORD = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), + ), + b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )", + fr="calcul de l'aire d'un trou dans un maillage 2D", + MODELE = SIMP(statut='f',typ=modele_sdaster), + ), + + TRAV_EXT = FACT(statut='f',), + 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")), + TOUT_ORDRE = 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 03/01/2006 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. +# +# 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. +# ====================================================================== +POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire", + regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'), + PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'), + UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ), + MOMENT_SPEC_0 =SIMP(statut='f',typ='R'), + MOMENT_SPEC_2 =SIMP(statut='f',typ='R'), + MOMENT_SPEC_4 =SIMP(statut='f',typ='R'), + TABL_POST_ALEA =SIMP(statut='f',typ=table_sdaster), + COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")), + DUREE =SIMP(statut='f',typ='R',defaut= 1.), + CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)), + DOMMAGE =SIMP(statut='o',typ='TXM',into=("WOHLER",)), + MATER =SIMP(statut='o',typ=mater_sdaster), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 03/01/2006 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. +# +# 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. +# ====================================================================== +POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement", + + CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")), + + b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'", + regles=(PRESENT_PRESENT('CORR_KE','MATER'), + PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'), + PRESENT_PRESENT('DOMMAGE','MATER'),), + HISTOIRE = FACT(statut='o', + regles=(UN_PARMI('SIGM','EPSI'),), + SIGM = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), + COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")), + DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), + COEF_MULT = FACT(statut='f', + KT = SIMP(statut='o',typ='R'),), + CORR_KE = SIMP(statut='f',typ='TXM',into=("RCCM",)), + DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN", + "TAHERI_MANSON","TAHERI_MIXTE")), + MATER = SIMP(statut='f',typ=mater_sdaster), + CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")), + TAHERI_NAPPE = SIMP(statut='f',typ=(nappe_sdaster,formule)), + TAHERI_FONC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), + ), + + b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'", + HISTOIRE = FACT(statut='o', + SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), + CRITERE = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")), + DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER",)), + MATER = SIMP(statut='o',typ=mater_sdaster), + COEF_CORR = SIMP(statut='f',typ='R'), + ), + + b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'", + HISTOIRE = FACT(statut='o', + SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + EPSP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), + TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),), + DOMMAGE = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),), + MATER = SIMP(statut='o',typ=mater_sdaster), + CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), + ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 05/03/2007 AUTEUR GALENNE E.GALENNE +# 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 GALENNE E.GALENNE +from Macro.post_k1_k2_k3_ops import post_k1_k2_k3_ops +POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3",op=post_k1_k2_k3_ops,sd_prod=table_sdaster, + fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par extrapolation des sauts de déplacements" + +" sur les lèvres de la fissure", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + + regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), + EXCLUS('FISSURE','FOND_FISS'), + PRESENT_PRESENT('FISSURE','RESULTAT'), + #PRESENT_PRESENT('RESULTAT','FOND_FISS'), + ), + + MODELISATION =SIMP(statut='o',typ='TXM', + into=("3D","AXIS","D_PLAN","C_PLAN"), + fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"), + FOND_FISS =SIMP(statut='f',typ=fond_fiss), + FISSURE =SIMP(statut='f',typ=fiss_xfem), + b_fond_fiss =BLOC (condition="(FOND_FISS!= None)", + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), + TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"), + NB_NOEUD_COUPE= SIMP(statut='f',typ='I'), + NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + SANS_NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ) + ), + b_fissure =BLOC (condition="(FISSURE!= None)", + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), + NB_NOEUD_COUPE = SIMP(statut='f',typ='I' ,defaut=5 ), + DTAN_ORIG = SIMP(statut='f',typ='R',max='**'), + DTAN_EXTR = SIMP(statut='f',typ='R',max='**'), + ), + MATER =SIMP(statut='o',typ=mater_sdaster, + fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli), + fr="Déplacement des noeuds de la lèvre supérieure et inférieure"), + TABL_DEPL_SUP =SIMP(statut='f',typ=table_sdaster, + 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', + 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",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + 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), + 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") ), + ), + 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='o',typ='R',max=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='**'), +) ; +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE +# 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. +# +# +# ====================================================================== +# +POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster, + fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), + MATER_REV = SIMP(statut='o',typ=mater_sdaster), + EPAIS_REV = SIMP(statut='o',typ='R'), + FISSURE = FACT(statut='o', + DECALAGE = SIMP(statut='f',typ='R',defaut=-2.e-04), + PROFONDEUR = SIMP(statut='o',typ='R'), + LONGUEUR = SIMP(statut='o',typ='R'), + ORIENTATION = SIMP(statut='o',typ='TXM', + into=("CIRC","LONGI"),), + ), + K1D = FACT(statut='o',max='**', + TABL_MECA_REV = SIMP(statut='o',typ=(table_sdaster)), + TABL_MECA_MDB = SIMP(statut='o',typ=(table_sdaster)), + TABL_THER = SIMP(statut='o',typ=(table_sdaster)), + INTITULE = SIMP(statut='o',typ='TXM' ), + ), + TITRE = SIMP(statut='f',typ='TXM',max='**'), +); +#& MODIF COMMANDE DATE 03/04/2007 AUTEUR VIVAN 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 PARTIC +# +# 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 +POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, + fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)", + reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + TYPE_RESU_MECA =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ), + +# ====================================================================== + b_evolution =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')", + + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("PM_PB","SN","FATIGUE_ZH210","AMORCAGE") ), + MATER =SIMP(statut='o',typ=mater_sdaster ), + SY_MAX =SIMP(statut='f',typ='R', + fr="limite élastique utilisée pour le calcul du rochet thermique" ), + + TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller", + regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'), + UN_PARMI('TABL_RESU_MECA','TABL_SIGM_THETA'),), + NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1, + fr="nombre d occurences réelles de ce transitoire" ), + TABL_RESU_MECA =SIMP(statut='f',typ=table_sdaster, + fr="relevé des contraintes sur le chemin"), + TABL_SIGM_THER =SIMP(statut='f',typ=table_sdaster, + fr="résultat sous chargement thermique seul" ), + TABL_RESU_PRES =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes sous chargement de pression" ), + TABL_SIGM_THETA =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes a la distance d de la singularité pour chacun des angles THETA" ), + 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_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") ), + ), + ), + ), + +# ====================================================================== + b_unitaire =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')", + + OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + into=("PM_PB","SN","FATIGUE") ), + MATER =SIMP(statut='o',typ=mater_sdaster ), + SY_MAX =SIMP(statut='f',typ='R', + fr="limite élastique utilisée pourle calcul du rochet thermique" ), + TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), + fr="Ke meca seul ou partition mecanique + thermique" ), + CHAR_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", + 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", + FX =SIMP(statut='f',typ='R',fr="effort suivant x", ), + FY =SIMP(statut='f',typ='R',fr="effort suivant y", ), + FZ =SIMP(statut='f',typ='R',fr="effort suivant z", ), + MY =SIMP(statut='o',typ='R',fr="moment suivant y", ), + MZ =SIMP(statut='o',typ='R',fr="moment suivant z", ), + ), + b_2_tenseurs =BLOC( condition = "MX_TUBU != None", + FX_TUBU =SIMP(statut='f',typ='R',fr="effort suivant x, tubulure", ), + FY_TUBU =SIMP(statut='f',typ='R',fr="effort suivant y, tubulure", ), + FZ_TUBU =SIMP(statut='f',typ='R',fr="effort suivant z, tubulure", ), + MY_TUBU =SIMP(statut='o',typ='R',fr="moment suivant y, tubulure", ), + MZ_TUBU =SIMP(statut='o',typ='R',fr="moment suivant z, tubulure", ), + FX_CORP =SIMP(statut='f',typ='R',fr="effort suivant x, corps du piquage", ), + FY_CORP =SIMP(statut='f',typ='R',fr="effort suivant y, corps du piquage", ), + FZ_CORP =SIMP(statut='f',typ='R',fr="effort suivant z, corps du piquage", ), + MX_CORP =SIMP(statut='o',typ='R',fr="moment suivant x, corps du piquage", ), + MY_CORP =SIMP(statut='o',typ='R',fr="moment suivant y, corps du piquage", ), + MZ_CORP =SIMP(statut='o',typ='R',fr="moment suivant z, corps du piquage", ), + ), + + ), + RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires", + regles=(UN_PARMI('TABL_MX','TABL_MX_TUBU'),), + TABL_MX =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MX"), + TABL_MX_TUBU =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MX_TUBU"), + b_1_tenseur =BLOC( condition = "TABL_MX != None", + TABL_FX =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FX"), + TABL_FY =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FY"), + TABL_FZ =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FZ"), + TABL_MY =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MY"), + TABL_MZ =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MZ"), + ), + b_2_tenseurs =BLOC( condition = "TABL_MX_TUBU != None", + TABL_FX_TUBU =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FX_TUBU"), + TABL_FY_TUBU =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FY_TUBU"), + TABL_FZ_TUBU =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FZ_TUBU"), + TABL_MY_TUBU =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MY_TUBU"), + TABL_MZ_TUBU =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MZ_TUBU"), + TABL_FX_CORP =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FX_CORP"), + TABL_FY_CORP =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FY_CORP"), + TABL_FZ_CORP =SIMP(statut='f',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire FZ_CORP"), + TABL_MX_CORP =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MX_CORP"), + TABL_MY_CORP =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MY_CORP"), + TABL_MZ_CORP =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire MZ_CORP"), + ), + TABL_PRES =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes pour chargement unitaire de pression"), + ), + + RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", + NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), + TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des contraintes sous chargement thermique seul" ), + ), + 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='o',typ='I',fr="numéro du groupe de la situation" ), + NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), + 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" ), + PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), + PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), + TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), + TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), + ), + ), +# ====================================================================== + b_tuyauterie =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')", + + OPTION =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), + fr="Ke meca seul ou partition mecanique + thermique" ), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CARA_ELEM =SIMP(statut='o',typ=cara_elem), + ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés", + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('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='**'), + ), + RESU_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", + 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", + fr="extraction d un champ de grandeur", + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',), + 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"), ), + ), + ), + ), + INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes", + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + C1 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"), + K1 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"), + C2 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"), + K2 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"), + C3 =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"), + K3 =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', + fr="groupe(s) de mailles ou sont affectés les indices de contraintes"), + MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**', + fr="liste des mailles ou sont affectés les indices de contraintes"), + b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + ), + TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"), + fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"), + ), + RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", + regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), + NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), + TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des températures sur la section"), + TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster, + fr="table relevé des moyennes sur la section"), + 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='**'), + b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + ), + ), + 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='o',typ='I',fr="numéro du groupe de la situation" ), + NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), + 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" ), + PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), + PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), + TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), + TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), + ), + ), +) ; +#& MODIF COMMANDE DATE 27/11/2006 AUTEUR GNICOLAS G.NICOLAS +# ====================================================================== +# 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 G8BHHXD X.DESROCHES +POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f', + fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)" + +" ou pour les exprimer dans d'autres repères", + docu="U4.81.21",UIinfo={"groupes":("Post traitements",)}, + + ACTION =FACT(statut='o',max='**', + regles=(UN_PARMI('RESULTAT','CHAM_GD'),), + + OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","EXTREMA"),validators=NoRepeat(),max=2), + INTITULE =SIMP(statut='o',typ='TXM'), + + CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster, + cham_elem,),), + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans, + mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, + mult_elas,fourier_elas,fourier_ther,dyna_harmo,acou_harmo)), +# +# 1. Sensibilité +# 1.1. Cas d'un résultat réel +# Cas d'un résultat harmonique dont on veut partie réelle ou imaginaire +# + b_sensibilite =BLOC(condition=" (RESULTAT != None) and \ + ( AsType(RESULTAT) in (evol_elas,evol_ther,evol_noli,dyna_trans, \ + mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, \ + mult_elas,fourier_elas,fourier_ther) or \ + ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C != 'MODULE' ) )", + fr="Définition des paramètres de sensibilité", + ang="Definition of sensitivity parameters", + regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + + ), +# +# 1.2. Cas d'un résultat harmonique dont on veut le module +# + b_sensibilite_harmo =BLOC(condition=" (RESULTAT != None) and \ + ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C == 'MODULE' )", + fr="Définition des paramètres de sensibilité", + ang="Definition of sensitivity parameters", + regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + b_sensibilite_harmo =BLOC(condition=" SENSIBILITE != None", + fr="Option pour la sensibilite", + ang="Option for sensitivity", + SENSIBILITE_OPTION =SIMP(statut='o',typ='TXM',into=("MODULE_SENSIBILITE","SENSIBILITE_MODULE",), + fr="Option : module de la dérivée ou dérivée du module", + ang="Option : modulus of derivative or derivative of modulus"), + ), + ), + + b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE', + 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ), + NOM_CHAM =SIMP(statut='o',typ='TXM' ), + 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), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_MODE =SIMP(statut='f',typ=listis_sdaster), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + 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")), + ), + + b_extrema =BLOC(condition="OPERATION == 'EXTREMA'", + fr="recherche de MIN MAX", + regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), + 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='**'), + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), + + b_autre =BLOC(condition="OPERATION != 'EXTREMA'", + fr="extraction et moyenne", + regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'), + EXCLUS('CHEMIN','GROUP_NO'), + EXCLUS('CHEMIN','NOEUD'), + PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'), + UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'), + PRESENT_PRESENT('TRAC_DIR','DIRECTION'), + ENSEMBLE('MOMENT','POINT'), + PRESENT_PRESENT('MOMENT','RESULTANTE'), + PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), + EXCLUS('TRAC_DIR','TRAC_NOR'), + PRESENT_PRESENT('ORIGINE','AXE_Z'),), + + CHEMIN =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ), + 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='**'), + + TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)), + ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ), + RESULTANTE =SIMP(statut='f',typ='TXM',max='**'), + + MOMENT =SIMP(statut='f',typ='TXM',max='**'), + POINT =SIMP(statut='f',typ='R',max='**'), + + REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", + into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), + ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), + ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), + AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), + + TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)), + TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)), + DIRECTION =SIMP(statut='f',typ='R',max='**'), + + VECT_Y =SIMP(statut='f',typ='R',max='**'), + MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + ), + + FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")), + + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 03/01/2006 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. +# +# 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. +# ====================================================================== +POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f', + UIinfo={"groupes":("Post traitements",)}, + fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure", + regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'), + PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'), + PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),), + TUBE_NEUF =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ETAT_INIT =FACT(statut='f', + TABL_USURE =SIMP(statut='f',typ=table_sdaster), + INST_INIT =SIMP(statut='f',typ='R'), + ), + RESU_GENE =SIMP(statut='f',typ=tran_gene), + NOEUD =SIMP(statut='f',typ=no,), + INST_INIT =SIMP(statut='f',typ='R',defaut=-1.0E+0), + INST_FIN =SIMP(statut='f',typ='R'), + NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), + PUIS_USURE =SIMP(statut='f',typ='R'), + LOI_USURE =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")), + b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'", + regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), + EXCLUS('MATER_USURE','OBSTACLE'), + EXCLUS('MOBILE','USURE_OBST'),), + MOBILE =FACT(statut='f', + COEF_USURE =SIMP(statut='o',typ='R'), + ), + OBSTACLE =FACT(statut='f', + COEF_USURE =SIMP(statut='o',typ='R'), + ), + SECTEUR =FACT(statut='f',max='**', + CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", + "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", + "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), + COEF_USUR_MOBILE=SIMP(statut='f',typ='R'), + COEF_USUR_OBST =SIMP(statut='f',typ='R'), + ANGL_INIT =SIMP(statut='f',typ='R'), + ANGL_FIN =SIMP(statut='f',typ='R'), + ), + MATER_USURE =SIMP(statut='f',typ='TXM'), + USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), + ), + b_kwu_epri =BLOC(condition = "LOI_USURE == 'KWU_EPRI'", + regles=(UN_PARMI('MOBILE','MATER_USURE'), + EXCLUS('MATER_USURE','OBSTACLE'), + EXCLUS('MOBILE','USURE_OBST'),), + MOBILE =FACT(statut='f', + COEF_FNOR =SIMP(statut='f',typ='R'), + COEF_VTAN =SIMP(statut='f',typ='R'), + COEF_USURE =SIMP(statut='f',typ='R'), + COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), + COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), + ), + OBSTACLE =FACT(statut='f', + COEF_FNOR =SIMP(statut='f',typ='R' ), + COEF_VTAN =SIMP(statut='f',typ='R' ), + COEF_USURE =SIMP(statut='o',typ='R'), + COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), + COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), + ), + MATER_USURE =SIMP(statut='f',typ='TXM'), + USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), + FNOR_MAXI =SIMP(statut='f',typ='R' ), + VTAN_MAXI =SIMP(statut='f',typ='R' ), + ), + b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'", + regles=(UN_PARMI('MOBILE','MATER_USURE'), + EXCLUS('MATER_USURE','OBSTACLE'), + EXCLUS('MOBILE','USURE_OBST'),), + MOBILE =FACT(statut='f', + COEF_USURE =SIMP(statut='f',typ='R',defaut=1.0E-13), + COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), + COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), + COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), + ), + OBSTACLE =FACT(statut='f', + COEF_USURE =SIMP(statut='o',typ='R',defaut=1.0E-13), + COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), + COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), + COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), + ), + MATER_USURE =SIMP(statut='f',typ='TXM'), + USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), + ), + b_tube_neuf =BLOC(condition = "TUBE_NEUF == 'OUI'", + TABL_USURE =SIMP(statut='o',typ=table_sdaster), + INST =SIMP(statut='f',typ='R'), + ), + CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", + "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", + "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), + RAYON_MOBILE =SIMP(statut='f',typ='R'), + RAYON_OBST =SIMP(statut='f',typ='R'), + LARGEUR_OBST =SIMP(statut='f',typ='R'), + ANGL_INCLI =SIMP(statut='f',typ='R'), + ANGL_ISTHME =SIMP(statut='f',typ='R'), + ANGL_IMPACT =SIMP(statut='f',typ='R'), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + COEF_INST =SIMP(statut='f',typ='R',defaut=1.0E+0), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + fr="Déterminer l'état adapté ou accommodé par la méthode de Zarka-Casier d'une structure sous" + +" chargement cyclique élastique affine ou non", + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_meca), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)), + ), + EVOL_ELAS =SIMP(statut='o',typ=evol_elas), + b_evol_elas =BLOC(condition="EVOL_ELAS != None", + regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + ), + TEMP_ZAC =SIMP(statut='f',typ='R',defaut=0.0E+0), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + 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")), + +) ; +#& MODIF COMMANDE DATE 19/02/2007 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. +# ====================================================================== +POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n', + fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX ou HDF de sa base globale", + sd_prod = ops.POURSUITE, + UIinfo={"groupes":("Gestion du travail",)}, + op_init = ops.POURSUITE_context,fichier_ini = 1, + FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', + typ='TXM',defaut="NON",into=("OUI","NON",) ), + PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', + into=("OUI","NON"),defaut="OUI"), + IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", + statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), + BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", + statut='f',min=1,max=2, + FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM'), + TITRE =SIMP(statut='f',typ='TXM'), + CAS =SIMP(statut='f',typ='TXM'), + NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), + LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), + LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), + ), + IMPRESSION =FACT(statut='f',min=1,max=3, + FICHIER =SIMP(statut='o',typ='TXM'), + UNITE =SIMP(statut='o',typ='I'), + ), + CATALOGUE =FACT(statut='f',min=1,max=10, + FICHIER =SIMP(statut='o',typ='TXM'), + TITRE =SIMP(statut='f',typ='TXM'), + UNITE =SIMP(statut='f',typ='I'), + ), + 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'), + ), + DEBUG =FACT(fr="option de déboggage reservée aux développeurs", + statut='f',min=1,max=1, + JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", + statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), + SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", + statut='f',typ='TXM',into=('OUI','NON')), + 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=('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'), + 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'), + ), + RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1, + regles=(EXCLUS('VALE','POURCENTAGE'),), + VALE =SIMP(statut='f',typ='I',val_min=0), + POURCENTAGE =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0), +# valeur en pourcentage du temps maximum bornée à 180 secondes + BORNE =SIMP(statut='f',typ='I',val_min=0,defaut=180) + ), + CODE =FACT("définition d un nom pour l'esemble d'une étude", + statut='f',min=1,max=1, + NOM =SIMP(statut='o',typ='TXM'), + UNITE =SIMP(statut='f',typ='I',defaut=15), + ), +) ; +#& MODIF COMMANDE DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 MCOURTOI M.COURTOIS + +from Macro.test_fichier_ops import test_fichier_ops + +TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, + UIinfo={"groupes":("Impression",)}, + fr="Tester la non régression de fichiers produits par des commandes aster", + FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), + 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' ), + REFERENCE =SIMP(statut='f',typ='TXM', + into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), + + b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", + VERSION =SIMP(statut='f',typ='TXM' ), + ), + + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +PRE_GIBI=PROC(nom="PRE_GIBI",op=49, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Conversion d'un fichier de maillage GIBI au format Aster", + UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19), + UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== + +PRE_GMSH=PROC(nom="PRE_GMSH",op=47, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Conversion d'un fichier de maillage GMSH au format Aster", + UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19), + UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, + UIinfo={"groupes":("Gestion du travail",)}, + fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster", + UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), + UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), + CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), +) ; +#& MODIF COMMANDE DATE 15/05/2006 AUTEUR ASSIRE A.ASSIRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 Macro.stanley_ops import stanley_ops + +STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None, + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + fr="Outil de post-traitement interactif Stanley ", + RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,mode_stat,dyna_harmo,dyna_trans) ), + MODELE =SIMP(statut='f',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='f',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + DISPLAY =SIMP(statut='f',typ='TXM'), + UNITE_VALIDATION=SIMP(statut='c',typ='I',val_min=10,val_max=90, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"), + +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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. +# ====================================================================== + +PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster, + fr="Effectuer le produit d'une matrice par un vecteur", + reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 12/09/2006 AUTEUR VABHHTS 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. +# +# 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 VABHHTS J.PELLET +def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ): + if AsType(RESULTAT) == evol_ther : return evol_ther + 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) == dyna_harmo : return dyna_harmo + 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 + if CHAM_NO_REFE != None : return cham_no_sdaster + raise AsException("type de concept resultat non prevu") + +PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', + UIinfo={"groupes":("Résultats et champs",)}, + fr="Projeter les champs aux noeuds d'une SD résultat de type evol_xxx sur un autre maillage", +# + METHODE =SIMP(statut='f',typ='TXM',defaut="ELEM", + into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ), + b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')", + fr="Lissage d'un nuage de points", + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), + CHAM_NO_REFE =SIMP(statut='o',typ=cham_no_sdaster), + ), + b_elem =BLOC(condition="METHODE=='ELEM'", + fr="Utilisation des fonctions de forme du maillage initial", + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), + EXCLUS('TOUT_CHAM','NOM_CHAM',), + CONCEPT_SENSIBLE('SEPARE'), + REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), + RESULTAT =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,dyna_trans,evol_char,dyna_harmo, + mode_meca,mode_stat_depl,base_modale) ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters",), + MODELE_1 =SIMP(statut='o',typ=modele_sdaster), + MODELE_2 =SIMP(statut='o',typ=modele_sdaster), + + NOM_PARA =SIMP(statut='f',typ='TXM', max='**'), + TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + +# POUR IMPOSER LA NUMEROTATION DES DDLS : +# ------------------------------------------------------------------ + NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), + + + 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), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), + NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), + + + CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), + DISTANCE_MAX =SIMP(statut='f',typ='R', + fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), + TRANSF_GEOM_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3, + fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ + " aux noeuds du MODELE_2 avant la projection."), + + ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + + TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), + fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), + + PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", + fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger" + +" les champs par zéro la ou la projection ne donne pas de valeurs."), + + ), + + VIS_A_VIS =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), + AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), + TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), + TRANSF_GEOM_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3, + fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ + " aux noeuds du MODELE_2 avant la projection."), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args): + if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_gene_r + if AsType(MATR_ASSE_GENE) == matr_asse_gene_r : return matr_asse_gene_r + if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_gene_c + if AsType(MATR_ASSE_GENE) == matr_asse_gene_c : return matr_asse_gene_c + raise AsException("type de concept resultat non prevu") + +PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, + fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), + BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), + MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ), +) ; + +#& MODIF COMMANDE DATE 19/06/2006 AUTEUR VABHHTS 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. +# +# 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 proj_mesu_modal_prod(MODELE_MESURE,**args): + vale=MODELE_MESURE['MESURE'] + 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) == base_modale : return mode_gene + raise AsException("type de concept resultat non prevu") + +PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, + sd_prod=proj_mesu_modal_prod, + reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection", + + MODELE_CALCUL =FACT(statut='o', + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + BASE =SIMP(statut='o',typ=(mode_meca,base_modale,) ), + ), + MODELE_MESURE =FACT(statut='o', + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ), + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ), + ), + CORR_MANU =FACT(statut='f',max='**', + regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),), + NOEU_CALCUL =SIMP(statut='f',typ=no), + NOEU_MESURE =SIMP(statut='f',typ=no), + ), + NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), + RESOLUTION =FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ), + b_svd =BLOC(condition="METHODE=='SVD'", + EPS=SIMP(statut='f',typ='R',defaut=0. ), + ), + REGUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ), + b_regul =BLOC(condition="REGUL!='NON'", + regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),), + COEF_PONDER =SIMP(statut='f',typ='R',defaut=0. ,max='**' ), + COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + ), + ), + + ); +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_fonction,reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ", + regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'), + ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),), + SPEC_TURB =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ), + TOUT_CMP =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), + FREQ_INIT =SIMP(statut='f',typ='R',val_min=0.E+0 ), + FREQ_FIN =SIMP(statut='f',typ='R',val_min=0.E+0 ), + NB_POIN =SIMP(statut='f',typ='I' ), + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")), + GROUP_MA =SIMP(statut='f',typ=grma), +# Quel est le type attendu derriere MODELE_INTERFACE + MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster), + VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), + VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ), + ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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. +# ====================================================================== + +PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, + fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), + BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), + VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), + VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ), +) ; +#& MODIF COMMANDE DATE 03/01/2006 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. +# +# 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. +# ====================================================================== +RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster, + fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n', + UIinfo={"groupes":("Post traitements",)}, + LIST_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ), + RESU =FACT(statut='o',max='**', + regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',), + AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),), + EVOL_NOLI =SIMP(statut='o',typ=(evol_noli) ), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), + TEMPE =SIMP(statut='f',typ='R' ), + LIST_INST_RUPT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), + 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='**' ), + LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), + 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='**'), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.E0 ), + ), + OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ), + CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ), + INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), + ) ; +#& MODIF COMMANDE DATE 07/11/2006 AUTEUR DURAND C.DURAND +# 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 MCOURTOI M.COURTOIS +def recu_fonction_prod(RESULTAT=None,TABLE=None,RESU_GENE=None, + BASE_ELAS_FLUI=None,CHAM_GD=None,NAPPE=None, + NOM_PARA_TABL=None,**args): + if AsType(RESULTAT) == dyna_harmo or \ + AsType(RESU_GENE) == harm_gene or \ + (TABLE != None and NOM_PARA_TABL == "FONCTION_C"): + return fonction_c + else: + return fonction_sdaster + +RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, + fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre", + reentrant='f', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','NAPPE'),), + + CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster, + cham_elem,),), + RESULTAT =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ), + RESU_GENE =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)), + TABLE =SIMP(statut='f',typ=(table_sdaster,table_fonction)), + BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster), + NAPPE =SIMP(statut='f',typ=nappe_sdaster), + +# ======= SENSIBILITE ================================================= + b_sensibilite =BLOC(condition="RESULTAT != None", + fr="Définition des paramètres de sensibilité", + ang="Definition of sensitivity parameters", + regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), + DERIVABLE('RESULTAT'),), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"),), +# ======= ACCES A LA SD RESULTAT ================================================= + b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)", + fr="acces a une SD résultat", +# on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran + 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_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 ), + FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + 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") ), + INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), + ), + ), +# ======= BASE_ELAS_FLUI ================================================= + b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None", + fr="Récupération de la fonction à partir d un concept melasflu", + regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),), + TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), + NUME_MODE =SIMP(statut='o',typ='I' ), + PARA_X =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ), + PARA_Y =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ), + ), + +# ======= TABLE ================================================= + b_table = BLOC ( condition = "TABLE != None", + fr="Récupération de la fonction à partir d un concept table", + regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'), + PRESENT_PRESENT('PARA_X','PARA_Y'),), + PARA_X = SIMP(statut='f',typ='TXM', + fr="1ère colonne de la table qui définit la fonction à récupérer", ), + PARA_Y = SIMP(statut='f',typ='TXM', + fr="2ème colonne de la table qui définit la fonction à récupérer", ), + #b_tabl_fonc = BLOC(condition = "AsType(TABLE) == table_fonction", + NOM_PARA_TABL = SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C"), + fr="Nom du paramètre de la table contenant la fonction" ), + #), + + FILTRE = FACT(statut='f',max='**', + NOM_PARA =SIMP(statut='o',typ='TXM' ), + CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", + into=("EQ","LT","GT","NE","LE","GE","VIDE", + "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), + b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE =SIMP(statut='f',typ='R' ), + VALE_I =SIMP(statut='f',typ='I' ), + VALE_C =SIMP(statut='f',typ='C' ), + VALE_K =SIMP(statut='f',typ='TXM' ),), + + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + ), + +# ======= RESULTAT ================================================= + b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT", + regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), + b_cham = BLOC ( condition = "NOM_CHAM != None", + regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'), + PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'), + PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'), + EXCLUS('GROUP_MA','MAILLE'), + EXCLUS('GROUP_NO','NOEUD'),), + NOM_CMP =SIMP(statut='o',typ='TXM' ), + MAILLE =SIMP(statut='f',typ=ma), + GROUP_MA =SIMP(statut='f',typ=grma), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + POINT =SIMP(statut='f',typ='I' ), + SOUS_POINT =SIMP(statut='f',typ='I' ), + ), + ), + +# ======= RESU_GENE ================================================= + b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene", + fr="Récupération d'une fonction à partir d un concept TRAN_GENE", + regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), + NOEUD_CHOC =SIMP(statut='f',typ=no), + GROUP_NO_CHOC =SIMP(statut='f',typ=grno), + b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')", + regles=(UN_PARMI('GROUP_NO','NOEUD'), + EXCLUS('MULT_APPUI','CORR_STAT'),), + NOM_CMP =SIMP(statut='o',typ='TXM' ), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), + CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)), + ), + b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)", + regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),), + PARA_X =SIMP(statut='o',typ='TXM', + into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ), + PARA_Y =SIMP(statut='o',typ='TXM', + into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ), + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + INTITULE =SIMP(statut='f',typ='TXM' ), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + ), + ), + b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene", + fr="Récupération d'une fonction à partir d un concept HARM_GENE", + regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), + b_cham = BLOC ( condition = "NOM_CHAM != None", + regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),), + NUME_CMP_GENE =SIMP(statut='f',typ='I' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + b_cmp = BLOC ( condition = "NOM_CMP != None", + regles=(UN_PARMI('NOEUD','GROUP_NO'),), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + ), + ), + ), + b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene", + fr="Récupération d'une fonction à partir d un concept MODE_GENE", + regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), + b_cham = BLOC ( condition = "NOM_CHAM != None", + regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),), + NUME_CMP_GENE =SIMP(statut='f',typ='I' ), + NOM_CMP =SIMP(statut='f',typ='TXM' ), + b_cmp = BLOC ( condition = "NOM_CMP != None", + regles=(UN_PARMI('NOEUD','GROUP_NO'), + UN_PARMI('SQUELETTE','SOUS_STRUC'),), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + SQUELETTE =SIMP(statut='f',typ=squelette ), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + ), + ), + ), + +# ======= CHAM_GD ================================================= + b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD", + regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'), + PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'), + PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'), + EXCLUS('GROUP_MA','MAILLE'), + EXCLUS('GROUP_NO','NOEUD'),), + NOM_CMP =SIMP(statut='o',typ='TXM' ), + MAILLE =SIMP(statut='f',typ=ma), + GROUP_MA =SIMP(statut='f',typ=grma), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + POINT =SIMP(statut='f',typ='I' ), + SOUS_POINT =SIMP(statut='f',typ='I' ), + ), + +# ======= NAPPE ================================================= + b_nappe = BLOC ( condition = "(NAPPE != None)", fr="Opérandes en cas de NAPPE", + VALE_PARA_FONC =SIMP(statut='o',typ='R' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + ), + +# ======= SURCHARGE DES ATTRIBUTS ================================================= + NOM_PARA =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ), + NOM_RESU =SIMP(statut='f',typ='TXM' ), + INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), + PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), + + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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. +# ====================================================================== +RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats" + +" en coordonnées généralisées", + RESU_GENE =SIMP(statut='o',typ=tran_gene ), + 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 ), +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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 VABHHTS J.PELLET +RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster, + fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue" + +" dans une autre SD pour celles qui le permettent", + UIinfo={"groupes":("Résultats et champs",)},reentrant='n', + CO =SIMP(statut='o',typ=assd), + regles=(UN_PARMI('NOM_TABLE','NOM_PARA')), + NOM_TABLE =SIMP(statut='f',typ='TXM' ), + NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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. +# ====================================================================== + +RESO_GRAD=OPER(nom="RESO_GRAD",op= 84,sd_prod=cham_no_sdaster, + fr="Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, + MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), + CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), + CHAM_CINE =SIMP(statut='f',typ=cham_no_sdaster), + MATR_FACT =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") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 21/02/2006 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. +# +# 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 VABHHTS J.PELLET + +RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=cham_no_sdaster,reentrant='f', + fr="Résoudre par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT", + UIinfo={"groupes":("Résolution",)}, + MATR_FACT =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), + # RESI_RELA : précision utilisée si SOLVEUR=MUMPS + RESI_RELA =SIMP(statut='f',typ='R',defaut=1.e-6), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 12/03/2007 AUTEUR DEVESA G.DEVESA +# 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 ): + 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", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(UN_PARMI('RESU_GENE','RESU_PHYS','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'), + 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) ), + + 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='**' ), + NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), + 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 ), + 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 ), + 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 ), + + 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 ), + RESULTAT2 =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char, + mode_meca,mode_stat_depl,base_modale) ), + ), + + SQUELETTE =SIMP(statut='f',typ=squelette ), + SOUS_STRUC =SIMP(statut='f',typ='TXM' ), + SECTEUR =SIMP(statut='f',typ='I',defaut= 1 ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_fonction, + reentrant='n', + fr="Calculer la réponse d'une structure dans la base physique", + UIinfo={"groupes":("Matrices/vecteurs",)}, + regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), + BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), + MODE_MECA =SIMP(statut='f',typ=mode_meca ), + BANDE =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2 ), + NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**' ), + INTE_SPEC_GENE =SIMP(statut='o',typ=table_fonction), + NOEUD =SIMP(statut='o',typ=no ,max='**'), + MAILLE =SIMP(statut='f',typ=ma ,max='**'), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7, + into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL", + "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ), + EXCIT =FACT(statut='f', + NOEUD =SIMP(statut='o',typ=no ,max='**'), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), + ), + MOUVEMENT =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ), + OPTION =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG", + into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 12/03/2007 AUTEUR DEVESA G.DEVESA +# 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 MABBAS 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", + reentrant='f', + UIinfo={"groupes":("Résolution",)}, + regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'), + CONCEPT_SENSIBLE('ENSEMBLE'),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + 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)), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), + ), + SOUS_STRUC =FACT(statut='f',min=01,max='**', + regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), + CAS_CHARGE =SIMP(statut='o',typ='TXM' ), + TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + COMP_INCR =C_COMP_INCR(), + COMP_ELAS =FACT(statut='f',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")), + 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",) ), + 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='**'), + ), + b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", + ETAT_INIT =FACT(statut='o', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), + 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") ), + NUME_DIDI =SIMP(statut='f',typ='I'), + INST_ETAT_INIT =SIMP(statut='f',typ='R'), + ),), + b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), + 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") ), + NUME_DIDI =SIMP(statut='f',typ='I'), + INST_ETAT_INIT =SIMP(statut='f',typ='R'), + ),), + INCREMENT =FACT(statut='o', + 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 + 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=("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), + EVOL_NOLI =SIMP(statut='f',typ=evol_noli), + ), + RECH_LINEAIRE =FACT(statut='f', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + 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), + RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), + RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.), + ), + PILOTAGE =FACT(statut='f', + regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), + ETA_PILO_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_MIN =SIMP(statut='f',typ='R'), + ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), + PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), + 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='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + ), + 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'), + FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD2_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), + 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") ), + 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","DECOUPE") ), + ), + 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 ), + ), + 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")), + SCALING =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,), + ), + 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") ), + RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.), + NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), + TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), + NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), + NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0), + PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), + SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), + VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), + TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), + INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'), + STOCKAGE_GI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ), + 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") ), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + ), + ARCHIVAGE =FACT(statut='f', + regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), + EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), + 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), + 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",)), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA", + "VARI_NON_LOCAL","LANL_ELGA")), + ), + OBSERVATION =FACT(statut='f',max='**', + NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), + SUIVI_DDL =SIMP(statut='f',typ='TXM',defaut="NON",max=1,into=("OUI","NON")), + b_suivi =BLOC(condition = "SUIVI_DDL == 'OUI' ", + regles=(UN_PARMI('NOEUD','MAILLE','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'), + PRESENT_PRESENT('MAILLE','POINT'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, + into=("DEPL","VITE","ACCE","SIEF_ELGA", + "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), + VALE_MAX =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ), + VALE_MIN =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),), + b_non_suivi =BLOC(condition = "SUIVI_DDL == 'NON' ", + regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),PRESENT_PRESENT('MAILLE','POINT'),), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA", + "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU","VALE_CONT")), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),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") ),), + ), + + AFFICHAGE = FACT(statut='f',max=16, + + UNITE = SIMP(statut='f',typ='I',val_min=1), + + LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), + PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), + LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), + + NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", + into=("STANDARD","MINIMUM", + "ITER_NEWT", + "INCR_TPS", + "RESI_RELA","RELA_NOEU", + "RESI_MAXI","MAXI_NOEU", + "RESI_REFE","REFE_NOEU", + "RELI_ITER","RELI_COEF", + "PILO_PARA", + "LAGR_ECAR","LAGR_INCR","LAGR_ITER", + "MATR_ASSE", + "ITER_DEBO", + "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", + "CTCC_GEOM","CTCC_FROT","CTCC_CONT", + "SUIV_1","SUIV_2","SUIV_3","SUIV_4","ITER_FETI", + ), + ), + b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ + NOM_COLONNE == 'RESI_MAXI' or\ + NOM_COLONNE == 'RESI_REFE' or\ + NOM_COLONNE == 'CTCD_GEOM' or\ + NOM_COLONNE == 'STANDARD' ", + INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + ), + ), + + + + CRIT_FLAMB =FACT(statut='f',min=1,max=1, + NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), + CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10), + fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité", + ang="List of sensitivity parameters"), + SOLV_NON_LOCAL =FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), + 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_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")), + SCALING =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,), + ), + 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 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + ), + LAGR_NON_LOCAL =FACT(statut='f', + ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), + RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), + RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), + R =SIMP(statut='f',typ='R',defaut= 1000.), + ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), + ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + ) + +#& MODIF COMMANDE DATE 17/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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 MCOURTOI M.COURTOIS +TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135, + fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence", + UIinfo={"groupes":("Impression",)}, + TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + VALEUR =FACT(statut='f',max='**', + fr="Tester la valeur d une fonction ou d une nappe", + regles=(UN_PARMI('VALE_REFE','VALE_REFE_C',), + DERIVABLE('FONCTION'),), + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), + NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2), + VALE_PARA =SIMP(statut='o',typ='R' ,validators=NoRepeat(),max=2), + VALE_REFE =SIMP(statut='f',typ='R',max='**' ), + VALE_REFE_C =SIMP(statut='f',typ='C',max='**' ), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", + defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", + defaut= 1.E-3 ), + REFERENCE =SIMP(statut='f',typ='TXM', + into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), + b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", + VERSION =SIMP(statut='f',typ='TXM' ), + ), + ), + ATTRIBUT =FACT(statut='f',max='**', + fr="Tester la valeur d un attribut d une fonction ou d''une nappe", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), + PARA =SIMP(statut='f',typ='R' ), + CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ATTR =SIMP(statut='o',typ='TXM', + into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL", + "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ), + ATTR_REFE =SIMP(statut='o',typ='TXM' ), + REFERENCE =SIMP(statut='f',typ='TXM', + into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), + b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", + VERSION =SIMP(statut='f',typ='TXM' ), + ), + ), + TABL_INTSP =FACT(statut='f',max='**', + fr="Tester la valeur d une fonction contenue dans une table interspectrale", + regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), + INTE_SPEC =SIMP(statut='o',typ=table_fonction), + NOEUD_I =SIMP(statut='f',typ=no), + NUME_ORDRE_I =SIMP(statut='f',typ='I' ), + b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", + NUME_ORDRE_J =SIMP(statut='o',typ='I' ), + ), + b_noeud_i = BLOC (condition = "NOEUD_I != None", + NOEUD_J =SIMP(statut='o',typ=no), + NOM_CMP_I =SIMP(statut='o',typ='TXM' ), + NOM_CMP_J =SIMP(statut='o',typ='TXM' ), + ), + NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), + VALE_PARA =SIMP(statut='o',typ='R' ), + VALE_REFE_C =SIMP(statut='o',typ='C',max='**' ), + CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", + defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", + defaut= 1.E-3 ), + REFERENCE =SIMP(statut='f',typ='TXM', + into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), + b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", + VERSION =SIMP(statut='f',typ='TXM' ), + ), + ), +) ; +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR REZETTE C.REZETTE +# RESPONSABLE VABHHTS 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. +# +# 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. +# +# +# ====================================================================== +TEST_RESU=PROC(nom="TEST_RESU",op=23, + UIinfo={"groupes":("Impression",)}, + fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence", + regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')), + + CHAM_NO =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), + EXCLUS('NOEUD','GROUP_NO'), + PRESENT_PRESENT('NOEUD','NOM_CMP'), + PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'), + UN_PARMI('VALE','VALE_I','VALE_C'),), + CHAM_GD =SIMP(statut='o',typ=cham_no_sdaster), + NOEUD =SIMP(statut='f',typ=no ), + GROUP_NO =SIMP(statut='f',typ=grno ), + NOM_CMP =SIMP(statut='f',typ='TXM'), + TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), + VALE =SIMP(statut='f',typ='R',max='**'), + VALE_I =SIMP(statut='f',typ='I',max='**'), + VALE_C =SIMP(statut='f',typ='C',max='**'), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), + REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", + "NON_REGRESSION","AUTRE_ASTER")), + VERSION =SIMP(statut='f',typ='TXM'), + ), + + CHAM_ELEM =FACT(statut='f',max='**', + regles=(UN_PARMI('MAILLE','TYPE_TEST',), + EXCLUS('NOEUD','GROUP_NO','POINT'), + PRESENT_PRESENT('NOEUD','NOM_CMP'), + PRESENT_PRESENT('GROUP_NO','NOM_CMP'), + PRESENT_PRESENT('POINT','NOM_CMP'), + UN_PARMI('VALE','VALE_I','VALE_C'), ), + CHAM_GD =SIMP(statut='o',typ=cham_elem), + MAILLE =SIMP(statut='f',typ=ma), + POINT =SIMP(statut='f',typ='I' ), + SOUS_POINT =SIMP(statut='f',typ='I'), + NOEUD =SIMP(statut='f',typ=no), + GROUP_NO =SIMP(statut='f',typ=grno), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), + VALE =SIMP(statut='f',typ='R',max='**' ), + VALE_I =SIMP(statut='f',typ='I',max='**' ), + VALE_C =SIMP(statut='f',typ='C',max='**' ), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", + "NON_REGRESSION","AUTRE_ASTER") ), + VERSION =SIMP(statut='f',typ='TXM' ), + ), + + RESU =FACT(statut='f',max='**', + regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'), + UN_PARMI('NOM_CHAM','PARA'), + PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'), + PRESENT_PRESENT('NOM_CMP','NOM_CHAM'), + EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'), + PRESENT_PRESENT('NOEUD','NOM_CMP'), + PRESENT_PRESENT('GROUP_NO','NOM_CMP'), + PRESENT_PRESENT('POINT','NOM_CMP'), + UN_PARMI('VALE','VALE_I','VALE_C'), + DERIVABLE('RESULTAT'),), + RESULTAT =SIMP(statut='o',typ=resultat_sdaster), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), + NUME_ORDRE =SIMP(statut='f',typ='I'), + INST =SIMP(statut='f',typ='R'), + FREQ =SIMP(statut='f',typ='R'), + NUME_MODE =SIMP(statut='f',typ='I'), + NOEUD_CMP =SIMP(statut='f',typ='TXM',min=2,max=2), + NOM_CAS =SIMP(statut='f',typ='TXM'), + ANGL =SIMP(statut='f',typ='R'), + PARA =SIMP(statut='f',typ='TXM'), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), + MAILLE =SIMP(statut='f',typ=ma ,max='**'), + NOEUD =SIMP(statut='f',typ=no ,max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), + POINT =SIMP(statut='f',typ='I'), + SOUS_POINT =SIMP(statut='f',typ='I'), + TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), + VALE =SIMP(statut='f',typ='R',max='**'), + VALE_I =SIMP(statut='f',typ='I',max='**'), + VALE_C =SIMP(statut='f',typ='C',max='**'), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), + PRECISION =SIMP(statut='f',typ='R',max=2), + REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", + "NON_REGRESSION","AUTRE_ASTER",) ), + VERSION =SIMP(statut='f',typ='TXM' ), + ), + + GENE =FACT(statut='f',max='**', + regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,), + RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), + b_vect_asse =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene", + NUME_CMP_GENE =SIMP(statut='o',typ='I'), + ), + b_mode =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)", + regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'), + UN_PARMI('NOM_CHAM','PARA'), + PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), + NUME_CMP_GENE =SIMP(statut='f',typ='I'), + PARA =SIMP(statut='f',typ='TXM'), + NUME_ORDRE =SIMP(statut='f',typ='I'), + NUME_MODE =SIMP(statut='f',typ='I'), + FREQ =SIMP(statut='f',typ='R'), + ), + b_tran =BLOC(condition = "AsType(RESU_GENE) == tran_gene", + regles=(UN_PARMI('NUME_ORDRE','INST') ,), + NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), + NUME_CMP_GENE =SIMP(statut='o',typ='I'), + NUME_ORDRE =SIMP(statut='f',typ='I'), + INST =SIMP(statut='f',typ='R'), + ), + VALE =SIMP(statut='f',typ='R',max='**'), + VALE_I =SIMP(statut='f',typ='I',max='**'), + VALE_C =SIMP(statut='f',typ='C',max='**'), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), + PRECISION =SIMP(statut='f',typ='R',max=2), + REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", + "NON_REGRESSION","AUTRE_ASTER",) ), + VERSION =SIMP(statut='f',typ='TXM' ), + ), + + OBJET =FACT(statut='f',max='**', + regles=(UN_PARMI('S_I','S_R','RESUME',), + UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),), + NOM =SIMP(statut='o',typ='TXM'), + S_R =SIMP(statut='f',typ='R'), + S_I =SIMP(statut='f',typ='I'), + RESUME =SIMP(statut='f',typ='I'), + VALE =SIMP(statut='f',typ='R'), + VALE_I =SIMP(statut='f',typ='I'), + VALE_C =SIMP(statut='f',typ='C'), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), + PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), + REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", + "NON_REGRESSION","AUTRE_ASTER",) ), + VERSION =SIMP(statut='f',typ='TXM' ), + ), +) ; +#& MODIF COMMANDE DATE 10/10/2006 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. +# +# 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 VABHHTS J.PELLET +TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, + UIinfo={"groupes":("Impression",)}, + fr="Tester une cellule ou une colonne d'une table", + regles=(UN_PARMI('VALE','VALE_I','VALE_C', ), + DERIVABLE('TABLE'),), +# concept table_sdaster à tester + TABLE =SIMP(statut='o',typ=table_sdaster), + + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), + fr="Paramètre de sensibilité.", + ang="Sensitivity parameter"), + FILTRE =FACT(statut='f',max='**', + NOM_PARA =SIMP(statut='o',typ='TXM' ), + CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", + into=("EQ","LT","GT","NE","LE","GE","VIDE", + "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), + b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE =SIMP(statut='f',typ='R',), + VALE_I =SIMP(statut='f',typ='I',), + VALE_C =SIMP(statut='f',typ='C',), + VALE_K =SIMP(statut='f',typ='TXM' ),), + + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + ), + TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), + NOM_PARA =SIMP(statut='o',typ='TXM' ), + VALE =SIMP(statut='f',typ='R',max='**' ), + VALE_I =SIMP(statut='f',typ='I',max='**' ), + VALE_C =SIMP(statut='f',typ='C',max='**' ), + VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ), + REFERENCE =SIMP(statut='f',typ='TXM', + into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), + b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", + VERSION =SIMP(statut='f',typ='TXM' ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), + ), +) ; +#& MODIF COMMANDE DATE 13/12/2006 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. +# +# 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. +# ====================================================================== +THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', + UIinfo={"groupes":("Résolution",)}, + fr="Résoudre un problème thermique linéaire stationnaire ou transitoire", + regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + INCREMENT =FACT(statut='f', + LIST_INST =SIMP(statut='o',typ=listr8_sdaster ), + NUME_INIT =SIMP(statut='f',typ='I'), + NUME_FIN =SIMP(statut='f',typ='I'), + ), + TEMP_INIT =FACT(statut='f', + regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), + STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + EVOL_THER =SIMP(statut='f',typ=evol_ther), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), + VALE =SIMP(statut='f',typ='R'), + NUME_INIT =SIMP(statut='f',typ='I'), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters", + ), + SENS_INIT =FACT(statut='f', + regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),), + STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), + EVOL_THER =SIMP(statut='f',typ=evol_ther), + NUME_INIT =SIMP(statut='f',typ='I'), + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), + 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 ), + ), + 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")), + SCALING =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.E-6,), + ), + ), + PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), + ARCHIVAGE =FACT(statut='f', + regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", + into=("RELATIF","ABSOLU")), + PAS_ARCH =SIMP(statut='f',typ='I'), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',into=(1,2)), +) ; +#& MODIF COMMANDE DATE 13/12/2006 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. +# +# 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. +# ====================================================================== +THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', + UIinfo={"groupes":("Résolution",)}, + fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" + +" stationnaire ou transitoire" , + regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), + CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ), + COMP_THER_NL =FACT(statut='d',max='**', + RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL", + into=("THER_NL", + "THER_HYDR", + "SECH_GRANGER", + "SECH_MENSI", + "SECH_BAZANT", + "SECH_NAPPE" + ) ), + 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='**'), + ), + EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_ther), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ), + INCREMENT =FACT(statut='f', + LIST_INST =SIMP(statut='o',typ=listr8_sdaster), + NUME_INIT =SIMP(statut='f',typ='I'), + NUME_FIN =SIMP(statut='f',typ='I'), + ), + TEMP_INIT =FACT(statut='f', + regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), + STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), + EVOL_THER =SIMP(statut='f',typ=evol_ther), + CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), + VALE =SIMP(statut='f',typ='R'), + NUME_INIT =SIMP(statut='f',typ='I'), + ), + NEWTON =FACT(statut='d', + REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 0 ), + ), + CONVERGENCE =FACT(statut='d', + 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 ), + ), + SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters", + ), + SOLVEUR =FACT(statut='d', + METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), + b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres 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="Parametres 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="Parametres relatifs a la non inversibilité de la matrice a 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="Parametres 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 ), + ), + 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")), + SCALING =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,), + ), + SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), + ), + PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), + ARCHIVAGE =FACT(statut='f', + regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),), + LIST_ARCH =SIMP(statut='f',typ=(listis_sdaster) ), + LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), + PAS_ARCH =SIMP(statut='f',typ='I'), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2, + into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), + +) ; +#& MODIF COMMANDE DATE 22/06/2005 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. +# +# 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. +# ====================================================================== +THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, + fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" + +" stationnaire avec chargement mobile", + reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MODELE =SIMP(statut='o',typ=modele_sdaster ), + CHAM_MATER =SIMP(statut='o',typ=cham_mater ), + CARA_ELEM =SIMP(statut='c',typ=cara_elem ), + EXCIT =FACT(statut='o',max='**', + CHARGE =SIMP(statut='o',typ=char_ther ), + FONC_MULT =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ), + ), + TEMP_INIT =FACT(statut='f', + EVOL_THER =SIMP(statut='f',typ=evol_ther ), + NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ), + ), + CONVERGENCE =FACT(statut='d', + CRIT_TEMP_RELA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), + CRIT_ENTH_RELA =SIMP(statut='f',typ='R',defaut= 1.E-2 ), + ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), + ARRET =SIMP(statut='c',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") ), + 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") ), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**' ), + INFO =SIMP(statut='f',typ='I',into=(1,2) ), +) ; + + + +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== +def extr_table_prod(TYPE_RESU,**args): + if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r + raise AsException("type de concept resultat non prevu") + +EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n', + UIinfo={"groupes":("Résultats et champs",)}, + fr="Extraire d'une table la matrice de masse généralisée assemblée", + TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ), + + TABLE =SIMP(statut='o',typ=table_sdaster), + + NOM_PARA =SIMP(statut='o',typ='TXM'), + + FILTRE =FACT(statut='f',min=1,max='**', + NOM_PARA =SIMP(statut='o',typ='TXM'), + CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", + into=("EQ","LT","GT","NE","LE","GE","VIDE", + "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), + b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE =SIMP(statut='f',typ='R'), + VALE_I =SIMP(statut='f',typ='I'), + VALE_C =SIMP(statut='f',typ='C'), + VALE_K =SIMP(statut='f',typ='TXM'),), + + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ), + + TITRE =SIMP(statut='f',typ='TXM',max='**' ), +) ; +#& MODIF COMMANDE DATE 05/02/2007 AUTEUR ZENTNER I.ZENTNER +# 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. +# ====================================================================== +# RESPONSABLE CAMBIER S.CAMBIER +from Macro.gene_vari_alea_ops import gene_vari_alea_ops,gene_vari_alea_init +GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA", + op_init=gene_vari_alea_init,op=gene_vari_alea_ops, + sd_prod=reel,reentrant='n', + fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)", + UIinfo={"groupes":("Fonction",)}, + TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"), + b_gamma =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma", + VALE_MOY = SIMP(statut='f', typ='R', defaut=1.), + BORNE_INF = SIMP(statut='f', typ='R', defaut=0.), + COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), + ), + b_expo =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle", + VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), + BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), + ), + b_expo_tronq =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee", + VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), + BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), + BORNE_SUP = SIMP(statut='f', typ='R', defaut=1.), + ), + INIT_ALEA =SIMP(statut='f',typ='I'), +) +#& MODIF COMMANDE DATE 11/07/2005 AUTEUR CAMBIER S.CAMBIER +# 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. +# ====================================================================== +# RESPONSABLE CAMBIER S.CAMBIER +def gene_matr_alea_prod(MATR_MOYEN,**args ): + if (AsType(MATR_MOYEN) == matr_asse_gene_r ) : return matr_asse_gene_r + if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna + raise AsException("type de concept resultat non prevu") + +GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27, +#sd_prod=matr_asse_gene_r, +sd_prod=gene_matr_alea_prod, + fr="Générer une réalisation d'une matrice aléatoire réelle sym. déf. positive ou d'un macro élément dynamique", + reentrant='n', + UIinfo={"groupes":("Matrice",)}, + MATR_MOYEN = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)), + +# cas matrice generalisee + b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)", + COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 , + fr="coefficient de variation de la matrice a generer" ), + ), +# cas macr_elem_dyna + b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)", + fr="cas macr_elem_dyna (sous-structuratio)", + COEF_VAR_RIGI = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 , + fr="coefficient de variation de la matrice de raideur" ), + COEF_VAR_MASS = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 , + fr="coefficient de variation de la matrice de masse" ), + COEF_VAR_AMOR = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 , + fr="coefficient de variation de la matrice d'amortissement" ),), + + INIT_ALEA =SIMP(statut='f',typ='I'), +) ; + +#& MODIF COMMANDE DATE 03/04/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== + +from Macro.lire_table_ops import lire_table_ops + +LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=table_sdaster, + fr="Lecture d'un fichier contenant une table", + UIinfo={"groupes":("Table",)}, + UNITE =SIMP(statut='o',typ='I' ), + FORMAT =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"), + NUME_TABLE =SIMP(statut='f',typ='I',defaut=1), + SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' '), + PARA =SIMP(statut='f',typ='TXM',max='**'), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + ) ; + +#& MODIF COMMANDE DATE 05/03/2007 AUTEUR GALENNE E.GALENNE +# 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. +# ====================================================================== + +from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops + +MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster, + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies" + +" par deux points et un intervalle", + RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ), +# extraction des résultats + b_meca =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique", + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ), + ), + b_ther =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique", + NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='TEMP' ), + ), + UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), + + MODELE =SIMP(statut='f',typ=modele_sdaster ), + GROUP_MA =SIMP(statut='f',typ=grma), + MAILLE =SIMP(statut='f',typ=ma,max='**'), + regles=(EXCLUS('GROUP_MA','MAILLE'),), + + LIGN_COUPE =FACT(statut='o',max='**', + TYPE =SIMP(statut='o',typ='TXM',max=1,into=("GROUP_NO","SEGMENT","ARC"),defaut='SEGMENT' ), + INTITULE =SIMP(statut='f',typ='TXM',), + + b_grno =BLOC(condition = "TYPE=='GROUP_NO'", + GROUP_NO =SIMP(statut='f',typ=grno),), + + b_segment =BLOC(condition = "TYPE=='SEGMENT'", + NB_POINTS =SIMP(statut='o',typ='I',max=1), + COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), + COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3), + VECT_Y =SIMP(statut='f',typ='R',min=2,max=3),), + + b_arc =BLOC(condition = "TYPE=='ARC'", + NB_POINTS =SIMP(statut='o',typ='I',max=1), + COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), + CENTRE =SIMP(statut='o',typ='R',min=2,max=3), + ANGLE =SIMP(statut='o',typ='R',max=1), + DNOR =SIMP(statut='f',typ='R',min=2,max=3), + VECT_Y =SIMP(statut='f',typ='R',min=2,max=3),), + ), +) ; + + +#& MODIF COMMANDE DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE +# 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. +# ====================================================================== + +from Macro.macr_recal_ops import macr_recal_ops + +def macr_recal_prod(self,**args ): + return listr8_sdaster + +MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops, + UIinfo={"groupes":("Résultats et champs",)}, + sd_prod=macr_recal_prod, + fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux" + +" ou sur d'autres résultats de calculs", + UNITE_ESCL =SIMP(statut='o',typ='I'), + RESU_EXP =SIMP(statut='o',typ=assd,max='**'), + POIDS =SIMP(statut='f',typ=assd,max='**'), + RESU_CALC =SIMP(statut='o',typ=assd,max='**'), + LIST_PARA =SIMP(statut='o',typ=assd,max='**'), + LIST_DERIV =SIMP(statut='f',typ=assd,max='**'), + ITER_MAXI =SIMP(statut='f',typ='I',defaut=10), + ITER_FONC_MAXI =SIMP(statut='f',typ='I',defaut=100), + RESI_GLOB_RELA =SIMP(statut='f',typ='R',defaut=1.E-3), + UNITE_RESU =SIMP(statut='f',typ='I',defaut=91), + PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001), +# GRAPHIQUE =FACT(statut='d', + GRAPHIQUE =FACT(statut='f', + UNITE =SIMP(statut='f',typ='I',defaut=90), + FORMAT =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")), + INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")), + AFFICHAGE =SIMP(statut='f',typ='TXM',defaut='TOUTE_ITERATION',into=("TOUTE_ITERATION","ITERATION_FINALE")),), + SUIVI_ESCLAVE =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON"),), + + METHODE =SIMP(statut='f',typ='TXM',defaut='LEVENBERG',into=("LEVENBERG","FMIN","FMINBFGS","FMINNCG","EXTERNE")), + + b_gradient =BLOC(condition = "METHODE == 'FMINBFGS' or METHODE == 'FMINNCG'" , + GRADIENT =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )), + ), + + b_gradient_externe =BLOC(condition = "METHODE == 'EXTERNE'" , + GRADIENT =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )), + ), + + b_type_fonctionnelle =BLOC(condition = "METHODE == 'EXTERNE'" , + FONCTIONNELLE =SIMP(statut='f',typ='TXM',defaut='SCALAIRE',into=("SCALAIRE","VECTORIELLE")), + ), + + INFO =SIMP(statut='f',typ='I',defaut=2,into=( 1, 2 ) ), +); +#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +# RESPONSABLE D6BHHJP J.P.LEFEBVRE +INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster, + fr="Récupère différentes informations propres à l'exécution en cours", + reentrant='n', + UIinfo={"groupes":("Gestion du travail",)}, + + regles=(), + LISTE_INFO =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3, + into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),), + b_etat_unite =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", + regles=(UN_PARMI('UNITE','FICHIER'),), + UNITE =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1, + fr="Unité logique dont on veut obtenir l'état",), + FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255), + fr="Nom du fichier dont on veut obtenir l'état",), + ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== +# RESPONSABLE JMBHH01 J.M.PROIX + +from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops + +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", + + NOEUD =SIMP(statut='f',typ=no,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 07/02/2005 AUTEUR MABBAS M.ABBAS +# 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. +# ====================================================================== + +from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops + +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),), + ), + ), + ); + +#& MODIF COMMANDE DATE 27/11/2006 AUTEUR PELLET J.PELLET +# 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. +# ====================================================================== +#& RESPONSABLE +DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f',UIinfo={"groupe":("Résolution",)}, + fr="Calcul de l'évolution dynamique d'une structure dont la géométrie ou le matériau ont un comportement" + +" non linéaire, par une méthode explicite sur les accélérations ", + regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),UN_PARMI('DIFF_CENT','TCHAMWA'),), + MODELE =SIMP(statut='o',typ=modele_sdaster), + CHAM_MATER =SIMP(statut='o',typ=cham_mater), + MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), + CARA_ELEM =SIMP(statut='f',typ=cara_elem), + MASS_DIAG =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), + EXCIT =FACT(statut='o',max='**', + regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), + PRESENT_PRESENT('ACCE','VITE','DEPL'), + # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), + ), + TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", + into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), + CHARGE =SIMP(statut='o',typ=char_meca), + FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), + MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + DIRECTION =SIMP(statut='f',typ='R',max=3), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + ), + AMOR_MODAL =FACT(statut='f', + MODE_MECA =SIMP(statut='o',typ=mode_meca), + AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), + NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), + 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), + 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), + RIGI_GENE =SIMP(statut='f',typ=matr_asse_gene_r), + AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r), + ), + EXCIT_GENE =FACT(statut='f',max='**', + FONC_MULT =SIMP(statut='f',typ=fonction_sdaster,max='**' ), + VECT_GENE =SIMP(statut='f',typ=vect_asse_gene,max='**' ), + ), + COMP_INCR =C_COMP_INCR(), + COMP_ELAS =FACT(statut='f',max='**', + 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",) ), + 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")), + ), +#------------------------------------------------------------------- + ETAT_INIT =FACT(statut='f', + regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), + EXCLUS('EVOL_NOLI','DEPL',), + EXCLUS('EVOL_NOLI','VITE'), + EXCLUS('EVOL_NOLI','ACCE'), + EXCLUS('EVOL_NOLI','SIGM',), + EXCLUS('EVOL_NOLI','VARI',), + EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), + EXCLUS('NUME_ORDRE','INST'), ), + DEPL =SIMP(statut='f',typ=cham_no_sdaster), + VITE =SIMP(statut='f',typ=cham_no_sdaster), + ACCE =SIMP(statut='f',typ=cham_no_sdaster), + SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), + VARI =SIMP(statut='f',typ=cham_elem), + VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), + 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") ), + NUME_DIDI =SIMP(statut='f',typ='I'), + INST_ETAT_INIT =SIMP(statut='f',typ='R'), + ), +#------------------------------------------------------------------- + INCREMENT =FACT(statut='o', + 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 + 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'), + ), +#------------------------------------------------------------------- + DIFF_CENT =FACT(statut='f', + ), + TCHAMWA =FACT(statut='f', + PHI =SIMP(statut='f',typ='R',defaut= 1.05), + ), + STOP_CFL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + NEWTON =FACT(statut='c', + REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), + 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), + 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") ), + 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","DECOUPE") ), + ), + 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") ), + ), +#------------------------------------------------------------------- + RECH_LINEAIRE =FACT(statut='c', + RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), + ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), + 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), + RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), + RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2), + ), + PILOTAGE =FACT(statut='c', + regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), + TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), + COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), + ETA_PILO_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_MIN =SIMP(statut='f',typ='R'), + ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), + ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), + PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), + SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), + 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='**'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), + NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), + ), + 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'), + FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), + FLUX_HYD2_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), + ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), + 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")), + ), +#------------------------------------------------------------------- + AFFICHAGE = FACT(statut='f',max=16, + + UNITE = SIMP(statut='f',typ='I',val_min=1), + + LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), + PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), + LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), + + NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", + into=("STANDARD","MINIMUM", + "ITER_NEWT", + "INCR_TPS", + "RESI_RELA","RELA_NOEU", + "RESI_MAXI","MAXI_NOEU", + "RESI_REFE","REFE_NOEU", + "RELI_ITER","RELI_COEF", + "PILO_PARA", + "LAGR_ECAR","LAGR_INCR","LAGR_ITER", + "MATR_ASSE", + "ITER_DEBO", + "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", + "CTCC_GEOM","CTCC_FROT","CTCC_CONT", + "SUIV_1","SUIV_2","SUIV_3","SUIV_4", + ), + ), + b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ + NOM_COLONNE == 'RESI_MAXI' or\ + NOM_COLONNE == 'RESI_REFE' or\ + NOM_COLONNE == 'CTCD_GEOM' or\ + NOM_COLONNE == 'STANDARD' ", + INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), + ), + ), +#------------------------------------------------------------------- + ARCHIVAGE =FACT(statut='f', + regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), + EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), + 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), + 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",)), + CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', + into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), + ), + OBSERVATION =FACT(statut='f',max='**', + regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), + PRESENT_PRESENT('MAILLE','POINT'),), + NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + +into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ), + NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), + LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), + LIST_INST =SIMP(statut='f',typ=listr8_sdaster), + INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), + PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PAS_OBSE =SIMP(statut='f',typ='I'), + NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), + GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + POINT =SIMP(statut='f',typ='I' ,max='**'), + ), +#------------------------------------------------------------------- + SOLV_NON_LOCAL =FACT(statut='f', + 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 ), + RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), + NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), + ), + ), + LAGR_NON_LOCAL =FACT(statut='f', + ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), + RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), + RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), + R =SIMP(statut='f',typ='R',defaut= 1000.), + ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), + ), +#------------------------------------------------------------------- + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), +) ; +#& MODIF COMMANDE DATE 25/09/2006 AUTEUR MJBHHPE 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. +# ====================================================================== + +from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops + +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), + ), + ); + +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== + +def crea_table_prod(TYPE_TABLE, **args): + """Typage du concept résultat + """ + if TYPE_TABLE == 'TABLE_FONCTION': + return table_fonction + else: + return table_sdaster + +CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod, + fr="Création d'une table à partir d'une fonction ou de deux listes", + reentrant='f',UIinfo={"groupes":("Table",)}, + + regles=(EXCLUS('FONCTION','LISTE'),), + + LISTE=FACT(statut='f',max='**', + fr="Creation d'une table a partir de listes", + regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), + PARA =SIMP(statut='o',typ='TXM'), + TYPE_K =SIMP(statut='f',typ='TXM',defaut='K8', + into=('K8','K16','K24')), + NUME_LIGN=SIMP(statut='f',typ='I',max='**'), + LISTE_I =SIMP(statut='f',typ='I',max='**'), + LISTE_R =SIMP(statut='f',typ='R',max='**'), + LISTE_K =SIMP(statut='f',typ='TXM', max='**'), + ), + FONCTION=FACT(statut='f', + fr="Creation d'une table a partir d'une fonction", + FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)), + PARA=SIMP(statut='f',typ='TXM',min=2,max=2), + ), + b_fonction = BLOC(condition='FONCTION != None', + regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), + DERIVABLE('FONCTION'),), + SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', + fr="Liste des paramètres de sensibilité.", + ang="List of sensitivity parameters"), + ), + TYPE_TABLE = SIMP(statut='f', typ='TXM', defaut="TABLE", + into=('TABLE', 'TABLE_FONCTION'),), + + TITRE=SIMP(statut='f',typ='TXM',max='**'), +) ; + + + +#& MODIF COMMANDE DATE 27/11/2006 AUTEUR GNICOLAS G.NICOLAS +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 GNICOLAS G.NICOLAS + +from Macro.macr_fiabilite_ops import macr_fiabilite_ops + +# +#==== +# 1. Le retour : une liste de rééls. +#==== +# +def macr_fiabilite_prod ( self , **args ): + return listr8_sdaster +# +#==== +# 2. L'entete +#==== +# +MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, + docu="U7.03.31",UIinfo={"groupe":("Post traitements",)}, + sd_prod=macr_fiabilite_prod, + fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).", + ang="Fiability mechanics.", +# +#==== +# 3. Le niveau d'information +#==== +# + INFO = SIMP(statut="f",typ="I",defaut=1,into=(1,2)), +# +#==== +# 4. Nom et Version du logiciel de fiabilité +#==== +# + LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO", + into=("MEFISTO",), + fr="Nom du logiciel de fiabilité.", + ang="Fiability software name."), +# + VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2", + into=("V3_2", "V3_N"), + fr="Version du logiciel de fiabilité.", + ang="Fiability software release."), +# +#==== +# 5. Les entrees-sorties du calcul ASTER déterministe +#==== +# +# 5.1. ==> Le jeu de commandes déterministe +# + UNITE_ESCL = SIMP(statut="o",typ="I", + fr="Unité logique associée aux commandes du calcul ASTER déterministe.", + ang="Logical unit for the commands of the ASTER deterministic calculation."), +# +# 5.2. ==> Le destin des messages produits par ASTER +# + MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER", + into=("AUCUN", "DERNIER", "TOUS"), + fr="Quels messages ASTER récupérer.", + ang="Which ASTER messages must be kept."), +# +#==== +# 6. Options +#==== +# 6.1. ==> Générales +# +# 6.1.1. ==> La valeur du seuil +# + SEUIL = SIMP(statut="o",typ="R",max=1, + fr="Le seuil de défaillance.", + ang="Failure threshold."), +# +# 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que +# la défaillance a lieu au dessus d'un seuil maximum ou +# en dessous d'un seuil minimum +# + SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1, + into=("MINIMUM","MAXIMUM"), + fr="Que faut-il ne pas dépasser : un maximum ou un minimum.", + ang="What is the failure threshold : maximum or minimum."), +# +# 6.2. ==> Pour MEFISTO +# +### en attente de résolution de AL 2004-006 (1/2) b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'", +# +# 6.2.1. ==> Pilotage de la recherche du point de conception +# + RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI", + into=("OUI","NON"), + fr="Pour trouver le point de conception.", + ang="To find the design point."), +# + b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'", +# + EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2, + fr="Précision du test d'arret sur les points itératifs dans l'espace standard.", + ang="Precision of stop test for iterative points in standard space."), +# + EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2, + fr="Précision du test d'arret sur la proximité de la surface d'état limite.", + ang="Precision of stop test for limit state surface."), +# + TAU = SIMP(statut="f",typ="R",defaut=5.0E-1, + fr="Paramètre de la méthode de minimisation.", + ang="Parameter for the minimization method."), +# + OMEGA = SIMP(statut="f",typ="R",defaut=1.0E-4, + fr="Paramètre de la méthode de minimisation.", + ang="Parameter for the minimization method."), +# + ITER_MAX = SIMP(statut="f",typ="I",defaut=50, + fr="Nombre maximum d'itérations.", + ang="Maximum number of iterations."), + ), +# +# 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance +# + METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI", + into=("OUI","NON"), + fr="Recherche de la probabilité de défaillance avec la méthode FORM.", + ang="Research of failure probability with FORM method."), +# + METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON", + into=("OUI","NON"), + fr="Recherche de la probabilité de défaillance avec la méthode SORM.", + ang="Research of failure probability with SORM method."), +# + TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON", + into=("OUI","NON"), + fr="Recherche de la probabilité de défaillance avec le tirage d'importance.", + ang="Research of failure probability with ."), +# + b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'", +# + NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3, + fr="Nombre de simulations pour le tirage d'importance.", + ang="Number of simulation for."), +# + ), +# +# 6.2.3. ==> Création d'une surface de réponse polynomiale +# + POLYNOME_TAYLOR = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),), + HGRAD = SIMP(statut="f",typ="R",defaut=1.0E-2, + fr="Pas incrémental pour le calcul des gradients.", + ang="Step for calculation of gradients."), + HHESS = SIMP(statut="f",typ="R",defaut=1.0E-2, + fr="Pas incrémental pour le calcul des dérivées secondes.", + ang="Step for calculation of second derivatives."), +# +# 6.2.4. ==> Recherche d'un plan d'expérience +# + PLAN_EXPERIENCE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), + fr="Construction d'un plan d'expérience.", + ang="Construction of an experiment plan."), +# + b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'", +# + ALPHA = SIMP(statut="f",typ="R",defaut=2.0E-1, + fr="Plan d'expérience : maille du plan de type composite centré.", + ang="Experiment plane : mesh centered composite."), +# + BETA = SIMP(statut="f",typ="R",defaut=4.0E-1, + fr="Plan d'expérience : maille du plan de type factoriel.", + ang="Experiment plane : mesh factor."), +# + ), +# +# 6.2.5. ==> Les tests +# 6.2.5.1. ==> Test de la sphere +# + T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), + fr="Test de la sphère.", + ang="Sphere test."), +# + b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'", +# + METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE", + into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"), + fr="Type de méthode.", + ang="Method."), +# + NB_POINT = SIMP(statut="f",typ="I",max=1,defaut=60, + fr="Nombre de points de la sphere.", + ang="Number of points over the sphere.") + ), +# +# 6.2.5.2. ==> Test du maximum fort +# + T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), + fr="Test du maximum fort.", + ang="Strong maximum test."), +# + b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'", +# + COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0, + fr="Cosinus de l'angle d'exclusion.", + ang="Cosine of angle of exclusion."), +# + DPROB = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1, + fr="Fraction d'iso-densité de probabilité de défaillance.", + ang="Fraction.") +# + ), +# +# 6.2.5.3. ==> Test du hessien +# + T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), + fr="Test du hessien.", + ang="Hessian test."), +# +# 6.2.6. ==> Les correlations entre les variables +# + MATRICE = SIMP(statut="f",typ="R",max="**", + fr="Matrice de corrélation entre les variables.", + ang="Correlation matrix."), +# +### en attente de résolution de AL 2004-006 (2/2) ), +# +#==== +# 7. Definition des paramètres +#==== +# + VARIABLE = FACT(statut="o",min=1,max="**", +# +# 7.1. ==> Nom de la variable +# + NOM = SIMP(statut="o",typ="TXM", + fr="Nom de la variable, identique au nom de concept PARA_SENSI.", + ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."), +# +# 7.2. ==> Loi de distribution +# + LOI = SIMP(statut="o",typ="TXM", + into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"), + fr="Choix de la loi", + ang="Law."), +# +# 7.2.1. ==> Loi normale +# + b_normale=BLOC(condition="LOI=='NORMALE'", +# + VALE_MOY = SIMP(statut="o",typ="R",max=1, + fr="Valeur moyenne.", + ang="Mean value."), +# + ECART_TYPE = SIMP(statut="o",typ="R",max=1, + fr="Ecart type.", + ang="Standard deviation."), +# + ), +# +# 7.2.2. ==> Loi lognormale +# + b_lognormale=BLOC(condition="LOI=='LOGNORMALE'", +# + VALE_MIN = SIMP(statut="o",typ="R",max=1, + fr="Valeur minimale.", + ang="Minimal value."), +# + VALE_MOY = SIMP(statut="f",typ="R",max=1, + fr="Valeur moyenne dans l'espace de la loi normale.", + ang="Mean value in the space of the normal law."), +# + ECART_TYPE = SIMP(statut="f",typ="R",max=1, + fr="Ecart type dans l'espace de la loi normale.", + ang="Standard deviation in the space of the normal law."), +# + VALE_MOY_PHY = SIMP(statut="f",typ="R",max=1, + fr="Valeur moyenne dans l'espace physique.", + ang="Mean value in the physical space."), +# + ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1, + fr="Ecart type dans l'espace physique.", + ang="Standard deviation in the physical space."), +# + regles=(AU_MOINS_UN("VALE_MOY" ,"VALE_MOY_PHY"), + AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"), + EXCLUS ("VALE_MOY" ,"VALE_MOY_PHY"), + EXCLUS ("VALE_MOY" ,"ECART_TYPE_PHY"), + EXCLUS ("ECART_TYPE","VALE_MOY_PHY"), + EXCLUS ("ECART_TYPE","ECART_TYPE_PHY")), +# + ), +# +# 7.2.3. ==> Loi uniforme +# + b_uniforme=BLOC(condition="LOI=='UNIFORME'", +# + VALE_MIN = SIMP(statut="o",typ="R",max=1, + fr="Valeur minimale.", + ang="Minimal value."), +# + VALE_MAX = SIMP(statut="o",typ="R",max=1, + fr="Valeur maximale.", + ang="Maximal value."), +# + ), +# +# 7.2.4. ==> Loi normale tronquée +# + b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'", +# + VALE_MOY = SIMP(statut="o",typ="R",max=1, + fr="Valeur moyenne de la loi normale complète.", + ang="Mean value for the entire normal law."), +# + ECART_TYPE = SIMP(statut="o",typ="R",max=1, + fr="Ecart type de la loi normale complète.", + ang="Standard deviation for the entire normal law."), +# + VALE_MIN = SIMP(statut="o",typ="R",max=1, + fr="Valeur minimale.", + ang="Minimal value."), +# + VALE_MAX = SIMP(statut="o",typ="R",max=1, + fr="Valeur maximale.", + ang="Maximal value."), +# + ), +# +# 7.3. ==> Paramètres de calcul +# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja +# + regles=(EXCLUS("POINT_INI","POINT_CONCEPT"), + EXCLUS("POINT_REF","POINT_CONCEPT"),), +# +# 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme. +# Si on ne le fait pas, le programme prendra la valeur moyenne. +# + POINT_INI = SIMP(statut="f",typ="R",max=1, + fr="Point de démarrage de l'algorithme itératif.", + ang="Initial point for iterative process."), +# +# 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser. +# Si on ne le fait pas, le programme prendra la valeur moyenne. +# + POINT_REF = SIMP(statut="f",typ="R",max=1, + fr="Point de référence de l'algorithme itératif.", + ang="Reference point for iterative process."), +# +# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception +# + POINT_CONCEPT = SIMP(statut="f",typ="R",max=1, + fr="Point de conception.", + ang="Design point."), +# +# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre +# + GRADIENT = SIMP(statut="o",typ="TXM",max=1, + into=("OUI","NON"), + fr="ASTER calcule directement le gradient.", + ang="ASTER computes the gradient for this parameter."), + + b_gradient=BLOC(condition="GRADIENT=='NON'", + INCREMENT = SIMP(statut="o",typ="R",max=1, + fr="Incrément dans la direction.", + ang="Direction increment."), + ), + + ), +# +); +#& MODIF COMMANDE DATE 13/02/2007 AUTEUR PELLET J.PELLET +# RESPONSABLE JMBHH01 J.M.PROIX +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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. +# ====================================================================== +DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster, + fr="Définir le comportement d'un monocristal, d'un polycristal ou de groupes de fibres", + reentrant='n', + UIinfo={"groupes":("Modélisation",)}, +# on exclut MULTIFBRE de MONOCRISTAL ou POLYCRISTAL car la structure de données n'est pas organisée pareil pour ces cas + regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL','MULTIFIBRE'), + PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE','MATER_SECT'), + ), + MONOCRISTAL =FACT(statut='f', max='**', + MATER =SIMP(statut='o', typ=mater_sdaster, max=1), + ECOULEMENT =SIMP(statut='o', typ='TXM', max=1, + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"), + ECRO_ISOT =SIMP(statut='o', typ='TXM', max=1, + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"), + ECRO_CINE =SIMP(statut='o', typ='TXM', max=1, + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"), + ELAS =SIMP(statut='f', typ='TXM', max=1, + fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"), + FAMI_SYST_GLIS =SIMP(statut='o',typ='TXM', max=1, + into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1', + 'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL','BCC24'),), + ), + + + POLYCRISTAL =FACT(statut='f', max='**', + regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),), + MONOCRISTAL =SIMP(statut='o', typ=compor_sdaster, max=1), + FRAC_VOL =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"), + ANGL_REP =SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles nautiques en degrés"), + ANGL_EULER=SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler en degrés"), + ), + + + b_poly =BLOC( condition = "POLYCRISTAL!='None'", + LOCALISATION =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',), + fr="Donner le nom de la règle de localisation"), + + b_beta =BLOC( condition = "LOCALISATION=='BETA'", + DL =SIMP(statut='o',typ='R',max=1), + DA =SIMP(statut='o',typ='R',max=1), + ), + ), + +##################################################################################### + GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster, + fr="Donner le nom du concept regroupant tous les groupes de fibres (issu de DEFI_GEOM_FIBRE)"), + MATER_SECT = SIMP(statut='f',max=1,typ=mater_sdaster, + fr="Donner le nom du materiau pour les caracteristiques homogeneisees sur la section"), + MULTIFIBRE = FACT(statut='f',max='**', + GROUP_FIBRE =SIMP(statut='o', typ='TXM', max='**'), + MATER =SIMP(statut='o', typ=mater_sdaster, max=1, + fr="Donner le nom du materiau pour le groupe de fibres"), + ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), + DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", + into=("PETIT","PETIT_REAC","REAC_GEOM")), + RELATION =SIMP(statut='f', typ='TXM', max=1,defaut="ELAS", +# into=c_relation_into, + fr="Donner le nom de la relation incrementale pour le groupe de fibres", + into=( + "ELAS", + "ELAS_HYPER", + "VMIS_ISOT_TRAC", + "VISC_ISOT_TRAC", + "VMIS_ISOT_LINE", + "VISC_ISOT_LINE", + "VMIS_ISOT_PUIS", + "VMIS_ECMI_TRAC", + "VMIS_ECMI_LINE", + "LABORD_1D", + "ENDO_FRAGILE", + "ENDO_ISOT_BETON", + "ENDO_ORTH_BETON", + "BETON_REGLE_PR", + "MAZARS", + "RUPT_FRAG", + "VMIS_CINE_LINE", + "VISC_TAHERI", + "VISCOCHAB", + "VMIS_CIN1_CHAB", + "VMIS_CIN2_CHAB", + "VISC_CIN1_CHAB", + "VISC_CIN2_CHAB", + "ROUSSELIER", + "ROUSS_PR", + "ROUSS_VISC", + "NORTON_HOFF", + "LEMAITRE", + "VENDOCHAB", + "DRUCKER_PRAGER", + "GRANGER_FP", + "GRANGER_FP_INDT", + "GRANGER_FP_V", + "BAZANT_FD", + "BETON_UMLV_FP", + "BETON_DOUBLE_DP", + "KIT_DDI", + "SANS", + "CORR_ACIER", + "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,)), + DRUCKER_PRAGER =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,)), + BAZANT_FD =SIMP(statut='c',typ='I',defaut=1,into=(1,)), + 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 + "VMIS_ISOT_TRAC", + "VMIS_ISOT_LINE", + "VMIS_ISOT_CINE", + "VMIS_ISOT_PUIS", + "GRANGER_FP", + "GRANGER_FP_INDT", + "GRANGER_FP_V", + "BETON_UMLV_FP", + "ROUSS_PR", + "NADAI_B", + "BETON_DOUBLE_DP", + ),), + +# on pourrait ajouter TOUT_GROUP_FIBRE + + ) ); + +#& MODIF COMMANDE DATE 30/08/2005 AUTEUR ASSIRE A.ASSIRE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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.defi_part_feti_ops import defi_part_feti_ops + +DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster, + reentrant='n',UIinfo={"groupe":("Maillage",)}, + fr="Creation partitionnement en sous-domaines pour FETI", + regles=(UN_PARMI('MAILLAGE','MODELE'),), + MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), + MODELE =SIMP(statut='f',typ=modele_sdaster), + NB_PART =SIMP(statut='o',typ='I',val_min=2), + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)),), + + # Methode de partitionnement + METHODE =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ), + + LOGICIEL =SIMP(statut='f',typ='TXM'), + + # Corrige les problemes possibles de non-connexite des sous-domaines + CORRECTION_CONNEX =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), + + # Permet de grouper des mailles dans un meme sous-doamine + GROUPAGE =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,), + ), + # Permet d'appliquer des poids sur certaines mailles + POIDS_MAILLES =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,), + POIDS =SIMP(statut='f',typ='I',val_min=2), + ), + # Prefixe pour le nom des group_ma definissant les sous-domaines + NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), + + # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees) + TRAITER_BORDS =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ), + + # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords + # Note : le calcul FETI sera impossible + b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma", + NOM_GROUP_MA_BORD =SIMP(statut='f',typ='TXM'), + ), + + INFO =SIMP(statut='f',typ='I',into=(1, 2), defaut=1), +); +#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 + +DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster, + fr="Creation partitionnement en sous-domaines pour FETI", + docu="U4.23.05",reentrant='n', + UIinfo={"groupes":("Résolution",)}, + MODELE =SIMP(statut='o',typ=(modele_sdaster) ), + MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), + NOM =SIMP(statut='f',typ='TXM',defaut='SD'), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ), + DEFI =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma), + GROUP_MA_BORD =SIMP(statut='f',typ=grma), + ), + EXCIT =FACT(statut='f',max='**', + CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), + ), +); +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 MCOURTOI M.COURTOIS +from Macro.impr_fonction_ops import impr_fonction_ops + +IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None, + fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe", + UIinfo={"groupes":("Fonction",)}, + FORMAT =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU', + into=("TABLEAU","AGRAF","XMGRACE",),), + b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", + fr="Mots-clés propres à XMGRACE", + PILOTE =SIMP(statut='f',typ='TXM',defaut='', + into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), + fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), + UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + ), + b_agraf = BLOC(condition = "FORMAT == 'AGRAF'", + fr="Mots-clés propres à AGRAF", + UNITE =SIMP(statut='o',typ='I',defaut=25, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + UNITE_DIGR =SIMP(statut='o',typ='I',defaut=26, + fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"), + ), + # unite pour TABLEAU dans le bloc de mise en forme spécifique + + COURBE =FACT(statut='o',max='**',fr="Définition de la fonction à tracer", + regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),), + FONCTION =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster), + fr="Fonction réelle ou complexe", ), + LIST_RESU =SIMP(statut='f',typ=listr8_sdaster, + fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ), + FONC_X =SIMP(statut='f',typ=(fonction_sdaster,formule), + fr="Fonction abscisses d'une fonction paramétrique",), + ABSCISSE =SIMP(statut='f',typ='R',max='**', + fr="Valeurs des abscisses", ), + b_fonction =BLOC(condition = "FONCTION != None", + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + ), + b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c", + fr="Fonction complexe définie par le mot-clé fonction", + PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), + ), + b_list_resu =BLOC(condition = "LIST_RESU != None", + LIST_PARA =SIMP(statut='o',typ=listr8_sdaster ), + ), + b_fonc_x =BLOC(condition = "FONC_X != None", + FONC_Y =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ), + LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), + ), + b_vale_resu =BLOC(condition = "ABSCISSE != None", + ORDONNEE =SIMP(statut='o',typ='R',max='**', + fr="Valeurs des ordonnées"), + ), + + # le bloc n'est pas activé (vide) car position n'est pas pris en compte + b_forme =BLOC(condition = "FORMAT != 'TABLEAU'", + fr="Données de mise en forme de la fonction (cf. doc)", + ), + LEGENDE =SIMP(statut='f',typ='TXM', + fr="Légende associée à la fonction" ), + STYLE =SIMP(statut='f',typ='I',val_min=0, + fr="Style de la ligne représentant la fonction",), + COULEUR =SIMP(statut='f',typ='I',val_min=0, + fr="Couleur associée à la fonction",), + MARQUEUR =SIMP(statut='f',typ='I',val_min=0, + fr="Type du marqueur associé à la fonction",), + FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, + fr="Fréquence d impression du marqueur associé à la fonction", ), + # fin bloc b_forme + TRI =SIMP(statut='f',typ='TXM',defaut="N", + fr="Choix du tri effectué sur les abscisses ou sur les ordonnées", + into=("N","X","Y","XY","YX") ), + ), + # Mise en page du tableau ou du graphique + b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'", + fr="Mots-clés propres au format Tableau", + UNITE =SIMP(statut='o',typ='I',defaut=8, + fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), + TITRE =SIMP(statut='f',typ='TXM', + fr="Titre associé au graphique" ), + SOUS_TITRE =SIMP(statut='f',typ='TXM', + fr="Sous-titre du graphique" ), + SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' ', + fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"), + COMMENTAIRE =SIMP(statut='f',typ='TXM',defaut='#', + fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"), + DEBUT_LIGNE =SIMP(statut='f',typ='TXM',defaut='', + fr="Caractère de debut de ligne"), + FIN_LIGNE =SIMP(statut='f',typ='TXM',defaut='\n', + fr="Caractère de fin de ligne"), + ), + b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'", + fr="Mise en page du graphique", + TITRE =SIMP(statut='f',typ='TXM', + fr="Titre associé au graphique" ), + SOUS_TITRE =SIMP(statut='f',typ='TXM', + fr="Sous-titre du graphique" ), + BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, + fr="Intervalles de variation des abscisses"), + BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, + fr="Intervalles de variation des ordonnées"), + ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), + fr="Type d'échelle pour les abscisses" ), + ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), + fr="Type d'échelle pour les ordonnées" ), + GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., + fr="Pas du quadrillage vertical" ), + GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., + fr="Pas du quadrillage horizontal" ), + LEGENDE_X =SIMP(statut='f',typ='TXM', + fr="Légende associée à l'axe des abscisses" ), + LEGENDE_Y =SIMP(statut='f',typ='TXM', + fr="Légende associée à l'axe des ordonnées" ), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) ; +#& MODIF COMMANDE DATE 09/02/2007 AUTEUR MARKOVIC D.MARKOVIC +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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. +# ====================================================================== + +MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f', + UIinfo={"groupes":("Modélisation",)}, + fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", + + MODELE_IN =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,), + FISSURE =SIMP(statut='o',typ=fiss_xfem,min=1,max=100,), + CRITERE =SIMP(statut='f',typ='R',defaut=1.67E-8), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), +) ; +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== +POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=resultat_sdaster, + reentrant='n',UIinfo={"groupes":("Post traitements",)}, + fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré", + MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), + MODELE = SIMP(statut='o',typ=modele_sdaster,), + RESULTAT = SIMP(statut='o',typ=resultat_sdaster), + NOM_CHAM = SIMP(statut='o',typ='TXM',into=("DEPL","SIEF_ELGA"),) +); +#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== +POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster, + reentrant='n',UIinfo={"groupes":("Maillage",)}, + fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM", + MODELE = SIMP(statut='o',typ=modele_sdaster), + TITRE = SIMP(statut='f',typ='TXM',max='**'), +); +#& MODIF COMMANDE DATE 24/10/2006 AUTEUR DURAND C.DURAND +# 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. +# ====================================================================== +from Macro.info_fonction_ops import info_fonction_ops +def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args): + if (RMS != None): return table_sdaster + if (MAX != None): return table_sdaster + if (NOCI_SEISME != None): return table_sdaster + if (ECART_TYPE != None): return table_sdaster + if (NORME != None): return table_sdaster + raise AsException("type de concept resultat non prevu") + +INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_fonction_prod + ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe", + reentrant='n', + UIinfo={"groupes":("Fonction",)}, + regles=(UN_PARMI('MAX','RMS','NOCI_SEISME','NORME','ECART_TYPE',),), + RMS =FACT(statut='f',fr="Valeur RMS d'une fonction",max='**', + METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), + 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 ), + ), + NOCI_SEISME =FACT(statut='f', + regles=(UN_PARMI('FONCTION','SPEC_OSCI',),), + FONCTION =SIMP(statut='f',typ=fonction_sdaster ), + SPEC_OSCI =SIMP(statut='f',typ=nappe_sdaster ), + b_option_f =BLOC(condition="""FONCTION !=None""", + OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**', + into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU", + "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ), + b_amor =BLOC(condition="""OPTION=="TOUT" or OPTION=="INTE_SPEC" """, + AMOR_REDUIT =SIMP(statut='o',typ='R'), ),), + b_option_n =BLOC(condition="""SPEC_OSCI !=None""", + OPTION =SIMP(statut='f',typ='TXM',defaut="INTE_SPEC",into=("INTE_SPEC",), ), + NATURE =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE") ), + AMOR_REDUIT =SIMP(statut='o',typ='R'), ), + INST_INIT =SIMP(statut='f',typ='R'), + INST_FIN =SIMP(statut='f',typ='R'), + COEF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), + PESANTEUR =SIMP(statut='f',typ='R',defaut= 9.81E+0 ), + FREQ_INIT =SIMP(statut='f',typ='R',defaut= 4.E-1 ), + FREQ_FIN =SIMP(statut='f',typ='R',defaut= 10.E+0 ), + LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), + FREQ =SIMP(statut='f',typ='R',max='**'), + NORME =SIMP(statut='f',typ='R',defaut= 1.E+0 ), + 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") ), + ), + ), + MAX =FACT(statut='f',fr="Extrémas locaux d'une fonction", + FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), + ), + NORME =FACT(statut='f',fr="Norme L2 d'une fonction", + FONCTION =SIMP(statut='o', typ=nappe_sdaster), + ), + ECART_TYPE =FACT(statut='f',fr="Ecart-type d'une fonction", + METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), + 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 ), + ), + INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) +#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +# 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. +# ====================================================================== +# -*- coding: iso-8859-1 -*- + +# RESPONSABLE MCOURTOI M.COURTOIS + +def calc_table_prod(self, TABLE, ACTION, **kargs): + """Typage du concept produit. + """ + l_typ = [AsType(TABLE),] + for mcf in ACTION: + dmc = mcf.cree_dict_valeurs(mcf.mc_liste) + if dmc.get('TABLE') != None: + l_typ.append(AsType(dmc['TABLE'])) + # une table_fonction étant une table + if table_fonction in l_typ: + return table_fonction + else: + return table_sdaster + + +from Macro.calc_table_ops import calc_table_ops + +CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod, + fr="Opérations sur une table", + reentrant='f', + regles=(DERIVABLE('TABLE'),), + TABLE = SIMP(statut='o',typ=table_sdaster), + ACTION = FACT(statut='o', max='**', + fr = "Suite des opérations à effectuer sur la table", + OPERATION = SIMP(statut='o', typ='TXM', + into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'OPER',)), + + b_filtre = BLOC(condition="OPERATION == 'FILTRE'", + fr="Sélectionne les lignes de la table vérifiant un critère", + NOM_PARA = SIMP(statut='o',typ='TXM'), + CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ", + into=('EQ','NE','GT','LT','GE','LE','REGEXP', + 'VIDE','NON_VIDE','MAXI','ABS_MAXI','MINI','ABS_MINI'),), + b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", + regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), + VALE = SIMP(statut='f',typ='R'), + VALE_I = SIMP(statut='f',typ='I'), + VALE_C = SIMP(statut='f',typ='C'), + VALE_K = SIMP(statut='f',typ='TXM'), + ), + b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'", + VALE_K = SIMP(statut='f',typ='TXM'), + ), + b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')", + CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), + PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ), + ), + ), + + b_extr = BLOC(condition="OPERATION == 'EXTR'", + fr="Extrait une ou plusieurs colonnes de la table", + NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', + fr="Noms des colonnes à extraire"), + ), + + b_renomme = BLOC(condition="OPERATION == 'RENOMME'", + fr="Renomme un ou plusieurs paramètres de la table", + NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2, + fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",), + ), + + b_tri = BLOC(condition="OPERATION == 'TRI'", + fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres", + NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), + ORDRE = SIMP(statut='f',typ='TXM',defaut="CROISSANT", + into=("CROISSANT","DECROISSANT") ), + ), + + b_comb = BLOC(condition="OPERATION == 'COMB'", + fr="Combine deux tables ayant éventuellement des paramètres communs", + TABLE = SIMP(statut='o',typ=table_sdaster, + fr="Table dont les colonnes vont venir surcharger la table initiale"), + NOM_PARA = SIMP(statut='f',typ='TXM',max='**', + fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\ + "pour que les colonnes soient combinées"), + ), + + b_oper = BLOC(condition="OPERATION == 'OPER'", + fr="Applique une formule dans laquelle les variables sont les paramètres de la table", + FORMULE = SIMP(statut='o',typ=formule, + fr="Formule à appliquer aux colonnes de la table"), + NOM_PARA = SIMP(statut='o',typ='TXM', + fr="Nom de la nouvelle colonne"), + ), + ), + + SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1, + fr="Paramètre de sensibilité", + ang="Sensitivity parameter"), + TITRE = SIMP(statut='f',typ='TXM',max='**', + fr="Titre de la table produite"), + INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), +) +#& MODIF COMMANDE DATE 26/03/2007 AUTEUR ASSIRE A.ASSIRE +# 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. +# ====================================================================== +# RESPONSABLE ASSIRE A.ASSIRE + +DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29, + fr="Creation partitionnement en sous-domaines pour FETI", + docu="U4.00.00", + UIinfo={"groupes":("Résolution",)}, + MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), + MODELE =SIMP(statut='f',typ=(modele_sdaster)), + NB_PART =SIMP(statut='o',typ='I',), + + # Methode de partitionnement + METHODE =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ), + + LOGICIEL =SIMP(statut='f',typ='TXM'), + + # Corrige les problemes possibles de non-connexite des sous-domaines + CORRECTION_CONNEX =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), + + # Permet de grouper des mailles dans un meme sous-doamine + GROUPAGE =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,), + ), + # Permet d'appliquer des poids sur certaines mailles + POIDS_MAILLES =FACT(statut='f',max='**', + GROUP_MA =SIMP(statut='o',typ=grma,), + POIDS =SIMP(statut='f',typ='I'), + ), + # Prefixe pour le nom des group_ma definissant les sous-domaines + NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), + + # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees) + TRAITER_BORDS =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ), + + # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords + # Note : le calcul FETI sera impossible + b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma", + NOM_GROUP_MA_BORD =SIMP(statut='f',typ='TXM'), + ), + + INFO =SIMP(statut='f',typ='I',into=(1, 2), defaut=1), + +); +#& MODIF COMMANDE DATE 13/02/2006 AUTEUR DURAND C.DURAND +# 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. +# ====================================================================== +# ====================================================================== + +MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, + fr="Normalisation 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) ), + TITRE =SIMP(statut='f',typ='TXM',max='**'), + INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), +) ; +#& MODIF COMMANDE DATE 19/09/2006 AUTEUR ACBHHCD G.DEVESA +# 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. +# ====================================================================== +LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c, + fr="Création d une matrice assemblée à partir de base modale", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + BASE =SIMP(statut='o',typ=base_modale ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + FREQ_EXTR =SIMP(statut='o',typ='R',max=1), + UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), + TYPE =SIMP(statut='f',typ='TXM',defaut="ASCII",into=("BINAIRE","ASCII") ), +) ; + +#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE +# 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. +# ====================================================================== +LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene, + fr="Création d un vecteur assemblé à partir de base modale", + reentrant='n', + UIinfo={"groupes":("Matrices/vecteurs",)}, + BASE =SIMP(statut='o',typ=base_modale ), + NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), + FREQ_EXTR =SIMP(statut='o',typ='R',max=1), + NOM_CMP =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ), + NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"), + UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30), +) ; + +#& MODIF COMMANDE DATE 05/02/2007 AUTEUR PELLET J.PELLET +# 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. +# ====================================================================== +# ====================================================================== +DEBUG=PROC(nom="DEBUG",op=137, + UIinfo={"groupes":("Utilitaires",)}, + fr="Permettre de changer entre 2 commandes quelques variables globales de debug", + + SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", + statut='f',typ='TXM',into=('OUI','NON')), + JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", + statut='f',typ='TXM',into=('OUI','NON')), + JEVEUX =SIMP(fr="force les déchargement sur disque", + statut='f',typ='TXM',into=('OUI','NON')), + 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 22/12/2006 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. +# ====================================================================== + + +from Macro.macro_expans_ops import macro_expans_ops + +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): + if isinstance(res, CO): + if AsType(RESU_EXP) == mode_meca: + self.type_sdprod(res, mode_meca) + else: + self.type_sdprod(res, dyna_harmo) + else: + self.type_sdprod(res,res.__class__) + return None + +MACRO_EXPANS=MACRO(nom="MACRO_EXPANS", + op=macro_expans_ops, + sd_prod=macro_expans_prod, + reentrant='n', + UIinfo={"groupes":("Outils métier",)}, + fr="Outil d'expansion de resultats exprimentaux sur une base definie sur un modele numerique", + MODELE_CALCUL = FACT(statut='o', + 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), + ), + MODELE_MESURE = FACT(statut='o', + MODELE = SIMP(statut='o',typ=(modele_sdaster) ), + MESURE = SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ), + 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_DDL = SIMP(statut='f',typ=(nume_ddl_sdaster)), + RESU_NX = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), + RESU_EX = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), + RESU_ET = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), + RESU_RD = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)), + RESOLUTION = FACT(statut='f', + METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ), + b_svd =BLOC(condition="METHODE=='SVD'", + EPS=SIMP(statut='f',typ='R',defaut=0. ), + ), + REGUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ), + b_regul =BLOC(condition="REGUL!='NON'", + regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),), + COEF_PONDER =SIMP(statut='f',typ='R',defaut=0. ,max='**' ), + COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), + ), + ), + ) +#& MODIF COMMANDE DATE 02/04/2007 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. +# ====================================================================== + +from Macro.macro_visu_meidee_ops import macro_visu_meidee_ops + +def macro_visu_meidee_prod(self,RESULTATS,**args): + if RESULTATS != None: + for res in RESULTATS: + if isinstance(res['TABLE'],CO) : + if res['TYPE_TABLE'] == 'TABLE': + self.type_sdprod(res['TABLE'],table_sdaster) + else: + self.type_sdprod(res['TABLE'],table_fonction) + + 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' ), + RESULTATS = FACT( statut='f',max='**', + TABLE = SIMP(statut='o',typ=(table_sdaster,table_fonction,CO)), + TYPE_TABLE = SIMP(statut='f',typ='TXM',defaut='TABLE', into=('TABLE','TABLE_FONCTION')), + ), + UNITE_RESU = SIMP( statut='f',typ='I',defaut=6), + + b_inter = BLOC( condition="INTERACTIF=='NON'", + + EXPANSION = FACT( statut='f',max='**', + CALCUL = SIMP(statut='o',typ=mode_meca), + MESURE = SIMP(statut='o',typ=mode_meca), + 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.), + IDENTIFICATION_MOMENTS = SIMP(statut='f',typ='TXM',defaut='NON', + into=('OUI','NON')), + OBSERVABILITE = SIMP(statut='o',typ=mode_meca), + COMMANDABILITE = SIMP(statut='o',typ=mode_meca), + 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), + ), + ) + ) + ) + +#& MODIF COMMANDE DATE 13/02/2007 AUTEUR PELLET J.PELLET +# 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. +# ====================================================================== +# ====================================================================== +# +DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op= 119, sd_prod=gfibre_sdaster, + fr="Definition des groupes de fibres pour les elements multifibres", + reentrant='n', + UIinfo={"groupes":("Modelisation",)}, + regles=(AU_MOINS_UN('SECTION','FIBRE'),), + + INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), +#============================================================================ + SECTION =FACT(statut='f',max='**', + regles=(AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'), + PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),), + + GROUP_FIBRE =SIMP(statut='o',typ='TXM',min=1,max=1), + TOUT_SECT =SIMP(statut='f',typ='TXM',into=("OUI",) ), + GROUP_MA_SECT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), + MAILLE_SECT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + + MAILLAGE_SECT =SIMP(statut='o',typ=maillage_sdaster), + COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2), + ), + + +#============================================================================ + FIBRE =FACT(statut='f',max='**', + GROUP_FIBRE =SIMP(statut='o',typ='TXM',min=1,max=1), + CARA =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)), + VALE =SIMP(statut='o',typ='R',max='**'), + COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2), + ), + + +) ; diff --git a/Aster/Cata/cataSTA9/ops.py b/Aster/Cata/cataSTA9/ops.py new file mode 100644 index 00000000..ed128239 --- /dev/null +++ b/Aster/Cata/cataSTA9/ops.py @@ -0,0 +1,461 @@ +#@ MODIF ops Cata DATE 02/04/2007 AUTEUR COURTOIS M.COURTOIS +# -*- coding: iso-8859-1 -*- +# 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. +# ====================================================================== + + +# Modules Python +import types +import string,linecache,os,traceback,re +import pickle + +# Modules Eficas +import Accas +from Accas import ASSD +from Utilitai.Utmess import UTMESS +from Utilitai.as_timer import ASTER_TIMER + +try: + import aster + from SD.ascheckers import CheckLog + # Si le module aster est présent, on le connecte + # au JDC + import Build.B_CODE + Build.B_CODE.CODE.codex=aster +except: + def CheckLog(): + pass + pass + + +def commun_DEBUT_POURSUITE(jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG): + """Fonction sdprod partie commune à DEBUT et POURSUITE. + (on stocke un entier au lieu du logique) + """ + jdc.par_lot = PAR_LOT + jdc.impr_macro = int(IMPR_MACRO == 'OUI') + jdc.jxveri = int(DEBUG != None and DEBUG['JXVERI'] == 'OUI') + jdc.sdveri = int(DEBUG != None and DEBUG['SDVERI'] == 'OUI') + jdc.fico = None + jdc.sd_checker = CheckLog() + if CODE != None: + jdc.fico = CODE['NOM'] + jdc.timer = ASTER_TIMER(format='aster') + + +def DEBUT(self,PAR_LOT,IMPR_MACRO,CODE,DEBUG,**args): + """ + Fonction sdprod de la macro DEBUT + """ + # La commande DEBUT ne peut exister qu'au niveau jdc + if self.jdc is not self.parent : + raise Accas.AsException("La commande DEBUT ne peut exister qu'au niveau jdc") + + commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG) + + +def build_debut(self,**args): + """ + Fonction ops pour la macro DEBUT + """ + self.jdc.UserError=self.codex.error + + if self.jdc.par_lot == 'NON' : + self.jdc._Build() + # On execute la fonction debut pour initialiser les bases + # Cette execution est indispensable avant toute autre action sur ASTER + # op doit etre un entier car la fonction debut appelle GCECDU qui demande + # le numero de l'operateur associé (getoper) + self.definition.op=0 + self.set_icmd(1) + lot,ier=self.codex.debut(self,1) + # On remet op a None juste apres pour eviter que la commande DEBUT + # ne soit executée dans la phase d'execution + self.definition.op=None + return ier + +def POURSUITE(self,PAR_LOT,IMPR_MACRO,CODE,DEBUG,**args): + """ + Fonction sdprod de la macro POURSUITE + """ + # La commande POURSUITE ne peut exister qu'au niveau jdc + if self.jdc is not self.parent : + raise Accas.AsException("La commande POURSUITE ne peut exister qu'au niveau jdc") + + commun_DEBUT_POURSUITE(self.jdc, PAR_LOT, IMPR_MACRO, CODE, DEBUG) + + if (self.codex and os.path.isfile("glob.1") or os.path.isfile("bhdf.1")): + # Le module d'execution est accessible et glob.1 est present + # Pour eviter de rappeler plusieurs fois la sequence d'initialisation + # on memorise avec l'attribut fichier_init que l'initialisation + # est réalisée + if hasattr(self,'fichier_init'):return + self.fichier_init='glob.1' + self.jdc.initexec() + # le sous programme fortran appelé par self.codex.poursu demande le numero + # de l'operateur (GCECDU->getoper), on lui donne la valeur 0 + self.definition.op=0 + lot,ier,lonuti,concepts=self.codex.poursu(self,1) + # Par la suite pour ne pas executer la commande pendant la phase + # d'execution on le remet à None + self.definition.op=None + # On demande la numerotation de la commande POURSUITE avec l'incrément + # lonuti pour qu'elle soit numérotée à la suite des commandes existantes. +####CD self.set_icmd(lonuti) Non : on repart à zéro + pos=0 + d={} + while pos+80 < len(concepts)+1: + nomres=concepts[pos:pos+8] + concep=concepts[pos+8:pos+24] + nomcmd=concepts[pos+24:pos+40] + statut=concepts[pos+40:pos+48] + print nomres,concep,nomcmd,statut + if nomres[0] not in (' ','.','&') and statut != '&DETRUIT': + exec nomres+'='+string.lower(concep)+'()' in self.parent.g_context,d + elif statut == '&DETRUIT' : self.jdc.nsd = self.jdc.nsd+1 + pos=pos+80 + # ces ASSD seront écrasées par le pick.1, + # on vérifiera la cohérence de type entre glob.1 et pick.1 + for k,v in d.items(): + self.parent.NommerSdprod(v,k) + self.g_context=d + + # Il peut exister un contexte python sauvegardé sous forme pickled + # On récupère ces objets après la restauration des concepts pour que + # la récupération des objets pickled soit prioritaire. + # On vérifie que les concepts relus dans glob.1 sont bien tous + # presents sous le meme nom et du meme type dans pick.1 + # Le contexte est ensuite updaté (surcharge) et donc enrichi des + # variables qui ne sont pas des concepts. + # On supprime du pickle_context les concepts valant None, ca peut + # etre le cas des concepts non executés, placés après FIN. + pickle_context=get_pickled_context() + if pickle_context==None : + UTMESS('F','Poursuite',"Erreur a la relecture du fichier pick.1 : aucun objet sauvegardé ne sera récupéré") + return + from Cata.cata import ASSD,entier + from Noyau.N_CO import CO + for elem in pickle_context.keys(): + if isinstance(pickle_context[elem], ASSD): + pickle_class=pickle_context[elem].__class__ + # on rattache chaque assd au nouveau jdc courant (en poursuite) + pickle_context[elem].jdc=self.jdc + pickle_context[elem].parent=self.jdc + # rétablir le parent pour les attributs de la SD + pickle_context[elem].reparent_sd() + if elem in self.g_context.keys(): + poursu_class=self.g_context[elem].__class__ + if poursu_class!=pickle_class : + UTMESS('F','Poursuite',"Types incompatibles entre glob.1 et pick.1 pour concept de nom "+elem) + return + elif isinstance(pickle_context[elem],ASSD) and pickle_class not in (CO,entier) : + # on n'a pas trouvé le concept dans la base et sa classe est ASSD : ce n'est pas normal + # sauf dans le cas de CO : il n'a alors pas été typé et c'est normal qu'il soit absent de la base + # meme situation pour le type 'entier' produit uniquement par DEFI_FICHIER + UTMESS('F','Poursuite',"Concept de nom "+elem+" et de type "+str(pickle_class)+" introuvable dans la base globale") + return + if pickle_context[elem]==None : del pickle_context[elem] + self.g_context.update(pickle_context) + return + + else: + # Si le module d'execution n est pas accessible ou glob.1 absent on + # demande un fichier (EFICAS) + # Il faut éviter de réinterpréter le fichier à chaque appel de + # POURSUITE + if hasattr(self,'fichier_init'): + return + self.make_poursuite() + +def get_pickled_context(): + """ + Cette fonction permet de réimporter dans le contexte courant du jdc (jdc.g_context) + les objets python qui auraient été sauvegardés, sous forme pickled, lors d'une + précédente étude. Un fichier pick.1 doit etre présent dans le répertoire de travail + """ + if os.path.isfile("pick.1"): + file="pick.1" + else: return None + + # Le fichier pick.1 est présent. On essaie de récupérer les objets python sauvegardés + context={} + try: + file=open(file,'r') + # Le contexte sauvegardé a été picklé en une seule fois. Il est seulement + # possible de le récupérer en bloc. Si cette opération echoue, on ne récupère + # aucun objet. + context=pickle.load(file) + file.close() + except: + # En cas d'erreur on ignore le contenu du fichier + # traceback.print_exc() + return None + + return context + +def POURSUITE_context(self,d): + """ + Fonction op_init de la macro POURSUITE + """ + # self représente la macro POURSUITE ... + d.update(self.g_context) + # Une commande POURSUITE n'est possible qu'au niveau le plus haut + # On ajoute directement les concepts dans le contexte du jdc + # XXX est ce que les concepts ne sont pas ajoutés plusieurs fois ?? + for v in self.g_context.values(): + if isinstance(v,ASSD) : self.jdc.sds.append(v) + +def build_poursuite(self,**args): + """ + Fonction ops pour la macro POURSUITE + """ + # Pour POURSUITE on ne modifie pas la valeur initialisee dans ops.POURSUITE + # Il n y a pas besoin d executer self.codex.poursu (c'est deja fait dans + # la fonction sdprod de la commande (ops.POURSUITE)) + self.set_icmd(1) + self.jdc.UserError=self.codex.error + return 0 + +def INCLUDE(self,UNITE,**args): + """ + Fonction sd_prod pour la macro INCLUDE + """ + if not UNITE : return + if hasattr(self,'unite'):return + self.unite=UNITE + + if self.jdc and self.jdc.par_lot == 'NON': + # On est en mode commande par commande, on appelle la methode speciale + self.Execute_alone() + + self.make_include(unite=UNITE) + +def INCLUDE_context(self,d): + """ + Fonction op_init pour macro INCLUDE + """ + for k,v in self.g_context.items(): + d[k]=v + +def build_include(self,**args): + """ + Fonction ops de la macro INCLUDE appelée lors de la phase de Build + """ + # Pour presque toutes les commandes (sauf FORMULE et POURSUITE) + # le numero de la commande n est pas utile en phase de construction + # La macro INCLUDE ne sera pas numérotée (incrément=None) + ier=0 + self.set_icmd(None) + icmd=0 + # On n'execute pas l'ops d'include en phase BUILD car il ne sert a rien. + #ier=self.codex.opsexe(self,icmd,-1,1) + return ier + +def detruire(self,d): + """ + Cette fonction est la fonction op_init de la PROC DETRUIRE + """ + if self["CONCEPT"]!=None: + sd=[] + for mc in self["CONCEPT"]: + mcs=mc["NOM"] + if mcs is None:continue + if type(mcs) == types.ListType or type(mcs) == types.TupleType: + for e in mcs: + if isinstance(e,ASSD): + sd.append(e) + e=e.nom + # traitement particulier pour les listes de concepts, on va mettre à None + # le terme de l'indice demandé dans la liste : + # nomconcept_i est supprimé, nomconcept[i]=None + indice=e[e.rfind('_')+1:] + concept_racine=e[:e.rfind('_')] + if indice!='' and d.has_key(concept_racine) and type(d[concept_racine])==types.ListType: + try : + indici=int(indice) + d[concept_racine][indici]=None + except ValueError : pass + # pour tous les concepts : + if d.has_key(e):del d[e] + if self.jdc.sds_dict.has_key(e):del self.jdc.sds_dict[e] + else: + if isinstance(mcs,ASSD): + sd.append(mcs) + mcs=mcs.nom + # traitement particulier pour les listes de concepts, on va mettre à None + # le terme de l'indice demandé dans la liste : + # nomconcept_i est supprimé, nomconcept[i]=None + indice=mcs[mcs.rfind('_')+1:] + concept_racine=mcs[:mcs.rfind('_')] + if indice!='' and d.has_key(concept_racine) and type(d[concept_racine])==types.ListType: + try : + indici=int(indice) + d[concept_racine][indici]=None + except ValueError : pass + # pour tous les concepts : + if d.has_key(mcs):del d[mcs] + if self.jdc.sds_dict.has_key(mcs):del self.jdc.sds_dict[mcs] + for s in sd: + # On signale au parent que le concept s n'existe plus apres l'étape self + self.parent.delete_concept_after_etape(self,s) + +def subst_materiau(text,NOM_MATER,EXTRACTION,UNITE_LONGUEUR): + """ + Cette fonction retourne un texte obtenu à partir du texte passé en argument (text) + en substituant le nom du materiau par NOM_MATER + et en réalisant les extractions spéciifées dans EXTRACTION + """ + lines=string.split(text,'\n') + +##### traitement de UNIT : facteur multiplicatif puissance de 10 + regmcsu=re.compile(r" *(.*) *= *([^ ,]*) *## +([^ ]*) *([^ ]*)") + ll_u=[] + for l in lines: + m=regmcsu.match(l) + if m: + if m.group(3) == "UNIT": + if UNITE_LONGUEUR=='M' : coef = '0' + elif UNITE_LONGUEUR=='MM' : coef = m.group(4) + ll_u.append(m.group(1)+" = "+m.group(2)+coef) + else : ll_u.append(l) + else : ll_u.append(l) + +##### traitement de EXTRACTION + if EXTRACTION: + regmcf=re.compile(r" *(.*) *= *_F\( *## +(.*) +(.*)") + regmcs=re.compile(r" *(.*) *= *([^ ,]*) *, *## +([^ ]*) *([^ ]*)") + regfin=re.compile(r" *\) *") + ll=[] + temps={};lmcf=[] + for e in EXTRACTION: + mcf=e['COMPOR'] + lmcf.append(mcf) + temps[mcf]=e['TEMP_EVAL'] + FLAG=0 + for l in ll_u: + m=regmcf.match(l) + if m: # On a trouve un mot cle facteur "commentarise" + if m.group(2) == "SUBST": # il est de plus substituable + if temps.has_key(m.group(3)): # Il est a substituer + ll.append(" "+m.group(3)+"=_F(") + mcf=m.group(3) + TEMP=temps[mcf] + FLAG=1 # Indique que l'on est en cours de substitution + else: # Il n est pas a substituer car il n est pas dans la liste demandee + ll.append(l) + else: # Mot cle facteur commentarise non substituable + ll.append(l) + else: # La ligne ne contient pas un mot cle facteur commentarise + if FLAG == 0: # On n est pas en cours de substitution + ll.append(l) + else: # On est en cours de substitution. On cherche les mots cles simples commentarises + m=regmcs.match(l) + if m: # On a trouve un mot cle simple commentarise + if m.group(3) == "EVAL": + ll.append(" "+m.group(1)+' = '+m.group(4)+"("+str(TEMP)+'),') + elif m.group(3) == "SUPPR": + pass + else: + ll.append(l) + else: # On cherche la fin du mot cle facteur en cours de substitution + m=regfin.match(l) + if m: # On l a trouve. On le supprime de la liste + FLAG=0 + del temps[mcf] + ll.append(l) + else: + ll=ll_u + + lines=ll + ll=[] + for l in lines: + l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1) + ll.append(l) + text=string.join(ll,'\n') + return text + +def post_INCLUDE(self): + """ + Cette fonction est executée apres toutes les commandes d'un INCLUDE (RETOUR) + Elle sert principalement pour les INCLUDE_MATERIAU : remise a blanc du prefixe Fortran + """ + self.codex.opsexe(self,0,-1,2) + +def INCLUDE_MATERIAU(self,NOM_AFNOR,TYPE_MODELE,VARIANTE,TYPE_VALE,NOM_MATER, + EXTRACTION,UNITE_LONGUEUR,INFO,**args): + """ + Fonction sd_prod pour la macro INCLUDE_MATERIAU + """ + mat=string.join((NOM_AFNOR,'_',TYPE_MODELE,'_',VARIANTE,'.',TYPE_VALE),'') + if not hasattr(self,'mat') or self.mat != mat or self.nom_mater != NOM_MATER : + # On récupère le répertoire des matériaux dans les arguments + # supplémentaires du JDC + rep_mat=self.jdc.args.get("rep_mat","NOrep_mat") + f=os.path.join(rep_mat,mat) + self.mat=mat + self.nom_mater=NOM_MATER + if not os.path.isfile(f): + del self.mat + self.make_contexte(f,"#Texte sans effet pour reinitialiser le contexte a vide\n") + raise "Erreur sur le fichier materiau: "+f + # Les materiaux sont uniquement disponibles en syntaxe Python + # On lit le fichier et on supprime les éventuels \r + text=string.replace(open(f).read(),'\r\n','\n') + # On effectue les substitutions necessaires + self.text= subst_materiau(text,NOM_MATER,EXTRACTION,UNITE_LONGUEUR) + if INFO == 2: + print "INCLUDE_MATERIAU: ", self.mat,' ',NOM_MATER,'\n' + print self.text + # on execute le texte fourni dans le contexte forme par + # le contexte de l etape pere (global au sens Python) + # et le contexte de l etape (local au sens Python) + # Il faut auparavant l'enregistrer aupres du module linecache (utile pour nommage.py) + linecache.cache[f]=0,0,string.split(self.text,'\n'),f + + self.postexec=post_INCLUDE + + if self.jdc.par_lot == 'NON': + # On est en mode commande par commande, on appelle la methode speciale + self.Execute_alone() + + self.make_contexte(f,self.text) + for k,v in self.g_context.items() : + if isinstance(v,ASSD) and k!=v.nom : del self.g_context[k] + +def build_procedure(self,**args): + """ + Fonction ops de la macro PROCEDURE appelée lors de la phase de Build + """ + ier=0 + # Pour presque toutes les commandes (sauf FORMULE et POURSUITE) + # le numero de la commande n est pas utile en phase de construction + # On ne numérote pas une macro PROCEDURE (incrément=None) + self.set_icmd(None) + icmd=0 + #ier=self.codex.opsexe(self,icmd,-1,3) + return ier + +def build_DEFI_FICHIER(self,**args): + """ + Fonction ops de la macro DEFI_FICHIER + """ + ier=0 + self.set_icmd(1) + icmd=0 + ier=self.codex.opsexe(self,icmd,-1,26) + return ier diff --git a/Aster/NEWS b/Aster/NEWS index 60749235..d228a9b0 100644 --- a/Aster/NEWS +++ b/Aster/NEWS @@ -1,3 +1,6 @@ +Version 1.12 (6/2007): + Mise en synchronisation avec la version 9.1 de Code_Aster de mai 2007. + Version 1.11 (12/2006): Mise en synchronisation avec la version 8.4 de Code_Aster de decembre 2006. Première version du Traducteur de V7 en V8 diff --git a/Aster/az.comm b/Aster/az.comm index 4aba373f..249d5f20 100644 --- a/Aster/az.comm +++ b/Aster/az.comm @@ -5,17 +5,15 @@ P1 = 9.8; P2 = 8.8; -P9 = (7, 8, 9, 10); +P9 = 7; P5 = (P9 * P1); _param_6 = (P1 - 3); -P5 = 3; - #Pas trouve shellpanel -MAILLA2=LIRE_MAILLAGE(UNITE=P9[1],); +MAILLA2=LIRE_MAILLAGE(); aaa = FORMULE(VALE='a+z', NOM_PARA=('a','z',),); @@ -58,13 +56,10 @@ CARA=AFFE_CARA_ELEM(MODELE=MOD, # 'AFFE_MODELE', 'AFFE', 'PHENOMENE' --> uniqueintopanel # 'AFFE_MODELE', 'AFFE', 'b_mecanique'--> plusieursintopanel -F1=DEFI_FONCTION(NOM_PARA='DX', - VALE=(5.0,3.0, - P9,), +F1=DEFI_FONCTION(NOM_PARA='DX',VALE=(5.0,3.0, ),); -F3=DEFI_FONCTION(NOM_PARA='DRX', - VALE_C=(5.0,7.0,9.0, +F3=DEFI_FONCTION(NOM_PARA='DRX',VALE_C=(5.0,7.0,9.0, 9.0,8.0,7.0, ),); # 'DEFI_FONCTION', 'VALE' --> fonctionpanel diff --git a/Aster/editeur.ini b/Aster/editeur.ini index 08f66778..efb378fb 100644 --- a/Aster/editeur.ini +++ b/Aster/editeur.ini @@ -44,6 +44,7 @@ catalogues = ( # ('ASTER','v6.8',os.path.join(rep_cata,'cataSTA6'),'python6'), ('ASTER','v7.8',os.path.join(rep_cata,'cataSTA7'),'python'), # ('ASTER','v8.4',os.path.join(rep_cata,'cataSTA8'),'python'), - ('ASTER','v8.4',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), + ('ASTER','v8.4',os.path.join(rep_cata,'cataSTA8'),'python'), + ('ASTER','v9.1',os.path.join(rep_cata,'cataSTA9'),'python','defaut'), ) diff --git a/Aster/properties.py b/Aster/properties.py index c174e28e..4a66b6b9 100644 --- a/Aster/properties.py +++ b/Aster/properties.py @@ -1,4 +1,4 @@ -#@ MODIF properties Accas DATE 26/10/2005 AUTEUR gcbhhhh M.ADMINISTRATEUR +#@ MODIF properties Accas DATE 04/04/2007 AUTEUR aster M.ADMINISTRATEUR # CONFIGURATION MANAGEMENT OF EDF VERSION # RESPONSABLE D6BHHHH J-P.LEFEBVRE # ====================================================================== @@ -20,6 +20,6 @@ # IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR # DE LA VERSION DU CODE_ASTER ASSOCIE #---------------------------------------------------------------------- -version = "8.2.24" -date = "O1/06/2006" +version = "9.0.16" +date = "04/04/2007" exploit = False diff --git a/Aster/style.py b/Aster/style.py index 0d387727..d4855725 100644 --- a/Aster/style.py +++ b/Aster/style.py @@ -52,12 +52,15 @@ Les modifications de style contenues dans ce fichier et dans le fichier style.py sont prises en compte dans cet ordre. """ +p1=10 +p2=14 +f1="Helvetica" style.background='gray90' style.foreground='black' -style.standard = ("Helvetica",10) -style.standard_italique = ("Helvetica",10,'italic') -style.standard_gras = ("Helvetica",10,'bold') -style.canvas_italique = ('Helvetica',10,'italic') -style.canvas_gras = ("Helvetica",10,'bold') -style.statusfont = ("Helvetica",14) +style.standard = (f1,p1) +style.standard_italique = (f1,p1,'italic') +style.standard_gras = (f1,p1,'bold') +style.canvas_italique = (f1,p1,'italic') +style.canvas_gras = (f1,p1,'bold') +style.statusfont = (f1,p2) diff --git a/Doc/Makefile b/Doc/Makefile index 42c3b9af..56386cea 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -1,10 +1,11 @@ EFICAS=.. api: - (export PYTHONPATH=$(EFICAS)/Aster;\ + (export PYTHONPATH=$(EFICAS):$(EFICAS)/Aster;\ epydoc -n EFICAS --show-imports -o api_eficas -u http://eficas.der.edf.fr \ $(EFICAS)/Noyau/ \ $(EFICAS)/Validation/ \ + $(EFICAS)/Sdbase/ \ $(EFICAS)/Ihm/ \ $(EFICAS)/Extensions/ \ $(EFICAS)/Accas/ \ @@ -12,7 +13,7 @@ api: $(EFICAS)/generator/ \ $(EFICAS)/convert/*.py $(EFICAS)/convert/Parserv5/__init__.py $(EFICAS)/convert/Parserv5/conv.py \ $(EFICAS)/AIDE/__init__.py $(EFICAS)/AIDE/aide_gui.py $(EFICAS)/AIDE/aide_objets.py $(EFICAS)/AIDE/viewer.py \ - $(EFICAS)/Tools/ \ + $(EFICAS)/Exemples/ \ ) debug: # options -v --debug pour debugger diff --git a/Editeur/analyse_catalogue.py b/Editeur/analyse_catalogue.py index 1ead1a60..8ee63ac8 100644 --- a/Editeur/analyse_catalogue.py +++ b/Editeur/analyse_catalogue.py @@ -24,8 +24,8 @@ import re,string,cPickle,os from Noyau.N_CR import CR # -__Id__="$Id: analyse_catalogue.py,v 1.4.8.1 2006/03/10 14:38:20 eficas Exp $" -__version__="$Name: $" +__Id__="$Id: analyse_catalogue.py,v 1.5 2006-06-20 17:39:20 cchris Exp $" +__version__="$Name: BR_V1_12a1 $" # l_noms_commandes = ['OPER','PROC','MACRO','FORM'] l_noms_composes=['FACT','BLOC','NUPL','FORM'] @@ -186,9 +186,8 @@ class CATALOGUE_CATA: f=open(self.fichier,'r') self.texte_complet=f.read() f.close() - except e: + except : print "Impossible d'ouvrir le fichier :",self.fichier - print e self.cr.fatal("Impossible d'ouvrir le fichier :%s" %self.fichier) def constr_list_txt_cmd(self,text): diff --git a/Editeur/appli.py b/Editeur/appli.py index 1b6f17a7..30be3fae 100644 --- a/Editeur/appli.py +++ b/Editeur/appli.py @@ -51,15 +51,20 @@ import session import listeFichiers import listePatrons -VERSION="EFICAS v1.11" +VERSION="EFICAS v1.12" class APPLI: def __init__ (self,master,code=prefs.code,fichier=None,test=0) : self.code=code self.top=master self.top.protocol("WM_DELETE_WINDOW",self.exitEFICAS) - self.top.minsize(900,500) - self.top.geometry("900x500") + fac= self.top.winfo_screenwidth()/1024. + minx=int(900*fac) + miny=int(500*fac) + self.top.minsize(minx,miny) + self.top.geometry('%dx%d' % (minx,miny)) + #self.top.minsize(900,500) + #self.top.geometry("900x500") self.top.title(VERSION + ' pour '+self.code) self.titre=VERSION + ' pour '+self.code self.top.withdraw() diff --git a/Editeur/bureau.py b/Editeur/bureau.py index d54ab5c7..9d483acc 100644 --- a/Editeur/bureau.py +++ b/Editeur/bureau.py @@ -435,9 +435,10 @@ class BUREAU: """ Sauvegarde le JDC courant. Retourne 1 si la sauvegarde s'est bien faite, 0 sinon. - Si echo = 'oui' : interactif (l'utilisateur donne le nom sous lequel il + + - Si echo = 'oui' : interactif (l'utilisateur donne le nom sous lequel il veut sauver le JDC - Si echo = 'non' : muet (sauvegarde le JDC dans JDC.procedure) + - Si echo = 'non' : muet (sauvegarde le JDC dans JDC.procedure) """ ok = 0 if not hasattr(self,'JDC') : return 0 @@ -592,7 +593,7 @@ class BUREAU: def visuJDC_py(self,event=None): """ Méthode permettant d'afficher dans une fenêtre à part l'écho au - format python du jdc courant + format python du jdc courant """ if not hasattr(self,'JDC') : return jdc_fini = self.get_text_JDC('python') @@ -604,7 +605,7 @@ class BUREAU: def visuJDC(self): """ Méthode permettant d'afficher dans une fenêtre à part l'écho au - format .comm ou .py du jdc courant + format .comm ou .py du jdc courant """ if not hasattr(self,'JDC') : return titre = 'fichier '+ self.JDCName + ' à la syntaxe '+ self.code diff --git a/Editeur/comploader.py b/Editeur/comploader.py index 7a86c915..c5a7c846 100644 --- a/Editeur/comploader.py +++ b/Editeur/comploader.py @@ -22,14 +22,14 @@ 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. + - 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 diff --git a/Editeur/compocomm.py b/Editeur/compocomm.py index c0ea8308..f0fdca5c 100644 --- a/Editeur/compocomm.py +++ b/Editeur/compocomm.py @@ -68,15 +68,23 @@ class COMMPanel(panels.OngletPanel): """ Crée les boutons du panneau """ - self.bouton_sup.place_forget() - self.bouton_doc.place_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) + #self.bouton_sup.place_forget() + #self.bouton_doc.place_forget() + #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) + #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') - self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') - self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') + self.bouton_sup.pack_forget() + self.bouton_doc.pack_forget() + self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) + self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) + + self.bouton_val.pack(side='left',padx=5, pady=5) + self.bouton_ann.pack(side='left',padx=5, pady=5) + self.bouton_sup.pack(side='right',padx=5, pady=5) def change_valeur(self): """ diff --git a/Editeur/compocommandecomm.py b/Editeur/compocommandecomm.py index 9d339ad0..bbc3a47a 100644 --- a/Editeur/compocommandecomm.py +++ b/Editeur/compocommandecomm.py @@ -63,16 +63,26 @@ class COMMANDE_COMMPanel(panels.OngletPanel): """ Crée les boutons du panneau """ - self.bouton_sup.place_forget() - self.bouton_doc.place_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - self.bouton_unc = Button(self.fr_but,text='Décommentariser',command=self.uncomment,width=14) - - self.bouton_val.place(relx=0.1,rely=0.5,relheight=1,relwidth=0.20,anchor='center') - self.bouton_ann.place(relx=0.30,rely=0.5,relheight=1,relwidth=0.20,anchor='center') - self.bouton_sup.place(relx=0.50,rely=0.5,relheight=1,relwidth=0.20,anchor='center') - self.bouton_unc.place(relx=0.75,rely=0.5,relheight=1,relwidth=0.25,anchor='center') + #self.bouton_sup.place_forget() + #self.bouton_doc.place_forget() + #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) + #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) + #self.bouton_unc = Button(self.fr_but,text='Décommentariser',command=self.uncomment,width=14) + + #self.bouton_val.place(relx=0.1,rely=0.5,relheight=1,relwidth=0.20,anchor='center') + #self.bouton_ann.place(relx=0.30,rely=0.5,relheight=1,relwidth=0.20,anchor='center') + #self.bouton_sup.place(relx=0.50,rely=0.5,relheight=1,relwidth=0.20,anchor='center') + #self.bouton_unc.place(relx=0.75,rely=0.5,relheight=1,relwidth=0.25,anchor='center') + + self.bouton_sup.pack_forget() + self.bouton_doc.pack_forget() + self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) + self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) + self.bouton_unc = Button(self.fr_but,text='Décommentariser',command=self.uncomment) + self.bouton_val.pack(side='left',padx=5, pady=5) + self.bouton_ann.pack(side='left',padx=5, pady=5) + self.bouton_sup.pack(side='left',padx=5, pady=5) + self.bouton_unc.pack(side='right',padx=5, pady=5) def change_valeur(self): """ diff --git a/Editeur/compoformule.py b/Editeur/compoformule.py index 23bd3a50..d134713b 100644 --- a/Editeur/compoformule.py +++ b/Editeur/compoformule.py @@ -66,20 +66,25 @@ class FORMULEPanel(panels.OngletPanel): Crée la page qui permet d'afficher et d'éditer le texte de la FORMULE """ self.frame_valeur = Frame(page) - self.frame_valeur.place(relwidth=0.95,relheight=0.95,relx=0.05,rely=0.05,anchor='nw') + self.frame_valeur.pack(fill='both',expand=1) + #self.frame_valeur.place(relwidth=0.95,relheight=0.95,relx=0.05,rely=0.05,anchor='nw') #self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw') # affichage du titre du panneau self.titre = StringVar() self.titre.set("FORMULE "+self.node.item.get_nom()) self.entry_nom = Entry(self.frame_valeur) - Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.,anchor='n') + #Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.,anchor='n') + Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).grid(row=0,columnspan=2,padx=5,pady=5) # création des labels et entries associés aux nom, type retourné, arguments et corps de la FORMULE - Label(self.frame_valeur,text= 'Nom de la formule : ').place(relx=0.,rely=0.1) - Label(self.frame_valeur,text= 'Arguments : ').place(relx=0.,rely=0.40) + #Label(self.frame_valeur,text= 'Nom de la formule : ').place(relx=0.,rely=0.1) + Label(self.frame_valeur,text= 'Nom de la formule : ').grid(row=1,sticky=W,padx=5,pady=5) + #Label(self.frame_valeur,text= 'Arguments : ').place(relx=0.,rely=0.40) + Label(self.frame_valeur,text= 'Arguments : ').grid(row=2,sticky=W,padx=5,pady=5) self.entry_arg = Entry(self.frame_valeur) - Label(self.frame_valeur,text= 'Expression : ').place(relx=0.,rely=0.65) + #Label(self.frame_valeur,text= 'Expression : ').place(relx=0.,rely=0.65) + Label(self.frame_valeur,text= 'Expression : ').grid(row=4,sticky=W,padx=5,pady=5) self.entry_exp = Entry(self.frame_valeur) # binding sur les entries @@ -90,22 +95,28 @@ class FORMULEPanel(panels.OngletPanel): self.entry_exp.bind("",self.verif_corps) self.entry_exp.bind("",self.verif_corps) # affichage des entries - self.entry_nom.place(relx=0.35,rely=0.10,relwidth=0.2) - self.entry_arg.place(relx=0.35,rely=0.40,relwidth=0.4) + #self.entry_nom.place(relx=0.35,rely=0.10,relwidth=0.2) + self.entry_nom.grid(row=1,column=1,sticky=W,padx=5,pady=5) + #self.entry_arg.place(relx=0.35,rely=0.40,relwidth=0.4) + self.entry_arg.grid(row=2,column=1,sticky=W,padx=5,pady=5) # affichage d'une phrase d'aide pour les arguments aide = """Entrer les arguments sous la forme de VARIABLES séparées par des virgules (,) Exemple X,Y,Z """ - Label(self.frame_valeur,text=aide, justify="l").place(relx=0.5,rely=0.47,anchor='n') + #Label(self.frame_valeur,text=aide, justify="l").place(relx=0.5,rely=0.47,anchor='n') + Label(self.frame_valeur,text=aide, justify="l").grid(row=3,columnspan=2,padx=5,pady=5) - self.entry_exp.place(relx=0.35,rely=0.65,relwidth=0.60) + #self.entry_exp.place(relx=0.35,rely=0.65,relwidth=0.60) + self.entry_exp.grid(row=4,column=1,sticky=W,padx=5,pady=5) # affichage d'une phrase d'aide pour l'expression aide = """Un retour de chariot dans une zone de saisie vous permet de vérifier si la valeur que vous avez entrée est valide. Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles valeurs seront effectivement prises en compte.""" - Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.75,anchor='n') + #Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.75,anchor='n') + Label(self.frame_valeur,text=aide).grid(row=5,columnspan=2,padx=5,pady=5) + self.frame_valeur.columnconfigure(1,weight=1) # affichage des nom, type retourné, arguments et corps de la FORMULE self.display_valeur() @@ -118,15 +129,25 @@ valeurs seront effectivement prises en compte.""" """ Crée les boutons du panneau """ - self.bouton_sup.place_forget() - self.bouton_doc.place_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - - self.bouton_val.place(relx=0.15,rely=0.5,relheight=0.8,anchor='center') - self.bouton_ann.place(relx=0.40,rely=0.5,relheight=0.8,anchor='center') - self.bouton_sup.place(relx=0.65,rely=0.5,relheight=0.8,anchor='center') - self.bouton_doc.place(relx=0.90,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_sup.place_forget() + #self.bouton_doc.place_forget() + #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) + #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) + + #self.bouton_val.place(relx=0.15,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_ann.place(relx=0.40,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_sup.place(relx=0.65,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_doc.place(relx=0.90,rely=0.5,relheight=0.8,anchor='center') + + self.bouton_sup.pack_forget() + self.bouton_doc.pack_forget() + self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) + self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) + + self.bouton_val.pack(side='left',padx=5, pady=5) + self.bouton_ann.pack(side='left',padx=5, pady=5) + self.bouton_sup.pack(side='left',padx=5, pady=5) + self.bouton_doc.pack(side='right',padx=5, pady=5) def change_valeur(self): """ diff --git a/Editeur/compoparam.py b/Editeur/compoparam.py index 9de26833..98f7a7c1 100644 --- a/Editeur/compoparam.py +++ b/Editeur/compoparam.py @@ -71,15 +71,19 @@ class PARAMPanel(panels.OngletPanel): Crée la page qui permet d'afficher et d'éditer le texte du PARAMETRE """ self.frame_valeur = Frame(page) - self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw') + #self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw') + self.frame_valeur.pack(expand=1) # affichage du titre du panneau self.titre = StringVar() self.titre.set("PARAMETRE "+self.node.item.get_nom()) - Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.1,anchor='n') + #Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.1,anchor='n') + Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).grid(row=0,columnspan=2,padx=5,pady=5) # création des labels et entries associés aux nom et valeur du paramètre - Label(self.frame_valeur,text= 'Nom du paramètre : ').place(relx=0.,rely=0.3) + #Label(self.frame_valeur,text= 'Nom du paramètre : ').place(relx=0.,rely=0.3) + Label(self.frame_valeur,text= 'Nom du paramètre : ').grid(row=1,sticky=W,padx=5,pady=5) self.entry_nom = Entry(self.frame_valeur) - Label(self.frame_valeur,text= 'Valeur du paramètre : ').place(relx=0.,rely=0.5) + #Label(self.frame_valeur,text= 'Valeur du paramètre : ').place(relx=0.,rely=0.5) + Label(self.frame_valeur,text= 'Valeur du paramètre : ').grid(row=2,sticky=W,padx=5,pady=5) self.entry_val = Entry(self.frame_valeur) # binding sur entry_nom self.entry_nom.bind("",lambda e,s=self : s.entry_val.focus()) @@ -87,8 +91,10 @@ class PARAMPanel(panels.OngletPanel): self.entry_nom.bind("",lambda e,s=self : s.entry_val.focus()) self.entry_val.bind("",lambda e,s=self : s.change_valeur()) # affichage des entries - self.entry_nom.place(relx=0.35,rely=0.3,relwidth=0.3) - self.entry_val.place(relx=0.35,rely=0.5,relwidth=0.5) + #self.entry_nom.place(relx=0.35,rely=0.3,relwidth=0.3) + self.entry_nom.grid(row=1,column=1,sticky=W,padx=5,pady=5) + #self.entry_val.place(relx=0.35,rely=0.5,relwidth=0.5) + self.entry_val.grid(row=2,column=1,sticky=W,padx=5,pady=5) # affichage d'une phrase d'aide aide = """ Un retour de chariot dans une zone de saisie vous permet de vérifier si @@ -96,7 +102,9 @@ class PARAMPanel(panels.OngletPanel): Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles valeurs seront effectivement prises en compte """ - Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.65,anchor='n') + #Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.65,anchor='n') + Label(self.frame_valeur,text=aide).grid(row=3,columnspan=2,padx=5,pady=5) + self.frame_valeur.columnconfigure(1,weight=1) # affichage des nom et valeur du paramètre self.display_valeur() self.entry_nom.focus() @@ -105,14 +113,21 @@ class PARAMPanel(panels.OngletPanel): """ Crée les boutons du panneau """ - self.bouton_sup.place_forget() - self.bouton_doc.place_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - - self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') - self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') - self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_sup.place_forget() + #self.bouton_doc.place_forget() + #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) + #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) + #self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') + + self.bouton_sup.pack_forget() + self.bouton_doc.pack_forget() + self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) + self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) + self.bouton_val.pack(side='left',padx=5, pady=5) + self.bouton_ann.pack(side='left',padx=5, pady=5) + self.bouton_sup.pack(side='right',padx=5, pady=5) def change_valeur(self): """ diff --git a/Editeur/compoparameval.py b/Editeur/compoparameval.py index a83fa448..41c6e291 100644 --- a/Editeur/compoparameval.py +++ b/Editeur/compoparameval.py @@ -104,15 +104,22 @@ class PARAM_EVALPanel(panels.OngletPanel): """ Crée les boutons du panneau """ - self.bouton_sup.place_forget() - self.bouton_doc.place_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) + #self.bouton_sup.place_forget() + #self.bouton_doc.place_forget() + self.bouton_sup.pack_forget() + self.bouton_doc.pack_forget() + #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) + #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) + self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) + self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) self.bouton_val.bind("",lambda e,s=self : s.bouton_val.invoke()) self.bouton_val.bind("",lambda e,s=self : s.bouton_val.invoke()) - self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') - self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') - self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') + #self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') + self.bouton_val.pack(side='left',padx=5, pady=5) + self.bouton_ann.pack(side='left',padx=5, pady=5) + self.bouton_sup.pack(side='left',padx=5, pady=5) def change_valeur(self): """ diff --git a/Editeur/composimp.py b/Editeur/composimp.py index 4a456b91..7be5ba46 100644 --- a/Editeur/composimp.py +++ b/Editeur/composimp.py @@ -54,7 +54,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): from uniquepanel import UNIQUE_Panel from plusieurspanel import PLUSIEURS_Panel - #print "affect_panel : ",self.nom,self.is_list(),self.has_into(), self.get_into(None) + #print "affect_panel : ",self.nom,self.is_list(),self.has_into() # Attention l ordre des if est important if self.wait_shell(): diff --git a/Editeur/panels.py b/Editeur/panels.py index 3b84a1ba..636473a1 100644 --- a/Editeur/panels.py +++ b/Editeur/panels.py @@ -92,30 +92,29 @@ class Panel(Frame) : (à droite sous les onglets ) """ self.fr_but = Frame(self,height=30) - self.fr_but.pack(side='bottom',fill='x') - self.bouton_com = Button(self.fr_but, - text = 'Commentariser', - command = self.ajout_commentaire, - width=14) - self.bouton_sup = Button(self.fr_but, - text = "Supprimer", - command=self.supprimer, - width=14) - self.bouton_doc = Button(self.fr_but, - text="Documentation", - command=self.visu_doc, - width=14) - self.bouton_cata = Button(self.fr_but, - text = "Catalogue", - command = self.show_catalogue, - width=14) + self.fr_but.pack(side='bottom') + #self.fr_but.pack(side='bottom',fill='x') + #self.bouton_com = Button(self.fr_but, text = 'Commentariser', command = self.ajout_commentaire, width=14) + #self.bouton_sup = Button(self.fr_but, text = "Supprimer", command=self.supprimer, width=14) + #self.bouton_doc = Button(self.fr_but, text="Documentation", command=self.visu_doc, width=14) + #self.bouton_cata = Button(self.fr_but, text = "Catalogue", command = self.show_catalogue, width=14) + self.bouton_com = Button(self.fr_but, text = 'Commentariser', command = self.ajout_commentaire) + self.bouton_sup = Button(self.fr_but, text = "Supprimer", command=self.supprimer) + self.bouton_doc = Button(self.fr_but, text="Documentation", command=self.visu_doc) + self.bouton_cata = Button(self.fr_but, text = "Catalogue", command = self.show_catalogue) + if self.parent.appli.CONFIGURATION.isdeveloppeur == 'OUI': - self.bouton_sup.place(relx=0.25,rely = 0.5,relheight = 0.8,anchor='center') - self.bouton_cata.place(relx=0.5,rely = 0.5,relheight = 0.8,anchor='center') - self.bouton_doc.place(relx=0.75,rely = 0.5,relheight = 0.8,anchor='center') + self.bouton_sup.pack(side='left',padx=5, pady=5) + self.bouton_cata.pack(side='left',padx=5, pady=5) + self.bouton_doc.pack(side='right',padx=5, pady=5) + #self.bouton_sup.place(relx=0.25,rely = 0.5,relheight = 0.8,anchor='center') + #self.bouton_cata.place(relx=0.5,rely = 0.5,relheight = 0.8,anchor='center') + #self.bouton_doc.place(relx=0.75,rely = 0.5,relheight = 0.8,anchor='center') else: - self.bouton_sup.place(relx=0.3,rely = 0.5,relheight = 0.8,anchor='center') - self.bouton_doc.place(relx=0.7,rely = 0.5,relheight = 0.8,anchor='center') + self.bouton_sup.pack(side='left',padx=5, pady=5) + self.bouton_doc.pack(side='right',padx=5, pady=5) + #self.bouton_sup.place(relx=0.3,rely = 0.5,relheight = 0.8,anchor='center') + #self.bouton_doc.place(relx=0.7,rely = 0.5,relheight = 0.8,anchor='center') def show_catalogue(self): try: diff --git a/Editeur/plusieurspanel.py b/Editeur/plusieurspanel.py index 2b59b339..ba641445 100644 --- a/Editeur/plusieurspanel.py +++ b/Editeur/plusieurspanel.py @@ -94,9 +94,11 @@ class PLUSIEURS_Panel(newSIMPPanel): - si la valeur est acceptable, elle est ajoutée dans la liste des valeurs - sinon elle est refusée - encorevalide vaut 1 si le validateur trouve l item et la liste correctes - 0 si le validateur trouve la valeur de l item incorrecte - -1 si le validateur trouve la liste incorrecte + encorevalide peut prendre les valeurs suivantes : + + - valeur 1 si le validateur trouve l item et la liste correctes + - valeur 0 si le validateur trouve la valeur de l item incorrecte + - valeur -1 si le validateur trouve la liste incorrecte """ valeur = name commentaire="Valeur incorrecte : ajout à la liste refusé" diff --git a/Editeur/session.py b/Editeur/session.py index b863e884..9a567e56 100644 --- a/Editeur/session.py +++ b/Editeur/session.py @@ -111,8 +111,8 @@ def check_include(option, opt_str, value, parser): def check_jdc(config,jdc,parser,fich): """ Fonction : analyse une section de fichier .ini pour en extraire - les informations sur les fichiers poursuite et includes - définis dans cette section + les informations sur les fichiers poursuite et includes + définis dans cette section parser : objet analyseur de la ligne de commande fich : nom du fichier .ini en cours d'analyse @@ -258,11 +258,13 @@ def parse(args): def get_unit(d_study,appli): """ Fonction : construit et retourne un dictionnaire contenant les informations - sur les fichiers poursuite et includes sous la forme adaptée - pour EFICAS + sur les fichiers poursuite et includes sous la forme adaptée + pour EFICAS :: + [None : nom_fichier, texte_source, unites_associees, # poursuite numero_include : nom_fichier, texte_source, unites_associees, # include ...] + d_study : dictionnaire de l'etude appli : objet application EFICAS (permet d'acceder aux services comme get_source) """ diff --git a/Editeur/treewidget.py b/Editeur/treewidget.py index 2d813d29..1c197272 100644 --- a/Editeur/treewidget.py +++ b/Editeur/treewidget.py @@ -27,8 +27,8 @@ import images from Ihm import CONNECTOR # -__version__="$Name: $" -__Id__="$Id: treewidget.py,v 1.30.6.3 2006/05/29 07:12:38 cchris Exp $" +__version__="$Name: BR_V1_12a1 $" +__Id__="$Id: treewidget.py,v 1.31 2006-06-20 17:39:22 cchris Exp $" # Fonte_Standard = fontes.standard @@ -38,6 +38,9 @@ class Tree : self.item = jdc_item self.scrolledcanvas = scrolledcanvas self.canvas = self.scrolledcanvas.component('canvas') + #resolution + resolution= self.canvas.winfo_screenwidth()/(self.canvas.winfo_screenmmwidth()/25.4*72) + self.DDY=max(20,resolution*(Fonte_Standard[1]+4)) self.id_up=self.canvas.bind("", self.page_up) self.id_down=self.canvas.bind("", self.page_down) self.id_um=self.canvas.bind("", self.mot_up) @@ -180,7 +183,7 @@ class Tree : #def __del__(self): # print "__del__",self - + class Node : def __init__(self,parent,item,command=None,rmenu=None): self.parent = parent @@ -285,7 +288,7 @@ class Node : def redraw_children(self,old_nodes): #print "redraw_children",old_nodes #print self.children - y = self.y + 20 + y = self.y + self.tree.DDY x = self.x + 15 supp_nodes=[] @@ -300,7 +303,7 @@ class Node : #print "ancien noeud",node if node in self.children:break # ancien noeud toujours present #print "noeud supprime",node,node.item.GetLabelText()[0] - dy=node.y-node.lasty -20 + dy=node.y-node.lasty -self.tree.DDY #print "deplacer noeuds",y,dy node.move_nodes(y,dy) node.supprime() @@ -317,7 +320,7 @@ class Node : if node is new_node: # ancien noeud #print "noeud conserve",node node.update_node_label() - y=y+node.lasty-node.y +20 + y=y+node.lasty-node.y +self.tree.DDY self.racine.update_coords() self.canvas.delete('line') @@ -365,10 +368,10 @@ class Node : #new_node.state = 'expanded' new_node.state = 'expanded' new_node.draw(x,y) - dy=(new_node.get_nb_children()+1)*20 + dy=(new_node.get_nb_children()+1)*self.tree.DDY #print "deplacer noeuds",y,dy self.canvas.move('move',0,dy) - return new_node.lasty+20 + return new_node.lasty+self.tree.DDY def build_children(self): """ Construit la liste des enfants de self """ @@ -575,12 +578,12 @@ class Node : def drawchildren(self): """ Dessine les enfants de self """ - y = self.y + 20 + y = self.y + self.tree.DDY x = self.x + 15 for child in self.children: child.draw(x,y) nb = child.get_nb_children() - y = y + 20*(nb+1) + y = y + self.tree.DDY*(nb+1) self.trace_ligne() def drawtext(self): @@ -688,7 +691,7 @@ class Node : """ Redessine self : nb est le décalage à introduire en dessous de self pour le redessiner """ # nb = nombre d'items de décalage - self.move(20*nb) + self.move(self.tree.DDY*nb) # on efface self et on le redessine self.efface() self.draw(self.x,self.y) diff --git a/Editeur/uniquebasepanel.py b/Editeur/uniquebasepanel.py index 74e3d87b..5517defa 100644 --- a/Editeur/uniquebasepanel.py +++ b/Editeur/uniquebasepanel.py @@ -63,9 +63,11 @@ class UNIQUE_BASE_Panel(UNIQUE_Panel): self.frame_valeur.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) self.frame_valeur.bind("",self.parent.appli.efface_aide) self.label = Label(self.frame_valeur,text='Valeur :') - self.label.place(relx=0.1,rely=0.2) + #self.label.place(relx=0.1,rely=0.2) + self.label.grid(row=0,padx=5,pady=5) self.entry = Entry(self.frame_valeur,relief='sunken') - self.entry.place(relx=0.28,rely=0.2,relwidth=0.6) + #self.entry.place(relx=0.28,rely=0.2,relwidth=0.6) + self.entry.grid(row=0,column=1,padx=5,pady=5) self.entry.bind("",lambda e,c=self.valid_valeur:c()) self.entry.bind("",lambda e,c=self.valid_valeur:c()) # aide associée au panneau @@ -74,12 +76,15 @@ class UNIQUE_BASE_Panel(UNIQUE_Panel): text = aide, wraplength=int(self.frame_valeur.winfo_width()*0.8), justify='center') - self.aide.place(relx=0.5,rely=0.9,anchor='n') + #self.aide.place(relx=0.5,rely=0.9,anchor='n') + self.aide.grid(row=4,columnspan=2,padx=5,pady=5) # bouton parametre bouton_parametres = Button(self.frame_valeur, text="Parametres", command=self.affiche_parametre) - bouton_parametres.place(relx=0.28,rely=0.5,relwidth=0.4) + #bouton_parametres.place(relx=0.28,rely=0.5,relwidth=0.4) + bouton_parametres.grid(row=2,columnspan=2,padx=5,pady=5) bouton_val = Button(self.frame_valeur, text="Valider", command=self.valide) - bouton_val.place(relx=0.28,rely=0.6,relwidth=0.4) + #bouton_val.place(relx=0.28,rely=0.6,relwidth=0.4) + bouton_val.grid(row=3,columnspan=2,padx=5,pady=5) # affichage de la valeur du MCS self.display_valeur() diff --git a/Editeur/widgets.py b/Editeur/widgets.py index 3eeaccb9..ef17d3cb 100644 --- a/Editeur/widgets.py +++ b/Editeur/widgets.py @@ -232,14 +232,15 @@ class FenetreDeSelection(Fenetre): Cette classe est utilisée pour affecter une liste de valeurs à un mot-clé. """ def __init__(self,panel,item,appli,titre="",texte="",cardinal=1): - Fenetre.__init__(self,appli,titre=titre,texte=texte) - self.frame_boutons.place_forget() - self.frame_texte.place_forget() - self.frame_texte.place(relx=0,rely=0,relwidth=1,relheight=0.8) - self.frame_boutons.place(relheight=0.2,relx=0,rely=0.8,relwidth=1.) + Fenetre.__init__(self,appli,titre=titre,texte=texte,width = 30,height=20) + #Fenetre.__init__(self,appli,titre=titre,texte=texte) + #self.frame_boutons.place_forget() + #self.frame_texte.place_forget() + #self.frame_texte.place(relx=0,rely=0,relwidth=1,relheight=0.8) + #self.frame_boutons.place(relheight=0.2,relx=0,rely=0.8,relwidth=1.) self.cardinal=cardinal - self.fenetre.configure(width = 320,height=400) + #self.fenetre.configure(width = 320,height=400) centerwindow(self.fenetre) self.panel = panel self.item = item @@ -256,15 +257,21 @@ class FenetreDeSelection(Fenetre): selectioncommand = self.choose_separateur, scrolledlist_items = l_separateurs_autorises) self.choix_sep.component('entry').configure(width=6) - self.choix_sep.place(relx=0.01,rely=0.5,anchor='w') + #self.choix_sep.place(relx=0.01,rely=0.5,anchor='w') + self.choix_sep.pack(side='left',padx=5, pady=5) self.choix_sep.selectitem(self.separateur) # Replacement - self.but_quit.place_forget() - self.but_save.place_forget() + #self.but_quit.place_forget() + #self.but_save.place_forget() + self.but_quit.pack_forget() + self.but_save.pack_forget() self.but_all = Button(self.frame_boutons,text = "Tout Sélectionner", command=self.tout) - self.but_save.place(relx=0.6,rely=0.6,anchor='center') - self.but_quit.place(relx=0.8,rely=0.6,anchor='center') - self.but_all.place(relx=0.7,rely=0.2,anchor='center') + #self.but_save.place(relx=0.6,rely=0.6,anchor='center') + #self.but_quit.place(relx=0.8,rely=0.6,anchor='center') + #self.but_all.place(relx=0.7,rely=0.2,anchor='center') + self.but_save.pack(side='left',padx=5, pady=5) + self.but_quit.pack(side='right',padx=5, pady=5) + self.but_all.pack(side='left',padx=5, pady=5) self.choose_separateur('espace') @@ -1188,10 +1195,13 @@ class ListeChoixParGroupes(ListeChoix) : Cette classe est utilisée pour afficher une liste de commandes classées par groupes. L'utilisateur peut réaliser des actions de selection qui déclenchent des actions spécifiées par les bindings contenus dans liste_commandes - Exemple de binding: + + Exemple de binding:: + liste_commandes = (("",self.selectCmd), ("",self.deselectCmd), ("",self.defCmd)) + Il s'agit d'une liste de doublets dont le premier element est un evenement et le deuxieme un callback a appeler sur l'evenement en question. diff --git a/Exemples/cyclops/main.py b/Exemples/cyclops/main.py index 96b76a70..fa0d7494 100644 --- a/Exemples/cyclops/main.py +++ b/Exemples/cyclops/main.py @@ -10,7 +10,7 @@ """ import sys -sys.path[:0]=['../..','../../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import SIMP,FACT,BLOC from Accas import AU_MOINS_UN diff --git a/Exemples/cyclops2/main.py b/Exemples/cyclops2/main.py index 1b00777b..b76bb13f 100644 --- a/Exemples/cyclops2/main.py +++ b/Exemples/cyclops2/main.py @@ -5,9 +5,10 @@ """ import sys -sys.path[:0]=['../..','../../..'] +sys.path[:0]=['../..','../../Aster'] -from Accas import SIMP,FACT,OPER +from Accas import SIMP,FACT,OPER,JDC_CATA +JdC=JDC_CATA(code="ASTER") # Construction objet de définition @@ -39,6 +40,7 @@ class context: self.mc_globaux={} self.cata_ordonne_dico=None self.par_lot="OUI" + self.UserError="UserError" def register(self,etape): self.etapes.append(etape) diff --git a/Exemples/cyclops3/cata.py b/Exemples/cyclops3/cata.py index 560bd718..47179d35 100644 --- a/Exemples/cyclops3/cata.py +++ b/Exemples/cyclops3/cata.py @@ -5,11 +5,11 @@ import sys sys.path[:0]=['../..'] -from Accas import SIMP,FACT,OPER,PROC,JDC_CATA +from Accas import SIMP,FACT,OPER,PROC,JDC_CATA,ASSD # Construction objet de définition -class concept: +class concept(ASSD): def __init__(self,etape): self.etape=etape def is_object(valeur): diff --git a/Exemples/cyclops3/main.py b/Exemples/cyclops3/main.py index 277c54a8..cf800c38 100644 --- a/Exemples/cyclops3/main.py +++ b/Exemples/cyclops3/main.py @@ -7,7 +7,7 @@ """ import sys -sys.path[:0]=['../..','../../..'] +sys.path[:0]=['../..','../../Aster'] import cata from cata import JdC diff --git a/Exemples/eficas/cas.py b/Exemples/eficas/cas.py index 01e1e01b..872017db 100755 --- a/Exemples/eficas/cas.py +++ b/Exemples/eficas/cas.py @@ -122,7 +122,7 @@ MSTA_BIC=MODE_STATIQUE( MATR_RIGI=RIGI_BIC, MATR_MASS=MASS_BIC, L_INST=DEFI_LIST_REEL( DEBUT=0., INTERVALLE=_F( JUSQU_A = 1., PAS = 0.0001) ) -OMEGAA=DEFI_VALEUR( R8=EVAL("""2.*PI*10.""") ) +OMEGAA=DEFI_VALEUR( R8=62.8 ) ACCE1 = FORMULE(REEL="""(REEL:INST) = SIN(OMEGAA*INST) """) ACCELER1=CALC_FONC_INTERP( FONCTION=ACCE1, LIST_PARA=L_INST, diff --git a/Exemples/eficas/cata.py b/Exemples/eficas/cata.py index 2aec2c75..54503c06 100644 --- a/Exemples/eficas/cata.py +++ b/Exemples/eficas/cata.py @@ -7,6 +7,12 @@ from Accas import OPER,MACRO,JDC_CATA,FORM,PROC from Accas import AU_MOINS_UN,UN_PARMI,PRESENT_PRESENT,EXCLUS,ENSEMBLE,PRESENT_ABSENT from Accas import EVAL +#compatibilite avec V9 +import Sdbase +class ASSD(ASSD,Sdbase.AsBase):pass +class GEOM(GEOM,Sdbase.AsBase):pass +#fin compatibilite + # Type le plus general class entier (ASSD):pass class reel (ASSD):pass @@ -2092,7 +2098,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, NOEUD =SIMP(statut='f',typ=no,max='**'), GROUP_NO =SIMP(statut='f',typ=grno,max='**'), ), - CORR_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), + CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), D_FONC_DT =SIMP(statut='f',typ=fonction ), D_FONC_DT2 =SIMP(statut='f',typ=fonction ), ), diff --git a/Exemples/eficas/main.py b/Exemples/eficas/main.py index 127fbfe6..30d815ea 100644 --- a/Exemples/eficas/main.py +++ b/Exemples/eficas/main.py @@ -9,7 +9,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] import cata from cata import JdC @@ -37,4 +37,3 @@ if not j.cr.estvide(): print j.cr sys.exit() -j.Build() diff --git a/Exemples/ex1/main.py b/Exemples/ex1/main.py index c9d0f65f..5908f16a 100644 --- a/Exemples/ex1/main.py +++ b/Exemples/ex1/main.py @@ -12,7 +12,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] import Accas from Accas import SIMP @@ -20,8 +20,7 @@ from Accas import SIMP a=SIMP(typ='I') print a.report() o=a(1,'mcs1') -print o -print o.isvalid() +assert o.isvalid() == 1 a=SIMP(typ='I',statut='o') cr=a.report() @@ -31,3 +30,4 @@ else: print cr o=a(None,'mcs1') print o.report() +assert o.isvalid() == 0 diff --git a/Exemples/ex10/main.py b/Exemples/ex10/main.py index cfb1b69f..0ff69b9d 100644 --- a/Exemples/ex10/main.py +++ b/Exemples/ex10/main.py @@ -16,7 +16,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import SIMP,FACT @@ -34,11 +34,11 @@ else: print cr -for d in ({'mcf1':{'a':1}}, - {'mcf1':{'a':1,'b':2}}, - {'mcf1':{'a':1,'b':2},'mcf2':{'c':3}}, - {'mcf1':{'a':1,'b':2},'mcf2':({'c':3},{'c':5})}, - ): +for d,valid in (({'mcf1':{'a':1}},1), + ({'mcf1':{'a':1,'b':2}},1), + ({'mcf1':{'a':1,'b':2},'mcf2':{'c':3}},1), + ({'mcf1':{'a':1,'b':2},'mcf2':({'c':3},{'c':5})},0), + ): # Création de l'objet MCFACT de nom mcf1 o=cata(d,'mcf1',None) # Vérification objet MCFACT @@ -48,4 +48,5 @@ for d in ({'mcf1':{'a':1}}, else: print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d print cr + assert o.isvalid() == valid, d diff --git a/Exemples/ex11/main.py b/Exemples/ex11/main.py index 4a61d4c9..54d85e67 100644 --- a/Exemples/ex11/main.py +++ b/Exemples/ex11/main.py @@ -15,14 +15,14 @@ de ces objets. """ -import sys -sys.path[:0]=['../..'] +import sys,traceback +sys.path[:0]=['../..','../../Aster'] -from Accas import SIMP,FACT,OPER +from Accas import SIMP,FACT,OPER,ASSD # Construction objet de définition -class concept: +class concept(ASSD): def __init__(self,etape): self.etape=etape def is_object(sd): @@ -52,12 +52,17 @@ if cr.estvide(): else: print cr +class definition: + code="BIDON" + class context: def __init__(self): self.etapes=[] + self.definition=definition() self.mc_globaux={} self.cata_ordonne_dico=None self.par_lot="OUI" + self.UserError="UserError" def register(self,etape): self.etapes.append(etape) @@ -67,7 +72,11 @@ class context: return self def create_sdprod(self,etape,nomsd): - sd= etape.get_sd_prod() + try: + sd= etape.get_sd_prod() + except: + traceback.print_exc() + raise if sd != None and etape.reuse == None: # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation d un concept sd.nom=nomsd @@ -88,6 +97,7 @@ if cr.estvide(): else: print "L'objet ETAPE n'est pas valide " print cr +assert co1.etape.isvalid()==1 # Test avec reutilisation de concept co=OP1(reuse=co1,a=1,b=sd) @@ -99,3 +109,4 @@ else: print "L'objet ETAPE n'est pas valide " print cr +assert e.isvalid()==0 diff --git a/Exemples/ex12/cata.py b/Exemples/ex12/cata.py index 3daca1e5..0984e1fd 100644 --- a/Exemples/ex12/cata.py +++ b/Exemples/ex12/cata.py @@ -5,11 +5,11 @@ import sys sys.path[:0]=['../..'] -from Accas import SIMP,FACT,OPER,JDC_CATA +from Accas import SIMP,FACT,OPER,JDC_CATA,ASSD # Construction objet de définition -class concept: +class concept(ASSD): def __init__(self,etape): self.etape=etape def is_object(valeur): diff --git a/Exemples/ex12/main.py b/Exemples/ex12/main.py index 9489e159..89701596 100644 --- a/Exemples/ex12/main.py +++ b/Exemples/ex12/main.py @@ -14,7 +14,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] import cata from cata import JdC @@ -39,3 +39,4 @@ print j.cr cr=j.report() print cr +assert j.isvalid() == 0 diff --git a/Exemples/ex13/cata.py b/Exemples/ex13/cata.py index 69577982..cf8f37bc 100644 --- a/Exemples/ex13/cata.py +++ b/Exemples/ex13/cata.py @@ -5,11 +5,11 @@ import sys sys.path[:0]=['../..'] -from Accas import SIMP,FACT,OPER,PROC,JDC_CATA +from Accas import SIMP,FACT,OPER,PROC,JDC_CATA,ASSD # Construction objet de définition -class concept: +class concept(ASSD): def __init__(self,etape): self.etape=etape def is_object(valeur): diff --git a/Exemples/ex13/main.py b/Exemples/ex13/main.py index 0cf8095f..302115a1 100644 --- a/Exemples/ex13/main.py +++ b/Exemples/ex13/main.py @@ -16,7 +16,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] import cata from cata import JdC @@ -44,6 +44,7 @@ if not j.cr.estvide(): sys.exit() cr=j.report() +assert j.isvalid() == 0 if not j.cr.estvide(): print j.cr sys.exit() diff --git a/Exemples/ex14/main.py b/Exemples/ex14/main.py index 8c9e8c19..91bea6a3 100644 --- a/Exemples/ex14/main.py +++ b/Exemples/ex14/main.py @@ -16,7 +16,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] import cata from cata import JdC @@ -47,6 +47,7 @@ if not j.cr.estvide(): sys.exit() cr=j.report() +assert j.isvalid() == 0 if not j.cr.estvide(): print j.cr sys.exit() diff --git a/Exemples/ex15/main.py b/Exemples/ex15/main.py index 7b3e185f..9f4778e7 100644 --- a/Exemples/ex15/main.py +++ b/Exemples/ex15/main.py @@ -16,7 +16,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] import cata import cata1 @@ -48,6 +48,7 @@ if not j.cr.estvide(): sys.exit() cr=j.report() +assert j.isvalid() == 0 if not j.cr.estvide(): print j.cr sys.exit() diff --git a/Exemples/ex19/ahlv100a.comm b/Exemples/ex19/ahlv100a.comm index 2cb6159a..824190d0 100755 --- a/Exemples/ex19/ahlv100a.comm +++ b/Exemples/ex19/ahlv100a.comm @@ -10,7 +10,7 @@ # GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES # -DEBUT(CODE=_F( NOM = 'AHLV100A') ) +DEBUT(CODE=_F( NOM = 'AHLV100A',NIV_PUB_WEB='INTRANET') ) F=500. diff --git a/Exemples/ex19/main.py b/Exemples/ex19/main.py index ba122321..a6897e91 100644 --- a/Exemples/ex19/main.py +++ b/Exemples/ex19/main.py @@ -16,9 +16,9 @@ """ import sys -sys.path[:0]=['../..','../../..'] +sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] -from Cata import cata +from cataSTA6 import cata cr=cata.JdC.report() print cr diff --git a/Exemples/ex19/titi.comm b/Exemples/ex19/titi.comm index a778d852..d7e3eabc 100644 --- a/Exemples/ex19/titi.comm +++ b/Exemples/ex19/titi.comm @@ -1,465 +1,694 @@ -DEBUT(CODE:(NOM:'AHLV100A')); +DEBUT(CODE:(NOM:'AHLV100A' + NIV_PUB_WEB:'INTRANET')); MAIL=LIRE_MAILLAGE(); -AIR=DEFI_MATERIAU(FLUIDE:(RHO:1.3 - CELE_C:('RI',343.0,0.0))); +AIR=DEFI_MATERIAU(FLUIDE:(CELE_C:('RI',343.0,0.0) + RHO:1.3)); -CHAMPMAT=AFFE_MATERIAU(AFFE:(MATER:AIR - TOUT:'OUI') - MAILLAGE:MAIL); +CHAMPMAT=AFFE_MATERIAU(MAILLAGE:,, + AFFE:(MATER:,, + TOUT:'OUI')); -GUIDE=AFFE_MODELE(MAILLAGE:MAIL +GUIDE=AFFE_MODELE(MAILLAGE:,, VERIF:'MAILLE' - AFFE:(TOUT:'OUI' - PHENOMENE:'ACOUSTIQUE' + AFFE:(PHENOMENE:'ACOUSTIQUE' + TOUT:'OUI' MODELISATION:'3D')); -CHARACOU=AFFE_CHAR_ACOU(MODELE:GUIDE - VITE_FACE:(VNOR:('RI',0.014,0.0) - GROUP_MA:ENTREE)); - -IMPEACOU=AFFE_CHAR_ACOU(MODELE:GUIDE - IMPE_FACE:(IMPE:('RI',445.89999999999998,0.0) - GROUP_MA:SORTIE)); - -MACRO_MATR_ASSE(CHAM_MATER:CHAMPMAT - MATR_ASSE:(MATRICE:MATASK - OPTION:'RIGI_ACOU') - MATR_ASSE:(MATRICE:MATASM - OPTION:'MASS_ACOU') - MATR_ASSE:(MATRICE:MATASI - OPTION:'AMOR_ACOU') - NUME_DDL:NUM - MODELE:GUIDE - CHARGE:IMPEACOU); +CHARACOU=AFFE_CHAR_ACOU(MODELE:,, + VITE_FACE:(GROUP_MA:'ENTREE' + VNOR:('RI',0.014,0.0))); + +IMPEACOU=AFFE_CHAR_ACOU(MODELE:,, + IMPE_FACE:(GROUP_MA:'SORTIE' + IMPE:('RI',445.9,0.0))); + +MACRO_MATR_ASSE(CHARGE: + MODELE: + NUME_DDL: + ,, + CHAM_MATER: + ,, + MATR_ASSE:(OPTION:'RIGI_ACOU' + MATRICE: + + ,,) + MATR_ASSE:(OPTION:'MASS_ACOU' + MATRICE: + + ,,) + MATR_ASSE:(OPTION:'AMOR_ACOU' + MATRICE: + + ,,)); VECTELEM=CALC_VECT_ELEM(OPTION:'CHAR_ACOU' - CHAM_MATER:CHAMPMAT - CHARGE:CHARACOU); - -IMPR_MATRICE(MATR_ELEM:(GRAIN:'MAILLE' - MATRICE:VECTELEM + CHARGE: + + ,, + CHAM_MATER: + + ,,); + +IMPR_MATRICE(MATR_ELEM:(FICHIER:'RESULTAT' FORMAT:'RESULTAT' - FICHIER:'RESULTAT')); - -VECTASS=ASSE_VECTEUR(VECT_ELEM:VECTELEM - NUME_DDL:NUM); - -MATASKR=COMB_MATR_ASSE(COMB_R:(PARTIE:'REEL' - MATR_ASSE:MATASK - COEF_R:1.0)); - -MATASMR=COMB_MATR_ASSE(COMB_R:(PARTIE:'REEL' - MATR_ASSE:MATASM - COEF_R:1.0)); - -MODES=MODE_ITER_SIMULT(MATR_A:MATASKR - MATR_B:MATASMR + MATRICE: + + ,, + GRAIN:'MAILLE')); + +VECTASS=ASSE_VECTEUR(NUME_DDL:,, + VECT_ELEM: + + ,,); + +MATASKR=COMB_MATR_ASSE(COMB_R:(MATR_ASSE:,, + COEF_R:1.0 + PARTIE:'REEL')); + +MATASMR=COMB_MATR_ASSE(COMB_R:(MATR_ASSE:,, + COEF_R:1.0 + PARTIE:'REEL')); + +MODES=MODE_ITER_SIMULT(MATR_B:,, + MATR_A: + + ,, CALC_FREQ:(OPTION:'BANDE' FREQ:(1.0,1000.0))); -TEST_RESU(RESU:(RESULTAT:MODES - PRECISION:1.E-4 - CRITERE:'RELATIF' +TEST_RESU(RESU:(NUME_ORDRE:1 + PARA:'FREQ' + RESULTAT: + ,, VALE:171.5 - NUME_ORDRE:1 - PARA:'FREQ') - RESU:(RESULTAT:MODES - PRECISION:1.E-4 CRITERE:'RELATIF' + PRECISION:0.0001) + RESU:(NUME_ORDRE:2 + PARA:'FREQ' + RESULTAT: + ,, VALE:343.0 - NUME_ORDRE:2 - PARA:'FREQ') - RESU:(RESULTAT:MODES - PRECISION:1.E-3 CRITERE:'RELATIF' + PRECISION:0.0001) + RESU:(NUME_ORDRE:3 + PARA:'FREQ' + RESULTAT: + ,, VALE:514.5 - NUME_ORDRE:3 - PARA:'FREQ') - RESU:(RESULTAT:MODES - PRECISION:1.E-2 CRITERE:'RELATIF' + PRECISION:0.001) + RESU:(NUME_ORDRE:4 + PARA:'FREQ' + RESULTAT: + ,, VALE:686.0 - NUME_ORDRE:4 - PARA:'FREQ') - RESU:(RESULTAT:MODES - PRECISION:1.E-3 CRITERE:'RELATIF' + PRECISION:0.01) + RESU:(NUME_ORDRE:5 + PARA:'FREQ' + RESULTAT: + ,, VALE:857.5 - NUME_ORDRE:5 - PARA:'FREQ') - RESU:(RESULTAT:MODES - PRECISION:5.0000000000000001E-3 CRITERE:'RELATIF' + PRECISION:0.001) + RESU:(NUME_ORDRE:6 + PARA:'FREQ' + RESULTAT: + ,, VALE:857.5 - NUME_ORDRE:6 - PARA:'FREQ') - RESU:(RESULTAT:MODES - PRECISION:5.0000000000000001E-3 CRITERE:'RELATIF' - VALE:874.48199999999997 - NUME_ORDRE:7 - PARA:'FREQ') - RESU:(RESULTAT:MODES - PRECISION:5.0000000000000001E-3 + PRECISION:0.005) + RESU:(NUME_ORDRE:7 + PARA:'FREQ' + RESULTAT: + ,, + VALE:874.482 + CRITERE:'RELATIF' + PRECISION:0.005) + RESU:(NUME_ORDRE:8 + PARA:'FREQ' + RESULTAT: + ,, + VALE:923.556 CRITERE:'RELATIF' - VALE:923.55600000000004 - NUME_ORDRE:8 - PARA:'FREQ')); + PRECISION:0.005)); -MATRES=COMB_MATR_ASSE(COMB_C:(MATR_ASSE:MATASK +MATRES=COMB_MATR_ASSE(COMB_C:(MATR_ASSE:,, COEF_R:1.0) - COMB_C:(MATR_ASSE:MATASM - COEF_R:-9.8696044000000004E6) - COMB_C:(COEF_C:('RI',0.0,3141.5925999999999) - MATR_ASSE:MATASI)); - -IMPR_MATRICE(MATR_ASSE:(GRAIN:'NOEUD' - MATRICE:MATRES - FORMAT:'RESULTAT' + COMB_C:(MATR_ASSE:,, + COEF_R:-9869604.4) + COMB_C:(MATR_ASSE:,, + COEF_C:('RI',0.0,3141.5926))); + +IMPR_MATRICE(MATR_ASSE:(FICHIER:'RESULTAT' OPTION:'LIGNE' - FICHIER:'RESULTAT')); - -IMPR_MATRICE(MATR_ASSE:(GRAIN:'VALEUR' - MATRICE:MATRES FORMAT:'RESULTAT' - OPTION:'LIGNE' - FICHIER:'RESULTAT')); - -VECRES=COMB_CHAM_NO(COMB_C:(COEF_C:('RI',0.0,-3141.5925999999999) - CHAM_NO:VECTASS)); - -&MATRES=FACT_LDLT(MATR_ASSE:MATRES); + MATRICE: + + ,, + GRAIN:'NOEUD')); -&VECRES=RESO_LDLT(MATR_FACT:MATRES - CHAM_NO:VECRES); - -TEST_RESU(CHAM_NO:(CHAM_GD:VECRES +IMPR_MATRICE(MATR_ASSE:(FICHIER:'RESULTAT' + OPTION:'LIGNE' + FORMAT:'RESULTAT' + MATRICE: + + ,, + GRAIN:'VALEUR')); + +VECRES=COMB_CHAM_NO(COMB_C:(CHAM_NO:,, + COEF_C:('RI',0.0,-3141.5926))); + +&MATRES=FACT_LDLT(MATR_ASSE:,,); + +&VECRES=RESO_LDLT(CHAM_NO:,, + MATR_FACT: + + ,,); + +TEST_RESU(CHAM_NO:(NOEUD:'NO1' + VALE_C:('RI',-6.2426,0.0) NOM_CMP:'PRES' - VALE_C:('RI',-6.2426000000000004,0.0) - NOEUD:NO1) - CHAM_NO:(CHAM_GD:VECRES + CHAM_GD: + ,,) + CHAM_NO:(NOEUD:'NO780' + VALE_C:('RI',-6.2426,0.0) NOM_CMP:'PRES' - VALE_C:('RI',-6.2426000000000004,0.0) - NOEUD:NO780) - CHAM_NO:(CHAM_GD:VECRES + CHAM_GD: + ,,) + CHAM_NO:(NOEUD:'NO751' + VALE_C:('RI',6.02368,1.6387) NOM_CMP:'PRES' - VALE_C:('RI',6.0236799999999997,1.6387) - NOEUD:NO751) - CHAM_NO:(CHAM_GD:VECRES + CHAM_GD: + ,,) + CHAM_NO:(NOEUD:'NO763' + VALE_C:('RI',6.02368,1.6387) NOM_CMP:'PRES' - VALE_C:('RI',6.0236799999999997,1.6387) - NOEUD:NO763)); - -CHNODBEL=CALC_CHAM_ELEM(MODELE:GUIDE - CHAM_MATER:CHAMPMAT - OPTION:'PRES_ELNO_DBEL' - PRES:VECRES); - -TEST_RESU(CHAM_ELEM:(CHAM_GD:CHNODBEL - MAILLE:MA1 - VALE:109.90000000000001 + CHAM_GD: + ,,)); + +CHNODBEL=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_DBEL' + CHAM_MATER: + + ,, + MODELE: + + ,, + PRES: + + ,,); + +TEST_RESU(CHAM_ELEM:(NOEUD:'NO1' NOM_CMP:'DB' - NOEUD:NO1) - CHAM_ELEM:(CHAM_GD:CHNODBEL - MAILLE:MA1 - VALE:109.90000000000001 + VALE:109.9 + MAILLE:'MA1' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO780' NOM_CMP:'DB' - NOEUD:NO780) - CHAM_ELEM:(CHAM_GD:CHNODBEL - MAILLE:MA57 - VALE:109.90000000000001 + VALE:109.9 + MAILLE:'MA1' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO751' NOM_CMP:'DB' - NOEUD:NO751) - CHAM_ELEM:(CHAM_GD:CHNODBEL - MAILLE:MA57 - VALE:109.90000000000001 + VALE:109.9 + MAILLE:'MA57' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO763' NOM_CMP:'DB' - NOEUD:NO763)); - -PREEL=CALC_CHAM_ELEM(MODELE:GUIDE - CHAM_MATER:CHAMPMAT - OPTION:'PRES_ELNO_REEL' - PRES:VECRES); - -TEST_RESU(CHAM_ELEM:(CHAM_GD:PREEL - MAILLE:MA1 - VALE:-6.2426000000000004 + VALE:109.9 + MAILLE:'MA57' + CHAM_GD: + + ,,)); + +PREEL=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_REEL' + CHAM_MATER: + + ,, + MODELE: + ,, + PRES: + + ,,); + +TEST_RESU(CHAM_ELEM:(NOEUD:'NO1' NOM_CMP:'PRES' - NOEUD:NO1) - CHAM_ELEM:(CHAM_GD:PREEL - MAILLE:MA1 - VALE:-6.2426000000000004 + VALE:-6.2426 + MAILLE:'MA1' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO780' NOM_CMP:'PRES' - NOEUD:NO780) - CHAM_ELEM:(CHAM_GD:PREEL - MAILLE:MA57 - VALE:6.0236799999999997 + VALE:-6.2426 + MAILLE:'MA1' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO751' NOM_CMP:'PRES' - NOEUD:NO751) - CHAM_ELEM:(CHAM_GD:PREEL - MAILLE:MA57 - VALE:6.0236799999999997 + VALE:6.02368 + MAILLE:'MA57' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO763' NOM_CMP:'PRES' - NOEUD:NO763)); - -PIMAG=CALC_CHAM_ELEM(MODELE:GUIDE - CHAM_MATER:CHAMPMAT - OPTION:'PRES_ELNO_IMAG' - PRES:VECRES); - -TEST_RESU(CHAM_ELEM:(CHAM_GD:PIMAG - MAILLE:MA1 - VALE:0.0 + VALE:6.02368 + MAILLE:'MA57' + CHAM_GD: + + ,,)); + +PIMAG=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_IMAG' + CHAM_MATER: + + ,, + MODELE: + ,, + PRES: + + ,,); + +TEST_RESU(CHAM_ELEM:(NOEUD:'NO1' + CRITERE:'ABSOLU' NOM_CMP:'PRES' + VALE:0.0 + MAILLE:'MA1' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO780' CRITERE:'ABSOLU' - NOEUD:NO1) - CHAM_ELEM:(CHAM_GD:PIMAG - MAILLE:MA1 + NOM_CMP:'PRES' VALE:0.0 + MAILLE:'MA1' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO751' NOM_CMP:'PRES' - CRITERE:'ABSOLU' - NOEUD:NO780) - CHAM_ELEM:(CHAM_GD:PIMAG - MAILLE:MA57 + PRECISION:0.0033 VALE:1.6387 - PRECISION:3.3E-3 + MAILLE:'MA57' + CHAM_GD: + + ,,) + CHAM_ELEM:(NOEUD:'NO763' NOM_CMP:'PRES' - NOEUD:NO751) - CHAM_ELEM:(CHAM_GD:PIMAG - MAILLE:MA57 + PRECISION:0.0033 VALE:1.6387 - PRECISION:3.3E-3 - NOM_CMP:'PRES' - NOEUD:NO763)); - -PRESHARM=DYNA_LINE_HARM(MATR_MASS:MATASM - MATR_AMOR:MATASI + MAILLE:'MA57' + CHAM_GD: + + ,,)); + +PRESHARM=DYNA_LINE_HARM(MATR_RIGI:,, + MATR_MASS: + + ,, + MATR_AMOR: + + ,, FREQ:500.0 - MATR_RIGI:MATASK - EXCIT:(PUIS_PULS:1 - VECT_ASSE:VECTASS + EXCIT:(VECT_ASSE:,, PHAS_DEG:90.0 - COEF_MULT:-1.0)); - -TEST_RESU(RESU:(NOM_CHAM:'PRES' - RESULTAT:PRESHARM - NOEUD:NO1 - VALE_C:('RI',-6.2426000000000004,0.0) - NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES' - RESULTAT:PRESHARM - NOEUD:NO780 - VALE_C:('RI',-6.2426000000000004,0.0) - NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES' - RESULTAT:PRESHARM - NOEUD:NO751 - VALE_C:('RI',6.0236799999999997,1.6387) - NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES' - RESULTAT:PRESHARM - NOEUD:NO763 - VALE_C:('RI',6.0236799999999997,1.6387) - NOM_CMP:'PRES' - NUME_ORDRE:1)); - -&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM - CHAM_MATER:CHAMPMAT - MODELE:GUIDE - OPTION:'INTE_ELNO_ACTI' - TOUT_ORDRE:'OUI'); - -TEST_RESU(RESU:(NOM_CHAM:'INTE_ELNO_ACTI' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO1 - PRECISION:0.029999999999999999 - VALE:0.043700000000000003 + COEF_MULT:-1.0 + PUIS_PULS:1)); + +TEST_RESU(RESU:(NUME_ORDRE:1 + VALE_C:('RI',-6.2426,0.0) + RESULTAT: + ,, + NOM_CHAM:'PRES' + NOEUD:'NO1' + NOM_CMP:'PRES') + RESU:(NUME_ORDRE:1 + VALE_C:('RI',-6.2426,0.0) + RESULTAT: + ,, + NOM_CHAM:'PRES' + NOEUD:'NO780' + NOM_CMP:'PRES') + RESU:(NUME_ORDRE:1 + VALE_C:('RI',6.02368,1.6387) + RESULTAT: + ,, + NOM_CHAM:'PRES' + NOEUD:'NO751' + NOM_CMP:'PRES') + RESU:(NUME_ORDRE:1 + VALE_C:('RI',6.02368,1.6387) + RESULTAT: + ,, + NOM_CHAM:'PRES' + NOEUD:'NO763' + NOM_CMP:'PRES')); + +&PRESHARM=CALC_ELEM(OPTION:'INTE_ELNO_ACTI' + CHAM_MATER: + + ,, + RESULTAT: + ,, + TOUT_ORDRE:'OUI' + MODELE: + ,,); + +TEST_RESU(RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'INTE_ELNO_ACTI' + NOEUD:'NO1' NOM_CMP:'INTX' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'INTE_ELNO_ACTI' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO780 - PRECISION:0.029999999999999999 - VALE:0.043700000000000003 + VALE:0.0437 + PRECISION:0.03 + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'INTE_ELNO_ACTI' + NOEUD:'NO780' NOM_CMP:'INTX' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'INTE_ELNO_ACTI' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO751 - PRECISION:0.029999999999999999 - VALE:0.043700000000000003 + VALE:0.0437 + PRECISION:0.03 + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'INTE_ELNO_ACTI' + NOEUD:'NO751' NOM_CMP:'INTX' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'INTE_ELNO_ACTI' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO763 - PRECISION:0.029999999999999999 - VALE:0.043700000000000003 + VALE:0.0437 + PRECISION:0.03 + MAILLE:'MA57') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'INTE_ELNO_ACTI' + NOEUD:'NO763' NOM_CMP:'INTX' - NUME_ORDRE:1)); - -&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM - CHAM_MATER:CHAMPMAT - MODELE:GUIDE - OPTION:'INTE_ELNO_REAC' - TOUT_ORDRE:'OUI'); - -TEST_RESU(RESU:(NOM_CHAM:'INTE_ELNO_REAC' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO1 - PRECISION:3.5E-4 - CRITERE:'ABSOLU' - VALE:0.0 + VALE:0.0437 + PRECISION:0.03 + MAILLE:'MA57')); + +&PRESHARM=CALC_ELEM(OPTION:'INTE_ELNO_REAC' + CHAM_MATER: + + ,, + RESULTAT: + ,, + TOUT_ORDRE:'OUI' + MODELE: + ,,); + +TEST_RESU(RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'INTE_ELNO_REAC' + NOEUD:'NO1' NOM_CMP:'INTX' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'INTE_ELNO_REAC' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO780 - PRECISION:3.5E-4 - CRITERE:'ABSOLU' VALE:0.0 - NOM_CMP:'INTX' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'INTE_ELNO_REAC' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO751 - PRECISION:3.5E-4 CRITERE:'ABSOLU' - VALE:0.0 + PRECISION:0.00035 + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'INTE_ELNO_REAC' + NOEUD:'NO780' NOM_CMP:'INTX' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'INTE_ELNO_REAC' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO763 - PRECISION:3.5E-4 + VALE:0.0 CRITERE:'ABSOLU' + PRECISION:0.00035 + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'INTE_ELNO_REAC' + NOEUD:'NO751' + NOM_CMP:'INTX' VALE:0.0 + CRITERE:'ABSOLU' + PRECISION:0.00035 + MAILLE:'MA57') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'INTE_ELNO_REAC' + NOEUD:'NO763' NOM_CMP:'INTX' - NUME_ORDRE:1)); - -&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM - CHAM_MATER:CHAMPMAT - MODELE:GUIDE - OPTION:'PRES_ELNO_DBEL' - TOUT_ORDRE:'OUI'); - -TEST_RESU(RESU:(NOM_CHAM:'PRES_ELNO_DBEL' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO1 - VALE:109.90000000000001 + VALE:0.0 + CRITERE:'ABSOLU' + PRECISION:0.00035 + MAILLE:'MA57')); + +&PRESHARM=CALC_ELEM(OPTION:'PRES_ELNO_DBEL' + CHAM_MATER: + + ,, + RESULTAT: + ,, + TOUT_ORDRE:'OUI' + MODELE: + ,,); + +TEST_RESU(RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_DBEL' + NOEUD:'NO1' NOM_CMP:'DB' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_DBEL' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO780 - VALE:109.90000000000001 + VALE:109.9 + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_DBEL' + NOEUD:'NO780' NOM_CMP:'DB' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_DBEL' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO751 - VALE:109.90000000000001 + VALE:109.9 + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_DBEL' + NOEUD:'NO751' NOM_CMP:'DB' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_DBEL' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO763 - VALE:109.90000000000001 + VALE:109.9 + MAILLE:'MA57') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_DBEL' + NOEUD:'NO763' NOM_CMP:'DB' - NUME_ORDRE:1)); - -&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM - CHAM_MATER:CHAMPMAT - MODELE:GUIDE - OPTION:'PRES_ELNO_REEL' - TOUT_ORDRE:'OUI'); - -TEST_RESU(RESU:(NOM_CHAM:'PRES_ELNO_REEL' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO1 - VALE:-6.2426000000000004 + VALE:109.9 + MAILLE:'MA57')); + +&PRESHARM=CALC_ELEM(OPTION:'PRES_ELNO_REEL' + CHAM_MATER: + + ,, + RESULTAT: + ,, + TOUT_ORDRE:'OUI' + MODELE: + ,,); + +TEST_RESU(RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_REEL' + NOEUD:'NO1' NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_REEL' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO780 - VALE:-6.2426000000000004 + VALE:-6.2426 + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_REEL' + NOEUD:'NO780' NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_REEL' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO751 - VALE:6.0236799999999997 + VALE:-6.2426 + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_REEL' + NOEUD:'NO751' NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_REEL' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO763 - VALE:6.0236799999999997 + VALE:6.02368 + MAILLE:'MA57') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_REEL' + NOEUD:'NO763' NOM_CMP:'PRES' - NUME_ORDRE:1)); - -&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM - CHAM_MATER:CHAMPMAT - MODELE:GUIDE - OPTION:'PRES_ELNO_IMAG' - TOUT_ORDRE:'OUI'); - -TEST_RESU(RESU:(NOM_CHAM:'PRES_ELNO_IMAG' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO1 - CRITERE:'ABSOLU' - VALE:0.0 + VALE:6.02368 + MAILLE:'MA57')); + +&PRESHARM=CALC_ELEM(OPTION:'PRES_ELNO_IMAG' + CHAM_MATER: + + ,, + RESULTAT: + ,, + TOUT_ORDRE:'OUI' + MODELE: + ,,); + +TEST_RESU(RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_IMAG' + NOEUD:'NO1' NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_IMAG' - RESULTAT:PRESHARM - MAILLE:MA1 - NOEUD:NO780 + VALE:0.0 CRITERE:'ABSOLU' + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_IMAG' + NOEUD:'NO780' + NOM_CMP:'PRES' VALE:0.0 + CRITERE:'ABSOLU' + MAILLE:'MA1') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_IMAG' + NOEUD:'NO751' NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_IMAG' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO751 - PRECISION:3.3E-3 - CRITERE:'RELATIF' VALE:1.6387 + CRITERE:'RELATIF' + PRECISION:0.0033 + MAILLE:'MA57') + RESU:(NUME_ORDRE:1 + RESULTAT: + ,, + NOM_CHAM:'PRES_ELNO_IMAG' + NOEUD:'NO763' NOM_CMP:'PRES' - NUME_ORDRE:1) - RESU:(NOM_CHAM:'PRES_ELNO_IMAG' - RESULTAT:PRESHARM - MAILLE:MA57 - NOEUD:NO763 - PRECISION:3.3E-3 VALE:1.6387 - NOM_CMP:'PRES' - NUME_ORDRE:1)); + PRECISION:0.0033 + MAILLE:'MA57')); FIN(); diff --git a/Exemples/ex2/main.py b/Exemples/ex2/main.py index 5b7fc10f..f87bec7c 100644 --- a/Exemples/ex2/main.py +++ b/Exemples/ex2/main.py @@ -7,7 +7,7 @@ - sa vérification (report) """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] import Accas from Accas import SIMP,FACT @@ -23,3 +23,4 @@ else: o=a({'b':1},'mcf1',None) print o print o.report() +assert o.isvalid() ==1 diff --git a/Exemples/ex20/ahlv100a.comm b/Exemples/ex20/ahlv100a.comm index 2cb6159a..97d1e84e 100755 --- a/Exemples/ex20/ahlv100a.comm +++ b/Exemples/ex20/ahlv100a.comm @@ -129,93 +129,9 @@ IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES, GRAIN = 'VALEUR', OPTION = 'LIGNE')) -VECRES=COMB_CHAM_NO( COMB_C=_F( CHAM_NO = VECTASS, - COEF_C = ('RI',0.,-3141.5926,)) - ) - MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES ) -VECRES=RESO_LDLT( reuse=VECRES, MATR_FACT=MATRES, - CHAM_NO=VECRES - ) - -TEST_RESU(CHAM_NO=( - _F( CHAM_GD = VECRES, - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)), - _F( CHAM_GD = VECRES, - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,))) - ) - -CHNODBEL=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_DBEL' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9), - _F( CHAM_GD = CHNODBEL, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9)) - ) - -# -PREEL=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_REEL' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = PREEL, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426), - _F( CHAM_GD = PREEL, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426), - _F( CHAM_GD = PREEL, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368), - _F( CHAM_GD = PREEL, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368)) - ) - -PIMAG=CALC_CHAM_ELEM( MODELE=GUIDE, - CHAM_MATER=CHAMPMAT, - PRES=VECRES, - OPTION='PRES_ELNO_IMAG' - ) - -TEST_RESU(CHAM_ELEM=( - _F( CHAM_GD = PIMAG, - MAILLE = 'MA1', - NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA1', - NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0., - CRITERE = 'ABSOLU'), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA57', - NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3), - _F( CHAM_GD = PIMAG, - MAILLE = 'MA57', - NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3)) - ) #-----------------------CALCUL HARMONIQUE------------------------------- diff --git a/Exemples/ex20/main.py b/Exemples/ex20/main.py index 35b93d81..8a55cbd8 100644 --- a/Exemples/ex20/main.py +++ b/Exemples/ex20/main.py @@ -3,22 +3,19 @@ Construction d'un item JDC """ -import prefs - import sys -sys.path[:0]=['../..','../../Editeur','../../..'] +sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] -from Cata import cata -from analyse_catalogue import analyse_catalogue +from cataSTA8 import cata +from Editeur.autre_analyse_cata import analyse_catalogue f=open('ahlv100a.comm','r') text=f.read() f.close() -fic_cata="../../../Cata/cata.py" -cata_ordonne = analyse_catalogue(None,fic_cata) +cata_ordonne,list_simp_reel = analyse_catalogue(cata) j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a", - cata_ord_dico=cata_ordonne.dico) + cata_ord_dico=cata_ordonne) j.compile() if not j.cr.estvide(): print j.cr @@ -29,8 +26,10 @@ if not j.cr.estvide(): print j.cr sys.exit() -import treeitemincanvas -t=treeitemincanvas.TREEITEMINCANVAS(j,"ahlv100a") +from Editeur.treeitemincanvas import TREEITEMINCANVAS +from Editeur import comploader +comploader.charger_composants() +t=TREEITEMINCANVAS(j,"ahlv100a") t.mainloop() diff --git a/Exemples/ex20/prefs.py b/Exemples/ex20/prefs.py deleted file mode 100644 index bae03e07..00000000 --- a/Exemples/ex20/prefs.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -import os - -# REPINI sert à localiser le fichier editeur.ini -REPINI=os.path.dirname(os.path.abspath(__file__)) - -# ICONDIR sert à localiser le répertoire contenant les icones -ICONDIR=os.path.join(REPINI,'../..','Editeur','icons') - -# CODE_PATH sert à localiser Accas et Cata (si pas infos dans editeur.ini) -#CODE_PATH = os.path.join(REPINI,'..') - -# INSTALLDIR sert à localiser faqs.txt et les modules Eficas -#INSTALLDIR=os.path.join(REPINI,'..','Editeur') diff --git a/Exemples/ex21/Appli.py b/Exemples/ex21/Appli.py index 732f4b5f..b5497ae4 100644 --- a/Exemples/ex21/Appli.py +++ b/Exemples/ex21/Appli.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import Tkinter import Pmw +from Editeur import comploader class CONFIG: isdeveloppeur='NON' @@ -30,9 +31,11 @@ class Appli: self.CONFIGURATION=CONFIG() self.root=Tkinter.Tk() Pmw.initialise(self.root) + comploader.charger_composants() self.init() def init(self): + self.dict_reels={} self.statusbar=STATUSBAR(self.root) def affiche_infos(self,message): diff --git a/Exemples/ex21/main.py b/Exemples/ex21/main.py index 0aefffe6..5647ee16 100644 --- a/Exemples/ex21/main.py +++ b/Exemples/ex21/main.py @@ -3,28 +3,24 @@ Construction d'un item JDC """ -import prefs - import sys -sys.path[:0]=['../..','../../Editeur','../../Aster' ] - -from Cata import cata_STA6 -cata=cata_STA6 +sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] -from analyse_catalogue import analyse_catalogue - -from Appli import Appli -import jdcdisplay +from cataSTA6 import cata +from Editeur.autre_analyse_cata import analyse_catalogue f=open('ahlv100a.comm','r') text=f.read() f.close() -fic_cata="../../Aster/Cata/cata_STA6.py" -cata_ordonne = analyse_catalogue(None,fic_cata) +from Appli import Appli +from Editeur import jdcdisplay + +a=Appli() -j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a", - cata_ord_dico=cata_ordonne.entites) +cata_ordonne,list_simp_reel = analyse_catalogue(cata) +j=cata.JdC(procedure=text,appli=a,cata=cata,nom="ahlv100a", + cata_ord_dico=cata_ordonne) j.compile() if not j.cr.estvide(): @@ -36,7 +32,6 @@ if not j.cr.estvide(): print j.cr sys.exit() -a=Appli() d=jdcdisplay.JDCDISPLAY(j,"ahlv100a",appli=a,parent=a.root) diff --git a/Exemples/ex21/prefs.py b/Exemples/ex21/prefs.py deleted file mode 100644 index 796e625f..00000000 --- a/Exemples/ex21/prefs.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -import os - -# REPINI sert à localiser le fichier editeur.ini -REPINI=os.path.dirname(os.path.abspath(__file__)) - -# ICONDIR sert à localiser le répertoire contenant les icones -ICONDIR=os.path.join(REPINI,'../..','Editeur','icons') - -# CODE_PATH sert à localiser Accas et Cata (si pas infos dans editeur.ini) -#CODE_PATH = os.path.join(REPINI,'..') - -# INSTALLDIR sert à localiser faqs.txt et les modules Eficas -#INSTALLDIR=os.path.join(REPINI,'..','Editeur') - -# lang indique la langue utilisée pour les chaines d'aide : fr ou ang -lang='fr' - diff --git a/Exemples/ex22/main.py b/Exemples/ex22/main.py index 7eacee7c..ae7964da 100644 --- a/Exemples/ex22/main.py +++ b/Exemples/ex22/main.py @@ -3,10 +3,9 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] -from Cata import cata_STA5 -cata=cata_STA5 +from cataSTA5 import cata import convert c=convert.plugins['asterv5']() diff --git a/Exemples/ex22/main2.py b/Exemples/ex22/main2.py index de794c1f..7204812c 100644 --- a/Exemples/ex22/main2.py +++ b/Exemples/ex22/main2.py @@ -3,10 +3,9 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] -from Cata import cata_STA5 -cata=cata_STA5 +from cataSTA5 import cata import convert c=convert.plugins['asterv5']() diff --git a/Exemples/ex22/main3.py b/Exemples/ex22/main3.py index 9bdcb45b..f6c326f3 100644 --- a/Exemples/ex22/main3.py +++ b/Exemples/ex22/main3.py @@ -3,10 +3,9 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] -from Cata import cata_STA5 -cata=cata_STA5 +from cataSTA5 import cata import convert c=convert.plugins['python']() diff --git a/Exemples/ex22/titi.comm b/Exemples/ex22/titi.comm index ca0b5d1c..3068548f 100644 --- a/Exemples/ex22/titi.comm +++ b/Exemples/ex22/titi.comm @@ -6,457 +6,485 @@ DEBUT(); % LECTURE DES TEMPS %CYCLE 1 % LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS +% PRE_GIBI(); % +% MA1=LIRE_MAILLAGE(); % +% -&MA1=DEFI_GROUP(CREA_GROUP_NO:(GROUP_MA:(FIXATI,APPUI,LIAS_1,LIAS_2, - EBGUIDE,MAINTIEN, - MAIN_SUP,EMBO_SUP, - TUB_GUID,GRILLES, - EMBO_INF,PIEDS, - CRAYONS),) - MAILLAGE:MA1); +&MA1=DEFI_GROUP(MAILLAGE: + CREA_GROUP_NO:(GROUP_MA:('FIXATI','APPUI','LIAS_1', + 'LIAS_2','EBGUIDE', + 'MAINTIEN', + 'MAIN_SUP', + 'EMBO_SUP', + 'TUB_GUID','GRILLES', + 'EMBO_INF','PIEDS', + 'CRAYONS'),)); % % AFFECTATION DU MODELE % +% -MO1=AFFE_MODELE(AFFE:(GROUP_MA:CRAYONS +MO1=AFFE_MODELE(MAILLAGE: + AFFE:(GROUP_MA:'CRAYONS' PHENOMENE:'MECANIQUE' MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:TUB_GUID + AFFE:(GROUP_MA:'TUB_GUID' PHENOMENE:'MECANIQUE' MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:(EMBO_SUP,EMBO_INF) + AFFE:(GROUP_MA:('EMBO_SUP','EMBO_INF') PHENOMENE:'MECANIQUE' MODELISATION:'DKT') - AFFE:(GROUP_MA:PIEDS + AFFE:(GROUP_MA:'PIEDS' PHENOMENE:'MECANIQUE' MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:GRILLES + AFFE:(GROUP_MA:'GRILLES' PHENOMENE:'MECANIQUE' MODELISATION:'POU_D_E') - AFFE:(GROUP_MA:LI_GR_CR + AFFE:(GROUP_MA:'LI_GR_CR' PHENOMENE:'MECANIQUE' MODELISATION:'DIS_TR') - AFFE:(GROUP_MA:LI_GR_GU + AFFE:(GROUP_MA:'LI_GR_GU' PHENOMENE:'MECANIQUE' MODELISATION:'DIS_TR') - AFFE:(GROUP_MA:MAINTIEN + AFFE:(GROUP_MA:'MAINTIEN' PHENOMENE:'MECANIQUE' - MODELISATION:'POU_D_E') - MAILLAGE:MA1); + MODELISATION:'POU_D_E')); % % AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES % +% -CARA1=AFFE_CARA_ELEM(MODELE:MO1 - COQUE:(ANGL_REP:90.0 - GROUP_MA:EBOINF - EPAIS:2.0) - COQUE:(ANGL_REP:90.0 - GROUP_MA:EBOSUP - EPAIS:3.0) - DISCRET:(VALE:(1.0,2.0,3.0,4.0,5.0,6.0) - REPERE:'LOCAL' +CARA1=AFFE_CARA_ELEM(MODELE: + POUTRE:(GROUP_MA:'CRAY' + SECTION:'CERCLE' + CARA:('R','EP') + VALE:(3.0,3.0)) + POUTRE:(GROUP_MA:'GUID' + SECTION:'CERCLE' + CARA:('R','EP') + VALE:(3.0,3.0)) + POUTRE:(GROUP_MA:'RETRE' + SECTION:'CERCLE' + CARA:('R','EP') + VALE:(3.0,3.0)) + POUTRE:(GROUP_MA:('GRIL_I') + SECTION:'RECTANGLE' + CARA:('HY','HZ') + VALE:(3.0,3.0)) + POUTRE:(GROUP_MA:('GRIL_E') + SECTION:'RECTANGLE' + CARA:('HY','HZ') + VALE:(3.0,3.0)) + POUTRE:(GROUP_MA:('MAINTI_Y','MAINTI_Z') + SECTION:'RECTANGLE' + CARA:('HY','HZ') + VALE:(3.0,3.0)) + POUTRE:(GROUP_MA:'PI_PLE' + SECTION:'GENERALE' + CARA:('A','IZ','IY','JX') + VALE:(1.0,2.0,3.0,4.0)) + POUTRE:(GROUP_MA:'PI_TRO' + SECTION:'GENERALE' + CARA:('A','IZ','IY','JX') + VALE:(1.0,2.0,3.0,4.0)) + ORIENTATION:(GROUP_MA:('GRIL_I','GRIL_E') + VALE:(1.0,0.0,0.0) + CARA:'VECT_Y') + ORIENTATION:(GROUP_MA:('MAINTI_Y') + VALE:(0.0,1.0,0.0) + CARA:'VECT_Y') + ORIENTATION:(GROUP_MA:('MAINTI_Z') + VALE:(0.0,0.0,1.0) + CARA:'VECT_Y') + ORIENTATION:(GROUP_MA:('PI_PLE','PI_TRO') + VALE:(0.0,1.0,0.0) + CARA:'VECT_Y') + ORIENTATION:(GROUP_MA:('ELASTI','RIGID') + VALE:(1.0,0.0,0.0) + CARA:'VECT_Y') + DISCRET:(GROUP_MA:'ELASTI' CARA:'K_TR_D_L' - GROUP_MA:ELASTI) - DISCRET:(VALE:(1.0,2.0,3.0,4.0,5.0,6.0) - REPERE:'LOCAL' + VALE:(1.0,2.0,3.0,4.0,5.0,6.0) + REPERE:'LOCAL') + DISCRET:(GROUP_MA:'RIGID' CARA:'K_TR_D_L' - GROUP_MA:RIGID) - ORIENTATION:(VALE:(1.0,0.0,0.0) - CARA:'VECT_Y' - GROUP_MA:(GRIL_I,GRIL_E)) - ORIENTATION:(VALE:(0.0,1.0,0.0) - CARA:'VECT_Y' - GROUP_MA:(MAINTI_Y)) - ORIENTATION:(VALE:(0.0,0.0,1.0) - CARA:'VECT_Y' - GROUP_MA:(MAINTI_Z)) - ORIENTATION:(VALE:(0.0,1.0,0.0) - CARA:'VECT_Y' - GROUP_MA:(PI_PLE,PI_TRO)) - ORIENTATION:(VALE:(1.0,0.0,0.0) - CARA:'VECT_Y' - GROUP_MA:(ELASTI,RIGID)) - POUTRE:(SECTION:'CERCLE' - GROUP_MA:CRAY - VALE:(3.0,3.0) - CARA:('R','EP')) - POUTRE:(SECTION:'CERCLE' - GROUP_MA:GUID - VALE:(3.0,3.0) - CARA:('R','EP')) - POUTRE:(SECTION:'CERCLE' - GROUP_MA:RETRE - VALE:(3.0,3.0) - CARA:('R','EP')) - POUTRE:(SECTION:'RECTANGLE' - GROUP_MA:(GRIL_I) - VALE:(3.0,3.0) - CARA:('HY','HZ')) - POUTRE:(SECTION:'RECTANGLE' - GROUP_MA:(GRIL_E) - VALE:(3.0,3.0) - CARA:('HY','HZ')) - POUTRE:(SECTION:'RECTANGLE' - GROUP_MA:(MAINTI_Y,MAINTI_Z) - VALE:(3.0,3.0) - CARA:('HY','HZ')) - POUTRE:(SECTION:'GENERALE' - GROUP_MA:PI_PLE - VALE:(1.0,2.0,3.0,4.0) - CARA:('A','IZ','IY','JX')) - POUTRE:(SECTION:'GENERALE' - GROUP_MA:PI_TRO - VALE:(1.0,2.0,3.0,4.0) - CARA:('A','IZ','IY','JX'))); + VALE:(1.0,2.0,3.0,4.0,5.0,6.0) + REPERE:'LOCAL') + COQUE:(EPAIS:2.0 + GROUP_MA:'EBOINF' + ANGL_REP:90.0) + COQUE:(EPAIS:3.0 + GROUP_MA:'EBOSUP' + ANGL_REP:90.0)); % % DEFINITION DES CHARGES ET CONDITIONS LIMITES % DEFINITION DES TEMPERATURES NODALES EVOLUTIVES % +% -F_TP1_1=DEFI_FONCTION(NOM_RESU:'TEMP' - PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,4.0) - PROL_DROIT:'CONSTANT'); +F_TP1_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,4.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' NOM_RESU:'TEMP' ); -F_TP2_1=DEFI_FONCTION(NOM_RESU:'TEMP' - PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,4.0) - PROL_DROIT:'CONSTANT'); +F_TP2_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,4.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' NOM_RESU:'TEMP' ); -F_TP3_1=DEFI_FONCTION(NOM_RESU:'TEMP' - PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,4.0) - PROL_DROIT:'CONSTANT'); +F_TP3_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,4.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' NOM_RESU:'TEMP' ); -CHTEM1_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F' - AFFE:(FONCTION:F_TP1_1 +CHTEM1_1=AFFE_CHAM_NO(MAILLAGE: + + GRANDEUR:'TEMP_F' + AFFE:(NOM_CMP:'TEMP' GROUP_NO: - (MAINTIEN,PIEDS, - TUB_GUID,GRILLES, - CRAYONS), - NOM_CMP:'TEMP') - AFFE:(FONCTION:(F_TP1_1,F_TP1_1,F_TP1_1) - GROUP_NO:(EMBO_SUP,EMBO_INF) - NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')) - MAILLAGE:MA1); - -CHTEM2_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F' - AFFE:(FONCTION:F_TP2_1 + ('MAINTIEN','PIEDS', + 'TUB_GUID','GRILLES', + 'CRAYONS'), + FONCTION: + + ,,) + AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP') + GROUP_NO:('EMBO_SUP','EMBO_INF') + FONCTION: + + (, + , + ),)); + +CHTEM2_1=AFFE_CHAM_NO(MAILLAGE: + + GRANDEUR:'TEMP_F' + AFFE:(NOM_CMP:'TEMP' GROUP_NO: - (MAINTIEN,PIEDS, - TUB_GUID,GRILLES, - CRAYONS), - NOM_CMP:'TEMP') - AFFE:(FONCTION:(F_TP2_1,F_TP2_1,F_TP2_1) - GROUP_NO:(EMBO_SUP,EMBO_INF) - NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')) - MAILLAGE:MA1); - -CHTEM3_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F' - AFFE:(FONCTION:F_TP3_1 - GROUP_NO:(MAINTIEN,PIEDS,TUB_GUID,GRILLES) - NOM_CMP:'TEMP') - AFFE:(FONCTION:(F_TP3_1,F_TP3_1,F_TP3_1) - GROUP_NO:(EMBO_SUP,EMBO_INF) - NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')) - AFFE:(FONCTION:F_TP3_1 - GROUP_NO:CRAYONS - NOM_CMP:'TEMP') - MAILLAGE:MA1); - -CHTH_1=CREA_RESU(NOM_CHAM:'TEMP' - CHAM_GD:(INST:0.0 - CHAM_NO:CHTEM1_1) - CHAM_GD:(INST:1000.0 - CHAM_NO:CHTEM1_1) - CHAM_GD:(INST:2000.0 - CHAM_NO:CHTEM2_1) - CHAM_GD:(INST:3000.0 - CHAM_NO:CHTEM3_1) - CHAM_GD:(INST:4000.0 - CHAM_NO:CHTEM3_1) - CHAM_GD:(INST:5000.0 - CHAM_NO:CHTEM2_1) - CHAM_GD:(INST:6000.0 - CHAM_NO:CHTEM1_1) - CHAM_GD:(INST:7000.0 - CHAM_NO:CHTEM1_1) - TYPE_RESU:'EVOL_THER'); + ('MAINTIEN','PIEDS', + 'TUB_GUID','GRILLES', + 'CRAYONS'), + FONCTION: + + ,,) + AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP') + GROUP_NO:('EMBO_SUP','EMBO_INF') + FONCTION: + + (, + , + ),)); + +CHTEM3_1=AFFE_CHAM_NO(MAILLAGE: + + GRANDEUR:'TEMP_F' + AFFE:(NOM_CMP:'TEMP' + GROUP_NO: + + ('MAINTIEN','PIEDS', + 'TUB_GUID','GRILLES'), + FONCTION: + + ,,) + AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP') + GROUP_NO:('EMBO_SUP','EMBO_INF') + FONCTION: + + (, + , + ),) + AFFE:(NOM_CMP:'TEMP' + GROUP_NO:'CRAYONS' + FONCTION: + + ,,)); + +CHTH_1=CREA_RESU(TYPE_RESU:'EVOL_THER' + NOM_CHAM:'TEMP' + CHAM_GD:(CHAM_NO: + + INST:0.0) + CHAM_GD:(CHAM_NO: + + INST:1000.0) + CHAM_GD:(CHAM_NO: + + INST:2000.0) + CHAM_GD:(CHAM_NO: + + INST:3000.0) + CHAM_GD:(CHAM_NO: + + INST:4000.0) + CHAM_GD:(CHAM_NO: + + INST:5000.0) + CHAM_GD:(CHAM_NO: + + INST:6000.0) + CHAM_GD:(CHAM_NO: + + INST:7000.0)); % CHARGEMENT: CHARGES THERMO-MECANIQUES % ---------------------------------------- +% -THERM_1=AFFE_CHAR_MECA(MODELE:MO1 - TEMP_CALCULEE:CHTH_1); +THERM_1=AFFE_CHAR_MECA(TEMP_CALCULEE: + + MODELE: + ); % DEFINITION DES CONDITIONS LIMITES % DES CONDITIONS DE CONTACT % % CHARGEMENT: PESANTEUR % +% -PESANT_1=AFFE_CHAR_MECA(MODELE:MO1 - PESANTEUR:(9.8100000000000005,-1.0,0.0,0.0)); +PESANT_1=AFFE_CHAR_MECA(PESANTEUR:(9.81,-1.0,0.0,0.0) + MODELE: + ); % % CONDITIONS AUX LIMITES % +% -CL_PER_1=AFFE_CHAR_MECA(MODELE:MO1 - DDL_IMPO:(DZ:0.0 - DX:0.0 - DY:0.0 - GROUP_NO:FIXATI - DRZ:0.0 +CL_PER_1=AFFE_CHAR_MECA(MODELE: + + DDL_IMPO:(DRY:0.0 DRX:0.0 - DRY:0.0) - DDL_IMPO:(DX:0.0 - GROUP_NO:APPUI) - DDL_IMPO:(DZ:0.0 - DY:0.0 - GROUP_NO:EBGUIDE DRZ:0.0 + GROUP_NO:'FIXATI' + DY:0.0 + DZ:0.0 + DX:0.0) + DDL_IMPO:(GROUP_NO:'APPUI' + DX:0.0) + DDL_IMPO:(DRY:0.0 DRX:0.0 - DRY:0.0) - DDL_IMPO:(GROUP_NO:(LIAS_1,LIAS_2) - DRX:0.0) - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DX' - COEF_MULT_2:-1.0 + DRZ:0.0 + GROUP_NO:'EBGUIDE' + DY:0.0 + DZ:0.0) + DDL_IMPO:(DRX:0.0 + GROUP_NO:('LIAS_1','LIAS_2')) + LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' + GROUP_NO_2:'LIAS_2' + DDL_2:'DX' COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DX') - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DY' COEF_MULT_2:-1.0 + DDL_1:'DX' + COEF_MULT_1:1.0) + LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' + GROUP_NO_2:'LIAS_2' + DDL_2:'DY' COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DY') - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DZ' COEF_MULT_2:-1.0 + DDL_1:'DY' + COEF_MULT_1:1.0) + LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' + GROUP_NO_2:'LIAS_2' + DDL_2:'DZ' COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DZ') - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DRY' COEF_MULT_2:-1.0 + DDL_1:'DZ' + COEF_MULT_1:1.0) + LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' + GROUP_NO_2:'LIAS_2' + DDL_2:'DRY' COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DRY') - LIAISON_GROUP:(COEF_MULT_1:1.0 - DDL_1:'DRZ' COEF_MULT_2:-1.0 + DDL_1:'DRY' + COEF_MULT_1:1.0) + LIAISON_GROUP:(GROUP_NO_1:'LIAS_1' + GROUP_NO_2:'LIAS_2' + DDL_2:'DRZ' COEF_IMPO:0.0 - GROUP_NO_1:LIAS_1 - GROUP_NO_2:LIAS_2 - DDL_2:'DRZ')); + COEF_MULT_2:-1.0 + DDL_1:'DRZ' + COEF_MULT_1:1.0)); +% % -CL_CTC=AFFE_CHAR_MECA(INFO:1 - MODELE:MO1 - CONTACT:(GROUP_MA_1:EBOINF +CL_CTC=AFFE_CHAR_MECA(MODELE: + INFO:1 + CONTACT:(APPARIEMENT:'NODAL' VECT_NORM_2:(-1.0,0.0,0.0) - APPARIEMENT:'NODAL' - GROUP_MA_2:MCRBAS)); + GROUP_MA_1:'EBOINF' + GROUP_MA_2:'MCRBAS')); % % DEPLACEMENT DU SYSTEME DE MAINTIEN % +% -CLDI_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE: - (0.0,0.0,1000.0, - 0.10000000000000001,2000.0, - 0.20000000000000001,3000.0, - 0.20000000000000001,4000.0, - 0.20000000000000001,5000.0, - 0.20000000000000001,6000.0, - 0.10000000000000001,7000.0, - 0.10000000000000001), - PROL_DROIT:'CONSTANT'); +CLDI_F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,1000.0,0.1,2000.0,0.2,3000.0,0.2,4000.0,0.2,5000.0,0.2,6000.0,0.1,7000.0,0.1) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -CL_DI_1=AFFE_CHAR_MECA(MODELE:MO1 - DDL_IMPO:(DX:-1.0 - GROUP_NO:MAIN_SUP)); +CL_DI_1=AFFE_CHAR_MECA(MODELE: + + DDL_IMPO:(GROUP_NO:'MAIN_SUP' + DX:-1.0)); % DEFINITION DES FORCES EXTERIEURES % % FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE % +% -HYDR_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE: - (0.0,0.0,1000.0, - 0.10000000000000001,2000.0, - 0.20000000000000001,3000.0, - 0.20000000000000001,4000.0, - 0.20000000000000001,5000.0, - 0.20000000000000001,6000.0, - 0.10000000000000001,7000.0, - 0.10000000000000001), - PROL_DROIT:'CONSTANT'); +HYDR_F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,1000.0,0.1,2000.0,0.2,3000.0,0.2,4000.0,0.2,5000.0,0.2,6000.0,0.1,7000.0,0.1) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); % % PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID % +% -HYFRTU_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +HYFRTU_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); % % PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID % +% -HYFRCR_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +HYFRCR_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); % % CHARGEMENT : FORCES HYDRODYNAMIQUES % +% -HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE:(GROUP_MA:(GRIL10) - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL1) +HYDR_1=AFFE_CHAR_MECA(MODELE: + FORCE_COQUE:(FX:10.0 + GROUP_MA:'EBOSUP') + FORCE_COQUE:(FX:10.0 + GROUP_MA:'EBOINF') + FORCE_POUTRE:(GROUP_MA:('GRIL10') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL2) + FORCE_POUTRE:(GROUP_MA:('GRIL1') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL3) + FORCE_POUTRE:(GROUP_MA:('GRIL2') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL4) + FORCE_POUTRE:(GROUP_MA:('GRIL3') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL5) + FORCE_POUTRE:(GROUP_MA:('GRIL4') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL6) + FORCE_POUTRE:(GROUP_MA:('GRIL5') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL7) + FORCE_POUTRE:(GROUP_MA:('GRIL6') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL8) + FORCE_POUTRE:(GROUP_MA:('GRIL7') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL9) + FORCE_POUTRE:(GROUP_MA:('GRIL8') FX:10.0) - MODELE:MO1 - FORCE_COQUE:(FX:10.0 - GROUP_MA:EBOSUP) - FORCE_COQUE:(FX:10.0 - GROUP_MA:EBOINF)); + FORCE_POUTRE:(GROUP_MA:('GRIL9') + FX:10.0)); -TOTO_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,10.0,5.0,10.0) - PROL_DROIT:'CONSTANT'); +TOTO_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,10.0,5.0,10.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); % +% -FOHYDR_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:(GUID) - FX:TOTO_1) - FORCE_POUTRE:(GROUP_MA:CRAY - FX:TOTO_1) - MODELE:MO1); +FOHYDR_1=AFFE_CHAR_MECA_F(MODELE: + + FORCE_POUTRE:(GROUP_MA:('GUID') + FX: + + ,,) + FORCE_POUTRE:(GROUP_MA:'CRAY' + FX: + + ,,)); % % PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE % +% -ARFRTU_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,10.0,5.0,10.0) - PROL_DROIT:'CONSTANT'); +ARFRTU_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,10.0,5.0,10.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); % % PROFIL DES FORCES D'ARCHIMEDE CRAYON % +% -ARFRCR_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'X' - VALE:(0.0,10.0,5.0,10.0) - PROL_DROIT:'CONSTANT'); +ARFRCR_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,10.0,5.0,10.0) NOM_PARA:'X' PROL_GAUCHE:'CONSTANT' ); % % FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE % +% -ARCH_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE: - (0.0,0.0,1000.0, - 0.10000000000000001,2000.0, - 0.20000000000000001,3000.0, - 0.20000000000000001,4000.0, - 0.20000000000000001,5000.0, - 0.20000000000000001,6000.0, - 0.10000000000000001,7000.0, - 0.10000000000000001), - PROL_DROIT:'CONSTANT'); +ARCH_F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,1000.0,0.1,2000.0,0.2,3000.0,0.2,4000.0,0.2,5000.0,0.2,6000.0,0.1,7000.0,0.1) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); % % % CHARGEMENT : FORCES D'ARCHIMEDE % ---------------------------------------- % +% -ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE:(GROUP_MA:MAINTIEN - FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL10) +ARCH_1=AFFE_CHAR_MECA(MODELE: + FORCE_COQUE:(FX:10.0 + GROUP_MA:'EBOSUP') + FORCE_COQUE:(FX:10.0 + GROUP_MA:'EBOINF') + FORCE_POUTRE:(GROUP_MA:'MAINTIEN' FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL1) + FORCE_POUTRE:(GROUP_MA:('GRIL10') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL2) + FORCE_POUTRE:(GROUP_MA:('GRIL1') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL3) + FORCE_POUTRE:(GROUP_MA:('GRIL2') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL4) + FORCE_POUTRE:(GROUP_MA:('GRIL3') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL5) + FORCE_POUTRE:(GROUP_MA:('GRIL4') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL6) + FORCE_POUTRE:(GROUP_MA:('GRIL5') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL7) + FORCE_POUTRE:(GROUP_MA:('GRIL6') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL8) + FORCE_POUTRE:(GROUP_MA:('GRIL7') FX:10.0) - FORCE_POUTRE:(GROUP_MA:(GRIL9) + FORCE_POUTRE:(GROUP_MA:('GRIL8') FX:10.0) - MODELE:MO1 - FORCE_COQUE:(FX:10.0 - GROUP_MA:EBOSUP) - FORCE_COQUE:(FX:10.0 - GROUP_MA:EBOINF)); - -FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:GUID - FX:ARCH_F1) - FORCE_POUTRE:(GROUP_MA:CRAY - FX:ARCH_F1) - MODELE:MO1); + FORCE_POUTRE:(GROUP_MA:('GRIL9') + FX:10.0)); + +FOARCH_1=AFFE_CHAR_MECA_F(MODELE: + + FORCE_POUTRE:(GROUP_MA:'GUID' + FX: + + ,,) + FORCE_POUTRE:(GROUP_MA:'CRAY' + FX: + + ,,)); % % % FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON @@ -467,628 +495,228 @@ FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:GUID % % DEFINITION DE LA LISTE D'INSTANTS % +% -L_FRIG=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:1000.0 - NOMBRE:100) - DEBUT:0.0); +L_FRIG=DEFI_LIST_REEL(DEBUT:0.0 + INTERVALLE:(NOMBRE:100 + JUSQU_A:1000.0)); % % INRTERPRETATION DES FONCTIONS % +% -F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F2=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F2=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F3=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F3=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F4=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F4=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F5=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F5=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F6=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F6=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F7=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F7=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F8=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F8=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F9=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F9=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -F10=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE:(0.0,0.0,4.3200E4,0.0) - PROL_DROIT:'CONSTANT'); +F10=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); -FRIG1=CALC_FONC_INTERP(FONCTION:F1 +FRIG1=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG2=CALC_FONC_INTERP(FONCTION:F2 +FRIG2=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG3=CALC_FONC_INTERP(FONCTION:F3 +FRIG3=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG4=CALC_FONC_INTERP(FONCTION:F4 +FRIG4=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG5=CALC_FONC_INTERP(FONCTION:F5 +FRIG5=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG6=CALC_FONC_INTERP(FONCTION:F6 +FRIG6=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG7=CALC_FONC_INTERP(FONCTION:F7 +FRIG7=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG8=CALC_FONC_INTERP(FONCTION:F8 +FRIG8=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG9=CALC_FONC_INTERP(FONCTION:F9 +FRIG9=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); -FRIG10=CALC_FONC_INTERP(FONCTION:F10 +FRIG10=CALC_FONC_INTERP(LIST_PARA: + PROL_DROIT:'CONSTANT' - INTERPOL:'LIN' PROL_GAUCHE:'CONSTANT' - LIST_PARA:L_FRIG); + INTERPOL:'LIN' + FONCTION: + + ,,); % % DEFINITION DU FLUX NEUTRONIQUE RADIAL +% -FLUX_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'INST' - VALE: - (0.0,0.0,4.3200E4,0.0, - 9.74520E5,4.53280E5,2.638800E6, - 2.077850E6,4.087800E6,3.512790E6, - 5.428440E6,4.856770E6,7.245000E6, - 6.676270E6,8.853480E6,8.279770E6, - 1.0460900E7,9.872610E6,1.2202900E7, - 1.1586900E7,1.3944600E7,1.3295200E7, - 1.4143700E7,1.3490200E7,1.5563200E7, - 1.4875300E7,1.7236100E7,1.6506900E7, - 1.7948200E7,1.7199200E7,1.8190100E7, - 1.7433400E7,1.8193700E7,1.7435200E7, - 1.8197300E7,1.7435200E7,1.8200900E7, - 1.7435200E7), - PROL_DROIT:'CONSTANT'); +FLUX_F1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,0.0,43200.0,0.0,974520.0,453280.0,2638800.0,2077850.0,4087800.0,3512790.0,5428440.0,4856770.0,7245000.0,6676270.0,8853480.0,8279770.0,10460900.0,9872610.0,12202900.0,11586900.0,13944600.0,13295200.0,14143700.0,13490200.0,15563200.0,14875300.0,17236100.0,16506900.0,17948200.0,17199200.0,18190100.0,17433400.0,18193700.0,17435200.0,18197300.0,17435200.0,18200900.0,17435200.0) NOM_PARA:'INST' PROL_GAUCHE:'CONSTANT' ); % DEFINITION DU FLUX AXIAL POUR LE CYCLE 1 +% -FLUXAX1=LIRE_FONCTION(PROL_GAUCHE:'CONSTANT' +FLUXAX1=LIRE_FONCTION(PROL_DROIT:'CONSTANT' UNITE:60 - PROL_DROIT:'CONSTANT'); - -FLY_1_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 3.8032834757835002E-07, - -0.088200000000000001, - 3.8083689458688999E-07, - -0.075600000000000001, - 3.8296082621083001E-07,-0.063, - 3.858400997151E-07,-0.0504, - 3.8946100427349999E-07,-0.0378, - 3.9259455128205E-07,-0.0252, - 3.9258457977207998E-07,-0.0126, - 3.9294106125356001E-07,0.0, - 3.9399554843304999E-07,0.0126, - 3.9293233618234E-07,0.0252, - 3.9256712962963002E-07,0.0378, - 3.9256712962963002E-07,0.0504, - 3.8942610398860001E-07,0.063, - 3.8579522792023001E-07, - 0.075600000000000001, - 3.8290972222222002E-07, - 0.088200000000000001, - 3.8077706552707E-07,0.1008, - 3.8026103988603998E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_2=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 4.3595566239316001E-07, - -0.088200000000000001, - 4.3866542022792E-07, - -0.075600000000000001, - 4.4331463675214E-07,-0.063, - 4.4911556267806002E-07,-0.0504, - 4.5750658831909E-07,-0.0378, - 4.6647222222221997E-07,-0.0252, - 4.6002938034188002E-07,-0.0126, - 4.6004309116809001E-07,0.0, - 4.6686235754985997E-07,0.0126, - 4.6003311965811999E-07,0.0252, - 4.6000943732193999E-07,0.0378, - 4.6643981481481001E-07,0.0504, - 4.5746420940171002E-07,0.063, - 4.4906445868945999E-07, - 0.075600000000000001, - 4.4325356125356E-07, - 0.088200000000000001, - 4.3859686609687001E-07,0.1008, - 4.3587838319088001E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_3=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 4.9431891025640996E-07, - -0.088200000000000001, - 5.0005128205127998E-07, - -0.075600000000000001, - 5.1337197293447004E-07,-0.063, - 5.2915313390313001E-07,-0.0504, - 5.3788069800570004E-07,-0.0378, - 5.3504629629630004E-07,-0.0252, - 5.3221189458688998E-07,-0.0126, - 5.3136431623932E-07,0.0, - 5.3135870726495999E-07,0.0126, - 5.3135309829059998E-07,0.0252, - 5.3218696581197002E-07,0.0378, - 5.3500827991452996E-07,0.0504, - 5.3782959401709E-07,0.063, - 5.2909205840456002E-07, - 0.075600000000000001, - 5.1330217236466999E-07, - 0.088200000000000001, - 4.9997150997151001E-07,0.1008, - 4.9423165954416005E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_4=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 5.5489957264956999E-07, - -0.088200000000000001, - 5.6477884615384998E-07, - -0.075600000000000001, - 5.9007781339030998E-07,-0.063, - 5.9726415598291003E-07,-0.0504, - 6.0445049857550001E-07,-0.0378, - 5.9840776353275996E-07,-0.0252, - 5.8440651709402002E-07,-0.0126, - 5.8263906695157003E-07,0.0, - 5.9153240740741004E-07,0.0126, - 5.8262660256409999E-07,0.0252, - 5.8438034188033999E-07,0.0378, - 5.9836663105413E-07,0.0504, - 6.0439316239316004E-07,0.063, - 5.9719497863248E-07, - 0.075600000000000001, - 5.8999679487179001E-07, - 0.088200000000000001, - 5.6469159544159996E-07,0.1008, - 5.5480110398860005E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_5=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 6.1267200854701004E-07, - -0.088200000000000001, - 6.2962357549858005E-07, - -0.075600000000000001, - 6.5655413105413E-07,-0.063, - 6.6164583333332999E-07,-0.0504, - 6.5190242165241998E-07,-0.0378, - 6.5212678062678005E-07,-0.0252, - 6.3746616809116999E-07,-0.0126, - 6.3547435897436004E-07,0.0, - 6.4509686609687001E-07,0.0126, - 6.3546064814814995E-07,0.0252, - 6.3743625356125E-07,0.0378, - 6.5207941595442004E-07,0.0504, - 6.5183885327634997E-07,0.063, - 6.6156980056979999E-07, - 0.075600000000000001, - 6.5646563390312997E-07, - 0.088200000000000001, - 6.2952386039885999E-07,0.1008, - 6.1256356837606998E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_6=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 6.5755128205127996E-07, - -0.088200000000000001, - 6.8336253561253996E-07, - -0.075600000000000001, - 6.9012072649573003E-07,-0.063, - 6.9687891737892E-07,-0.0504, - 6.9362571225071001E-07,-0.0378, - 6.9074768518518997E-07,-0.0252, - 6.8786965811965998E-07,-0.0126, - 6.8586413817664004E-07,0.0, - 6.8585603632478996E-07,0.0126, - 6.8584793447293003E-07,0.0252, - 6.8783600427350001E-07,0.0378, - 6.9069720441594996E-07,0.0504, - 6.9355840455840002E-07,0.063, - 6.9679789886040002E-07, - 0.075600000000000001, - 6.9002412749288002E-07, - 0.088200000000000001, - 6.8325035612536003E-07,0.1008, - 6.5743162393161998E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_7=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 6.9684526353276003E-07, - -0.088200000000000001, - 7.1406606125356005E-07, - -0.075600000000000001, - 7.3236502849003E-07,-0.063, - 7.2076442307691997E-07,-0.0504, - 7.1793500712250995E-07,-0.0378, - 7.2835648148147998E-07,-0.0252, - 7.1444747150996998E-07,-0.0126, - 7.1130893874644005E-07,0.0, - 7.2107727920227996E-07,0.0126, - 7.1129398148148005E-07,0.0252, - 7.1441257122506995E-07,0.0378, - 7.2830288461537998E-07,0.0504, - 7.1786396011395999E-07,0.063, - 7.2067841880341996E-07, - 0.075600000000000001, - 7.3226157407406997E-07, - 0.088200000000000001, - 7.1395138888889005E-07,0.1008, - 6.9671812678063005E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_8=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 7.3679362535612996E-07, - -0.088200000000000001, - 7.5423130341880005E-07, - -0.075600000000000001, - 7.7215633903134002E-07,-0.063, - 7.5865740740741005E-07,-0.0504, - 7.5547774216523998E-07,-0.0378, - 7.6662464387464E-07,-0.0252, - 7.5088461538461995E-07,-0.0126, - 7.4313924501423998E-07,0.0, - 7.486323005698E-07,0.0126, - 7.4312054843304996E-07,0.0252, - 7.5084722222222E-07,0.0378, - 7.6656730769230998E-07,0.0504, - 7.5540170940170999E-07,0.063, - 7.5856267806267997E-07, - 0.075600000000000001, - 7.7204415954415998E-07, - 0.088200000000000001, - 7.5410790598291005E-07,0.1008, - 7.3665776353275997E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_9=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 7.7370940170939995E-07, - -0.088200000000000001, - 8.0144764957264998E-07, - -0.075600000000000001, - 8.0374358974358997E-07,-0.063, - 8.0603952991452995E-07,-0.0504, - 8.0238372507123005E-07,-0.0378, - 7.9936672008546997E-07,-0.0252, - 7.9634971509971995E-07,-0.0126, - 7.8317361111111004E-07,0.0, - 7.8316426282051005E-07,0.0126, - 7.8315491452990996E-07,0.0252, - 7.9631107549857995E-07,0.0378, - 7.9930689102564003E-07,0.0504, - 8.0230270655270996E-07,0.063, - 8.0593856837607005E-07, - 0.075600000000000001, - 8.0362580128205003E-07, - 0.088200000000000001, - 8.0131303418803E-07,0.1008, - 7.7356356837607E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_10=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 7.9424198717948999E-07, - -0.088200000000000001, - 8.1225925925926001E-07, - -0.075600000000000001, - 8.3075516381766E-07,-0.063, - 8.1540651709402001E-07,-0.0504, - 8.1131071937321997E-07,-0.0378, - 8.2297489316238996E-07,-0.0252, - 8.0577403846154003E-07,-0.0126, - 7.9717236467236002E-07,0.0, - 8.0284615384615001E-07,0.0126, - 7.9715117521368004E-07,0.0252, - 8.0573165954416005E-07,0.0378, - 8.2291257122506995E-07,0.0504, - 8.1122845441594998E-07,0.063, - 8.1530306267805998E-07, - 0.075600000000000001, - 8.3063051994301999E-07, - 0.088200000000000001, - 8.1211841168090999E-07,0.1008, - 7.9408742877492998E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_11=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.1647845441594995E-07, - -0.088200000000000001, - 8.3510648148147996E-07, - -0.075600000000000001, - 8.5487873931623998E-07,-0.063, - 8.3969088319087998E-07,-0.0504, - 8.3502920227919995E-07,-0.0378, - 8.4651014957265E-07,-0.0252, - 8.2973931623932002E-07,-0.0126, - 8.2549269943020005E-07,0.0, - 8.3637909544160002E-07,0.0126, - 8.2547275641026002E-07,0.0252, - 8.2969319800569997E-07,0.0378, - 8.4644408831909002E-07,0.0504, - 8.3493945868945997E-07,0.063, - 8.3957995014244996E-07, - 0.075600000000000001, - 8.5474786324785998E-07, - 0.088200000000000001, - 8.3495690883191003E-07,0.1008, - 8.1631641737892005E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_12=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.3948272792023003E-07, - -0.088200000000000001, - 8.7002546296295996E-07, - -0.075600000000000001, - 8.7608564814814997E-07,-0.063, - 8.8214583333333004E-07,-0.0504, - 8.7589245014244996E-07,-0.0378, - 8.7128872863248004E-07,-0.0252, - 8.6668500712251001E-07,-0.0126, - 8.6321616809117001E-07,0.0, - 8.6320432692307996E-07,0.0126, - 8.6319248575499001E-07,0.0252, - 8.6663764245014005E-07,0.0378, - 8.7121705840456005E-07,0.0504, - 8.7579647435896998E-07,0.063, - 8.8202617521368001E-07, - 0.075600000000000001, - 8.7594667022791999E-07, - 0.088200000000000001, - 8.6986716524217003E-07,0.1008, - 8.3931196581196996E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_13=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.5508315527066002E-07, - -0.088200000000000001, - 8.7546616809116998E-07, - -0.075600000000000001, - 9.0944533475783005E-07,-0.063, - 9.1292663817663998E-07,-0.0504, - 8.9653721509972004E-07,-0.0378, - 8.9547275641025999E-07,-0.0252, - 8.7405644586895003E-07,-0.0126, - 8.7004789886040001E-07,0.0, - 8.8226549145299002E-07,0.0126, - 8.7002546296295996E-07,0.0252, - 8.7400534188033999E-07,0.0378, - 8.9539672364672004E-07,0.0504, - 8.9643376068376001E-07,0.063, - 9.1279825498575999E-07, - 0.075600000000000001, - 9.0929576210826002E-07, - 0.088200000000000001, - 8.7530288461538001E-07,0.1008, - 8.5490491452990995E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_14=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.5798237179486999E-07, - -0.088200000000000001, - 8.6880893874644002E-07, - -0.075600000000000001, - 9.0299750712251001E-07,-0.063, - 9.0948646723646997E-07,-0.0504, - 9.1597542735043003E-07,-0.0378, - 9.0500302706552995E-07,-0.0252, - 8.8214084757835001E-07,-0.0126, - 8.7779825498574995E-07,0.0, - 8.8993732193732E-07,0.0126, - 8.7777207977207998E-07,0.0252, - 8.8208974358973997E-07,0.0378, - 9.0492325498575998E-07,0.0504, - 9.1586574074073996E-07,0.063, - 9.0935434472933995E-07, - 0.075600000000000001, - 9.0284294871795E-07, - 0.088200000000000001, - 8.6864066951567002E-07,0.1008, - 8.5779665242165003E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_15=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.5773557692308004E-07, - -0.088200000000000001, - 8.6180893874644003E-07, - -0.075600000000000001, - 8.7862838319088002E-07,-0.063, - 8.9924074074074004E-07,-0.0504, - 9.0872489316239005E-07,-0.0378, - 9.0174545940170996E-07,-0.0252, - 8.9476602564102997E-07,-0.0126, - 8.9122364672365005E-07,0.0, - 8.9120993589743996E-07,0.0126, - 8.9119622507122997E-07,0.0252, - 8.9471118233617996E-07,0.0378, - 9.0166132478632003E-07,0.0504, - 9.0861146723646996E-07,0.063, - 8.9910363247862999E-07, - 0.075600000000000001, - 8.7847257834757996E-07, - 0.088200000000000001, - 8.6163693019942995E-07,0.1008, - 8.5754362535613004E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_16=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.5903935185184999E-07, - -0.088200000000000001, - 8.5690046296295998E-07, - -0.075600000000000001, - 8.5831018518518999E-07,-0.063, - 8.6167307692307999E-07,-0.0504, - 8.7125320512820998E-07,-0.0378, - 8.8563586182335997E-07,-0.0252, - 8.7089298433048003E-07,-0.0126, - 8.6842877492877004E-07,0.0, - 8.7942111823362E-07,0.0126, - 8.6840135327634996E-07,0.0252, - 8.7083814102563997E-07,0.0378, - 8.8554985754985996E-07,0.0504, - 8.7113977920228004E-07,0.063, - 8.6153846153846001E-07, - 0.075600000000000001, - 8.5815313390312996E-07, - 0.088200000000000001, - 8.5672471509971999E-07,0.1008, - 8.5884116809116995E-07), - PROL_DROIT:'CONSTANT'); - -FLY_1_17=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'Y' - VALE: - (-0.1008, - 8.6388675213674999E-07, - -0.088200000000000001, - 8.5563782051281999E-07, - -0.075600000000000001, - 8.5087019230768996E-07,-0.063, - 8.4755965099714995E-07,-0.0504, - 8.4761698717949003E-07,-0.0378, - 8.5133636039885996E-07,-0.0252, - 8.4844088319088001E-07,-0.0126, - 8.4633689458689002E-07,0.0, - 8.4644658119657999E-07,0.0126, - 8.4630947293447004E-07,0.0252, - 8.4838479344729004E-07,0.0378, - 8.512516025641E-07,0.0504, - 8.4750480769231E-07,0.063, - 8.4742378917379002E-07, - 0.075600000000000001, - 8.5071064814815003E-07, - 0.088200000000000001, - 8.5545584045584E-07,0.1008, - 8.6368108974359E-07), - PROL_DROIT:'CONSTANT'); - -FLUXRD1=DEFI_NAPPE(FONCTION:(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5, - FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9, - FLY_1_10,FLY_1_11,FLY_1_12, - FLY_1_13,FLY_1_14,FLY_1_15, - FLY_1_16,FLY_1_17), + PROL_GAUCHE:'CONSTANT'); + +FLY_1_1=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,3.80328347578e-07,-0.0882,3.80836894587e-07,-0.0756,3.82960826211e-07,-0.063,3.85840099715e-07,-0.0504,3.89461004273e-07,-0.0378,3.92594551282e-07,-0.0252,3.92584579772e-07,-0.0126,3.92941061254e-07,0.0,3.93995548433e-07,0.0126,3.92932336182e-07,0.0252,3.9256712963e-07,0.0378,3.9256712963e-07,0.0504,3.89426103989e-07,0.063,3.8579522792e-07,0.0756,3.82909722222e-07,0.0882,3.80777065527e-07,0.1008,3.80261039886e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_2=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,4.35955662393e-07,-0.0882,4.38665420228e-07,-0.0756,4.43314636752e-07,-0.063,4.49115562678e-07,-0.0504,4.57506588319e-07,-0.0378,4.66472222222e-07,-0.0252,4.60029380342e-07,-0.0126,4.60043091168e-07,0.0,4.6686235755e-07,0.0126,4.60033119658e-07,0.0252,4.60009437322e-07,0.0378,4.66439814815e-07,0.0504,4.57464209402e-07,0.063,4.49064458689e-07,0.0756,4.43253561254e-07,0.0882,4.38596866097e-07,0.1008,4.35878383191e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_3=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,4.94318910256e-07,-0.0882,5.00051282051e-07,-0.0756,5.13371972934e-07,-0.063,5.29153133903e-07,-0.0504,5.37880698006e-07,-0.0378,5.35046296296e-07,-0.0252,5.32211894587e-07,-0.0126,5.31364316239e-07,0.0,5.31358707265e-07,0.0126,5.31353098291e-07,0.0252,5.32186965812e-07,0.0378,5.35008279915e-07,0.0504,5.37829594017e-07,0.063,5.29092058405e-07,0.0756,5.13302172365e-07,0.0882,4.99971509972e-07,0.1008,4.94231659544e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_4=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,5.5489957265e-07,-0.0882,5.64778846154e-07,-0.0756,5.9007781339e-07,-0.063,5.97264155983e-07,-0.0504,6.04450498576e-07,-0.0378,5.98407763533e-07,-0.0252,5.84406517094e-07,-0.0126,5.82639066952e-07,0.0,5.91532407407e-07,0.0126,5.82626602564e-07,0.0252,5.8438034188e-07,0.0378,5.98366631054e-07,0.0504,6.04393162393e-07,0.063,5.97194978632e-07,0.0756,5.89996794872e-07,0.0882,5.64691595442e-07,0.1008,5.54801103989e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_5=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,6.12672008547e-07,-0.0882,6.29623575499e-07,-0.0756,6.56554131054e-07,-0.063,6.61645833333e-07,-0.0504,6.51902421652e-07,-0.0378,6.52126780627e-07,-0.0252,6.37466168091e-07,-0.0126,6.35474358974e-07,0.0,6.45096866097e-07,0.0126,6.35460648148e-07,0.0252,6.37436253561e-07,0.0378,6.52079415954e-07,0.0504,6.51838853276e-07,0.063,6.6156980057e-07,0.0756,6.56465633903e-07,0.0882,6.29523860399e-07,0.1008,6.12563568376e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_6=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,6.57551282051e-07,-0.0882,6.83362535613e-07,-0.0756,6.90120726496e-07,-0.063,6.96878917379e-07,-0.0504,6.93625712251e-07,-0.0378,6.90747685185e-07,-0.0252,6.8786965812e-07,-0.0126,6.85864138177e-07,0.0,6.85856036325e-07,0.0126,6.85847934473e-07,0.0252,6.87836004274e-07,0.0378,6.90697204416e-07,0.0504,6.93558404558e-07,0.063,6.9679789886e-07,0.0756,6.90024127493e-07,0.0882,6.83250356125e-07,0.1008,6.57431623932e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_7=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,6.96845263533e-07,-0.0882,7.14066061254e-07,-0.0756,7.3236502849e-07,-0.063,7.20764423077e-07,-0.0504,7.17935007123e-07,-0.0378,7.28356481481e-07,-0.0252,7.1444747151e-07,-0.0126,7.11308938746e-07,0.0,7.21077279202e-07,0.0126,7.11293981481e-07,0.0252,7.14412571225e-07,0.0378,7.28302884615e-07,0.0504,7.17863960114e-07,0.063,7.20678418803e-07,0.0756,7.32261574074e-07,0.0882,7.13951388889e-07,0.1008,6.96718126781e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_8=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,7.36793625356e-07,-0.0882,7.54231303419e-07,-0.0756,7.72156339031e-07,-0.063,7.58657407407e-07,-0.0504,7.55477742165e-07,-0.0378,7.66624643875e-07,-0.0252,7.50884615385e-07,-0.0126,7.43139245014e-07,0.0,7.4863230057e-07,0.0126,7.43120548433e-07,0.0252,7.50847222222e-07,0.0378,7.66567307692e-07,0.0504,7.55401709402e-07,0.063,7.58562678063e-07,0.0756,7.72044159544e-07,0.0882,7.54107905983e-07,0.1008,7.36657763533e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_9=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,7.73709401709e-07,-0.0882,8.01447649573e-07,-0.0756,8.03743589744e-07,-0.063,8.06039529915e-07,-0.0504,8.02383725071e-07,-0.0378,7.99366720085e-07,-0.0252,7.963497151e-07,-0.0126,7.83173611111e-07,0.0,7.83164262821e-07,0.0126,7.8315491453e-07,0.0252,7.96311075499e-07,0.0378,7.99306891026e-07,0.0504,8.02302706553e-07,0.063,8.05938568376e-07,0.0756,8.03625801282e-07,0.0882,8.01313034188e-07,0.1008,7.73563568376e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_10=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,7.94241987179e-07,-0.0882,8.12259259259e-07,-0.0756,8.30755163818e-07,-0.063,8.15406517094e-07,-0.0504,8.11310719373e-07,-0.0378,8.22974893162e-07,-0.0252,8.05774038462e-07,-0.0126,7.97172364672e-07,0.0,8.02846153846e-07,0.0126,7.97151175214e-07,0.0252,8.05731659544e-07,0.0378,8.22912571225e-07,0.0504,8.11228454416e-07,0.063,8.15303062678e-07,0.0756,8.30630519943e-07,0.0882,8.12118411681e-07,0.1008,7.94087428775e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_11=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.16478454416e-07,-0.0882,8.35106481481e-07,-0.0756,8.54878739316e-07,-0.063,8.39690883191e-07,-0.0504,8.35029202279e-07,-0.0378,8.46510149573e-07,-0.0252,8.29739316239e-07,-0.0126,8.2549269943e-07,0.0,8.36379095442e-07,0.0126,8.2547275641e-07,0.0252,8.29693198006e-07,0.0378,8.46444088319e-07,0.0504,8.34939458689e-07,0.063,8.39579950142e-07,0.0756,8.54747863248e-07,0.0882,8.34956908832e-07,0.1008,8.16316417379e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_12=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.3948272792e-07,-0.0882,8.70025462963e-07,-0.0756,8.76085648148e-07,-0.063,8.82145833333e-07,-0.0504,8.75892450142e-07,-0.0378,8.71288728632e-07,-0.0252,8.66685007123e-07,-0.0126,8.63216168091e-07,0.0,8.63204326923e-07,0.0126,8.63192485755e-07,0.0252,8.6663764245e-07,0.0378,8.71217058405e-07,0.0504,8.75796474359e-07,0.063,8.82026175214e-07,0.0756,8.75946670228e-07,0.0882,8.69867165242e-07,0.1008,8.39311965812e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_13=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.55083155271e-07,-0.0882,8.75466168091e-07,-0.0756,9.09445334758e-07,-0.063,9.12926638177e-07,-0.0504,8.965372151e-07,-0.0378,8.9547275641e-07,-0.0252,8.74056445869e-07,-0.0126,8.7004789886e-07,0.0,8.82265491453e-07,0.0126,8.70025462963e-07,0.0252,8.7400534188e-07,0.0378,8.95396723647e-07,0.0504,8.96433760684e-07,0.063,9.12798254986e-07,0.0756,9.09295762108e-07,0.0882,8.75302884615e-07,0.1008,8.5490491453e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_14=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.57982371795e-07,-0.0882,8.68808938746e-07,-0.0756,9.02997507123e-07,-0.063,9.09486467236e-07,-0.0504,9.1597542735e-07,-0.0378,9.05003027066e-07,-0.0252,8.82140847578e-07,-0.0126,8.77798254986e-07,0.0,8.89937321937e-07,0.0126,8.77772079772e-07,0.0252,8.8208974359e-07,0.0378,9.04923254986e-07,0.0504,9.15865740741e-07,0.063,9.09354344729e-07,0.0756,9.02842948718e-07,0.0882,8.68640669516e-07,0.1008,8.57796652422e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_15=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.57735576923e-07,-0.0882,8.61808938746e-07,-0.0756,8.78628383191e-07,-0.063,8.99240740741e-07,-0.0504,9.08724893162e-07,-0.0378,9.01745459402e-07,-0.0252,8.94766025641e-07,-0.0126,8.91223646724e-07,0.0,8.91209935897e-07,0.0126,8.91196225071e-07,0.0252,8.94711182336e-07,0.0378,9.01661324786e-07,0.0504,9.08611467236e-07,0.063,8.99103632479e-07,0.0756,8.78472578348e-07,0.0882,8.61636930199e-07,0.1008,8.57543625356e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_16=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.59039351852e-07,-0.0882,8.56900462963e-07,-0.0756,8.58310185185e-07,-0.063,8.61673076923e-07,-0.0504,8.71253205128e-07,-0.0378,8.85635861823e-07,-0.0252,8.7089298433e-07,-0.0126,8.68428774929e-07,0.0,8.79421118234e-07,0.0126,8.68401353276e-07,0.0252,8.70838141026e-07,0.0378,8.8554985755e-07,0.0504,8.71139779202e-07,0.063,8.61538461538e-07,0.0756,8.58153133903e-07,0.0882,8.567247151e-07,0.1008,8.58841168091e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLY_1_17=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(-0.1008,8.63886752137e-07,-0.0882,8.55637820513e-07,-0.0756,8.50870192308e-07,-0.063,8.47559650997e-07,-0.0504,8.47616987179e-07,-0.0378,8.51336360399e-07,-0.0252,8.48440883191e-07,-0.0126,8.46336894587e-07,0.0,8.46446581197e-07,0.0126,8.46309472934e-07,0.0252,8.48384793447e-07,0.0378,8.51251602564e-07,0.0504,8.47504807692e-07,0.063,8.47423789174e-07,0.0756,8.50710648148e-07,0.0882,8.55455840456e-07,0.1008,8.63681089744e-07) NOM_PARA:'Y' PROL_GAUCHE:'CONSTANT' ); + +FLUXRD1=DEFI_NAPPE(PROL_DROIT:'CONSTANT' PARA: - (-0.1008, - -0.088200000000000001, - -0.075600000000000001,-0.063,-0.0504, - -0.0378,-0.0252,-0.0126,0.0,0.0126, - 0.0252,0.0378,0.0504,0.063, - 0.075600000000000001, - 0.088200000000000001,0.1008), - PROL_GAUCHE:'CONSTANT' + (-0.1008,-0.0882,-0.0756, + -0.063,-0.0504,-0.0378,-0.0252,-0.0126, + 0.0,0.0126,0.0252,0.0378,0.0504,0.063, + 0.0756,0.0882,0.1008), NOM_PARA:'Z' - PROL_DROIT:'CONSTANT'); + PROL_GAUCHE:'CONSTANT' + FONCTION: + (, + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ),); % % DEFINITION DES MATERIAUX ET AFFECTATIONS % @@ -1098,513 +726,664 @@ FLUXRD1=DEFI_NAPPE(FONCTION:(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5, % FAMILLE ASSEMBLAGE : NUMERO_FAM % % EMBOUT SUPERIEUR +% -E_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); +E_ES=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -NU_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); +NU_ES=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -AL_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); +AL_ES=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -MT_ES=DEFI_MATERIAU(ELAS_FO:(NU:NU_ES - ALPHA:AL_ES +MT_ES=DEFI_MATERIAU(ELAS_FO:(E:,, RHO:7800.0 - E:E_ES)); + ALPHA: + + ,, + NU: + + ,,)); % EMBOUT INFERIEUR +% -E_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); +E_EI=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -NU_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); +NU_EI=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -AL_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(100.0,2.0,300.0,3.0) - PROL_DROIT:'CONSTANT'); +AL_EI=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(100.0,2.0,300.0,3.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -MT_EI=DEFI_MATERIAU(ELAS_FO:(NU:NU_EI - ALPHA:AL_EI +MT_EI=DEFI_MATERIAU(ELAS_FO:(E:,, RHO:12.0 - E:E_EI)); - -MT_RIG=DEFI_MATERIAU(ELAS:(NU:0.0 - ALPHA:0.0 + ALPHA: + + ,, + NU: + + ,,)); + +MT_RIG=DEFI_MATERIAU(ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); % FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON +% -FOTRAC=DEFI_FONCTION(PROL_GAUCHE:'LINEAIRE' - NOM_PARA:'DRZ' - VALE:(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0) - PROL_DROIT:'LINEAIRE'); +FOTRAC=DEFI_FONCTION(PROL_DROIT:'LINEAIRE' VALE:(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0) NOM_PARA:'DRZ' PROL_GAUCHE:'LINEAIRE' ); MT_RE1=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG1 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE2=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG2 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE3=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG3 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE4=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG4 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE5=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG5 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE6=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG6 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE7=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG7 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE8=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG8 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE9=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG9 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); MT_RE10=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0 - RELA_MZ:FOTRAC - RIGI_N_FO:FRIG10 - COULOMB:1.0) - ELAS:(NU:0.0 - ALPHA:0.0 + RIGI_N_FO: + + ,, + COULOMB:1.0 + RELA_MZ: + + ,,) + ELAS:(E:1.0 RHO:0.0 - E:1.0)); + ALPHA:0.0 + NU:0.0)); % SYSTEME DE MAINTIEN +% + + +E_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); + +NU_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); + +AL_MA=DEFI_CONSTANTE(VALE:0.3); + +SY_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); + +DS_MA=DEFI_CONSTANTE(VALE:0.3); + +NP_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); + +MEY_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); +MPY_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -E_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -NU_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -AL_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -SY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -DS_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -NP_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MEY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MPY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MEZ_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MPZ_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -CAY_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -CBY_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -CAZ_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -CBZ_MA=DEFI_CONSTANTE(VALE:0.29999999999999999); - -MPX_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); - -MT_MA=DEFI_MATERIAU(VMIS_POUTRE_FO:(MEZ:MEZ_MA - MPX:MPX_MA - MPZ:MPZ_MA - CBY:CBY_MA - NP:NP_MA - CBZ:CBZ_MA - MEY:MEY_MA - CAY:CAY_MA - CAZ:CAZ_MA - MPY:MPY_MA) - ECRO_LINE_FO:(D_SIGM_EPSI:DS_MA - SY:SY_MA) - ELAS_FO:(NU:NU_MA - ALPHA:AL_MA +MEZ_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); + +MPZ_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); + +CAY_MA=DEFI_CONSTANTE(VALE:0.3); + +CBY_MA=DEFI_CONSTANTE(VALE:0.3); + +CAZ_MA=DEFI_CONSTANTE(VALE:0.3); + +CBZ_MA=DEFI_CONSTANTE(VALE:0.3); + +MPX_MA=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); + +MT_MA=DEFI_MATERIAU(ELAS_FO:(E:,, RHO:7800.0 - E:E_MA)); + ALPHA: + + ,, + NU: + + ,,) + ECRO_LINE_FO:(SY:,, + D_SIGM_EPSI: + + ,,) + VMIS_POUTRE_FO:(CAZ:,, + CAY: + + ,, + MEY: + + ,, + NP: + + ,, + CBZ: + + ,, + CBY: + + ,, + MPZ: + + ,, + MPY: + + ,, + MPX: + + ,, + MEZ: + + ,,)); % % **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE **** % % % GRILLE +% -E_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +E_GRE=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -E_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +E_GRM=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -NU_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +NU_GRE=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -NU_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +NU_GRM=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -AL_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +AL_GRE=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -AL_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +AL_GRM=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); % TUBE GUIDE +% -E_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +E_TU=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -NU_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +NU_TU=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -AL_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +AL_TU=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); % CRAYON +% -E_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +E_CR=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -NU_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +NU_CR=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); -AL_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT' - NOM_PARA:'TEMP' - VALE:(0.0,1.0,5.0,2.0) - PROL_DROIT:'CONSTANT'); +AL_CR=DEFI_FONCTION(PROL_DROIT:'CONSTANT' VALE:(0.0,1.0,5.0,2.0) NOM_PARA:'TEMP' PROL_GAUCHE:'CONSTANT' ); % GRANDISSEMENT DES GRILLES % GRILLES EXTREMES 1 ET 10 +% -MT_GRE1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1 - FLUX_L:FLUXAX1 - FLUX_TN:FLUXRD1 - S:1.0 - A:0.0) - LEMAITRE:(N:0.0 - UN_SUR_M:0.0 +MT_GRE1=DEFI_MATERIAU(LEMAITRE:(UN_SUR_K:0.0 QSR_K:1.0 - UN_SUR_K:0.0) - ELAS_FO:(NU:NU_GRE - ALPHA:AL_GRE + UN_SUR_M:0.0 + N:0.0) + ELAS_FO:(E:,, RHO:7800.0 - E:E_GRE)); + ALPHA: + + ,, + NU: + + ,,) + GRAN_IRRA:(A:0.0 + FLUX_L: + + ,, + FONC_MULT: + + ,, + S:1.0 + FLUX_TN: + + ,,)); % GRILLES DE MELANGE +% -MT_GRM1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1 - FLUX_L:FLUXAX1 - FLUX_TN:FLUXRD1 - S:1.0 - A:0.0) - LEMAITRE:(N:0.0 - UN_SUR_M:0.0 +MT_GRM1=DEFI_MATERIAU(LEMAITRE:(UN_SUR_K:0.0 QSR_K:2.0 - UN_SUR_K:0.0) - ELAS_FO:(NU:NU_GRM - ALPHA:AL_GRM + UN_SUR_M:0.0 + N:0.0) + ELAS_FO:(E:,, RHO:7800.0 - E:E_GRM)); + ALPHA: + + ,, + NU: + + ,,) + GRAN_IRRA:(A:0.0 + FLUX_L: + + ,, + FONC_MULT: + + ,, + S:1.0 + FLUX_TN: + + ,,)); % DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS ) +% -MT_TU1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1 - FLUX_L:FLUXAX1 - FLUX_TN:FLUXRD1 - S:1.0 - A:0.0) - LEMAITRE:(N:0.0 - UN_SUR_M:0.0 +MT_TU1=DEFI_MATERIAU(LEMAITRE:(UN_SUR_K:0.0 QSR_K:2.0 - UN_SUR_K:0.0) - ELAS_FO:(NU:NU_TU - ALPHA:AL_TU + UN_SUR_M:0.0 + N:0.0) + ELAS_FO:(E:,, RHO:7800.0 - E:E_TU)); - -MT_CR1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1 - FLUX_L:FLUXAX1 - FLUX_TN:FLUXRD1 + ALPHA: + + ,, + NU: + + ,,) + GRAN_IRRA:(A:0.0 + FLUX_L: + + ,, + FONC_MULT: + + ,, S:1.0 - A:0.0) - LEMAITRE:(N:0.0 - UN_SUR_M:0.0 + FLUX_TN: + + ,,)); + +MT_CR1=DEFI_MATERIAU(LEMAITRE:(UN_SUR_K:0.0 QSR_K:2.0 - UN_SUR_K:0.0) - ELAS_FO:(NU:NU_CR - ALPHA:AL_CR + UN_SUR_M:0.0 + N:0.0) + ELAS_FO:(E:,, RHO:7800.0 - E:E_CR)); + ALPHA: + + ,, + NU: + + ,,) + GRAN_IRRA:(A:0.0 + FLUX_L: + + ,, + FONC_MULT: + + ,, + S:1.0 + FLUX_TN: + + ,,)); % % AFFECTATION DES MATERIAUX A CHAUD - CYCLE % % +% -A_MAT_1=AFFE_MATERIAU(AFFE:(TEMP_REF:100.0 - MATER:MT_MA - GROUP_MA:(MAINTI_Y,MAINTI_Z)) - AFFE:(TEMP_REF:100.0 - MATER:MT_GRM1 - GROUP_MA:GRIL_I) - AFFE:(TEMP_REF:100.0 - MATER:MT_GRE1 - GROUP_MA:GRIL_E) - AFFE:(TEMP_REF:100.0 - MATER:MT_CR1 - GROUP_MA:CRAY) - AFFE:(TEMP_REF:100.0 - MATER:MT_TU1 - GROUP_MA:GUID) - AFFE:(TEMP_REF:100.0 - MATER:MT_EI - GROUP_MA:EBOINF) - AFFE:(TEMP_REF:100.0 - MATER:MT_EI - GROUP_MA:(PI_PLE,PI_TRO)) - AFFE:(TEMP_REF:100.0 - MATER:MT_ES - GROUP_MA:EBOSUP) - AFFE:(TEMP_REF:100.0 - MATER:MT_RIG - GROUP_MA:RIGID) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE1 - GROUP_MA:ELA1) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE2 - GROUP_MA:ELA2) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE3 - GROUP_MA:ELA3) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE4 - GROUP_MA:ELA4) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE5 - GROUP_MA:ELA5) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE6 - GROUP_MA:ELA6) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE7 - GROUP_MA:ELA7) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE8 - GROUP_MA:ELA8) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE9 - GROUP_MA:ELA9) - AFFE:(TEMP_REF:100.0 - MATER:MT_RE10 - GROUP_MA:ELA10) - MAILLAGE:MA1); -% - - -L_INST_1=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:0.5 - NOMBRE:1) - INTERVALLE:(JUSQU_A:1000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:2000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:3000.0 - NOMBRE:5) - INTERVALLE:(JUSQU_A:4000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:5000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:6000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:7000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:8000.0 - NOMBRE:1) - DEBUT:0.0); - -L_ARCH_1=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:0.5 - NOMBRE:1) - INTERVALLE:(JUSQU_A:1000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:2000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:3000.0 - NOMBRE:5) - INTERVALLE:(JUSQU_A:4000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:5000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:6000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:7000.0 - NOMBRE:1) - INTERVALLE:(JUSQU_A:8000.0 - NOMBRE:1) - DEBUT:0.0); +A_MAT_1=AFFE_MATERIAU(MAILLAGE: + + AFFE:(GROUP_MA:('MAINTI_Y','MAINTI_Z') + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'GRIL_I' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'GRIL_E' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'CRAY' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'GUID' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'EBOINF' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:('PI_PLE','PI_TRO') + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'EBOSUP' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'RIGID' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA1' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA2' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA3' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA4' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA5' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA6' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA7' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA8' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA9' + TEMP_REF:100.0 + MATER: + ) + AFFE:(GROUP_MA:'ELA10' + TEMP_REF:100.0 + MATER: + )); +% +% + + +L_INST_1=DEFI_LIST_REEL(DEBUT:0.0 + INTERVALLE:(NOMBRE:1 + JUSQU_A:0.5) + INTERVALLE:(NOMBRE:1 + JUSQU_A:1000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:2000.0) + INTERVALLE:(NOMBRE:5 + JUSQU_A:3000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:4000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:5000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:6000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:7000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:8000.0)); + +L_ARCH_1=DEFI_LIST_REEL(DEBUT:0.0 + INTERVALLE:(NOMBRE:1 + JUSQU_A:0.5) + INTERVALLE:(NOMBRE:1 + JUSQU_A:1000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:2000.0) + INTERVALLE:(NOMBRE:5 + JUSQU_A:3000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:4000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:5000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:6000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:7000.0) + INTERVALLE:(NOMBRE:1 + JUSQU_A:8000.0)); % % CALCUL PHASE I A V DU CYCLE 1 % +% -RESU=STAT_NON_LINE(CHAM_MATER:A_MAT_1 - MODELE:MO1 - ARCHIVAGE:(LIST_INST:L_ARCH_1) - CONVERGENCE:(ITER_GLOB_MAXI:50 - ITER_INTE_MAXI:500 - RESI_GLOB_RELA:1.E-4 - ARRET:'OUI') - COMP_INCR:(RELATION:'VMIS_POU_LINE' - GROUP_MA:MAINTIEN) - COMP_INCR:(RELATION:'ASSE_COMBU' - GROUP_MA:(CRAYONS,TUB_GUID)) - COMP_INCR:(RELATION:'DIS_CONTACT' - GROUP_MA:LI_GR_CR) - COMP_INCR:(COQUE_NCOU:1 - RELATION:'ELAS' - GROUP_MA: - - (EMBO_INF,EMBO_SUP, - PIEDS,GRILLES, - LI_GR_GU),) - INCREMENT:(NUME_INST_FIN:20 - LIST_INST:L_INST_1) - CARA_ELEM:CARA1 - RECH_LINEAIRE:(ITER_LINE_MAXI:3) - NEWTON:(REAC_ITER:1 - MATRICE:'TANGENTE') +RESU=STAT_NON_LINE(PARM_THETA:0.5 + CARA_ELEM: + + MODELE: + CHAM_MATER: + + EXCIT:(CHARGE: + + FONC_MULT: + + ,,) + EXCIT:(CHARGE: + + FONC_MULT: + + ,,) + EXCIT:(CHARGE: + + FONC_MULT: + + ,,) + EXCIT:(CHARGE: + + FONC_MULT: + + ,,) + EXCIT:(CHARGE: + + FONC_MULT: + + ,,) + EXCIT:(CHARGE: + ) + EXCIT:(CHARGE: + ) + EXCIT:(CHARGE: + ) + EXCIT:(CHARGE: + ) SOLVEUR:(METHODE:'MULT_FRONT' RENUM:'MD') - EXCIT:(FONC_MULT:ARCH_F1 - CHARGE:ARCH_1) - EXCIT:(FONC_MULT:ARCH_F1 - CHARGE:FOARCH_1) - EXCIT:(FONC_MULT:HYDR_F1 - CHARGE:HYDR_1) - EXCIT:(FONC_MULT:HYDR_F1 - CHARGE:FOHYDR_1) - EXCIT:(FONC_MULT:CLDI_F1 - CHARGE:CL_DI_1) - EXCIT:(CHARGE:CL_PER_1) - EXCIT:(CHARGE:CL_CTC) - EXCIT:(CHARGE:PESANT_1) - EXCIT:(CHARGE:THERM_1) - PARM_THETA:0.5); + NEWTON:(MATRICE:'TANGENTE' + REAC_ITER:1) + RECH_LINEAIRE:(ITER_LINE_MAXI:3) + INCREMENT:(LIST_INST: + + NUME_INST_FIN:20) + COMP_INCR:(GROUP_MA:'MAINTIEN' + RELATION:'VMIS_POU_LINE') + COMP_INCR:(GROUP_MA:('CRAYONS','TUB_GUID') + RELATION:'ASSE_COMBU') + COMP_INCR:(GROUP_MA:'LI_GR_CR' + RELATION:'DIS_CONTACT') + COMP_INCR:(GROUP_MA:('EMBO_INF','EMBO_SUP','PIEDS', + 'GRILLES','LI_GR_GU'), + RELATION:'ELAS' + COQUE_NCOU:1) + CONVERGENCE:(ARRET:'OUI' + RESI_GLOB_RELA:0.0001 + ITER_INTE_MAXI:500 + ITER_GLOB_MAXI:50) + ARCHIVAGE:(LIST_INST: + )); FIN(); diff --git a/Exemples/ex22/toto.comm b/Exemples/ex22/toto.comm index a58f368d..7da792f0 100644 --- a/Exemples/ex22/toto.comm +++ b/Exemples/ex22/toto.comm @@ -7,25 +7,21 @@ DEBUT(); #CYCLE 1 # LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS - PRE_GIBI(); # - MA1=LIRE_MAILLAGE(); # - MA1=DEFI_GROUP(reuse =MA1, + MAILLAGE=MA1, CREA_GROUP_NO=_F(GROUP_MA=('FIXATI','APPUI','LIAS_1','LIAS_2','EBGUIDE','MAINTIEN','MAIN_SUP','EMBO_SUP','TUB_GUID', - 'GRILLES','EMBO_INF','PIEDS','CRAYONS',),), - MAILLAGE=MA1,); + 'GRILLES','EMBO_INF','PIEDS','CRAYONS',),),); # # AFFECTATION DU MODELE -# - -MO1=AFFE_MODELE(AFFE=(_F(GROUP_MA='CRAYONS', +MO1=AFFE_MODELE(MAILLAGE=MA1, + AFFE=(_F(GROUP_MA='CRAYONS', PHENOMENE='MECANIQUE', MODELISATION='POU_D_E',), _F(GROUP_MA='TUB_GUID', @@ -48,282 +44,262 @@ MO1=AFFE_MODELE(AFFE=(_F(GROUP_MA='CRAYONS', MODELISATION='DIS_TR',), _F(GROUP_MA='MAINTIEN', PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',),), - MAILLAGE=MA1,); + MODELISATION='POU_D_E',),),); # # AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES -# - CARA1=AFFE_CARA_ELEM(MODELE=MO1, - COQUE=(_F(ANGL_REP=90.0, - GROUP_MA='EBOINF', - EPAIS=2.0,), - _F(ANGL_REP=90.0, - GROUP_MA='EBOSUP', - EPAIS=3.0,),), - DISCRET=(_F(VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), - REPERE='LOCAL', + POUTRE=(_F(GROUP_MA='CRAY', + SECTION='CERCLE', + CARA=('R','EP',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='GUID', + SECTION='CERCLE', + CARA=('R','EP',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='RETRE', + SECTION='CERCLE', + CARA=('R','EP',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='GRIL_I', + SECTION='RECTANGLE', + CARA=('HY','HZ',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='GRIL_E', + SECTION='RECTANGLE', + CARA=('HY','HZ',), + VALE=(3.0,3.0,),), + _F(GROUP_MA=('MAINTI_Y','MAINTI_Z',), + SECTION='RECTANGLE', + CARA=('HY','HZ',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='PI_PLE', + SECTION='GENERALE', + CARA=('A','IZ','IY','JX',), + VALE=(1.0,2.0,3.0,4.0,),), + _F(GROUP_MA='PI_TRO', + SECTION='GENERALE', + CARA=('A','IZ','IY','JX',), + VALE=(1.0,2.0,3.0,4.0,),),), + ORIENTATION=(_F(GROUP_MA=('GRIL_I','GRIL_E',), + VALE=(1.0,0.0,0.0,), + CARA='VECT_Y',), + _F(GROUP_MA='MAINTI_Y', + VALE=(0.0,1.0,0.0,), + CARA='VECT_Y',), + _F(GROUP_MA='MAINTI_Z', + VALE=(0.0,0.0,1.0,), + CARA='VECT_Y',), + _F(GROUP_MA=('PI_PLE','PI_TRO',), + VALE=(0.0,1.0,0.0,), + CARA='VECT_Y',), + _F(GROUP_MA=('ELASTI','RIGID',), + VALE=(1.0,0.0,0.0,), + CARA='VECT_Y',),), + DISCRET=(_F(GROUP_MA='ELASTI', CARA='K_TR_D_L', - GROUP_MA='ELASTI',), - _F(VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), - REPERE='LOCAL', + VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), + REPERE='LOCAL',), + _F(GROUP_MA='RIGID', CARA='K_TR_D_L', - GROUP_MA='RIGID',),), - ORIENTATION=(_F(VALE=(1.0,0.0,0.0,), - CARA='VECT_Y', - GROUP_MA=('GRIL_I','GRIL_E',),), - _F(VALE=(0.0,1.0,0.0,), - CARA='VECT_Y', - GROUP_MA='MAINTI_Y',), - _F(VALE=(0.0,0.0,1.0,), - CARA='VECT_Y', - GROUP_MA='MAINTI_Z',), - _F(VALE=(0.0,1.0,0.0,), - CARA='VECT_Y', - GROUP_MA=('PI_PLE','PI_TRO',),), - _F(VALE=(1.0,0.0,0.0,), - CARA='VECT_Y', - GROUP_MA=('ELASTI','RIGID',),),), - POUTRE=(_F(SECTION='CERCLE', - GROUP_MA='CRAY', - VALE=(3.0,3.0,), - CARA=('R','EP',),), - _F(SECTION='CERCLE', - GROUP_MA='GUID', - VALE=(3.0,3.0,), - CARA=('R','EP',),), - _F(SECTION='CERCLE', - GROUP_MA='RETRE', - VALE=(3.0,3.0,), - CARA=('R','EP',),), - _F(SECTION='RECTANGLE', - GROUP_MA='GRIL_I', - VALE=(3.0,3.0,), - CARA=('HY','HZ',),), - _F(SECTION='RECTANGLE', - GROUP_MA='GRIL_E', - VALE=(3.0,3.0,), - CARA=('HY','HZ',),), - _F(SECTION='RECTANGLE', - GROUP_MA=('MAINTI_Y','MAINTI_Z',), - VALE=(3.0,3.0,), - CARA=('HY','HZ',),), - _F(SECTION='GENERALE', - GROUP_MA='PI_PLE', - VALE=(1.0,2.0,3.0,4.0,), - CARA=('A','IZ','IY','JX',),), - _F(SECTION='GENERALE', - GROUP_MA='PI_TRO', - VALE=(1.0,2.0,3.0,4.0,), - CARA=('A','IZ','IY','JX',),),),); + VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), + REPERE='LOCAL',),), + COQUE=(_F(EPAIS=2.0, + GROUP_MA='EBOINF', + ANGL_REP=90.0,), + _F(EPAIS=3.0, + GROUP_MA='EBOSUP', + ANGL_REP=90.0,),),); # # DEFINITION DES CHARGES ET CONDITIONS LIMITES # DEFINITION DES TEMPERATURES NODALES EVOLUTIVES -# - -F_TP1_1=DEFI_FONCTION(NOM_RESU='TEMP', - PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,4.0,), - PROL_DROIT='CONSTANT',); +F_TP1_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,4.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); -F_TP2_1=DEFI_FONCTION(NOM_RESU='TEMP', - PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,4.0,), - PROL_DROIT='CONSTANT',); +F_TP2_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,4.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); -F_TP3_1=DEFI_FONCTION(NOM_RESU='TEMP', - PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,4.0,), - PROL_DROIT='CONSTANT',); +F_TP3_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,4.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); -CHTEM1_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F', - AFFE=(_F(FONCTION=F_TP1_1, +CHTEM1_1=AFFE_CHAM_NO(MAILLAGE=MA1, + GRANDEUR='TEMP_F', + AFFE=(_F(NOM_CMP='TEMP', GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',), - NOM_CMP='TEMP',), - _F(FONCTION=(F_TP1_1,F_TP1_1,F_TP1_1,), + FONCTION=F_TP1_1,), + _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), GROUP_NO=('EMBO_SUP','EMBO_INF',), - NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),), - MAILLAGE=MA1,); + FONCTION=(F_TP1_1,F_TP1_1,F_TP1_1,),),),); -CHTEM2_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F', - AFFE=(_F(FONCTION=F_TP2_1, +CHTEM2_1=AFFE_CHAM_NO(MAILLAGE=MA1, + GRANDEUR='TEMP_F', + AFFE=(_F(NOM_CMP='TEMP', GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',), - NOM_CMP='TEMP',), - _F(FONCTION=(F_TP2_1,F_TP2_1,F_TP2_1,), + FONCTION=F_TP2_1,), + _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), GROUP_NO=('EMBO_SUP','EMBO_INF',), - NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),), - MAILLAGE=MA1,); + FONCTION=(F_TP2_1,F_TP2_1,F_TP2_1,),),),); -CHTEM3_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F', - AFFE=(_F(FONCTION=F_TP3_1, +CHTEM3_1=AFFE_CHAM_NO(MAILLAGE=MA1, + GRANDEUR='TEMP_F', + AFFE=(_F(NOM_CMP='TEMP', GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES',), - NOM_CMP='TEMP',), - _F(FONCTION=(F_TP3_1,F_TP3_1,F_TP3_1,), + FONCTION=F_TP3_1,), + _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), GROUP_NO=('EMBO_SUP','EMBO_INF',), - NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),), - _F(FONCTION=F_TP3_1, + FONCTION=(F_TP3_1,F_TP3_1,F_TP3_1,),), + _F(NOM_CMP='TEMP', GROUP_NO='CRAYONS', - NOM_CMP='TEMP',),), - MAILLAGE=MA1,); - -CHTH_1=CREA_RESU(NOM_CHAM='TEMP', - CHAM_GD=(_F(INST=0.0, - CHAM_NO=CHTEM1_1,), - _F(INST=1000.0, - CHAM_NO=CHTEM1_1,), - _F(INST=2000.0, - CHAM_NO=CHTEM2_1,), - _F(INST=3000.0, - CHAM_NO=CHTEM3_1,), - _F(INST=4000.0, - CHAM_NO=CHTEM3_1,), - _F(INST=5000.0, - CHAM_NO=CHTEM2_1,), - _F(INST=6000.0, - CHAM_NO=CHTEM1_1,), - _F(INST=7000.0, - CHAM_NO=CHTEM1_1,),), - TYPE_RESU='EVOL_THER',); + FONCTION=F_TP3_1,),),); + +CHTH_1=CREA_RESU(TYPE_RESU='EVOL_THER', + NOM_CHAM='TEMP', + CHAM_GD=(_F(CHAM_NO=CHTEM1_1, + INST=0.0,), + _F(CHAM_NO=CHTEM1_1, + INST=1000.0,), + _F(CHAM_NO=CHTEM2_1, + INST=2000.0,), + _F(CHAM_NO=CHTEM3_1, + INST=3000.0,), + _F(CHAM_NO=CHTEM3_1, + INST=4000.0,), + _F(CHAM_NO=CHTEM2_1, + INST=5000.0,), + _F(CHAM_NO=CHTEM1_1, + INST=6000.0,), + _F(CHAM_NO=CHTEM1_1, + INST=7000.0,),),); # CHARGEMENT: CHARGES THERMO-MECANIQUES # ---------------------------------------- - -THERM_1=AFFE_CHAR_MECA(MODELE=MO1, - TEMP_CALCULEE=CHTH_1,); +THERM_1=AFFE_CHAR_MECA(TEMP_CALCULEE=CHTH_1, + MODELE=MO1,); # DEFINITION DES CONDITIONS LIMITES # DES CONDITIONS DE CONTACT # # CHARGEMENT: PESANTEUR -# - -PESANT_1=AFFE_CHAR_MECA(MODELE=MO1, - PESANTEUR=(9.8100000000000005,-1.0,0.0,0.0,),); +PESANT_1=AFFE_CHAR_MECA(PESANTEUR=(9.81,-1.0,0.0,0.0,), + MODELE=MO1,); # # CONDITIONS AUX LIMITES -# - CL_PER_1=AFFE_CHAR_MECA(MODELE=MO1, - DDL_IMPO=(_F(DZ=0.0, - DX=0.0, - DY=0.0, - GROUP_NO='FIXATI', - DRZ=0.0, + DDL_IMPO=(_F(DRY=0.0, DRX=0.0, - DRY=0.0,), - _F(DX=0.0, - GROUP_NO='APPUI',), - _F(DZ=0.0, - DY=0.0, - GROUP_NO='EBGUIDE', DRZ=0.0, + GROUP_NO='FIXATI', + DY=0.0, + DZ=0.0, + DX=0.0,), + _F(GROUP_NO='APPUI', + DX=0.0,), + _F(DRY=0.0, DRX=0.0, - DRY=0.0,), - _F(GROUP_NO=('LIAS_1','LIAS_2',), - DRX=0.0,),), - LIAISON_GROUP=(_F(COEF_MULT_1=1.0, - DDL_1='DX', - COEF_MULT_2=-1.0, - COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', + DRZ=0.0, + GROUP_NO='EBGUIDE', + DY=0.0, + DZ=0.0,), + _F(DRX=0.0, + GROUP_NO=('LIAS_1','LIAS_2',),),), + LIAISON_GROUP=(_F(GROUP_NO_1='LIAS_1', GROUP_NO_2='LIAS_2', - DDL_2='DX',), - _F(COEF_MULT_1=1.0, - DDL_1='DY', - COEF_MULT_2=-1.0, + DDL_2='DX', COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DY',), - _F(COEF_MULT_1=1.0, - DDL_1='DZ', COEF_MULT_2=-1.0, - COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', + DDL_1='DX', + COEF_MULT_1=1.0,), + _F(GROUP_NO_1='LIAS_1', GROUP_NO_2='LIAS_2', - DDL_2='DZ',), - _F(COEF_MULT_1=1.0, - DDL_1='DRY', - COEF_MULT_2=-1.0, + DDL_2='DY', COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', + COEF_MULT_2=-1.0, + DDL_1='DY', + COEF_MULT_1=1.0,), + _F(GROUP_NO_1='LIAS_1', GROUP_NO_2='LIAS_2', - DDL_2='DRY',), - _F(COEF_MULT_1=1.0, - DDL_1='DRZ', + DDL_2='DZ', + COEF_IMPO=0.0, COEF_MULT_2=-1.0, + DDL_1='DZ', + COEF_MULT_1=1.0,), + _F(GROUP_NO_1='LIAS_1', + GROUP_NO_2='LIAS_2', + DDL_2='DRY', COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', + COEF_MULT_2=-1.0, + DDL_1='DRY', + COEF_MULT_1=1.0,), + _F(GROUP_NO_1='LIAS_1', GROUP_NO_2='LIAS_2', - DDL_2='DRZ',),),); + DDL_2='DRZ', + COEF_IMPO=0.0, + COEF_MULT_2=-1.0, + DDL_1='DRZ', + COEF_MULT_1=1.0,),),); # - -CL_CTC=AFFE_CHAR_MECA(INFO=1, - MODELE=MO1, - CONTACT=_F(GROUP_MA_1='EBOINF', +CL_CTC=AFFE_CHAR_MECA(MODELE=MO1, + INFO=1, + CONTACT=_F(APPARIEMENT='NODAL', VECT_NORM_2=(-1.0,0.0,0.0,), - APPARIEMENT='NODAL', + GROUP_MA_1='EBOINF', GROUP_MA_2='MCRBAS',),); # # DEPLACEMENT DU SYSTEME DE MAINTIEN -# - -CLDI_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE= - (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0, - 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0, - 0.10000000000000001,7000.0,0.10000000000000001,), - PROL_DROIT='CONSTANT',); +CLDI_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 1000.0,0.1, + 2000.0,0.2, + 3000.0,0.2, + 4000.0,0.2, + 5000.0,0.2, + 6000.0,0.1, + 7000.0,0.1, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); CL_DI_1=AFFE_CHAR_MECA(MODELE=MO1, - DDL_IMPO=_F(DX=-1.0, - GROUP_NO='MAIN_SUP',),); + DDL_IMPO=_F(GROUP_NO='MAIN_SUP', + DX=-1.0,),); # DEFINITION DES FORCES EXTERIEURES # # FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE -# - -HYDR_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE= - (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0, - 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0, - 0.10000000000000001,7000.0,0.10000000000000001,), - PROL_DROIT='CONSTANT',); +HYDR_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 1000.0,0.1, + 2000.0,0.2, + 3000.0,0.2, + 4000.0,0.2, + 5000.0,0.2, + 6000.0,0.1, + 7000.0,0.1, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); # # PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID -# - -HYFRTU_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +HYFRTU_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # # PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID -# - -HYFRCR_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +HYFRCR_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # # CHARGEMENT : FORCES HYDRODYNAMIQUES -# - -HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='GRIL10', +HYDR_1=AFFE_CHAR_MECA(MODELE=MO1, + FORCE_COQUE=(_F(FX=10.0, + GROUP_MA='EBOSUP',), + _F(FX=10.0, + GROUP_MA='EBOINF',),), + FORCE_POUTRE=(_F(GROUP_MA='GRIL10', FX=10.0,), _F(GROUP_MA='GRIL1', FX=10.0,), @@ -342,63 +318,53 @@ HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='GRIL10', _F(GROUP_MA='GRIL8', FX=10.0,), _F(GROUP_MA='GRIL9', - FX=10.0,),), - MODELE=MO1, - FORCE_COQUE=(_F(FX=10.0, - GROUP_MA='EBOSUP',), - _F(FX=10.0, - GROUP_MA='EBOINF',),),); + FX=10.0,),),); -TOTO_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,10.0,5.0,10.0,), - PROL_DROIT='CONSTANT',); +TOTO_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, + 5.0,10.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # - -FOHYDR_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID', +FOHYDR_1=AFFE_CHAR_MECA_F(MODELE=MO1, + FORCE_POUTRE=(_F(GROUP_MA='GUID', FX=TOTO_1,), _F(GROUP_MA='CRAY', - FX=TOTO_1,),), - MODELE=MO1,); + FX=TOTO_1,),),); # # PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE -# - -ARFRTU_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,10.0,5.0,10.0,), - PROL_DROIT='CONSTANT',); +ARFRTU_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, + 5.0,10.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # # PROFIL DES FORCES D'ARCHIMEDE CRAYON -# - -ARFRCR_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,10.0,5.0,10.0,), - PROL_DROIT='CONSTANT',); +ARFRCR_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, + 5.0,10.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # # FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE -# - -ARCH_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE= - (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0, - 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0, - 0.10000000000000001,7000.0,0.10000000000000001,), - PROL_DROIT='CONSTANT',); +ARCH_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 1000.0,0.1, + 2000.0,0.2, + 3000.0,0.2, + 4000.0,0.2, + 5000.0,0.2, + 6000.0,0.1, + 7000.0,0.1, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); # # # CHARGEMENT : FORCES D'ARCHIMEDE # ---------------------------------------- -# - -ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN', +ARCH_1=AFFE_CHAR_MECA(MODELE=MO1, + FORCE_COQUE=(_F(FX=10.0, + GROUP_MA='EBOSUP',), + _F(FX=10.0, + GROUP_MA='EBOINF',),), + FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN', FX=10.0,), _F(GROUP_MA='GRIL10', FX=10.0,), @@ -419,18 +385,13 @@ ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN', _F(GROUP_MA='GRIL8', FX=10.0,), _F(GROUP_MA='GRIL9', - FX=10.0,),), - MODELE=MO1, - FORCE_COQUE=(_F(FX=10.0, - GROUP_MA='EBOSUP',), - _F(FX=10.0, - GROUP_MA='EBOINF',),),); + FX=10.0,),),); -FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID', +FOARCH_1=AFFE_CHAR_MECA_F(MODELE=MO1, + FORCE_POUTRE=(_F(GROUP_MA='GUID', FX=ARCH_F1,), _F(GROUP_MA='CRAY', - FX=ARCH_F1,),), - MODELE=MO1,); + FX=ARCH_F1,),),); # # # FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON @@ -440,358 +401,473 @@ FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID', # # # DEFINITION DE LA LISTE D'INSTANTS -# - -L_FRIG=DEFI_LIST_REEL(INTERVALLE=_F(JUSQU_A=1000.0, - NOMBRE=100,), - DEBUT=0.0,); +L_FRIG=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=_F(NOMBRE=100, + JUSQU_A=1000.0,),); # # INRTERPRETATION DES FONCTIONS -# +F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F2=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F3=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F4=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); -F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F2=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F3=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F4=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F5=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F6=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F7=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F8=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F9=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F10=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -FRIG1=CALC_FONC_INTERP(FONCTION=F1, +F5=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F6=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F7=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F8=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F9=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F10=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +FRIG1=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F1,); -FRIG2=CALC_FONC_INTERP(FONCTION=F2, +FRIG2=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F2,); -FRIG3=CALC_FONC_INTERP(FONCTION=F3, +FRIG3=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F3,); -FRIG4=CALC_FONC_INTERP(FONCTION=F4, +FRIG4=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F4,); -FRIG5=CALC_FONC_INTERP(FONCTION=F5, +FRIG5=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F5,); -FRIG6=CALC_FONC_INTERP(FONCTION=F6, +FRIG6=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F6,); -FRIG7=CALC_FONC_INTERP(FONCTION=F7, +FRIG7=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F7,); -FRIG8=CALC_FONC_INTERP(FONCTION=F8, +FRIG8=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F8,); -FRIG9=CALC_FONC_INTERP(FONCTION=F9, +FRIG9=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F9,); -FRIG10=CALC_FONC_INTERP(FONCTION=F10, +FRIG10=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F10,); # # DEFINITION DU FLUX NEUTRONIQUE RADIAL - -FLUX_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE= - (0.0,0.0,43200.0,0.0,974520.0,453280.0,2638800.0,2077850.0,4087800.0,3512790.0, - 5428440.0,4856770.0,7245000.0,6676270.0,8853480.0,8279770.0,10460900.0,9872610.0,12202900.0, - 11586900.0,13944600.0,13295200.0,14143700.0,13490200.0,15563200.0,14875300.0,17236100.0, - 16506900.0,17948200.0,17199200.0,18190100.0,17433400.0,18193700.0,17435200.0,18197300.0, - 17435200.0,18200900.0,17435200.0,), - PROL_DROIT='CONSTANT',); +FLUX_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + 974520.0,453280.0, + 2638800.0,2077850.0, + 4087800.0,3512790.0, + 5428440.0,4856770.0, + 7245000.0,6676270.0, + 8853480.0,8279770.0, + 10460900.0,9872610.0, + 12202900.0,11586900.0, + 13944600.0,13295200.0, + 14143700.0,13490200.0, + 15563200.0,14875300.0, + 17236100.0,16506900.0, + 17948200.0,17199200.0, + 18190100.0,17433400.0, + 18193700.0,17435200.0, + 18197300.0,17435200.0, + 18200900.0,17435200.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); # DEFINITION DU FLUX AXIAL POUR LE CYCLE 1 - -FLUXAX1=LIRE_FONCTION(PROL_GAUCHE='CONSTANT', +FLUXAX1=LIRE_FONCTION(PROL_DROIT='CONSTANT', UNITE=60, - PROL_DROIT='CONSTANT',); - -FLY_1_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,3.8032834757835002e-07,-0.088200000000000001,3.8083689458688999e-07, - -0.075600000000000001,3.8296082621083001e-07,-0.063,3.858400997151e-07,-0.0504, - 3.8946100427349999e-07,-0.0378,3.9259455128205e-07,-0.0252,3.9258457977207998e-07,-0.0126, - 3.9294106125356001e-07,0.0,3.9399554843304999e-07,0.0126,3.9293233618234e-07,0.0252, - 3.9256712962963002e-07,0.0378,3.9256712962963002e-07,0.0504,3.8942610398860001e-07,0.063, - 3.8579522792023001e-07,0.075600000000000001,3.8290972222222002e-07,0.088200000000000001, - 3.8077706552707e-07,0.1008,3.8026103988603998e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_2=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,4.3595566239316001e-07,-0.088200000000000001,4.3866542022792e-07, - -0.075600000000000001,4.4331463675214e-07,-0.063,4.4911556267806002e-07,-0.0504, - 4.5750658831909e-07,-0.0378,4.6647222222221997e-07,-0.0252,4.6002938034188002e-07,-0.0126, - 4.6004309116809001e-07,0.0,4.6686235754985997e-07,0.0126,4.6003311965811999e-07,0.0252, - 4.6000943732193999e-07,0.0378,4.6643981481481001e-07,0.0504,4.5746420940171002e-07,0.063, - 4.4906445868945999e-07,0.075600000000000001,4.4325356125356e-07,0.088200000000000001, - 4.3859686609687001e-07,0.1008,4.3587838319088001e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_3=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,4.9431891025640996e-07,-0.088200000000000001,5.0005128205127998e-07, - -0.075600000000000001,5.1337197293447004e-07,-0.063,5.2915313390313001e-07,-0.0504, - 5.3788069800570004e-07,-0.0378,5.3504629629630004e-07,-0.0252,5.3221189458688998e-07,-0.0126, - 5.3136431623932e-07,0.0,5.3135870726495999e-07,0.0126,5.3135309829059998e-07,0.0252, - 5.3218696581197002e-07,0.0378,5.3500827991452996e-07,0.0504,5.3782959401709e-07,0.063, - 5.2909205840456002e-07,0.075600000000000001,5.1330217236466999e-07,0.088200000000000001, - 4.9997150997151001e-07,0.1008,4.9423165954416005e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_4=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,5.5489957264956999e-07,-0.088200000000000001,5.6477884615384998e-07, - -0.075600000000000001,5.9007781339030998e-07,-0.063,5.9726415598291003e-07,-0.0504, - 6.0445049857550001e-07,-0.0378,5.9840776353275996e-07,-0.0252,5.8440651709402002e-07,-0.0126, - 5.8263906695157003e-07,0.0,5.9153240740741004e-07,0.0126,5.8262660256409999e-07,0.0252, - 5.8438034188033999e-07,0.0378,5.9836663105413e-07,0.0504,6.0439316239316004e-07,0.063, - 5.9719497863248e-07,0.075600000000000001,5.8999679487179001e-07,0.088200000000000001, - 5.6469159544159996e-07,0.1008,5.5480110398860005e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_5=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,6.1267200854701004e-07,-0.088200000000000001,6.2962357549858005e-07, - -0.075600000000000001,6.5655413105413e-07,-0.063,6.6164583333332999e-07,-0.0504, - 6.5190242165241998e-07,-0.0378,6.5212678062678005e-07,-0.0252,6.3746616809116999e-07,-0.0126, - 6.3547435897436004e-07,0.0,6.4509686609687001e-07,0.0126,6.3546064814814995e-07,0.0252, - 6.3743625356125e-07,0.0378,6.5207941595442004e-07,0.0504,6.5183885327634997e-07,0.063, - 6.6156980056979999e-07,0.075600000000000001,6.5646563390312997e-07,0.088200000000000001, - 6.2952386039885999e-07,0.1008,6.1256356837606998e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_6=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,6.5755128205127996e-07,-0.088200000000000001,6.8336253561253996e-07, - -0.075600000000000001,6.9012072649573003e-07,-0.063,6.9687891737892e-07,-0.0504, - 6.9362571225071001e-07,-0.0378,6.9074768518518997e-07,-0.0252,6.8786965811965998e-07,-0.0126, - 6.8586413817664004e-07,0.0,6.8585603632478996e-07,0.0126,6.8584793447293003e-07,0.0252, - 6.8783600427350001e-07,0.0378,6.9069720441594996e-07,0.0504,6.9355840455840002e-07,0.063, - 6.9679789886040002e-07,0.075600000000000001,6.9002412749288002e-07,0.088200000000000001, - 6.8325035612536003e-07,0.1008,6.5743162393161998e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_7=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,6.9684526353276003e-07,-0.088200000000000001,7.1406606125356005e-07, - -0.075600000000000001,7.3236502849003e-07,-0.063,7.2076442307691997e-07,-0.0504, - 7.1793500712250995e-07,-0.0378,7.2835648148147998e-07,-0.0252,7.1444747150996998e-07,-0.0126, - 7.1130893874644005e-07,0.0,7.2107727920227996e-07,0.0126,7.1129398148148005e-07,0.0252, - 7.1441257122506995e-07,0.0378,7.2830288461537998e-07,0.0504,7.1786396011395999e-07,0.063, - 7.2067841880341996e-07,0.075600000000000001,7.3226157407406997e-07,0.088200000000000001, - 7.1395138888889005e-07,0.1008,6.9671812678063005e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_8=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,7.3679362535612996e-07,-0.088200000000000001,7.5423130341880005e-07, - -0.075600000000000001,7.7215633903134002e-07,-0.063,7.5865740740741005e-07,-0.0504, - 7.5547774216523998e-07,-0.0378,7.6662464387464e-07,-0.0252,7.5088461538461995e-07,-0.0126, - 7.4313924501423998e-07,0.0,7.486323005698e-07,0.0126,7.4312054843304996e-07,0.0252, - 7.5084722222222e-07,0.0378,7.6656730769230998e-07,0.0504,7.5540170940170999e-07,0.063, - 7.5856267806267997e-07,0.075600000000000001,7.7204415954415998e-07,0.088200000000000001, - 7.5410790598291005e-07,0.1008,7.3665776353275997e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_9=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,7.7370940170939995e-07,-0.088200000000000001,8.0144764957264998e-07, - -0.075600000000000001,8.0374358974358997e-07,-0.063,8.0603952991452995e-07,-0.0504, - 8.0238372507123005e-07,-0.0378,7.9936672008546997e-07,-0.0252,7.9634971509971995e-07,-0.0126, - 7.8317361111111004e-07,0.0,7.8316426282051005e-07,0.0126,7.8315491452990996e-07,0.0252, - 7.9631107549857995e-07,0.0378,7.9930689102564003e-07,0.0504,8.0230270655270996e-07,0.063, - 8.0593856837607005e-07,0.075600000000000001,8.0362580128205003e-07,0.088200000000000001, - 8.0131303418803e-07,0.1008,7.7356356837607e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_10=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,7.9424198717948999e-07,-0.088200000000000001,8.1225925925926001e-07, - -0.075600000000000001,8.3075516381766e-07,-0.063,8.1540651709402001e-07,-0.0504, - 8.1131071937321997e-07,-0.0378,8.2297489316238996e-07,-0.0252,8.0577403846154003e-07,-0.0126, - 7.9717236467236002e-07,0.0,8.0284615384615001e-07,0.0126,7.9715117521368004e-07,0.0252, - 8.0573165954416005e-07,0.0378,8.2291257122506995e-07,0.0504,8.1122845441594998e-07,0.063, - 8.1530306267805998e-07,0.075600000000000001,8.3063051994301999e-07,0.088200000000000001, - 8.1211841168090999e-07,0.1008,7.9408742877492998e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_11=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.1647845441594995e-07,-0.088200000000000001,8.3510648148147996e-07, - -0.075600000000000001,8.5487873931623998e-07,-0.063,8.3969088319087998e-07,-0.0504, - 8.3502920227919995e-07,-0.0378,8.4651014957265e-07,-0.0252,8.2973931623932002e-07,-0.0126, - 8.2549269943020005e-07,0.0,8.3637909544160002e-07,0.0126,8.2547275641026002e-07,0.0252, - 8.2969319800569997e-07,0.0378,8.4644408831909002e-07,0.0504,8.3493945868945997e-07,0.063, - 8.3957995014244996e-07,0.075600000000000001,8.5474786324785998e-07,0.088200000000000001, - 8.3495690883191003e-07,0.1008,8.1631641737892005e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_12=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.3948272792023003e-07,-0.088200000000000001,8.7002546296295996e-07, - -0.075600000000000001,8.7608564814814997e-07,-0.063,8.8214583333333004e-07,-0.0504, - 8.7589245014244996e-07,-0.0378,8.7128872863248004e-07,-0.0252,8.6668500712251001e-07,-0.0126, - 8.6321616809117001e-07,0.0,8.6320432692307996e-07,0.0126,8.6319248575499001e-07,0.0252, - 8.6663764245014005e-07,0.0378,8.7121705840456005e-07,0.0504,8.7579647435896998e-07,0.063, - 8.8202617521368001e-07,0.075600000000000001,8.7594667022791999e-07,0.088200000000000001, - 8.6986716524217003e-07,0.1008,8.3931196581196996e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_13=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.5508315527066002e-07,-0.088200000000000001,8.7546616809116998e-07, - -0.075600000000000001,9.0944533475783005e-07,-0.063,9.1292663817663998e-07,-0.0504, - 8.9653721509972004e-07,-0.0378,8.9547275641025999e-07,-0.0252,8.7405644586895003e-07,-0.0126, - 8.7004789886040001e-07,0.0,8.8226549145299002e-07,0.0126,8.7002546296295996e-07,0.0252, - 8.7400534188033999e-07,0.0378,8.9539672364672004e-07,0.0504,8.9643376068376001e-07,0.063, - 9.1279825498575999e-07,0.075600000000000001,9.0929576210826002e-07,0.088200000000000001, - 8.7530288461538001e-07,0.1008,8.5490491452990995e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_14=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.5798237179486999e-07,-0.088200000000000001,8.6880893874644002e-07, - -0.075600000000000001,9.0299750712251001e-07,-0.063,9.0948646723646997e-07,-0.0504, - 9.1597542735043003e-07,-0.0378,9.0500302706552995e-07,-0.0252,8.8214084757835001e-07,-0.0126, - 8.7779825498574995e-07,0.0,8.8993732193732e-07,0.0126,8.7777207977207998e-07,0.0252, - 8.8208974358973997e-07,0.0378,9.0492325498575998e-07,0.0504,9.1586574074073996e-07,0.063, - 9.0935434472933995e-07,0.075600000000000001,9.0284294871795e-07,0.088200000000000001, - 8.6864066951567002e-07,0.1008,8.5779665242165003e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_15=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.5773557692308004e-07,-0.088200000000000001,8.6180893874644003e-07, - -0.075600000000000001,8.7862838319088002e-07,-0.063,8.9924074074074004e-07,-0.0504, - 9.0872489316239005e-07,-0.0378,9.0174545940170996e-07,-0.0252,8.9476602564102997e-07,-0.0126, - 8.9122364672365005e-07,0.0,8.9120993589743996e-07,0.0126,8.9119622507122997e-07,0.0252, - 8.9471118233617996e-07,0.0378,9.0166132478632003e-07,0.0504,9.0861146723646996e-07,0.063, - 8.9910363247862999e-07,0.075600000000000001,8.7847257834757996e-07,0.088200000000000001, - 8.6163693019942995e-07,0.1008,8.5754362535613004e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_16=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.5903935185184999e-07,-0.088200000000000001,8.5690046296295998e-07, - -0.075600000000000001,8.5831018518518999e-07,-0.063,8.6167307692307999e-07,-0.0504, - 8.7125320512820998e-07,-0.0378,8.8563586182335997e-07,-0.0252,8.7089298433048003e-07,-0.0126, - 8.6842877492877004e-07,0.0,8.7942111823362e-07,0.0126,8.6840135327634996e-07,0.0252, - 8.7083814102563997e-07,0.0378,8.8554985754985996e-07,0.0504,8.7113977920228004e-07,0.063, - 8.6153846153846001e-07,0.075600000000000001,8.5815313390312996e-07,0.088200000000000001, - 8.5672471509971999e-07,0.1008,8.5884116809116995e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_17=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.6388675213674999e-07,-0.088200000000000001,8.5563782051281999e-07, - -0.075600000000000001,8.5087019230768996e-07,-0.063,8.4755965099714995e-07,-0.0504, - 8.4761698717949003e-07,-0.0378,8.5133636039885996e-07,-0.0252,8.4844088319088001e-07,-0.0126, - 8.4633689458689002e-07,0.0,8.4644658119657999e-07,0.0126,8.4630947293447004e-07,0.0252, - 8.4838479344729004e-07,0.0378,8.512516025641e-07,0.0504,8.4750480769231e-07,0.063, - 8.4742378917379002e-07,0.075600000000000001,8.5071064814815003e-07,0.088200000000000001, - 8.5545584045584e-07,0.1008,8.6368108974359e-07,), - PROL_DROIT='CONSTANT',); - -FLUXRD1=DEFI_NAPPE(FONCTION=(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,FLY_1_10,FLY_1_11,FLY_1_12, - FLY_1_13,FLY_1_14,FLY_1_15,FLY_1_16,FLY_1_17,), + PROL_GAUCHE='CONSTANT',); + +FLY_1_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,3.80328347578e-07, + -0.0882,3.80836894587e-07, + -0.0756,3.82960826211e-07, + -0.063,3.85840099715e-07, + -0.0504,3.89461004273e-07, + -0.0378,3.92594551282e-07, + -0.0252,3.92584579772e-07, + -0.0126,3.92941061254e-07, + 0.0,3.93995548433e-07, + 0.0126,3.92932336182e-07, + 0.0252,3.9256712963e-07, + 0.0378,3.9256712963e-07, + 0.0504,3.89426103989e-07, + 0.063,3.8579522792e-07, + 0.0756,3.82909722222e-07, + 0.0882,3.80777065527e-07, + 0.1008,3.80261039886e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_2=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,4.35955662393e-07, + -0.0882,4.38665420228e-07, + -0.0756,4.43314636752e-07, + -0.063,4.49115562678e-07, + -0.0504,4.57506588319e-07, + -0.0378,4.66472222222e-07, + -0.0252,4.60029380342e-07, + -0.0126,4.60043091168e-07, + 0.0,4.6686235755e-07, + 0.0126,4.60033119658e-07, + 0.0252,4.60009437322e-07, + 0.0378,4.66439814815e-07, + 0.0504,4.57464209402e-07, + 0.063,4.49064458689e-07, + 0.0756,4.43253561254e-07, + 0.0882,4.38596866097e-07, + 0.1008,4.35878383191e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_3=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,4.94318910256e-07, + -0.0882,5.00051282051e-07, + -0.0756,5.13371972934e-07, + -0.063,5.29153133903e-07, + -0.0504,5.37880698006e-07, + -0.0378,5.35046296296e-07, + -0.0252,5.32211894587e-07, + -0.0126,5.31364316239e-07, + 0.0,5.31358707265e-07, + 0.0126,5.31353098291e-07, + 0.0252,5.32186965812e-07, + 0.0378,5.35008279915e-07, + 0.0504,5.37829594017e-07, + 0.063,5.29092058405e-07, + 0.0756,5.13302172365e-07, + 0.0882,4.99971509972e-07, + 0.1008,4.94231659544e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_4=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,5.5489957265e-07, + -0.0882,5.64778846154e-07, + -0.0756,5.9007781339e-07, + -0.063,5.97264155983e-07, + -0.0504,6.04450498576e-07, + -0.0378,5.98407763533e-07, + -0.0252,5.84406517094e-07, + -0.0126,5.82639066952e-07, + 0.0,5.91532407407e-07, + 0.0126,5.82626602564e-07, + 0.0252,5.8438034188e-07, + 0.0378,5.98366631054e-07, + 0.0504,6.04393162393e-07, + 0.063,5.97194978632e-07, + 0.0756,5.89996794872e-07, + 0.0882,5.64691595442e-07, + 0.1008,5.54801103989e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_5=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.12672008547e-07, + -0.0882,6.29623575499e-07, + -0.0756,6.56554131054e-07, + -0.063,6.61645833333e-07, + -0.0504,6.51902421652e-07, + -0.0378,6.52126780627e-07, + -0.0252,6.37466168091e-07, + -0.0126,6.35474358974e-07, + 0.0,6.45096866097e-07, + 0.0126,6.35460648148e-07, + 0.0252,6.37436253561e-07, + 0.0378,6.52079415954e-07, + 0.0504,6.51838853276e-07, + 0.063,6.6156980057e-07, + 0.0756,6.56465633903e-07, + 0.0882,6.29523860399e-07, + 0.1008,6.12563568376e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_6=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.57551282051e-07, + -0.0882,6.83362535613e-07, + -0.0756,6.90120726496e-07, + -0.063,6.96878917379e-07, + -0.0504,6.93625712251e-07, + -0.0378,6.90747685185e-07, + -0.0252,6.8786965812e-07, + -0.0126,6.85864138177e-07, + 0.0,6.85856036325e-07, + 0.0126,6.85847934473e-07, + 0.0252,6.87836004274e-07, + 0.0378,6.90697204416e-07, + 0.0504,6.93558404558e-07, + 0.063,6.9679789886e-07, + 0.0756,6.90024127493e-07, + 0.0882,6.83250356125e-07, + 0.1008,6.57431623932e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_7=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.96845263533e-07, + -0.0882,7.14066061254e-07, + -0.0756,7.3236502849e-07, + -0.063,7.20764423077e-07, + -0.0504,7.17935007123e-07, + -0.0378,7.28356481481e-07, + -0.0252,7.1444747151e-07, + -0.0126,7.11308938746e-07, + 0.0,7.21077279202e-07, + 0.0126,7.11293981481e-07, + 0.0252,7.14412571225e-07, + 0.0378,7.28302884615e-07, + 0.0504,7.17863960114e-07, + 0.063,7.20678418803e-07, + 0.0756,7.32261574074e-07, + 0.0882,7.13951388889e-07, + 0.1008,6.96718126781e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_8=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.36793625356e-07, + -0.0882,7.54231303419e-07, + -0.0756,7.72156339031e-07, + -0.063,7.58657407407e-07, + -0.0504,7.55477742165e-07, + -0.0378,7.66624643875e-07, + -0.0252,7.50884615385e-07, + -0.0126,7.43139245014e-07, + 0.0,7.4863230057e-07, + 0.0126,7.43120548433e-07, + 0.0252,7.50847222222e-07, + 0.0378,7.66567307692e-07, + 0.0504,7.55401709402e-07, + 0.063,7.58562678063e-07, + 0.0756,7.72044159544e-07, + 0.0882,7.54107905983e-07, + 0.1008,7.36657763533e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_9=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.73709401709e-07, + -0.0882,8.01447649573e-07, + -0.0756,8.03743589744e-07, + -0.063,8.06039529915e-07, + -0.0504,8.02383725071e-07, + -0.0378,7.99366720085e-07, + -0.0252,7.963497151e-07, + -0.0126,7.83173611111e-07, + 0.0,7.83164262821e-07, + 0.0126,7.8315491453e-07, + 0.0252,7.96311075499e-07, + 0.0378,7.99306891026e-07, + 0.0504,8.02302706553e-07, + 0.063,8.05938568376e-07, + 0.0756,8.03625801282e-07, + 0.0882,8.01313034188e-07, + 0.1008,7.73563568376e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_10=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.94241987179e-07, + -0.0882,8.12259259259e-07, + -0.0756,8.30755163818e-07, + -0.063,8.15406517094e-07, + -0.0504,8.11310719373e-07, + -0.0378,8.22974893162e-07, + -0.0252,8.05774038462e-07, + -0.0126,7.97172364672e-07, + 0.0,8.02846153846e-07, + 0.0126,7.97151175214e-07, + 0.0252,8.05731659544e-07, + 0.0378,8.22912571225e-07, + 0.0504,8.11228454416e-07, + 0.063,8.15303062678e-07, + 0.0756,8.30630519943e-07, + 0.0882,8.12118411681e-07, + 0.1008,7.94087428775e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_11=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.16478454416e-07, + -0.0882,8.35106481481e-07, + -0.0756,8.54878739316e-07, + -0.063,8.39690883191e-07, + -0.0504,8.35029202279e-07, + -0.0378,8.46510149573e-07, + -0.0252,8.29739316239e-07, + -0.0126,8.2549269943e-07, + 0.0,8.36379095442e-07, + 0.0126,8.2547275641e-07, + 0.0252,8.29693198006e-07, + 0.0378,8.46444088319e-07, + 0.0504,8.34939458689e-07, + 0.063,8.39579950142e-07, + 0.0756,8.54747863248e-07, + 0.0882,8.34956908832e-07, + 0.1008,8.16316417379e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_12=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.3948272792e-07, + -0.0882,8.70025462963e-07, + -0.0756,8.76085648148e-07, + -0.063,8.82145833333e-07, + -0.0504,8.75892450142e-07, + -0.0378,8.71288728632e-07, + -0.0252,8.66685007123e-07, + -0.0126,8.63216168091e-07, + 0.0,8.63204326923e-07, + 0.0126,8.63192485755e-07, + 0.0252,8.6663764245e-07, + 0.0378,8.71217058405e-07, + 0.0504,8.75796474359e-07, + 0.063,8.82026175214e-07, + 0.0756,8.75946670228e-07, + 0.0882,8.69867165242e-07, + 0.1008,8.39311965812e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_13=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.55083155271e-07, + -0.0882,8.75466168091e-07, + -0.0756,9.09445334758e-07, + -0.063,9.12926638177e-07, + -0.0504,8.965372151e-07, + -0.0378,8.9547275641e-07, + -0.0252,8.74056445869e-07, + -0.0126,8.7004789886e-07, + 0.0,8.82265491453e-07, + 0.0126,8.70025462963e-07, + 0.0252,8.7400534188e-07, + 0.0378,8.95396723647e-07, + 0.0504,8.96433760684e-07, + 0.063,9.12798254986e-07, + 0.0756,9.09295762108e-07, + 0.0882,8.75302884615e-07, + 0.1008,8.5490491453e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_14=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.57982371795e-07, + -0.0882,8.68808938746e-07, + -0.0756,9.02997507123e-07, + -0.063,9.09486467236e-07, + -0.0504,9.1597542735e-07, + -0.0378,9.05003027066e-07, + -0.0252,8.82140847578e-07, + -0.0126,8.77798254986e-07, + 0.0,8.89937321937e-07, + 0.0126,8.77772079772e-07, + 0.0252,8.8208974359e-07, + 0.0378,9.04923254986e-07, + 0.0504,9.15865740741e-07, + 0.063,9.09354344729e-07, + 0.0756,9.02842948718e-07, + 0.0882,8.68640669516e-07, + 0.1008,8.57796652422e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_15=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.57735576923e-07, + -0.0882,8.61808938746e-07, + -0.0756,8.78628383191e-07, + -0.063,8.99240740741e-07, + -0.0504,9.08724893162e-07, + -0.0378,9.01745459402e-07, + -0.0252,8.94766025641e-07, + -0.0126,8.91223646724e-07, + 0.0,8.91209935897e-07, + 0.0126,8.91196225071e-07, + 0.0252,8.94711182336e-07, + 0.0378,9.01661324786e-07, + 0.0504,9.08611467236e-07, + 0.063,8.99103632479e-07, + 0.0756,8.78472578348e-07, + 0.0882,8.61636930199e-07, + 0.1008,8.57543625356e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_16=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.59039351852e-07, + -0.0882,8.56900462963e-07, + -0.0756,8.58310185185e-07, + -0.063,8.61673076923e-07, + -0.0504,8.71253205128e-07, + -0.0378,8.85635861823e-07, + -0.0252,8.7089298433e-07, + -0.0126,8.68428774929e-07, + 0.0,8.79421118234e-07, + 0.0126,8.68401353276e-07, + 0.0252,8.70838141026e-07, + 0.0378,8.8554985755e-07, + 0.0504,8.71139779202e-07, + 0.063,8.61538461538e-07, + 0.0756,8.58153133903e-07, + 0.0882,8.567247151e-07, + 0.1008,8.58841168091e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_17=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.63886752137e-07, + -0.0882,8.55637820513e-07, + -0.0756,8.50870192308e-07, + -0.063,8.47559650997e-07, + -0.0504,8.47616987179e-07, + -0.0378,8.51336360399e-07, + -0.0252,8.48440883191e-07, + -0.0126,8.46336894587e-07, + 0.0,8.46446581197e-07, + 0.0126,8.46309472934e-07, + 0.0252,8.48384793447e-07, + 0.0378,8.51251602564e-07, + 0.0504,8.47504807692e-07, + 0.063,8.47423789174e-07, + 0.0756,8.50710648148e-07, + 0.0882,8.55455840456e-07, + 0.1008,8.63681089744e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLUXRD1=DEFI_NAPPE(PROL_DROIT='CONSTANT', PARA= - (-0.1008,-0.088200000000000001,-0.075600000000000001,-0.063,-0.0504,-0.0378,-0.0252, - -0.0126,0.0,0.0126,0.0252,0.0378,0.0504,0.063,0.075600000000000001,0.088200000000000001,0.1008,), - PROL_GAUCHE='CONSTANT', + (-0.1008,-0.0882,-0.0756,-0.063,-0.0504,-0.0378,-0.0252,-0.0126,0.0,0.0126,0.0252, + 0.0378,0.0504,0.063,0.0756,0.0882,0.1008,), NOM_PARA='Z', - PROL_DROIT='CONSTANT',); + PROL_GAUCHE='CONSTANT', + FONCTION= + (FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,FLY_1_10, + FLY_1_11,FLY_1_12,FLY_1_13,FLY_1_14,FLY_1_15,FLY_1_16,FLY_1_17,),); # # DEFINITION DES MATERIAUX ET AFFECTATIONS # @@ -802,508 +878,467 @@ FLUXRD1=DEFI_NAPPE(FONCTION=(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY # # EMBOUT SUPERIEUR +E_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); - -NU_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); +NU_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); +AL_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MT_ES=DEFI_MATERIAU(ELAS_FO=_F(NU=NU_ES, - ALPHA=AL_ES, +MT_ES=DEFI_MATERIAU(ELAS_FO=_F(E=E_ES, RHO=7800.0, - E=E_ES,),); + ALPHA=AL_ES, + NU=NU_ES,),); # EMBOUT INFERIEUR +E_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); - -NU_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); +NU_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); +AL_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MT_EI=DEFI_MATERIAU(ELAS_FO=_F(NU=NU_EI, - ALPHA=AL_EI, +MT_EI=DEFI_MATERIAU(ELAS_FO=_F(E=E_EI, RHO=12.0, - E=E_EI,),); + ALPHA=AL_EI, + NU=NU_EI,),); -MT_RIG=DEFI_MATERIAU(ELAS=_F(NU=0.0, - ALPHA=0.0, +MT_RIG=DEFI_MATERIAU(ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); # FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON - -FOTRAC=DEFI_FONCTION(PROL_GAUCHE='LINEAIRE', - NOM_PARA='DRZ', - VALE=(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,), - PROL_DROIT='LINEAIRE',); +FOTRAC=DEFI_FONCTION(PROL_DROIT='LINEAIRE',VALE=(1.0,1.0, + 0.0,0.0, + 0.0,0.0, + 0.0,0.0, + ),NOM_PARA='DRZ',PROL_GAUCHE='LINEAIRE',); MT_RE1=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG1, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE2=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG2, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE3=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG3, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE4=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG4, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE5=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG5, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE6=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG6, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE7=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG7, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE8=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG8, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE9=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG9, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE10=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG10, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); # SYSTEME DE MAINTIEN +E_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); - -NU_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +AL_MA=DEFI_CONSTANTE(VALE=0.3,); -SY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +SY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -DS_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +DS_MA=DEFI_CONSTANTE(VALE=0.3,); -NP_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NP_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MEY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MEY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MPY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MPY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MEZ_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MEZ_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MPZ_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MPZ_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -CAY_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +CAY_MA=DEFI_CONSTANTE(VALE=0.3,); -CBY_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +CBY_MA=DEFI_CONSTANTE(VALE=0.3,); -CAZ_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +CAZ_MA=DEFI_CONSTANTE(VALE=0.3,); -CBZ_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +CBZ_MA=DEFI_CONSTANTE(VALE=0.3,); -MPX_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MPX_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MT_MA=DEFI_MATERIAU(VMIS_POUTRE_FO=_F(MEZ=MEZ_MA, - MPX=MPX_MA, - MPZ=MPZ_MA, - CBY=CBY_MA, +MT_MA=DEFI_MATERIAU(ELAS_FO=_F(E=E_MA, + RHO=7800.0, + ALPHA=AL_MA, + NU=NU_MA,), + ECRO_LINE_FO=_F(SY=SY_MA, + D_SIGM_EPSI=DS_MA,), + VMIS_POUTRE_FO=_F(CAZ=CAZ_MA, + CAY=CAY_MA, + MEY=MEY_MA, NP=NP_MA, CBZ=CBZ_MA, - MEY=MEY_MA, - CAY=CAY_MA, - CAZ=CAZ_MA, - MPY=MPY_MA,), - ECRO_LINE_FO=_F(D_SIGM_EPSI=DS_MA, - SY=SY_MA,), - ELAS_FO=_F(NU=NU_MA, - ALPHA=AL_MA, - RHO=7800.0, - E=E_MA,),); + CBY=CBY_MA, + MPZ=MPZ_MA, + MPY=MPY_MA, + MPX=MPX_MA, + MEZ=MEZ_MA,),); # # **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE **** # # # GRILLE +E_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +E_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -NU_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -NU_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +AL_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); - -AL_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +AL_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); # TUBE GUIDE +E_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); - -NU_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +AL_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); # CRAYON +E_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -NU_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); - -AL_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +AL_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); # GRANDISSEMENT DES GRILLES # GRILLES EXTREMES 1 ET 10 - -MT_GRE1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1, - FLUX_L=FLUXAX1, - FLUX_TN=FLUXRD1, - S=1.0, - A=0.0,), - LEMAITRE=_F(N=0.0, - UN_SUR_M=0.0, +MT_GRE1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, QSR_K=1.0, - UN_SUR_K=0.0,), - ELAS_FO=_F(NU=NU_GRE, - ALPHA=AL_GRE, + UN_SUR_M=0.0, + N=0.0,), + ELAS_FO=_F(E=E_GRE, RHO=7800.0, - E=E_GRE,),); -# GRILLES DE MELANGE - - -MT_GRM1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1, + ALPHA=AL_GRE, + NU=NU_GRE,), + GRAN_IRRA=_F(A=0.0, FLUX_L=FLUXAX1, - FLUX_TN=FLUXRD1, + FONC_MULT=FLUX_F1, S=1.0, - A=0.0,), - LEMAITRE=_F(N=0.0, - UN_SUR_M=0.0, + FLUX_TN=FLUXRD1,),); +# GRILLES DE MELANGE + +MT_GRM1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, QSR_K=2.0, - UN_SUR_K=0.0,), - ELAS_FO=_F(NU=NU_GRM, - ALPHA=AL_GRM, + UN_SUR_M=0.0, + N=0.0,), + ELAS_FO=_F(E=E_GRM, RHO=7800.0, - E=E_GRM,),); + ALPHA=AL_GRM, + NU=NU_GRM,), + GRAN_IRRA=_F(A=0.0, + FLUX_L=FLUXAX1, + FONC_MULT=FLUX_F1, + S=1.0, + FLUX_TN=FLUXRD1,),); # DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS ) - -MT_TU1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1, - FLUX_L=FLUXAX1, - FLUX_TN=FLUXRD1, - S=1.0, - A=0.0,), - LEMAITRE=_F(N=0.0, - UN_SUR_M=0.0, +MT_TU1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, QSR_K=2.0, - UN_SUR_K=0.0,), - ELAS_FO=_F(NU=NU_TU, - ALPHA=AL_TU, + UN_SUR_M=0.0, + N=0.0,), + ELAS_FO=_F(E=E_TU, RHO=7800.0, - E=E_TU,),); - -MT_CR1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1, + ALPHA=AL_TU, + NU=NU_TU,), + GRAN_IRRA=_F(A=0.0, FLUX_L=FLUXAX1, - FLUX_TN=FLUXRD1, + FONC_MULT=FLUX_F1, S=1.0, - A=0.0,), - LEMAITRE=_F(N=0.0, - UN_SUR_M=0.0, + FLUX_TN=FLUXRD1,),); + +MT_CR1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, QSR_K=2.0, - UN_SUR_K=0.0,), - ELAS_FO=_F(NU=NU_CR, - ALPHA=AL_CR, + UN_SUR_M=0.0, + N=0.0,), + ELAS_FO=_F(E=E_CR, RHO=7800.0, - E=E_CR,),); + ALPHA=AL_CR, + NU=NU_CR,), + GRAN_IRRA=_F(A=0.0, + FLUX_L=FLUXAX1, + FONC_MULT=FLUX_F1, + S=1.0, + FLUX_TN=FLUXRD1,),); # # AFFECTATION DES MATERIAUX A CHAUD - CYCLE # -# - -A_MAT_1=AFFE_MATERIAU(AFFE=(_F(TEMP_REF=100.0, - MATER=MT_MA, - GROUP_MA=('MAINTI_Y','MAINTI_Z',),), - _F(TEMP_REF=100.0, - MATER=MT_GRM1, - GROUP_MA='GRIL_I',), - _F(TEMP_REF=100.0, - MATER=MT_GRE1, - GROUP_MA='GRIL_E',), - _F(TEMP_REF=100.0, - MATER=MT_CR1, - GROUP_MA='CRAY',), - _F(TEMP_REF=100.0, - MATER=MT_TU1, - GROUP_MA='GUID',), - _F(TEMP_REF=100.0, - MATER=MT_EI, - GROUP_MA='EBOINF',), - _F(TEMP_REF=100.0, - MATER=MT_EI, - GROUP_MA=('PI_PLE','PI_TRO',),), - _F(TEMP_REF=100.0, - MATER=MT_ES, - GROUP_MA='EBOSUP',), - _F(TEMP_REF=100.0, - MATER=MT_RIG, - GROUP_MA='RIGID',), - _F(TEMP_REF=100.0, - MATER=MT_RE1, - GROUP_MA='ELA1',), - _F(TEMP_REF=100.0, - MATER=MT_RE2, - GROUP_MA='ELA2',), - _F(TEMP_REF=100.0, - MATER=MT_RE3, - GROUP_MA='ELA3',), - _F(TEMP_REF=100.0, - MATER=MT_RE4, - GROUP_MA='ELA4',), - _F(TEMP_REF=100.0, - MATER=MT_RE5, - GROUP_MA='ELA5',), - _F(TEMP_REF=100.0, - MATER=MT_RE6, - GROUP_MA='ELA6',), - _F(TEMP_REF=100.0, - MATER=MT_RE7, - GROUP_MA='ELA7',), - _F(TEMP_REF=100.0, - MATER=MT_RE8, - GROUP_MA='ELA8',), - _F(TEMP_REF=100.0, - MATER=MT_RE9, - GROUP_MA='ELA9',), - _F(TEMP_REF=100.0, - MATER=MT_RE10, - GROUP_MA='ELA10',),), - MAILLAGE=MA1,); +A_MAT_1=AFFE_MATERIAU(MAILLAGE=MA1, + AFFE=(_F(GROUP_MA=('MAINTI_Y','MAINTI_Z',), + TEMP_REF=100.0, + MATER=MT_MA,), + _F(GROUP_MA='GRIL_I', + TEMP_REF=100.0, + MATER=MT_GRM1,), + _F(GROUP_MA='GRIL_E', + TEMP_REF=100.0, + MATER=MT_GRE1,), + _F(GROUP_MA='CRAY', + TEMP_REF=100.0, + MATER=MT_CR1,), + _F(GROUP_MA='GUID', + TEMP_REF=100.0, + MATER=MT_TU1,), + _F(GROUP_MA='EBOINF', + TEMP_REF=100.0, + MATER=MT_EI,), + _F(GROUP_MA=('PI_PLE','PI_TRO',), + TEMP_REF=100.0, + MATER=MT_EI,), + _F(GROUP_MA='EBOSUP', + TEMP_REF=100.0, + MATER=MT_ES,), + _F(GROUP_MA='RIGID', + TEMP_REF=100.0, + MATER=MT_RIG,), + _F(GROUP_MA='ELA1', + TEMP_REF=100.0, + MATER=MT_RE1,), + _F(GROUP_MA='ELA2', + TEMP_REF=100.0, + MATER=MT_RE2,), + _F(GROUP_MA='ELA3', + TEMP_REF=100.0, + MATER=MT_RE3,), + _F(GROUP_MA='ELA4', + TEMP_REF=100.0, + MATER=MT_RE4,), + _F(GROUP_MA='ELA5', + TEMP_REF=100.0, + MATER=MT_RE5,), + _F(GROUP_MA='ELA6', + TEMP_REF=100.0, + MATER=MT_RE6,), + _F(GROUP_MA='ELA7', + TEMP_REF=100.0, + MATER=MT_RE7,), + _F(GROUP_MA='ELA8', + TEMP_REF=100.0, + MATER=MT_RE8,), + _F(GROUP_MA='ELA9', + TEMP_REF=100.0, + MATER=MT_RE9,), + _F(GROUP_MA='ELA10', + TEMP_REF=100.0, + MATER=MT_RE10,),),); # - -L_INST_1=DEFI_LIST_REEL(INTERVALLE=(_F(JUSQU_A=0.5, - NOMBRE=1,), - _F(JUSQU_A=1000.0, - NOMBRE=1,), - _F(JUSQU_A=2000.0, - NOMBRE=1,), - _F(JUSQU_A=3000.0, - NOMBRE=5,), - _F(JUSQU_A=4000.0, - NOMBRE=1,), - _F(JUSQU_A=5000.0, - NOMBRE=1,), - _F(JUSQU_A=6000.0, - NOMBRE=1,), - _F(JUSQU_A=7000.0, - NOMBRE=1,), - _F(JUSQU_A=8000.0, - NOMBRE=1,),), - DEBUT=0.0,); - -L_ARCH_1=DEFI_LIST_REEL(INTERVALLE=(_F(JUSQU_A=0.5, - NOMBRE=1,), - _F(JUSQU_A=1000.0, - NOMBRE=1,), - _F(JUSQU_A=2000.0, - NOMBRE=1,), - _F(JUSQU_A=3000.0, - NOMBRE=5,), - _F(JUSQU_A=4000.0, - NOMBRE=1,), - _F(JUSQU_A=5000.0, - NOMBRE=1,), - _F(JUSQU_A=6000.0, - NOMBRE=1,), - _F(JUSQU_A=7000.0, - NOMBRE=1,), - _F(JUSQU_A=8000.0, - NOMBRE=1,),), - DEBUT=0.0,); +L_INST_1=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=(_F(NOMBRE=1, + JUSQU_A=0.5,), + _F(NOMBRE=1, + JUSQU_A=1000.0,), + _F(NOMBRE=1, + JUSQU_A=2000.0,), + _F(NOMBRE=5, + JUSQU_A=3000.0,), + _F(NOMBRE=1, + JUSQU_A=4000.0,), + _F(NOMBRE=1, + JUSQU_A=5000.0,), + _F(NOMBRE=1, + JUSQU_A=6000.0,), + _F(NOMBRE=1, + JUSQU_A=7000.0,), + _F(NOMBRE=1, + JUSQU_A=8000.0,),),); + +L_ARCH_1=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=(_F(NOMBRE=1, + JUSQU_A=0.5,), + _F(NOMBRE=1, + JUSQU_A=1000.0,), + _F(NOMBRE=1, + JUSQU_A=2000.0,), + _F(NOMBRE=5, + JUSQU_A=3000.0,), + _F(NOMBRE=1, + JUSQU_A=4000.0,), + _F(NOMBRE=1, + JUSQU_A=5000.0,), + _F(NOMBRE=1, + JUSQU_A=6000.0,), + _F(NOMBRE=1, + JUSQU_A=7000.0,), + _F(NOMBRE=1, + JUSQU_A=8000.0,),),); # # CALCUL PHASE I A V DU CYCLE 1 -# - -RESU=STAT_NON_LINE(CHAM_MATER=A_MAT_1, - MODELE=MO1, - ARCHIVAGE=_F(LIST_INST=L_ARCH_1,), - CONVERGENCE=_F(ITER_GLOB_MAXI=50, - ITER_INTE_MAXI=500, - RESI_GLOB_RELA=1.E-4, - ARRET='OUI',), - COMP_INCR=(_F(RELATION='VMIS_POU_LINE', - GROUP_MA='MAINTIEN',), - _F(RELATION='ASSE_COMBU', - GROUP_MA=('CRAYONS','TUB_GUID',),), - _F(RELATION='DIS_CONTACT', - GROUP_MA='LI_GR_CR',), - _F(COQUE_NCOU=1, - RELATION='ELAS', - GROUP_MA=('EMBO_INF','EMBO_SUP','PIEDS','GRILLES','LI_GR_GU',),),), - INCREMENT=_F(NUME_INST_FIN=20, - LIST_INST=L_INST_1,), +RESU=STAT_NON_LINE(PARM_THETA=0.5, CARA_ELEM=CARA1, - RECH_LINEAIRE=_F(ITER_LINE_MAXI=3,), - NEWTON=_F(REAC_ITER=1, - MATRICE='TANGENTE',), - SOLVEUR=_F(METHODE='MULT_FRONT', - RENUM='MD',), - EXCIT=(_F(FONC_MULT=ARCH_F1, - CHARGE=ARCH_1,), - _F(FONC_MULT=ARCH_F1, - CHARGE=FOARCH_1,), - _F(FONC_MULT=HYDR_F1, - CHARGE=HYDR_1,), - _F(FONC_MULT=HYDR_F1, - CHARGE=FOHYDR_1,), - _F(FONC_MULT=CLDI_F1, - CHARGE=CL_DI_1,), + MODELE=MO1, + CHAM_MATER=A_MAT_1, + EXCIT=(_F(CHARGE=ARCH_1, + FONC_MULT=ARCH_F1,), + _F(CHARGE=FOARCH_1, + FONC_MULT=ARCH_F1,), + _F(CHARGE=HYDR_1, + FONC_MULT=HYDR_F1,), + _F(CHARGE=FOHYDR_1, + FONC_MULT=HYDR_F1,), + _F(CHARGE=CL_DI_1, + FONC_MULT=CLDI_F1,), _F(CHARGE=CL_PER_1,), _F(CHARGE=CL_CTC,), _F(CHARGE=PESANT_1,), _F(CHARGE=THERM_1,),), - PARM_THETA=0.5,); + SOLVEUR=_F(METHODE='MULT_FRONT', + RENUM='MD',), + NEWTON=_F(MATRICE='TANGENTE', + REAC_ITER=1,), + RECH_LINEAIRE=_F(ITER_LINE_MAXI=3,), + INCREMENT=_F(LIST_INST=L_INST_1, + NUME_INST_FIN=20,), + COMP_INCR=(_F(GROUP_MA='MAINTIEN', + RELATION='VMIS_POU_LINE',), + _F(GROUP_MA=('CRAYONS','TUB_GUID',), + RELATION='ASSE_COMBU',), + _F(GROUP_MA='LI_GR_CR', + RELATION='DIS_CONTACT',), + _F(GROUP_MA=('EMBO_INF','EMBO_SUP','PIEDS','GRILLES','LI_GR_GU',), + RELATION='ELAS', + COQUE_NCOU=1,),), + CONVERGENCE=_F(ARRET='OUI', + RESI_GLOB_RELA=0.0001, + ITER_INTE_MAXI=500, + ITER_GLOB_MAXI=50,), + ARCHIVAGE=_F(LIST_INST=L_ARCH_1,),); FIN(); diff --git a/Exemples/ex22/tyty.comm b/Exemples/ex22/tyty.comm index a58f368d..b7816934 100644 --- a/Exemples/ex22/tyty.comm +++ b/Exemples/ex22/tyty.comm @@ -7,25 +7,21 @@ DEBUT(); #CYCLE 1 # LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS - PRE_GIBI(); # - MA1=LIRE_MAILLAGE(); # - MA1=DEFI_GROUP(reuse =MA1, + MAILLAGE=MA1, CREA_GROUP_NO=_F(GROUP_MA=('FIXATI','APPUI','LIAS_1','LIAS_2','EBGUIDE','MAINTIEN','MAIN_SUP','EMBO_SUP','TUB_GUID', - 'GRILLES','EMBO_INF','PIEDS','CRAYONS',),), - MAILLAGE=MA1,); + 'GRILLES','EMBO_INF','PIEDS','CRAYONS',),),); # # AFFECTATION DU MODELE -# - -MO1=AFFE_MODELE(AFFE=(_F(GROUP_MA='CRAYONS', +MO1=AFFE_MODELE(MAILLAGE=MA1, + AFFE=(_F(GROUP_MA='CRAYONS', PHENOMENE='MECANIQUE', MODELISATION='POU_D_E',), _F(GROUP_MA='TUB_GUID', @@ -48,282 +44,262 @@ MO1=AFFE_MODELE(AFFE=(_F(GROUP_MA='CRAYONS', MODELISATION='DIS_TR',), _F(GROUP_MA='MAINTIEN', PHENOMENE='MECANIQUE', - MODELISATION='POU_D_E',),), - MAILLAGE=MA1,); + MODELISATION='POU_D_E',),),); # # AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES -# - CARA1=AFFE_CARA_ELEM(MODELE=MO1, - COQUE=(_F(ANGL_REP=90.0, - GROUP_MA='EBOINF', - EPAIS=2.0,), - _F(ANGL_REP=90.0, - GROUP_MA='EBOSUP', - EPAIS=3.0,),), - DISCRET=(_F(VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), - REPERE='LOCAL', + POUTRE=(_F(GROUP_MA='CRAY', + SECTION='CERCLE', + CARA=('R','EP',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='GUID', + SECTION='CERCLE', + CARA=('R','EP',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='RETRE', + SECTION='CERCLE', + CARA=('R','EP',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='GRIL_I', + SECTION='RECTANGLE', + CARA=('HY','HZ',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='GRIL_E', + SECTION='RECTANGLE', + CARA=('HY','HZ',), + VALE=(3.0,3.0,),), + _F(GROUP_MA=('MAINTI_Y','MAINTI_Z',), + SECTION='RECTANGLE', + CARA=('HY','HZ',), + VALE=(3.0,3.0,),), + _F(GROUP_MA='PI_PLE', + SECTION='GENERALE', + CARA=('A','IZ','IY','JX',), + VALE=(1.0,2.0,3.0,4.0,),), + _F(GROUP_MA='PI_TRO', + SECTION='GENERALE', + CARA=('A','IZ','IY','JX',), + VALE=(1.0,2.0,3.0,4.0,),),), + ORIENTATION=(_F(GROUP_MA=('GRIL_I','GRIL_E',), + VALE=(1.0,0.0,0.0,), + CARA='VECT_Y',), + _F(GROUP_MA='MAINTI_Y', + VALE=(0.0,1.0,0.0,), + CARA='VECT_Y',), + _F(GROUP_MA='MAINTI_Z', + VALE=(0.0,0.0,1.0,), + CARA='VECT_Y',), + _F(GROUP_MA=('PI_PLE','PI_TRO',), + VALE=(0.0,1.0,0.0,), + CARA='VECT_Y',), + _F(GROUP_MA=('ELASTI','RIGID',), + VALE=(1.0,0.0,0.0,), + CARA='VECT_Y',),), + DISCRET=(_F(GROUP_MA='ELASTI', CARA='K_TR_D_L', - GROUP_MA='ELASTI',), - _F(VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), - REPERE='LOCAL', + VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), + REPERE='LOCAL',), + _F(GROUP_MA='RIGID', CARA='K_TR_D_L', - GROUP_MA='RIGID',),), - ORIENTATION=(_F(VALE=(1.0,0.0,0.0,), - CARA='VECT_Y', - GROUP_MA=('GRIL_I','GRIL_E',),), - _F(VALE=(0.0,1.0,0.0,), - CARA='VECT_Y', - GROUP_MA='MAINTI_Y',), - _F(VALE=(0.0,0.0,1.0,), - CARA='VECT_Y', - GROUP_MA='MAINTI_Z',), - _F(VALE=(0.0,1.0,0.0,), - CARA='VECT_Y', - GROUP_MA=('PI_PLE','PI_TRO',),), - _F(VALE=(1.0,0.0,0.0,), - CARA='VECT_Y', - GROUP_MA=('ELASTI','RIGID',),),), - POUTRE=(_F(SECTION='CERCLE', - GROUP_MA='CRAY', - VALE=(3.0,3.0,), - CARA=('R','EP',),), - _F(SECTION='CERCLE', - GROUP_MA='GUID', - VALE=(3.0,3.0,), - CARA=('R','EP',),), - _F(SECTION='CERCLE', - GROUP_MA='RETRE', - VALE=(3.0,3.0,), - CARA=('R','EP',),), - _F(SECTION='RECTANGLE', - GROUP_MA='GRIL_I', - VALE=(3.0,3.0,), - CARA=('HY','HZ',),), - _F(SECTION='RECTANGLE', - GROUP_MA='GRIL_E', - VALE=(3.0,3.0,), - CARA=('HY','HZ',),), - _F(SECTION='RECTANGLE', - GROUP_MA=('MAINTI_Y','MAINTI_Z',), - VALE=(3.0,3.0,), - CARA=('HY','HZ',),), - _F(SECTION='GENERALE', - GROUP_MA='PI_PLE', - VALE=(1.0,2.0,3.0,4.0,), - CARA=('A','IZ','IY','JX',),), - _F(SECTION='GENERALE', - GROUP_MA='PI_TRO', - VALE=(1.0,2.0,3.0,4.0,), - CARA=('A','IZ','IY','JX',),),),); + VALE=(1.0,2.0,3.0,4.0,5.0,6.0,), + REPERE='LOCAL',),), + COQUE=(_F(EPAIS=2.0, + GROUP_MA='EBOINF', + ANGL_REP=90.0,), + _F(EPAIS=3.0, + GROUP_MA='EBOSUP', + ANGL_REP=90.0,),),); # # DEFINITION DES CHARGES ET CONDITIONS LIMITES # DEFINITION DES TEMPERATURES NODALES EVOLUTIVES -# - -F_TP1_1=DEFI_FONCTION(NOM_RESU='TEMP', - PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,4.0,), - PROL_DROIT='CONSTANT',); +F_TP1_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,4.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); -F_TP2_1=DEFI_FONCTION(NOM_RESU='TEMP', - PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,4.0,), - PROL_DROIT='CONSTANT',); +F_TP2_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,4.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); -F_TP3_1=DEFI_FONCTION(NOM_RESU='TEMP', - PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,4.0,), - PROL_DROIT='CONSTANT',); +F_TP3_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,4.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',NOM_RESU='TEMP',); -CHTEM1_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F', - AFFE=(_F(FONCTION=F_TP1_1, +CHTEM1_1=AFFE_CHAM_NO(MAILLAGE=MA1, + GRANDEUR='TEMP_F', + AFFE=(_F(NOM_CMP='TEMP', GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',), - NOM_CMP='TEMP',), - _F(FONCTION=(F_TP1_1,F_TP1_1,F_TP1_1,), + FONCTION=F_TP1_1,), + _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), GROUP_NO=('EMBO_SUP','EMBO_INF',), - NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),), - MAILLAGE=MA1,); + FONCTION=(F_TP1_1,F_TP1_1,F_TP1_1,),),),); -CHTEM2_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F', - AFFE=(_F(FONCTION=F_TP2_1, +CHTEM2_1=AFFE_CHAM_NO(MAILLAGE=MA1, + GRANDEUR='TEMP_F', + AFFE=(_F(NOM_CMP='TEMP', GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',), - NOM_CMP='TEMP',), - _F(FONCTION=(F_TP2_1,F_TP2_1,F_TP2_1,), + FONCTION=F_TP2_1,), + _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), GROUP_NO=('EMBO_SUP','EMBO_INF',), - NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),), - MAILLAGE=MA1,); + FONCTION=(F_TP2_1,F_TP2_1,F_TP2_1,),),),); -CHTEM3_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F', - AFFE=(_F(FONCTION=F_TP3_1, +CHTEM3_1=AFFE_CHAM_NO(MAILLAGE=MA1, + GRANDEUR='TEMP_F', + AFFE=(_F(NOM_CMP='TEMP', GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES',), - NOM_CMP='TEMP',), - _F(FONCTION=(F_TP3_1,F_TP3_1,F_TP3_1,), + FONCTION=F_TP3_1,), + _F(NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',), GROUP_NO=('EMBO_SUP','EMBO_INF',), - NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),), - _F(FONCTION=F_TP3_1, + FONCTION=(F_TP3_1,F_TP3_1,F_TP3_1,),), + _F(NOM_CMP='TEMP', GROUP_NO='CRAYONS', - NOM_CMP='TEMP',),), - MAILLAGE=MA1,); - -CHTH_1=CREA_RESU(NOM_CHAM='TEMP', - CHAM_GD=(_F(INST=0.0, - CHAM_NO=CHTEM1_1,), - _F(INST=1000.0, - CHAM_NO=CHTEM1_1,), - _F(INST=2000.0, - CHAM_NO=CHTEM2_1,), - _F(INST=3000.0, - CHAM_NO=CHTEM3_1,), - _F(INST=4000.0, - CHAM_NO=CHTEM3_1,), - _F(INST=5000.0, - CHAM_NO=CHTEM2_1,), - _F(INST=6000.0, - CHAM_NO=CHTEM1_1,), - _F(INST=7000.0, - CHAM_NO=CHTEM1_1,),), - TYPE_RESU='EVOL_THER',); + FONCTION=F_TP3_1,),),); + +CHTH_1=CREA_RESU(TYPE_RESU='EVOL_THER', + NOM_CHAM='TEMP', + CHAM_GD=(_F(CHAM_NO=CHTEM1_1, + INST=0.0,), + _F(CHAM_NO=CHTEM1_1, + INST=1000.0,), + _F(CHAM_NO=CHTEM2_1, + INST=2000.0,), + _F(CHAM_NO=CHTEM3_1, + INST=3000.0,), + _F(CHAM_NO=CHTEM3_1, + INST=4000.0,), + _F(CHAM_NO=CHTEM2_1, + INST=5000.0,), + _F(CHAM_NO=CHTEM1_1, + INST=6000.0,), + _F(CHAM_NO=CHTEM1_1, + INST=7000.0,),),); # CHARGEMENT: CHARGES THERMO-MECANIQUES # ---------------------------------------- - -THERM_1=AFFE_CHAR_MECA(MODELE=MO1, - TEMP_CALCULEE=CHTH_1,); +THERM_1=AFFE_CHAR_MECA(TEMP_CALCULEE=CHTH_1, + MODELE=MO1,); # DEFINITION DES CONDITIONS LIMITES # DES CONDITIONS DE CONTACT # # CHARGEMENT: PESANTEUR -# - -PESANT_1=AFFE_CHAR_MECA(MODELE=MO1, - PESANTEUR=(9.8100000000000005,-1.0,0.0,0.0,),); +PESANT_1=AFFE_CHAR_MECA(PESANTEUR=(9.81,-1.0,0.0,0.0,), + MODELE=MO1,); # # CONDITIONS AUX LIMITES -# - CL_PER_1=AFFE_CHAR_MECA(MODELE=MO1, - DDL_IMPO=(_F(DZ=0.0, - DX=0.0, - DY=0.0, - GROUP_NO='FIXATI', - DRZ=0.0, + DDL_IMPO=(_F(DRY=0.0, DRX=0.0, - DRY=0.0,), - _F(DX=0.0, - GROUP_NO='APPUI',), - _F(DZ=0.0, - DY=0.0, - GROUP_NO='EBGUIDE', DRZ=0.0, + GROUP_NO='FIXATI', + DY=0.0, + DZ=0.0, + DX=0.0,), + _F(GROUP_NO='APPUI', + DX=0.0,), + _F(DRY=0.0, DRX=0.0, - DRY=0.0,), - _F(GROUP_NO=('LIAS_1','LIAS_2',), - DRX=0.0,),), - LIAISON_GROUP=(_F(COEF_MULT_1=1.0, - DDL_1='DX', - COEF_MULT_2=-1.0, - COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', + DRZ=0.0, + GROUP_NO='EBGUIDE', + DY=0.0, + DZ=0.0,), + _F(DRX=0.0, + GROUP_NO=('LIAS_1','LIAS_2',),),), + LIAISON_GROUP=(_F(GROUP_NO_1='LIAS_1', GROUP_NO_2='LIAS_2', - DDL_2='DX',), - _F(COEF_MULT_1=1.0, - DDL_1='DY', - COEF_MULT_2=-1.0, + DDL_2='DX', COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', - GROUP_NO_2='LIAS_2', - DDL_2='DY',), - _F(COEF_MULT_1=1.0, - DDL_1='DZ', COEF_MULT_2=-1.0, - COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', + DDL_1='DX', + COEF_MULT_1=1.0,), + _F(GROUP_NO_1='LIAS_1', GROUP_NO_2='LIAS_2', - DDL_2='DZ',), - _F(COEF_MULT_1=1.0, - DDL_1='DRY', - COEF_MULT_2=-1.0, + DDL_2='DY', COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', + COEF_MULT_2=-1.0, + DDL_1='DY', + COEF_MULT_1=1.0,), + _F(GROUP_NO_1='LIAS_1', GROUP_NO_2='LIAS_2', - DDL_2='DRY',), - _F(COEF_MULT_1=1.0, - DDL_1='DRZ', + DDL_2='DZ', + COEF_IMPO=0.0, COEF_MULT_2=-1.0, + DDL_1='DZ', + COEF_MULT_1=1.0,), + _F(GROUP_NO_1='LIAS_1', + GROUP_NO_2='LIAS_2', + DDL_2='DRY', COEF_IMPO=0.0, - GROUP_NO_1='LIAS_1', + COEF_MULT_2=-1.0, + DDL_1='DRY', + COEF_MULT_1=1.0,), + _F(GROUP_NO_1='LIAS_1', GROUP_NO_2='LIAS_2', - DDL_2='DRZ',),),); + DDL_2='DRZ', + COEF_IMPO=0.0, + COEF_MULT_2=-1.0, + DDL_1='DRZ', + COEF_MULT_1=1.0,),),); # - -CL_CTC=AFFE_CHAR_MECA(INFO=1, - MODELE=MO1, - CONTACT=_F(GROUP_MA_1='EBOINF', +CL_CTC=AFFE_CHAR_MECA(MODELE=MO1, + INFO=1, + CONTACT=_F(APPARIEMENT='NODAL', VECT_NORM_2=(-1.0,0.0,0.0,), - APPARIEMENT='NODAL', + GROUP_MA_1='EBOINF', GROUP_MA_2='MCRBAS',),); # # DEPLACEMENT DU SYSTEME DE MAINTIEN -# - -CLDI_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE= - (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0, - 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0, - 0.10000000000000001,7000.0,0.10000000000000001,), - PROL_DROIT='CONSTANT',); +CLDI_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 1000.0,0.1, + 2000.0,0.2, + 3000.0,0.2, + 4000.0,0.2, + 5000.0,0.2, + 6000.0,0.1, + 7000.0,0.1, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); CL_DI_1=AFFE_CHAR_MECA(MODELE=MO1, - DDL_IMPO=_F(DX=-1.0, - GROUP_NO='MAIN_SUP',),); + DDL_IMPO=_F(GROUP_NO='MAIN_SUP', + DX=-1.0,),); # DEFINITION DES FORCES EXTERIEURES # # FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE -# - -HYDR_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE= - (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0, - 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0, - 0.10000000000000001,7000.0,0.10000000000000001,), - PROL_DROIT='CONSTANT',); +HYDR_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 1000.0,0.1, + 2000.0,0.2, + 3000.0,0.2, + 4000.0,0.2, + 5000.0,0.2, + 6000.0,0.1, + 7000.0,0.1, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); # # PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID -# - -HYFRTU_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +HYFRTU_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # # PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID -# - -HYFRCR_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +HYFRCR_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # # CHARGEMENT : FORCES HYDRODYNAMIQUES -# - -HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='GRIL10', +HYDR_1=AFFE_CHAR_MECA(MODELE=MO1, + FORCE_COQUE=(_F(FX=10.0, + GROUP_MA='EBOSUP',), + _F(FX=10.0, + GROUP_MA='EBOINF',),), + FORCE_POUTRE=(_F(GROUP_MA='GRIL10', FX=10.0,), _F(GROUP_MA='GRIL1', FX=10.0,), @@ -342,63 +318,53 @@ HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='GRIL10', _F(GROUP_MA='GRIL8', FX=10.0,), _F(GROUP_MA='GRIL9', - FX=10.0,),), - MODELE=MO1, - FORCE_COQUE=(_F(FX=10.0, - GROUP_MA='EBOSUP',), - _F(FX=10.0, - GROUP_MA='EBOINF',),),); + FX=10.0,),),); -TOTO_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,10.0,5.0,10.0,), - PROL_DROIT='CONSTANT',); +TOTO_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, + 5.0,10.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # - -FOHYDR_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID', +FOHYDR_1=AFFE_CHAR_MECA_F(MODELE=MO1, + FORCE_POUTRE=(_F(GROUP_MA='GUID', FX=TOTO_1,), _F(GROUP_MA='CRAY', - FX=TOTO_1,),), - MODELE=MO1,); + FX=TOTO_1,),),); # # PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE -# - -ARFRTU_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,10.0,5.0,10.0,), - PROL_DROIT='CONSTANT',); +ARFRTU_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, + 5.0,10.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # # PROFIL DES FORCES D'ARCHIMEDE CRAYON -# - -ARFRCR_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='X', - VALE=(0.0,10.0,5.0,10.0,), - PROL_DROIT='CONSTANT',); +ARFRCR_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,10.0, + 5.0,10.0, + ),NOM_PARA='X',PROL_GAUCHE='CONSTANT',); # # FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE -# - -ARCH_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE= - (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0, - 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0, - 0.10000000000000001,7000.0,0.10000000000000001,), - PROL_DROIT='CONSTANT',); +ARCH_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 1000.0,0.1, + 2000.0,0.2, + 3000.0,0.2, + 4000.0,0.2, + 5000.0,0.2, + 6000.0,0.1, + 7000.0,0.1, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); # # # CHARGEMENT : FORCES D'ARCHIMEDE # ---------------------------------------- -# - -ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN', +ARCH_1=AFFE_CHAR_MECA(MODELE=MO1, + FORCE_COQUE=(_F(FX=10.0, + GROUP_MA='EBOSUP',), + _F(FX=10.0, + GROUP_MA='EBOINF',),), + FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN', FX=10.0,), _F(GROUP_MA='GRIL10', FX=10.0,), @@ -419,18 +385,13 @@ ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN', _F(GROUP_MA='GRIL8', FX=10.0,), _F(GROUP_MA='GRIL9', - FX=10.0,),), - MODELE=MO1, - FORCE_COQUE=(_F(FX=10.0, - GROUP_MA='EBOSUP',), - _F(FX=10.0, - GROUP_MA='EBOINF',),),); + FX=10.0,),),); -FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID', +FOARCH_1=AFFE_CHAR_MECA_F(MODELE=MO1, + FORCE_POUTRE=(_F(GROUP_MA='GUID', FX=ARCH_F1,), _F(GROUP_MA='CRAY', - FX=ARCH_F1,),), - MODELE=MO1,); + FX=ARCH_F1,),),); # # # FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON @@ -440,358 +401,473 @@ FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID', # # # DEFINITION DE LA LISTE D'INSTANTS -# - -L_FRIG=DEFI_LIST_REEL(INTERVALLE=_F(JUSQU_A=1000.0, - NOMBRE=100,), - DEBUT=0.0,); +L_FRIG=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=_F(NOMBRE=100, + JUSQU_A=1000.0,),); # # INRTERPRETATION DES FONCTIONS -# +F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F2=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F3=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F4=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); -F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F2=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F3=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F4=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F5=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F6=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F7=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F8=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F9=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -F10=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE=(0.0,0.0,43200.0,0.0,), - PROL_DROIT='CONSTANT',); - -FRIG1=CALC_FONC_INTERP(FONCTION=F1, +F5=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F6=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F7=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F8=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F9=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +F10=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); + +FRIG1=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F1,); -FRIG2=CALC_FONC_INTERP(FONCTION=F2, +FRIG2=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F2,); -FRIG3=CALC_FONC_INTERP(FONCTION=F3, +FRIG3=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F3,); -FRIG4=CALC_FONC_INTERP(FONCTION=F4, +FRIG4=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F4,); -FRIG5=CALC_FONC_INTERP(FONCTION=F5, +FRIG5=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F5,); -FRIG6=CALC_FONC_INTERP(FONCTION=F6, +FRIG6=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F6,); -FRIG7=CALC_FONC_INTERP(FONCTION=F7, +FRIG7=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F7,); -FRIG8=CALC_FONC_INTERP(FONCTION=F8, +FRIG8=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F8,); -FRIG9=CALC_FONC_INTERP(FONCTION=F9, +FRIG9=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F9,); -FRIG10=CALC_FONC_INTERP(FONCTION=F10, +FRIG10=CALC_FONC_INTERP(LIST_PARA=L_FRIG, PROL_DROIT='CONSTANT', - INTERPOL='LIN', PROL_GAUCHE='CONSTANT', - LIST_PARA=L_FRIG,); + INTERPOL='LIN', + FONCTION=F10,); # # DEFINITION DU FLUX NEUTRONIQUE RADIAL - -FLUX_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='INST', - VALE= - (0.0,0.0,43200.0,0.0,974520.0,453280.0,2638800.0,2077850.0,4087800.0,3512790.0, - 5428440.0,4856770.0,7245000.0,6676270.0,8853480.0,8279770.0,10460900.0,9872610.0,12202900.0, - 11586900.0,13944600.0,13295200.0,14143700.0,13490200.0,15563200.0,14875300.0,17236100.0, - 16506900.0,17948200.0,17199200.0,18190100.0,17433400.0,18193700.0,17435200.0,18197300.0, - 17435200.0,18200900.0,17435200.0,), - PROL_DROIT='CONSTANT',); +FLUX_F1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,0.0, + 43200.0,0.0, + 974520.0,453280.0, + 2638800.0,2077850.0, + 4087800.0,3512790.0, + 5428440.0,4856770.0, + 7245000.0,6676270.0, + 8853480.0,8279770.0, + 10460900.0,9872610.0, + 12202900.0,11586900.0, + 13944600.0,13295200.0, + 14143700.0,13490200.0, + 15563200.0,14875300.0, + 17236100.0,16506900.0, + 17948200.0,17199200.0, + 18190100.0,17433400.0, + 18193700.0,17435200.0, + 18197300.0,17435200.0, + 18200900.0,17435200.0, + ),NOM_PARA='INST',PROL_GAUCHE='CONSTANT',); # DEFINITION DU FLUX AXIAL POUR LE CYCLE 1 - -FLUXAX1=LIRE_FONCTION(PROL_GAUCHE='CONSTANT', +FLUXAX1=LIRE_FONCTION(PROL_DROIT='CONSTANT', UNITE=60, - PROL_DROIT='CONSTANT',); - -FLY_1_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,3.8032834757835002e-07,-0.088200000000000001,3.8083689458688999e-07, - -0.075600000000000001,3.8296082621083001e-07,-0.063,3.858400997151e-07,-0.0504, - 3.8946100427349999e-07,-0.0378,3.9259455128205e-07,-0.0252,3.9258457977207998e-07,-0.0126, - 3.9294106125356001e-07,0.0,3.9399554843304999e-07,0.0126,3.9293233618234e-07,0.0252, - 3.9256712962963002e-07,0.0378,3.9256712962963002e-07,0.0504,3.8942610398860001e-07,0.063, - 3.8579522792023001e-07,0.075600000000000001,3.8290972222222002e-07,0.088200000000000001, - 3.8077706552707e-07,0.1008,3.8026103988603998e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_2=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,4.3595566239316001e-07,-0.088200000000000001,4.3866542022792e-07, - -0.075600000000000001,4.4331463675214e-07,-0.063,4.4911556267806002e-07,-0.0504, - 4.5750658831909e-07,-0.0378,4.6647222222221997e-07,-0.0252,4.6002938034188002e-07,-0.0126, - 4.6004309116809001e-07,0.0,4.6686235754985997e-07,0.0126,4.6003311965811999e-07,0.0252, - 4.6000943732193999e-07,0.0378,4.6643981481481001e-07,0.0504,4.5746420940171002e-07,0.063, - 4.4906445868945999e-07,0.075600000000000001,4.4325356125356e-07,0.088200000000000001, - 4.3859686609687001e-07,0.1008,4.3587838319088001e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_3=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,4.9431891025640996e-07,-0.088200000000000001,5.0005128205127998e-07, - -0.075600000000000001,5.1337197293447004e-07,-0.063,5.2915313390313001e-07,-0.0504, - 5.3788069800570004e-07,-0.0378,5.3504629629630004e-07,-0.0252,5.3221189458688998e-07,-0.0126, - 5.3136431623932e-07,0.0,5.3135870726495999e-07,0.0126,5.3135309829059998e-07,0.0252, - 5.3218696581197002e-07,0.0378,5.3500827991452996e-07,0.0504,5.3782959401709e-07,0.063, - 5.2909205840456002e-07,0.075600000000000001,5.1330217236466999e-07,0.088200000000000001, - 4.9997150997151001e-07,0.1008,4.9423165954416005e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_4=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,5.5489957264956999e-07,-0.088200000000000001,5.6477884615384998e-07, - -0.075600000000000001,5.9007781339030998e-07,-0.063,5.9726415598291003e-07,-0.0504, - 6.0445049857550001e-07,-0.0378,5.9840776353275996e-07,-0.0252,5.8440651709402002e-07,-0.0126, - 5.8263906695157003e-07,0.0,5.9153240740741004e-07,0.0126,5.8262660256409999e-07,0.0252, - 5.8438034188033999e-07,0.0378,5.9836663105413e-07,0.0504,6.0439316239316004e-07,0.063, - 5.9719497863248e-07,0.075600000000000001,5.8999679487179001e-07,0.088200000000000001, - 5.6469159544159996e-07,0.1008,5.5480110398860005e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_5=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,6.1267200854701004e-07,-0.088200000000000001,6.2962357549858005e-07, - -0.075600000000000001,6.5655413105413e-07,-0.063,6.6164583333332999e-07,-0.0504, - 6.5190242165241998e-07,-0.0378,6.5212678062678005e-07,-0.0252,6.3746616809116999e-07,-0.0126, - 6.3547435897436004e-07,0.0,6.4509686609687001e-07,0.0126,6.3546064814814995e-07,0.0252, - 6.3743625356125e-07,0.0378,6.5207941595442004e-07,0.0504,6.5183885327634997e-07,0.063, - 6.6156980056979999e-07,0.075600000000000001,6.5646563390312997e-07,0.088200000000000001, - 6.2952386039885999e-07,0.1008,6.1256356837606998e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_6=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,6.5755128205127996e-07,-0.088200000000000001,6.8336253561253996e-07, - -0.075600000000000001,6.9012072649573003e-07,-0.063,6.9687891737892e-07,-0.0504, - 6.9362571225071001e-07,-0.0378,6.9074768518518997e-07,-0.0252,6.8786965811965998e-07,-0.0126, - 6.8586413817664004e-07,0.0,6.8585603632478996e-07,0.0126,6.8584793447293003e-07,0.0252, - 6.8783600427350001e-07,0.0378,6.9069720441594996e-07,0.0504,6.9355840455840002e-07,0.063, - 6.9679789886040002e-07,0.075600000000000001,6.9002412749288002e-07,0.088200000000000001, - 6.8325035612536003e-07,0.1008,6.5743162393161998e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_7=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,6.9684526353276003e-07,-0.088200000000000001,7.1406606125356005e-07, - -0.075600000000000001,7.3236502849003e-07,-0.063,7.2076442307691997e-07,-0.0504, - 7.1793500712250995e-07,-0.0378,7.2835648148147998e-07,-0.0252,7.1444747150996998e-07,-0.0126, - 7.1130893874644005e-07,0.0,7.2107727920227996e-07,0.0126,7.1129398148148005e-07,0.0252, - 7.1441257122506995e-07,0.0378,7.2830288461537998e-07,0.0504,7.1786396011395999e-07,0.063, - 7.2067841880341996e-07,0.075600000000000001,7.3226157407406997e-07,0.088200000000000001, - 7.1395138888889005e-07,0.1008,6.9671812678063005e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_8=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,7.3679362535612996e-07,-0.088200000000000001,7.5423130341880005e-07, - -0.075600000000000001,7.7215633903134002e-07,-0.063,7.5865740740741005e-07,-0.0504, - 7.5547774216523998e-07,-0.0378,7.6662464387464e-07,-0.0252,7.5088461538461995e-07,-0.0126, - 7.4313924501423998e-07,0.0,7.486323005698e-07,0.0126,7.4312054843304996e-07,0.0252, - 7.5084722222222e-07,0.0378,7.6656730769230998e-07,0.0504,7.5540170940170999e-07,0.063, - 7.5856267806267997e-07,0.075600000000000001,7.7204415954415998e-07,0.088200000000000001, - 7.5410790598291005e-07,0.1008,7.3665776353275997e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_9=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,7.7370940170939995e-07,-0.088200000000000001,8.0144764957264998e-07, - -0.075600000000000001,8.0374358974358997e-07,-0.063,8.0603952991452995e-07,-0.0504, - 8.0238372507123005e-07,-0.0378,7.9936672008546997e-07,-0.0252,7.9634971509971995e-07,-0.0126, - 7.8317361111111004e-07,0.0,7.8316426282051005e-07,0.0126,7.8315491452990996e-07,0.0252, - 7.9631107549857995e-07,0.0378,7.9930689102564003e-07,0.0504,8.0230270655270996e-07,0.063, - 8.0593856837607005e-07,0.075600000000000001,8.0362580128205003e-07,0.088200000000000001, - 8.0131303418803e-07,0.1008,7.7356356837607e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_10=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,7.9424198717948999e-07,-0.088200000000000001,8.1225925925926001e-07, - -0.075600000000000001,8.3075516381766e-07,-0.063,8.1540651709402001e-07,-0.0504, - 8.1131071937321997e-07,-0.0378,8.2297489316238996e-07,-0.0252,8.0577403846154003e-07,-0.0126, - 7.9717236467236002e-07,0.0,8.0284615384615001e-07,0.0126,7.9715117521368004e-07,0.0252, - 8.0573165954416005e-07,0.0378,8.2291257122506995e-07,0.0504,8.1122845441594998e-07,0.063, - 8.1530306267805998e-07,0.075600000000000001,8.3063051994301999e-07,0.088200000000000001, - 8.1211841168090999e-07,0.1008,7.9408742877492998e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_11=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.1647845441594995e-07,-0.088200000000000001,8.3510648148147996e-07, - -0.075600000000000001,8.5487873931623998e-07,-0.063,8.3969088319087998e-07,-0.0504, - 8.3502920227919995e-07,-0.0378,8.4651014957265e-07,-0.0252,8.2973931623932002e-07,-0.0126, - 8.2549269943020005e-07,0.0,8.3637909544160002e-07,0.0126,8.2547275641026002e-07,0.0252, - 8.2969319800569997e-07,0.0378,8.4644408831909002e-07,0.0504,8.3493945868945997e-07,0.063, - 8.3957995014244996e-07,0.075600000000000001,8.5474786324785998e-07,0.088200000000000001, - 8.3495690883191003e-07,0.1008,8.1631641737892005e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_12=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.3948272792023003e-07,-0.088200000000000001,8.7002546296295996e-07, - -0.075600000000000001,8.7608564814814997e-07,-0.063,8.8214583333333004e-07,-0.0504, - 8.7589245014244996e-07,-0.0378,8.7128872863248004e-07,-0.0252,8.6668500712251001e-07,-0.0126, - 8.6321616809117001e-07,0.0,8.6320432692307996e-07,0.0126,8.6319248575499001e-07,0.0252, - 8.6663764245014005e-07,0.0378,8.7121705840456005e-07,0.0504,8.7579647435896998e-07,0.063, - 8.8202617521368001e-07,0.075600000000000001,8.7594667022791999e-07,0.088200000000000001, - 8.6986716524217003e-07,0.1008,8.3931196581196996e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_13=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.5508315527066002e-07,-0.088200000000000001,8.7546616809116998e-07, - -0.075600000000000001,9.0944533475783005e-07,-0.063,9.1292663817663998e-07,-0.0504, - 8.9653721509972004e-07,-0.0378,8.9547275641025999e-07,-0.0252,8.7405644586895003e-07,-0.0126, - 8.7004789886040001e-07,0.0,8.8226549145299002e-07,0.0126,8.7002546296295996e-07,0.0252, - 8.7400534188033999e-07,0.0378,8.9539672364672004e-07,0.0504,8.9643376068376001e-07,0.063, - 9.1279825498575999e-07,0.075600000000000001,9.0929576210826002e-07,0.088200000000000001, - 8.7530288461538001e-07,0.1008,8.5490491452990995e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_14=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.5798237179486999e-07,-0.088200000000000001,8.6880893874644002e-07, - -0.075600000000000001,9.0299750712251001e-07,-0.063,9.0948646723646997e-07,-0.0504, - 9.1597542735043003e-07,-0.0378,9.0500302706552995e-07,-0.0252,8.8214084757835001e-07,-0.0126, - 8.7779825498574995e-07,0.0,8.8993732193732e-07,0.0126,8.7777207977207998e-07,0.0252, - 8.8208974358973997e-07,0.0378,9.0492325498575998e-07,0.0504,9.1586574074073996e-07,0.063, - 9.0935434472933995e-07,0.075600000000000001,9.0284294871795e-07,0.088200000000000001, - 8.6864066951567002e-07,0.1008,8.5779665242165003e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_15=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.5773557692308004e-07,-0.088200000000000001,8.6180893874644003e-07, - -0.075600000000000001,8.7862838319088002e-07,-0.063,8.9924074074074004e-07,-0.0504, - 9.0872489316239005e-07,-0.0378,9.0174545940170996e-07,-0.0252,8.9476602564102997e-07,-0.0126, - 8.9122364672365005e-07,0.0,8.9120993589743996e-07,0.0126,8.9119622507122997e-07,0.0252, - 8.9471118233617996e-07,0.0378,9.0166132478632003e-07,0.0504,9.0861146723646996e-07,0.063, - 8.9910363247862999e-07,0.075600000000000001,8.7847257834757996e-07,0.088200000000000001, - 8.6163693019942995e-07,0.1008,8.5754362535613004e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_16=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.5903935185184999e-07,-0.088200000000000001,8.5690046296295998e-07, - -0.075600000000000001,8.5831018518518999e-07,-0.063,8.6167307692307999e-07,-0.0504, - 8.7125320512820998e-07,-0.0378,8.8563586182335997e-07,-0.0252,8.7089298433048003e-07,-0.0126, - 8.6842877492877004e-07,0.0,8.7942111823362e-07,0.0126,8.6840135327634996e-07,0.0252, - 8.7083814102563997e-07,0.0378,8.8554985754985996e-07,0.0504,8.7113977920228004e-07,0.063, - 8.6153846153846001e-07,0.075600000000000001,8.5815313390312996e-07,0.088200000000000001, - 8.5672471509971999e-07,0.1008,8.5884116809116995e-07,), - PROL_DROIT='CONSTANT',); - -FLY_1_17=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='Y', - VALE= - (-0.1008,8.6388675213674999e-07,-0.088200000000000001,8.5563782051281999e-07, - -0.075600000000000001,8.5087019230768996e-07,-0.063,8.4755965099714995e-07,-0.0504, - 8.4761698717949003e-07,-0.0378,8.5133636039885996e-07,-0.0252,8.4844088319088001e-07,-0.0126, - 8.4633689458689002e-07,0.0,8.4644658119657999e-07,0.0126,8.4630947293447004e-07,0.0252, - 8.4838479344729004e-07,0.0378,8.512516025641e-07,0.0504,8.4750480769231e-07,0.063, - 8.4742378917379002e-07,0.075600000000000001,8.5071064814815003e-07,0.088200000000000001, - 8.5545584045584e-07,0.1008,8.6368108974359e-07,), - PROL_DROIT='CONSTANT',); - -FLUXRD1=DEFI_NAPPE(FONCTION=(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,FLY_1_10,FLY_1_11,FLY_1_12, - FLY_1_13,FLY_1_14,FLY_1_15,FLY_1_16,FLY_1_17,), + PROL_GAUCHE='CONSTANT',); + +FLY_1_1=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,3.80328347578e-07, + -0.0882,3.80836894587e-07, + -0.0756,3.82960826211e-07, + -0.063,3.85840099715e-07, + -0.0504,3.89461004273e-07, + -0.0378,3.92594551282e-07, + -0.0252,3.92584579772e-07, + -0.0126,3.92941061254e-07, + 0.0,3.93995548433e-07, + 0.0126,3.92932336182e-07, + 0.0252,3.9256712963e-07, + 0.0378,3.9256712963e-07, + 0.0504,3.89426103989e-07, + 0.063,3.8579522792e-07, + 0.0756,3.82909722222e-07, + 0.0882,3.80777065527e-07, + 0.1008,3.80261039886e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_2=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,4.35955662393e-07, + -0.0882,4.38665420228e-07, + -0.0756,4.43314636752e-07, + -0.063,4.49115562678e-07, + -0.0504,4.57506588319e-07, + -0.0378,4.66472222222e-07, + -0.0252,4.60029380342e-07, + -0.0126,4.60043091168e-07, + 0.0,4.6686235755e-07, + 0.0126,4.60033119658e-07, + 0.0252,4.60009437322e-07, + 0.0378,4.66439814815e-07, + 0.0504,4.57464209402e-07, + 0.063,4.49064458689e-07, + 0.0756,4.43253561254e-07, + 0.0882,4.38596866097e-07, + 0.1008,4.35878383191e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_3=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,4.94318910256e-07, + -0.0882,5.00051282051e-07, + -0.0756,5.13371972934e-07, + -0.063,5.29153133903e-07, + -0.0504,5.37880698006e-07, + -0.0378,5.35046296296e-07, + -0.0252,5.32211894587e-07, + -0.0126,5.31364316239e-07, + 0.0,5.31358707265e-07, + 0.0126,5.31353098291e-07, + 0.0252,5.32186965812e-07, + 0.0378,5.35008279915e-07, + 0.0504,5.37829594017e-07, + 0.063,5.29092058405e-07, + 0.0756,5.13302172365e-07, + 0.0882,4.99971509972e-07, + 0.1008,4.94231659544e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_4=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,5.5489957265e-07, + -0.0882,5.64778846154e-07, + -0.0756,5.9007781339e-07, + -0.063,5.97264155983e-07, + -0.0504,6.04450498576e-07, + -0.0378,5.98407763533e-07, + -0.0252,5.84406517094e-07, + -0.0126,5.82639066952e-07, + 0.0,5.91532407407e-07, + 0.0126,5.82626602564e-07, + 0.0252,5.8438034188e-07, + 0.0378,5.98366631054e-07, + 0.0504,6.04393162393e-07, + 0.063,5.97194978632e-07, + 0.0756,5.89996794872e-07, + 0.0882,5.64691595442e-07, + 0.1008,5.54801103989e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_5=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.12672008547e-07, + -0.0882,6.29623575499e-07, + -0.0756,6.56554131054e-07, + -0.063,6.61645833333e-07, + -0.0504,6.51902421652e-07, + -0.0378,6.52126780627e-07, + -0.0252,6.37466168091e-07, + -0.0126,6.35474358974e-07, + 0.0,6.45096866097e-07, + 0.0126,6.35460648148e-07, + 0.0252,6.37436253561e-07, + 0.0378,6.52079415954e-07, + 0.0504,6.51838853276e-07, + 0.063,6.6156980057e-07, + 0.0756,6.56465633903e-07, + 0.0882,6.29523860399e-07, + 0.1008,6.12563568376e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_6=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.57551282051e-07, + -0.0882,6.83362535613e-07, + -0.0756,6.90120726496e-07, + -0.063,6.96878917379e-07, + -0.0504,6.93625712251e-07, + -0.0378,6.90747685185e-07, + -0.0252,6.8786965812e-07, + -0.0126,6.85864138177e-07, + 0.0,6.85856036325e-07, + 0.0126,6.85847934473e-07, + 0.0252,6.87836004274e-07, + 0.0378,6.90697204416e-07, + 0.0504,6.93558404558e-07, + 0.063,6.9679789886e-07, + 0.0756,6.90024127493e-07, + 0.0882,6.83250356125e-07, + 0.1008,6.57431623932e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_7=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,6.96845263533e-07, + -0.0882,7.14066061254e-07, + -0.0756,7.3236502849e-07, + -0.063,7.20764423077e-07, + -0.0504,7.17935007123e-07, + -0.0378,7.28356481481e-07, + -0.0252,7.1444747151e-07, + -0.0126,7.11308938746e-07, + 0.0,7.21077279202e-07, + 0.0126,7.11293981481e-07, + 0.0252,7.14412571225e-07, + 0.0378,7.28302884615e-07, + 0.0504,7.17863960114e-07, + 0.063,7.20678418803e-07, + 0.0756,7.32261574074e-07, + 0.0882,7.13951388889e-07, + 0.1008,6.96718126781e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_8=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.36793625356e-07, + -0.0882,7.54231303419e-07, + -0.0756,7.72156339031e-07, + -0.063,7.58657407407e-07, + -0.0504,7.55477742165e-07, + -0.0378,7.66624643875e-07, + -0.0252,7.50884615385e-07, + -0.0126,7.43139245014e-07, + 0.0,7.4863230057e-07, + 0.0126,7.43120548433e-07, + 0.0252,7.50847222222e-07, + 0.0378,7.66567307692e-07, + 0.0504,7.55401709402e-07, + 0.063,7.58562678063e-07, + 0.0756,7.72044159544e-07, + 0.0882,7.54107905983e-07, + 0.1008,7.36657763533e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_9=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.73709401709e-07, + -0.0882,8.01447649573e-07, + -0.0756,8.03743589744e-07, + -0.063,8.06039529915e-07, + -0.0504,8.02383725071e-07, + -0.0378,7.99366720085e-07, + -0.0252,7.963497151e-07, + -0.0126,7.83173611111e-07, + 0.0,7.83164262821e-07, + 0.0126,7.8315491453e-07, + 0.0252,7.96311075499e-07, + 0.0378,7.99306891026e-07, + 0.0504,8.02302706553e-07, + 0.063,8.05938568376e-07, + 0.0756,8.03625801282e-07, + 0.0882,8.01313034188e-07, + 0.1008,7.73563568376e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_10=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,7.94241987179e-07, + -0.0882,8.12259259259e-07, + -0.0756,8.30755163818e-07, + -0.063,8.15406517094e-07, + -0.0504,8.11310719373e-07, + -0.0378,8.22974893162e-07, + -0.0252,8.05774038462e-07, + -0.0126,7.97172364672e-07, + 0.0,8.02846153846e-07, + 0.0126,7.97151175214e-07, + 0.0252,8.05731659544e-07, + 0.0378,8.22912571225e-07, + 0.0504,8.11228454416e-07, + 0.063,8.15303062678e-07, + 0.0756,8.30630519943e-07, + 0.0882,8.12118411681e-07, + 0.1008,7.94087428775e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_11=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.16478454416e-07, + -0.0882,8.35106481481e-07, + -0.0756,8.54878739316e-07, + -0.063,8.39690883191e-07, + -0.0504,8.35029202279e-07, + -0.0378,8.46510149573e-07, + -0.0252,8.29739316239e-07, + -0.0126,8.2549269943e-07, + 0.0,8.36379095442e-07, + 0.0126,8.2547275641e-07, + 0.0252,8.29693198006e-07, + 0.0378,8.46444088319e-07, + 0.0504,8.34939458689e-07, + 0.063,8.39579950142e-07, + 0.0756,8.54747863248e-07, + 0.0882,8.34956908832e-07, + 0.1008,8.16316417379e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_12=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.3948272792e-07, + -0.0882,8.70025462963e-07, + -0.0756,8.76085648148e-07, + -0.063,8.82145833333e-07, + -0.0504,8.75892450142e-07, + -0.0378,8.71288728632e-07, + -0.0252,8.66685007123e-07, + -0.0126,8.63216168091e-07, + 0.0,8.63204326923e-07, + 0.0126,8.63192485755e-07, + 0.0252,8.6663764245e-07, + 0.0378,8.71217058405e-07, + 0.0504,8.75796474359e-07, + 0.063,8.82026175214e-07, + 0.0756,8.75946670228e-07, + 0.0882,8.69867165242e-07, + 0.1008,8.39311965812e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_13=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.55083155271e-07, + -0.0882,8.75466168091e-07, + -0.0756,9.09445334758e-07, + -0.063,9.12926638177e-07, + -0.0504,8.965372151e-07, + -0.0378,8.9547275641e-07, + -0.0252,8.74056445869e-07, + -0.0126,8.7004789886e-07, + 0.0,8.82265491453e-07, + 0.0126,8.70025462963e-07, + 0.0252,8.7400534188e-07, + 0.0378,8.95396723647e-07, + 0.0504,8.96433760684e-07, + 0.063,9.12798254986e-07, + 0.0756,9.09295762108e-07, + 0.0882,8.75302884615e-07, + 0.1008,8.5490491453e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_14=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.57982371795e-07, + -0.0882,8.68808938746e-07, + -0.0756,9.02997507123e-07, + -0.063,9.09486467236e-07, + -0.0504,9.1597542735e-07, + -0.0378,9.05003027066e-07, + -0.0252,8.82140847578e-07, + -0.0126,8.77798254986e-07, + 0.0,8.89937321937e-07, + 0.0126,8.77772079772e-07, + 0.0252,8.8208974359e-07, + 0.0378,9.04923254986e-07, + 0.0504,9.15865740741e-07, + 0.063,9.09354344729e-07, + 0.0756,9.02842948718e-07, + 0.0882,8.68640669516e-07, + 0.1008,8.57796652422e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_15=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.57735576923e-07, + -0.0882,8.61808938746e-07, + -0.0756,8.78628383191e-07, + -0.063,8.99240740741e-07, + -0.0504,9.08724893162e-07, + -0.0378,9.01745459402e-07, + -0.0252,8.94766025641e-07, + -0.0126,8.91223646724e-07, + 0.0,8.91209935897e-07, + 0.0126,8.91196225071e-07, + 0.0252,8.94711182336e-07, + 0.0378,9.01661324786e-07, + 0.0504,9.08611467236e-07, + 0.063,8.99103632479e-07, + 0.0756,8.78472578348e-07, + 0.0882,8.61636930199e-07, + 0.1008,8.57543625356e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_16=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.59039351852e-07, + -0.0882,8.56900462963e-07, + -0.0756,8.58310185185e-07, + -0.063,8.61673076923e-07, + -0.0504,8.71253205128e-07, + -0.0378,8.85635861823e-07, + -0.0252,8.7089298433e-07, + -0.0126,8.68428774929e-07, + 0.0,8.79421118234e-07, + 0.0126,8.68401353276e-07, + 0.0252,8.70838141026e-07, + 0.0378,8.8554985755e-07, + 0.0504,8.71139779202e-07, + 0.063,8.61538461538e-07, + 0.0756,8.58153133903e-07, + 0.0882,8.567247151e-07, + 0.1008,8.58841168091e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLY_1_17=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(-0.1008,8.63886752137e-07, + -0.0882,8.55637820513e-07, + -0.0756,8.50870192308e-07, + -0.063,8.47559650997e-07, + -0.0504,8.47616987179e-07, + -0.0378,8.51336360399e-07, + -0.0252,8.48440883191e-07, + -0.0126,8.46336894587e-07, + 0.0,8.46446581197e-07, + 0.0126,8.46309472934e-07, + 0.0252,8.48384793447e-07, + 0.0378,8.51251602564e-07, + 0.0504,8.47504807692e-07, + 0.063,8.47423789174e-07, + 0.0756,8.50710648148e-07, + 0.0882,8.55455840456e-07, + 0.1008,8.63681089744e-07, + ),NOM_PARA='Y',PROL_GAUCHE='CONSTANT',); + +FLUXRD1=DEFI_NAPPE(PROL_DROIT='CONSTANT', PARA= - (-0.1008,-0.088200000000000001,-0.075600000000000001,-0.063,-0.0504,-0.0378,-0.0252, - -0.0126,0.0,0.0126,0.0252,0.0378,0.0504,0.063,0.075600000000000001,0.088200000000000001,0.1008,), - PROL_GAUCHE='CONSTANT', + (-0.1008,-0.0882,-0.0756,-0.063,-0.0504,-0.0378,-0.0252,-0.0126,0.0,0.0126,0.0252, + 0.0378,0.0504,0.063,0.0756,0.0882,0.1008,), NOM_PARA='Z', - PROL_DROIT='CONSTANT',); + PROL_GAUCHE='CONSTANT', + FONCTION= + (FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,FLY_1_10, + FLY_1_11,FLY_1_12,FLY_1_13,FLY_1_14,FLY_1_15,FLY_1_16,FLY_1_17,),); # # DEFINITION DES MATERIAUX ET AFFECTATIONS # @@ -802,508 +878,466 @@ FLUXRD1=DEFI_NAPPE(FONCTION=(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY # # EMBOUT SUPERIEUR +E_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); - -NU_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); +NU_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); +AL_ES=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MT_ES=DEFI_MATERIAU(ELAS_FO=_F(NU=NU_ES, - ALPHA=AL_ES, +MT_ES=DEFI_MATERIAU(ELAS_FO=_F(E=E_ES, RHO=7800.0, - E=E_ES,),); + ALPHA=AL_ES, + NU=NU_ES,),); # EMBOUT INFERIEUR +E_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); - -NU_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); +NU_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(100.0,2.0,300.0,3.0,), - PROL_DROIT='CONSTANT',); +AL_EI=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(100.0,2.0, + 300.0,3.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MT_EI=DEFI_MATERIAU(ELAS_FO=_F(NU=NU_EI, - ALPHA=AL_EI, +MT_EI=DEFI_MATERIAU(ELAS_FO=_F(E=E_EI, RHO=12.0, - E=E_EI,),); + ALPHA=AL_EI, + NU=NU_EI,),); -MT_RIG=DEFI_MATERIAU(ELAS=_F(NU=0.0, - ALPHA=0.0, +MT_RIG=DEFI_MATERIAU(ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); # FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON - -FOTRAC=DEFI_FONCTION(PROL_GAUCHE='LINEAIRE', - NOM_PARA='DRZ', - VALE=(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,), - PROL_DROIT='LINEAIRE',); +FOTRAC=DEFI_FONCTION(PROL_DROIT='LINEAIRE',VALE=(1.0,1.0, + 0.0,0.0, + 0.0,0.0, + 0.0,0.0, + ),NOM_PARA='DRZ',PROL_GAUCHE='LINEAIRE',); MT_RE1=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG1, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE2=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG2, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE3=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG3, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE4=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG4, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE5=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG5, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE6=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG6, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE7=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG7, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE8=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG8, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE9=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG9, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); MT_RE10=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0, - RELA_MZ=FOTRAC, RIGI_N_FO=FRIG10, - COULOMB=1.0,), - ELAS=_F(NU=0.0, - ALPHA=0.0, + COULOMB=1.0, + RELA_MZ=FOTRAC,), + ELAS=_F(E=1.0, RHO=0.0, - E=1.0,),); + ALPHA=0.0, + NU=0.0,),); # SYSTEME DE MAINTIEN +E_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); - -NU_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +AL_MA=DEFI_CONSTANTE(VALE=0.3,); -SY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +SY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -DS_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +DS_MA=DEFI_CONSTANTE(VALE=0.3,); -NP_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NP_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MEY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MEY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MPY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MPY_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MEZ_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MEZ_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MPZ_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MPZ_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -CAY_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +CAY_MA=DEFI_CONSTANTE(VALE=0.3,); -CBY_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +CBY_MA=DEFI_CONSTANTE(VALE=0.3,); -CAZ_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +CAZ_MA=DEFI_CONSTANTE(VALE=0.3,); -CBZ_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,); +CBZ_MA=DEFI_CONSTANTE(VALE=0.3,); -MPX_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +MPX_MA=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -MT_MA=DEFI_MATERIAU(VMIS_POUTRE_FO=_F(MEZ=MEZ_MA, - MPX=MPX_MA, - MPZ=MPZ_MA, - CBY=CBY_MA, +MT_MA=DEFI_MATERIAU(ELAS_FO=_F(E=E_MA, + RHO=7800.0, + ALPHA=AL_MA, + NU=NU_MA,), + ECRO_LINE_FO=_F(SY=SY_MA, + D_SIGM_EPSI=DS_MA,), + VMIS_POUTRE_FO=_F(CAZ=CAZ_MA, + CAY=CAY_MA, + MEY=MEY_MA, NP=NP_MA, CBZ=CBZ_MA, - MEY=MEY_MA, - CAY=CAY_MA, - CAZ=CAZ_MA, - MPY=MPY_MA,), - ECRO_LINE_FO=_F(D_SIGM_EPSI=DS_MA, - SY=SY_MA,), - ELAS_FO=_F(NU=NU_MA, - ALPHA=AL_MA, - RHO=7800.0, - E=E_MA,),); + CBY=CBY_MA, + MPZ=MPZ_MA, + MPY=MPY_MA, + MPX=MPX_MA, + MEZ=MEZ_MA,),); # # **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE **** # # # GRILLE +E_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +E_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -NU_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -NU_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +AL_GRE=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); - -AL_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +AL_GRM=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); # TUBE GUIDE +E_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); - -NU_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -AL_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +AL_TU=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); # CRAYON +E_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -E_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +NU_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); -NU_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); - -AL_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT', - NOM_PARA='TEMP', - VALE=(0.0,1.0,5.0,2.0,), - PROL_DROIT='CONSTANT',); +AL_CR=DEFI_FONCTION(PROL_DROIT='CONSTANT',VALE=(0.0,1.0, + 5.0,2.0, + ),NOM_PARA='TEMP',PROL_GAUCHE='CONSTANT',); # GRANDISSEMENT DES GRILLES # GRILLES EXTREMES 1 ET 10 - -MT_GRE1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1, - FLUX_L=FLUXAX1, - FLUX_TN=FLUXRD1, - S=1.0, - A=0.0,), - LEMAITRE=_F(N=0.0, - UN_SUR_M=0.0, +MT_GRE1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, QSR_K=1.0, - UN_SUR_K=0.0,), - ELAS_FO=_F(NU=NU_GRE, - ALPHA=AL_GRE, + UN_SUR_M=0.0, + N=0.0,), + ELAS_FO=_F(E=E_GRE, RHO=7800.0, - E=E_GRE,),); -# GRILLES DE MELANGE - - -MT_GRM1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1, + ALPHA=AL_GRE, + NU=NU_GRE,), + GRAN_IRRA=_F(A=0.0, FLUX_L=FLUXAX1, - FLUX_TN=FLUXRD1, + FONC_MULT=FLUX_F1, S=1.0, - A=0.0,), - LEMAITRE=_F(N=0.0, - UN_SUR_M=0.0, + FLUX_TN=FLUXRD1,),); +# GRILLES DE MELANGE + +MT_GRM1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, QSR_K=2.0, - UN_SUR_K=0.0,), - ELAS_FO=_F(NU=NU_GRM, - ALPHA=AL_GRM, + UN_SUR_M=0.0, + N=0.0,), + ELAS_FO=_F(E=E_GRM, RHO=7800.0, - E=E_GRM,),); + ALPHA=AL_GRM, + NU=NU_GRM,), + GRAN_IRRA=_F(A=0.0, + FLUX_L=FLUXAX1, + FONC_MULT=FLUX_F1, + S=1.0, + FLUX_TN=FLUXRD1,),); # DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS ) - -MT_TU1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1, - FLUX_L=FLUXAX1, - FLUX_TN=FLUXRD1, - S=1.0, - A=0.0,), - LEMAITRE=_F(N=0.0, - UN_SUR_M=0.0, +MT_TU1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, QSR_K=2.0, - UN_SUR_K=0.0,), - ELAS_FO=_F(NU=NU_TU, - ALPHA=AL_TU, + UN_SUR_M=0.0, + N=0.0,), + ELAS_FO=_F(E=E_TU, RHO=7800.0, - E=E_TU,),); - -MT_CR1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1, + ALPHA=AL_TU, + NU=NU_TU,), + GRAN_IRRA=_F(A=0.0, FLUX_L=FLUXAX1, - FLUX_TN=FLUXRD1, + FONC_MULT=FLUX_F1, S=1.0, - A=0.0,), - LEMAITRE=_F(N=0.0, - UN_SUR_M=0.0, + FLUX_TN=FLUXRD1,),); + +MT_CR1=DEFI_MATERIAU(LEMAITRE=_F(UN_SUR_K=0.0, QSR_K=2.0, - UN_SUR_K=0.0,), - ELAS_FO=_F(NU=NU_CR, - ALPHA=AL_CR, + UN_SUR_M=0.0, + N=0.0,), + ELAS_FO=_F(E=E_CR, RHO=7800.0, - E=E_CR,),); + ALPHA=AL_CR, + NU=NU_CR,), + GRAN_IRRA=_F(A=0.0, + FLUX_L=FLUXAX1, + FONC_MULT=FLUX_F1, + S=1.0, + FLUX_TN=FLUXRD1,),); # # AFFECTATION DES MATERIAUX A CHAUD - CYCLE -# -# - -A_MAT_1=AFFE_MATERIAU(AFFE=(_F(TEMP_REF=100.0, - MATER=MT_MA, - GROUP_MA=('MAINTI_Y','MAINTI_Z',),), - _F(TEMP_REF=100.0, - MATER=MT_GRM1, - GROUP_MA='GRIL_I',), - _F(TEMP_REF=100.0, - MATER=MT_GRE1, - GROUP_MA='GRIL_E',), - _F(TEMP_REF=100.0, - MATER=MT_CR1, - GROUP_MA='CRAY',), - _F(TEMP_REF=100.0, - MATER=MT_TU1, - GROUP_MA='GUID',), - _F(TEMP_REF=100.0, - MATER=MT_EI, - GROUP_MA='EBOINF',), - _F(TEMP_REF=100.0, - MATER=MT_EI, - GROUP_MA=('PI_PLE','PI_TRO',),), - _F(TEMP_REF=100.0, - MATER=MT_ES, - GROUP_MA='EBOSUP',), - _F(TEMP_REF=100.0, - MATER=MT_RIG, - GROUP_MA='RIGID',), - _F(TEMP_REF=100.0, - MATER=MT_RE1, - GROUP_MA='ELA1',), - _F(TEMP_REF=100.0, - MATER=MT_RE2, - GROUP_MA='ELA2',), - _F(TEMP_REF=100.0, - MATER=MT_RE3, - GROUP_MA='ELA3',), - _F(TEMP_REF=100.0, - MATER=MT_RE4, - GROUP_MA='ELA4',), - _F(TEMP_REF=100.0, - MATER=MT_RE5, - GROUP_MA='ELA5',), - _F(TEMP_REF=100.0, - MATER=MT_RE6, - GROUP_MA='ELA6',), - _F(TEMP_REF=100.0, - MATER=MT_RE7, - GROUP_MA='ELA7',), - _F(TEMP_REF=100.0, - MATER=MT_RE8, - GROUP_MA='ELA8',), - _F(TEMP_REF=100.0, - MATER=MT_RE9, - GROUP_MA='ELA9',), - _F(TEMP_REF=100.0, - MATER=MT_RE10, - GROUP_MA='ELA10',),), - MAILLAGE=MA1,); +A_MAT_1=AFFE_MATERIAU(MAILLAGE=MA1, + AFFE=(_F(GROUP_MA=('MAINTI_Y','MAINTI_Z',), + TEMP_REF=100.0, + MATER=MT_MA,), + _F(GROUP_MA='GRIL_I', + TEMP_REF=100.0, + MATER=MT_GRM1,), + _F(GROUP_MA='GRIL_E', + TEMP_REF=100.0, + MATER=MT_GRE1,), + _F(GROUP_MA='CRAY', + TEMP_REF=100.0, + MATER=MT_CR1,), + _F(GROUP_MA='GUID', + TEMP_REF=100.0, + MATER=MT_TU1,), + _F(GROUP_MA='EBOINF', + TEMP_REF=100.0, + MATER=MT_EI,), + _F(GROUP_MA=('PI_PLE','PI_TRO',), + TEMP_REF=100.0, + MATER=MT_EI,), + _F(GROUP_MA='EBOSUP', + TEMP_REF=100.0, + MATER=MT_ES,), + _F(GROUP_MA='RIGID', + TEMP_REF=100.0, + MATER=MT_RIG,), + _F(GROUP_MA='ELA1', + TEMP_REF=100.0, + MATER=MT_RE1,), + _F(GROUP_MA='ELA2', + TEMP_REF=100.0, + MATER=MT_RE2,), + _F(GROUP_MA='ELA3', + TEMP_REF=100.0, + MATER=MT_RE3,), + _F(GROUP_MA='ELA4', + TEMP_REF=100.0, + MATER=MT_RE4,), + _F(GROUP_MA='ELA5', + TEMP_REF=100.0, + MATER=MT_RE5,), + _F(GROUP_MA='ELA6', + TEMP_REF=100.0, + MATER=MT_RE6,), + _F(GROUP_MA='ELA7', + TEMP_REF=100.0, + MATER=MT_RE7,), + _F(GROUP_MA='ELA8', + TEMP_REF=100.0, + MATER=MT_RE8,), + _F(GROUP_MA='ELA9', + TEMP_REF=100.0, + MATER=MT_RE9,), + _F(GROUP_MA='ELA10', + TEMP_REF=100.0, + MATER=MT_RE10,),),); # - -L_INST_1=DEFI_LIST_REEL(INTERVALLE=(_F(JUSQU_A=0.5, - NOMBRE=1,), - _F(JUSQU_A=1000.0, - NOMBRE=1,), - _F(JUSQU_A=2000.0, - NOMBRE=1,), - _F(JUSQU_A=3000.0, - NOMBRE=5,), - _F(JUSQU_A=4000.0, - NOMBRE=1,), - _F(JUSQU_A=5000.0, - NOMBRE=1,), - _F(JUSQU_A=6000.0, - NOMBRE=1,), - _F(JUSQU_A=7000.0, - NOMBRE=1,), - _F(JUSQU_A=8000.0, - NOMBRE=1,),), - DEBUT=0.0,); - -L_ARCH_1=DEFI_LIST_REEL(INTERVALLE=(_F(JUSQU_A=0.5, - NOMBRE=1,), - _F(JUSQU_A=1000.0, - NOMBRE=1,), - _F(JUSQU_A=2000.0, - NOMBRE=1,), - _F(JUSQU_A=3000.0, - NOMBRE=5,), - _F(JUSQU_A=4000.0, - NOMBRE=1,), - _F(JUSQU_A=5000.0, - NOMBRE=1,), - _F(JUSQU_A=6000.0, - NOMBRE=1,), - _F(JUSQU_A=7000.0, - NOMBRE=1,), - _F(JUSQU_A=8000.0, - NOMBRE=1,),), - DEBUT=0.0,); +L_INST_1=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=(_F(NOMBRE=1, + JUSQU_A=0.5,), + _F(NOMBRE=1, + JUSQU_A=1000.0,), + _F(NOMBRE=1, + JUSQU_A=2000.0,), + _F(NOMBRE=5, + JUSQU_A=3000.0,), + _F(NOMBRE=1, + JUSQU_A=4000.0,), + _F(NOMBRE=1, + JUSQU_A=5000.0,), + _F(NOMBRE=1, + JUSQU_A=6000.0,), + _F(NOMBRE=1, + JUSQU_A=7000.0,), + _F(NOMBRE=1, + JUSQU_A=8000.0,),),); + +L_ARCH_1=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=(_F(NOMBRE=1, + JUSQU_A=0.5,), + _F(NOMBRE=1, + JUSQU_A=1000.0,), + _F(NOMBRE=1, + JUSQU_A=2000.0,), + _F(NOMBRE=5, + JUSQU_A=3000.0,), + _F(NOMBRE=1, + JUSQU_A=4000.0,), + _F(NOMBRE=1, + JUSQU_A=5000.0,), + _F(NOMBRE=1, + JUSQU_A=6000.0,), + _F(NOMBRE=1, + JUSQU_A=7000.0,), + _F(NOMBRE=1, + JUSQU_A=8000.0,),),); # # CALCUL PHASE I A V DU CYCLE 1 -# - -RESU=STAT_NON_LINE(CHAM_MATER=A_MAT_1, - MODELE=MO1, - ARCHIVAGE=_F(LIST_INST=L_ARCH_1,), - CONVERGENCE=_F(ITER_GLOB_MAXI=50, - ITER_INTE_MAXI=500, - RESI_GLOB_RELA=1.E-4, - ARRET='OUI',), - COMP_INCR=(_F(RELATION='VMIS_POU_LINE', - GROUP_MA='MAINTIEN',), - _F(RELATION='ASSE_COMBU', - GROUP_MA=('CRAYONS','TUB_GUID',),), - _F(RELATION='DIS_CONTACT', - GROUP_MA='LI_GR_CR',), - _F(COQUE_NCOU=1, - RELATION='ELAS', - GROUP_MA=('EMBO_INF','EMBO_SUP','PIEDS','GRILLES','LI_GR_GU',),),), - INCREMENT=_F(NUME_INST_FIN=20, - LIST_INST=L_INST_1,), +RESU=STAT_NON_LINE(PARM_THETA=0.5, CARA_ELEM=CARA1, - RECH_LINEAIRE=_F(ITER_LINE_MAXI=3,), - NEWTON=_F(REAC_ITER=1, - MATRICE='TANGENTE',), - SOLVEUR=_F(METHODE='MULT_FRONT', - RENUM='MD',), - EXCIT=(_F(FONC_MULT=ARCH_F1, - CHARGE=ARCH_1,), - _F(FONC_MULT=ARCH_F1, - CHARGE=FOARCH_1,), - _F(FONC_MULT=HYDR_F1, - CHARGE=HYDR_1,), - _F(FONC_MULT=HYDR_F1, - CHARGE=FOHYDR_1,), - _F(FONC_MULT=CLDI_F1, - CHARGE=CL_DI_1,), + MODELE=MO1, + CHAM_MATER=A_MAT_1, + EXCIT=(_F(CHARGE=ARCH_1, + FONC_MULT=ARCH_F1,), + _F(CHARGE=FOARCH_1, + FONC_MULT=ARCH_F1,), + _F(CHARGE=HYDR_1, + FONC_MULT=HYDR_F1,), + _F(CHARGE=FOHYDR_1, + FONC_MULT=HYDR_F1,), + _F(CHARGE=CL_DI_1, + FONC_MULT=CLDI_F1,), _F(CHARGE=CL_PER_1,), _F(CHARGE=CL_CTC,), _F(CHARGE=PESANT_1,), _F(CHARGE=THERM_1,),), - PARM_THETA=0.5,); + SOLVEUR=_F(METHODE='MULT_FRONT', + RENUM='MD',), + NEWTON=_F(MATRICE='TANGENTE', + REAC_ITER=1,), + RECH_LINEAIRE=_F(ITER_LINE_MAXI=3,), + INCREMENT=_F(LIST_INST=L_INST_1, + NUME_INST_FIN=20,), + COMP_INCR=(_F(GROUP_MA='MAINTIEN', + RELATION='VMIS_POU_LINE',), + _F(GROUP_MA=('CRAYONS','TUB_GUID',), + RELATION='ASSE_COMBU',), + _F(GROUP_MA='LI_GR_CR', + RELATION='DIS_CONTACT',), + _F(GROUP_MA=('EMBO_INF','EMBO_SUP','PIEDS','GRILLES','LI_GR_GU',), + RELATION='ELAS', + COQUE_NCOU=1,),), + CONVERGENCE=_F(ARRET='OUI', + RESI_GLOB_RELA=0.0001, + ITER_INTE_MAXI=500, + ITER_GLOB_MAXI=50,), + ARCHIVAGE=_F(LIST_INST=L_ARCH_1,),); FIN(); diff --git a/Exemples/ex23/main.py b/Exemples/ex23/main.py index 6ecb6021..b52c71c7 100644 --- a/Exemples/ex23/main.py +++ b/Exemples/ex23/main.py @@ -3,9 +3,9 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] -from Cata import cata +from cataSTA6 import cata f=open('ahlv100a.comm','r') text=f.read() diff --git a/Exemples/ex23/main2.py b/Exemples/ex23/main2.py index 7b4d4ed8..c455a7cb 100644 --- a/Exemples/ex23/main2.py +++ b/Exemples/ex23/main2.py @@ -3,9 +3,9 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster/Cata','../../Aster'] -from Cata import cata +from cataSTA6 import cata f=open('titi.comm','r') text=f.read() diff --git a/Exemples/ex23/titi.comm b/Exemples/ex23/titi.comm index 7c31d055..06a9224b 100644 --- a/Exemples/ex23/titi.comm +++ b/Exemples/ex23/titi.comm @@ -1,472 +1,473 @@ -DEBUT(CODE=_F(NOM='AHLV100A',),); +DEBUT(CODE=_F(NOM='AHLV100A', + NIV_PUB_WEB=None,),); MAIL=LIRE_MAILLAGE(); -AIR=DEFI_MATERIAU(FLUIDE=_F(RHO=1.3, - CELE_C=('RI',343.0,0.0),),); +AIR=DEFI_MATERIAU(FLUIDE=_F(CELE_C=('RI',343.0,0.0,), + RHO=1.3,),); -CHAMPMAT=AFFE_MATERIAU(AFFE=_F(MATER=AIR, - TOUT='OUI',), - MAILLAGE=MAIL,); +CHAMPMAT=AFFE_MATERIAU(MAILLAGE=MAIL, + AFFE=_F(MATER=AIR, + TOUT='OUI',),); GUIDE=AFFE_MODELE(MAILLAGE=MAIL, VERIF='MAILLE', - AFFE=_F(TOUT='OUI', - PHENOMENE='ACOUSTIQUE', + AFFE=_F(PHENOMENE='ACOUSTIQUE', + TOUT='OUI', MODELISATION='3D',),); CHARACOU=AFFE_CHAR_ACOU(MODELE=GUIDE, - VITE_FACE=_F(VNOR=('RI',0.014,0.0), - GROUP_MA='ENTREE',),); + VITE_FACE=_F(GROUP_MA='ENTREE', + VNOR=('RI',0.014,0.0,),),); IMPEACOU=AFFE_CHAR_ACOU(MODELE=GUIDE, - IMPE_FACE=_F(IMPE=('RI',445.89999999999998,0.0), - GROUP_MA='SORTIE',),); - -MACRO_MATR_ASSE(CHAM_MATER=CHAMPMAT, - MATR_ASSE=(_F(MATRICE=CO('MATASK'), - OPTION='RIGI_ACOU',), - _F(MATRICE=CO('MATASM'), - OPTION='MASS_ACOU',), - _F(MATRICE=CO('MATASI'), - OPTION='AMOR_ACOU',),), - NUME_DDL=CO('NUM'), + IMPE_FACE=_F(GROUP_MA='SORTIE', + IMPE=('RI',445.9,0.0,),),); + +MACRO_MATR_ASSE(CHARGE=IMPEACOU, MODELE=GUIDE, - CHARGE=IMPEACOU,); + NUME_DDL=CO('NUM'), + CHAM_MATER=CHAMPMAT, + MATR_ASSE=(_F(OPTION='RIGI_ACOU', + MATRICE=CO('MATASK'),), + _F(OPTION='MASS_ACOU', + MATRICE=CO('MATASM'),), + _F(OPTION='AMOR_ACOU', + MATRICE=CO('MATASI'),),),); VECTELEM=CALC_VECT_ELEM(OPTION='CHAR_ACOU', - CHAM_MATER=CHAMPMAT, - CHARGE=CHARACOU,); + CHARGE=CHARACOU, + CHAM_MATER=CHAMPMAT,); -IMPR_MATRICE(MATR_ELEM=_F(GRAIN='MAILLE', - MATRICE=VECTELEM, +IMPR_MATRICE(MATR_ELEM=_F(FICHIER='RESULTAT', FORMAT='RESULTAT', - FICHIER='RESULTAT',),); + MATRICE=VECTELEM, + GRAIN='MAILLE',),); -VECTASS=ASSE_VECTEUR(VECT_ELEM=VECTELEM, - NUME_DDL=NUM,); +VECTASS=ASSE_VECTEUR(NUME_DDL=NUM, + VECT_ELEM=VECTELEM,); -MATASKR=COMB_MATR_ASSE(COMB_R=_F(PARTIE='REEL', - MATR_ASSE=MATASK, - COEF_R=1.0,),); +MATASKR=COMB_MATR_ASSE(COMB_R=_F(MATR_ASSE=MATASK, + COEF_R=1.0, + PARTIE='REEL',),); -MATASMR=COMB_MATR_ASSE(COMB_R=_F(PARTIE='REEL', - MATR_ASSE=MATASM, - COEF_R=1.0,),); +MATASMR=COMB_MATR_ASSE(COMB_R=_F(MATR_ASSE=MATASM, + COEF_R=1.0, + PARTIE='REEL',),); -MODES=MODE_ITER_SIMULT(MATR_A=MATASKR, - MATR_B=MATASMR, +MODES=MODE_ITER_SIMULT(MATR_B=MATASMR, + MATR_A=MATASKR, CALC_FREQ=_F(OPTION='BANDE', - FREQ=(1.0,1000.0),),); + FREQ=(1.0,1000.0,),),); -TEST_RESU(RESU=(_F(RESULTAT=MODES, - PRECISION=1.E-4, - CRITERE='RELATIF', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, + PARA='FREQ', + RESULTAT=MODES, VALE=171.5, - NUME_ORDRE=1, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=1.E-4, CRITERE='RELATIF', + PRECISION=0.0001,), + _F(NUME_ORDRE=2, + PARA='FREQ', + RESULTAT=MODES, VALE=343.0, - NUME_ORDRE=2, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=1.E-3, CRITERE='RELATIF', + PRECISION=0.0001,), + _F(NUME_ORDRE=3, + PARA='FREQ', + RESULTAT=MODES, VALE=514.5, - NUME_ORDRE=3, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=1.E-2, CRITERE='RELATIF', + PRECISION=0.001,), + _F(NUME_ORDRE=4, + PARA='FREQ', + RESULTAT=MODES, VALE=686.0, - NUME_ORDRE=4, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=1.E-3, CRITERE='RELATIF', + PRECISION=0.01,), + _F(NUME_ORDRE=5, + PARA='FREQ', + RESULTAT=MODES, VALE=857.5, - NUME_ORDRE=5, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=5.0000000000000001E-3, CRITERE='RELATIF', + PRECISION=0.001,), + _F(NUME_ORDRE=6, + PARA='FREQ', + RESULTAT=MODES, VALE=857.5, - NUME_ORDRE=6, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=5.0000000000000001E-3, CRITERE='RELATIF', - VALE=874.48199999999997, - NUME_ORDRE=7, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=5.0000000000000001E-3, + PRECISION=0.005,), + _F(NUME_ORDRE=7, + PARA='FREQ', + RESULTAT=MODES, + VALE=874.482, + CRITERE='RELATIF', + PRECISION=0.005,), + _F(NUME_ORDRE=8, + PARA='FREQ', + RESULTAT=MODES, + VALE=923.556, CRITERE='RELATIF', - VALE=923.55600000000004, - NUME_ORDRE=8, - PARA='FREQ',),),); + PRECISION=0.005,),),); MATRES=COMB_MATR_ASSE(COMB_C=(_F(MATR_ASSE=MATASK, COEF_R=1.0,), _F(MATR_ASSE=MATASM, - COEF_R=-9.8696044000000004E6,), - _F(COEF_C=('RI',0.0,3141.5925999999999), - MATR_ASSE=MATASI,),),); + COEF_R=-9869604.4,), + _F(MATR_ASSE=MATASI, + COEF_C=('RI',0.0,3141.5926,),),),); -IMPR_MATRICE(MATR_ASSE=_F(GRAIN='NOEUD', - MATRICE=MATRES, - FORMAT='RESULTAT', +IMPR_MATRICE(MATR_ASSE=_F(FICHIER='RESULTAT', OPTION='LIGNE', - FICHIER='RESULTAT',),); - -IMPR_MATRICE(MATR_ASSE=_F(GRAIN='VALEUR', - MATRICE=MATRES, FORMAT='RESULTAT', + MATRICE=MATRES, + GRAIN='NOEUD',),); + +IMPR_MATRICE(MATR_ASSE=_F(FICHIER='RESULTAT', OPTION='LIGNE', - FICHIER='RESULTAT',),); + FORMAT='RESULTAT', + MATRICE=MATRES, + GRAIN='VALEUR',),); -VECRES=COMB_CHAM_NO(COMB_C=_F(COEF_C=('RI',0.0,-3141.5925999999999), - CHAM_NO=VECTASS,),); +VECRES=COMB_CHAM_NO(COMB_C=_F(CHAM_NO=VECTASS, + COEF_C=('RI',0.0,-3141.5926,),),); MATRES=FACT_LDLT(reuse =MATRES, MATR_ASSE=MATRES,); VECRES=RESO_LDLT(reuse =VECRES, - MATR_FACT=MATRES, - CHAM_NO=VECRES,); + CHAM_NO=VECRES, + MATR_FACT=MATRES,); -TEST_RESU(CHAM_NO=(_F(CHAM_GD=VECRES, +TEST_RESU(CHAM_NO=(_F(NOEUD='NO1', + VALE_C=('RI',-6.2426,0.0,), NOM_CMP='PRES', - VALE_C=('RI',-6.2426000000000004,0.0), - NOEUD='NO1',), - _F(CHAM_GD=VECRES, + CHAM_GD=VECRES,), + _F(NOEUD='NO780', + VALE_C=('RI',-6.2426,0.0,), NOM_CMP='PRES', - VALE_C=('RI',-6.2426000000000004,0.0), - NOEUD='NO780',), - _F(CHAM_GD=VECRES, + CHAM_GD=VECRES,), + _F(NOEUD='NO751', + VALE_C=('RI',6.02368,1.6387,), NOM_CMP='PRES', - VALE_C=('RI',6.0236799999999997,1.6387), - NOEUD='NO751',), - _F(CHAM_GD=VECRES, + CHAM_GD=VECRES,), + _F(NOEUD='NO763', + VALE_C=('RI',6.02368,1.6387,), NOM_CMP='PRES', - VALE_C=('RI',6.0236799999999997,1.6387), - NOEUD='NO763',),),); + CHAM_GD=VECRES,),),); -CHNODBEL=CALC_CHAM_ELEM(MODELE=GUIDE, +CHNODBEL=CALC_CHAM_ELEM(OPTION='PRES_ELNO_DBEL', CHAM_MATER=CHAMPMAT, - OPTION='PRES_ELNO_DBEL', + MODELE=GUIDE, PRES=VECRES,); -TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=CHNODBEL, +TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', + NOM_CMP='DB', + VALE=109.9, MAILLE='MA1', - VALE=109.90000000000001, + CHAM_GD=CHNODBEL,), + _F(NOEUD='NO780', NOM_CMP='DB', - NOEUD='NO1',), - _F(CHAM_GD=CHNODBEL, + VALE=109.9, MAILLE='MA1', - VALE=109.90000000000001, + CHAM_GD=CHNODBEL,), + _F(NOEUD='NO751', NOM_CMP='DB', - NOEUD='NO780',), - _F(CHAM_GD=CHNODBEL, + VALE=109.9, MAILLE='MA57', - VALE=109.90000000000001, + CHAM_GD=CHNODBEL,), + _F(NOEUD='NO763', NOM_CMP='DB', - NOEUD='NO751',), - _F(CHAM_GD=CHNODBEL, + VALE=109.9, MAILLE='MA57', - VALE=109.90000000000001, - NOM_CMP='DB', - NOEUD='NO763',),),); + CHAM_GD=CHNODBEL,),),); -PREEL=CALC_CHAM_ELEM(MODELE=GUIDE, +PREEL=CALC_CHAM_ELEM(OPTION='PRES_ELNO_REEL', CHAM_MATER=CHAMPMAT, - OPTION='PRES_ELNO_REEL', + MODELE=GUIDE, PRES=VECRES,); -TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=PREEL, +TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', + NOM_CMP='PRES', + VALE=-6.2426, MAILLE='MA1', - VALE=-6.2426000000000004, + CHAM_GD=PREEL,), + _F(NOEUD='NO780', NOM_CMP='PRES', - NOEUD='NO1',), - _F(CHAM_GD=PREEL, + VALE=-6.2426, MAILLE='MA1', - VALE=-6.2426000000000004, + CHAM_GD=PREEL,), + _F(NOEUD='NO751', NOM_CMP='PRES', - NOEUD='NO780',), - _F(CHAM_GD=PREEL, + VALE=6.02368, MAILLE='MA57', - VALE=6.0236799999999997, + CHAM_GD=PREEL,), + _F(NOEUD='NO763', NOM_CMP='PRES', - NOEUD='NO751',), - _F(CHAM_GD=PREEL, + VALE=6.02368, MAILLE='MA57', - VALE=6.0236799999999997, - NOM_CMP='PRES', - NOEUD='NO763',),),); + CHAM_GD=PREEL,),),); -PIMAG=CALC_CHAM_ELEM(MODELE=GUIDE, +PIMAG=CALC_CHAM_ELEM(OPTION='PRES_ELNO_IMAG', CHAM_MATER=CHAMPMAT, - OPTION='PRES_ELNO_IMAG', + MODELE=GUIDE, PRES=VECRES,); -TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=PIMAG, - MAILLE='MA1', - VALE=0.0, - NOM_CMP='PRES', +TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', CRITERE='ABSOLU', - NOEUD='NO1',), - _F(CHAM_GD=PIMAG, + NOM_CMP='PRES', + VALE=0.0, MAILLE='MA1', + CHAM_GD=PIMAG,), + _F(NOEUD='NO780', + CRITERE='ABSOLU', + NOM_CMP='PRES', VALE=0.0, + MAILLE='MA1', + CHAM_GD=PIMAG,), + _F(NOEUD='NO751', NOM_CMP='PRES', - CRITERE='ABSOLU', - NOEUD='NO780',), - _F(CHAM_GD=PIMAG, - MAILLE='MA57', + PRECISION=0.0033, VALE=1.6387, - PRECISION=3.3E-3, - NOM_CMP='PRES', - NOEUD='NO751',), - _F(CHAM_GD=PIMAG, MAILLE='MA57', - VALE=1.6387, - PRECISION=3.3E-3, + CHAM_GD=PIMAG,), + _F(NOEUD='NO763', NOM_CMP='PRES', - NOEUD='NO763',),),); + PRECISION=0.0033, + VALE=1.6387, + MAILLE='MA57', + CHAM_GD=PIMAG,),),); -PRESHARM=DYNA_LINE_HARM(MATR_MASS=MATASM, +PRESHARM=DYNA_LINE_HARM(MATR_RIGI=MATASK, + MATR_MASS=MATASM, MATR_AMOR=MATASI, FREQ=500.0, - MATR_RIGI=MATASK, - EXCIT=_F(PUIS_PULS=1, - VECT_ASSE=VECTASS, + EXCIT=_F(VECT_ASSE=VECTASS, PHAS_DEG=90.0, - COEF_MULT=-1.0,),); + COEF_MULT=-1.0, + PUIS_PULS=1,),); -TEST_RESU(RESU=(_F(NOM_CHAM='PRES', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, + VALE_C=('RI',-6.2426,0.0,), RESULTAT=PRESHARM, + NOM_CHAM='PRES', NOEUD='NO1', - VALE_C=('RI',-6.2426000000000004,0.0), - NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES', + NOM_CMP='PRES',), + _F(NUME_ORDRE=1, + VALE_C=('RI',-6.2426,0.0,), RESULTAT=PRESHARM, + NOM_CHAM='PRES', NOEUD='NO780', - VALE_C=('RI',-6.2426000000000004,0.0), - NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES', + NOM_CMP='PRES',), + _F(NUME_ORDRE=1, + VALE_C=('RI',6.02368,1.6387,), RESULTAT=PRESHARM, + NOM_CHAM='PRES', NOEUD='NO751', - VALE_C=('RI',6.0236799999999997,1.6387), - NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES', + NOM_CMP='PRES',), + _F(NUME_ORDRE=1, + VALE_C=('RI',6.02368,1.6387,), RESULTAT=PRESHARM, + NOM_CHAM='PRES', NOEUD='NO763', - VALE_C=('RI',6.0236799999999997,1.6387), - NOM_CMP='PRES', - NUME_ORDRE=1,),),); + NOM_CMP='PRES',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='INTE_ELNO_ACTI', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='INTE_ELNO_ACTI', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='INTE_ELNO_ACTI', NOEUD='NO1', - PRECISION=0.029999999999999999, - VALE=0.043700000000000003, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_ACTI', + VALE=0.0437, + PRECISION=0.03, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='INTE_ELNO_ACTI', NOEUD='NO780', - PRECISION=0.029999999999999999, - VALE=0.043700000000000003, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_ACTI', + VALE=0.0437, + PRECISION=0.03, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='INTE_ELNO_ACTI', NOEUD='NO751', - PRECISION=0.029999999999999999, - VALE=0.043700000000000003, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_ACTI', + VALE=0.0437, + PRECISION=0.03, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='INTE_ELNO_ACTI', NOEUD='NO763', - PRECISION=0.029999999999999999, - VALE=0.043700000000000003, NOM_CMP='INTX', - NUME_ORDRE=1,),),); + VALE=0.0437, + PRECISION=0.03, + MAILLE='MA57',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='INTE_ELNO_REAC', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='INTE_ELNO_REAC', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='INTE_ELNO_REAC', NOEUD='NO1', - PRECISION=3.5E-4, - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_REAC', + VALE=0.0, + CRITERE='ABSOLU', + PRECISION=0.00035, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='INTE_ELNO_REAC', NOEUD='NO780', - PRECISION=3.5E-4, - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_REAC', + VALE=0.0, + CRITERE='ABSOLU', + PRECISION=0.00035, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='INTE_ELNO_REAC', NOEUD='NO751', - PRECISION=3.5E-4, - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_REAC', + VALE=0.0, + CRITERE='ABSOLU', + PRECISION=0.00035, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='INTE_ELNO_REAC', NOEUD='NO763', - PRECISION=3.5E-4, - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='INTX', - NUME_ORDRE=1,),),); + VALE=0.0, + CRITERE='ABSOLU', + PRECISION=0.00035, + MAILLE='MA57',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='PRES_ELNO_DBEL', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_DBEL', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_DBEL', NOEUD='NO1', - VALE=109.90000000000001, NOM_CMP='DB', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_DBEL', + VALE=109.9, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_DBEL', NOEUD='NO780', - VALE=109.90000000000001, NOM_CMP='DB', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_DBEL', + VALE=109.9, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_DBEL', NOEUD='NO751', - VALE=109.90000000000001, NOM_CMP='DB', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_DBEL', + VALE=109.9, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_DBEL', NOEUD='NO763', - VALE=109.90000000000001, NOM_CMP='DB', - NUME_ORDRE=1,),),); + VALE=109.9, + MAILLE='MA57',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='PRES_ELNO_REEL', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_REEL', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_REEL', NOEUD='NO1', - VALE=-6.2426000000000004, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_REEL', + VALE=-6.2426, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_REEL', NOEUD='NO780', - VALE=-6.2426000000000004, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_REEL', + VALE=-6.2426, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_REEL', NOEUD='NO751', - VALE=6.0236799999999997, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_REEL', + VALE=6.02368, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_REEL', NOEUD='NO763', - VALE=6.0236799999999997, NOM_CMP='PRES', - NUME_ORDRE=1,),),); + VALE=6.02368, + MAILLE='MA57',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='PRES_ELNO_IMAG', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_IMAG', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_IMAG', NOEUD='NO1', - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_IMAG', + VALE=0.0, + CRITERE='ABSOLU', + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_IMAG', NOEUD='NO780', - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_IMAG', + VALE=0.0, + CRITERE='ABSOLU', + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_IMAG', NOEUD='NO751', - PRECISION=3.3E-3, - CRITERE='RELATIF', - VALE=1.6387, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_IMAG', + VALE=1.6387, + CRITERE='RELATIF', + PRECISION=0.0033, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_IMAG', NOEUD='NO763', - PRECISION=3.3E-3, - VALE=1.6387, NOM_CMP='PRES', - NUME_ORDRE=1,),),); + VALE=1.6387, + PRECISION=0.0033, + MAILLE='MA57',),),); FIN(); diff --git a/Exemples/ex23/toto.comm b/Exemples/ex23/toto.comm index 7c31d055..06a9224b 100644 --- a/Exemples/ex23/toto.comm +++ b/Exemples/ex23/toto.comm @@ -1,472 +1,473 @@ -DEBUT(CODE=_F(NOM='AHLV100A',),); +DEBUT(CODE=_F(NOM='AHLV100A', + NIV_PUB_WEB=None,),); MAIL=LIRE_MAILLAGE(); -AIR=DEFI_MATERIAU(FLUIDE=_F(RHO=1.3, - CELE_C=('RI',343.0,0.0),),); +AIR=DEFI_MATERIAU(FLUIDE=_F(CELE_C=('RI',343.0,0.0,), + RHO=1.3,),); -CHAMPMAT=AFFE_MATERIAU(AFFE=_F(MATER=AIR, - TOUT='OUI',), - MAILLAGE=MAIL,); +CHAMPMAT=AFFE_MATERIAU(MAILLAGE=MAIL, + AFFE=_F(MATER=AIR, + TOUT='OUI',),); GUIDE=AFFE_MODELE(MAILLAGE=MAIL, VERIF='MAILLE', - AFFE=_F(TOUT='OUI', - PHENOMENE='ACOUSTIQUE', + AFFE=_F(PHENOMENE='ACOUSTIQUE', + TOUT='OUI', MODELISATION='3D',),); CHARACOU=AFFE_CHAR_ACOU(MODELE=GUIDE, - VITE_FACE=_F(VNOR=('RI',0.014,0.0), - GROUP_MA='ENTREE',),); + VITE_FACE=_F(GROUP_MA='ENTREE', + VNOR=('RI',0.014,0.0,),),); IMPEACOU=AFFE_CHAR_ACOU(MODELE=GUIDE, - IMPE_FACE=_F(IMPE=('RI',445.89999999999998,0.0), - GROUP_MA='SORTIE',),); - -MACRO_MATR_ASSE(CHAM_MATER=CHAMPMAT, - MATR_ASSE=(_F(MATRICE=CO('MATASK'), - OPTION='RIGI_ACOU',), - _F(MATRICE=CO('MATASM'), - OPTION='MASS_ACOU',), - _F(MATRICE=CO('MATASI'), - OPTION='AMOR_ACOU',),), - NUME_DDL=CO('NUM'), + IMPE_FACE=_F(GROUP_MA='SORTIE', + IMPE=('RI',445.9,0.0,),),); + +MACRO_MATR_ASSE(CHARGE=IMPEACOU, MODELE=GUIDE, - CHARGE=IMPEACOU,); + NUME_DDL=CO('NUM'), + CHAM_MATER=CHAMPMAT, + MATR_ASSE=(_F(OPTION='RIGI_ACOU', + MATRICE=CO('MATASK'),), + _F(OPTION='MASS_ACOU', + MATRICE=CO('MATASM'),), + _F(OPTION='AMOR_ACOU', + MATRICE=CO('MATASI'),),),); VECTELEM=CALC_VECT_ELEM(OPTION='CHAR_ACOU', - CHAM_MATER=CHAMPMAT, - CHARGE=CHARACOU,); + CHARGE=CHARACOU, + CHAM_MATER=CHAMPMAT,); -IMPR_MATRICE(MATR_ELEM=_F(GRAIN='MAILLE', - MATRICE=VECTELEM, +IMPR_MATRICE(MATR_ELEM=_F(FICHIER='RESULTAT', FORMAT='RESULTAT', - FICHIER='RESULTAT',),); + MATRICE=VECTELEM, + GRAIN='MAILLE',),); -VECTASS=ASSE_VECTEUR(VECT_ELEM=VECTELEM, - NUME_DDL=NUM,); +VECTASS=ASSE_VECTEUR(NUME_DDL=NUM, + VECT_ELEM=VECTELEM,); -MATASKR=COMB_MATR_ASSE(COMB_R=_F(PARTIE='REEL', - MATR_ASSE=MATASK, - COEF_R=1.0,),); +MATASKR=COMB_MATR_ASSE(COMB_R=_F(MATR_ASSE=MATASK, + COEF_R=1.0, + PARTIE='REEL',),); -MATASMR=COMB_MATR_ASSE(COMB_R=_F(PARTIE='REEL', - MATR_ASSE=MATASM, - COEF_R=1.0,),); +MATASMR=COMB_MATR_ASSE(COMB_R=_F(MATR_ASSE=MATASM, + COEF_R=1.0, + PARTIE='REEL',),); -MODES=MODE_ITER_SIMULT(MATR_A=MATASKR, - MATR_B=MATASMR, +MODES=MODE_ITER_SIMULT(MATR_B=MATASMR, + MATR_A=MATASKR, CALC_FREQ=_F(OPTION='BANDE', - FREQ=(1.0,1000.0),),); + FREQ=(1.0,1000.0,),),); -TEST_RESU(RESU=(_F(RESULTAT=MODES, - PRECISION=1.E-4, - CRITERE='RELATIF', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, + PARA='FREQ', + RESULTAT=MODES, VALE=171.5, - NUME_ORDRE=1, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=1.E-4, CRITERE='RELATIF', + PRECISION=0.0001,), + _F(NUME_ORDRE=2, + PARA='FREQ', + RESULTAT=MODES, VALE=343.0, - NUME_ORDRE=2, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=1.E-3, CRITERE='RELATIF', + PRECISION=0.0001,), + _F(NUME_ORDRE=3, + PARA='FREQ', + RESULTAT=MODES, VALE=514.5, - NUME_ORDRE=3, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=1.E-2, CRITERE='RELATIF', + PRECISION=0.001,), + _F(NUME_ORDRE=4, + PARA='FREQ', + RESULTAT=MODES, VALE=686.0, - NUME_ORDRE=4, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=1.E-3, CRITERE='RELATIF', + PRECISION=0.01,), + _F(NUME_ORDRE=5, + PARA='FREQ', + RESULTAT=MODES, VALE=857.5, - NUME_ORDRE=5, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=5.0000000000000001E-3, CRITERE='RELATIF', + PRECISION=0.001,), + _F(NUME_ORDRE=6, + PARA='FREQ', + RESULTAT=MODES, VALE=857.5, - NUME_ORDRE=6, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=5.0000000000000001E-3, CRITERE='RELATIF', - VALE=874.48199999999997, - NUME_ORDRE=7, - PARA='FREQ',), - _F(RESULTAT=MODES, - PRECISION=5.0000000000000001E-3, + PRECISION=0.005,), + _F(NUME_ORDRE=7, + PARA='FREQ', + RESULTAT=MODES, + VALE=874.482, + CRITERE='RELATIF', + PRECISION=0.005,), + _F(NUME_ORDRE=8, + PARA='FREQ', + RESULTAT=MODES, + VALE=923.556, CRITERE='RELATIF', - VALE=923.55600000000004, - NUME_ORDRE=8, - PARA='FREQ',),),); + PRECISION=0.005,),),); MATRES=COMB_MATR_ASSE(COMB_C=(_F(MATR_ASSE=MATASK, COEF_R=1.0,), _F(MATR_ASSE=MATASM, - COEF_R=-9.8696044000000004E6,), - _F(COEF_C=('RI',0.0,3141.5925999999999), - MATR_ASSE=MATASI,),),); + COEF_R=-9869604.4,), + _F(MATR_ASSE=MATASI, + COEF_C=('RI',0.0,3141.5926,),),),); -IMPR_MATRICE(MATR_ASSE=_F(GRAIN='NOEUD', - MATRICE=MATRES, - FORMAT='RESULTAT', +IMPR_MATRICE(MATR_ASSE=_F(FICHIER='RESULTAT', OPTION='LIGNE', - FICHIER='RESULTAT',),); - -IMPR_MATRICE(MATR_ASSE=_F(GRAIN='VALEUR', - MATRICE=MATRES, FORMAT='RESULTAT', + MATRICE=MATRES, + GRAIN='NOEUD',),); + +IMPR_MATRICE(MATR_ASSE=_F(FICHIER='RESULTAT', OPTION='LIGNE', - FICHIER='RESULTAT',),); + FORMAT='RESULTAT', + MATRICE=MATRES, + GRAIN='VALEUR',),); -VECRES=COMB_CHAM_NO(COMB_C=_F(COEF_C=('RI',0.0,-3141.5925999999999), - CHAM_NO=VECTASS,),); +VECRES=COMB_CHAM_NO(COMB_C=_F(CHAM_NO=VECTASS, + COEF_C=('RI',0.0,-3141.5926,),),); MATRES=FACT_LDLT(reuse =MATRES, MATR_ASSE=MATRES,); VECRES=RESO_LDLT(reuse =VECRES, - MATR_FACT=MATRES, - CHAM_NO=VECRES,); + CHAM_NO=VECRES, + MATR_FACT=MATRES,); -TEST_RESU(CHAM_NO=(_F(CHAM_GD=VECRES, +TEST_RESU(CHAM_NO=(_F(NOEUD='NO1', + VALE_C=('RI',-6.2426,0.0,), NOM_CMP='PRES', - VALE_C=('RI',-6.2426000000000004,0.0), - NOEUD='NO1',), - _F(CHAM_GD=VECRES, + CHAM_GD=VECRES,), + _F(NOEUD='NO780', + VALE_C=('RI',-6.2426,0.0,), NOM_CMP='PRES', - VALE_C=('RI',-6.2426000000000004,0.0), - NOEUD='NO780',), - _F(CHAM_GD=VECRES, + CHAM_GD=VECRES,), + _F(NOEUD='NO751', + VALE_C=('RI',6.02368,1.6387,), NOM_CMP='PRES', - VALE_C=('RI',6.0236799999999997,1.6387), - NOEUD='NO751',), - _F(CHAM_GD=VECRES, + CHAM_GD=VECRES,), + _F(NOEUD='NO763', + VALE_C=('RI',6.02368,1.6387,), NOM_CMP='PRES', - VALE_C=('RI',6.0236799999999997,1.6387), - NOEUD='NO763',),),); + CHAM_GD=VECRES,),),); -CHNODBEL=CALC_CHAM_ELEM(MODELE=GUIDE, +CHNODBEL=CALC_CHAM_ELEM(OPTION='PRES_ELNO_DBEL', CHAM_MATER=CHAMPMAT, - OPTION='PRES_ELNO_DBEL', + MODELE=GUIDE, PRES=VECRES,); -TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=CHNODBEL, +TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', + NOM_CMP='DB', + VALE=109.9, MAILLE='MA1', - VALE=109.90000000000001, + CHAM_GD=CHNODBEL,), + _F(NOEUD='NO780', NOM_CMP='DB', - NOEUD='NO1',), - _F(CHAM_GD=CHNODBEL, + VALE=109.9, MAILLE='MA1', - VALE=109.90000000000001, + CHAM_GD=CHNODBEL,), + _F(NOEUD='NO751', NOM_CMP='DB', - NOEUD='NO780',), - _F(CHAM_GD=CHNODBEL, + VALE=109.9, MAILLE='MA57', - VALE=109.90000000000001, + CHAM_GD=CHNODBEL,), + _F(NOEUD='NO763', NOM_CMP='DB', - NOEUD='NO751',), - _F(CHAM_GD=CHNODBEL, + VALE=109.9, MAILLE='MA57', - VALE=109.90000000000001, - NOM_CMP='DB', - NOEUD='NO763',),),); + CHAM_GD=CHNODBEL,),),); -PREEL=CALC_CHAM_ELEM(MODELE=GUIDE, +PREEL=CALC_CHAM_ELEM(OPTION='PRES_ELNO_REEL', CHAM_MATER=CHAMPMAT, - OPTION='PRES_ELNO_REEL', + MODELE=GUIDE, PRES=VECRES,); -TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=PREEL, +TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', + NOM_CMP='PRES', + VALE=-6.2426, MAILLE='MA1', - VALE=-6.2426000000000004, + CHAM_GD=PREEL,), + _F(NOEUD='NO780', NOM_CMP='PRES', - NOEUD='NO1',), - _F(CHAM_GD=PREEL, + VALE=-6.2426, MAILLE='MA1', - VALE=-6.2426000000000004, + CHAM_GD=PREEL,), + _F(NOEUD='NO751', NOM_CMP='PRES', - NOEUD='NO780',), - _F(CHAM_GD=PREEL, + VALE=6.02368, MAILLE='MA57', - VALE=6.0236799999999997, + CHAM_GD=PREEL,), + _F(NOEUD='NO763', NOM_CMP='PRES', - NOEUD='NO751',), - _F(CHAM_GD=PREEL, + VALE=6.02368, MAILLE='MA57', - VALE=6.0236799999999997, - NOM_CMP='PRES', - NOEUD='NO763',),),); + CHAM_GD=PREEL,),),); -PIMAG=CALC_CHAM_ELEM(MODELE=GUIDE, +PIMAG=CALC_CHAM_ELEM(OPTION='PRES_ELNO_IMAG', CHAM_MATER=CHAMPMAT, - OPTION='PRES_ELNO_IMAG', + MODELE=GUIDE, PRES=VECRES,); -TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=PIMAG, - MAILLE='MA1', - VALE=0.0, - NOM_CMP='PRES', +TEST_RESU(CHAM_ELEM=(_F(NOEUD='NO1', CRITERE='ABSOLU', - NOEUD='NO1',), - _F(CHAM_GD=PIMAG, + NOM_CMP='PRES', + VALE=0.0, MAILLE='MA1', + CHAM_GD=PIMAG,), + _F(NOEUD='NO780', + CRITERE='ABSOLU', + NOM_CMP='PRES', VALE=0.0, + MAILLE='MA1', + CHAM_GD=PIMAG,), + _F(NOEUD='NO751', NOM_CMP='PRES', - CRITERE='ABSOLU', - NOEUD='NO780',), - _F(CHAM_GD=PIMAG, - MAILLE='MA57', + PRECISION=0.0033, VALE=1.6387, - PRECISION=3.3E-3, - NOM_CMP='PRES', - NOEUD='NO751',), - _F(CHAM_GD=PIMAG, MAILLE='MA57', - VALE=1.6387, - PRECISION=3.3E-3, + CHAM_GD=PIMAG,), + _F(NOEUD='NO763', NOM_CMP='PRES', - NOEUD='NO763',),),); + PRECISION=0.0033, + VALE=1.6387, + MAILLE='MA57', + CHAM_GD=PIMAG,),),); -PRESHARM=DYNA_LINE_HARM(MATR_MASS=MATASM, +PRESHARM=DYNA_LINE_HARM(MATR_RIGI=MATASK, + MATR_MASS=MATASM, MATR_AMOR=MATASI, FREQ=500.0, - MATR_RIGI=MATASK, - EXCIT=_F(PUIS_PULS=1, - VECT_ASSE=VECTASS, + EXCIT=_F(VECT_ASSE=VECTASS, PHAS_DEG=90.0, - COEF_MULT=-1.0,),); + COEF_MULT=-1.0, + PUIS_PULS=1,),); -TEST_RESU(RESU=(_F(NOM_CHAM='PRES', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, + VALE_C=('RI',-6.2426,0.0,), RESULTAT=PRESHARM, + NOM_CHAM='PRES', NOEUD='NO1', - VALE_C=('RI',-6.2426000000000004,0.0), - NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES', + NOM_CMP='PRES',), + _F(NUME_ORDRE=1, + VALE_C=('RI',-6.2426,0.0,), RESULTAT=PRESHARM, + NOM_CHAM='PRES', NOEUD='NO780', - VALE_C=('RI',-6.2426000000000004,0.0), - NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES', + NOM_CMP='PRES',), + _F(NUME_ORDRE=1, + VALE_C=('RI',6.02368,1.6387,), RESULTAT=PRESHARM, + NOM_CHAM='PRES', NOEUD='NO751', - VALE_C=('RI',6.0236799999999997,1.6387), - NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES', + NOM_CMP='PRES',), + _F(NUME_ORDRE=1, + VALE_C=('RI',6.02368,1.6387,), RESULTAT=PRESHARM, + NOM_CHAM='PRES', NOEUD='NO763', - VALE_C=('RI',6.0236799999999997,1.6387), - NOM_CMP='PRES', - NUME_ORDRE=1,),),); + NOM_CMP='PRES',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='INTE_ELNO_ACTI', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='INTE_ELNO_ACTI', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='INTE_ELNO_ACTI', NOEUD='NO1', - PRECISION=0.029999999999999999, - VALE=0.043700000000000003, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_ACTI', + VALE=0.0437, + PRECISION=0.03, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='INTE_ELNO_ACTI', NOEUD='NO780', - PRECISION=0.029999999999999999, - VALE=0.043700000000000003, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_ACTI', + VALE=0.0437, + PRECISION=0.03, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='INTE_ELNO_ACTI', NOEUD='NO751', - PRECISION=0.029999999999999999, - VALE=0.043700000000000003, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_ACTI', + VALE=0.0437, + PRECISION=0.03, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='INTE_ELNO_ACTI', NOEUD='NO763', - PRECISION=0.029999999999999999, - VALE=0.043700000000000003, NOM_CMP='INTX', - NUME_ORDRE=1,),),); + VALE=0.0437, + PRECISION=0.03, + MAILLE='MA57',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='INTE_ELNO_REAC', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='INTE_ELNO_REAC', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='INTE_ELNO_REAC', NOEUD='NO1', - PRECISION=3.5E-4, - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_REAC', + VALE=0.0, + CRITERE='ABSOLU', + PRECISION=0.00035, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='INTE_ELNO_REAC', NOEUD='NO780', - PRECISION=3.5E-4, - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_REAC', + VALE=0.0, + CRITERE='ABSOLU', + PRECISION=0.00035, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='INTE_ELNO_REAC', NOEUD='NO751', - PRECISION=3.5E-4, - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='INTX', - NUME_ORDRE=1,), - _F(NOM_CHAM='INTE_ELNO_REAC', + VALE=0.0, + CRITERE='ABSOLU', + PRECISION=0.00035, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='INTE_ELNO_REAC', NOEUD='NO763', - PRECISION=3.5E-4, - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='INTX', - NUME_ORDRE=1,),),); + VALE=0.0, + CRITERE='ABSOLU', + PRECISION=0.00035, + MAILLE='MA57',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='PRES_ELNO_DBEL', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_DBEL', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_DBEL', NOEUD='NO1', - VALE=109.90000000000001, NOM_CMP='DB', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_DBEL', + VALE=109.9, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_DBEL', NOEUD='NO780', - VALE=109.90000000000001, NOM_CMP='DB', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_DBEL', + VALE=109.9, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_DBEL', NOEUD='NO751', - VALE=109.90000000000001, NOM_CMP='DB', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_DBEL', + VALE=109.9, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_DBEL', NOEUD='NO763', - VALE=109.90000000000001, NOM_CMP='DB', - NUME_ORDRE=1,),),); + VALE=109.9, + MAILLE='MA57',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='PRES_ELNO_REEL', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_REEL', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_REEL', NOEUD='NO1', - VALE=-6.2426000000000004, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_REEL', + VALE=-6.2426, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_REEL', NOEUD='NO780', - VALE=-6.2426000000000004, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_REEL', + VALE=-6.2426, + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_REEL', NOEUD='NO751', - VALE=6.0236799999999997, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_REEL', + VALE=6.02368, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_REEL', NOEUD='NO763', - VALE=6.0236799999999997, NOM_CMP='PRES', - NUME_ORDRE=1,),),); + VALE=6.02368, + MAILLE='MA57',),),); PRESHARM=CALC_ELEM(reuse =PRESHARM, - RESULTAT=PRESHARM, - CHAM_MATER=CHAMPMAT, - MODELE=GUIDE, OPTION='PRES_ELNO_IMAG', - TOUT_ORDRE='OUI',); + CHAM_MATER=CHAMPMAT, + RESULTAT=PRESHARM, + TOUT_ORDRE='OUI', + MODELE=GUIDE,); -TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_IMAG', +TEST_RESU(RESU=(_F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_IMAG', NOEUD='NO1', - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_IMAG', + VALE=0.0, + CRITERE='ABSOLU', + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA1', + NOM_CHAM='PRES_ELNO_IMAG', NOEUD='NO780', - CRITERE='ABSOLU', - VALE=0.0, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_IMAG', + VALE=0.0, + CRITERE='ABSOLU', + MAILLE='MA1',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_IMAG', NOEUD='NO751', - PRECISION=3.3E-3, - CRITERE='RELATIF', - VALE=1.6387, NOM_CMP='PRES', - NUME_ORDRE=1,), - _F(NOM_CHAM='PRES_ELNO_IMAG', + VALE=1.6387, + CRITERE='RELATIF', + PRECISION=0.0033, + MAILLE='MA57',), + _F(NUME_ORDRE=1, RESULTAT=PRESHARM, - MAILLE='MA57', + NOM_CHAM='PRES_ELNO_IMAG', NOEUD='NO763', - PRECISION=3.3E-3, - VALE=1.6387, NOM_CMP='PRES', - NUME_ORDRE=1,),),); + VALE=1.6387, + PRECISION=0.0033, + MAILLE='MA57',),),); FIN(); diff --git a/Exemples/ex24/kk.py b/Exemples/ex24/kk.py index 8b0a02df..3f97c486 100644 --- a/Exemples/ex24/kk.py +++ b/Exemples/ex24/kk.py @@ -1,24 +1,20 @@ -# -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- SD1=DEFI_SONDE(X=2, Y=3, Z=1,); # - -# - _param_1 = 1; -_param_2 = 2 ; - -_param_4 = EVAL("""23""") +_param_2 = 2; +_param_4 = EVAL("""23"""); -##SD2=DEFI_SONDE(X=2, -## Y=3, -## Z=1,); +SD2=DEFI_SONDE(X=2, + Y=3, + Z=1,); SD3=DEFI_SONDE(X=4, Y=5, @@ -62,7 +58,9 @@ cb=DEFI_SCALA(NUMERIC=_F(ICONV=1, MODELE=_F(VALREF=1000.0, VISLS0=0.29999999999999999,),); -CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2, +CALCUL_SATURNE(NomsBibliotheque=('bib1', + 'bib2',), + ENVELOPPE=_F(IFOENV=2, IMPEVI=83, FICEVI='Enveloppe_vers_solveur ', IMPEVO=84, @@ -81,7 +79,7 @@ CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2, NTHSAV=20,), OPTIONS_TURBULENCE=_F(IGRAKE=0, ISCALT=temperature,), - MARCHE_TEMPS=_F(DTREF=1.E-3, + MARCHE_TEMPS=_F(DTREF=0.001, IDTVAR=2, XCFMAX=0.5,), OPTIONS_EQUATIONS=_F(), @@ -99,6 +97,5 @@ CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2, GY=0, GZ=0,), FLUIDE=_F(RO0=1000.0, - VISCL0=0.10000000000000001, - P0=1.E4,),), - ); + VISCL0=0.1, + P0=10000.0,),),); \ No newline at end of file diff --git a/Exemples/ex24/titi.comm b/Exemples/ex24/titi.comm index fc0b15d8..232af10a 100644 --- a/Exemples/ex24/titi.comm +++ b/Exemples/ex24/titi.comm @@ -1,12 +1,10 @@ +# -*- coding: utf-8 -*- -SD1=DEFI_SONDE(Z=1, +SD1=DEFI_SONDE(Y=3, X=2, - Y=3,); + Z=1,); # -# -# - _param_1 = 1; _param_2 = 2; @@ -14,89 +12,90 @@ _param_2 = 2; _param_4 = EVAL("""23"""); -SD2=DEFI_SONDE(Z=1, +SD2=DEFI_SONDE(Y=3, X=2, - Y=3,); + Z=1,); -SD3=DEFI_SONDE(Z=3, +SD3=DEFI_SONDE(Y=5, X=4, - Y=5,); + Z=3,); -SD4=DEFI_SONDE(Z=12, +SD4=DEFI_SONDE(Y=10, X=11, - Y=10,); + Z=12,); -SD5=DEFI_SONDE(Z=21, +SD5=DEFI_SONDE(Y=21, X=21, - Y=21,); + Z=21,); -temperature=DEFI_SCALA(RESTITUE=_F(NOMVAR='temperature', - ILISVR=1, - ICHRVR=1, - IHISVR=SD1,), - MODELE=_F(SIGMAS=0.90000000000000002, - SCAMAX=1000, - VALREF=300.0, +temperature=DEFI_SCALA(MODELE=_F(IVISLS=1, + VISLS0=0.05, SCAMIN=270, - VISLS0=0.050000000000000003, - IVISLS=1,), - NUMERIC=_F(IMLIGR=1, - CLIMGR=1.7, - EPSRGR=1.E-4, - NITMAX=1000, - IDIRCL=0, - IDIFF=1, - NSWRGR=2, + VALREF=300.0, + SCAMAX=1000, + SIGMAS=0.9,), + NUMERIC=_F(ICONV=1, + EPSILO=1e-05, NSWRSM=10, - EPSILO=1.0000000000000001E-05, + NSWRGR=2, + IDIFF=1, + IDIRCL=0, + NITMAX=1000, ISTAT=1, - ICONV=1, - BLENCV=0.5, - ISCHCV=1,),); + EPSRGR=0.0001, + CLIMGR=1.7, + IMLIGR=1, + ISCHCV=1, + BLENCV=0.5,), + RESTITUE=_F(IHISVR=SD1, + ICHRVR=1, + ILISVR=1, + NOMVAR='temperature',),); -cb=DEFI_SCALA(RESTITUE=_F(NOMVAR='bore',), - MODELE=_F(VALREF=1000.0, - VISLS0=0.29999999999999999,), +cb=DEFI_SCALA(MODELE=_F(VISLS0=0.3, + VALREF=1000.0,), NUMERIC=_F(ICONV=1, - BLENCV=0,),); + BLENCV=0,), + RESTITUE=_F(NOMVAR='bore',),); -CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2, - FICEVI='Enveloppe_vers_solveur ', - IMPEVI=83, - IMPEVO=84, - FICEVO='Solveur_vers_enveloppe ',), - CONSTANTES_PHYSIQUES=_F(FLUIDE=_F(VISCL0=0.10000000000000001, - P0=1.E4, - RO0=1000.0,), - GRAVITE=_F(GX=0, - GY=0, - GZ=0,),), - HISTORIQUE_PONCTUEL=_F(FICHIERS_HISTORIQUES=_F(EXTHIS='histo', - EMPHIS='./',), - NTHSAV=20, - NTHIST=1,), - OPTIONS_TURBULENCE=_F(ISCALT=temperature, - IGRAKE=0,), +CALCUL_SATURNE(NomsBibliotheque=('bib1', + 'bib2',), + GESTION_CALCUL=_F(NTPABS=100, + ISUITE=0, + TTPABS=10.5, + NTMABS=1000,), VARIABLES=_F(IWARNI=3, NTLIST=2, - MASVOL1=_F(NOMVAR='Masse_vol1', - ILISVR=1, + MASVOL1=_F(IHISVR=SD2, ICHRVR=0, - IHISVR=SD2,),), - MARCHE_TEMPS=_F(IDTVAR=2, - DTREF=1.E-3, + ILISVR=1, + NOMVAR='Masse_vol1',),), + OPTIONS_TURBULENCE=_F(IGRAKE=0, + ISCALT=temperature,), + MARCHE_TEMPS=_F(DTREF=0.001, + IDTVAR=2, XCFMAX=0.5,), - FICHIERS_CALCUL=_F(SUITE_AVAL=_F(FICAVA='sui_amo', - IMPAVA=70, - IFOAVA=1,), - FICHIER_STOP=_F(FICSTP='ficstop', - IMPSTP=82,),), - GESTION_CALCUL=_F(NTMABS=1000, - TTPABS=10.5, - ISUITE=0, - NTPABS=100,), - OPTIONS_EQUATIONS=_F(), - POST_PROC_ENSIGHT=_F(IFOENS=1, + POST_PROC_ENSIGHT=_F(ITCHR=10, NTCHR=3, - ITCHR=10,), - ); \ No newline at end of file + IFOENS=1,), + OPTIONS_EQUATIONS=_F(), + FICHIERS_CALCUL=_F(FICHIER_STOP=_F(IMPSTP=82, + FICSTP='ficstop',), + SUITE_AVAL=_F(IFOAVA=1, + IMPAVA=70, + FICAVA='sui_amo',),), + HISTORIQUE_PONCTUEL=_F(NTHIST=1, + NTHSAV=20, + FICHIERS_HISTORIQUES=_F(EMPHIS='./', + EXTHIS='histo',),), + CONSTANTES_PHYSIQUES=_F(GRAVITE=_F(GZ=0, + GY=0, + GX=0,), + FLUIDE=_F(RO0=1000.0, + P0=10000.0, + VISCL0=0.1,),), + ENVELOPPE=_F(IFOENV=2, + IMPEVO=84, + FICEVO='Solveur_vers_enveloppe ', + FICEVI='Enveloppe_vers_solveur ', + IMPEVI=83,),); \ No newline at end of file diff --git a/Exemples/ex3/main.py b/Exemples/ex3/main.py index 643a386d..5b85948a 100644 --- a/Exemples/ex3/main.py +++ b/Exemples/ex3/main.py @@ -8,7 +8,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import SIMP,FACT from parse import MyConfParser @@ -30,3 +30,4 @@ else: o=cata(p.getdict(),'mcf1',None) print o print o.report() +assert o.isvalid() == 0 diff --git a/Exemples/ex4/main.py b/Exemples/ex4/main.py index 45d72941..6239be10 100644 --- a/Exemples/ex4/main.py +++ b/Exemples/ex4/main.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- import sys -sys.path[:0]=['../..','../../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import SIMP,FACT @@ -27,10 +27,12 @@ if not p.cr.estvide(): o=cata(eval(s),'mcf1',None) print o print o.report() +assert o.isvalid() == 1 o=cata(p.convert('dict'),'mcf2',None) print o print o.report() +assert o.isvalid() == 1 p=convert.plugins['pyth']() p.readfile('toto.pyth') @@ -42,3 +44,4 @@ if not p.cr.estvide(): o=cata(d,'mcf3',None) print o print o.report() +assert o.isvalid() == 0 diff --git a/Exemples/ex5/main.py b/Exemples/ex5/main.py index 0f8b72b7..268e4bf0 100644 --- a/Exemples/ex5/main.py +++ b/Exemples/ex5/main.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- import sys -sys.path[:0]=['../..','../../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import SIMP,FACT @@ -53,3 +53,4 @@ if not p.cr.estvide(): o=cata(d,'mcf3',None) print o print o.report() +assert o.isvalid() == 0 diff --git a/Exemples/ex5/titi.ini b/Exemples/ex5/titi.ini index 5facfb10..614c57b8 100644 --- a/Exemples/ex5/titi.ini +++ b/Exemples/ex5/titi.ini @@ -1,7 +1,7 @@ -[sect1] -b = 25 -a = 1 - [sect2] c = 3 d = 6 + +[sect1] +a = 1 +b = 25 diff --git a/Exemples/ex5/titi.pyth b/Exemples/ex5/titi.pyth index 96b0703d..af34bbbb 100644 --- a/Exemples/ex5/titi.pyth +++ b/Exemples/ex5/titi.pyth @@ -1,6 +1,6 @@ -sect1 = {'b' : 25, -'a' : 1, -} sect2 = {'c' : 3, 'd' : 6, } +sect1 = {'a' : 1, +'b' : 25, +} diff --git a/Exemples/ex6/main.py b/Exemples/ex6/main.py index bad0d922..8fdac499 100644 --- a/Exemples/ex6/main.py +++ b/Exemples/ex6/main.py @@ -8,7 +8,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import AU_MOINS_UN @@ -27,6 +27,7 @@ if valid: print "Le dictionnaire %s est conforme à la règle" % d else: print "Le dictionnaire %s n'est pas conforme à la règle" % d +assert valid==0 d={'sect3':{'a':1},'sect2':{'c':3}} text,valid= cata.verif(d) @@ -34,3 +35,4 @@ if valid: print "Le dictionnaire %s est conforme à la règle" % d else: print "Le dictionnaire %s n'est pas conforme à la règle" % d +assert valid==1 diff --git a/Exemples/ex7/main.py b/Exemples/ex7/main.py index 04011988..091e4039 100644 --- a/Exemples/ex7/main.py +++ b/Exemples/ex7/main.py @@ -16,7 +16,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import SIMP,FACT from Accas import AU_MOINS_UN @@ -50,6 +50,7 @@ if cr.estvide(): else: print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d print cr +assert o.isvalid() == 0 d={'sect1':{'a':1},'sect3':{'c':3}} o=cata(d,'mcf1',None) @@ -59,3 +60,4 @@ if cr.estvide(): else: print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d print cr +assert o.isvalid() == 1 diff --git a/Exemples/ex8/main.py b/Exemples/ex8/main.py index f2a52a12..58db37f2 100644 --- a/Exemples/ex8/main.py +++ b/Exemples/ex8/main.py @@ -15,7 +15,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import SIMP,FACT,BLOC @@ -48,4 +48,5 @@ for d in ({'a':1}, else: print "L'objet MCBLOC basé sur le dictionnaire %s n'est pas valide " % d print cr + assert o.isvalid() == 1 diff --git a/Exemples/ex9/main.py b/Exemples/ex9/main.py index 08ba5b92..6a9a34c6 100644 --- a/Exemples/ex9/main.py +++ b/Exemples/ex9/main.py @@ -16,7 +16,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] from Accas import SIMP,FACT,BLOC @@ -37,10 +37,10 @@ else: print cr -for d in ({'a':1}, - {'a':1,'c':3}, - {'a':2,'c':3}, - ): +for d,valid in (({'a':1},1), + ({'a':1,'c':3},1), + ({'a':2,'c':3},0), + ): # Création de l'objet MCFACT de nom mcf1 o=cata(d,'mcf1',None) # Vérification objet MCFACT @@ -50,4 +50,5 @@ for d in ({'a':1}, else: print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d print cr + assert o.isvalid() == valid,d diff --git a/Exemples/profile/main.py b/Exemples/profile/main.py index 86c748c1..2e04f0b7 100644 --- a/Exemples/profile/main.py +++ b/Exemples/profile/main.py @@ -7,7 +7,7 @@ """ import sys -sys.path[:0]=['../..'] +sys.path[:0]=['../..','../../Aster'] def main(): from Accas import SIMP,FACT,BLOC @@ -16,7 +16,7 @@ def main(): # Construction objet de définition cata= FACT(mcf1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')), - mcf2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')), + mcf2=FACT(max=3,c=SIMP(typ='I'),d=SIMP(typ='I')), a =SIMP(typ='I'), bloc1=BLOC(condition="a==1", c=SIMP(typ='I'), diff --git a/Exemples/profile/prefs.py b/Exemples/profile/prefs.py deleted file mode 100644 index 1914abe7..00000000 --- a/Exemples/profile/prefs.py +++ /dev/null @@ -1,89 +0,0 @@ -# -*- 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 - -# REPINI sert à localiser le fichier editeur.ini -# Obligatoire -REPINI=os.path.dirname(os.path.abspath(__file__)) - -# INSTALLDIR sert à localiser l'installation d'Eficas -# Obligatoire -INSTALLDIR=os.path.join(REPINI,'..') - -# CODE_PATH sert à localiser Noyau et Validation éventuellement -# non contenus dans la distribution EFICAS -# Par défaut on utilise les modules de INSTALLDIR -# Peut valoir None (defaut) -CODE_PATH = None -#CODE_PATH = os.path.join(REPINI,'../../Superv') - -# 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' - -labels= ('Fichier','Edition','Jeu de commandes', -# 'Catalogue','Browsers', - 'Options', - 'Aide', - ) - -appli_composants=['readercata','bureau', -# 'browser', - 'options', - ] - -menu_defs={ 'bureau': [ - ('Fichier',[ - ('Nouveau','newJDC'), - ('Ouvrir','openJDC'), - ('Enregistrer','saveJDC'), - ('Enregistrer sous','saveasJDC'), - None, - ('Fermer','closeJDC'), - ('Quitter','exitEFICAS'), - ] - ), - ('Edition',[ - ('Copier','copy'), - ('Couper','cut'), - ('Coller','paste'), - ] - ), - ('Jeu de commandes',[ - ('Rapport de validation','visuCRJDC'), - # ('Fichier à plat','visu_a_plat'), - ('Fichier format v6','visuJDC_py'), - ('Fichier source','visu_txt_brut_JDC'), - ('Paramètres Eficas','affichage_fichier_ini'), - ('Mots-clés inconnus','mc_inconnus'), - ] - ), - ('Aide',[ - ('Aide EFICAS','aideEFICAS'), - ] - ), - ] - } - diff --git a/Extensions/mcnuplet.py b/Extensions/mcnuplet.py index 6b35400f..0efa2bb0 100644 --- a/Extensions/mcnuplet.py +++ b/Extensions/mcnuplet.py @@ -200,5 +200,17 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO): except: return '' + def cree_dict_valeurs(self,liste=[],condition=0): + dico={} + return dico + + def update_condition_bloc(self): + """ + Realise l'update des blocs conditionnels fils de self + et propage au parent (rien a faire pour nuplet) + """ + + + diff --git a/Ihm/I_JDC.py b/Ihm/I_JDC.py index a4c733a8..ab4e7356 100644 --- a/Ihm/I_JDC.py +++ b/Ihm/I_JDC.py @@ -63,7 +63,7 @@ class JDC(I_OBJECT.OBJECT): d=self.get_contexte_avant(etape) l=[] for k,v in d.items(): - if type(v) != types.InstanceType : continue + if type(v) != types.InstanceType and not isinstance(v,object): continue # On considère que seul assd indique un type quelconque pas CO elif self.assd in types_permis : l.append(k) @@ -113,7 +113,7 @@ class JDC(I_OBJECT.OBJECT): return 1 elif type_ok == 'TXM' and v.__class__.__name__ == 'chaine' : return 1 - elif type(type_ok) != types.ClassType : + elif type(type_ok) != types.ClassType and not isinstance(type_ok,type): continue elif v.__class__ == type_ok or issubclass(v.__class__,type_ok): return 1 diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index 694bc83a..507cead7 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -145,7 +145,7 @@ class MCSIMP(I_OBJECT.OBJECT): qui n'existe pas encore (type CO()), 0 sinon """ for typ in self.definition.type: - if type(typ) == types.ClassType : + if type(typ) == types.ClassType or isinstance(typ,type): if issubclass(typ,CO) : return 1 return 0 @@ -156,7 +156,7 @@ class MCSIMP(I_OBJECT.OBJECT): ou dérivé, 0 sinon """ for typ in self.definition.type: - if type(typ) == types.ClassType : + if type(typ) == types.ClassType or isinstance(typ,type): if issubclass(typ,ASSD) and not issubclass(typ,GEOM): return 1 return 0 @@ -168,7 +168,7 @@ class MCSIMP(I_OBJECT.OBJECT): Retourne 0 dans le cas contraire """ for typ in self.definition.type: - if type(typ) == types.ClassType : + if type(typ) == types.ClassType or isinstance(typ,type): if typ.__name__ in ("GEOM","ASSD","geom","assd") or issubclass(typ,GEOM) : return 1 return 0 @@ -179,7 +179,7 @@ class MCSIMP(I_OBJECT.OBJECT): Retourne 0 dans le cas contraire """ for typ in self.definition.type: - if type(typ) == types.ClassType : + if type(typ) == types.ClassType or isinstance(typ,type): if issubclass(typ,GEOM) : return 1 return 0 diff --git a/Ihm/I_PROC_ETAPE.py b/Ihm/I_PROC_ETAPE.py index f9df60ad..11a15ccb 100644 --- a/Ihm/I_PROC_ETAPE.py +++ b/Ihm/I_PROC_ETAPE.py @@ -44,31 +44,31 @@ class PROC_ETAPE(I_ETAPE.ETAPE): def supprime_sdprods(self): """ Fonction: Lors d'une destruction d'etape, detruit tous les concepts produits - Une procedure n'en a aucun + Une procedure n'en a aucun """ return def delete_concept(self,sd): """ - Inputs : - - sd=concept detruit - Fonction : - Mettre a jour les mots cles de l etape + Fonction : Mettre a jour les mots cles de l etape suite à la disparition du concept sd Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils + + Inputs : + - sd=concept detruit """ for child in self.mc_liste : child.delete_concept(sd) def replace_concept(self,old_sd,sd): """ + Fonction : Mettre a jour les mots cles de l etape + suite au remplacement du concept old_sd + Inputs : - old_sd=concept remplacé - sd=nouveau concept - Fonction : - Mettre a jour les mots cles de l etape - suite au remplacement du concept old_sd """ for child in self.mc_liste : child.replace_concept(old_sd,sd) diff --git a/Minicode/cata_saturne.py b/Minicode/cata_saturne.py index 56d9b259..afddca07 100755 --- a/Minicode/cata_saturne.py +++ b/Minicode/cata_saturne.py @@ -8,12 +8,8 @@ from Accas import * import ops -JdC = JDC_CATA(code='ASTER', +JdC = JDC_CATA(code='SATURNE', execmodul=None, - regles = (AU_MOINS_UN('DEBUT','POURSUITE'), - AU_MOINS_UN('FIN'), - A_CLASSER(('DEBUT','POURSUITE'),'FIN') - ) ) # P. RASCLE MMN diff --git a/Minicode/editeur.ini b/Minicode/editeur.ini index daae371b..f46497ee 100644 --- a/Minicode/editeur.ini +++ b/Minicode/editeur.ini @@ -19,8 +19,8 @@ initialdir=os.curdir rep_mat="bidon" catalogues = ( - ('MINICODE','v1',os.path.join(rep_cata,'cata_saturne2.py'),'python'), - ('MINICODE','v2',os.path.join(rep_cata,'cata_saturne.py'),'python'), + ('MINICODE','saturne2',os.path.join(rep_cata,'cata_saturne2.py'),'python'), + ('MINICODE','saturne',os.path.join(rep_cata,'cata_saturne.py'),'python'), ('MINICODE','v3',os.path.join(rep_cata,'homard_cata_V6n.py'),'python','defaut'), ) diff --git a/Minicode/homard_cata_V6n.py b/Minicode/homard_cata_V6n.py index a31fdf9c..9f55a034 100755 --- a/Minicode/homard_cata_V6n.py +++ b/Minicode/homard_cata_V6n.py @@ -1,4 +1,6 @@ +# -*- coding: utf-8 -*- + # -------------------------------------------------- # debut entete # -------------------------------------------------- diff --git a/Minicode/prefs.py b/Minicode/prefs.py index 61812912..3d28234a 100644 --- a/Minicode/prefs.py +++ b/Minicode/prefs.py @@ -9,6 +9,9 @@ REPINI=os.path.dirname(os.path.abspath(__file__)) # Obligatoire INSTALLDIR=os.path.join(REPINI,'..') +# la variable code donne le nom du code a selectionner +code="MINICODE" + # CODE_PATH sert à localiser Noyau et Validation éventuellement # non contenus dans la distribution EFICAS # Par défaut on utilise les modules de INSTALLDIR diff --git a/Minicode/style.py b/Minicode/style.py new file mode 100644 index 00000000..d4855725 --- /dev/null +++ b/Minicode/style.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +""" +Pour modifier le style d'EFICAS il faut ajouter un fichier style.py qui contiendra les +informations sur le style voulu dans son repertoire Eficas_install. + +La methode la plus simple consiste à modifier directement les attributs de l'objet style dans le +fichier style.py d'Eficas_install. Exemple:: + + style.background='yellow' + +pour modifier la couleur du background. + +Il existe une autre méthode qui peut être utilisée quand on veut modifier plusieurs propriétés à la fois. + +Le fichier style.py doit définir une nouvelle classe qui dérive de la classe de base STYLE avec des attributs +de classe qui définiront le nouveau style (par exemple, si on veut modifier le background):: + + class STYLE(STYLE): + background='yellow' + +Il faut ensuite instancier cette classe, dans ce meme fichier, en donnant le nom style à l'objet cree:: + + style=STYLE() + +Tous les attributs de classe possibles sont visibles dans le module Editeur/basestyle.py:: + + 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') + + +Le fichier style.py contenu dans le répertoire Aster permet de spécifier des propriétés globales pour une installation. +Les modifications de style contenues dans ce fichier et dans le fichier style.py d'Eficas_install +sont prises en compte dans cet ordre. +""" + +p1=10 +p2=14 +f1="Helvetica" + +style.background='gray90' +style.foreground='black' +style.standard = (f1,p1) +style.standard_italique = (f1,p1,'italic') +style.standard_gras = (f1,p1,'bold') +style.canvas_italique = (f1,p1,'italic') +style.canvas_gras = (f1,p1,'bold') +style.statusfont = (f1,p2) diff --git a/Noyau/N_ASSD.py b/Noyau/N_ASSD.py index c8920fbc..92a3a4cb 100644 --- a/Noyau/N_ASSD.py +++ b/Noyau/N_ASSD.py @@ -1,4 +1,4 @@ -#@ MODIF N_ASSD Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND +#@ MODIF N_ASSD Noyau DATE 02/04/2007 AUTEUR COURTOIS M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -24,9 +24,8 @@ """ """ -import string -class ASSD: +class ASSD(object): """ Classe de base pour definir des types de structures de donnees ASTER equivalent d un concept ASTER @@ -57,21 +56,41 @@ class ASSD: self.id = self.parent.reg_sd(self) else : self.id = self.parent.o_register(self) - + + # initialise la partie "sd" + super(ASSD, self).__init__(nomj='?&?&?&?&') + def __getitem__(self,key): return self.etape[key] + def set_name(self, nom): + """Positionne le nom de self (et appelle sd_init) + """ + self.nom = nom + # test car FORMULE n'a pas de SD associée + meth = getattr(super(ASSD, self), 'set_name', None) + if meth: + meth(nom) + + def reparent_sd(self): + """Repositionne le parent des attributs de la SD associée. + """ + # test car FORMULE n'a pas de SD associée + meth = getattr(super(ASSD, self), 'reparent', None) + if meth: + meth(None, None) + def get_name(self): """ Retourne le nom de self, éventuellement en le demandant au JDC """ if not self.nom : - try: - self.nom=self.parent.get_name(self) or self.id - except: - self.nom="" - if string.find(self.nom,'sansnom') != -1 or self.nom == '': - self.nom = self.id + try: + self.nom=self.parent.get_name(self) or self.id + except: + self.nom="" + if self.nom.find('sansnom') != -1 or self.nom == '': + self.nom = self.id return self.nom def supprime(self): diff --git a/Noyau/N_BLOC.py b/Noyau/N_BLOC.py index 2a5cb111..0ae8f25b 100644 --- a/Noyau/N_BLOC.py +++ b/Noyau/N_BLOC.py @@ -39,11 +39,10 @@ class BLOC(N_ENTITE.ENTITE): Cette classe a deux attributs de classe : - - class_instance qui indique la classe qui devra etre utilisée - pour créer l'objet qui servira à controler la conformité d'un - bloc de mots-clés avec sa définition - - - label qui indique la nature de l'objet de définition (ici, BLOC) + - class_instance qui indique la classe qui devra etre utilisée + pour créer l'objet qui servira à controler la conformité d'un + bloc de mots-clés avec sa définition + - label qui indique la nature de l'objet de définition (ici, BLOC) """ class_instance = N_MCBLOC.MCBLOC @@ -55,19 +54,15 @@ class BLOC(N_ENTITE.ENTITE): """ Un bloc est caractérisé par les attributs suivants : - - fr : chaine de caractere commentaire pour aide en ligne (en francais) - - - ang : chaine de caractere commentaire pour aide en ligne (en anglais) - - - regles : liste d'objets de type REGLE pour vérifier la cohérence des sous-objets - - - statut : obligatoire ('o') ou facultatif ('f') - - - condition : chaine de caractère evaluable par l'interpreteur Python - - - entites : dictionnaire contenant les sous-objets de self (mots-clés). La clé du dictionnaire - est le nom du mot-clé et la valeur l'objet de définition correspondant. Cet attribut - est initialisé avec l'argument args de la méthode __init__ + - fr : chaine de caractere commentaire pour aide en ligne (en francais) + - ang : chaine de caractere commentaire pour aide en ligne (en anglais) + - regles : liste d'objets de type REGLE pour vérifier la cohérence des sous-objets + - statut : obligatoire ('o') ou facultatif ('f') + - condition : chaine de caractère evaluable par l'interpreteur Python + - entites : dictionnaire contenant les sous-objets de self (mots-clés). + La clé du dictionnaire est le nom du mot-clé et la valeur l'objet de + définition correspondant. Cet attribut est initialisé avec l'argument + args de la méthode __init__ """ # Initialisation des attributs diff --git a/Noyau/N_CO.py b/Noyau/N_CO.py index 60750a87..dcd8f47e 100644 --- a/Noyau/N_CO.py +++ b/Noyau/N_CO.py @@ -1,4 +1,4 @@ -#@ MODIF N_CO Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND +#@ MODIF N_CO Noyau DATE 13/02/2007 AUTEUR PELLET J.PELLET # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -25,27 +25,29 @@ from N_ASSD import ASSD from N_Exception import AsException from N_VALIDATOR import ValError import N_utils +import Sdbase +from Sdbase import AsBase -class CO(ASSD): - def __init__(self,nom): - ASSD.__init__(self,etape=None,sd=None,reg='oui') - # - # On demande le nommage du concept - # - if self.parent : - try: - self.parent.NommerSdprod(self,nom) - except AsException,e: - appel=N_utils.callee_where(niveau=2) - raise AsException("Concept CO, fichier: ",appel[1]," ligne : ",appel[0],'\n',e) - else: - self.nom=nom +class CO(ASSD, AsBase): + def __init__(self,nom): + ASSD.__init__(self,etape=None,sd=None,reg='oui') + # + # On demande le nommage du concept + # + if self.parent : + try: + self.parent.NommerSdprod(self,nom) + except AsException,e: + appel=N_utils.callee_where(niveau=2) + raise AsException("Concept CO, fichier: ",appel[1]," ligne : ",appel[0],'\n',e) + else: + self.nom=nom - def __convert__(cls,valeur): - if hasattr(valeur,'_etape') : - # valeur est un concept CO qui a ete transforme par type_sdprod - if valeur.etape == valeur._etape: - # le concept est bien produit par l'etape - return valeur - raise ValError("Pas un concept CO") - __convert__=classmethod(__convert__) + def __convert__(cls,valeur): + if hasattr(valeur,'_etape') : + # valeur est un concept CO qui a ete transforme par type_sdprod + if valeur.etape == valeur._etape: + # le concept est bien produit par l'etape + return valeur + raise ValError("Pas un concept CO") + __convert__=classmethod(__convert__) diff --git a/Noyau/N_CR.py b/Noyau/N_CR.py index addfe661..0d86b29e 100644 --- a/Noyau/N_CR.py +++ b/Noyau/N_CR.py @@ -70,9 +70,8 @@ class CR : def estvide(self): """ - Retourne 1 si self ne contient aucun message grave (fatal ou exception) et - aucun CR qui en contienne, - 0 sinon + Retourne 1 si self ne contient aucun message grave (fatal ou exception) + et aucun CR qui en contienne, 0 sinon """ if self.crexception : return 0 if self.crfatal : return 0 diff --git a/Noyau/N_ETAPE.py b/Noyau/N_ETAPE.py index 2e96ccfc..9b2a8251 100644 --- a/Noyau/N_ETAPE.py +++ b/Noyau/N_ETAPE.py @@ -1,4 +1,4 @@ -#@ MODIF N_ETAPE Noyau DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF N_ETAPE Noyau DATE 13/02/2007 AUTEUR PELLET J.PELLET # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -111,11 +111,11 @@ class ETAPE(N_MCCOMPO.MCCOMPO): Construit le concept produit de l'opérateur. Deux cas peuvent se présenter : - - le parent n'est pas défini. Dans ce cas, l'étape prend en charge la création - et le nommage du concept. + - le parent n'est pas défini. Dans ce cas, l'étape prend en charge la création + et le nommage du concept. - - le parent est défini. Dans ce cas, l'étape demande au parent la création et - le nommage du concept. + - le parent est défini. Dans ce cas, l'étape demande au parent la création et + le nommage du concept. """ self.sdnom=nom @@ -131,7 +131,7 @@ class ETAPE(N_MCCOMPO.MCCOMPO): if sd != None and self.reuse == None: # On ne nomme le concept que dans le cas de non reutilisation # d un concept - sd.nom=nom + sd.set_name(nom) except AsException,e: raise AsException("Etape ",self.nom,'ligne : ',self.appel[0], 'fichier : ',self.appel[1],e) @@ -158,14 +158,14 @@ class ETAPE(N_MCCOMPO.MCCOMPO): """ Retourne le concept résultat de l'étape Deux cas : - cas 1 : sd_prod de oper n'est pas une fonction - il s'agit d'une sous classe de ASSD - on construit le sd à partir de cette classe - et on le retourne - cas 2 : il s'agit d'une fonction - on l'évalue avec les mots-clés de l'étape (mc_liste) - on construit le sd à partir de la classe obtenue - et on le retourne + - cas 1 : sd_prod de oper n'est pas une fonction + il s'agit d'une sous classe de ASSD + on construit le sd à partir de cette classe + et on le retourne + - cas 2 : il s'agit d'une fonction + on l'évalue avec les mots-clés de l'étape (mc_liste) + on construit le sd à partir de la classe obtenue + et on le retourne """ if type(self.definition.sd_prod) == types.FunctionType: d=self.cree_dict_valeurs(self.mc_liste) @@ -211,12 +211,12 @@ Causes possibles : """ Retourne le type du concept résultat de l'étape Deux cas : - cas 1 : sd_prod de oper n'est pas une fonction - il s'agit d'une sous classe de ASSD - on retourne le nom de la classe - cas 2 : il s'agit d'une fonction - on l'évalue avec les mots-clés de l'étape (mc_liste) - et on retourne son résultat + - cas 1 : sd_prod de oper n'est pas une fonction + il s'agit d'une sous classe de ASSD + on retourne le nom de la classe + - cas 2 : il s'agit d'une fonction + on l'évalue avec les mots-clés de l'étape (mc_liste) + et on retourne son résultat """ if type(self.definition.sd_prod) == types.FunctionType: d=self.cree_dict_valeurs(self.mc_liste) @@ -267,7 +267,7 @@ Causes possibles : def reset_current_step(self): """ Methode utilisee par l'etape self qui remet son etape parent comme - etape courante + etape courante """ #print "reset_current_step ",self.nom #traceback.print_stack(limit=3,file=sys.stdout) @@ -400,7 +400,7 @@ Causes possibles : if self.reuse == None : new_etape.parent.NommerSdprod(new_sd,self.sd.nom) else : - new_sd.nom = self.sd.nom + new_sd.set_name(self.sd.nom) new_etape.copy_intern(self) return new_etape diff --git a/Noyau/N_FACT.py b/Noyau/N_FACT.py index e5e3b428..350e6f7b 100644 --- a/Noyau/N_FACT.py +++ b/Noyau/N_FACT.py @@ -40,13 +40,13 @@ class FACT(N_ENTITE.ENTITE): Cette classe a trois attributs de classe - - class_instance qui indique la classe qui devra etre utilisée - pour créer l'objet qui servira à controler la conformité d'un - mot-clé facteur avec sa définition + - class_instance qui indique la classe qui devra etre utilisée + pour créer l'objet qui servira à controler la conformité d'un + mot-clé facteur avec sa définition - - list_instance + - list_instance - - label qui indique la nature de l'objet de définition (ici, FACT) + - label qui indique la nature de l'objet de définition (ici, FACT) """ class_instance = N_MCFACT.MCFACT list_instance = N_MCLIST.MCList @@ -58,23 +58,15 @@ class FACT(N_ENTITE.ENTITE): """ Un mot-clé facteur est caractérisé par les attributs suivants : - - fr : - - - ang : - - - statut : - - - defaut : - - - regles - - - min - - - max - - - position - - - docu + - fr : + - ang : + - statut : + - defaut : + - regles + - min + - max + - position + - docu """ N_ENTITE.ENTITE.__init__(self,validators) # Initialisation des attributs @@ -103,14 +95,14 @@ class FACT(N_ENTITE.ENTITE): MCFACT soit une liste de type MCLIST. La creation d un mot cle facteur depend de son statut - Si statut ='o' il est obligatoire - Si statut == 'd' il est facultatif mais ses sous mots cles avec - defaut sont visibles - Si statut == 'f' il est facultatif et ses sous mots avec defaut ne - sont pas visibles - Si statut == 'c' il est cache ??? - Si defaut != None, on utilise cette valeur pour calculer la valeur - par defaut du mot cle facteur + - Si statut ='o' il est obligatoire + - Si statut == 'd' il est facultatif mais ses sous mots cles avec + defaut sont visibles + - Si statut == 'f' il est facultatif et ses sous mots avec defaut ne + sont pas visibles + - Si statut == 'c' il est cache ??? + - Si defaut != None, on utilise cette valeur pour calculer la valeur + par defaut du mot cle facteur """ if val == None: if self.defaut == None: diff --git a/Noyau/N_FONCTION.py b/Noyau/N_FONCTION.py index 41bb35f4..7be3cc85 100644 --- a/Noyau/N_FONCTION.py +++ b/Noyau/N_FONCTION.py @@ -28,9 +28,12 @@ from __future__ import division from N_ASSD import ASSD import string +import Sdbase +from Sdbase import AsBase + class FONCTION(ASSD):pass -class formule(ASSD): +class formule(ASSD,AsBase): def __init__(self,**args): ASSD.__init__(self,**args) self.nompar =None diff --git a/Noyau/N_JDC.py b/Noyau/N_JDC.py index 5c39d072..4bc98639 100644 --- a/Noyau/N_JDC.py +++ b/Noyau/N_JDC.py @@ -1,4 +1,4 @@ -#@ MODIF N_JDC Noyau DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF N_JDC Noyau DATE 13/02/2007 AUTEUR PELLET J.PELLET # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -260,20 +260,24 @@ NONE = None def create_sdprod(self,etape,nomsd): """ - Intention : Cette methode doit fabriquer le concept produit retourne - par l'etape etape et le nommer. - Elle est appelée à l'initiative de l'etape - pendant le processus de construction de cette etape : - methode __call__ de la classe CMD (OPER ou MACRO) - Ce travail est réalisé par le contexte supérieur - (etape.parent) car dans certains cas, le concept ne doit - pas etre fabriqué mais l'etape doit simplement utiliser - un concept préexistant. - Cas 1 : etape.reuse != None : le concept est réutilisé - Cas 2 : l'étape appartient à une macro qui a déclaré un + Cette methode doit fabriquer le concept produit retourne + par l'etape etape et le nommer. + + Elle est appelée à l'initiative de l'etape + pendant le processus de construction de cette etape : + methode __call__ de la classe CMD (OPER ou MACRO) + + Ce travail est réalisé par le contexte supérieur + (etape.parent) car dans certains cas, le concept ne doit + pas etre fabriqué mais l'etape doit simplement utiliser + un concept préexistant. + + Deux cas possibles : + - Cas 1 : etape.reuse != None : le concept est réutilisé + - Cas 2 : l'étape appartient à une macro qui a déclaré un concept de sortie qui doit etre produit par cette etape. - Dans le cas du JDC, le deuxième cas ne peut pas se produire. + Dans le cas du JDC, le deuxième cas ne peut pas se produire. """ sd= etape.get_sd_prod() if sd != None and (etape.definition.reentrant == 'n' or etape.reuse is None) : @@ -298,7 +302,7 @@ NONE = None # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja. # Ajoute a la creation (appel de reg_sd). self.sds_dict[sdnom]=sd - sd.nom=sdnom + sd.set_name(sdnom) # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC if restrict == 'non': diff --git a/Noyau/N_JDC_CATA.py b/Noyau/N_JDC_CATA.py index 6c6ee7b4..4f9dd5f8 100644 --- a/Noyau/N_JDC_CATA.py +++ b/Noyau/N_JDC_CATA.py @@ -37,11 +37,11 @@ class JDC_CATA(N_ENTITE.ENTITE): Attributs de classe : - - class_instance qui indique la classe qui devra etre utilisée + - class_instance qui indique la classe qui devra etre utilisée pour créer l'objet qui servira à controler la conformité du jeu de commandes avec sa définition - - label qui indique la nature de l'objet de définition (ici, JDC) + - label qui indique la nature de l'objet de définition (ici, JDC) """ class_instance = N_JDC.JDC diff --git a/Noyau/N_MACRO.py b/Noyau/N_MACRO.py index d4f162f5..71776c5f 100644 --- a/Noyau/N_MACRO.py +++ b/Noyau/N_MACRO.py @@ -38,48 +38,48 @@ class MACRO(N_ENTITE.ENTITE): Cette classe a trois attributs de classe - - class_instance qui indique la classe qui devra etre utilisée - pour créer l'objet qui servira à controler la conformité d'un - macro-commande avec sa définition + - class_instance qui indique la classe qui devra etre utilisée + pour créer l'objet qui servira à controler la conformité d'un + macro-commande avec sa définition - - label qui indique la nature de l'objet de définition (ici, MACRO) + - label qui indique la nature de l'objet de définition (ici, MACRO) - - nommage qui est un module Python qui fournit la fonctionnalité de nommage + - nommage qui est un module Python qui fournit la fonctionnalité de nommage et les attributs d'instance suivants : - - nom : son nom + - nom : son nom - - op : le numéro d'opérateur + - op : le numéro d'opérateur - - sd_prod : le type de concept produit. C'est une classe ou une fonction qui retourne - une classe + - sd_prod : le type de concept produit. C'est une classe ou une fonction qui retourne + une classe - - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur - réentrant peut modifier un concept d'entrée et le produire comme concept de sortie + - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur + réentrant peut modifier un concept d'entrée et le produire comme concept de sortie - - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur - non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort - de l'objet gérant le contexte d'exécution de vérifier cette contrainte. + - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur + non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort + de l'objet gérant le contexte d'exécution de vérifier cette contrainte. - - fr : commentaire associé en francais + - fr : commentaire associé en francais - - ang : commentaire associé en anglais + - ang : commentaire associé en anglais - - docu : clé de documentation associée + - docu : clé de documentation associée - - regles : liste des règles associées + - regles : liste des règles associées - - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette - fonction est exécutée lors des phases d'initialisation de l'étape associée. + - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette + fonction est exécutée lors des phases d'initialisation de l'étape associée. - - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre - rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement. - Si niveau vaut None, l'opérateur est rangé au niveau global. + - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre + rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement. + Si niveau vaut None, l'opérateur est rangé au niveau global. - - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit - des entités de définition pour les mots-clés : FACT, BLOC, SIMP. Cet attribut - est initialisé avec args, c'est à dire les arguments d'appel restants. + - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit + des entités de définition pour les mots-clés : FACT, BLOC, SIMP. Cet attribut + est initialisé avec args, c'est à dire les arguments d'appel restants. """ diff --git a/Noyau/N_MACRO_ETAPE.py b/Noyau/N_MACRO_ETAPE.py index 7b3f3454..18fb7281 100644 --- a/Noyau/N_MACRO_ETAPE.py +++ b/Noyau/N_MACRO_ETAPE.py @@ -1,4 +1,4 @@ -#@ MODIF N_MACRO_ETAPE Noyau DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF N_MACRO_ETAPE Noyau DATE 13/02/2007 AUTEUR PELLET J.PELLET # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -49,16 +49,16 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): """ Attributs : - - definition : objet portant les attributs de définition d'une étape - de type macro-commande. Il est initialisé par - l'argument oper. + - definition : objet portant les attributs de définition d'une étape + de type macro-commande. Il est initialisé par + l'argument oper. - - reuse : indique le concept d'entrée réutilisé. Il se trouvera donc - en sortie si les conditions d'exécution de l'opérateur - l'autorise + - reuse : indique le concept d'entrée réutilisé. Il se trouvera donc + en sortie si les conditions d'exécution de l'opérateur + l'autorise - - valeur : arguments d'entrée de type mot-clé=valeur. Initialisé - avec l'argument args. + - valeur : arguments d'entrée de type mot-clé=valeur. Initialisé + avec l'argument args. """ self.definition=oper @@ -108,11 +108,11 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): Construit le concept produit de l'opérateur. Deux cas peuvent se présenter : - - le parent n'est pas défini. Dans ce cas, l'étape prend en charge - la création et le nommage du concept. + - le parent n'est pas défini. Dans ce cas, l'étape prend en charge + la création et le nommage du concept. - - le parent est défini. Dans ce cas, l'étape demande au parent la - création et le nommage du concept. + - le parent est défini. Dans ce cas, l'étape demande au parent la + création et le nommage du concept. """ self.sdnom=nom @@ -130,7 +130,7 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): if sd != None and self.reuse == None: # On ne nomme le concept que dans le cas de non reutilisation # d un concept - sd.nom=nom + sd.set_name(nom) self.reset_current_step() except AsException,e: self.reset_current_step() @@ -165,15 +165,17 @@ class MACRO_ETAPE(N_ETAPE.ETAPE): """ Retourne le concept résultat d'une macro étape La difference avec une etape ou une proc-etape tient a ce que - le concept produit peut exister ou pas + le concept produit peut exister ou pas + Si sd_prod == None le concept produit n existe pas on retourne None + Deux cas : - cas 1 : sd_prod n'est pas une fonction + - cas 1 : sd_prod n'est pas une fonction il s'agit d'une sous classe de ASSD on construit le sd à partir de cette classe et on le retourne - cas 2 : sd_prod est une fonction - on l'évalue avec les mots-clés de l'étape (mc_liste) + - cas 2 : sd_prod est une fonction + on l'évalue avec les mots-clés de l'étape (mc_liste) on construit le sd à partir de la classe obtenue et on le retourne """ @@ -230,12 +232,13 @@ Causes possibles : def get_type_produit_brut(self,force=0): """ Retourne le type du concept résultat de l'étape et eventuellement type - les concepts produits "à droite" du signe égal (en entrée) + les concepts produits "à droite" du signe égal (en entrée) + Deux cas : - cas 1 : sd_prod de oper n'est pas une fonction + - cas 1 : sd_prod de oper n'est pas une fonction il s'agit d'une sous classe de ASSD on retourne le nom de la classe - cas 2 : il s'agit d'une fonction + - cas 2 : il s'agit d'une fonction on l'évalue avec les mots-clés de l'étape (mc_liste) et on retourne son résultat """ @@ -302,11 +305,12 @@ Causes possibles : def type_sdprod(self,co,t): """ Cette methode a pour fonction de typer le concept co avec le type t - dans les conditions suivantes - 1- co est un concept produit de self - 2- co est un concept libre : on le type et on l attribue à self + dans les conditions suivantes : + 1. co est un concept produit de self + 2. co est un concept libre : on le type et on l attribue à self + Elle enregistre egalement les concepts produits (on fait l hypothese - que la liste sdprods a été correctement initialisee, vide probablement) + que la liste sdprods a été correctement initialisee, vide probablement) """ if not hasattr(co,'etape'): # Le concept vaut None probablement. On ignore l'appel @@ -341,17 +345,27 @@ Il ne devrait y avoir qu'un seul mot cle porteur du concept CO (%s)""" % co) raise AsException("""Erreur interne. Impossible de changer le type du concept (%s). Le mot cle associe ne supporte pas CO mais seulement (%s)""" %(co,mcs.definition.type)) co.etape=self - co.__class__ = t + # affectation du bon type du concept et + # initialisation de sa partie "sd" + if CONTEXT.debug:print "changement de type:",co,t + co.change_type(t) + self.sdprods.append(co) elif co.etape== self: # Cas 2 : le concept est produit par la macro (self) # On est deja passe par type_sdprod (Cas 1 ou 3). - # Il suffit de le mettre dans la liste des concepts produits (self.sdprods) - # Le type du concept doit etre coherent avec le type demande (seulement derive) - if not isinstance(co,t): - raise AsException("""Erreur interne. + if co.etape==co._etape: + #Le concept a été créé par la macro (self) + #On peut changer son type + co.change_type(t) + else: + #Le concept a été créé par une macro parente + # Le type du concept doit etre coherent avec le type demande (seulement derive) + if not isinstance(co,t): + raise AsException("""Erreur interne. Le type demande (%s) et le type du concept (%s) devraient etre derives""" %(t,co.__class__)) + self.sdprods.append(co) elif co.etape== self.parent: @@ -425,17 +439,18 @@ Le type demande (%s) et le type du concept (%s) devraient etre derives""" %(t,co def create_sdprod(self,etape,nomsd): """ - Intention : Cette methode doit fabriquer le concept produit retourne - par l'etape etape et le nommer. - Elle est appelée à l'initiative de l'etape - pendant le processus de construction de cette etape : methode __call__ - de la classe CMD (OPER ou MACRO) - Ce travail est réalisé par le contexte supérieur (etape.parent) - car dans certains cas, le concept ne doit pas etre fabriqué mais - l'etape doit simplement utiliser un concept préexistant. - Cas 1 : etape.reuse != None : le concept est réutilisé - Cas 2 : l'étape appartient à une macro qui a déclaré un concept - de sortie qui doit etre produit par cette etape. + Cette methode doit fabriquer le concept produit retourne + par l'etape etape et le nommer. + + Elle est appelée à l'initiative de l'etape + pendant le processus de construction de cette etape : methode __call__ + de la classe CMD (OPER ou MACRO) + Ce travail est réalisé par le contexte supérieur (etape.parent) + car dans certains cas, le concept ne doit pas etre fabriqué mais + l'etape doit simplement utiliser un concept préexistant. + - Cas 1 : etape.reuse != None : le concept est réutilisé + - Cas 2 : l'étape appartient à une macro qui a déclaré un concept + de sortie qui doit etre produit par cette etape. """ if self.Outputs.has_key(nomsd): # Il s'agit d'un concept de sortie de la macro. Il ne faut pas le créer @@ -645,7 +660,7 @@ Le type demande (%s) et le type du concept (%s) devraient etre derives""" %(t,co new_sd = etp.sd.__class__(etape=new_etp) new_etp.sd = new_sd if etp.reuse: - new_sd.nom = etp.sd.nom + new_sd.set_name(etp.sd.nom) else: self.NommerSdprod(new_sd,etp.sd.nom) new_etp.copy_intern(etp) diff --git a/Noyau/N_MCCOMPO.py b/Noyau/N_MCCOMPO.py index 51ad7960..c4f166bb 100644 --- a/Noyau/N_MCCOMPO.py +++ b/Noyau/N_MCCOMPO.py @@ -1,4 +1,4 @@ -#@ MODIF N_MCCOMPO Noyau DATE 21/03/2005 AUTEUR DURAND C.DURAND +#@ MODIF N_MCCOMPO Noyau DATE 13/02/2007 AUTEUR PELLET J.PELLET # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -26,7 +26,6 @@ des OBJECT composites """ -import types from copy import copy import N_OBJECT @@ -309,8 +308,7 @@ class MCCOMPO(N_OBJECT.OBJECT): Retourne le fils de self de nom name ou None s'il n'existe pas Si restreint vaut oui : ne regarde que dans la mc_liste Si restreint vaut non : regarde aussi dans les entites possibles - avec defaut - (Ce dernier cas n'est utilisé que dans le catalogue) + avec defaut (Ce dernier cas n'est utilisé que dans le catalogue) """ for v in self.mc_liste: if v.nom == name : return v @@ -381,12 +379,14 @@ class MCCOMPO(N_OBJECT.OBJECT): def get_sd_mcs_utilisees(self): """ Retourne la ou les SD utilisée par self sous forme d'un dictionnaire : - . Si aucune sd n'est utilisée, le dictionnaire est vide. - . Sinon, les clés du dictionnaire sont les mots-clés derrière lesquels on - trouve des sd ; la valeur est la liste des sd attenante. - Exemple : { 'VALE_F': [ , - ], - 'MODELE': [] } + - Si aucune sd n'est utilisée, le dictionnaire est vide. + - Sinon, les clés du dictionnaire sont les mots-clés derrière lesquels on + trouve des sd ; la valeur est la liste des sd attenante. + Exemple :: + + { 'VALE_F': [ , + ], + 'MODELE': [] } """ dico = {} for child in self.mc_liste: diff --git a/Noyau/N_MCLIST.py b/Noyau/N_MCLIST.py index cbf60d43..3eba20b8 100644 --- a/Noyau/N_MCLIST.py +++ b/Noyau/N_MCLIST.py @@ -127,12 +127,15 @@ class MCList(UserList.UserList): def get_sd_mcs_utilisees(self): """ Retourne la ou les SD utilisée par self sous forme d'un dictionnaire : - . Si aucune sd n'est utilisée, le dictionnaire est vide. - . Sinon, les clés du dictionnaire sont les mots-clés derrière lesquels on - trouve des sd ; la valeur est la liste des sd attenante. - Exemple : { 'VALE_F': [ , - ], - 'MODELE': [] } + - Si aucune sd n'est utilisée, le dictionnaire est vide. + - Sinon, les clés du dictionnaire sont les mots-clés derrière lesquels on + trouve des sd ; la valeur est la liste des sd attenante. + + Exemple :: + + { 'VALE_F': [ , + ], + 'MODELE': [] } """ dico = {} for child in self.data: diff --git a/Noyau/N_MCSIMP.py b/Noyau/N_MCSIMP.py index 7f19a7da..d9da9406 100644 --- a/Noyau/N_MCSIMP.py +++ b/Noyau/N_MCSIMP.py @@ -1,4 +1,4 @@ -#@ MODIF N_MCSIMP Noyau DATE 22/02/2005 AUTEUR DURAND C.DURAND +#@ MODIF N_MCSIMP Noyau DATE 13/02/2007 AUTEUR PELLET J.PELLET # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -27,7 +27,6 @@ de type ENTITE """ -import types from copy import copy from Noyau.N_ASSD import ASSD,assd @@ -107,7 +106,7 @@ class MCSIMP(N_OBJECT.OBJECT): objet = self.makeobjet() # il faut copier les listes et les tuples mais pas les autres valeurs # possibles (réel,SD,...) - if type(self.valeur) in (types.ListType,types.TupleType): + if type(self.valeur) in (list, tuple): objet.valeur = copy(self.valeur) else: objet.valeur = self.valeur @@ -131,22 +130,23 @@ class MCSIMP(N_OBJECT.OBJECT): ou alors une liste vide """ l=[] - if type(self.valeur) == types.InstanceType: - #XXX Est ce différent de isinstance(self.valeur,ASSD) ?? - if issubclass(self.valeur.__class__,ASSD) : l.append(self.valeur) - elif type(self.valeur) in (types.TupleType,types.ListType): + if isinstance(self.valeur, ASSD): + l.append(self.valeur) + elif type(self.valeur) in (list, tuple): for val in self.valeur : - if type(val) == types.InstanceType: - if issubclass(val.__class__,ASSD) : l.append(val) + if isinstance(val, ASSD): + l.append(val) return l def get_sd_mcs_utilisees(self): """ Retourne la ou les SD utilisée par self sous forme d'un dictionnaire : - . Si aucune sd n'est utilisée, le dictionnaire est vide. - . Sinon, la clé du dictionnaire est le mot-clé simple ; la valeur est - la liste des sd attenante. - Exemple : { 'VALE_F': [ , + - Si aucune sd n'est utilisée, le dictionnaire est vide. + - Sinon, la clé du dictionnaire est le mot-clé simple ; la valeur est + la liste des sd attenante. + + Exemple :: + { 'VALE_F': [ , ] } """ l=self.get_sd_utilisees() @@ -161,7 +161,7 @@ class MCSIMP(N_OBJECT.OBJECT): comme valeur. """ lval=self.valeur - if type(self.valeur) not in (types.TupleType,types.ListType): + if type(self.valeur) not in (list, tuple): lval=(self.valeur,) if co in lval:return [self,] return [] @@ -172,7 +172,7 @@ class MCSIMP(N_OBJECT.OBJECT): associés au mot cle simple """ lval=self.valeur - if type(self.valeur) not in (types.TupleType,types.ListType): + if type(self.valeur) not in (list, tuple): lval=(self.valeur,) l=[] for c in lval: diff --git a/Noyau/N_OBJECT.py b/Noyau/N_OBJECT.py index 45c96cf2..fc59a918 100644 --- a/Noyau/N_OBJECT.py +++ b/Noyau/N_OBJECT.py @@ -33,8 +33,7 @@ class OBJECT: aux classes de type ETAPE et MOCLES. Elle ne peut etre instanciée. Une sous classe doit obligatoirement implémenter les méthodes : - - - __init__ + - __init__ """ diff --git a/Noyau/N_OPER.py b/Noyau/N_OPER.py index cab95704..1bb22bc0 100644 --- a/Noyau/N_OPER.py +++ b/Noyau/N_OPER.py @@ -38,46 +38,46 @@ class OPER(N_ENTITE.ENTITE): Cette classe a trois attributs de classe - - class_instance qui indique la classe qui devra etre utilisée + - class_instance qui indique la classe qui devra etre utilisée pour créer l'objet qui servira à controler la conformité d'un opérateur avec sa définition - - label qui indique la nature de l'objet de définition (ici, OPER) + - label qui indique la nature de l'objet de définition (ici, OPER) - - nommage qui est un module Python qui fournit la fonctionnalité de nommage + - nommage qui est un module Python qui fournit la fonctionnalité de nommage et les attributs d'instance suivants : - - nom : son nom + - nom : son nom - - op : le numéro d'opérateur + - op : le numéro d'opérateur - - sd_prod : le type de concept produit. C'est une classe ou une fonction qui retourne + - sd_prod : le type de concept produit. C'est une classe ou une fonction qui retourne une classe - - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur + - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur réentrant peut modifier un concept d'entrée et le produire comme concept de sortie - - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur + - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort de l'objet gérant le contexte d'exécution de vérifier cette contrainte. - - fr : commentaire associé en francais + - fr : commentaire associé en francais - - ang : commentaire associé en anglais + - ang : commentaire associé en anglais - - docu : clé de documentation associée + - docu : clé de documentation associée - - regles : liste des règles associées + - regles : liste des règles associées - - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette + - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette fonction est exécutée lors des phases d'initialisation de l'étape associée. - - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre + - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement. Si niveau vaut None, l'opérateur est rangé au niveau global. - - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit + - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit des entités de définition pour les mots-clés : FACT, BLOC, SIMP. Cet attribut est initialisé avec args, c'est à dire les arguments d'appel restants. @@ -131,7 +131,8 @@ class OPER(N_ENTITE.ENTITE): def make_objet(self,mc_list='oui'): """ Cette méthode crée l'objet ETAPE dont la définition est self sans - l'enregistrer ni créer sa sdprod. + l'enregistrer ni créer sa sdprod. + Si l'argument mc_list vaut 'oui', elle déclenche en plus la construction des objets MCxxx. """ diff --git a/Noyau/N_PROC.py b/Noyau/N_PROC.py index b4d1f5ef..16f1b45d 100644 --- a/Noyau/N_PROC.py +++ b/Noyau/N_PROC.py @@ -37,42 +37,42 @@ class PROC(N_ENTITE.ENTITE): Cette classe a deux attributs de classe - - class_instance qui indique la classe qui devra etre utilisée + - class_instance qui indique la classe qui devra etre utilisée pour créer l'objet qui servira à controler la conformité d'un opérateur avec sa définition - - label qui indique la nature de l'objet de définition (ici, PROC) + - label qui indique la nature de l'objet de définition (ici, PROC) et les attributs d'instance suivants : - - nom : son nom + - nom : son nom - - op : le numéro d'opérateur + - op : le numéro d'opérateur - - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur + - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur réentrant peut modifier un concept d'entrée et le produire comme concept de sortie - - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur + - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort de l'objet gérant le contexte d'exécution de vérifier cette contrainte. - - fr : commentaire associé en francais + - fr : commentaire associé en francais - - ang : commentaire associé en anglais + - ang : commentaire associé en anglais - - docu : clé de documentation associée + - docu : clé de documentation associée - - regles : liste des règles associées + - regles : liste des règles associées - - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette + - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette fonction est exécutée lors des phases d'initialisation de l'étape associée. - - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre + - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement. Si niveau vaut None, l'opérateur est rangé au niveau global. - - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit + - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit des entités de définition pour les mots-clés : FACT, BLOC, SIMP. Cet attribut est initialisé avec args, c'est à dire les arguments d'appel restants. @@ -123,7 +123,8 @@ class PROC(N_ENTITE.ENTITE): def make_objet(self,mc_list='oui'): """ Cette méthode crée l'objet PROC_ETAPE dont la définition est self sans - l'enregistrer ni créer sa sdprod. + l'enregistrer ni créer sa sdprod. + Si l'argument mc_list vaut 'oui', elle déclenche en plus la construction des objets MCxxx. """ diff --git a/Noyau/N_REGLE.py b/Noyau/N_REGLE.py index e60faa51..ccb72c94 100644 --- a/Noyau/N_REGLE.py +++ b/Noyau/N_REGLE.py @@ -34,10 +34,10 @@ Exemple :: - # Création de l'objet règle UNPARMI - r=UNPARMI("INFO","AFFE") - # Vérification de la règle r sur le dictionnaire passé en argument - r.verif({"INFO":v1,"AFFE":v2) + # Création de l'objet règle UNPARMI + r=UNPARMI("INFO","AFFE") + # Vérification de la règle r sur le dictionnaire passé en argument + r.verif({"INFO":v1,"AFFE":v2) """ import types @@ -57,7 +57,7 @@ class REGLE: et le deuxième un entier. L'entier peut valoir 0 ou 1. -- s'il vaut 1, la règle est vérifiée - s'il vaut 0, la règle n'est pas vérifiée et le texte joint contient + s'il vaut 0, la règle n'est pas vérifiée et le texte joint contient un commentaire de la non validité. """ raise "NotImplemented : class REGLE should be derived" diff --git a/Noyau/N_SENSIBILITE.py b/Noyau/N_SENSIBILITE.py index 3501df17..96b731ea 100644 --- a/Noyau/N_SENSIBILITE.py +++ b/Noyau/N_SENSIBILITE.py @@ -1,4 +1,4 @@ -#@ MODIF N_SENSIBILITE Noyau DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF N_SENSIBILITE Noyau DATE 21/11/2006 AUTEUR COURTOIS M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -36,9 +36,11 @@ class CONCEPT_SENSIBLE(REGLE): """ def __init__(self, mode, mocle='SENSIBILITE'): """Constructeur. + mode : manière dont la commande rempli le concept - 'ENSEMBLE' : concept nominal ET dérivées en une seule passe - 'SEPARE' : concept nominal OU dérivée (une ou plusieurs) + - 'ENSEMBLE' : concept nominal ET dérivées en une seule passe + - 'SEPARE' : concept nominal OU dérivée (une ou plusieurs) + mocle : mot-clé contenant les paramètres sensibles. """ REGLE.__init__(self) @@ -162,8 +164,8 @@ class DERIVABLE(REGLE): l_ps = obj["SENSIBILITE"] for co in concept: if co is None: - text="Pas de sensibilité sur objet None" - return text,0 + text = "Concept non défini (None) sous le mot-clé %s" % self.mocle + return text, 0 if not l_ps: # pas de sensibilité if hasattr(co,"sensi") and not co.sensi.get('nominal'): diff --git a/Noyau/N_SIMP.py b/Noyau/N_SIMP.py index 70720181..31a4b285 100644 --- a/Noyau/N_SIMP.py +++ b/Noyau/N_SIMP.py @@ -36,11 +36,11 @@ class SIMP(N_ENTITE.ENTITE): Cette classe a deux attributs de classe - - class_instance qui indique la classe qui devra etre utilisée + - class_instance qui indique la classe qui devra etre utilisée pour créer l'objet qui servira à controler la conformité d'un mot-clé simple avec sa définition - - label qui indique la nature de l'objet de définition (ici, SIMP) + - label qui indique la nature de l'objet de définition (ici, SIMP) """ class_instance = N_MCSIMP.MCSIMP @@ -53,31 +53,31 @@ class SIMP(N_ENTITE.ENTITE): """ Un mot-clé simple est caractérisé par les attributs suivants : - - type : cet attribut est obligatoire et indique le type de valeur attendue + - type : cet attribut est obligatoire et indique le type de valeur attendue - - fr : + - fr : - - ang : + - ang : - - statut : + - statut : - - into : + - into : - - defaut : + - defaut : - - min + - min - - max + - max - - homo + - homo - - position + - position - - val_min + - val_min - - val_max + - val_max - - docu + - docu """ N_ENTITE.ENTITE.__init__(self,validators) # Initialisation des attributs diff --git a/Noyau/N_VALIDATOR.py b/Noyau/N_VALIDATOR.py index 8781509e..7f767565 100644 --- a/Noyau/N_VALIDATOR.py +++ b/Noyau/N_VALIDATOR.py @@ -1,21 +1,21 @@ -#@ MODIF N_VALIDATOR Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND +#@ MODIF N_VALIDATOR Noyau DATE 13/02/2007 AUTEUR PELLET J.PELLET # -*- 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. # ====================================================================== """ @@ -25,6 +25,7 @@ import types import string import traceback +from N_ASSD import ASSD class ValError(Exception):pass @@ -123,9 +124,9 @@ class TypeProtocol(PProtocol): if type(obj)==types.StringType:return obj elif type_permis == 'shell': if type(obj)==types.StringType:return obj - elif type(type_permis) == types.ClassType: + elif type(type_permis) == types.ClassType or isinstance(type_permis,type): if self.is_object_from(obj,type_permis):return obj - elif type(type_permis) == types.InstanceType: + elif type(type_permis) == types.InstanceType or isinstance(type_permis,object): try: if type_permis.__convert__(obj) : return obj except: @@ -170,7 +171,7 @@ class TypeProtocol(PProtocol): except: return 0 # On accepte les instances de la classe et des classes derivees - return type(objet) == types.InstanceType and isinstance(objet,classe) + return isinstance(objet,classe) reelProto=TypeProtocol("reel",typ=('R',)) @@ -226,8 +227,8 @@ class MinStr: class Valid(PProtocol): """ Cette classe est la classe mere des validateurs Accas - Elle doit etre derivee - Elle presente la signature des methodes indispensables pour son bon + Elle doit etre derivee + Elle presente la signature des methodes indispensables pour son bon fonctionnement et dans certains cas leur comportement par défaut. @ivar cata_info: raison de la validite ou de l'invalidite du validateur meme @@ -243,11 +244,11 @@ class Valid(PProtocol): la validation demandée par le validateur. Elle est utilisée pour produire le compte-rendu de validité du mot clé associé. """ - return "valeur valide" + return "valeur valide" def aide(self): """ - Cette methode retourne une chaine de caractère qui permet + Cette methode retourne une chaine de caractère qui permet de construire un message d'aide en ligne. En général, le message retourné est le meme que celui retourné par la méthode info. @@ -286,7 +287,7 @@ class Valid(PProtocol): @return: indicateur de validite 1 (valide) ou 0 (invalide) """ raise "Must be implemented" - + def verif_item(self,valeur): """ La methode verif du validateur effectue une validation complete de @@ -405,7 +406,7 @@ class ListVal(Valid): def verif(self,valeur): """ Méthode verif pour les validateurs de listes. Cette méthode - fait appel à la méthode verif_item sur chaque élément de la + fait appel à la méthode verif_item sur chaque élément de la liste. Si valeur est un paramètre, on utilise sa valeur effective valeur.valeur. """ @@ -713,8 +714,8 @@ class OrVal(Valid): qu'on considère que leur union propose un choix. Tous les choix proposés par les validateurs sont réunis (opérateur d'union). Exemple : Enum(1,2,3) OU entier pair, ne propose pas de choix - En revanche, Enum(1,2,3) OU Enum(4,5,6) propose un - choix (1,2,3,4,5,6) + En revanche, Enum(1,2,3) OU Enum(4,5,6) propose un + choix (1,2,3,4,5,6) """ validator_into=[] for validator in self.validators: @@ -869,7 +870,7 @@ class AndVal(Valid): return into_courant def do_liste(validators): - """ + """ Convertit une arborescence de validateurs en OrVal ou AndVal validators est une liste de validateurs ou de listes ou de tuples """ @@ -901,7 +902,7 @@ class RangeVal(ListVal): """ Exemple de classe validateur : verification qu'une valeur est dans un intervalle. - Pour une liste on verifie que tous les elements sont + Pour une liste on verifie que tous les elements sont dans l'intervalle Susceptible de remplacer les attributs "vale_min" "vale_max" dans les catalogues @@ -939,7 +940,7 @@ class CardVal(Valid): """ def __init__(self,min='**',max='**'): self.min=min - self.max=max + self.max=max self.cata_info="%s doit etre inferieur a %s" % (min,max) def info(self): @@ -1025,7 +1026,7 @@ class PairVal(ListVal): return valeur def verif_item(self,valeur): - if type(valeur) == types.InstanceType: + if type(valeur) not in (int,long): return 0 return valeur % 2 == 0 @@ -1091,7 +1092,7 @@ def ImpairVal(valeur): return 1 ImpairVal.info="valeur impaire" - + class F1Val(Valid): """ Exemple de validateur @@ -1133,6 +1134,7 @@ class FunctionVal(Valid): def verif(self,valeur): return self.function(valeur) +#MC ca ne devrait plus servir ! CoercableFuncs = { types.IntType: int, types.LongType: long, types.FloatType: float, @@ -1145,8 +1147,12 @@ class TypeVal(ListVal): Cette classe est un validateur qui controle qu'une valeur est bien du type Python attendu. Pour une liste on verifie que tous les elements sont du bon type. + Semblable a InstanceVal mais ici on fait le test par tentative de conversion + alors qu'avec InstanceVal on ne teste que si isinstance est vrai. """ def __init__(self, aType): + #Si aType n'est pas un type, on le retrouve a l'aide de la fonction type + #type(1) == int;type(0.2)==float;etc. if type(aType) != types.TypeType: aType=type(aType) self.aType=aType @@ -1181,8 +1187,23 @@ class InstanceVal(ListVal): Pour une liste on verifie chaque element de la liste """ def __init__(self,aClass): + #Si aClass est une classe on la memorise dans self.aClass + #sinon c'est une instance dont on memorise la classe if type(aClass) == types.InstanceType: + #instance ancienne mode aClass=aClass.__class__ + elif type(aClass) == types.ClassType: + #classe ancienne mode + aClass=aClass + elif type(aClass) == type: + #classe nouvelle mode + aClass=aClass + elif isinstance(aClass,object): + #instance nouvelle mode + aClass=type(aClass) + else: + raise ValError("type non supporte") + self.aClass=aClass def info(self): diff --git a/Noyau/N_utils.py b/Noyau/N_utils.py index 6c5b45b9..8535af5b 100644 --- a/Noyau/N_utils.py +++ b/Noyau/N_utils.py @@ -1,4 +1,4 @@ -#@ MODIF N_utils Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF N_utils Noyau DATE 13/02/2007 AUTEUR PELLET J.PELLET # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -26,11 +26,11 @@ """ # Modules Python -import sys,types -import string +import sys # Modules EFICAS from N_Exception import AsException +from N_ASSD import ASSD SEP='_' @@ -71,11 +71,11 @@ def AsType(a): Retourne le type d'un concept (a) à partir des caractéristiques de l'objet Python """ - if type(a) in (types.TupleType,types.ListType):return AsType(a[0]) - if type(a) == types.InstanceType:return a.__class__ - if type(a) == types.FloatType:return "R" - if type(a) == types.IntType:return "I" - if type(a) == types.StringType:return "TXM" + if type(a) in (tuple, list):return AsType(a[0]) + if isinstance(a, ASSD):return type(a) + if type(a) == float:return "R" + if type(a) == int:return "I" + if type(a) == str:return "TXM" if a == None : return None print 'a=',a,type(a) raise AsException("type inconnu") @@ -92,23 +92,23 @@ def repr_float(valeur): 5 caractères NB : valeur est un réel au format Python ou une chaine de caractères représentant un réel """ - if type(valeur) == types.StringType : valeur = eval(valeur) + if type(valeur) == str : valeur = eval(valeur) if valeur == 0. : return '0.0' if abs(valeur) > 1. : if abs(valeur) < 10000. : return repr(valeur) else : if abs(valeur) > 0.01 : return repr(valeur) t=repr(valeur) - if string.find(t,'e') != -1 or string.find(t,'E') != -1 : + if t.find('e') != -1 or t.find('E') != -1 : # le réel est déjà sous forme mantisse exposant ! # --> on remplace e par E - t=string.replace(t,'e','E') + t=t.replace('e','E') # --> on doit encore vérifier que la mantisse contient bien un '.' - if string.find(t,'.')!= -1: + if t.find('.')!= -1: return t else: # -->il faut rajouter le point avant le E - t=string.replace(t,'E','.E') + t=t.replace('E','.E') return t s='' neg = 0 @@ -116,12 +116,12 @@ def repr_float(valeur): s=s+t[0] t=t[1:] cpt = 0 - if string.atof(t[0]) == 0.: + if t[0].atof() == 0.: # réel plus petit que 1 neg = 1 t=t[2:] cpt=1 - while string.atof(t[0]) == 0. : + while t[0].atof() == 0. : cpt = cpt+1 t=t[1:] s=s+t[0]+'.' @@ -130,8 +130,8 @@ def repr_float(valeur): else: # réel plus grand que 1 s=s+t[0]+'.' - if string.atof(t[1:]) == 0.: - l=string.split(t[1:],'.') + if t[1:].atof() == 0.: + l=t[1:].split('.') cpt = len(l[0]) else: r=0 @@ -143,7 +143,7 @@ def repr_float(valeur): s=s+c else: pt = 1 - if r+1 == len(t) or string.atof(t[r+1:]) == 0.:break + if r+1 == len(t) or t[r+1:].atof() == 0.:break s=s+'E'+neg*'-'+repr(cpt) return s diff --git a/Noyau/nommage.py b/Noyau/nommage.py index c9d37a4a..a28170fe 100644 --- a/Noyau/nommage.py +++ b/Noyau/nommage.py @@ -44,6 +44,8 @@ import linecache import N_utils regex1='=?\s*%s\s*\(' +#commentaire standard precede d'un nombre quelconque de blancs (pas multiligne) +pattern_comment = re.compile(r"^\s*#.*") def GetNomConceptResultat(ope): """ @@ -69,15 +71,18 @@ def GetNomConceptResultat(ope): filename = co.co_filename name = co.co_name #print "NOMOP,FICHIER, LIGNE ",ope,filename,lineno - line = linecache.getline(filename, lineno) - if not line: line = None + #pattern pour identifier le debut de la commande + pattern_oper=re.compile(regex1 % ope) list=[] - list.append(line) while lineno > 0: + line = linecache.getline(filename, lineno) + lineno=lineno-1 + if pattern_comment.match(line):continue #print "LIGNE ",line - if re.search(regex1 % ope,line): - l=re.split(regex1 % ope,line) + list.append(line) + if pattern_oper.search(line): + l=pattern_oper.split(line) list.reverse() #print "COMMANDE ",string.join(list) #print "SPLIT ",l @@ -87,9 +92,6 @@ def GetNomConceptResultat(ope): #print "NOMS ",m if m!=[] : return m[-1] else : return '' - lineno=lineno-1 - line = linecache.getline(filename, lineno) - list.append(line) #print "appel inconnu" return "" @@ -97,9 +99,9 @@ def evalnom(text,d): """ Retourne un nom pour le concept resultat identifie par text Pour obtenir ce nom il y a plusieurs possibilites : - 1-text est un identificateur python c est le nom du concept - 2-text est un element d une liste on construit le nom en - evaluant la partie indice dans le contexte de l appelant d + 1. text est un identificateur python c'est le nom du concept + 2. text est un element d'une liste on construit le nom en + evaluant la partie indice dans le contexte de l'appelant d """ l=re.split('([\[\]]+)',text) #print l diff --git a/Sdbase/__init__.py b/Sdbase/__init__.py new file mode 100644 index 00000000..9c2d49df --- /dev/null +++ b/Sdbase/__init__.py @@ -0,0 +1,3 @@ + +import asojb +from asojb import AsBase diff --git a/Sdbase/ascheckers.py b/Sdbase/ascheckers.py new file mode 100644 index 00000000..fc6a9b4d --- /dev/null +++ b/Sdbase/ascheckers.py @@ -0,0 +1,70 @@ +#@ MODIF ascheckers 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. +# ====================================================================== + +class Parmi(object): + """Classe qui exprime une contrainte multiple pour un attribut""" + def __init__(self, *args): + self.values = list(args) + + def add_value(self, value ): + if value not in self.values: + self.values.append( value ) + + def __call__(self, obj, name, value, log ): + if value not in self.values: + log.err( obj, "l'attribut %s=%r n'est pas dans %r" % (name, value, self.values) ) + + def __repr__(self): + l = [ "Parmi(", ] + g = [ repr(v) for v in self.values ] + l.append( ", ".join(g) ) + l.append( ")" ) + return "".join( l ) + +class CheckLog(object): + """Un validateur qui enregistre toutes + les erreurs trouvées""" + def __init__(self): + self.msg = [] + self.names = {} + self.optional = False + + def log(self, level, obj, msg ): + self.msg.append( (level, obj.nomj(), msg) ) + + def err(self, obj, msg ): + self.log( 0, obj, msg ) + + def warn(self, obj, msg ): + self.log( 1, obj, msg ) + + def visit(self, obj ): + self.names[obj.nomj()] = 1 + + def __str__(self): + d = { 0: "E", 1:"W" } + return "\n".join( [ "%s:%s: %s" % (d[l],n,m) + for l,n,m in self.msg ]) + +class CheckFail(CheckLog): + """Un validateur qui lève une exception + dès la première erreur""" + def err(self, obj, msg ): + raise AssertionError("%s: %s" % (obj.nomj(), msg) ) diff --git a/Sdbase/asnom.py b/Sdbase/asnom.py new file mode 100644 index 00000000..89a541b8 --- /dev/null +++ b/Sdbase/asnom.py @@ -0,0 +1,133 @@ +#@ MODIF asnom 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. +# ====================================================================== + +""" +Description des types de base aster + +version 2 - réécrite pour essayer de simplifier +le problème des instances/types et instances/instances + +le type de base ASBase permet de représenter une structure +de donnée. Une instance de ASBase comme attribut d'une classe +dérivée de ASBase représente une sous-structure nommée. + +une instance de ASBase 'libre' représente une instance de la +structure de donnée complète. + +c'est ce comportement qui est capturé dans la classe StructType +""" + +from basetype import Type + +class SDNom(Type): + """Objet représentant une sous-partie de nom + d'objet jeveux""" + nomj = None + debut = None + fin = None + just = None + justtype = None + + def __init__(self, nomj=None, debut=None, fin=None, just='l', **kwargs ): + """ + Configure un objet nom + nomj : la partie du nom fixée (par ex .TITR) ou '' si non précisée + debut, fin : la partie du K24 concernée + just : la justification a droite ou a gauche ('l' ou 'r') + kwargs : inutilisé, juste par simplicité + + Note: + On utilise cet objet comme attribut d'instance ou de classe. + En attribut de classe pour les noms de structure, cela permet + de définir la position du nom d'objet dans le nom jeveux, l'attribut + nom est alors la valeur du suffixe pour une sous-structure ou None pour + une structure principale. + """ + super( SDNom, self ).__init__( nomj=nomj, debut=debut, fin=fin, just=just, **kwargs ) + self.update( (nomj, debut, fin, just) ) + + def __call__(self): + if self._parent is None or self._parent._parent is None: + debut = self.debut or 0 + prefix = ' '*debut + else: + # normalement + # assert self._parent.nomj is self + nomparent = self._parent._parent.nomj + prefix = nomparent() + debut = self.debut or nomparent.fin or len(prefix) + fin = self.fin or 24 + nomj = self.nomj or '' + nomj = self.just( nomj, fin-debut ) + prefix = prefix.ljust(24) + res = prefix[:debut]+nomj+prefix[fin:] + return res[:24] + + def fcata(self): + return self.just(self.nomj,self.fin-self.debut).replace(' ','?') + + def __repr__(self): + return "" % (self.nomj,self.debut,self.fin) + + # On utilise pickle pour les copies, et pickle ne sait pas gérer la + # sauvegarde de str.ljust ou str.rjust (c'est une méthode non liée) + + def __getstate__(self): + return (self.nomj, self.debut, self.fin, self.justtype ) + + def __setstate__( self, (nomj,debut,fin,just) ): + self.nomj = nomj + self.debut = debut + self.fin = fin + if just=='l' or just is None: + self.just = str.ljust + elif just=='r': + self.just = str.rjust + else: + raise ValueError("Justification '%s' invalide" % just ) + self.justtype = just + + + def update( self, (nomj,debut,fin,just) ): + if nomj is not None: + self.nomj = nomj + if self.debut is None: + self.debut = debut + if self.fin is None: + self.fin = fin + if self.justtype is None and just is not None: + if just=='l': + self.just = str.ljust + elif just=='r': + self.just = str.rjust + else: + raise ValueError("Justification '%s' invalide" % just ) + self.justtype = just + + def reparent( self, parent, new_name ): + self._parent = parent + self._name = new_name + for nam in self._subtypes: + obj = getattr( self, nam ) + obj.reparent( self, nam ) + if self.nomj is None and self._parent._name is not None: + self.nomj = "." + self._parent._name + + diff --git a/Sdbase/asojb.py b/Sdbase/asojb.py new file mode 100644 index 00000000..9e3c9e70 --- /dev/null +++ b/Sdbase/asojb.py @@ -0,0 +1,304 @@ +#@ MODIF asojb 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. +# ====================================================================== + +""" + Description des OJB jeveux +""" +from basetype import Type, MetaType +from asnom import SDNom +from ascheckers import CheckLog + +# pour utilisation dans eficas +try: + import aster +except: + pass + +# ----------------------------------------------------------------------------- +class AsBase(Type): + nomj = SDNom() + optional = False + + def __init__(self, nomj=None, *args, **kwargs ): + super(AsBase,self).__init__( nomj, *args, **kwargs ) + assert self.nomj is not self.__class__.nomj + if isinstance( nomj, str ): + self.nomj.nomj = nomj + elif isinstance( nomj, SDNom ): + self.nomj.update( nomj.__getstate__() ) + + def set_name(self, nomj): + """Positionne le nomj de self + """ + assert isinstance( self.nomj.nomj, str ), "uniquement pour les concepts" + self.nomj.nomj = nomj + + def check(self, checker=None): + if checker is None: + checker = CheckLog() + + # vérifie les enfants : + optional = checker.optional + checker.optional = checker.optional or self.optional + for name in self._subtypes: + v = getattr(self, name) + if isinstance( v, (OJB,AsBase) ): + v.check(checker) + for name in dir(self): + if name.startswith( 'check_' ): + v = getattr(self, name) + if callable(v): + v( checker ) + + checker.optional = optional + return checker + + def members( self ): + pass + + def dump(self, indent=""): + import pydoc + l = [] + checkers = [] + nomj = self.nomj() + if self.optional: + f = "(f)" + else: + f = "(o)" + l.append( f+" "+nomj ) + #l.append( '-'*(len(nomj)+3) ) + for name in self._subtypes: + obj = getattr(self, name) + if isinstance(obj,(AsBase,OJB)): + l.append( obj.dump(indent) ) + for name in dir(self): + if name.startswith( 'check_' ): + obj = getattr(self, name) + if callable(obj) and name.startswith("check_"): + checkers.append( obj ) + + indent = " "*len(nomj) + for checker in checkers: + doc = pydoc.text.document( checker ) + for line in doc.splitlines(): + l.append( indent + line ) + return "\n".join( l ) + + def __repr__(self): + return "<%s(%x,%r)>" % (self.__class__.__name__, id(self), self.nomj() ) + + +# ----------------------------------------------------------------------------- +class JeveuxAttr(object): + """Un attribut jeveux""" + def __init__(self, name): + self.name = name + + def __get__(self, obj, klass): + raise NotImplementedError + + def check(self, attrname, obj, log ): + checker = getattr(obj, "_"+attrname, None ) + if checker is None: + return True + val = self.__get__( obj, obj.__class__ ) + if callable( checker ): + return checker( obj, attrname, val, log ) + else: + test = val == checker + if not test: + log.err( obj, "Attribut incorrect %s %r!=%r" % (self.name, val, checker ) ) + return test + +# ----------------------------------------------------------------------------- +class JeveuxExists(JeveuxAttr): + def __init__(self): + pass + + def __get__(self, obj, klass): + if obj is None: + return self + nomj = obj.nomj() + if len(nomj)!=24: + raise AssertionError(repr(nomj)) + return aster.jeveux_exists( nomj.ljust(24) ) + +# ----------------------------------------------------------------------------- +class JeveuxIntAttr(JeveuxAttr): + def __get__(self, obj, klass): + if obj is None: + return self + return aster.jeveux_getattr( obj.nomj(), self.name )[0] + +# ----------------------------------------------------------------------------- +class JeveuxStrAttr(JeveuxAttr): + def __get__(self, obj, klass): + if obj is None: + return self + return aster.jeveux_getattr( obj.nomj(), self.name )[1].strip() + +# ----------------------------------------------------------------------------- +class OJB(AsBase): + _clas = None + _genr = None + _type = None + _ltyp = None + _xous = None + _docu = None + _exists = True + + clas = JeveuxStrAttr("CLAS") + genr = JeveuxStrAttr("GENR") + type = JeveuxStrAttr("TYPE") + ltyp = JeveuxIntAttr("LTYP") + xous = JeveuxStrAttr("XOUS") + docu = JeveuxStrAttr("DOCU") + exists = JeveuxExists() + #optional = False + nomj = SDNom() + + def __init__(self, nomj=None, **attrs): + super(OJB,self).__init__( nomj, **attrs ) + self.foreachattr( self.setattribute, attrs ) + self.optional = attrs.get('optional', False) + + def setattribute( self, name, prop, attrs ): + _name = "_"+name + if name in attrs: + setattr( self, _name, attrs[name] ) + + def get(self): + nomj = self.nomj() + if aster.jeveux_exists( nomj ): + obj_simple = aster.jeveux_getattr( nomj, 'XOUS')[1].strip() == 'S' + if obj_simple : + return aster.getvectjev( nomj ) + else : + return aster.getcolljev( nomj ) + else: + return None + + def get_stripped(self): + """Fonction utilitaire, renvoie une liste de chaines 'strippées'""" + data = self.get() + if data is not None: + return [ x.strip() for x in self.get() ] + else: + return [] + + def foreachattr(self, callable, *args, **kwargs): + klass = self.__class__ + for k in dir(klass): + v = getattr( klass, k ) + if isinstance(v, JeveuxAttr): + callable( k, v, *args, **kwargs ) + + def check(self, checker=None): + if checker is None: + checker = CheckLog() + # l'objet a déjà été vérifié, on ne fait rien + if self.nomj() in checker.names.keys(): + return checker + checker.visit( self ) + if self.exists: + self.foreachattr( lambda k,v,obj,c: v.check(k, obj, c), + self, checker ) + else: + if not self.optional and not checker.optional : + checker.err( self, "n'existe pas (%r)" %self._parent ) + return checker + + def tous_compris(self, checker, vmin=None, vmax=None): + # Vérifie que toutes les valeurs du vecteur sont comprises entre vmin et vmax + # Les bornes vmin et vmax sont autorisées + assert vmin or vmax, 'Il faut fournir au moins une des valeurs vmin ou vmax' + vect = self.get() + if not vect : return + ier = 0 + for v in vect : + if vmin and v < vmin : ier = 1 + if vmax and v > vmax : ier = 1 + if ier == 1 : checker.err( self, "L'objet doit contenir des valeurs dans l'intervalle : %s %s " % (vmin,vmax)) + + def dump(self, indent=""): + if self.optional: + f = "(f)" + else: + f = "(o)" + return f +" "+ self.nomj() +" "+ str(self.exists) + +# ----------------------------------------------------------------------------- +def Facultatif( ojb ): + ojb.optional = True + return ojb + +# ----------------------------------------------------------------------------- +class OJBVect(OJB): + lonmax = JeveuxIntAttr("LONMAX") + lonuti = JeveuxIntAttr("LONUTI") + +# ----------------------------------------------------------------------------- +class OJBCollec(OJB): + stockage = JeveuxStrAttr("STOCKAGE") + nutioc = JeveuxIntAttr( "NUTIOC" ) + acces = JeveuxStrAttr( "ACCES" ) + modelong = JeveuxStrAttr( "MODELONG" ) + nmaxoc = JeveuxIntAttr( "NMAXOC" ) + +# ----------------------------------------------------------------------------- +class AsVI(OJBVect): + _type = "I" + +# ----------------------------------------------------------------------------- +class AsVR(OJBVect): + _type = "R" + +# ----------------------------------------------------------------------------- +class AsVC(OJBVect): + _type = "C" + +# ----------------------------------------------------------------------------- +class AsVK8(OJBVect): + _type = "K" + _ltyp = 8 + +# ----------------------------------------------------------------------------- +class AsVK16(OJBVect): + _type = "K" + _ltyp = 16 + +# ----------------------------------------------------------------------------- +class AsVK24(OJBVect): + _type = "K" + _ltyp = 24 + +# ----------------------------------------------------------------------------- +class AsVK32(OJBVect): + _type = "K" + _ltyp = 32 + +# ----------------------------------------------------------------------------- +class AsVK80(OJBVect): + _type = "K" + _ltyp = 80 + +# Pour compatibilite +AsColl = OJBCollec +AsObject = OJB diff --git a/Sdbase/basetype.py b/Sdbase/basetype.py new file mode 100644 index 00000000..050ec233 --- /dev/null +++ b/Sdbase/basetype.py @@ -0,0 +1,156 @@ +#@ MODIF basetype 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. +# ====================================================================== + +""" +Description des types de base aster +----------------------------------- + +version 2 - réécrite pour essayer de simplifier +le problème des instances/types et instances/instances. + +Le type de base `Type` permet de représenter une structure +de donnée. Une instance de `Type` comme attribut d'une classe +dérivée de `Type` représente une sous-structure nommée. + +Une instance de `Type` 'libre' représente une instance de la +structure de donnée complète. + +C'est ce comportement qui est capturé dans la classe BaseType + +La classe `Type` hérite de BaseType et y associe la métaclasse MetaType. + +""" +from copy import copy,deepcopy +import cPickle + +__docformat__ = "restructuredtext" + + + + +class MetaType(type): + """Métaclasse d'un type représentant une structure de données. + Les méthodes spéciales __new__ et __call__ sont réimplémentées + """ + def __new__( mcs, name, bases, classdict ): + """Création d'une nouvelle 'classe' dérivant de Type. + + Cette méthode permet de calculer certains attributs automatiquement: + + - L'attribut _subtypes qui contient la liste des sous-structures + de type 'Type' attributs (directs ou hérités) de cette classe. + + Pour chaque attribut de classe héritant de Type, on recrée une nouvelle + instance des attributs hérités pour pouvoir maintenir une structure de + parentée entre l'attribut de classe et sa nouvelle classe. + + L'effet obtenu est que tous les attributs de classe ou des classes parentes + de cette classe sont des attributs associés à la classe feuille. Ces attributs + ont eux-meme un attribut parent qui pointe sur la classe qui les contient. + """ + new_cls = type.__new__( mcs, name, bases, classdict ) + new_cls._subtypes = [] + for b in bases: + if hasattr(b,'_subtypes'): + new_cls._subtypes += b._subtypes + # affecte la classe comme parent des attributs de classe + # et donne l'occasion aux attributs de se renommer à partir + # du nom utilisé. + for k, v in classdict.items(): + if not isinstance( v, BaseType ): + continue + v.reparent( new_cls, k ) + new_cls._subtypes.append( k ) + return new_cls + + def dup_attr(cls, inst): + """Duplique les attributs de la classe `cls` pour qu'ils deviennent + des attributs de l'instance `inst`. + """ + # reinstantiate and reparent subtypes + for nam in cls._subtypes: + obj = getattr( cls, nam ) + # permet de dupliquer completement l'instance + cpy = cPickle.dumps(obj) + newobj = cPickle.loads( cpy ) + newobj.reparent( inst, None ) + setattr( inst, nam, newobj ) + + def __call__(cls, *args, **kwargs): + """Instanciation d'un Type structuré. + Lors de l'instanciation on effectue un travail similaire à la + création de classe: Les attributs sont re-parentés à l'instance + et réinstanciés pour obtenir une instanciation de toute la structure + et de ses sous-structures. + + Les attributs de classe deviennent des attributs d'instance. + """ + inst = cls.__new__(cls, *args, **kwargs) + # reinstantiate and reparent subtypes + cls.dup_attr( inst ) + type(inst).__init__(inst, *args, **kwargs) + return inst + + def mymethod(cls): + pass + + +class BaseType(object): + # Le parent de la structure pour les sous-structures + _parent = None + _name = None + + def __init__(self, *args, **kwargs): + self._initargs = args + self._initkwargs = kwargs + self._name = None + self._parent = None + + def reparent( self, parent, new_name ): + self._parent = parent + self._name = new_name + for nam in self._subtypes: + obj = getattr( self, nam ) + obj.reparent( self, nam ) + + def base( self ): + if self._parent is None: + return self + return self._parent.base() + + def change_type(self, new_type, nomj=None): + """Méthode appelée quand on change a posteriori le type + du concept (pour les 'CO'). + Si `nomj` est None, on prend `self.nom`. + """ + self.__class__ = new_type + nomj = nomj or self.nom + new_type.dup_attr(self) + + # Comment appeler AsBase.__init__ ? + # type(nomj)=str donc plus simple que dans AsBase.__init__... + assert isinstance(nomj, str), 'Valeur inattendue pour nomj : %s' % nomj + assert self.nomj is not self.__class__.nomj + self.nomj.nomj = nomj + + +class Type(BaseType): + __metaclass__ = MetaType + diff --git a/Tests/config.py b/Tests/config.py index b6edf378..f6f6fb00 100644 --- a/Tests/config.py +++ b/Tests/config.py @@ -1,5 +1,8 @@ import sys import prefs -#ASTERDIR="/local/chris/ASTER/instals/STA8.2/astest" -ASTERDIR="/local/chris/ASTER/instals/astests/V8.3.21" +ASTERDIR={ + "v7":"/local/chris/ASTER/instals/STA7/astest", + "v8":"/local/chris/ASTER/instals/STA8/astest", + "v9":"/local/chris/ASTER/instals/NEW9/astest", + } diff --git a/Tests/editeur.ini b/Tests/editeur.ini index 4f495120..92b7360f 100644 --- a/Tests/editeur.ini +++ b/Tests/editeur.ini @@ -48,6 +48,8 @@ catalogues = ( ('ASTER','v7.7',os.path.join(rep_cata,'cataSTA7'),'python'), ('ASTER','v7',os.path.join(rep_cata,'cataSTA7'),'python'), ('ASTER','v8.4',os.path.join(rep_cata,'cataSTA8'),'python'), - ('ASTER','v8',os.path.join(rep_cata,'cataSTA8'),'python','defaut'), + ('ASTER','v8',os.path.join(rep_cata,'cataSTA8'),'python'), + ('ASTER','v9.1',os.path.join(rep_cata,'cataSTA9'),'python'), + ('ASTER','v9',os.path.join(rep_cata,'cataSTA9'),'python','defaut'), ) diff --git a/Tests/testastest/basetest.py b/Tests/testastest/basetest.py index a8f2a068..9c58b1ff 100644 --- a/Tests/testastest/basetest.py +++ b/Tests/testastest/basetest.py @@ -6,6 +6,8 @@ from Editeur import appli from config import ASTERDIR +version="v8" + def cdiff(text1,text2): return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1))) @@ -15,14 +17,14 @@ def make_tests(files): def setUp(self): if self.app == None: - self.app=appli.STANDALONE(version='v8') + self.app=appli.STANDALONE(version=version) pass def tearDown(self): CONTEXT.unset_current_step() i=0 - for f in glob.glob(os.path.join(ASTERDIR,files)): + for f in glob.glob(os.path.join(ASTERDIR[version],files)): ff=open(f) text=ff.read() ff.close() diff --git a/Tests/testastest9/basetest.py b/Tests/testastest9/basetest.py new file mode 100644 index 00000000..05d94bc8 --- /dev/null +++ b/Tests/testastest9/basetest.py @@ -0,0 +1,69 @@ +import os,glob,sys +import unittest +import difflib + +from Editeur import appli + +from config import ASTERDIR + +version="v9" + +def cdiff(text1,text2): + return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1))) + +def make_tests(files): + class TestCase(unittest.TestCase): + app=None + + def setUp(self): + if self.app == None: + self.app=appli.STANDALONE(version=version) + pass + + def tearDown(self): + CONTEXT.unset_current_step() + + i=0 + for f in glob.glob(os.path.join(ASTERDIR[version],files)): + ff=open(f) + text=ff.read() + ff.close() + if text.find("VISU_EFICAS='NON'") != -1:continue + for o in ('3','2','1','0','m'): + f=f[:-1]+o + if os.path.isfile(f):break + i=i+1 + name=os.path.splitext(os.path.basename(f))[0] + + exec """def test_%s(self,file="%s"): + "fichier:%s" + self.commtest(file) +""" % (name,f,f) + del i,f,ff,text,o,name + + def commtest(self,file): + """ Test generique""" + name=os.path.splitext(os.path.basename(file))[0] + errfile=os.path.join(os.path.dirname(__file__),name+".err") + err="" + if os.path.isfile(errfile): + f=open(errfile) + err=f.read() + f.close() + try: + j=self.app.openJDC(file=file) + if err == "": + assert j.isvalid(),j.report() + else: + txt=str(j.report()) + assert txt == err,cdiff(err,txt) + j.supprime() + assert sys.getrefcount(j) == 2,sys.getrefcount(j) + except ValueError,e: + txt=str(e) + if err == "": + raise + else: + assert txt == err,cdiff(err,txt) + + return TestCase diff --git a/Tests/testastest9/erreu01a.err b/Tests/testastest9/erreu01a.err new file mode 100644 index 00000000..7bdc2e9b --- /dev/null +++ b/Tests/testastest9/erreu01a.err @@ -0,0 +1,4 @@ +Compilation impossible : File "erreu01a.comm", line 44 + UELAS=MECA_STATIQUE(MODELE=MOD, + ^ + SyntaxError: invalid syntax diff --git a/Tests/testastest9/testaster1.py b/Tests/testastest9/testaster1.py new file mode 100644 index 00000000..7aa1d9ed --- /dev/null +++ b/Tests/testastest9/testaster1.py @@ -0,0 +1,5 @@ +import basetest + +files="[a-l]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass diff --git a/Tests/testastest9/testaster10.py b/Tests/testastest9/testaster10.py new file mode 100644 index 00000000..febe8cab --- /dev/null +++ b/Tests/testastest9/testaster10.py @@ -0,0 +1,5 @@ +import basetest + +files="z*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass diff --git a/Tests/testastest9/testaster2.py b/Tests/testastest9/testaster2.py new file mode 100644 index 00000000..72c6892f --- /dev/null +++ b/Tests/testastest9/testaster2.py @@ -0,0 +1,6 @@ +import basetest + +files="[m-r]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass + diff --git a/Tests/testastest9/testaster3.py b/Tests/testastest9/testaster3.py new file mode 100644 index 00000000..230a79c1 --- /dev/null +++ b/Tests/testastest9/testaster3.py @@ -0,0 +1,5 @@ +import basetest + +files="s[a-d]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass diff --git a/Tests/testastest9/testaster4.py b/Tests/testastest9/testaster4.py new file mode 100644 index 00000000..c3217c72 --- /dev/null +++ b/Tests/testastest9/testaster4.py @@ -0,0 +1,5 @@ +import basetest + +files="s[e-r]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass diff --git a/Tests/testastest9/testaster5.py b/Tests/testastest9/testaster5.py new file mode 100644 index 00000000..26851b9b --- /dev/null +++ b/Tests/testastest9/testaster5.py @@ -0,0 +1,5 @@ +import basetest + +files="ssl[a-l]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass diff --git a/Tests/testastest9/testaster6.py b/Tests/testastest9/testaster6.py new file mode 100644 index 00000000..c779a122 --- /dev/null +++ b/Tests/testastest9/testaster6.py @@ -0,0 +1,5 @@ +import basetest + +files="ssl[m-z]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass diff --git a/Tests/testastest9/testaster7.py b/Tests/testastest9/testaster7.py new file mode 100644 index 00000000..99f426c1 --- /dev/null +++ b/Tests/testastest9/testaster7.py @@ -0,0 +1,6 @@ +import basetest + +files="ss[m-z]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass + diff --git a/Tests/testastest9/testaster8.py b/Tests/testastest9/testaster8.py new file mode 100644 index 00000000..04f45616 --- /dev/null +++ b/Tests/testastest9/testaster8.py @@ -0,0 +1,5 @@ +import basetest + +files="s[t-z]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass diff --git a/Tests/testastest9/testaster9.py b/Tests/testastest9/testaster9.py new file mode 100644 index 00000000..4c561729 --- /dev/null +++ b/Tests/testastest9/testaster9.py @@ -0,0 +1,5 @@ +import basetest + +files="[t-y]*.comm" +TestCase=basetest.make_tests(files) +class TestCase(TestCase):pass diff --git a/Tests/testcomm/testcomm.py b/Tests/testcomm/testcomm.py index f0c97101..9474eb0d 100644 --- a/Tests/testcomm/testcomm.py +++ b/Tests/testcomm/testcomm.py @@ -33,7 +33,7 @@ class TestCase(unittest.TestCase): CONTEXT.unset_current_step() i=0 - files="Tests/testcomm/*.comm" + files= os.path.join(os.path.dirname(__file__),"*.comm") for f in glob.glob(os.path.join(prefs.INSTALLDIR,files)): for o in ('3','2','1','0','m'): f=f[:-1]+o diff --git a/Tests/testcomm7/a.11 b/Tests/testcomm7/a.11 new file mode 100644 index 00000000..1723fcb9 --- /dev/null +++ b/Tests/testcomm7/a.11 @@ -0,0 +1 @@ +MM=LIRE_MAILLAGE() diff --git a/Tests/testcomm7/a.com0 b/Tests/testcomm7/a.com0 new file mode 100644 index 00000000..04d1cc20 --- /dev/null +++ b/Tests/testcomm7/a.com0 @@ -0,0 +1,3 @@ +POURSUITE() +MA=LIRE_MAILLAGE(INFO=inf) +FIN() diff --git a/Tests/testcomm7/a.comm b/Tests/testcomm7/a.comm new file mode 100644 index 00000000..665f63fe --- /dev/null +++ b/Tests/testcomm7/a.comm @@ -0,0 +1,5 @@ +DEBUT() +inf=1 +p2=inf+1 +p3=sin(p2) +FIN() diff --git a/Tests/testcomm7/aa.comm b/Tests/testcomm7/aa.comm new file mode 100644 index 00000000..124141b4 --- /dev/null +++ b/Tests/testcomm7/aa.comm @@ -0,0 +1,8 @@ +DEBUT() +inf1=1 +MA=LIRE_MAILLAGE(INFO=inf1) +INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF', + VARIANTE='A', TYPE_VALE='NOMI', + NOM_MATER='MAT3', INFO=1 ) + +FIN() diff --git a/Tests/testcomm7/b.comm b/Tests/testcomm7/b.comm new file mode 100644 index 00000000..478973df --- /dev/null +++ b/Tests/testcomm7/b.comm @@ -0,0 +1,9 @@ +DEBUT() +a=1 +fmt_raison='-'*80+""" + + Exception erreur_Fatale interceptee + Raison : %s + +"""+'-'*80+'\n' +FIN() diff --git a/Tests/testcomm7/c.comm b/Tests/testcomm7/c.comm new file mode 100644 index 00000000..36906c57 --- /dev/null +++ b/Tests/testcomm7/c.comm @@ -0,0 +1,49 @@ +from Numeric import cos +DEBUT() +RAYCRA=1. +EPCRA=0.1 +S_CR=3.1415*(RAYCRA**2-(RAYCRA-EPCRA)**2) +T_CR=3.1415 +NOMF="nomfichier" +n=2 + +MA=LIRE_MAILLAGE( ) + +MO=AFFE_MODELE( MAILLAGE=MA, + #test de validateur GEOM (typ=grma) avec grma derive de GEOM + AFFE=(_F(GROUP_MA = ('LI1'), + PHENOMENE = 'MECANIQUE', + MODELISATION = 'DIS_TR'), + ), + INFO=2,); + +carel=[0.]*78 + +CAREG=AFFE_CARA_ELEM(MODELE=MO, + DISCRET=_F(GROUP_MA=('LI1'), + CARA = 'K_TR_L', + VALE = carel, + REPERE='LOCAL' , ), + ORIENTATION=(_F(GROUP_MA=('LI1',), + CARA='VECT_Y', + VALE=(0.,0.,1.),),), + AFFE_FIBRE =( _F(GROUP_MA='CRAYON', COOR_AXE_POUTRE = (0.,0.,), CARA='SURFACE', VALE=( 0.,S_CR/4,)), + _F(GROUP_MA='CRAYON', COOR_AXE_POUTRE = (0.,0.,), CARA='SURFACE', VALE=( 0.,T_CR,)), + _F(GROUP_MA='CRAYON', COOR_AXE_POUTRE = (0.,sin(n*22.5*pi/180),), CARA='SURFACE', VALE=( 0.,T_CR/4,)), + _F(GROUP_MA='CRAYON', COOR_AXE_POUTRE = (0.,(cos(n*22.5*pi/180)),), CARA='SURFACE', VALE=( 0.,T_CR/4,)), + ), + ); + +DEFI_FICHIER(UNITE=50, FICHIER='./REPE_OUT/zzzz206a_resu.mail') +#test de validateur LongStr avec parametre instance de PARAMETRE +DEFI_FICHIER(UNITE=50, FICHIER=NOMF) +#test de validateur LongStr avec parametre instance de Formula +u=DEFI_FICHIER( FICHIER=NOMF*2) +DEFI_FICHIER (ACTION='LIBERER',UNITE=50) +#test de validateur d'objet entier (typ='I'), instance de la classe entier +DEFI_FICHIER (ACTION='LIBERER',UNITE=u) + +# test de validateur qui accepte tout (typ=assd) +IMPR_CO(CO=MA) + +FIN() diff --git a/Tests/testcomm7/d.comm b/Tests/testcomm7/d.comm new file mode 100644 index 00000000..06bd2405 --- /dev/null +++ b/Tests/testcomm7/d.comm @@ -0,0 +1,4 @@ +DEBUT() +a=1 +MA=LIRE_MAILLAGE() +FIN() diff --git a/Tests/testcomm7/e.comm b/Tests/testcomm7/e.comm new file mode 100644 index 00000000..15bf3261 --- /dev/null +++ b/Tests/testcomm7/e.comm @@ -0,0 +1,70 @@ +DEBUT() +MAYA=LIRE_MAILLAGE() + +MAYA=DEFI_GROUP( reuse=MAYA, MAILLAGE=MAYA, + CREA_GROUP_MA=_F( NOM = 'TOUT', TOUT = 'OUI')) + +BARRE1=AFFE_MODELE( MAILLAGE=MAYA, + AFFE=_F( GROUP_MA='SS1', + MODELISATION = 'POU_D_E', + PHENOMENE = 'MECANIQUE')) +# +MATERIO1=DEFI_MATERIAU( ELAS=_F( RHO = 1.E08, NU = 0.3, E = 1.E10)) + +MATERIO2=DEFI_MATERIAU( ELAS=_F( RHO = 0., NU = 0., E = 1.E15)) +# +CHMAT=AFFE_MATERIAU( MAILLAGE=MAYA,AFFE=( + #_F( TOUT = 'OUI', MATER = MATERIO1), + _F( GROUP_MA = 'SS1', MATER = MATERIO1), + _F( GROUP_MA = 'SS2', MATER = MATERIO1), + _F( GROUP_MA = 'SS3', MATER = MATERIO1), + _F( GROUP_MA = 'RIGIDE', MATER = MATERIO2), +)) # commentaire test + +CARA1=AFFE_CARA_ELEM( MODELE=BARRE1, + POUTRE=_F( + GROUP_MA = 'TOUT', + SECTION = 'CERCLE', + CARA = ('R', 'EP',), + VALE = (0.1, 0.01,))) + +GUIDAGE1=AFFE_CHAR_MECA( MODELE=BARRE1,DDL_IMPO=( + _F( GROUP_MA='SS1', + DX = 0., DZ = 0., DRX = 0., DRY = 0.), + _F( GROUP_NO = 'L1', DY = 0., DRZ = 0.), + )) + +K_ELEM1=CALC_MATR_ELEM( MODELE=BARRE1, + CARA_ELEM=CARA1, + CHAM_MATER=CHMAT, + OPTION='RIGI_MECA', + CHARGE=GUIDAGE1) + +NUM1=NUME_DDL( MATR_RIGI=K_ELEM1) + +# +K_ASSE1=ASSE_MATRICE( MATR_ELEM=K_ELEM1, + NUME_DDL=NUM1) + +MODESTA1=MODE_STATIQUE( MATR_RIGI=K_ASSE1, + MODE_STAT=_F( + GROUP_NO=('L12'), + AVEC_CMP = ('DY','DRZ'), + )) + +# parse: -affectation + +DS1=[None]*5 +DS2=[None]*5 +DS3=[None]*5 +DS4=[None]*5 +CHS1=[None]*5 +CHS2=[None]*5 + +# parse: +affectation + +#for k in range(1,5): +# DS1[k] = CREA_CHAMP( OPERATION='EXTR', TYPE_CHAM='NOEU_DEPL_R', +# RESULTAT= MODESTA1, NUME_ORDRE=k, NOM_CHAM = 'DEPL'); + +FIN() diff --git a/Tests/testcomm7/efica01a.11 b/Tests/testcomm7/efica01a.11 new file mode 100644 index 00000000..bec37b5b --- /dev/null +++ b/Tests/testcomm7/efica01a.11 @@ -0,0 +1,19 @@ +DEPL2 = FORMULE(NOM_PARA='INST',VALE='sin(OMEGAA*INST)/(OMEGAA**xx)') +DEPLACE2=CALC_FONC_INTERP( FONCTION=DEPL2, + LIST_PARA=L_INST, + NOM_PARA='INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + NOM_RESU='DEPL' ) + +MONO_X=CALC_CHAR_SEISME( MATR_MASS=MASSE, + DIRECTION=( 1., 0., 0.,), + MONO_APPUI='OUI' ) + + +MACRO_PROJ_BASE(BASE=MODE_MEC,MATR_ASSE_GENE=( + _F( MATRICE = CO("MASS_GEN"), MATR_ASSE = MASSE), + _F( MATRICE = CO("RIGI_GEN"), MATR_ASSE = RIGIDITE)), + VECT_ASSE_GENE=_F( VECTEUR = CO("VECT_X"), VECT_ASSE = MONO_X) + ) + diff --git a/Tests/testcomm7/efica01a.com0 b/Tests/testcomm7/efica01a.com0 new file mode 100755 index 00000000..25134e98 --- /dev/null +++ b/Tests/testcomm7/efica01a.com0 @@ -0,0 +1,49 @@ +POURSUITE(CODE=_F( NOM = 'EFICA01A')) + +INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF', + VARIANTE='A', TYPE_VALE='NOMI', + NOM_MATER='MAT3', INFO=1 ) + +CHMAT3=AFFE_MATERIAU( MAILLAGE=MAILLA3, + AFFE=_F( TOUT='OUI', MATER = MAT3, TEMP_REF = 20.)) + +riginor = 2.88E7 + +TRAN_GE2=DYNA_TRAN_MODAL( MASS_GENE=MGEN_BIC, RIGI_GENE=RGEN_BIC, + METHODE='EULER', + AMOR_REDUIT=( 0.07, 0.07, ), + MODE_STAT=MSTA_BIC,EXCIT=( + _F( VECT_GENE = VECT_X1, ACCE = ACCELER1, + MULT_APPUI = 'OUI', + DIRECTION = ( 1., 0., 0.,), NOEUD = 'NO1', + VITE = VITESSE1, DEPL = DEPLACE1), + _F( VECT_GENE = VECT_X2, ACCE = ACCELER2, + MULT_APPUI = 'OUI', + DIRECTION = ( 1., 0., 0.,), NOEUD = 'NO11', + VITE = VITESSE2, DEPL = DEPLACE2)), + CHOC=_F( GROUP_NO_1 = 'MASSES1', + GROUP_NO_2 = 'MASSES2', + OBSTACLE = GRILLE, + INTITULE = 'NO2/NO12', + NORM_OBST = (0., 0., 1.,), + DIST_1 = 0.4495, + DIST_2 = 0.4495, + RIGI_NOR = riginor, + AMOR_NOR = 0., + RIGI_TAN = 0., + COULOMB = 0.), + INCREMENT=_F( INST_INIT = 0., INST_FIN = 1., PAS = 0.00025), + ARCHIVAGE=_F( PAS_ARCH = 8) + ) + +LISTIMP=DEFI_LIST_REEL( DEBUT=0., + INTERVALLE=_F( JUSQU_A = 1., NOMBRE = 500)) + +RESUA1=REST_BASE_PHYS( RESU_GENE=TRAN_GE1, + LIST_INST=LISTIMP, + INTERPOL='LIN', + NOM_CHAM='DEPL', + MULT_APPUI='OUI' + ) + +FIN() diff --git a/Tests/testcomm7/efica01a.comm b/Tests/testcomm7/efica01a.comm new file mode 100755 index 00000000..20eea866 --- /dev/null +++ b/Tests/testcomm7/efica01a.comm @@ -0,0 +1,275 @@ +# MODIF DATE 20/09/2004 AUTEUR DURAND C.DURAND +# TITRE TEST DE NON REGRESSION DE L IHM EFICAS - DERIVE DE SDND102A +# 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. +# ====================================================================== +# Ce cas test est gere en configuration dans la base ASTER, il sert de +# modele pour prononcer la recette de l IHM d EFICAS : l objectif est de +# pouvoir recreer ce test a l identique dans EFICAS a partir d une page +# blanche. +# On a donc essaye d y placer toutes les commandes un peu particulieres +# du langage de commandes d ASTER +# +# Il s agit en fait du test SDND102A auquel on a ajoute : +# la definition d un parametre (VAL) +# l inclusion d un fichier (INCLUDE) +# une poursuite (POURSUITE) +# Il contient ainsi : +# des parametres, des formules, des macros, des mots cles facteurs repetes +# (y compris conditionnes par des regles : calc_fonction / COMB), +# des blocs (mode_iter_simult,calc_char_seisme), un defi_valeur, un parametre. +# +# +# Il faudra y associer quelques recommandations pour la recette : +# - verifier qu en ouvrant le .com0, il demande bien a browser le .comm puis, en cascade, le .11 +# - verifier qu on peut bien supprimer une commande, un mot cle simple et facteur +# - verifier les acces a la doc +# +# + + +DEBUT(CODE=_F(NOM='EFICA01A',NIV_PUB_WEB='INTERNET',VISU_EFICAS='NON'),) + +MAILLAGE=LIRE_MAILLAGE() + +MAILLAGE=DEFI_GROUP(reuse=MAILLAGE, + MAILLAGE=MAILLAGE, + CREA_GROUP_NO=(_F(NOEUD='NO2', + NOM='MASSES',), + _F(NOEUD='NO1', + NOM='ENCASTRE',),),) + +MAILLA2=LIRE_MAILLAGE(UNITE=21,) + +MODELE=AFFE_MODELE(MAILLAGE=MAILLAGE, + AFFE=(_F(GROUP_MA='RESSORT', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',), + _F(GROUP_NO='MASSES', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',),),) + +BICHOC=AFFE_MODELE(MAILLAGE=MAILLA2, + AFFE=(_F(GROUP_MA='RESSORTS', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',), + _F(GROUP_NO=('MASSES1','MASSES2',), + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',),),) +VAL = 98696.0 + + +CARA_ELE=AFFE_CARA_ELEM(MODELE=MODELE, + DISCRET=(_F(GROUP_MA='RESSORT', + REPERE='GLOBAL', + CARA='K_T_D_L', + VALE=(VAL,0.0,0.0,),), + _F(GROUP_NO='MASSES', + CARA='M_T_D_N', + VALE=25.0,),),) + +CARA_BIC=AFFE_CARA_ELEM(MODELE=BICHOC, + DISCRET=(_F(GROUP_MA='RESSORTS', + REPERE='GLOBAL', + CARA='K_T_D_L', + VALE=(VAL,0.0,0.0,),), + _F(GROUP_NO='MASSES1', + CARA='M_T_D_N', + VALE=25.0,), + _F(GROUP_NO='MASSES2', + CARA='M_T_D_N', + VALE=25.0,),),) + +CON_LIM=AFFE_CHAR_MECA(MODELE=MODELE, + DDL_IMPO=(_F(GROUP_NO='ENCASTRE', + DX=0.0, + DY=0.0, + DZ=0.0,), + _F(GROUP_NO='MASSES', + DY=0.0, + DZ=0.0,),),) + +CL_BICHO=AFFE_CHAR_MECA(MODELE=BICHOC, + DDL_IMPO=(_F(GROUP_NO='ENCBICHO', + DX=0.0, + DY=0.0, + DZ=0.0,), + _F(GROUP_NO=('MASSES1','MASSES2',), + DY=0.0, + DZ=0.0,),),) + +MACRO_MATR_ASSE(MODELE=MODELE, + CARA_ELEM=CARA_ELE, + CHARGE=CON_LIM, + NUME_DDL=CO('NUMEDDL'), + MATR_ASSE=(_F(MATRICE=CO('RIGIDITE'), + OPTION='RIGI_MECA',), + _F(MATRICE=CO('MASSE'), + OPTION='MASS_MECA',),),) + +MACRO_MATR_ASSE(MODELE=BICHOC, + CARA_ELEM=CARA_BIC, + CHARGE=CL_BICHO, + NUME_DDL=CO('NUMDDLC'), + MATR_ASSE=(_F(MATRICE=CO('RIGI_BIC'), + OPTION='RIGI_MECA',), + _F(MATRICE=CO('MASS_BIC'), + OPTION='MASS_MECA',),),) + +MODE_MEC=MODE_ITER_SIMULT(MATR_A=RIGIDITE, + MATR_B=MASSE,) + +MODE_MEC=NORM_MODE(reuse =MODE_MEC, + MODE=MODE_MEC, + NORME='MASS_GENE',) + +MODE_BIC=MODE_ITER_SIMULT(MATR_A=RIGI_BIC, + MATR_B=MASS_BIC, + METHODE='JACOBI', + OPTION='SANS', + CALC_FREQ=_F(OPTION='BANDE', + FREQ=(1.0,10.0,),),) + +MODE_BIC=NORM_MODE(reuse =MODE_BIC, + MODE=MODE_BIC, + NORME='MASS_GENE',) + +MODE_STA=MODE_STATIQUE(MATR_RIGI=RIGIDITE, + MATR_MASS=MASSE, + MODE_STAT=_F(TOUT='OUI', + AVEC_CMP='DX',),) + +MSTA_BIC=MODE_STATIQUE(MATR_RIGI=RIGI_BIC, + MATR_MASS=MASS_BIC, + MODE_STAT=_F(TOUT='OUI', + AVEC_CMP='DX',),) + +L_INST=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=_F(JUSQU_A=1.0, + PAS=1.E-4,),) + +OMEGAA=2.*pi*10. + +ACCE1 = FORMULE(VALE = 'sin(OMEGAA*INST)', + NOM_PARA='INST') + +ACCELER1=CALC_FONC_INTERP(FONCTION=ACCE1, + NOM_RESU='ACCE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +ACCE2 = FORMULE(VALE = '-sin(OMEGAA*INST)', + NOM_PARA='INST') + +ACCELER2=CALC_FONC_INTERP(FONCTION=ACCE2, + NOM_RESU='ACCE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +VITE1 = FORMULE(VALE = '-cos(OMEGAA*INST)/OMEGAA', + NOM_PARA='INST') + +VITESSE1=CALC_FONC_INTERP(FONCTION=VITE1, + NOM_RESU='VITE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +DEPL1 = FORMULE(VALE = '-sin(OMEGAA*INST)/(OMEGAA**2)', + NOM_PARA='INST') + +DEPLACE1=CALC_FONC_INTERP(FONCTION=DEPL1, + NOM_RESU='DEPL', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +VITE2 = FORMULE(VALE = 'cos(OMEGAA*INST)/OMEGAA', + NOM_PARA='INST') + +VITESSE2=CALC_FONC_INTERP(FONCTION=VITE2, + NOM_RESU='VITE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +xx=2 + +INCLUDE(UNITE=11, + INFO=1,) + +MUR=DEFI_OBSTACLE(TYPE='PLAN_Z',) + +TRAN_GE1=DYNA_TRAN_MODAL(METHODE='EULER', + MASS_GENE=MASS_GEN, + RIGI_GENE=RIGI_GEN, + AMOR_REDUIT=0.07, + MODE_STAT=MODE_STA, + INCREMENT=_F(INST_INIT=0.0, + INST_FIN=1.0, + PAS=2.0E-4,), + ARCHIVAGE=_F(PAS_ARCH=8,), + EXCIT=_F(VECT_GENE=VECT_X, + ACCE=ACCELER1, + VITE=VITESSE1, + DEPL=DEPLACE1, + MULT_APPUI='OUI', + DIRECTION=(1.0,0.0,0.0,), + NOEUD='NO1',), + CHOC=_F(INTITULE='NO2/MUR', + GROUP_NO_1='MASSES', + OBSTACLE=MUR, + ORIG_OBST=(-1.0,0.0,0.0,), + NORM_OBST=(0.0,0.0,1.0,), + JEU=1.1005, + RIGI_NOR=5.76E7, + AMOR_NOR=0.0, + RIGI_TAN=0.0, + COULOMB=0.0,),) + +MULT_X1=CALC_CHAR_SEISME(MATR_MASS=MASS_BIC, + DIRECTION=(1.0,0.0,0.0,), + MODE_STAT=MSTA_BIC, + NOEUD='NO1',) + +MULT_X2=CALC_CHAR_SEISME(MATR_MASS=MASS_BIC, + DIRECTION=(1.0,0.0,0.0,), + MODE_STAT=MSTA_BIC, + NOEUD='NO11',) + +MACRO_PROJ_BASE(BASE=MODE_BIC, + MATR_ASSE_GENE=(_F(MATRICE=CO('MGEN_BIC'), + MATR_ASSE=MASS_BIC,), + _F(MATRICE=CO('RGEN_BIC'), + MATR_ASSE=RIGI_BIC,),), + VECT_ASSE_GENE=(_F(VECTEUR=CO('VECT_X1'), + VECT_ASSE=MULT_X1,), + _F(VECTEUR=CO('VECT_X2'), + VECT_ASSE=MULT_X2,),),) + +GRILLE=DEFI_OBSTACLE(TYPE='BI_PLAN_Z',) + +MAILLA3=LIRE_MAILLAGE(UNITE=22,) + +FIN() diff --git a/Tests/testcomm7/efica01b.11 b/Tests/testcomm7/efica01b.11 new file mode 100644 index 00000000..bec37b5b --- /dev/null +++ b/Tests/testcomm7/efica01b.11 @@ -0,0 +1,19 @@ +DEPL2 = FORMULE(NOM_PARA='INST',VALE='sin(OMEGAA*INST)/(OMEGAA**xx)') +DEPLACE2=CALC_FONC_INTERP( FONCTION=DEPL2, + LIST_PARA=L_INST, + NOM_PARA='INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + NOM_RESU='DEPL' ) + +MONO_X=CALC_CHAR_SEISME( MATR_MASS=MASSE, + DIRECTION=( 1., 0., 0.,), + MONO_APPUI='OUI' ) + + +MACRO_PROJ_BASE(BASE=MODE_MEC,MATR_ASSE_GENE=( + _F( MATRICE = CO("MASS_GEN"), MATR_ASSE = MASSE), + _F( MATRICE = CO("RIGI_GEN"), MATR_ASSE = RIGIDITE)), + VECT_ASSE_GENE=_F( VECTEUR = CO("VECT_X"), VECT_ASSE = MONO_X) + ) + diff --git a/Tests/testcomm7/efica01b.comm b/Tests/testcomm7/efica01b.comm new file mode 100755 index 00000000..20eea866 --- /dev/null +++ b/Tests/testcomm7/efica01b.comm @@ -0,0 +1,275 @@ +# MODIF DATE 20/09/2004 AUTEUR DURAND C.DURAND +# TITRE TEST DE NON REGRESSION DE L IHM EFICAS - DERIVE DE SDND102A +# 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. +# ====================================================================== +# Ce cas test est gere en configuration dans la base ASTER, il sert de +# modele pour prononcer la recette de l IHM d EFICAS : l objectif est de +# pouvoir recreer ce test a l identique dans EFICAS a partir d une page +# blanche. +# On a donc essaye d y placer toutes les commandes un peu particulieres +# du langage de commandes d ASTER +# +# Il s agit en fait du test SDND102A auquel on a ajoute : +# la definition d un parametre (VAL) +# l inclusion d un fichier (INCLUDE) +# une poursuite (POURSUITE) +# Il contient ainsi : +# des parametres, des formules, des macros, des mots cles facteurs repetes +# (y compris conditionnes par des regles : calc_fonction / COMB), +# des blocs (mode_iter_simult,calc_char_seisme), un defi_valeur, un parametre. +# +# +# Il faudra y associer quelques recommandations pour la recette : +# - verifier qu en ouvrant le .com0, il demande bien a browser le .comm puis, en cascade, le .11 +# - verifier qu on peut bien supprimer une commande, un mot cle simple et facteur +# - verifier les acces a la doc +# +# + + +DEBUT(CODE=_F(NOM='EFICA01A',NIV_PUB_WEB='INTERNET',VISU_EFICAS='NON'),) + +MAILLAGE=LIRE_MAILLAGE() + +MAILLAGE=DEFI_GROUP(reuse=MAILLAGE, + MAILLAGE=MAILLAGE, + CREA_GROUP_NO=(_F(NOEUD='NO2', + NOM='MASSES',), + _F(NOEUD='NO1', + NOM='ENCASTRE',),),) + +MAILLA2=LIRE_MAILLAGE(UNITE=21,) + +MODELE=AFFE_MODELE(MAILLAGE=MAILLAGE, + AFFE=(_F(GROUP_MA='RESSORT', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',), + _F(GROUP_NO='MASSES', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',),),) + +BICHOC=AFFE_MODELE(MAILLAGE=MAILLA2, + AFFE=(_F(GROUP_MA='RESSORTS', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',), + _F(GROUP_NO=('MASSES1','MASSES2',), + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',),),) +VAL = 98696.0 + + +CARA_ELE=AFFE_CARA_ELEM(MODELE=MODELE, + DISCRET=(_F(GROUP_MA='RESSORT', + REPERE='GLOBAL', + CARA='K_T_D_L', + VALE=(VAL,0.0,0.0,),), + _F(GROUP_NO='MASSES', + CARA='M_T_D_N', + VALE=25.0,),),) + +CARA_BIC=AFFE_CARA_ELEM(MODELE=BICHOC, + DISCRET=(_F(GROUP_MA='RESSORTS', + REPERE='GLOBAL', + CARA='K_T_D_L', + VALE=(VAL,0.0,0.0,),), + _F(GROUP_NO='MASSES1', + CARA='M_T_D_N', + VALE=25.0,), + _F(GROUP_NO='MASSES2', + CARA='M_T_D_N', + VALE=25.0,),),) + +CON_LIM=AFFE_CHAR_MECA(MODELE=MODELE, + DDL_IMPO=(_F(GROUP_NO='ENCASTRE', + DX=0.0, + DY=0.0, + DZ=0.0,), + _F(GROUP_NO='MASSES', + DY=0.0, + DZ=0.0,),),) + +CL_BICHO=AFFE_CHAR_MECA(MODELE=BICHOC, + DDL_IMPO=(_F(GROUP_NO='ENCBICHO', + DX=0.0, + DY=0.0, + DZ=0.0,), + _F(GROUP_NO=('MASSES1','MASSES2',), + DY=0.0, + DZ=0.0,),),) + +MACRO_MATR_ASSE(MODELE=MODELE, + CARA_ELEM=CARA_ELE, + CHARGE=CON_LIM, + NUME_DDL=CO('NUMEDDL'), + MATR_ASSE=(_F(MATRICE=CO('RIGIDITE'), + OPTION='RIGI_MECA',), + _F(MATRICE=CO('MASSE'), + OPTION='MASS_MECA',),),) + +MACRO_MATR_ASSE(MODELE=BICHOC, + CARA_ELEM=CARA_BIC, + CHARGE=CL_BICHO, + NUME_DDL=CO('NUMDDLC'), + MATR_ASSE=(_F(MATRICE=CO('RIGI_BIC'), + OPTION='RIGI_MECA',), + _F(MATRICE=CO('MASS_BIC'), + OPTION='MASS_MECA',),),) + +MODE_MEC=MODE_ITER_SIMULT(MATR_A=RIGIDITE, + MATR_B=MASSE,) + +MODE_MEC=NORM_MODE(reuse =MODE_MEC, + MODE=MODE_MEC, + NORME='MASS_GENE',) + +MODE_BIC=MODE_ITER_SIMULT(MATR_A=RIGI_BIC, + MATR_B=MASS_BIC, + METHODE='JACOBI', + OPTION='SANS', + CALC_FREQ=_F(OPTION='BANDE', + FREQ=(1.0,10.0,),),) + +MODE_BIC=NORM_MODE(reuse =MODE_BIC, + MODE=MODE_BIC, + NORME='MASS_GENE',) + +MODE_STA=MODE_STATIQUE(MATR_RIGI=RIGIDITE, + MATR_MASS=MASSE, + MODE_STAT=_F(TOUT='OUI', + AVEC_CMP='DX',),) + +MSTA_BIC=MODE_STATIQUE(MATR_RIGI=RIGI_BIC, + MATR_MASS=MASS_BIC, + MODE_STAT=_F(TOUT='OUI', + AVEC_CMP='DX',),) + +L_INST=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=_F(JUSQU_A=1.0, + PAS=1.E-4,),) + +OMEGAA=2.*pi*10. + +ACCE1 = FORMULE(VALE = 'sin(OMEGAA*INST)', + NOM_PARA='INST') + +ACCELER1=CALC_FONC_INTERP(FONCTION=ACCE1, + NOM_RESU='ACCE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +ACCE2 = FORMULE(VALE = '-sin(OMEGAA*INST)', + NOM_PARA='INST') + +ACCELER2=CALC_FONC_INTERP(FONCTION=ACCE2, + NOM_RESU='ACCE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +VITE1 = FORMULE(VALE = '-cos(OMEGAA*INST)/OMEGAA', + NOM_PARA='INST') + +VITESSE1=CALC_FONC_INTERP(FONCTION=VITE1, + NOM_RESU='VITE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +DEPL1 = FORMULE(VALE = '-sin(OMEGAA*INST)/(OMEGAA**2)', + NOM_PARA='INST') + +DEPLACE1=CALC_FONC_INTERP(FONCTION=DEPL1, + NOM_RESU='DEPL', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +VITE2 = FORMULE(VALE = 'cos(OMEGAA*INST)/OMEGAA', + NOM_PARA='INST') + +VITESSE2=CALC_FONC_INTERP(FONCTION=VITE2, + NOM_RESU='VITE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +xx=2 + +INCLUDE(UNITE=11, + INFO=1,) + +MUR=DEFI_OBSTACLE(TYPE='PLAN_Z',) + +TRAN_GE1=DYNA_TRAN_MODAL(METHODE='EULER', + MASS_GENE=MASS_GEN, + RIGI_GENE=RIGI_GEN, + AMOR_REDUIT=0.07, + MODE_STAT=MODE_STA, + INCREMENT=_F(INST_INIT=0.0, + INST_FIN=1.0, + PAS=2.0E-4,), + ARCHIVAGE=_F(PAS_ARCH=8,), + EXCIT=_F(VECT_GENE=VECT_X, + ACCE=ACCELER1, + VITE=VITESSE1, + DEPL=DEPLACE1, + MULT_APPUI='OUI', + DIRECTION=(1.0,0.0,0.0,), + NOEUD='NO1',), + CHOC=_F(INTITULE='NO2/MUR', + GROUP_NO_1='MASSES', + OBSTACLE=MUR, + ORIG_OBST=(-1.0,0.0,0.0,), + NORM_OBST=(0.0,0.0,1.0,), + JEU=1.1005, + RIGI_NOR=5.76E7, + AMOR_NOR=0.0, + RIGI_TAN=0.0, + COULOMB=0.0,),) + +MULT_X1=CALC_CHAR_SEISME(MATR_MASS=MASS_BIC, + DIRECTION=(1.0,0.0,0.0,), + MODE_STAT=MSTA_BIC, + NOEUD='NO1',) + +MULT_X2=CALC_CHAR_SEISME(MATR_MASS=MASS_BIC, + DIRECTION=(1.0,0.0,0.0,), + MODE_STAT=MSTA_BIC, + NOEUD='NO11',) + +MACRO_PROJ_BASE(BASE=MODE_BIC, + MATR_ASSE_GENE=(_F(MATRICE=CO('MGEN_BIC'), + MATR_ASSE=MASS_BIC,), + _F(MATRICE=CO('RGEN_BIC'), + MATR_ASSE=RIGI_BIC,),), + VECT_ASSE_GENE=(_F(VECTEUR=CO('VECT_X1'), + VECT_ASSE=MULT_X1,), + _F(VECTEUR=CO('VECT_X2'), + VECT_ASSE=MULT_X2,),),) + +GRILLE=DEFI_OBSTACLE(TYPE='BI_PLAN_Z',) + +MAILLA3=LIRE_MAILLAGE(UNITE=22,) + +FIN() diff --git a/Tests/testcomm7/f.comm b/Tests/testcomm7/f.comm new file mode 100644 index 00000000..d15a6179 --- /dev/null +++ b/Tests/testcomm7/f.comm @@ -0,0 +1,18 @@ +from Numeric import size + +DEBUT() + +# Definition des parametres de l'excitation sinusoidale +freq=1500.0 +periode=1.0/freq +pas=periode/100.0 + +LISTTM=DEFI_LIST_REEL(DEBUT=0.0*periode, + INTERVALLE=_F(JUSQU_A=100.0*periode, + PAS=pas,),); + +LISTRD=DEFI_LIST_REEL(DEBUT=(98.0)*periode+pas, + INTERVALLE=_F(JUSQU_A=(100.0)*periode, + PAS=pas,),); + +FIN() diff --git a/Tests/testcomm7/forma12c.22 b/Tests/testcomm7/forma12c.22 new file mode 100755 index 00000000..1452b8f2 --- /dev/null +++ b/Tests/testcomm7/forma12c.22 @@ -0,0 +1,5616 @@ +ACCELH1=DEFI_FONCTION(NOM_PARA='INST', + VALE= + ( + 0.0 , 0.0 , + 5.000000000000000E-03 , 1.384945820672120E-02 , + 1.000000000000000E-02 , 1.382919843991470E-02 , + 1.500000000000000E-02 , 1.382973754982250E-02 , + 2.000000000000000E-02 , 1.383338152282280E-02 , + 2.500000000000000E-02 , 1.393648950771420E-02 , + 3.000000000000000E-02 , 1.434779984741860E-02 , + 3.500000000000000E-02 , 1.512950713231800E-02 , + 4.000000000000000E-02 , 1.614535272002630E-02 , + 4.500000000000000E-02 , 1.731995083544010E-02 , + 5.000000000000000E-02 , 1.859624623558040E-02 , + 5.500000000000000E-02 , 1.953967672923960E-02 , + 6.000000000000000E-02 , 1.941781110418540E-02 , + 6.500000000000000E-02 , 1.786343830924350E-02 , + 7.000000000000001E-02 , 1.516191250319950E-02 , + 7.500000000000000E-02 , 1.188464893531830E-02 , + 8.000000000000000E-02 , 8.604671706807470E-03 , + 8.500000000000001E-02 , 5.843238016204390E-03 , + 9.000000000000000E-02 , 3.844393537029640E-03 , + 9.500000000000000E-02 , 2.578831760615030E-03 , + 0.1 , 2.285337760842440E-03 , + 0.105 , 3.429647164261850E-03 , + 0.11 , 5.693975593542530E-03 , + 0.115 , 8.059677068797949E-03 , + 0.12 , 1.074690536157120E-02 , + 0.125 , 1.570430547663250E-02 , + 0.13 , 2.370085802024690E-02 , + 0.135 , 3.228248728765840E-02 , + 0.14 , 3.854420890726100E-02 , + 0.145 , 4.255105840524570E-02 , + 0.15 , 4.542487497977820E-02 , + 0.155 , 4.522394778102340E-02 , + 0.16 , 3.829095514459380E-02 , + 0.165 , 2.483633029107950E-02 , + 0.17 , 9.962011825963081E-03 , + 0.175 , -1.690338763720670E-03 , + 0.18 , -9.628765294085771E-03 , + 0.185 , -1.491533457160890E-02 , + 0.19 , -1.675574249783150E-02 , + 0.195 , -1.397302390604700E-02 , + 0.2 , -8.394257392452909E-03 , + 0.205 , -4.066198655663860E-03 , + 0.21 , -2.824511823738000E-03 , + 0.215 , -2.617183840945080E-03 , + 0.22 , -1.417346427510000E-03 , + 0.225 , -1.143002215953450E-03 , + 0.23 , -5.114862179520550E-03 , + 0.235 , -1.257393226409120E-02 , + 0.24 , -2.009825306788950E-02 , + 0.245 , -2.922606396367100E-02 , + 0.25 , -4.681398923377460E-02 , + 0.255 , -7.440515051138789E-02 , + 0.26 , -0.10334790104033 , + 0.265 , -0.12586697159281 , + 0.27 , -0.14387794464775 , + 0.275 , -0.15814759425273 , + 0.28 , -0.15645166862504 , + 0.285 , -0.12686021613717 , + 0.29 , -7.870738657620450E-02 , + 0.295 , -3.337529798013800E-02 , + 0.3 , 4.960493246599410E-03 , + 0.305 , 5.045559596258160E-02 , + 0.31 , 0.105226085321393 , + 0.315 , 0.149377859842677 , + 0.32 , 0.169404090056596 , + 0.325 , 0.175768658339062 , + 0.33 , 0.179795570216475 , + 0.335 , 0.172362231098084 , + 0.34 , 0.14178782193451 , + 0.345 , 9.600009720172401E-02 , + 0.35 , 4.821844915823450E-02 , + 0.355 , -4.337533256019430E-03 , + 0.36 , -6.584719156367530E-02 , + 0.365 , -0.11836425870338 , + 0.37 , -0.13733576068719 , + 0.375 , -0.12352979806305 , + 0.38 , -9.647458189678811E-02 , + 0.385 , -6.215705630868780E-02 , + 0.39 , -1.230416228554950E-02 , + 0.395 , 4.641921735700460E-02 , + 0.4 , 8.859572962085120E-02 , + 0.405 , 9.988862929152570E-02 , + 0.41 , 9.014811266775360E-02 , + 0.415 , 7.203047941527541E-02 , + 0.42 , 4.502398610270280E-02 , + 0.425 , 6.797639622722420E-03 , + 0.43 , -3.515202910758360E-02 , + 0.435 , -7.008994299356780E-02 , + 0.44 , -9.184195885494270E-02 , + 0.445 , -9.764578216442391E-02 , + 0.45 , -8.980199943709211E-02 , + 0.455 , -7.844678621890611E-02 , + 0.46 , -7.092648374585479E-02 , + 0.465 , -5.916134617989510E-02 , + 0.47 , -2.956966177372460E-02 , + 0.475 , 1.671374368998170E-02 , + 0.48 , 6.681414337976969E-02 , + 0.485 , 0.115921896874314 , + 0.49 , 0.168522035427266 , + 0.495 , 0.222448388891968 , + 0.5 , 0.268501345352512 , + 0.505 , 0.304492502191568 , + 0.51 , 0.333201521434027 , + 0.515 , 0.348912055073103 , + 0.52 , 0.344336194210705 , + 0.525 , 0.328357457992693 , + 0.53 , 0.315639958020935 , + 0.535 , 0.298753776631336 , + 0.54 , 0.252828404979867 , + 0.545 , 0.169993172714936 , + 0.55 , 6.727059721322880E-02 , + 0.555 , -4.209915010595060E-02 , + 0.56 , -0.16027870746769 , + 0.565 , -0.28051898189652 , + 0.57 , -0.37473468426368 , + 0.575 , -0.41761046311846 , + 0.58 , -0.40704487960185 , + 0.585 , -0.35317881167887 , + 0.59 , -0.26473865427636 , + 0.595 , -0.15439054042026 , + 0.6 , -4.069603171914010E-02 , + 0.605 , 6.408493301865420E-02 , + 0.61 , 0.155029022019142 , + 0.615 , 0.221244653075603 , + 0.62 , 0.250448298949297 , + 0.625 , 0.2498283906321 , + 0.63 , 0.239493456134941 , + 0.635 , 0.218886088833644 , + 0.64 , 0.164337222785859 , + 0.645 , 7.035013146739150E-02 , + 0.65 , -3.065825126167990E-02 , + 0.655 , -0.10313193025801 , + 0.66 , -0.14127712726139 , + 0.665 , -0.15425776005121 , + 0.67 , -0.14167316851909 , + 0.675 , -0.10137097186279 , + 0.68 , -4.328536800004760E-02 , + 0.685 , 2.048801937177380E-02 , + 0.69 , 8.302000641121640E-02 , + 0.695 , 0.129331142992423 , + 0.7 , 0.139601455006784 , + 0.705 , 0.121227983591054 , + 0.71 , 0.113005236382458 , + 0.715 , 0.1379818615802 , + 0.72 , 0.176308826146499 , + 0.725 , 0.205232483015008 , + 0.73 , 0.236700670002903 , + 0.735 , 0.28518726999873 , + 0.74 , 0.325155532319882 , + 0.745 , 0.319888795846513 , + 0.75 , 0.275055725375209 , + 0.755 , 0.223753796143942 , + 0.76 , 0.172075077677344 , + 0.765 , 0.102710116433296 , + 0.77 , 2.458158105150330E-02 , + 0.775 , -2.772090362464080E-02 , + 0.78 , -4.579263759539020E-02 , + 0.785 , -5.563702283874560E-02 , + 0.79 , -6.754184615076410E-02 , + 0.795 , -5.871706032442020E-02 , + 0.8 , -1.692509300464670E-02 , + 0.805 , 3.809918865159700E-02 , + 0.81 , 9.363878798804159E-02 , + 0.815 , 0.168712355371222 , + 0.82 , 0.278043767236916 , + 0.825 , 0.400260018759297 , + 0.83 , 0.503549901131272 , + 0.835 , 0.576593704222666 , + 0.84 , 0.611464547720466 , + 0.845 , 0.581774928421811 , + 0.85 , 0.466685485187298 , + 0.855 , 0.279469592461024 , + 0.86 , 4.649599505060000E-02 , + 0.865 , -0.22611474655397 , + 0.87 , -0.53742100922433 , + 0.875 , -0.85597468112981 , + 0.88 , -1.12858445463436 , + 0.885 , -1.31964097839003 , + 0.89 , -1.41810357733099 , + 0.895 , -1.4129005458435 , + 0.9 , -1.29047173798494 , + 0.905 , -1.05919909208997 , + 0.91 , -0.75411881989804 , + 0.915 , -0.41406737678731 , + 0.92 , -7.194360976911091E-02 , + 0.925 , 0.232932654611786 , + 0.93 , 0.457448784206965 , + 0.935 , 0.581369260987795 , + 0.94 , 0.617884772522987 , + 0.945 , 0.588638581913632 , + 0.95 , 0.499594354895777 , + 0.955 , 0.351854051263097 , + 0.96 , 0.167285288529307 , + 0.965 , -1.354817972678980E-02 , + 0.97 , -0.16506107206104 , + 0.975 , -0.30020976135865 , + 0.98 , -0.44800006523462 , + 0.985 , -0.60571664044792 , + 0.99 , -0.72882650966723 , + 0.995 , -0.78150351703968 , + 1.0 , -0.78325351768449 , + 1.005 , -0.7804638307994 , + 1.01 , -0.77907901470961 , + 1.015 , -0.74044922924701 , + 1.02 , -0.64794816611668 , + 1.025 , -0.53653982368824 , + 1.03 , -0.43590944296704 , + 1.035 , -0.32196595199848 , + 1.04 , -0.15803623495676 , + 1.045 , 4.418314484939760E-02 , + 1.05 , 0.242865235492215 , + 1.055 , 0.422391619487335 , + 1.06 , 0.586878740356939 , + 1.065 , 0.710461681206935 , + 1.07 , 0.741340861669433 , + 1.075 , 0.655713664787049 , + 1.08 , 0.470616913700976 , + 1.085 , 0.20656145315631 , + 1.09 , -0.12112308548803 , + 1.095 , -0.47118919290136 , + 1.1 , -0.77786799146278 , + 1.105 , -0.99394827732625 , + 1.11 , -1.10304473601585 , + 1.115 , -1.08949447190265 , + 1.12 , -0.93583496154967 , + 1.125 , -0.65727377808015 , + 1.13 , -0.30107834922153 , + 1.135 , 9.620828359443580E-02 , + 1.14 , 0.514013416080853 , + 1.145 , 0.90642132985077 , + 1.15 , 1.20374217441116 , + 1.155 , 1.37257710404611 , + 1.16 , 1.43303286111545 , + 1.165 , 1.40075730037501 , + 1.17 , 1.25846296855354 , + 1.175 , 1.00832137286648 , + 1.18 , 0.706462116642059 , + 1.185 , 0.413493607411118 , + 1.19 , 0.148293682071222 , + 1.195 , -8.190792579850280E-02 , + 1.2 , -0.25000976533114 , + 1.205 , -0.34497838239222 , + 1.21 , -0.39991632301279 , + 1.215 , -0.44361527764964 , + 1.22 , -0.45948891812011 , + 1.225 , -0.43276591909851 , + 1.23 , -0.39819165775721 , + 1.235 , -0.38929817650006 , + 1.24 , -0.37545880341991 , + 1.245 , -0.30998449197619 , + 1.25 , -0.21624700688801 , + 1.255 , -0.16343645166853 , + 1.26 , -0.17391443905321 , + 1.265 , -0.21919282258219 , + 1.27 , -0.29688345097037 , + 1.275 , -0.43984931085551 , + 1.28 , -0.64071500818847 , + 1.285 , -0.82875858278133 , + 1.29 , -0.93796346189032 , + 1.295 , -0.949512523725 , + 1.3 , -0.857601537535 , + 1.305 , -0.65014691427727 , + 1.31 , -0.34930571456794 , + 1.315 , -2.752743937664530E-02 , + 1.32 , 0.246332435481473 , + 1.325 , 0.45001279080827 , + 1.33 , 0.58297681321004 , + 1.335 , 0.636158064092188 , + 1.34 , 0.611598530544366 , + 1.345 , 0.543575003876384 , + 1.35 , 0.472132760127251 , + 1.355 , 0.4099056501601 , + 1.36 , 0.349344621324927 , + 1.365 , 0.282806527352702 , + 1.37 , 0.200676817565078 , + 1.375 , 9.097626989587490E-02 , + 1.38 , -3.844874520206900E-02 , + 1.385 , -0.1485730750104 , + 1.39 , -0.19431957586841 , + 1.395 , -0.15348271845224 , + 1.4 , -2.614043201034680E-02 , + 1.405 , 0.177537986918302 , + 1.41 , 0.435115227256899 , + 1.415 , 0.705841641151383 , + 1.42 , 0.939450691097474 , + 1.425 , 1.09606995057385 , + 1.43 , 1.16508829271638 , + 1.435 , 1.17152904343664 , + 1.44 , 1.15677325221222 , + 1.445 , 1.14474618562157 , + 1.45 , 1.13563604509728 , + 1.455 , 1.136131797716 , + 1.46 , 1.17059034109195 , + 1.465 , 1.24349566378999 , + 1.47 , 1.31555125128714 , + 1.475 , 1.34451073520553 , + 1.48 , 1.32767985662737 , + 1.485 , 1.27338631745007 , + 1.49 , 1.15790168079473 , + 1.495 , 0.956521791996786 , + 1.5 , 0.698290997947875 , + 1.505 , 0.438367846650034 , + 1.51 , 0.189519144568428 , + 1.515 , -6.309865148517370E-02 , + 1.52 , -0.2907946493572 , + 1.525 , -0.43414032419491 , + 1.53 , -0.49035140435209 , + 1.535 , -0.51769162343818 , + 1.54 , -0.53944953961898 , + 1.545 , -0.51762829963883 , + 1.55 , -0.44905875024602 , + 1.555 , -0.41047655284131 , + 1.56 , -0.45801991852189 , + 1.565 , -0.5452728301642 , + 1.57 , -0.60180223196739 , + 1.575 , -0.64090769354799 , + 1.58 , -0.71776674993069 , + 1.585 , -0.81770575898523 , + 1.59 , -0.86693741584294 , + 1.595 , -0.84067997754846 , + 1.6 , -0.78353488744314 , + 1.605 , -0.71744286940014 , + 1.61 , -0.59774454986713 , + 1.615 , -0.38171240617319 , + 1.62 , -8.924731070437070E-02 , + 1.625 , 0.229074480135456 , + 1.63 , 0.542610098773165 , + 1.635 , 0.829628497520742 , + 1.64 , 1.04494574127203 , + 1.645 , 1.13156269562082 , + 1.65 , 1.05624249517991 , + 1.655 , 0.819935992458342 , + 1.66 , 0.449565343322086 , + 1.665 , -2.180707598866940E-03 , + 1.67 , -0.46040931126981 , + 1.675 , -0.85138688793934 , + 1.68 , -1.12388943755807 , + 1.685 , -1.24657385888904 , + 1.69 , -1.20179685962043 , + 1.695 , -0.99981038351547 , + 1.7 , -0.69163368557204 , + 1.705 , -0.34742052586021 , + 1.71 , -1.646326697056420E-02 , + 1.715 , 0.283945578116849 , + 1.72 , 0.543028107021654 , + 1.725 , 0.737133979583192 , + 1.73 , 0.84487160610996 , + 1.735 , 0.870212972351319 , + 1.74 , 0.834700198404195 , + 1.745 , 0.747170431789498 , + 1.75 , 0.594410232927394 , + 1.755 , 0.367486332109475 , + 1.76 , 8.962182967477010E-02 , + 1.765 , -0.1883067260291 , + 1.77 , -0.41613375697166 , + 1.775 , -0.56543072263443 , + 1.78 , -0.62930681455469 , + 1.785 , -0.60967253780204 , + 1.79 , -0.50702726496872 , + 1.795 , -0.32533912503295 , + 1.8 , -9.026946700126549E-02 , + 1.805 , 0.145429511003968 , + 1.81 , 0.330819022676906 , + 1.815 , 0.45222714352563 , + 1.82 , 0.524252434401283 , + 1.825 , 0.544685292311812 , + 1.83 , 0.482635967462947 , + 1.835 , 0.323118603668567 , + 1.84 , 9.999214308770410E-02 , + 1.845 , -0.1356321129448 , + 1.85 , -0.36128518628156 , + 1.855 , -0.57322505412043 , + 1.86 , -0.74566937227067 , + 1.865 , -0.831111234663 , + 1.87 , -0.79988891088422 , + 1.875 , -0.65798317740384 , + 1.88 , -0.42968513644553 , + 1.885 , -0.14457167669537 , + 1.89 , 0.161701689894838 , + 1.895 , 0.456458659481019 , + 1.9 , 0.720641473510481 , + 1.905 , 0.93536449279502 , + 1.91 , 1.06690148982661 , + 1.915 , 1.08832474904443 , + 1.92 , 1.00876475369484 , + 1.925 , 0.854457298011041 , + 1.93 , 0.628173977645005 , + 1.935 , 0.322546940276438 , + 1.94 , -2.596888473873320E-02 , + 1.945 , -0.33525384338564 , + 1.95 , -0.5416882826646 , + 1.955 , -0.63460201942509 , + 1.96 , -0.61577036509424 , + 1.965 , -0.46445342826001 , + 1.97 , -0.17427091738081 , + 1.975 , 0.197608608481982 , + 1.98 , 0.551300717211572 , + 1.985 , 0.807313151449369 , + 1.99 , 0.929291756112952 , + 1.995 , 0.900203655372628 , + 2.0 , 0.711960914602783 , + 2.005 , 0.386125888668035 , + 2.01 , -1.664845298933290E-02 , + 2.015 , -0.42003837834356 , + 2.02 , -0.75822166854004 , + 2.025 , -0.97936810396973 , + 2.03 , -1.0426579951744 , + 2.035 , -0.93057240999803 , + 2.04 , -0.66368034717177 , + 2.045 , -0.29110991423144 , + 2.05 , 0.119136312621438 , + 2.055 , 0.505291402538494 , + 2.06 , 0.880216899892637 , + 2.065 , 1.20828770980265 , + 2.07 , 1.46849325860208 , + 2.075 , 1.67233522841001 , + 2.08 , 1.84159238892188 , + 2.085 , 1.97017314302929 , + 2.09 , 2.02820005370812 , + 2.095 , 2.00307389537606 , + 2.1 , 1.90918679712901 , + 2.105 , 1.7492164388665 , + 2.11 , 1.49601732028444 , + 2.115 , 1.13320644545655 , + 2.12 , 0.691534368057989 , + 2.125 , 0.222522846896641 , + 2.13 , -0.2568718835065 , + 2.135 , -0.73270869895797 , + 2.14 , -1.16691560085841 , + 2.145 , -1.52131308342383 , + 2.15 , -1.77830659090987 , + 2.155 , -1.94190868704924 , + 2.16 , -2.01807428134882 , + 2.165 , -2.01753841723068 , + 2.17 , -1.96550102271951 , + 2.175 , -1.88172547074643 , + 2.18 , -1.76181108149962 , + 2.185 , -1.60314470865115 , + 2.19 , -1.43287068566641 , + 2.195 , -1.27868078783724 , + 2.2 , -1.12992856906385 , + 2.205 , -0.96854903020236 , + 2.21 , -0.82469988669093 , + 2.215 , -0.75306712540506 , + 2.22 , -0.75949831264927 , + 2.225 , -0.80266627698916 , + 2.23 , -0.86825465400046 , + 2.235 , -0.98190873939491 , + 2.24 , -1.13332846537187 , + 2.245 , -1.24587809111606 , + 2.25 , -1.25403636722243 , + 2.255 , -1.16774949125882 , + 2.26 , -1.02737996901608 , + 2.265 , -0.83618584315821 , + 2.27 , -0.58078051378866 , + 2.275 , -0.28886675266917 , + 2.28 , -1.584903466322660E-02 , + 2.285 , 0.243494185775485 , + 2.29 , 0.493747779128152 , + 2.295 , 0.763367558765503 , + 2.3 , 1.04659160151311 , + 2.305 , 1.31787059651459 , + 2.31 , 1.55330513693362 , + 2.315 , 1.72708398800512 , + 2.32 , 1.80403390270411 , + 2.325 , 1.74474528448072 , + 2.33 , 1.51781565889812 , + 2.335 , 1.11765857002866 , + 2.34 , 0.582482410154426 , + 2.345 , -9.718428438488540E-03 , + 2.35 , -0.57168637020167 , + 2.355 , -1.03230607359137 , + 2.36 , -1.33718623748091 , + 2.365 , -1.44694517260007 , + 2.37 , -1.35098612723151 , + 2.375 , -1.07661964039704 , + 2.38 , -0.67815732332436 , + 2.385 , -0.22427774359532 , + 2.39 , 0.206546911873295 , + 2.395 , 0.541628296955107 , + 2.4 , 0.739725635914114 , + 2.405 , 0.792688071679571 , + 2.41 , 0.699855261818748 , + 2.415 , 0.460345996951087 , + 2.42 , 9.825062680758330E-02 , + 2.425 , -0.32686436332366 , + 2.43 , -0.75151572607261 , + 2.435 , -1.13800924040631 , + 2.44 , -1.46265919709476 , + 2.445 , -1.69312259897435 , + 2.45 , -1.79655595938503 , + 2.455 , -1.76112116582848 , + 2.46 , -1.59504402395201 , + 2.465 , -1.31375304224191 , + 2.47 , -0.94339622712974 , + 2.475 , -0.5311872307141 , + 2.48 , -0.13652655158703 , + 2.485 , 0.191652831784399 , + 2.49 , 0.427316277261529 , + 2.495 , 0.565105289247264 , + 2.5 , 0.614388715344672 , + 2.505 , 0.595214227948157 , + 2.51 , 0.537482815214678 , + 2.515 , 0.480599475426244 , + 2.52 , 0.461418219827792 , + 2.525 , 0.490351150400196 , + 2.53 , 0.544926077525614 , + 2.535 , 0.597359901626847 , + 2.54 , 0.63915145270988 , + 2.545 , 0.666359147512914 , + 2.55 , 0.659549902572926 , + 2.555 , 0.607653814797886 , + 2.56 , 0.542274304956947 , + 2.565 , 0.514978623780516 , + 2.57 , 0.542507936778163 , + 2.575 , 0.605343596447052 , + 2.58 , 0.694971250554721 , + 2.585 , 0.820564438850225 , + 2.59 , 0.964525817889196 , + 2.595 , 1.07728875105342 , + 2.6 , 1.13416623229962 , + 2.605 , 1.16046452303612 , + 2.61 , 1.18333170206295 , + 2.615 , 1.19818806982642 , + 2.62 , 1.2055342011362 , + 2.625 , 1.23921335799247 , + 2.63 , 1.32082369230339 , + 2.635 , 1.41353565810184 , + 2.64 , 1.45647248242833 , + 2.645 , 1.42296156176653 , + 2.65 , 1.31247243180803 , + 2.655 , 1.10982597617917 , + 2.66 , 0.796193729509591 , + 2.665 , 0.391525367264635 , + 2.67 , -5.039209232008630E-02 , + 2.675 , -0.48551296055089 , + 2.68 , -0.89084690987514 , + 2.685 , -1.24148991258587 , + 2.69 , -1.50817716119153 , + 2.695 , -1.67597297557138 , + 2.7 , -1.74058611919401 , + 2.705 , -1.69018703360535 , + 2.71 , -1.51441737441596 , + 2.715 , -1.22691360409733 , + 2.72 , -0.85820811206465 , + 2.725 , -0.43656402639097 , + 2.73 , -1.877591162527850E-03 , + 2.735 , 0.3722134714064 , + 2.74 , 0.604368486493566 , + 2.745 , 0.654206094948509 , + 2.75 , 0.520823349815255 , + 2.755 , 0.204565302761595 , + 2.76 , -0.24284766157643 , + 2.765 , -0.75311719985656 , + 2.77 , -1.25324781337662 , + 2.775 , -1.6520239944361 , + 2.78 , -1.91175925323649 , + 2.785 , -2.02042853839568 , + 2.79 , -1.95654753001104 , + 2.795 , -1.71189367332731 , + 2.8 , -1.33217954914393 , + 2.805 , -0.90169171320611 , + 2.81 , -0.48741397679456 , + 2.815 , -0.11957680209296 , + 2.82 , 0.208180180447444 , + 2.825 , 0.429754499753944 , + 2.83 , 0.500373556893508 , + 2.835 , 0.453923556202155 , + 2.84 , 0.356589274872127 , + 2.845 , 0.252756610751608 , + 2.85 , 0.15368816142573 , + 2.855 , 7.226479768245560E-02 , + 2.86 , 3.888968358902120E-02 , + 2.865 , 7.085947846528430E-02 , + 2.87 , 0.145649387450817 , + 2.875 , 0.221440328548596 , + 2.88 , 0.271936154319643 , + 2.885 , 0.285520971687156 , + 2.89 , 0.244558483181686 , + 2.895 , 0.131111505423643 , + 2.9 , -4.976188706858230E-02 , + 2.905 , -0.27342387270832 , + 2.91 , -0.51955671330527 , + 2.915 , -0.77083790776384 , + 2.92 , -0.9909431240431 , + 2.925 , -1.1326860598253 , + 2.93 , -1.17530215375529 , + 2.935 , -1.1315547074335 , + 2.94 , -1.01461371409468 , + 2.945 , -0.82697517656886 , + 2.95 , -0.5923950948081 , + 2.955 , -0.367250148284 , + 2.96 , -0.19748847576212 , + 2.965 , -8.287483750208639E-02 , + 2.97 , 1.205615998459890E-03 , + 2.975 , 6.700285876984650E-02 , + 2.98 , 0.142475719272639 , + 2.985 , 0.272732688275581 , + 2.99 , 0.498473860216776 , + 2.995 , 0.815246300242191 , + 3.0 , 1.17850966940332 , + 3.005 , 1.5365879707165 , + 3.01 , 1.83696246846193 , + 3.015 , 2.01683359177992 , + 3.02 , 2.02473029766593 , + 3.025 , 1.85763991176815 , + 3.03 , 1.55996114842794 , + 3.035 , 1.19160270003895 , + 3.04 , 0.817034460759104 , + 3.045 , 0.512897988315463 , + 3.05 , 0.347660769303193 , + 3.055 , 0.341161122643262 , + 3.06 , 0.460638539442427 , + 3.065 , 0.655193651694964 , + 3.07 , 0.871495085561553 , + 3.075 , 1.04025886670637 , + 3.08 , 1.0866972125822 , + 3.085 , 0.97592646156581 , + 3.09 , 0.732149789609832 , + 3.095 , 0.404350262104711 , + 3.1 , 3.450811147404410E-02 , + 3.105 , -0.3574143716153 , + 3.11 , -0.67593382755679 , + 3.115 , -0.85741138771834 , + 3.12 , -0.88812837843921 , + 3.125 , -0.79137979090702 , + 3.13 , -0.59262327029812 , + 3.135 , -0.31629865744548 , + 3.14 , -7.233283133936310E-03 , + 3.145 , 0.273183439196407 , + 3.15 , 0.478066409829062 , + 3.155 , 0.58805365224197 , + 3.16 , 0.593648649534557 , + 3.165 , 0.483000051126779 , + 3.17 , 0.254384438681656 , + 3.175 , -6.624305965878829E-02 , + 3.18 , -0.4267275966133 , + 3.185 , -0.81396009231636 , + 3.19 , -1.1955849391981 , + 3.195 , -1.53431204255614 , + 3.2 , -1.79550741772338 , + 3.205 , -1.95961471169112 , + 3.21 , -2.02193224868472 , + 3.215 , -1.98153140879109 , + 3.22 , -1.83692731893728 , + 3.225 , -1.59274123405354 , + 3.23 , -1.26186737186096 , + 3.235 , -0.85475661028155 , + 3.24 , -0.37101324608578 , + 3.245 , 0.104191797011254 , + 3.25 , 0.444402436394787 , + 3.255 , 0.80270823947836 , + 3.26 , 1.15997110726162 , + 3.265 , 1.495182836989 , + 3.27 , 1.77744468860316 , + 3.275 , 1.96545418255327 , + 3.28 , 2.0238275806165 , + 3.285 , 1.94070094966571 , + 3.29 , 1.72718398222401 , + 3.295 , 1.40473739766314 , + 3.3 , 1.00200904728279 , + 3.305 , 0.563540200278601 , + 3.31 , 0.149874332156587 , + 3.315 , -0.36080714644631 , + 3.32 , -0.78705501088032 , + 3.325 , -0.96779259671266 , + 3.33 , -0.92388383903371 , + 3.335 , -0.70129187312547 , + 3.34 , -0.37633413832281 , + 3.345 , -4.983212937679970E-02 , + 3.35 , 0.182525585093038 , + 3.355 , 0.262197946276188 , + 3.36 , 0.176793782229557 , + 3.365 , -5.176420413944920E-02 , + 3.37 , -0.37933630972585 , + 3.375 , -0.74271351288949 , + 3.38 , -1.06375084817712 , + 3.385 , -1.26478653529069 , + 3.39 , -1.29047203891782 , + 3.395 , -1.12256167350094 , + 3.4 , -0.78075489126115 , + 3.405 , -0.31359677016703 , + 3.41 , 0.21274034122224 , + 3.415 , 0.723339413347021 , + 3.42 , 1.14216320992711 , + 3.425 , 1.40285852862188 , + 3.43 , 1.46353765010519 , + 3.435 , 1.31751508169454 , + 3.44 , 0.990610982524745 , + 3.445 , 0.528518300724784 , + 3.45 , -1.201464116995880E-02 , + 3.455 , -0.56495490805526 , + 3.46 , -1.06256507808036 , + 3.465 , -1.45449004401942 , + 3.47 , -1.72216993561753 , + 3.475 , -1.87372425489139 , + 3.48 , -1.93012616321294 , + 3.485 , -1.92125770401275 , + 3.49 , -1.88683182264746 , + 3.495 , -1.86489427093378 , + 3.5 , -1.87314769209702 , + 3.505 , -1.90576881574645 , + 3.51 , -1.947112317286 , + 3.515 , -1.97949862409975 , + 3.52 , -1.97797423254897 , + 3.525 , -1.91218852417812 , + 3.53 , -1.76423764925703 , + 3.535 , -1.54024679422456 , + 3.54 , -1.25875344890035 , + 3.545 , -0.9338632056843 , + 3.55 , -0.57694094749828 , + 3.555 , -0.20814045746558 , + 3.56 , 0.146206363036127 , + 3.565 , 0.468653953534567 , + 3.57 , 0.754631835985132 , + 3.575 , 0.999185044322006 , + 3.58 , 1.18633789810153 , + 3.585 , 1.29531712809396 , + 3.59 , 1.31308664187438 , + 3.595 , 1.23731524907479 , + 3.6 , 1.07118836166498 , + 3.605 , 0.822464072088323 , + 3.61 , 0.509927368235254 , + 3.615 , 0.167608567620092 , + 3.62 , -0.16136132010127 , + 3.625 , -0.43756626339828 , + 3.63 , -0.63523583164368 , + 3.635 , -0.74542737572521 , + 3.64 , -0.7756133968174 , + 3.645 , -0.74811092815284 , + 3.65 , -0.69606885610044 , + 3.655 , -0.6565734770812 , + 3.66 , -0.66248883313473 , + 3.665 , -0.7327889886856 , + 3.67 , -0.86178796221599 , + 3.675 , -1.01484775035497 , + 3.68 , -1.13874812866412 , + 3.685 , -1.18063976569405 , + 3.69 , -1.10015331426255 , + 3.695 , -0.87258642642403 , + 3.7 , -0.49606882241743 , + 3.705 , -3.859866915145810E-03 , + 3.71 , 0.536274174652005 , + 3.715 , 1.04296495682297 , + 3.72 , 1.44309287260192 , + 3.725 , 1.67861157963259 , + 3.73 , 1.7100067792938 , + 3.735 , 1.52993945453465 , + 3.74 , 1.17332394495836 , + 3.745 , 0.705456146258253 , + 3.75 , 0.19881090381289 , + 3.755 , -0.27919234543845 , + 3.76 , -0.66960551503829 , + 3.765 , -0.93205155196248 , + 3.77 , -1.05626273217395 , + 3.775 , -1.05832450991158 , + 3.78 , -0.96616376411692 , + 3.785 , -0.81175596966687 , + 3.79 , -0.6282915868819 , + 3.795 , -0.43985996859902 , + 3.8 , -0.25160708755689 , + 3.805 , -5.670095344855360E-02 , + 3.81 , 0.149245250303935 , + 3.815 , 0.367246556878583 , + 3.82 , 0.6001728423305 , + 3.825 , 0.842651059699404 , + 3.83 , 1.06576976559939 , + 3.835 , 1.22584984073272 , + 3.84 , 1.29118905603104 , + 3.845 , 1.25131649498925 , + 3.85 , 1.10483834283469 , + 3.855 , 0.858719957928343 , + 3.86 , 0.546596899968826 , + 3.865 , 0.232913780073415 , + 3.87 , -1.178392373167330E-02 , + 3.875 , -0.13503158427521 , + 3.88 , -0.10474649816556 , + 3.885 , 8.615352677596511E-02 , + 3.89 , 0.410679548743155 , + 3.895 , 0.826698146053687 , + 3.9 , 1.26554832994177 , + 3.905 , 1.65499072160026 , + 3.91 , 1.92591491458393 , + 3.915 , 2.02174681879988 , + 3.92 , 1.91690039738994 , + 3.925 , 1.62485068724173 , + 3.93 , 1.1855690119834 , + 3.935 , 0.653037378513217 , + 3.94 , 9.668746640223920E-02 , + 3.945 , -0.4301741972333 , + 3.95 , -0.83059880381395 , + 3.955 , -1.06253651005356 , + 3.96 , -1.12343783668418 , + 3.965 , -1.02905594887957 , + 3.97 , -0.81438063696053 , + 3.975 , -0.53887343061785 , + 3.98 , -0.27199822870815 , + 3.985 , -6.791154597367660E-02 , + 3.99 , 4.530742217552380E-02 , + 3.995 , 6.262857784368379E-02 , + 4.0 , 2.441344328897610E-03 , + 4.005 , -9.190475922367920E-02 , + 4.01 , -0.16297517487801 , + 4.015 , -0.15723894800794 , + 4.02 , -3.537253515270430E-02 , + 4.025 , 0.193043922562747 , + 4.03 , 0.526357119583793 , + 4.035 , 0.929427363269694 , + 4.04 , 1.34182501632519 , + 4.045 , 1.69896106062951 , + 4.05 , 1.94147299764395 , + 4.055 , 2.02131168938189 , + 4.06 , 1.91405493567929 , + 4.065 , 1.62895808406502 , + 4.07 , 1.20381890102136 , + 4.075 , 0.692151048809337 , + 4.08 , 0.156757509395021 , + 4.085 , -0.38604102584051 , + 4.09 , -0.84133083525009 , + 4.095 , -1.156233699226 , + 4.1 , -1.33230861444598 , + 4.105 , -1.38570779035153 , + 4.11 , -1.34124970345719 , + 4.115 , -1.23546550701648 , + 4.12 , -1.10801235519435 , + 4.125 , -0.98248955079667 , + 4.13 , -0.86003296814087 , + 4.135 , -0.73178734822649 , + 4.14 , -0.59090783838188 , + 4.145 , -0.43318234968906 , + 4.15 , -0.25684880447788 , + 4.155 , -6.856986064204031E-02 , + 4.16 , 0.113175698843399 , + 4.165 , 0.263255109728613 , + 4.17 , 0.35752664561249 , + 4.175 , 0.378805103678297 , + 4.18 , 0.323547996037049 , + 4.185 , 0.206516861655614 , + 4.19 , 5.649526699216110E-02 , + 4.195 , -9.378626227851780E-02 , + 4.2 , -0.21317600878937 , + 4.205 , -0.27287940125587 , + 4.21 , -0.25114165876958 , + 4.215 , -0.14168231890677 , + 4.22 , 4.361065500048250E-02 , + 4.225 , 0.279918937448746 , + 4.23 , 0.535273378579502 , + 4.235 , 0.773588682574221 , + 4.24 , 0.958219914615338 , + 4.245 , 1.05647251768057 , + 4.25 , 1.0429998608356 , + 4.255 , 0.904048723430757 , + 4.26 , 0.64342045751792 , + 4.265 , 0.283827852947311 , + 4.27 , -0.13946358577039 , + 4.275 , -0.58422822501242 , + 4.28 , -1.00040723456331 , + 4.285 , -1.33261766567896 , + 4.29 , -1.53443838788264 , + 4.295 , -1.58333249912622 , + 4.3 , -1.48186835325815 , + 4.305 , -1.25134227914383 , + 4.31 , -0.93134131663624 , + 4.315 , -0.58023320392854 , + 4.32 , -0.263068523183 , + 4.325 , -3.234875382342560E-02 , + 4.33 , 8.104457813070970E-02 , + 4.335 , 6.646358030000100E-02 , + 4.34 , -6.520527065940920E-02 , + 4.345 , -0.27865084678943 , + 4.35 , -0.52301393304868 , + 4.355 , -0.75029273588902 , + 4.36 , -0.92586132464525 , + 4.365 , -1.02745479977821 , + 4.37 , -1.045887182644 , + 4.375 , -0.98998208526761 , + 4.38 , -0.88247620098788 , + 4.385 , -0.74513807964771 , + 4.39 , -0.589693305748 , + 4.395 , -0.4218623825717 , + 4.4 , -0.24559350524832 , + 4.405 , -5.960463612956680E-02 , + 4.41 , 0.142717207535869 , + 4.415 , 0.362879306116347 , + 4.42 , 0.588751862423607 , + 4.425 , 0.799650310566393 , + 4.43 , 0.976747652586761 , + 4.435 , 1.1062713323933 , + 4.44 , 1.17888982115871 , + 4.445 , 1.19440253536595 , + 4.45 , 1.16760308413961 , + 4.455 , 1.12503563953872 , + 4.46 , 1.09428815021162 , + 4.465 , 1.09605242115199 , + 4.47 , 1.141397648121 , + 4.475 , 1.22879693707608 , + 4.48 , 1.34085300252377 , + 4.485 , 1.44734590197994 , + 4.49 , 1.51600244532524 , + 4.495 , 1.52347176965462 , + 4.5 , 1.4600805519962 , + 4.505 , 1.32990917025988 , + 4.51 , 1.15031027736352 , + 4.515 , 0.950259774927611 , + 4.52 , 0.764000212508228 , + 4.525 , 0.620467212343643 , + 4.53 , 0.53443313966959 , + 4.535 , 0.504324479922065 , + 4.54 , 0.515518988342075 , + 4.545 , 0.5449123033391 , + 4.55 , 0.565643760216133 , + 4.555 , 0.553361701085439 , + 4.56 , 0.492730481489852 , + 4.565 , 0.380543114015636 , + 4.57 , 0.224809165664267 , + 4.575 , 4.198032082290820E-02 , + 4.58 , -0.14747370012324 , + 4.585 , -0.32583933056166 , + 4.59 , -0.48349824002692 , + 4.595 , -0.61801754775951 , + 4.6 , -0.72971208292477 , + 4.605 , -0.82083468227042 , + 4.61 , -0.89775066250987 , + 4.615 , -0.96888908984926 , + 4.62 , -1.0384220049282 , + 4.625 , -1.10412227179889 , + 4.63 , -1.16142632685637 , + 4.635 , -1.20605223114456 , + 4.64 , -1.23228150965333 , + 4.645 , -1.2330625103562 , + 4.65 , -1.20312802686153 , + 4.655 , -1.13793589958523 , + 4.66 , -1.0287141764878 , + 4.665 , -0.8641100498206 , + 4.67 , -0.63938852378214 , + 4.675 , -0.35979779312165 , + 4.68 , -3.418457890781780E-02 , + 4.685 , 0.32663500010105 , + 4.69 , 0.70029027164172 , + 4.695 , 1.04848934874391 , + 4.7 , 1.32926995685333 , + 4.705 , 1.5103149027497 , + 4.71 , 1.56674966292037 , + 4.715 , 1.47490809529175 , + 4.72 , 1.22042977817102 , + 4.725 , 0.812026061087399 , + 4.73 , 0.280340511193259 , + 4.735 , -0.25291232049697 , + 4.74 , -0.74295446485739 , + 4.745 , -1.21402870653543 , + 4.75 , -1.61401924449385 , + 4.755 , -1.89622337299338 , + 4.76 , -2.02674956179211 , + 4.765 , -1.98422913056168 , + 4.77 , -1.76288837183623 , + 4.775 , -1.38094808362694 , + 4.78 , -0.88180280078288 , + 4.785 , -0.32340693878301 , + 4.79 , 0.309775095794083 , + 4.795 , 0.96398882181726 , + 4.8 , 1.46521480566007 , + 4.805 , 1.77054065361263 , + 4.81 , 1.87515908448363 , + 4.815 , 1.80763374123846 , + 4.82 , 1.61871625340312 , + 4.825 , 1.37383254873989 , + 4.83 , 1.14323155673988 , + 4.835 , 0.984115330306988 , + 4.84 , 0.925398091665492 , + 4.845 , 0.966346779872473 , + 4.85 , 1.08319151549769 , + 4.855 , 1.23351422222229 , + 4.86 , 1.36203968864373 , + 4.865 , 1.41500821627328 , + 4.87 , 1.35632626255014 , + 4.875 , 1.17338649661648 , + 4.88 , 0.873766424591019 , + 4.885 , 0.482332773802851 , + 4.89 , 3.923546396876550E-02 , + 4.895 , -0.22463035892901 , + 4.9 , -0.44775774321397 , + 4.905 , -0.63337252960387 , + 4.91 , -0.77214474283379 , + 4.915 , -0.86139644715887 , + 4.92 , -0.90539713757332 , + 4.925 , -0.91457475953945 , + 4.93 , -0.90292943826226 , + 4.935 , -0.88570153051275 , + 4.94 , -0.87839307255918 , + 4.945 , -0.89582516241653 , + 4.95 , -0.95014576706764 , + 4.955 , -1.0485044185337 , + 4.96 , -1.1912694657772 , + 4.965 , -1.3708025639651 , + 4.97 , -1.57077187288448 , + 4.975 , -1.76663217835511 , + 4.98 , -1.92803570312605 , + 4.985 , -2.02359808191781 , + 4.99 , -2.0273751484136 , + 4.995 , -1.9250033514058 , + 5.0 , -1.71741034508892 , + 5.005 , -1.42182210128631 , + 5.01 , -1.07072647445332 , + 5.015 , -0.70800393596021 , + 5.02 , -0.38102872779966 , + 5.025 , -0.13042197488723 , + 5.03 , 3.718076749748670E-02 , + 5.035 , 0.111181074997115 , + 5.04 , 1.189110285104030E-02 , + 5.045 , -0.20207868848779 , + 5.05 , -0.44910010485315 , + 5.055 , -0.64276640560255 , + 5.06 , -0.71152270492906 , + 5.065 , -0.61247600528197 , + 5.07 , -0.33784697642092 , + 5.075 , 8.416359716705800E-02 , + 5.08 , 0.593871386434318 , + 5.085 , 1.11066790591664 , + 5.09 , 1.547857061782 , + 5.095 , 1.82798847499016 , + 5.1 , 1.89521989018272 , + 5.105 , 1.72255076224409 , + 5.11 , 1.31357650362981 , + 5.115 , 0.700681089848237 , + 5.12 , -3.944101274735180E-02 , + 5.125 , -0.57538253938727 , + 5.13 , -1.09801528037525 , + 5.135 , -1.54898464132246 , + 5.14 , -1.87419746618154 , + 5.145 , -2.02778376701628 , + 5.15 , -1.97724411607912 , + 5.155 , -1.70971194891691 , + 5.16 , -1.23638258073101 , + 5.165 , -0.59315494390597 , + 5.17 , 0.111368648891046 , + 5.175 , 0.663169389460638 , + 5.18 , 1.18144631611042 , + 5.185 , 1.60890018466206 , + 5.19 , 1.8979822410482 , + 5.195 , 2.01808652053979 , + 5.2 , 1.96085818554624 , + 5.205 , 1.74218321821589 , + 5.21 , 1.39935953655912 , + 5.215 , 0.984200755295425 , + 5.22 , 0.55469135825056 , + 5.225 , 0.166760087786826 , + 5.23 , -0.29010383111112 , + 5.235 , -0.69805571505204 , + 5.24 , -0.82852798007756 , + 5.245 , -0.70078564730017 , + 5.25 , -0.3628421318389 , + 5.255 , 7.584234896818380E-02 , + 5.26 , 0.43610921884854 , + 5.265 , 0.80338816570313 , + 5.27 , 1.14583363535399 , + 5.275 , 1.44233546379898 , + 5.28 , 1.68096745166101 , + 5.285 , 1.85664177773435 , + 5.29 , 1.96856248638458 , + 5.295 , 2.01783075579683 , + 5.3 , 2.00659270193592 , + 5.305 , 1.93938767266716 , + 5.31 , 1.82500672559004 , + 5.315 , 1.67686130322037 , + 5.32 , 1.5118566159347 , + 5.325 , 1.34860724410237 , + 5.33 , 1.20475926474899 , + 5.335 , 1.09288033252557 , + 5.34 , 1.01607186043109 , + 5.345 , 0.965585517364128 , + 5.35 , 0.921875442510843 , + 5.355 , 0.858856383267098 , + 5.36 , 0.750174073799282 , + 5.365 , 0.575950824274314 , + 5.37 , 0.328597045194569 , + 5.375 , 1.652082973209100E-02 , + 5.38 , -0.50276970745072 , + 5.385 , -1.03563631031452 , + 5.39 , -1.50490953601753 , + 5.395 , -1.84994677847168 , + 5.4 , -2.02843329407602 , + 5.405 , -2.02545789978173 , + 5.41 , -1.85714442697612 , + 5.415 , -1.56774223620682 , + 5.42 , -1.22052435654413 , + 5.425 , -0.88506969766425 , + 5.43 , -0.62375651367727 , + 5.435 , -0.47941781141452 , + 5.44 , -0.46672787176114 , + 5.445 , -0.57069258501391 , + 5.45 , -0.75256544897363 , + 5.455 , -0.95943306586182 , + 5.46 , -1.13415327472143 , + 5.465 , -1.22591171353667 , + 5.47 , -1.2008821223853 , + 5.475 , -1.04867466773548 , + 5.48 , -0.7816480899877 , + 5.485 , -0.43025221187204 , + 5.49 , -3.849293308865140E-02 , + 5.495 , 0.351248620973817 , + 5.5 , 0.678851223955433 , + 5.505 , 0.903561274568929 , + 5.51 , 1.000825087451 , + 5.515 , 0.960934560706297 , + 5.52 , 0.78992867723245 , + 5.525 , 0.511317876998132 , + 5.53 , 0.162760320816359 , + 5.535 , -0.15233717951736 , + 5.54 , -0.408210240848 , + 5.545 , -0.62888561745421 , + 5.55 , -0.79619865273995 , + 5.555 , -0.90334422649211 , + 5.56 , -0.957273231721 , + 5.565 , -0.97632112916908 , + 5.57 , -0.98529324126005 , + 5.575 , -1.01088001195299 , + 5.58 , -1.07663632540647 , + 5.585 , -1.1964450302827 , + 5.59 , -1.36885544627383 , + 5.595 , -1.57548223311668 , + 5.6 , -1.78343920945552 , + 5.605 , -1.94998845541488 , + 5.61 , -2.02894698358654 , + 5.615 , -1.97893684719994 , + 5.62 , -1.77192812280346 , + 5.625 , -1.39963819951885 , + 5.63 , -0.87646499571534 , + 5.635 , -0.23861147042705 , + 5.64 , 0.336218007155657 , + 5.645 , 0.847327478768983 , + 5.65 , 1.30857622082849 , + 5.655 , 1.67664606685409 , + 5.66 , 1.91879317489308 , + 5.665 , 2.01692172130926 , + 5.67 , 1.96853013034153 , + 5.675 , 1.78510825075991 , + 5.68 , 1.4896405295593 , + 5.685 , 1.11350916384325 , + 5.69 , 0.692073407024996 , + 5.695 , 0.259804585073245 , + 5.7 , -0.24312332096602 , + 5.705 , -0.83740028991543 , + 5.71 , -1.32862161402076 , + 5.715 , -1.69669262414581 , + 5.72 , -1.93128745142237 , + 5.725 , -2.02921997287969 , + 5.73 , -1.99337280480397 , + 5.735 , -1.83373410433008 , + 5.74 , -1.56747293050187 , + 5.745 , -1.21724094498849 , + 5.75 , -0.81052148648056 , + 5.755 , -0.38038326455022 , + 5.76 , 4.429619989889450E-02 , + 5.765 , 0.482041333875258 , + 5.77 , 0.827113852485307 , + 5.775 , 1.05562255275457 , + 5.78 , 1.15574510229285 , + 5.785 , 1.13102185729002 , + 5.79 , 1.00111402711585 , + 5.795 , 0.796402227894675 , + 5.8 , 0.550299036643284 , + 5.805 , 0.294746376632263 , + 5.81 , 5.779627739619110E-02 , + 5.815 , -0.14033970324891 , + 5.82 , -0.29057904479289 , + 5.825 , -0.39279585396293 , + 5.83 , -0.4494482504971 , + 5.835 , -0.46100119177358 , + 5.84 , -0.42521937611264 , + 5.845 , -0.3375317644422 , + 5.85 , -0.19158847654649 , + 5.855 , 1.752214546441880E-02 , + 5.86 , 0.287160001209617 , + 5.865 , 0.602028255467961 , + 5.87 , 0.933254236049531 , + 5.875 , 1.24149905843902 , + 5.88 , 1.48303299176761 , + 5.885 , 1.61843953382086 , + 5.89 , 1.62241665153411 , + 5.895 , 1.49156853196882 , + 5.9 , 1.24765942303674 , + 5.905 , 0.935345755846739 , + 5.91 , 0.614175990416646 , + 5.915 , 0.345931028275661 , + 5.92 , 0.180659960734569 , + 5.925 , 0.145383600846828 , + 5.93 , 0.237765412366942 , + 5.935 , 0.425793201109318 , + 5.94 , 0.654468234473261 , + 5.945 , 0.858677159866798 , + 5.95 , 0.978207334350809 , + 5.955 , 0.970329031591707 , + 5.96 , 0.818026030367143 , + 5.965 , 0.533251338659083 , + 5.97 , 0.15356868640373 , + 5.975 , -0.26839144886352 , + 5.98 , -0.67878215135657 , + 5.985 , -1.03400683986537 , + 5.99 , -1.3073585979251 , + 5.995 , -1.49178002375022 , + 6.0 , -1.59881218617846 , + 6.005 , -1.65263612785215 , + 6.01 , -1.68040775595467 , + 6.015 , -1.70326118069031 , + 6.02 , -1.73147514087517 , + 6.025 , -1.76409391726272 , + 6.03 , -1.79154678107851 , + 6.035 , -1.80004486312369 , + 6.04 , -1.77657113231061 , + 6.045 , -1.71309083748955 , + 6.05 , -1.60890845106533 , + 6.055 , -1.47045377157793 , + 6.06 , -1.30823176663841 , + 6.065 , -1.13218678075657 , + 6.07 , -0.94831725641373 , + 6.075 , -0.7582938943429 , + 6.08 , -0.56105916215743 , + 6.085 , -0.35465660035081 , + 6.09 , -0.1384716720616 , + 6.095 , 8.181401775998960E-02 , + 6.1 , 0.295120583821675 , + 6.105 , 0.488813785339096 , + 6.11 , 0.645978019217284 , + 6.115 , 0.751956445909178 , + 6.12 , 0.797070178696218 , + 6.125 , 0.778938415578525 , + 6.13 , 0.703933126539259 , + 6.135 , 0.586193282063444 , + 6.14 , 0.444346814137257 , + 6.145 , 0.29825595848257 , + 6.15 , 0.16716086262001 , + 6.155 , 6.845201123569530E-02 , + 6.16 , 1.638790200297000E-02 , + 6.165 , 2.138979757918980E-02 , + 6.17 , 9.013446340544370E-02 , + 6.175 , 0.225364316943996 , + 6.18 , 0.424627726925139 , + 6.185 , 0.678666340108451 , + 6.19 , 0.970459569802561 , + 6.195 , 1.27533903222018 , + 6.2 , 1.56265390764561 , + 6.205 , 1.79967884086063 , + 6.21 , 1.95730777614782 , + 6.215 , 2.01568092318868 , + 6.22 , 1.9680798901563 , + 6.225 , 1.82260275300508 , + 6.23 , 1.6012628707179 , + 6.235 , 1.33584067303513 , + 6.24 , 1.06088096670087 , + 6.245 , 0.806020651973241 , + 6.25 , 0.590240383625112 , + 6.255 , 0.419170058894404 , + 6.26 , 0.285567810216695 , + 6.265 , 0.172882474189092 , + 6.27 , 6.141521693570270E-02 , + 6.275 , -4.100655746000240E-02 , + 6.28 , -0.12748144658853 , + 6.285 , -0.22402606929835 , + 6.29 , -0.32266457931099 , + 6.295 , -0.41245768954213 , + 6.3 , -0.48300494677694 , + 6.305 , -0.5281469572368 , + 6.31 , -0.54867239852271 , + 6.315 , -0.55291028225442 , + 6.32 , -0.55498836852966 , + 6.325 , -0.57168033795742 , + 6.33 , -0.61890124937392 , + 6.335 , -0.70832720330432 , + 6.34 , -0.8444688842815 , + 6.345 , -1.02312789012362 , + 6.35 , -1.23201420479741 , + 6.355 , -1.45302869056683 , + 6.36 , -1.66483750094807 , + 6.365 , -1.84512502578643 , + 6.37 , -1.97287391729285 , + 6.375 , -2.03065548439675 , + 6.38 , -2.00620454087577 , + 6.385 , -1.89315139172675 , + 6.39 , -1.69175663119939 , + 6.395 , -1.40995495579992 , + 6.4 , -1.06376441111769 , + 6.405 , -0.67620069765757 , + 6.41 , -0.27510795942141 , + 6.415 , 0.196812130002227 , + 6.42 , 0.789662759769171 , + 6.425 , 1.26662960840841 , + 6.43 , 1.6072638071671 , + 6.435 , 1.81182394487741 , + 6.44 , 1.89972228643561 , + 6.445 , 1.9047619217593 , + 6.45 , 1.86751034078394 , + 6.455 , 1.8254292028055 , + 6.46 , 1.80357147143536 , + 6.465 , 1.80953648503866 , + 6.47 , 1.83384689586528 , + 6.475 , 1.8545291406415 , + 6.48 , 1.84468010904891 , + 6.485 , 1.78185447755559 , + 6.49 , 1.65634384795161 , + 6.495 , 1.47475850013982 , + 6.5 , 1.25778784095604 , + 6.505 , 1.03382280148781 , + 6.51 , 0.830377669084782 , + 6.515 , 0.664847688813952 , + 6.52 , 0.537441337312092 , + 6.525 , 0.429805314578715 , + 6.53 , 0.31046587513464 , + 6.535 , 0.1447657890999 , + 6.54 , -9.382243026102850E-02 , + 6.545 , -0.41334712070585 , + 6.55 , -0.79651775006838 , + 6.555 , -1.20028045361043 , + 6.56 , -1.56291508214219 , + 6.565 , -1.81661688690887 , + 6.57 , -1.90206035531056 , + 6.575 , -1.7817477770441 , + 6.58 , -1.44921463753588 , + 6.585 , -0.93148892423534 , + 6.59 , -0.28406148521622 , + 6.595 , 0.323315074176515 , + 6.6 , 0.852343584238104 , + 6.605 , 1.31274405752464 , + 6.61 , 1.66746511449112 , + 6.615 , 1.89908333611956 , + 6.62 , 2.00928735485692 , + 6.625 , 2.01484159347826 , + 6.63 , 1.94157792559844 , + 6.635 , 1.81783611017065 , + 6.64 , 1.66894503437948 , + 6.645 , 1.51424202651612 , + 6.65 , 1.36676756429498 , + 6.655 , 1.23440796614096 , + 6.66 , 1.12141683734346 , + 6.665 , 1.03005163859298 , + 6.67 , 0.961856012808879 , + 6.675 , 0.917594207115419 , + 6.68 , 0.895802572654735 , + 6.685 , 0.891399934871178 , + 6.69 , 0.895639060058472 , + 6.695 , 0.897175457172006 , + 6.7 , 0.883661601343515 , + 6.705 , 0.844008961722013 , + 6.71 , 0.77132601406367 , + 6.715 , 0.665213447750178 , + 6.72 , 0.531957875807601 , + 6.725 , 0.382692370009228 , + 6.73 , 0.230704777961798 , + 6.735 , 8.848409780228460E-02 , + 6.74 , -4.320967298403890E-02 , + 6.745 , -0.1762892860789 , + 6.75 , -0.28784586821218 , + 6.755 , -0.38905860495499 , + 6.76 , -0.49291382383649 , + 6.765 , -0.61009214038178 , + 6.77 , -0.74528548081034 , + 6.775 , -0.89462751554703 , + 6.78 , -1.04544755808821 , + 6.785 , -1.17892732569852 , + 6.79 , -1.27460153013389 , + 6.795 , -1.31507899117539 , + 6.8 , -1.28996744751844 , + 6.805 , -1.19853880216558 , + 6.81 , -1.0504463612584 , + 6.815 , -0.86390673664632 , + 6.82 , -0.66172430237656 , + 6.825 , -0.46650461944826 , + 6.83 , -0.29641016005237 , + 6.835 , -0.16215486668974 , + 6.84 , -6.552041776213589E-02 , + 6.845 , 2.987151640449150E-04 , + 6.85 , 4.839493719297370E-02 , + 6.855 , 9.446598470843660E-02 , + 6.86 , 0.152946671436979 , + 6.865 , 0.234067255310907 , + 6.87 , 0.342244784612781 , + 6.875 , 0.475796904621799 , + 6.88 , 0.627950076248601 , + 6.885 , 0.788973056491094 , + 6.89 , 0.948691666991149 , + 6.895 , 1.09834384227231 , + 6.9 , 1.23115050816982 , + 6.905 , 1.34171557597024 , + 6.91 , 1.42465179927775 , + 6.915 , 1.47287601846948 , + 6.92 , 1.47626092610496 , + 6.925 , 1.42154296744535 , + 6.93 , 1.29406455566583 , + 6.935 , 1.08117541948277 , + 6.94 , 0.776554035067551 , + 6.945 , 0.384383520531035 , + 6.95 , -7.294167926560280E-02 , + 6.955 , -0.53864400514197 , + 6.96 , -1.00153859379899 , + 6.965 , -1.41800783516812 , + 6.97 , -1.7468581519585 , + 6.975 , -1.95670089086248 , + 6.98 , -2.03182599021495 , + 6.985 , -1.97504743961906 , + 6.99 , -1.80676558399137 , + 6.995 , -1.5604834986916 , + 7.0 , -1.27576644446333 , + 7.005 , -0.9903221748174 , + 7.01 , -0.73330353810734 , + 7.015 , -0.52160326879535 , + 7.02 , -0.35985223488993 , + 7.025 , -0.24369954400838 , + 7.03 , -0.16525998770838 , + 7.035 , -0.11901231195031 , + 7.04 , -0.10598389561423 , + 7.045 , -0.13446900972305 , + 7.05 , -0.21699230917524 , + 7.055 , -0.36458839091288 , + 7.06 , -0.58005276943233 , + 7.065 , -0.85208512054878 , + 7.07 , -1.15259800704237 , + 7.075 , -1.43896995914881 , + 7.08 , -1.66118309359685 , + 7.085 , -1.771927531099 , + 7.09 , -1.73721975477998 , + 7.095 , -1.54526433804976 , + 7.1 , -1.21113953262348 , + 7.105 , -0.7752249017621 , + 7.11 , -0.29527299039846 , + 7.115 , 0.173294693493191 , + 7.12 , 0.57635137765972 , + 7.125 , 0.862335395139578 , + 7.13 , 1.01919271305477 , + 7.135 , 1.06290746127159 , + 7.14 , 1.03167712327493 , + 7.145 , 0.975104812475545 , + 7.15 , 0.94186991196106 , + 7.155 , 0.968697291206275 , + 7.16 , 1.07242991307441 , + 7.165 , 1.24693307983413 , + 7.17 , 1.46588613539846 , + 7.175 , 1.69040391004537 , + 7.18 , 1.87856926470802 , + 7.185 , 1.9942412785979 , + 7.19 , 2.01380495894182 , + 7.195 , 1.93002933646123 , + 7.2 , 1.75219708416187 , + 7.205 , 1.50259348018555 , + 7.21 , 1.21097997176944 , + 7.215 , 0.908929916225265 , + 7.22 , 0.624987318443838 , + 7.225 , 0.380818385977012 , + 7.23 , 0.188682790341481 , + 7.235 , 5.054908150564660E-02 , + 7.24 , -4.224733175465410E-02 , + 7.245 , -0.10533217769884 , + 7.25 , -0.15872049577028 , + 7.255 , -0.22626933934594 , + 7.26 , -0.32933473878503 , + 7.265 , -0.48196141281812 , + 7.27 , -0.68656470353389 , + 7.275 , -0.93107691321487 , + 7.28 , -1.18865855652987 , + 7.285 , -1.420854392386 , + 7.29 , -1.58410377773137 , + 7.295 , -1.63852514448294 , + 7.3 , -1.55725203777855 , + 7.305 , -1.33440140393595 , + 7.31 , -0.98961414150744 , + 7.315 , -0.56741260276393 , + 7.32 , -0.13082880911958 , + 7.325 , 0.249583666745638 , + 7.33 , 0.508940072170202 , + 7.335 , 0.600662717049061 , + 7.34 , 0.5059779991769 , + 7.345 , 0.238142376340394 , + 7.35 , -0.15979854274957 , + 7.355 , -0.62330642360817 , + 7.36 , -1.07861985315351 , + 7.365 , -1.45613573961171 , + 7.37 , -1.70221047327019 , + 7.375 , -1.78733777799186 , + 7.38 , -1.70935128300863 , + 7.385 , -1.49139661468471 , + 7.39 , -1.17576612947581 , + 7.395 , -0.81553092872387 , + 7.4 , -0.46579815462372 , + 7.405 , -0.17584397718572 , + 7.41 , 1.695055532407140E-02 , + 7.415 , 9.080438530410280E-02 , + 7.42 , 4.100203845188310E-02 , + 7.425 , -0.12015714114647 , + 7.43 , -0.36451642152235 , + 7.435 , -0.65063615988914 , + 7.44 , -0.92820901616803 , + 7.445 , -1.14411024994249 , + 7.45 , -1.2495457268474 , + 7.455 , -1.20784941543681 , + 7.46 , -1.00217372922289 , + 7.465 , -0.64135799082343 , + 7.47 , -0.16185956349448 , + 7.475 , 0.375443341531982 , + 7.48 , 0.893242359584305 , + 7.485 , 1.30942170236106 , + 7.49 , 1.55069511538195 , + 7.495 , 1.56597687306026 , + 7.5 , 1.33649434622083 , + 7.505 , 0.880087983425295 , + 7.51 , 0.248772549844589 , + 7.515 , -0.36466467822546 , + 7.52 , -0.91944206639744 , + 7.525 , -1.41086648314942 , + 7.53 , -1.78197182048109 , + 7.535 , -1.99448021035504 , + 7.54 , -2.03276742886028 , + 7.545 , -1.9038540437772 , + 7.55 , -1.63408290724591 , + 7.555 , -1.26366851276266 , + 7.56 , -0.84036300953546 , + 7.565 , -0.41319072336647 , + 7.57 , -2.695184824283270E-02 , + 7.575 , 0.376706658165673 , + 7.58 , 0.651108722060469 , + 7.585 , 0.775943751253261 , + 7.59 , 0.755597751751617 , + 7.595 , 0.613374035034045 , + 7.6 , 0.389100193892965 , + 7.605 , 0.134140214335999 , + 7.61 , -9.593512494436110E-02 , + 7.615 , -0.25014262596395 , + 7.62 , -0.29113724407252 , + 7.625 , -0.20287737386171 , + 7.63 , 5.024227092122790E-03 , + 7.635 , 0.297903261089418 , + 7.64 , 0.622107890736794 , + 7.645 , 0.91558081793758 , + 7.65 , 1.12076183929425 , + 7.655 , 1.19700603742361 , + 7.66 , 1.12967888152307 , + 7.665 , 0.933743975370447 , + 7.67 , 0.650793261469538 , + 7.675 , 0.339973230252299 , + 7.68 , 6.485809767286120E-02 , + 7.685 , -0.12047151548951 , + 7.69 , -0.18271341139574 , + 7.695 , -0.11542038316497 , + 7.7 , 6.117124311775080E-02 , + 7.705 , 0.306221765396461 , + 7.71 , 0.568625694223555 , + 7.715 , 0.79886093305278 , + 7.72 , 0.959184513633666 , + 7.725 , 1.02975813458714 , + 7.73 , 1.00975707269538 , + 7.735 , 0.913870269761431 , + 7.74 , 0.765608368548335 , + 7.745 , 0.589594520216864 , + 7.75 , 0.405299730586112 , + 7.755 , 0.223985767660469 , + 7.76 , 4.920974997763450E-02 , + 7.765 , -0.11994024975627 , + 7.77 , -0.28424112296356 , + 7.775 , -0.43999294669787 , + 7.78 , -0.57663798061898 , + 7.785 , -0.67751213622858 , + 7.79 , -0.72360079867587 , + 7.795 , -0.69901457723046 , + 7.8 , -0.59650776204881 , + 7.805 , -0.42155886366402 , + 7.81 , -0.19380300792328 , + 7.815 , 5.489933475191600E-02 , + 7.82 , 0.285466317840837 , + 7.825 , 0.458377987772727 , + 7.83 , 0.540543411689915 , + 7.835 , 0.510857284716815 , + 7.84 , 0.363486292918927 , + 7.845 , 0.108336402431131 , + 7.85 , -0.21209396424761 , + 7.855 , -0.56957977141521 , + 7.86 , -0.94077073678275 , + 7.865 , -1.29262615047061 , + 7.87 , -1.59622106208727 , + 7.875 , -1.82918316989524 , + 7.88 , -1.97699031089989 , + 7.885 , -2.03327946447786 , + 7.89 , -1.99933934346025 , + 7.895 , -1.88300955675939 , + 7.9 , -1.69721418310355 , + 7.905 , -1.45829064978291 , + 7.91 , -1.18410498022345 , + 7.915 , -0.8919394708508 , + 7.92 , -0.59649837620085 , + 7.925 , -0.30856724453543 , + 7.93 , -3.473084459177880E-02 , + 7.935 , 0.243954038684612 , + 7.94 , 0.505067577023267 , + 7.945 , 0.74523171014185 , + 7.95 , 0.961076322702563 , + 7.955 , 1.14544017577101 , + 7.96 , 1.28755260199966 , + 7.965 , 1.37508301728453 , + 7.97 , 1.39752728794968 , + 7.975 , 1.35018389601987 , + 7.98 , 1.23776787698572 , + 7.985 , 1.07653932806098 , + 7.99 , 0.893865005632781 , + 7.995 , 0.724806073674302 , + 8.0 , 0.606180934525952 , + 8.005 , 0.569233587341791 , + 8.01 , 0.632383043958699 , + 8.015 , 0.795725327814524 , + 8.02 , 1.03874194319127 , + 8.025 , 1.32196705023762 , + 8.03 , 1.59246805399968 , + 8.035 , 1.79229440498998 , + 8.04 , 1.86849022149291 , + 8.045 , 1.78281948278322 , + 8.05 , 1.51926230063055 , + 8.055 , 1.08785213984058 , + 8.06 , 0.524349594247236 , + 8.065 , -0.1140897577962 , + 8.07 , -0.75657207669552 , + 8.075 , -1.32834364834345 , + 8.08 , -1.76124306233852 , + 8.085 , -2.00310207974856 , + 8.09 , -2.02480910234302 , + 8.095 , -1.82430118945956 , + 8.1 , -1.42701906953591 , + 8.105 , -0.88275056011672 , + 8.11 , -0.25930710346958 , + 8.115 , 0.36611395388268 , + 8.12 , 0.916779579720004 , + 8.125 , 1.32634332320688 , + 8.13 , 1.54748990874522 , + 8.135 , 1.55804957216978 , + 8.14 , 1.36358979345776 , + 8.145 , 0.996118542284482 , + 8.15 , 0.509028622424576 , + 8.155 , -3.108833671467930E-02 , + 8.16 , -0.55458355458891 , + 8.165 , -0.9992113406596 , + 8.17 , -1.31909921378195 , + 8.175 , -1.4907344205054 , + 8.18 , -1.51500626604052 , + 8.185 , -1.41506172917135 , + 8.19 , -1.23045719608832 , + 8.195 , -1.00875563741852 , + 8.2 , -0.79618535909745 , + 8.205 , -0.62910374181022 , + 8.21 , -0.52781524086439 , + 8.215 , -0.49375763302869 , + 8.22 , -0.51036868088539 , + 8.225 , -0.54721127046085 , + 8.23 , -0.56640455149806 , + 8.235 , -0.5300607346312 , + 8.24 , -0.40739746710395 , + 8.245 , -0.18031656379607 , + 8.25 , 9.909295562647380E-02 , + 8.255 , 0.384178096593259 , + 8.26 , 0.711568797471058 , + 8.265 , 1.05465985685733 , + 8.27 , 1.38307322715161 , + 8.275 , 1.66640133480447 , + 8.28 , 1.87778042356214 , + 8.285 , 1.99690726227749 , + 8.29 , 2.01218574892656 , + 8.295 , 1.9218468256107 , + 8.3 , 1.73397654400921 , + 8.305 , 1.4654715893691 , + 8.31 , 1.14002097734659 , + 8.315 , 0.785289540807961 , + 8.32 , 0.429654714191936 , + 8.325 , 9.887434390542030E-02 , + 8.33 , -0.27373446466779 , + 8.335 , -0.61453278823147 , + 8.34 , -0.86361514651737 , + 8.345 , -1.02764207046752 , + 8.35 , -1.12312770730449 , + 8.355 , -1.17242345160079 , + 8.36 , -1.19890949112902 , + 8.365 , -1.22231476786338 , + 8.37 , -1.25506074091502 , + 8.375 , -1.30037291926648 , + 8.38 , -1.35246560106362 , + 8.385 , -1.39867274893801 , + 8.39 , -1.42300013455657 , + 8.395 , -1.41027137760835 , + 8.4 , -1.34988412628361 , + 8.405 , -1.23833354826905 , + 8.41 , -1.08003474781669 , + 8.415 , -0.8863811686465 , + 8.42 , -0.67334691448991 , + 8.425 , -0.45824149658395 , + 8.43 , -0.25648271091485 , + 8.435 , -7.919497664086800E-02 , + 8.44 , 6.790702566583660E-02 , + 8.445 , 0.184336104551994 , + 8.45 , 0.273607496426052 , + 8.455 , 0.341427765954767 , + 8.46 , 0.393859568348449 , + 8.465 , 0.436054008314734 , + 8.47 , 0.471822329873715 , + 8.475 , 0.503940686983312 , + 8.48 , 0.534766790770446 , + 8.485 , 0.566720547413461 , + 8.49 , 0.602204083610117 , + 8.495 , 0.642759211345947 , + 8.5 , 0.687546596661957 , + 8.505 , 0.73161370540631 , + 8.51 , 0.764633590722345 , + 8.515 , 0.770779801924118 , + 8.52 , 0.730226474533298 , + 8.525 , 0.622364880535585 , + 8.53 , 0.430299195926097 , + 8.535 , 0.145690142921501 , + 8.54 , -0.1875029917819 , + 8.545 , -0.54835468448798 , + 8.55 , -0.93829077724458 , + 8.555 , -1.32093112448324 , + 8.56 , -1.65568314187632 , + 8.565 , -1.90374313930578 , + 8.57 , -2.03414217931564 , + 8.575 , -2.02871594615485 , + 8.58 , -1.88502979034511 , + 8.585 , -1.61666670363564 , + 8.59 , -1.25090542907548 , + 8.595 , -0.82439719072454 , + 8.6 , -0.3777961843308 , + 8.605 , 5.997342456618780E-02 , + 8.61 , 0.498580351025926 , + 8.615 , 0.848666797179574 , + 8.62 , 1.09518857615416 , + 8.625 , 1.23554791479412 , + 8.63 , 1.2781763580922 , + 8.635 , 1.2403900007702 , + 8.64 , 1.14586627728766 , + 8.645 , 1.02207806372073 , + 8.65 , 0.897804023904626 , + 8.655 , 0.800618191332478 , + 8.66 , 0.754133205007585 , + 8.665 , 0.775081318262375 , + 8.67 , 0.87060821275674 , + 8.675 , 1.03627950859147 , + 8.68 , 1.25531150972849 , + 8.685 , 1.49959206680695 , + 8.69 , 1.73283203030496 , + 8.695 , 1.91564235877547 , + 8.7 , 2.01171708813146 , + 8.705 , 1.99404478322172 , + 8.71 , 1.85004122617725 , + 8.715 , 1.5844790314963 , + 8.72 , 1.21937543098226 , + 8.725 , 0.790685383472318 , + 8.73 , 0.34253999395618 , + 8.735 , -8.315108890721259E-02 , + 8.74 , -0.45782997432698 , + 8.745 , -0.73560630397696 , + 8.75 , -0.90358121095544 , + 8.755 , -0.96494822819405 , + 8.76 , -0.93630744097796 , + 8.765 , -0.84299937779174 , + 8.77 , -0.71350666162014 , + 8.775 , -0.57402043454602 , + 8.78 , -0.44427168990607 , + 8.785 , -0.33542713208977 , + 8.79 , -0.2501116833682 , + 8.795 , -0.18401361018569 , + 8.8 , -0.12842784460002 , + 8.805 , -7.314603730146210E-02 , + 8.81 , -9.074234322190291E-03 , + 8.815 , 7.000693452309770E-02 , + 8.82 , 0.166710878734688 , + 8.825 , 0.280110709519932 , + 8.83 , 0.406273894637497 , + 8.835 , 0.539123020255816 , + 8.84 , 0.671480131538164 , + 8.845 , 0.796107038123461 , + 8.85 , 0.906615981394394 , + 8.855 , 0.998324490593576 , + 8.86 , 1.0690620538107 , + 8.865 , 1.11975528767815 , + 8.87 , 1.15453246345251 , + 8.875 , 1.18023682665442 , + 8.88 , 1.20532586633037 , + 8.885 , 1.23820591293966 , + 8.89 , 1.28520280175297 , + 8.895 , 1.3486570631952 , + 8.9 , 1.42571219461991 , + 8.905 , 1.50820033663049 , + 8.91 , 1.58374708347145 , + 8.915 , 1.63800541668437 , + 8.92 , 1.65764589236558 , + 8.925 , 1.63341505537543 , + 8.93 , 1.5624359419512 , + 8.935 , 1.44906883520367 , + 8.94 , 1.30406714173948 , + 8.945 , 1.14214506133789 , + 8.95 , 0.97845385721763 , + 8.955 , 0.824773099970328 , + 8.96 , 0.686415293227468 , + 8.965 , 0.560675032421674 , + 8.97 , 0.437346493634863 , + 8.975 , 0.301223152764708 , + 8.98 , 0.136102516376474 , + 8.985 , -7.065849555314389E-02 , + 8.99 , -0.32407738413447 , + 8.995 , -0.61898581453294 , + 9.0 , -0.93960037368359 , + 9.005 , -1.26143943272218 , + 9.01 , -1.55516650644025 , + 9.015 , -1.79156612412015 , + 9.02 , -1.94652674681638 , + 9.025 , -2.00503791616427 , + 9.03 , -1.96340298656283 , + 9.035 , -1.82929859570769 , + 9.04 , -1.61975611512981 , + 9.045 , -1.35763976380722 , + 9.05 , -1.06749188919142 , + 9.055 , -0.77165747380896 , + 9.06 , -0.48743715471134 , + 9.065 , -0.22573691716227 , + 9.07 , 8.680561556133970E-03 , + 9.075 , 0.215640087376458 , + 9.08 , 0.397259171267499 , + 9.085 , 0.555581085303924 , + 9.09 , 0.690729679309828 , + 9.095 , 0.800029757983254 , + 9.1 , 0.878247351202657 , + 9.105 , 0.91878759810445 , + 9.11 , 0.915444383097841 , + 9.115 , 0.864214490635585 , + 9.12 , 0.76472553582975 , + 9.125 , 0.620899809131162 , + 9.13 , 0.440670714935382 , + 9.135 , 0.234785445409552 , + 9.14 , 1.501866477042620E-02 , + 9.145 , -0.16256660035877 , + 9.15 , -0.33008216119127 , + 9.155 , -0.49037224168296 , + 9.16 , -0.64324845085619 , + 9.165 , -0.79113983805113 , + 9.17 , -0.93796449486453 , + 9.175 , -1.0876496844508 , + 9.18 , -1.24257624122444 , + 9.185 , -1.40228132491324 , + 9.19 , -1.56269378306469 , + 9.195 , -1.71610185022193 , + 9.2 , -1.85187081485719 , + 9.205 , -1.95781829391389 , + 9.21 , -2.02202032577224 , + 9.215 , -2.03476784125131 , + 9.22 , -1.99032018745331 , + 9.225 , -1.88813289198619 , + 9.23 , -1.73333557866961 , + 9.235 , -1.53634649422576 , + 9.24 , -1.31166062827625 , + 9.245 , -1.075970419663 , + 9.25 , -0.84593818781158 , + 9.255 , -0.63597140868637 , + 9.26 , -0.4563931782957 , + 9.265 , -0.31231411198407 , + 9.27 , -0.20343660584305 , + 9.275 , -0.12481923225902 , + 9.28 , -6.848370877973950E-02 , + 9.285 , -2.555427519972480E-02 , + 9.29 , 1.844706127350420E-02 , + 9.295 , 6.430221576072399E-02 , + 9.3 , 0.10743778394149 , + 9.305 , 0.141299341041405 , + 9.31 , 0.154447624403715 , + 9.315 , 0.133048252401135 , + 9.32 , 6.418690106369780E-02 , + 9.325 , -6.064647417949840E-02 , + 9.33 , -0.24265292279827 , + 9.335 , -0.47405842905361 , + 9.34 , -0.73810449789487 , + 9.345 , -1.0108148464089 , + 9.35 , -1.26431984266432 , + 9.355 , -1.47118757622947 , + 9.36 , -1.60894844812626 , + 9.365 , -1.66394726283033 , + 9.37 , -1.63377593114862 , + 9.375 , -1.52779564631775 , + 9.38 , -1.36560192630373 , + 9.385 , -1.17367488772945 , + 9.39 , -0.98085465048613 , + 9.395 , -0.81346133563023 , + 9.4 , -0.6909389063025 , + 9.405 , -0.62276084953816 , + 9.41 , -0.607149409463 , + 9.415 , -0.63177724383888 , + 9.42 , -0.67625991576389 , + 9.425 , -0.71589163373072 , + 9.43 , -0.72595664968346 , + 9.435 , -0.68589387170155 , + 9.44 , -0.58268627289106 , + 9.445 , -0.412930213848 , + 9.45 , -0.18338626940602 , + 9.455 , 8.998844390524470E-02 , + 9.46 , 0.384209486902062 , + 9.465 , 0.672301526951598 , + 9.47 , 0.926752158620487 , + 9.475 , 1.12295373373336 , + 9.48 , 1.24217806572443 , + 9.485 , 1.27378905610875 , + 9.49 , 1.21646747255966 , + 9.495 , 1.07838936456105 , + 9.5 , 0.876298148043991 , + 9.505 , 0.633562127434793 , + 9.51 , 0.377406516734523 , + 9.515 , 0.135641869430563 , + 9.52 , -6.672476216219871E-02 , + 9.525 , -0.21056458019019 , + 9.53 , -0.28496091918619 , + 9.535 , -0.28841969553759 , + 9.54 , -0.2287139810782 , + 9.545 , -0.12132500570029 , + 9.55 , 7.625888610971770E-03 , + 9.555 , 0.116222883261377 , + 9.56 , 0.213774951165706 , + 9.565 , 0.289397517200485 , + 9.57 , 0.338281477903747 , + 9.575 , 0.362345137379695 , + 9.58 , 0.369650428641696 , + 9.585 , 0.372716892921114 , + 9.59 , 0.386055603509022 , + 9.595 , 0.423398634616031 , + 9.6 , 0.495129281552051 , + 9.605 , 0.60639781396735 , + 9.61 , 0.756225797586165 , + 9.615 , 0.937731164545477 , + 9.62 , 1.13931299682061 , + 9.625 , 1.34651259505288 , + 9.63 , 1.54413547032879 , + 9.635 , 1.71824818793864 , + 9.64 , 1.85768676819293 , + 9.645 , 1.95489941817505 , + 9.65 , 2.00610002856624 , + 9.655 , 2.01090936461916 , + 9.66 , 1.97169865125757 , + 9.665 , 1.89287748522473 , + 9.67 , 1.78030387269109 , + 9.675 , 1.64090911938383 , + 9.68 , 1.48250660526215 , + 9.685 , 1.31363233674109 , + 9.69 , 1.14327915207579 , + 9.695 , 0.980390644995991 , + 9.7 , 0.833122502994828 , + 9.705 , 0.707943691566063 , + 9.71 , 0.608782533951479 , + 9.715 , 0.536448337875884 , + 9.72 , 0.488573445463521 , + 9.725 , 0.46016643878741 , + 9.73 , 0.444740766028055 , + 9.735 , 0.435798656192539 , + 9.74 , 0.428373605655483 , + 9.745 , 0.420256963476142 , + 9.75 , 0.412594868385096 , + 9.755 , 0.409674164332935 , + 9.76 , 0.417930829751558 , + 9.765 , 0.444371250852317 , + 9.77 , 0.494775704856077 , + 9.775 , 0.572057120950962 , + 9.78 , 0.675155981128035 , + 9.785 , 0.798679222993941 , + 9.79 , 0.933324321352313 , + 9.795 , 1.06694698775423 , + 9.8 , 1.18603236012388 , + 9.805 , 1.27724967196587 , + 9.81 , 1.32882747232424 , + 9.815 , 1.33155990686688 , + 9.82 , 1.27942417786924 , + 9.825 , 1.16984949079063 , + 9.83 , 1.00375336219652 , + 9.835 , 0.78541101181126 , + 9.84 , 0.522229879372249 , + 9.845 , 0.224363288427596 , + 9.85 , -7.544298823405959E-02 , + 9.855 , -0.32414911077947 , + 9.86 , -0.56925067043303 , + 9.865 , -0.80153173249929 , + 9.87 , -1.01385881998571 , + 9.875 , -1.20197758458175 , + 9.88 , -1.36481009682394 , + 9.885 , -1.50413197543959 , + 9.89 , -1.62360229940215 , + 9.895 , -1.72737604935286 , + 9.9 , -1.81858556613035 , + 9.905 , -1.89811306323292 , + 9.91 , -1.96399286416952 , + 9.915 , -2.01169321437822 , + 9.92 , -2.03524420540911 , + 9.925 , -2.02897089319518 , + 9.93 , -1.9893635845244 , + 9.935 , -1.91657784009958 , + 9.94 , -1.81508296294018 , + 9.945 , -1.69320466339342 , + 9.95 , -1.56159803137893 , + 9.955 , -1.4309899156992 , + 9.96 , -1.309755744458 , + 9.965 , -1.20194945689331 , + 9.97 , -1.10635858004562 , + 9.975 , -1.01686709903203 , + 9.98 , -0.92410491644605 , + 9.985 , -0.81798616411117 , + 9.99 , -0.69053338279253 , + 9.995 , -0.53828091954851 , + 10.0 , -0.36368359344091 , + 10.005 , -0.17516204935777 , + 10.01 , 3.283892190983560E-02 , + 10.015 , 0.330694200317556 , + 10.02 , 0.577629318788318 , + 10.025 , 0.752762239562344 , + 10.03 , 0.843359973197779 , + 10.035 , 0.846296788144704 , + 10.04 , 0.767736310318568 , + 10.045 , 0.621457280597053 , + 10.05 , 0.426437216065522 , + 10.055 , 0.204358996732675 , + 10.06 , -2.248438925201870E-02 , + 10.065 , -0.23266656596899 , + 10.07 , -0.40662586629101 , + 10.075 , -0.52750200085185 , + 10.08 , -0.58215648669077 , + 10.085 , -0.56248497246021 , + 10.09 , -0.4669190429802 , + 10.095 , -0.30169803576621 , + 10.1 , -8.141467321068210E-02 , + 10.105 , 0.171736188042055 , + 10.11 , 0.430255910671489 , + 10.115 , 0.665052841920839 , + 10.12 , 0.849933032813423 , + 10.125 , 0.965995866692921 , + 10.13 , 1.00493830188015 , + 10.135 , 0.970469370709915 , + 10.14 , 0.877402798238989 , + 10.145 , 0.748601808713132 , + 10.15 , 0.610481808617733 , + 10.155 , 0.488130421487012 , + 10.16 , 0.401133125757128 , + 10.165 , 0.360990723458034 , + 10.17 , 0.370538085006636 , + 10.175 , 0.425250483406994 , + 10.18 , 0.515772332268937 , + 10.185 , 0.630771503752903 , + 10.19 , 0.759255763887151 , + 10.195 , 0.891778215264391 , + 10.2 , 1.02038573505463 , + 10.205 , 1.13765165967161 , + 10.21 , 1.2354498601353 , + 10.215 , 1.30423925529986 , + 10.22 , 1.3333818353705 , + 10.225 , 1.31262109496076 , + 10.23 , 1.23439607687214 , + 10.235 , 1.09630588839482 , + 10.24 , 0.902881246184685 , + 10.245 , 0.665930257015006 , + 10.25 , 0.403145595569434 , + 10.255 , 0.135167464543167 , + 10.26 , -0.1181889683435 , + 10.265 , -0.34158112353947 , + 10.27 , -0.5266606974231 , + 10.275 , -0.67279436439978 , + 10.28 , -0.78577175818034 , + 10.285 , -0.87491503414711 , + 10.29 , -0.94943871678613 , + 10.295 , -1.01514749755514 , + 10.3 , -1.07240552249575 , + 10.305 , -1.1159454664886 , + 10.31 , -1.13652214942974 , + 10.315 , -1.12387719989209 , + 10.32 , -1.07009467236169 , + 10.325 , -0.9723415710773 , + 10.33 , -0.83421714797159 , + 10.335 , -0.66537603566363 , + 10.34 , -0.47961924019497 , + 10.345 , -0.29207437055768 , + 10.35 , -0.11633661841191 , + 10.355 , 3.762456752764130E-02 , + 10.36 , 0.164274796553055 , + 10.365 , 0.262005149857291 , + 10.37 , 0.331666422264028 , + 10.375 , 0.374819782001995 , + 10.38 , 0.392377294442122 , + 10.385 , 0.384141260826285 , + 10.39 , 0.34936414194296 , + 10.395 , 0.288052561776111 , + 10.4 , 0.20242178785536 , + 10.405 , 9.785306567479871E-02 , + 10.41 , -1.713557520971730E-02 , + 10.415 , -0.13204374310037 , + 10.42 , -0.23639873810073 , + 10.425 , -0.32201635263159 , + 10.43 , -0.38475152712529 , + 10.435 , -0.4251245384254 , + 10.44 , -0.44753546126283 , + 10.445 , -0.45825628870499 , + 10.45 , -0.46279334754373 , + 10.455 , -0.46346276944743 , + 10.46 , -0.45799981189361 , + 10.465 , -0.43972280992741 , + 10.47 , -0.39929302861398 , + 10.475 , -0.32758719542718 , + 10.48 , -0.21885278786041 , + 10.485 , -7.315503161217039E-02 , + 10.49 , 0.102651407152514 , + 10.495 , 0.295816563735959 , + 10.5 , 0.490226934148564 , + 10.505 , 0.669891810457828 , + 10.51 , 0.82237594525252 , + 10.515 , 0.941216017829958 , + 10.52 , 1.02661998674533 , + 10.525 , 1.08430529858058 , + 10.53 , 1.12286636573309 , + 10.535 , 1.15051988582967 , + 10.54 , 1.17222128266484 , + 10.545 , 1.18801420247095 , + 10.55 , 1.19307665922947 , + 10.555 , 1.17938295001738 , + 10.56 , 1.13840303313913 , + 10.565 , 1.06394181580147 , + 10.57 , 0.95422952397942 , + 10.575 , 0.812611611237298 , + 10.58 , 0.646677789199809 , + 10.585 , 0.466152014272008 , + 10.59 , 0.280289725059773 , + 10.595 , 9.565146176778430E-02 , + 10.6 , -8.499446193837400E-02 , + 10.605 , -0.26230216706899 , + 10.61 , -0.4386137767682 , + 10.615 , -0.6154630451662 , + 10.62 , -0.79113786663093 , + 10.625 , -0.9591661750224 , + 10.63 , -1.10826769502301 , + 10.635 , -1.22391556601366 , + 10.64 , -1.29112533315649 , + 10.645 , -1.29775475114347 , + 10.65 , -1.23742365152054 , + 10.655 , -1.11129656465532 , + 10.66 , -0.9282894842173 , + 10.665 , -0.70371663339333 , + 10.67 , -0.45680011277455 , + 10.675 , -0.20771128037236 , + 10.68 , 2.512459612945220E-02 , + 10.685 , 0.226918245807304 , + 10.69 , 0.387350552286146 , + 10.695 , 0.500473670939197 , + 10.7 , 0.564029266358019 , + 10.705 , 0.578637288901258 , + 10.71 , 0.547211894628189 , + 10.715 , 0.474757060973486 , + 10.72 , 0.368436624005821 , + 10.725 , 0.237615830995378 , + 10.73 , 9.352792827951401E-02 , + 10.735 , -5.167273774008210E-02 , + 10.74 , -0.18646809540466 , + 10.745 , -0.30187135567744 , + 10.75 , -0.39316916542135 , + 10.755 , -0.46096802891446 , + 10.76 , -0.51111268636195 , + 10.765 , -0.55334646668629 , + 10.77 , -0.59891300067983 , + 10.775 , -0.65764678122702 , + 10.78 , -0.73525453842381 , + 10.785 , -0.83150017185443 , + 10.79 , -0.93976747420304 , + 10.795 , -1.04812248595262 , + 10.8 , -1.14160318244191 , + 10.805 , -1.2051488991501 , + 10.81 , -1.22646384585139 , + 10.815 , -1.19814339245798 , + 10.82 , -1.11865520710004 , + 10.825 , -0.9920714349609 , + 10.83 , -0.82681485385664 , + 10.835 , -0.63386505629908 , + 10.84 , -0.42496268277971 , + 10.845 , -0.21119376102165 , + 10.85 , -2.191019852703480E-03 , + 10.855 , 0.194127641793734 , + 10.86 , 0.371466018382975 , + 10.865 , 0.525035130835761 , + 10.87 , 0.651602813791636 , + 10.875 , 0.749803994860723 , + 10.88 , 0.820544481310922 , + 10.885 , 0.867273287648818 , + 10.89 , 0.895807866624117 , + 10.895 , 0.913572593095597 , + 10.9 , 0.928236729298366 , + 10.905 , 0.946014350836689 , + 10.91 , 0.970040868532415 , + 10.915 , 0.999311930164329 , + 10.92 , 1.02854682988849 , + 10.925 , 1.04913139979 , + 10.93 , 1.05098941441043 , + 10.935 , 1.02499491482512 , + 10.94 , 0.965351048328359 , + 10.945 , 0.871370473531725 , + 10.95 , 0.748233229517312 , + 10.955 , 0.606563895886194 , + 10.96 , 0.460955473292802 , + 10.965 , 0.327805324612049 , + 10.97 , 0.222950093923078 , + 10.975 , 0.159562148201255 , + 10.98 , 0.146631988185719 , + 10.985 , 0.188170103964573 , + 10.99 , 0.283066815855546 , + 10.995 , 0.425428418732869 , + 11.0 , 0.605185596503197 , + 11.005 , 0.808842841129001 , + 11.01 , 1.0203252588096 , + 11.015 , 1.22200011907392 , + 11.02 , 1.39594474367148 , + 11.025 , 1.52549944650203 , + 11.03 , 1.59700049844879 , + 11.035 , 1.60145576944865 , + 11.04 , 1.53581761942562 , + 11.045 , 1.4034930323483 , + 11.05 , 1.2138831423925 , + 11.055 , 0.980912371026411 , + 11.06 , 0.720812505576093 , + 11.065 , 0.449601892036102 , + 11.07 , 0.180857582628542 , + 11.075 , -7.573381698891210E-02 , + 11.08 , -0.31470812975405 , + 11.085 , -0.53405962087938 , + 11.09 , -0.73364261678681 , + 11.095 , -0.91330540113887 , + 11.1 , -1.07132417643687 , + 11.105 , -1.20365312210336 , + 11.11 , -1.30419832213249 , + 11.115 , -1.36604239161232 , + 11.12 , -1.38321880818252 , + 11.125 , -1.35249870150789 , + 11.13 , -1.27462783831177 , + 11.135 , -1.15465182792767 , + 11.14 , -1.00123343402233 , + 11.145 , -0.82518952456788 , + 11.15 , -0.63769529339716 , + 11.155 , -0.44866816516864 , + 11.16 , -0.26576203055682 , + 11.165 , -9.416463454136630E-02 , + 11.17 , 6.287575092606090E-02 , + 11.175 , 0.203141505865471 , + 11.18 , 0.324579712695666 , + 11.185 , 0.424889751727608 , + 11.19 , 0.501750804315283 , + 11.195 , 0.5536421159011 , + 11.2 , 0.580921794960766 , + 11.205 , 0.586704260853481 , + 11.21 , 0.5770850470881 , + 11.215 , 0.560449668733132 , + 11.22 , 0.545887300846328 , + 11.225 , 0.541047479949923 , + 11.23 , 0.549990662947013 , + 11.235 , 0.571663114185204 , + 11.24 , 0.599500251771258 , + 11.245 , 0.62236878054162 , + 11.25 , 0.626713322562836 , + 11.255 , 0.599434772191117 , + 11.26 , 0.530838614269415 , + 11.265 , 0.416951659398843 , + 11.27 , 0.26068866151549 , + 11.275 , 7.163385796821510E-02 , + 11.28 , -0.13542954911164 , + 11.285 , -0.34285006284799 , + 11.29 , -0.53271798082564 , + 11.295 , -0.68922055953639 , + 11.3 , -0.80031992822441 , + 11.305 , -0.85859556643174 , + 11.31 , -0.86132208764303 , + 11.315 , -0.81002406922002 , + 11.32 , -0.70979684966059 , + 11.325 , -0.56862676261062 , + 11.33 , -0.39681435075012 , + 11.335 , -0.20645292887016 , + 11.34 , -1.082875708200500E-02 , + 11.345 , 0.176412752549899 , + 11.35 , 0.342376371445806 , + 11.355 , 0.476235796330172 , + 11.36 , 0.570527791788077 , + 11.365 , 0.622137109693916 , + 11.37 , 0.632674434445817 , + 11.375 , 0.608089217990313 , + 11.38 , 0.557537864431003 , + 11.385 , 0.491727720373806 , + 11.39 , 0.421100488617183 , + 11.395 , 0.35424883871057 , + 11.4 , 0.296898598214297 , + 11.405 , 0.251615782949777 , + 11.41 , 0.218205567537362 , + 11.415 , 0.194575186033259 , + 11.42 , 0.177750889222743 , + 11.425 , 0.164739545969125 , + 11.43 , 0.153046754059915 , + 11.435 , 0.140795993214209 , + 11.44 , 0.12656443411951 , + 11.445 , 0.109119048772985 , + 11.45 , 8.726746617413900E-02 , + 11.455 , 5.991980120903190E-02 , + 11.46 , 2.635460927914640E-02 , + 11.465 , -1.345275150280380E-02 , + 11.47 , -5.863610709200840E-02 , + 11.475 , -0.10755044102404 , + 11.48 , -0.15824658177879 , + 11.485 , -0.20921212071436 , + 11.49 , -0.26013226175091 , + 11.495 , -0.31237245530863 , + 11.5 , -0.36890715351072 , + 11.505 , -0.43358437734804 , + 11.51 , -0.50981957766845 , + 11.515 , -0.59903776556946 , + 11.52 , -0.69931194037806 , + 11.525 , -0.80465691443919 , + 11.53 , -0.90529166691289 , + 11.535 , -0.98894889157901 , + 11.54 , -1.0430005689334 , + 11.545 , -1.05693388169808 , + 11.55 , -1.0245796623575 , + 11.555 , -0.94554374723514 , + 11.56 , -0.82548253167239 , + 11.565 , -0.67515951222416 , + 11.57 , -0.50853411181021 , + 11.575 , -0.34035152824456 , + 11.58 , -0.18380744340702 , + 11.585 , -4.877605466847740E-02 , + 11.59 , 5.909608053637810E-02 , + 11.595 , 0.138405652647701 , + 11.6 , 0.191311518017365 , + 11.605 , 0.222508949979136 , + 11.61 , 0.238194003082017 , + 11.615 , 0.245269919971124 , + 11.62 , 0.250838712250952 , + 11.625 , 0.261870016704265 , + 11.63 , 0.284836510438269 , + 11.635 , 0.325131372886616 , + 11.64 , 0.386198740355232 , + 11.645 , 0.468513501462264 , + 11.65 , 0.568696341674455 , + 11.655 , 0.679148315040223 , + 11.66 , 0.788508513966795 , + 11.665 , 0.883056182933764 , + 11.67 , 0.948906416298242 , + 11.675 , 0.974570797520427 , + 11.68 , 0.953277599477234 , + 11.685 , 0.884438058167201 , + 11.69 , 0.77382364723826 , + 11.695 , 0.632334566850428 , + 11.7 , 0.473622939615698 , + 11.705 , 0.311143111887763 , + 11.71 , 0.15539149490874 , + 11.715 , 1.204008787083370E-02 , + 11.72 , -0.1185541756946 , + 11.725 , -0.24038836981401 , + 11.73 , -0.35969118541412 , + 11.735 , -0.48228327823872 , + 11.74 , -0.61114632720659 , + 11.745 , -0.74488165421895 , + 11.75 , -0.87742903375438 , + 11.755 , -0.9990735442117 , + 11.76 , -1.09838127444184 , + 11.765 , -1.16449496867241 , + 11.77 , -1.18914405096313 , + 11.775 , -1.1678940579368 , + 11.78 , -1.10040933370095 , + 11.785 , -0.98984205208497 , + 11.79 , -0.8417105178341 , + 11.795 , -0.66273801588279 , + 11.8 , -0.46007426875265 , + 11.805 , -0.24109784101173 , + 11.81 , -1.376424841735200E-02 , + 11.815 , 0.212820798236347 , + 11.82 , 0.428004774853851 , + 11.825 , 0.61976809620263 , + 11.83 , 0.775664732827253 , + 11.835 , 0.884459785072971 , + 11.84 , 0.938105319486098 , + 11.845 , 0.933533376809836 , + 11.85 , 0.873720830366818 , + 11.855 , 0.767639484838718 , + 11.86 , 0.628977669852066 , + 11.865 , 0.4738539721813 , + 11.87 , 0.31801589351757 , + 11.875 , 0.174157204161953 , + 11.88 , 4.995725310342680E-02 , + 11.885 , -5.275216941488590E-02 , + 11.89 , -0.13756423084181 , + 11.895 , -0.2120196831066 , + 11.9 , -0.28548456301669 , + 11.905 , -0.36691840941378 , + 11.91 , -0.46300320666114 , + 11.915 , -0.57696070561373 , + 11.92 , -0.70814553643099 , + 11.925 , -0.85232717509853 , + 11.93 , -1.00241060096662 , + 11.935 , -1.14936568830572 , + 11.94 , -1.28315120023664 , + 11.945 , -1.39356260774938 , + 11.95 , -1.47101607033074 , + 11.955 , -1.5073448490242 , + 11.96 , -1.4966490584904 , + 11.965 , -1.43616086274327 , + 11.97 , -1.32698077186283 , + 11.975 , -1.17446433758603 , + 11.98 , -0.98804059864846 , + 11.985 , -0.78032474331784 , + 11.99 , -0.56556840849598 , + 11.995 , -0.35765933543277 , + 12.0 , -0.16807550799874 , + 12.005 , -4.227255766186140E-03 , + 12.01 , 0.131383604645629 , + 12.015 , 0.240987503608671 , + 12.02 , 0.330348730788584 , + 12.025 , 0.406826008170448 , + 12.03 , 0.477144240124697 , + 12.035 , 0.545422501700242 , + 12.04 , 0.611915404843405 , + 12.045 , 0.672755857445556 , + 12.05 , 0.720723072194553 , + 12.055 , 0.746832365003761 , + 12.06 , 0.742346946489963 , + 12.065 , 0.700760339032901 , + 12.07 , 0.619339003519911 , + 12.075 , 0.499959785870592 , + 12.08 , 0.349159304278182 , + 12.085 , 0.177470223182518 , + 12.09 , -1.753350545225190E-03 , + 12.095 , -0.17379950342875 , + 12.1 , -0.32413511149758 , + 12.105 , -0.43987021437218 , + 12.11 , -0.51104917071923 , + 12.115 , -0.53171143244092 , + 12.12 , -0.50064639271511 , + 12.125 , -0.42174741533336 , + 12.13 , -0.30385287601246 , + 12.135 , -0.1599770009419 , + 12.14 , -5.916472086063350E-03 , + 12.145 , 0.141672124157728 , + 12.15 , 0.267467136745314 , + 12.155 , 0.359599717485464 , + 12.16 , 0.411271872916484 , + 12.165 , 0.421529890421321 , + 12.17 , 0.394986365391134 , + 12.175 , 0.340522937951077 , + 12.18 , 0.269238562662315 , + 12.185 , 0.19209641315972 , + 12.19 , 0.11779958413244 , + 12.195 , 5.136625423508250E-02 , + 12.2 , -6.300947873046220E-03 , + 12.205 , -5.782223054975370E-02 , + 12.21 , -0.10793985148095 , + 12.215 , -0.16174127408618 , + 12.22 , -0.22298866763169 , + 12.225 , -0.2929886222154 , + 12.23 , -0.37024238871399 , + 12.235 , -0.45090142997871 , + 12.24 , -0.52980992267136 , + 12.245 , -0.60178949630599 , + 12.25 , -0.66276746147737 , + 12.255 , -0.71046604589472 , + 12.26 , -0.74450641227213 , + 12.265 , -0.76599806365513 , + 12.27 , -0.77681628816103 , + 12.275 , -0.77885826543421 , + 12.28 , -0.77352755022123 , + 12.285 , -0.76159237398235 , + 12.29 , -0.74340951487468 , + 12.295 , -0.7193684533261 , + 12.3 , -0.69033859752466 , + 12.305 , -0.65790529310338 , + 12.31 , -0.62427337609045 , + 12.315 , -0.59183465481714 , + 12.32 , -0.5625391602505 , + 12.325 , -0.53727609431785 , + 12.33 , -0.51549939568466 , + 12.335 , -0.49523027754421 , + 12.34 , -0.47348196058407 , + 12.345 , -0.44699386193397 , + 12.35 , -0.41308162478787 , + 12.355 , -0.37035623858392 , + 12.36 , -0.31912406711736 , + 12.365 , -0.26136188585533 , + 12.37 , -0.20030871435109 , + 12.375 , -0.13979053261561 , + 12.38 , -8.348819445843680E-02 , + 12.385 , -3.432412971860200E-02 , + 12.39 , 5.898257672503130E-03 , + 12.395 , 3.658675251617240E-02 , + 12.4 , 5.823490831704580E-02 , + 12.405 , 7.220973009677149E-02 , + 12.41 , 8.054556791305920E-02 , + 12.415 , 8.583652449551200E-02 , + 12.42 , 9.119751190995400E-02 , + 12.425 , 0.10022495276452 , + 12.43 , 0.116830802684467 , + 12.435 , 0.144865533553475 , + 12.44 , 0.187496464655846 , + 12.445 , 0.246429769927851 , + 12.45 , 0.321134575890146 , + 12.455 , 0.408310004218564 , + 12.46 , 0.501792671730819 , + 12.465 , 0.593049206029892 , + 12.47 , 0.672237912914609 , + 12.475 , 0.729699407315016 , + 12.48 , 0.757595593934302 , + 12.485 , 0.751370987649759 , + 12.49 , 0.710716591717499 , + 12.495 , 0.639832178015772 , + 12.5 , 0.546914264636683 , + 12.505 , 0.442962983193198 , + 12.51 , 0.340141957400465 , + 12.515 , 0.249991895482425 , + 12.52 , 0.181816356681784 , + 12.525 , 0.14149413564273 , + 12.53 , 0.130883062190031 , + 12.535 , 0.147852731887966 , + 12.54 , 0.186894240935408 , + 12.545 , 0.240161777063203 , + 12.55 , 0.298772249040031 , + 12.555 , 0.3541646202598 , + 12.56 , 0.399336722395081 , + 12.565 , 0.429803491932159 , + 12.57 , 0.444142296553351 , + 12.575 , 0.444055340271153 , + 12.58 , 0.433919042501565 , + 12.585 , 0.41987739717275 , + 12.59 , 0.408602791719151 , + 12.595 , 0.405932599777175 , + 12.6 , 0.415626645287793 , + 12.605 , 0.438500795189521 , + 12.61 , 0.47213105784221 , + 12.615 , 0.511225323925744 , + 12.62 , 0.548612052766521 , + 12.625 , 0.576660272126196 , + 12.63 , 0.588829953918048 , + 12.635 , 0.581021197761628 , + 12.64 , 0.552418992096461 , + 12.645 , 0.505653719521126 , + 12.65 , 0.446259700593861 , + 12.655 , 0.381569197808235 , + 12.66 , 0.319325454510432 , + 12.665 , 0.266332799357825 , + 12.67 , 0.227442179455834 , + 12.675 , 0.20505248099 , + 12.68 , 0.199165657452942 , + 12.685 , 0.207885677656546 , + 12.69 , 0.228151213713856 , + 12.695 , 0.256464303289308 , + 12.7 , 0.289423464944378 , + 12.705 , 0.323974105633788 , + 12.71 , 0.357399971553342 , + 12.715 , 0.387180213631022 , + 12.72 , 0.410871216078733 , + 12.725 , 0.426149440224674 , + 12.73 , 0.431066724422046 , + 12.735 , 0.424468610875424 , + 12.74 , 0.40643852414304 , + 12.745 , 0.378585136191504 , + 12.75 , 0.344023630341179 , + 12.755 , 0.306976904799534 , + 12.76 , 0.272045167670388 , + 12.765 , 0.243295410789869 , + 12.77 , 0.223399948751481 , + 12.775 , 0.213036444793139 , + 12.78 , 0.210713889469279 , + 12.785 , 0.213057227036913 , + 12.79 , 0.21547276609123 , + 12.795 , 0.213006795751766 , + 12.8 , 0.201182178134479 , + 12.805 , 0.176611102924828 , + 12.81 , 0.137299208402565 , + 12.815 , 8.261651333889580E-02 , + 12.82 , 1.306254997938910E-02 , + 12.825 , -7.003874532972119E-02 , + 12.83 , -0.16475325893821 , + 12.835 , -0.26859374971277 , + 12.84 , -0.37841766630558 , + 12.845 , -0.49027765178853 , + 12.85 , -0.59935591527846 , + 12.855 , -0.70013189417767 , + 12.86 , -0.78683177941038 , + 12.865 , -0.85412623949955 , + 12.87 , -0.89792127381358 , + 12.875 , -0.91603916182254 , + 12.88 , -0.90857357773468 , + 12.885 , -0.87778714750083 , + 12.89 , -0.8275372966502 , + 12.895 , -0.76235786224487 , + 12.9 , -0.68643393291051 , + 12.905 , -0.60274756840487 , + 12.91 , -0.51264247885951 , + 12.915 , -0.41593073711012 , + 12.92 , -0.3115269410358 , + 12.925 , -0.19842747985447 , + 12.93 , -7.676760694603291E-02 , + 12.935 , 5.135539420685220E-02 , + 12.94 , 0.181528383908596 , + 12.945 , 0.307260660414741 , + 12.95 , 0.420769213103223 , + 12.955 , 0.514139979660135 , + 12.96 , 0.580592682156079 , + 12.965 , 0.615578076246798 , + 12.97 , 0.617476907926892 , + 12.975 , 0.587799377315074 , + 12.98 , 0.530889280436902 , + 12.985 , 0.453243660311424 , + 12.99 , 0.362622392194437 , + 12.995 , 0.2671120583141 , + 13.0 , 0.174286119779362 , + 13.005 , 9.052797178882990E-02 , + 13.01 , 2.054498441234870E-02 , + 13.015 , -3.294702871288870E-02 , + 13.02 , -6.937300005549160E-02 , + 13.025 , -9.028206231971420E-02 , + 13.03 , -9.913110412573760E-02 , + 13.035 , -0.10083734030815 , + 13.04 , -0.10108450259662 , + 13.045 , -0.1054266897417 , + 13.05 , -0.1182915683999 , + 13.055 , -0.14205888957835 , + 13.06 , -0.17640190935702 , + 13.065 , -0.21806865581631 , + 13.07 , -0.26120089347156 , + 13.075 , -0.29817769418101 , + 13.08 , -0.32085004389739 , + 13.085 , -0.32193831070962 , + 13.09 , -0.29631759697471 , + 13.095 , -0.24193696858333 , + 13.1 , -0.16019970762232 , + 13.105 , -5.574993867029920E-02 , + 13.11 , 6.425618048517991E-02 , + 13.115 , 0.19122987419663 , + 13.12 , 0.316346629224766 , + 13.125 , 0.431653751489729 , + 13.13 , 0.530914954469608 , + 13.135 , 0.610121196882937 , + 13.14 , 0.667657470309265 , + 13.145 , 0.704186599565721 , + 13.15 , 0.722325191446681 , + 13.155 , 0.726186367330791 , + 13.16 , 0.720836106520834 , + 13.165 , 0.711688820321258 , + 13.17 , 0.703862564199362 , + 13.175 , 0.701524520420123 , + 13.18 , 0.707294612263167 , + 13.185 , 0.721797723723084 , + 13.19 , 0.743474213000332 , + 13.195 , 0.768726481461021 , + 13.2 , 0.792431876186836 , + 13.205 , 0.808764824723334 , + 13.21 , 0.812196723822406 , + 13.215 , 0.798471820125594 , + 13.22 , 0.765360902698407 , + 13.225 , 0.713020417223642 , + 13.23 , 0.643892155196421 , + 13.235 , 0.562167990243985 , + 13.24 , 0.472970245560551 , + 13.245 , 0.381438619514679 , + 13.25 , 0.291951206368075 , + 13.255 , 0.20762340636979 , + 13.26 , 0.130166940321081 , + 13.265 , 6.006289386634430E-02 , + 13.27 , -3.060365982684810E-03 , + 13.275 , -6.001488208941340E-02 , + 13.28 , -0.11173380533579 , + 13.285 , -0.15914104631288 , + 13.29 , -0.20317809418618 , + 13.295 , -0.24493336090531 , + 13.3 , -0.28573011925772 , + 13.305 , -0.32707569024184 , + 13.31 , -0.37040876594875 , + 13.315 , -0.41668833903021 , + 13.32 , -0.46592656198441 , + 13.325 , -0.51683388329442 , + 13.33 , -0.56671530350641 , + 13.335 , -0.61172427575717 , + 13.34 , -0.64745289857378 , + 13.345 , -0.66975635467017 , + 13.35 , -0.67561421984368 , + 13.355 , -0.66382212752523 , + 13.36 , -0.63533221269618 , + 13.365 , -0.59315990071751 , + 13.37 , -0.54187928568118 , + 13.375 , -0.48684683870894 , + 13.38 , -0.43334458417513 , + 13.385 , -0.38584852580448 , + 13.39 , -0.34757223717143 , + 13.395 , -0.32034609191295 , + 13.4 , -0.30479305822331 , + 13.405 , -0.30068667519817 , + 13.41 , -0.30734431404504 , + 13.415 , -0.32393187524719 , + 13.42 , -0.3496124571983 , + 13.425 , -0.38355062958007 , + 13.43 , -0.42483772740574 , + 13.435 , -0.47243959941852 , + 13.44 , -0.52523698989138 , + 13.445 , -0.58218855059142 , + 13.45 , -0.64255715702482 , + 13.455 , -0.70611547192509 , + 13.46 , -0.77319959733532 , + 13.465 , -0.84453581144061 , + 13.47 , -0.9208154277502 , + 13.475 , -1.00210330165744 , + 13.48 , -1.08722318257344 , + 13.485 , -1.17331384017982 , + 13.49 , -1.25571905330723 , + 13.495 , -1.32830569669314 , + 13.5 , -1.38419198321401 , + 13.505 , -1.41674939954092 , + 13.51 , -1.42066916256513 , + 13.515 , -1.39284912504276 , + 13.52 , -1.33290856588875 , + 13.525 , -1.24321481899912 , + 13.53 , -1.12845482092199 , + 13.535 , -0.994859301148 , + 13.54 , -0.84929200472393 , + 13.545 , -0.69840229944309 , + 13.55 , -0.5480171915834 , + 13.555 , -0.40283245150506 , + 13.56 , -0.26639859300057 , + 13.565 , -0.1412841699847 , + 13.57 , -2.930752910284020E-02 , + 13.575 , 6.831031669366761E-02 , + 13.58 , 0.150909902638648 , + 13.585 , 0.218485436556094 , + 13.59 , 0.271817772885176 , + 13.595 , 0.312563547048263 , + 13.6 , 0.343197563758831 , + 13.605 , 0.366784232668975 , + 13.61 , 0.386577813348275 , + 13.615 , 0.405567940703392 , + 13.62 , 0.426060284638387 , + 13.625 , 0.449416325446865 , + 13.63 , 0.476003373865086 , + 13.635 , 0.505362938780156 , + 13.64 , 0.536518767578895 , + 13.645 , 0.568328300506654 , + 13.65 , 0.599754845087405 , + 13.655 , 0.630000025300325 , + 13.66 , 0.6584695973929 , + 13.665 , 0.68462841460832 , + 13.67 , 0.70782686172262 , + 13.675 , 0.727203534668359 , + 13.68 , 0.741722744375036 , + 13.685 , 0.750362416108883 , + 13.69 , 0.752392406085506 , + 13.695 , 0.747650040601305 , + 13.7 , 0.736696231685042 , + 13.705 , 0.720777621636586 , + 13.71 , 0.701571294344929 , + 13.715 , 0.680769236869278 , + 13.72 , 0.659613778989939 , + 13.725 , 0.638519591968826 , + 13.73 , 0.616905016742059 , + 13.735 , 0.593283746255628 , + 13.74 , 0.565603855337414 , + 13.745 , 0.531733554716355 , + 13.75 , 0.489962659748419 , + 13.755 , 0.439375608243233 , + 13.76 , 0.380009446404367 , + 13.765 , 0.312773129830936 , + 13.77 , 0.239195423372873 , + 13.775 , 0.16110638214858 , + 13.78 , 8.038995906805420E-02 , + 13.785 , -1.102897232504770E-03 , + 13.79 , -8.144778281704360E-02 , + 13.795 , -0.15840843583426 , + 13.8 , -0.22917659635052 , + 13.805 , -0.29024518206889 , + 13.81 , -0.33752175024298 , + 13.815 , -0.36674198188098 , + 13.82 , -0.37413071891857 , + 13.825 , -0.35717935529397 , + 13.83 , -0.31535074520267 , + 13.835 , -0.25052105857336 , + 13.84 , -0.16702284226815 , + 13.845 , -7.124636094412699E-02 , + 13.85 , 2.913353087510890E-02 , + 13.855 , 0.126149325078345 , + 13.86 , 0.212544685340441 , + 13.865 , 0.282593826653342 , + 13.87 , 0.33259342353236 , + 13.875 , 0.360977014896564 , + 13.88 , 0.368090497895831 , + 13.885 , 0.355740094833499 , + 13.89 , 0.326653538417733 , + 13.895 , 0.283980395609887 , + 13.9 , 0.230911938687721 , + 13.905 , 0.170438689852821 , + 13.91 , 0.105217955743757 , + 13.915 , 3.748846121428490E-02 , + 13.92 , -3.100811006762060E-02 , + 13.925 , -9.912461677678459E-02 , + 13.93 , -0.16638732593593 , + 13.935 , -0.23301599989748 , + 13.94 , -0.29981098203477 , + 13.945 , -0.36788336374228 , + 13.95 , -0.43823790831234 , + 13.955 , -0.51128976367887 , + 13.96 , -0.58642827752511 , + 13.965 , -0.66176331535379 , + 13.97 , -0.7341480161194 , + 13.975 , -0.79952454249667 , + 13.98 , -0.85353878258576 , + 13.985 , -0.89230509468498 , + 13.99 , -0.9131476514604 , + 13.995 , -0.91514375354423 , + 14.0 , -0.8993367487938 , + 14.005 , -0.86856422332842 , + 14.01 , -0.82694415950239 , + 14.015 , -0.77913771351111 , + 14.02 , -0.72955729658514 , + 14.025 , -0.68168905647206 , + 14.03 , -0.63766151216947 , + 14.035 , -0.59811504505913 , + 14.04 , -0.56235853309889 , + 14.045 , -0.52872726325526 , + 14.05 , -0.49503897771436 , + 14.055 , -0.45902725746187 , + 14.06 , -0.41868594009816 , + 14.065 , -0.37248337306763 , + 14.07 , -0.31947100513302 , + 14.075 , -0.25931189817463 , + 14.08 , -0.19228261646431 , + 14.085 , -0.11925792681763 , + 14.09 , -4.169532968283350E-02 , + 14.095 , 3.843303316390890E-02 , + 14.1 , 0.118775003838835 , + 14.105 , 0.196837583343436 , + 14.11 , 0.270307193173439 , + 14.115 , 0.337420184008135 , + 14.12 , 0.397291393971841 , + 14.125 , 0.450126440210993 , + 14.13 , 0.497226657276013 , + 14.135 , 0.540774142842358 , + 14.14 , 0.58340264798186 , + 14.145 , 0.627643304621108 , + 14.15 , 0.675349975738562 , + 14.155 , 0.727241025622671 , + 14.16 , 0.782651129746367 , + 14.165 , 0.839560451090441 , + 14.17 , 0.894881294455553 , + 14.175 , 0.944955884798899 , + 14.18 , 0.986144014351956 , + 14.185 , 1.015390719979 , + 14.19 , 1.0306572943892 , + 14.195 , 1.03115234481902 , + 14.2 , 1.01733343986871 , + 14.205 , 0.990709541557108 , + 14.21 , 0.953502790822332 , + 14.215 , 0.908254264710393 , + 14.22 , 0.857454756635746 , + 14.225 , 0.803265224100822 , + 14.23 , 0.74737385316121 , + 14.235 , 0.690995601525318 , + 14.24 , 0.635005073529152 , + 14.245 , 0.580160133049894 , + 14.25 , 0.527369694111442 , + 14.255 , 0.477938039158216 , + 14.26 , 0.433728338232803 , + 14.265 , 0.397194149800069 , + 14.27 , 0.371248511478309 , + 14.275 , 0.358963505823744 , + 14.28 , 0.363137797938165 , + 14.285 , 0.385787231840523 , + 14.29 , 0.427657749130475 , + 14.295 , 0.487849697242734 , + 14.3 , 0.563646552494242 , + 14.305 , 0.650598748291401 , + 14.31 , 0.742869615401765 , + 14.315 , 0.833794067276776 , + 14.32 , 0.916556460872168 , + 14.325 , 0.984863842045941 , + 14.33 , 1.0335040976667 , + 14.335 , 1.05869041827564 , + 14.34 , 1.05816644274048 , + 14.345 , 1.03108361491544 , + 14.35 , 0.977735351761127 , + 14.355 , 0.899232930675646 , + 14.36 , 0.797237214065439 , + 14.365 , 0.673796884116058 , + 14.37 , 0.531337867932015 , + 14.375 , 0.372747573641774 , + 14.38 , 0.20150981243218 , + 14.385 , 2.178427411223690E-02 , + 14.39 , -0.16161383529816 , + 14.395 , -0.34339606863716 , + 14.4 , -0.5181084642692 , + 14.405 , -0.68053644448525 , + 14.41 , -0.826088703855 , + 14.415 , -0.95112570187104 , + 14.42 , -1.05313423965707 , + 14.425 , -1.13075625342751 , + 14.43 , -1.18366851217429 , + 14.435 , -1.21238579974723 , + 14.44 , -1.21803310838506 , + 14.445 , -1.20215241564511 , + 14.45 , -1.16656016251128 , + 14.455 , -1.113269900772 , + 14.46 , -1.04444581397611 , + 14.465 , -0.96236345544593 , + 14.47 , -0.86935386142724 , + 14.475 , -0.76773118679175 , + 14.48 , -0.65972693552001 , + 14.485 , -0.54746173019692 , + 14.49 , -0.43299292085595 , + 14.495 , -0.3184397215422 , + 14.5 , -0.20616849862018 , + 14.505 , -9.897318159698620E-02 , + 14.51 , -1.803143023172810E-04 , + 14.515 , 8.640194233650360E-02 , + 14.52 , 0.156727372406871 , + 14.525 , 0.206940131693837 , + 14.53 , 0.233914703352716 , + 14.535 , 0.235793875210402 , + 14.54 , 0.212387260096523 , + 14.545 , 0.165314426336394 , + 14.55 , 9.783758697368690E-02 , + 14.555 , 1.439534230634960E-02 , + 14.56 , -8.005859022341789E-02 , + 14.565 , -0.18076618261283 , + 14.57 , -0.28374454180973 , + 14.575 , -0.38610798365218 , + 14.58 , -0.48605081190961 , + 14.585 , -0.58252398542127 , + 14.59 , -0.67470367132805 , + 14.595 , -0.76142935693159 , + 14.6 , -0.8407780560685 , + 14.605 , -0.90992374040628 , + 14.61 , -0.96532870247995 , + 14.615 , -1.00324396367882 , + 14.62 , -1.02038773635927 , + 14.625 , -1.01463341589249 , + 14.63 , -0.98552757460307 , + 14.635 , -0.93450835223946 , + 14.64 , -0.86477120783303 , + 14.645 , -0.78081893710178 , + 14.65 , -0.68781873202676 , + 14.655 , -0.59091719649253 , + 14.66 , -0.49467793607145 , + 14.665 , -0.40274402274473 , + 14.67 , -0.31777533615604 , + 14.675 , -0.24161241000393 , + 14.68 , -0.17557875216008 , + 14.685 , -0.12078750746673 , + 14.69 , -7.835224295217311E-02 , + 14.695 , -4.942101977486440E-02 , + 14.7 , -3.503749471905150E-02 , + 14.705 , -3.587495731215070E-02 , + 14.71 , -5.194398103175540E-02 , + 14.715 , -8.236828155631780E-02 , + 14.72 , -0.12531697112263 , + 14.725 , -0.17812203875209 , + 14.73 , -0.23756805254037 , + 14.735 , -0.30028601265584 , + 14.74 , -0.36316012018238 , + 14.745 , -0.42365909583363 , + 14.75 , -0.48002335079991 , + 14.755 , -0.53128602795839 , + 14.76 , -0.57714447879069 , + 14.765 , -0.61773654874064 , + 14.77 , -0.65338922947777 , + 14.775 , -0.68440719071073 , + 14.78 , -0.71094150841826 , + 14.785 , -0.73295383213119 , + 14.79 , -0.75025831938642 , + 14.795 , -0.76260438890415 , + 14.8 , -0.76975912976851 , + 14.805 , -0.77155180131721 , + 14.81 , -0.76787415141689 , + 14.815 , -0.75863134459094 , + 14.82 , -0.74368104295612 , + 14.825 , -0.72278322433993 , + 14.83 , -0.69560054902327 , + 14.835 , -0.66175375591306 , + 14.84 , -0.62093898535516 , + 14.845 , -0.57306913773937 , + 14.85 , -0.51841917741191 , + 14.855 , -0.45771315164191 , + 14.86 , -0.392137917305 , + 14.865 , -0.3232532945768 , + 14.87 , -0.25282156152333 , + 14.875 , -0.18257072630809 , + 14.88 , -0.11395570313114 , + 14.885 , -4.795078990473090E-02 , + 14.89 , 1.505030752196730E-02 , + 14.895 , 7.523505899511330E-02 , + 14.9 , 0.133241663209769 , + 14.905 , 0.189946958395501 , + 14.91 , 0.246204884243539 , + 14.915 , 0.302617865301028 , + 14.92 , 0.359383341937356 , + 14.925 , 0.416272256914715 , + 14.93 , 0.472730379837134 , + 14.935 , 0.528097455638089 , + 14.94 , 0.581866656852053 , + 14.945 , 0.633923511292493 , + 14.95 , 0.684671503159956 , + 14.955 , 0.735006617044871 , + 14.96 , 0.78610900707482 , + 14.965 , 0.839096114213373 , + 14.97 , 0.894592925855566 , + 14.975 , 0.952340646800937 , + 14.98 , 1.0109322862822 , + 14.985 , 1.06776815099708 , + 14.99 , 1.11925763952313 , + 14.995 , 1.16125733848899 , + 15.0 , 1.18965840938029 , + 15.005 , 1.20101711803106 , + 15.01 , 1.19309156203439 , + 15.015 , 1.16518353563898 , + 15.02 , 1.11821232455035 , + 15.025 , 1.0545184865003 , + 15.03 , 0.977448615628865 , + 15.035 , 0.890815252481333 , + 15.04 , 0.798354444510221 , + 15.045 , 0.703279494461959 , + 15.05 , 0.60801847543151 , + 15.055 , 0.514150357593879 , + 15.06 , 0.422530486995826 , + 15.065 , 0.333543044544543 , + 15.07 , 0.247413880227417 , + 15.075 , 0.164505011560775 , + 15.08 , 8.554502116652860E-02 , + 15.085 , 1.176008397877900E-02 , + 15.09 , -5.508991016794810E-02 , + 15.095 , -0.11277329041032 , + 15.1 , -0.15872202731611 , + 15.105 , -0.19023769676271 , + 15.11 , -0.20475543680883 , + 15.115 , -0.20016459209247 , + 15.12 , -0.17515953672649 , + 15.125 , -0.1295909322101 , + 15.13 , -6.475341455153370E-02 , + 15.135 , 1.645644779243700E-02 , + 15.14 , 0.109582085491203 , + 15.145 , 0.208891920094615 , + 15.15 , 0.307902347961824 , + 15.155 , 0.400086953541137 , + 15.16 , 0.479656312478387 , + 15.165 , 0.54227026093024 , + 15.17 , 0.585531391323096 , + 15.175 , 0.60915577781107 , + 15.18 , 0.614771789148716 , + 15.185 , 0.605386403919845 , + 15.19 , 0.584635659710548 , + 15.195 , 0.555987240463961 , + 15.2 , 0.522078576056577 , + 15.205 , 0.484332615313383 , + 15.21 , 0.44293940454718 , + 15.215 , 0.397175120559912 , + 15.22 , 0.345968006972672 , + 15.225 , 0.288543030116857 , + 15.23 , 0.224972791486283 , + 15.235 , 0.156481408793171 , + 15.24 , 8.542958350357370E-02 , + 15.245 , 1.498370477529230E-02 , + 15.25 , -5.142934425176120E-02 , + 15.255 , -0.1107437937938 , + 15.26 , -0.16078441017566 , + 15.265 , -0.20057844669055 , + 15.27 , -0.23037829970624 , + 15.275 , -0.2514154045316 , + 15.28 , -0.26546110414046 , + 15.285 , -0.27433386226401 , + 15.29 , -0.27947343680654 , + 15.295 , -0.28170382574971 , + 15.3 , -0.28121922535055 , + 15.305 , -0.27778333156123 , + 15.31 , -0.27106104276765 , + 15.315 , -0.26098347288903 , + 15.32 , -0.2480337104626 , + 15.325 , -0.23338239832851 , + 15.33 , -0.21883669131141 , + 15.335 , -0.20662723365469 , + 15.34 , -0.19908795725974 , + 15.345 , -0.1983095632208 , + 15.35 , -0.20583511356768 , + 15.355 , -0.22245388077999 , + 15.36 , -0.24810721805446 , + 15.365 , -0.28190022979588 , + 15.37 , -0.32218399867655 , + 15.375 , -0.36668187000496 , + 15.38 , -0.41262893144551 , + 15.385 , -0.4569195252945 , + 15.39 , -0.49626700745835 , + 15.395 , -0.52739011070132 , + 15.4 , -0.54723474350703 , + 15.405 , -0.55322582044501 , + 15.41 , -0.54352567312437 , + 15.415 , -0.51725918301048 , + 15.42 , -0.47466073347181 , + 15.425 , -0.41710230560527 , + 15.43 , -0.34698928139492 , + 15.435 , -0.26752756403572 , + 15.44 , -0.18240759770015 , + 15.445 , -9.545429827632960E-02 , + 15.45 , -1.031774321012660E-02 , + 15.455 , 6.975569716684001E-02 , + 15.46 , 0.142031815271298 , + 15.465 , 0.204287600135245 , + 15.47 , 0.254724524020873 , + 15.475 , 0.291852234959508 , + 15.48 , 0.314393966922164 , + 15.485 , 0.321257693596354 , + 15.49 , 0.311592647764159 , + 15.495 , 0.284924209311069 , + 15.5 , 0.241333574629117 , + 15.505 , 0.181630984411648 , + 15.51 , 0.107473789318163 , + 15.515 , 2.138659993284420E-02 , + 15.52 , -7.333294612818740E-02 , + 15.525 , -0.17281819572361 , + 15.53 , -0.2729111163528 , + 15.535 , -0.36947452952708 , + 15.54 , -0.45868092644508 , + 15.545 , -0.53724054983261 , + 15.55 , -0.60253835404275 , + 15.555 , -0.65267651763316 , + 15.56 , -0.6864354117723 , + 15.565 , -0.70318229683703 , + 15.57 , -0.70276183568102 , + 15.575 , -0.68540176686393 , + 15.58 , -0.6516520838685 , + 15.585 , -0.60236502510189 , + 15.59 , -0.538706492591 , + 15.595 , -0.46217410897888 , + 15.6 , -0.37460077533887 , + 15.605 , -0.27810973417383 , + 15.61 , -0.17502716813551 , + 15.615 , -6.773228527287170E-02 , + 15.62 , 4.151501433409210E-02 , + 15.625 , 0.150751860185515 , + 15.63 , 0.258442092002889 , + 15.635 , 0.363538574930614 , + 15.64 , 0.465442765332169 , + 15.645 , 0.563876126508653 , + 15.65 , 0.658665592231715 , + 15.655 , 0.749509291460253 , + 15.66 , 0.835755718589599 , + 15.665 , 0.916264699152492 , + 15.67 , 0.989375816925145 , + 15.675 , 1.05301420158238 , + 15.68 , 1.10490739292059 , + 15.685 , 1.14288462647541 , + 15.69 , 1.16518849553063 , + 15.695 , 1.1707464912492 , + 15.7 , 1.15934157640063 , + 15.705 , 1.13165264409975 , + 15.71 , 1.08916287801769 , + 15.715 , 1.03396048449819 , + 15.72 , 0.968480895649285 , + 15.725 , 0.895239610317516 , + 15.73 , 0.816614791244956 , + 15.735 , 0.734699276030846 , + 15.74 , 0.651241095374945 , + 15.745 , 0.567649521370319 , + 15.75 , 0.485049163207599 , + 15.755 , 0.404335549986381 , + 15.76 , 0.326219056425138 , + 15.765 , 0.251231356865374 , + 15.77 , 0.179720965294244 , + 15.775 , 0.111831041730238 , + 15.78 , 4.750476279777080E-02 , + 15.785 , -1.347798247405040E-02 , + 15.79 , -7.141356069694010E-02 , + 15.795 , -0.12656450883031 , + 15.8 , -0.1790372399842 , + 15.805 , -0.2286955113047 , + 15.81 , -0.27512243015728 , + 15.815 , -0.31766447732324 , + 15.82 , -0.3555388110919 , + 15.825 , -0.38798921520158 , + 15.83 , -0.41444221410296 , + 15.835 , -0.43463094635962 , + 15.84 , -0.44864369112348 , + 15.845 , -0.4568931292131 , + 15.85 , -0.46000160926806 , + 15.855 , -0.45865250041628 , + 15.86 , -0.45343877892519 , + 15.865 , -0.44476504067162 , + 15.87 , -0.43283082098116 , + 15.875 , -0.41771237775514 , + 15.88 , -0.3995214147592 , + 15.885 , -0.37860415544342 , + 15.89 , -0.35572212713179 , + 15.895 , -0.33216132888134 , + 15.9 , -0.30972572285948 , + 15.905 , -0.29059799700979 , + 15.91 , -0.27708096353175 , + 15.915 , -0.27126155854412 , + 15.92 , -0.2746590319597 , + 15.925 , -0.28792675974919 , + 15.93 , -0.31066689274262 , + 15.935 , -0.34140077106906 , + 15.94 , -0.3777039602476 , + 15.945 , -0.41648665097944 , + 15.95 , -0.45437291128764 , + 15.955 , -0.48811381404708 , + 15.96 , -0.51496612193939 , + 15.965 , -0.5329765854495 , + 15.97 , -0.54113053164364 , + 15.975 , -0.53935053269995 , + 15.98 , -0.52835825596445 , + 15.985 , -0.50943591924887 , + 15.99 , -0.48413923071434 , + 15.995 , -0.45401661733085 , + 16.0 , -0.42038541841803 , + 16.005 , -0.38419449756936 , + 16.01 , -0.34598883075877 , + 16.015 , -0.30596135684737 , + 16.02 , -0.26406862723475 , + 16.025 , -0.22017134269813 , + 16.03 , -0.17416871222392 , + 16.035 , -0.12609398639317 , + 16.04 , -7.616580091339020E-02 , + 16.045 , -2.479105816937940E-02 , + 16.05 , 2.745737110728120E-02 , + 16.055 , 7.987861751112391E-02 , + 16.06 , 0.131672708259285 , + 16.065 , 0.181958505928516 , + 16.07 , 0.229779175022502 , + 16.075 , 0.274114727562895 , + 16.08 , 0.313912537790184 , + 16.085 , 0.348155259464482 , + 16.09 , 0.375959714090624 , + 16.095 , 0.396703409827832 , + 16.1 , 0.410143539243666 , + 16.105 , 0.416499539855543 , + 16.11 , 0.416464899336383 , + 16.115 , 0.411132431725026 , + 16.12 , 0.401834694221056 , + 16.125 , 0.389926331168038 , + 16.13 , 0.376552509432684 , + 16.135 , 0.362455371415181 , + 16.14 , 0.347864663265341 , + 16.145 , 0.332498409591647 , + 16.15 , 0.315673926599289 , + 16.155 , 0.296498803516978 , + 16.16 , 0.274095775096738 , + 16.165 , 0.247800859489553 , + 16.17 , 0.217295286911219 , + 16.175 , 0.182636701553898 , + 16.18 , 0.144199700257594 , + 16.185 , 0.102548913123023 , + 16.19 , 5.829530297192130E-02 , + 16.195 , 1.197592728082750E-02 , + 16.2 , -3.600290534227300E-02 , + 16.205 , -8.535615468618291E-02 , + 16.21 , -0.13584918811621 , + 16.215 , -0.18721153582539 , + 16.22 , -0.23906457716721 , + 16.225 , -0.29090350734869 , + 16.23 , -0.34213587188623 , + 16.235 , -0.392170780993 , + 16.24 , -0.44051591221236 , + 16.245 , -0.48684480865516 , + 16.25 , -0.53098857668878 , + 16.255 , -0.57284978382707 , + 16.26 , -0.61224319073572 , + 16.265 , -0.64871598685836 , + 16.27 , -0.68140334352395 , + 16.275 , -0.70898222576025 , + 16.28 , -0.7297595947791 , + 16.285 , -0.7418948815967 , + 16.29 , -0.74371891027858 , + 16.295 , -0.73407611710958 , + 16.3 , -0.71260329024102 , + 16.305 , -0.67986749030603 , + 16.31 , -0.63732240300856 , + 16.315 , -0.58707824160675 , + 16.32 , -0.53154405116823 , + 16.325 , -0.47301455154914 , + 16.33 , -0.41331652122001 , + 16.335 , -0.35357961212191 , + 16.34 , -0.29419497300413 , + 16.345 , -0.23495140181355 , + 16.35 , -0.17531083484956 , + 16.355 , -0.11473456907756 , + 16.36 , -5.298091218194400E-02 , + 16.365 , 9.709062607778981E-03 , + 16.37 , 7.256409889259650E-02 , + 16.375 , 0.134384503385863 , + 16.38 , 0.193739454595389 , + 16.385 , 0.24920525086789 , + 16.39 , 0.299568602241651 , + 16.395 , 0.343956956389216 , + 16.4 , 0.381866908791684 , + 16.405 , 0.413114650618461 , + 16.41 , 0.437733369467239 , + 16.415 , 0.455877974867213 , + 16.42 , 0.46776384132681 , + 16.425 , 0.473663922748246 , + 16.43 , 0.47395074709205 , + 16.435 , 0.469159269294089 , + 16.44 , 0.460028874160481 , + 16.445 , 0.447496145434672 , + 16.45 , 0.43262324571891 , + 16.455 , 0.416476298710912 , + 16.46 , 0.39998487143001 , + 16.465 , 0.383825594174033 , + 16.47 , 0.368369873101624 , + 16.475 , 0.353714574674185 , + 16.48 , 0.339789306901935 , + 16.485 , 0.326509782519242 , + 16.49 , 0.313927074313828 , + 16.495 , 0.302325131506492 , + 16.5 , 0.292230126681682 , + 16.505 , 0.284323481848275 , + 16.51 , 0.279278430837744 , + 16.515 , 0.277565991023392 , + 16.52 , 0.27928378094795 , + 16.525 , 0.284059216918989 , + 16.53 , 0.291055442661278 , + 16.535 , 0.299081158427955 , + 16.54 , 0.306775986803293 , + 16.545 , 0.312824550426672 , + 16.55 , 0.316148133716397 , + 16.555 , 0.316029035226392 , + 16.56 , 0.31215069004257 , + 16.565 , 0.304553318859 , + 16.57 , 0.293538129439739 , + 16.575 , 0.279551088336509 , + 16.58 , 0.263087654869009 , + 16.585 , 0.244637877428558 , + 16.59 , 0.224678132698894 , + 16.595 , 0.203690933512921 , + 16.6 , 0.182189070638557 , + 16.605 , 0.160712533967535 , + 16.61 , 0.139788985048289 , + 16.615 , 0.119849630257617 , + 16.62 , 0.101127004531768 , + 16.625 , 8.356184746823360E-02 , + 16.63 , 6.675788773408831E-02 , + 16.635 , 5.000422430522750E-02 , + 16.64 , 3.237781788478290E-02 , + 16.645 , 1.290492007865870E-02 , + 16.65 , -9.242841522190411E-03 , + 16.655 , -3.457307113926180E-02 , + 16.66 , -6.315044794397080E-02 , + 16.665 , -9.456431033805510E-02 , + 16.67 , -0.12798945588883 , + 16.675 , -0.16233338586658 , + 16.68 , -0.19643231791386 , + 16.685 , -0.22926030484873 , + 16.69 , -0.26010137973961 , + 16.695 , -0.28866176894499 , + 16.7 , -0.31509595200913 , + 16.705 , -0.33995273832631 , + 16.71 , -0.36405095016433 , + 16.715 , -0.38831357635509 , + 16.72 , -0.41358504112542 , + 16.725 , -0.44046253469103 , + 16.73 , -0.46915752304 , + 16.735 , -0.49941060932339 , + 16.74 , -0.53046223395319 , + 16.745 , -0.56108536534834 , + 16.75 , -0.58967419378453 , + 16.755 , -0.61438209498106 , + 16.76 , -0.63329121107995 , + 16.765 , -0.64459684400811 , + 16.77 , -0.64678096256853 , + 16.775 , -0.63875489537808 , + 16.78 , -0.61995220147847 , + 16.785 , -0.59036060295097 , + 16.79 , -0.55049669392639 , + 16.795 , -0.50133039140924 , + 16.8 , -0.44418245956687 , + 16.805 , -0.38061075875138 , + 16.81 , -0.31231562731901 , + 16.815 , -0.24106197922092 , + 16.82 , -0.1686326543263 , + 16.825 , -9.679598568714549E-02 , + 16.83 , -2.728380092511400E-02 , + 16.835 , 3.824293020108400E-02 , + 16.84 , 9.824002683071940E-02 , + 16.845 , 0.151346034414838 , + 16.85 , 0.196448639221428 , + 16.855 , 0.232748834021365 , + 16.86 , 0.259798117288868 , + 16.865 , 0.277506221603702 , + 16.87 , 0.286111918797314 , + 16.875 , 0.286131733842289 , + 16.88 , 0.278296735618878 , + 16.885 , 0.263498277115562 , + 16.89 , 0.24274886174333 , + 16.895 , 0.217166404345327 , + 16.9 , 0.187968246853482 , + 16.905 , 0.156461968787081 , + 16.91 , 0.124015045694316 , + 16.915 , 9.199139026589789E-02 , + 16.92 , 6.165693925050090E-02 , + 16.925 , 3.406870712543500E-02 , + 16.93 , 9.974305988061479E-03 , + 16.935 , -1.024803512308630E-02 , + 16.94 , -2.658403019625520E-02 , + 16.945 , -3.930334521456180E-02 , + 16.95 , -4.881605741987730E-02 , + 16.955 , -5.549717708582600E-02 , + 16.96 , -5.952392534556360E-02 , + 16.965 , -6.076975805147920E-02 , + 16.97 , -5.879314030308780E-02 , + 16.975 , -5.292859848425780E-02 , + 16.98 , -4.246799585244240E-02 , + 16.985 , -2.689000147691090E-02 , + 16.99 , -6.084643377645750E-03 , + 16.995 , 1.948494890135070E-02 , + 17.0 , 4.872381188647930E-02 , + 17.005 , 7.996838345792370E-02 , + 17.01 , 0.111158477862087 , + 17.015 , 0.140083752196672 , + 17.02 , 0.164651035916986 , + 17.025 , 0.18312224741681 , + 17.03 , 0.194279612887888 , + 17.035 , 0.197502657429334 , + 17.04 , 0.192756670137177 , + 17.045 , 0.180518699701142 , + 17.05 , 0.161669903280425 , + 17.055 , 0.137385815960322 , + 17.06 , 0.109043393552795 , + 17.065 , 7.814867623624100E-02 , + 17.07 , 4.627753286711330E-02 , + 17.075 , 1.501227171733180E-02 , + 17.08 , -1.413775130832270E-02 , + 17.085 , -3.983793711438840E-02 , + 17.09 , -6.104036519750250E-02 , + 17.095 , -7.708842285673501E-02 , + 17.1 , -8.778382263463140E-02 , + 17.105 , -9.339483606844121E-02 , + 17.11 , -9.459269265106150E-02 , + 17.115 , -9.232223501388739E-02 , + 17.12 , -8.763025422153840E-02 , + 17.125 , -8.148499770125020E-02 , + 17.13 , -7.462775457220110E-02 , + 17.135 , -6.748324353623050E-02 , + 17.14 , -6.014609852966310E-02 , + 17.145 , -5.243702915474610E-02 , + 17.15 , -4.400785444844100E-02 , + 17.155 , -3.446180958692290E-02 , + 17.16 , -2.345792198001310E-02 , + 17.165 , -1.077394978512690E-02 , + 17.17 , 3.679128728274960E-03 , + 17.175 , 1.988574043577430E-02 , + 17.18 , 3.777667605297300E-02 , + 17.185 , 5.727939847072780E-02 , + 17.19 , 7.834501552629659E-02 , + 17.195 , 0.100944016898245 , + 17.2 , 0.125030824710985 , + 17.205 , 0.150493723897266 , + 17.21 , 0.177105725250697 , + 17.215 , 0.204499198588219 , + 17.22 , 0.232171627050269 , + 17.225 , 0.259522952289019 , + 17.23 , 0.28591162656688 , + 17.235 , 0.310713017545991 , + 17.24 , 0.333360202463241 , + 17.245 , 0.353356491062333 , + 17.25 , 0.370257070307643 , + 17.255 , 0.383631410780558 , + 17.26 , 0.393022771718625 , + 17.265 , 0.397924531915073 , + 17.27 , 0.397789484581034 , + 17.275 , 0.392075448648513 , + 17.28 , 0.380321842357972 , + 17.285 , 0.362236624526743 , + 17.29 , 0.337775799625786 , + 17.295 , 0.307187618217491 , + 17.3 , 0.271012952518342 , + 17.305 , 0.230034748672592 , + 17.31 , 0.185192192119736 , + 17.315 , 0.1374724900416 , + 17.32 , 8.781061932229070E-02 , + 17.325 , 3.701123827098990E-02 , + 17.33 , -1.428322820528750E-02 , + 17.335 , -6.558572925239700E-02 , + 17.34 , -0.11651660768663 , + 17.345 , -0.16673628393002 , + 17.35 , -0.21587015869355 , + 17.355 , -0.26345095520442 , + 17.36 , -0.30888431890374 , + 17.365 , -0.35145163113226 , + 17.37 , -0.39033885127352 , + 17.375 , -0.42469770664605 , + 17.38 , -0.45371821850159 , + 17.385 , -0.4767087589838 , + 17.39 , -0.49316630884791 , + 17.395 , -0.50283205552792 , + 17.4 , -0.50572081737774 , + 17.405 , -0.50212196719028 , + 17.41 , -0.49256808518885 , + 17.415 , -0.47777707225688 , + 17.42 , -0.45857357564831 , + 17.425 , -0.43580164741667 , + 17.43 , -0.41024501009179 , + 17.435 , -0.3825675139441 , + 17.44 , -0.35328788816102 , + 17.445 , -0.32279085797443 , + 17.45 , -0.29137731320226 , + 17.455 , -0.25933449326509 , + 17.46 , -0.2270143702293 , + 17.465 , -0.19489381305459 , + 17.47 , -0.16360264699467 , + 17.475 , -0.1339028594142 , + 17.48 , -0.1066224111889 , + 17.485 , -8.254834652459410E-02 , + 17.49 , -6.230534889079800E-02 , + 17.495 , -4.623541755964700E-02 , + 17.5 , -3.430878641434340E-02 , + 17.505 , -2.607920373761460E-02 , + 17.51 , -2.069570607448080E-02 , + 17.515 , -1.696571448514850E-02 , + 17.52 , -1.346258488402600E-02 , + 17.525 , -8.657687814216761E-03 , + 17.53 , -1.066706267368470E-03 , + 17.535 , 1.061426833550790E-02 , + 17.54 , 2.738663947692650E-02 , + 17.545 , 4.985546977711610E-02 , + 17.55 , 7.816411304470480E-02 , + 17.555 , 0.111966131087412 , + 17.56 , 0.150434055062022 , + 17.565 , 0.19231308509617 , + 17.57 , 0.236013378779133 , + 17.575 , 0.279746002917216 , + 17.58 , 0.321684272405146 , + 17.585 , 0.360138883852544 , + 17.59 , 0.393718048669997 , + 17.595 , 0.421452589177563 , + 17.6 , 0.442859042866297 , + 17.605 , 0.457932285135102 , + 17.61 , 0.467063199142238 , + 17.615 , 0.470901203329776 , + 17.62 , 0.470183933061112 , + 17.625 , 0.465570499510758 , + 17.63 , 0.457509881267887 , + 17.635 , 0.446170505322342 , + 17.64 , 0.431441044905879 , + 17.645 , 0.412997059132728 , + 17.65 , 0.390417907394592 , + 17.655 , 0.363320032948617 , + 17.66 , 0.331482683771369 , + 17.665 , 0.294935652090983 , + 17.67 , 0.254001046090184 , + 17.675 , 0.209280977845859 , + 17.68 , 0.161607754445718 , + 17.685 , 0.111965960430188 , + 17.69 , 6.141586922651330E-02 , + 17.695 , 1.102093548815530E-02 , + 17.7 , -3.820203658969610E-02 , + 17.705 , -8.531704155098779E-02 , + 17.71 , -0.1294862669167 , + 17.715 , -0.16998594459785 , + 17.72 , -0.20622064042651 , + 17.725 , -0.23774591935919 , + 17.73 , -0.26428840511531 , + 17.735 , -0.28576606331927 , + 17.74 , -0.30229286763517 , + 17.745 , -0.31416772926296 , + 17.75 , -0.3218406535065 , + 17.755 , -0.3258645654062 , + 17.76 , -0.32683843068621 , + 17.765 , -0.32535588224289 , + 17.77 , -0.32196457829868 , + 17.775 , -0.31715006731732 , + 17.78 , -0.31133941077337 , + 17.785 , -0.30492235408688 , + 17.79 , -0.29827929738639 , + 17.795 , -0.29180571311681 , + 17.8 , -0.2859227673159 , + 17.805 , -0.2810686116836 , + 17.81 , -0.27767024271612 , + 17.815 , -0.27609995179852 , + 17.82 , -0.27662600365925 , + 17.825 , -0.27936632736658 , + 17.83 , -0.28425416349301 , + 17.835 , -0.29102164261339 , + 17.84 , -0.29920350847177 , + 17.845 , -0.30815897987418 , + 17.85 , -0.31710995942421 , + 17.855 , -0.32518836729579 , + 17.86 , -0.33149006868417 , + 17.865 , -0.33512980995752 , + 17.87 , -0.33529555909469 , + 17.875 , -0.3312973400369 , + 17.88 , -0.32261024125577 , + 17.885 , -0.30890529900639 , + 17.89 , -0.290070720818 , + 17.895 , -0.26621431048452 , + 17.9 , -0.23765242692415 , + 17.905 , -0.20488114286083 , + 17.91 , -0.16853769940936 , + 17.915 , -0.12935252659241 , + 17.92 , -8.810348127193721E-02 , + 17.925 , -4.557141302171240E-02 , + 17.93 , -2.513356389291560E-03 , + 17.935 , 4.035724323904150E-02 , + 17.94 , 8.237249752346711E-02 , + 17.945 , 0.122904827481364 , + 17.95 , 0.16135335850423 , + 17.955 , 0.197135089796928 , + 17.96 , 0.229680590055412 , + 17.965 , 0.258445542327015 , + 17.97 , 0.282931564681535 , + 17.975 , 0.3027256078172 , + 17.98 , 0.317544225316334 , + 17.985 , 0.327282981257925 , + 17.99 , 0.332055566875123 , + 17.995 , 0.332219078215985 , + 18.0 , 0.328372664764279 , + 18.005 , 0.321327968541342 , + 18.01 , 0.312046315167661 , + 18.015 , 0.301552393558308 , + 18.02 , 0.29083015000257 , + 18.025 , 0.280717140577436 , + 18.03 , 0.271812862742294 , + 18.035 , 0.264416834319869 , + 18.04 , 0.258507921567912 , + 18.045 , 0.25377043717894 , + 18.05 , 0.249664740892512 , + 18.055 , 0.245531784942376 , + 18.06 , 0.240715666971269 , + 18.065 , 0.234683989615924 , + 18.07 , 0.227126896191005 , + 18.075 , 0.218018915200585 , + 18.08 , 0.207635259720329 , + 18.085 , 0.196519817484055 , + 18.09 , 0.185413864456323 , + 18.095 , 0.175156074068905 , + 18.1 , 0.166570903921847 , + 18.105 , 0.160362276331594 , + 18.11 , 0.157026715204937 , + 18.115 , 0.156797444080986 , + 18.12 , 0.159624455669982 , + 18.125 , 0.16519187224497 , + 18.13 , 0.172968089200864 , + 18.135 , 0.1822813476427 , + 18.14 , 0.192409206882619 , + 18.145 , 0.202670276399768 , + 18.15 , 0.212504752944377 , + 18.155 , 0.221533110089593 , + 18.16 , 0.229583054017435 , + 18.165 , 0.236681693233947 , + 18.17 , 0.24301317231324 , + 18.175 , 0.248850323481097 , + 18.18 , 0.254471744041749 , + 18.185 , 0.260080804366178 , + 18.19 , 0.265741889443548 , + 18.195 , 0.27134643214208 , + 18.2 , 0.276614811069614 , + 18.205 , 0.281132591864889 , + 18.21 , 0.284412543870369 , + 18.215 , 0.285966261493111 , + 18.22 , 0.28537109719781 , + 18.225 , 0.282316011041418 , + 18.23 , 0.276621372715182 , + 18.235 , 0.268228573189369 , + 18.24 , 0.257171332184819 , + 18.245 , 0.243536231265936 , + 18.25 , 0.227433656521336 , + 18.255 , 0.208982058948683 , + 18.26 , 0.188316971988387 , + 18.265 , 0.165617801602736 , + 18.27 , 0.141146408794358 , + 18.275 , 0.115280086715596 , + 18.28 , 8.852986599304000E-02 , + 18.285 , 6.153122175946150E-02 , + 18.29 , 3.501087677361560E-02 , + 18.295 , 9.728375745511450E-03 , + 18.3 , -1.358945599970610E-02 , + 18.305 , -3.431372431462720E-02 , + 18.31 , -5.195992570184670E-02 , + 18.315 , -6.621459033346280E-02 , + 18.32 , -7.693590669330690E-02 , + 18.325 , -8.413813135115721E-02 , + 18.33 , -8.796246104481401E-02 , + 18.335 , -8.865026558137970E-02 , + 18.34 , -8.651948855745679E-02 , + 18.345 , -8.194991749053140E-02 , + 18.35 , -7.537263942731640E-02 , + 18.355 , -6.726122085666700E-02 , + 18.36 , -5.811712688388060E-02 , + 18.365 , -4.844978592925620E-02 , + 18.37 , -3.874961154322750E-02 , + 18.375 , -2.946321539637920E-02 , + 18.38 , -2.097389378477130E-02 , + 18.385 , -1.359774681728760E-02 , + 18.39 , -7.592927023032140E-03 , + 18.395 , -3.182771456432360E-03 , + 18.4 , -5.797783397815400E-04 , + 18.405 , -3.403899532317900E-06 , + 18.41 , -1.673453644507240E-03 , + 18.415 , -5.782448384807060E-03 , + 18.42 , -1.244176672900140E-02 , + 18.425 , -2.161800758848600E-02 , + 18.43 , -3.307323100644420E-02 , + 18.435 , -4.633260284878780E-02 , + 18.44 , -6.069252068692880E-02 , + 18.445 , -7.527964829315580E-02 , + 18.45 , -8.915230216299309E-02 , + 18.455 , -0.10143296879817 , + 18.46 , -0.11144311748952 , + 18.465 , -0.11881688272356 , + 18.47 , -0.12356683521081 , + 18.475 , -0.12609239258508 , + 18.48 , -0.12712667509216 , + 18.485 , -0.12763705192334 , + 18.49 , -0.12869455777906 , + 18.495 , -0.13134291006952 , + 18.5 , -0.13648385782305 , + 18.505 , -0.14479654925278 , + 18.51 , -0.15669435068272 , + 18.515 , -0.17231899455012 , + 18.52 , -0.19156053351027 , + 18.525 , -0.2140948418449 , + 18.53 , -0.23942532421762 , + 18.535 , -0.26692808116807 , + 18.54 , -0.29589366741626 , + 18.545 , -0.32556987300455 , + 18.55 , -0.35520167089443 , + 18.555 , -0.38407157568151 , + 18.56 , -0.41153207462536 , + 18.565 , -0.43702839771631 , + 18.57 , -0.46010162556848 , + 18.575 , -0.4803753536196 , + 18.58 , -0.49752469104796 , + 18.585 , -0.51123932275576 , + 18.59 , -0.52119100580172 , + 18.595 , -0.52702031860061 , + 18.6 , -0.52835074084744 , + 18.605 , -0.52483178107225 , + 18.61 , -0.51620504117931 , + 18.615 , -0.50237569943468 , + 18.62 , -0.4834730346886 , + 18.625 , -0.45987873870396 , + 18.63 , -0.43221396453591 , + 18.635 , -0.40128199130244 , + 18.64 , -0.36797809251035 , + 18.645 , -0.33318247540211 , + 18.65 , -0.2976655847206 , + 18.655 , -0.26201863587465 , + 18.66 , -0.22662902367112 , + 18.665 , -0.19169728326541 , + 18.67 , -0.15729264669158 , + 18.675 , -0.1234229501959 , + 18.68 , -9.010582719609091E-02 , + 18.685 , -5.741817970014060E-02 , + 18.69 , -2.552248385036910E-02 , + 18.695 , 5.339196527069970E-03 , + 18.7 , 3.486712311982680E-02 , + 18.705 , 6.273660435450590E-02 , + 18.71 , 8.862290998998250E-02 , + 18.715 , 0.112218745947816 , + 18.72 , 0.133237764611335 , + 18.725 , 0.151417354399901 , + 18.73 , 0.166520793732197 , + 18.735 , 0.178358092928635 , + 18.74 , 0.186819039757722 , + 18.745 , 0.191918879888126 , + 18.75 , 0.193841382081441 , + 18.755 , 0.192966026117615 , + 18.76 , 0.189861849245228 , + 18.765 , 0.185243424802453 , + 18.77 , 0.179886808055877 , + 18.775 , 0.174523130427245 , + 18.78 , 0.169727209876345 , + 18.785 , 0.165828266795135 , + 18.79 , 0.162860717438664 , + 18.795 , 0.160568509105303 , + 18.8 , 0.158460262202499 , + 18.805 , 0.155903588032585 , + 18.81 , 0.152236721793017 , + 18.815 , 0.146874335438137 , + 18.82 , 0.139388100075902 , + 18.825 , 0.129551248829624 , + 18.83 , 0.117346184292776 , + 18.835 , 0.102944396398025 , + 18.84 , 8.667203203856250E-02 , + 18.845 , 6.897292950992250E-02 , + 18.85 , 5.037981195577830E-02 , + 18.855 , 3.149222301298260E-02 , + 18.86 , 1.295788909713510E-02 , + 18.865 , -4.552694712540460E-03 , + 18.87 , -2.038471143298640E-02 , + 18.875 , -3.395374370024890E-02 , + 18.88 , -4.480974308295430E-02 , + 18.885 , -5.269874412847760E-02 , + 18.89 , -5.760475116618620E-02 , + 18.895 , -5.975782869643340E-02 , + 18.9 , -5.959990728708000E-02 , + 18.905 , -5.771202182665640E-02 , + 18.91 , -5.471620957553570E-02 , + 18.915 , -5.117481281717030E-02 , + 18.92 , -4.751155121434680E-02 , + 18.925 , -4.397377050356170E-02 , + 18.93 , -4.064613036051550E-02 , + 18.935 , -3.750986634275660E-02 , + 18.94 , -3.453164301123860E-02 , + 18.945 , -3.175456679161500E-02 , + 18.95 , -2.936540580184520E-02 , + 18.955 , -2.771540773125420E-02 , + 18.96 , -2.728673446781490E-02 , + 18.965 , -2.860928038065850E-02 , + 18.97 , -3.214733887015950E-02 , + 18.975 , -3.818284412564310E-02 , + 18.98 , -4.672302188795090E-02 , + 18.985 , -5.745461744704080E-02 , + 18.99 , -6.975424591801779E-02 , + 18.995 , -8.275205425474760E-02 , + 19.0 , -9.543348500501039E-02 , + 19.005 , -0.10675671144965 , + 19.01 , -0.11576388175306 , + 19.015 , -0.12166743333762 , + 19.02 , -0.12390264431233 , + 19.025 , -0.12214656117846 , + 19.03 , -0.11631154879176 , + 19.035 , -0.10652423304446 , + 19.04 , -9.310118520163460E-02 , + 19.045 , -7.652590539072700E-02 , + 19.05 , -5.743089586506230E-02 , + 19.055 , -3.657596705689010E-02 , + 19.06 , -1.481925977005460E-02 , + 19.065 , 6.926924474783110E-03 , + 19.07 , 2.775463368340260E-02 , + 19.075 , 4.683156424739500E-02 , + 19.08 , 6.347270763070770E-02 , + 19.085 , 7.720227146370970E-02 , + 19.09 , 8.779042470764520E-02 , + 19.095 , 9.526029188212271E-02 , + 19.1 , 9.986040447199600E-02 , + 19.105 , 0.102009856725406 , + 19.11 , 0.102225525300876 , + 19.115 , 0.101047428528718 , + 19.12 , 9.897427931868839E-02 , + 19.125 , 9.642072648080460E-02 , + 19.13 , 9.369918170530429E-02 , + 19.135 , 9.102713402201090E-02 , + 19.14 , 8.855073690832560E-02 , + 19.145 , 8.637784747202421E-02 , + 19.15 , 8.460889194052530E-02 , + 19.155 , 8.335969452805890E-02 , + 19.16 , 8.277035792073900E-02 , + 19.165 , 8.300094888178290E-02 , + 19.17 , 8.421449446395760E-02 , + 19.175 , 8.655290215462839E-02 , + 19.18 , 9.010941198122500E-02 , + 19.185 , 9.490288969345520E-02 , + 19.19 , 0.100856185025776 , + 19.195 , 0.107783589409055 , + 19.2 , 0.115386291208123 , + 19.205 , 0.123260349877366 , + 19.21 , 0.130913935378 , + 19.215 , 0.137796521245135 , + 19.22 , 0.143335849367096 , + 19.225 , 0.14698030532155 , + 19.23 , 0.148242029288944 , + 19.235 , 0.146735661784648 , + 19.24 , 0.142208324703231 , + 19.245 , 0.134556865273917 , + 19.25 , 0.123832305128576 , + 19.255 , 0.110231039547548 , + 19.26 , 9.407703422254150E-02 , + 19.265 , 7.579763962651660E-02 , + 19.27 , 5.589930332000480E-02 , + 19.275 , 3.494345559651580E-02 , + 19.28 , 1.352655612925890E-02 , + 19.285 , -7.738281430620860E-03 , + 19.29 , -2.823640126172170E-02 , + 19.295 , -4.736851280459840E-02 , + 19.3 , -6.456726778946650E-02 , + 19.305 , -7.931522042729799E-02 , + 19.31 , -9.116146754991310E-02 , + 19.315 , -9.973543395603350E-02 , + 19.32 , -0.10475595669325 , + 19.325 , -0.10603430822357 , + 19.33 , -0.10347284701214 , + 19.335 , -9.706124752024230E-02 , + 19.34 , -8.687430152469530E-02 , + 19.345 , -7.307405512475940E-02 , + 19.35 , -5.591887411984520E-02 , + 19.355 , -3.577706479529710E-02 , + 19.36 , -1.314335388833300E-02 , + 19.365 , 1.134983613684490E-02 , + 19.37 , 3.693079681400050E-02 , + 19.375 , 6.270474265740390E-02 , + 19.38 , 8.768905345507640E-02 , + 19.385 , 0.1108686368144 , + 19.39 , 0.1312644416171 , + 19.395 , 0.148009041167522 , + 19.4 , 0.160416739422417 , + 19.405 , 0.168040427167663 , + 19.41 , 0.170704607506662 , + 19.415 , 0.168512624998284 , + 19.42 , 0.161826470167071 , + 19.425 , 0.151223327305197 , + 19.43 , 0.137436526462059 , + 19.435 , 0.12128787067038 , + 19.44 , 0.103621500126964 , + 19.445 , 8.524411667406280E-02 , + 19.45 , 6.687930552254420E-02 , + 19.455 , 4.913589731864990E-02 , + 19.46 , 3.249281642772610E-02 , + 19.465 , 1.729796363375550E-02 , + 19.47 , 3.779772699936010E-03 , + 19.475 , -7.933453913126739E-03 , + 19.48 , -1.778837362450150E-02 , + 19.485 , -2.578180319663970E-02 , + 19.49 , -3.193743546434960E-02 , + 19.495 , -3.628975661666560E-02 , + 19.5 , -3.887558954382360E-02 , + 19.505 , -3.973470241057670E-02 , + 19.51 , -3.891788867951480E-02 , + 19.515 , -3.649986139114820E-02 , + 19.52 , -3.259249709820460E-02 , + 19.525 , -2.735427053548850E-02 , + 19.53 , -2.099133842643200E-02 , + 19.535 , -1.374830536741160E-02 , + 19.54 , -5.887877188928280E-03 , + 19.545 , 2.336959611728440E-03 , + 19.55 , 1.071436148192050E-02 , + 19.555 , 1.910203440373310E-02 , + 19.56 , 2.744608047788240E-02 , + 19.565 , 3.578603089731680E-02 , + 19.57 , 4.424249115467690E-02 , + 19.575 , 5.298918396292150E-02 , + 19.58 , 6.221237826554930E-02 , + 19.585 , 7.206505940082400E-02 , + 19.59 , 8.262287004060030E-02 , + 19.595 , 9.385089818082880E-02 , + 19.6 , 0.105586535210159 , + 19.605 , 0.117542979202558 , + 19.61 , 0.129332330456747 , + 19.615 , 0.140505656304056 , + 19.62 , 0.150602470682144 , + 19.625 , 0.159201510072528 , + 19.63 , 0.165963272203869 , + 19.635 , 0.170657754779367 , + 19.64 , 0.173171986392552 , + 19.645 , 0.173497060176099 , + 19.65 , 0.171698563869022 , + 19.655 , 0.167877117650055 , + 19.66 , 0.162128958008132 , + 19.665 , 0.154515020640188 , + 19.67 , 0.145047978425579 , + 19.675 , 0.133699089240968 , + 19.68 , 0.120425826006013 , + 19.685 , 0.105211954035009 , + 19.69 , 8.811482794436119E-02 , + 19.695 , 6.930362885349300E-02 , + 19.7 , 4.908317786948910E-02 , + 19.705 , 2.789284466062680E-02 , + 19.71 , 6.282684187232620E-03 , + 19.715 , -1.513293891731910E-02 , + 19.72 , -3.573219349475490E-02 , + 19.725 , -5.494565996060560E-02 , + 19.73 , -7.230331792209500E-02 , + 19.735 , -8.746611435403620E-02 , + 19.74 , -0.10023408196077 , + 19.745 , -0.11053680897542 , + 19.75 , -0.11840927699064 , + 19.755 , -0.12396609115553 , + 19.76 , -0.12737940482213 , + 19.765 , -0.12886942680431 , + 19.77 , -0.12870508549978 , + 19.775 , -0.12721486235372 , + 19.78 , -0.12479696224801 , + 19.785 , -0.12192134851853 , + 19.79 , -0.11911512331687 , + 19.795 , -0.11692852296234 , + 19.8 , -0.1158828122011 , + 19.805 , -0.11640862718208 , + 19.81 , -0.11878469144379 , + 19.815 , -0.12309145404105 , + 19.82 , -0.12918833366224 , + 19.825 , -0.13672125838288 , + 19.83 , -0.14515938284391 , + 19.835 , -0.15385497532022 , + 19.84 , -0.16211467849934 , + 19.845 , -0.16927092799142 , + 19.85 , -0.1747405815055 , + 19.855 , -0.17806542050622 , + 19.86 , -0.17893075004105 , + 19.865 , -0.17716517197334 , + 19.87 , -0.1727273398208 , + 19.875 , -0.16568659834495 , + 19.88 , -0.15620370102824 , + 19.885 , -0.14451379659869 , + 19.89 , -0.13091402606184 , + 19.895 , -0.11575112780621 , + 19.9 , -9.940839096806510E-02 , + 19.905 , -8.228798219382000E-02 , + 19.91 , -6.479104079602420E-02 , + 19.915 , -4.729626907194930E-02 , + 19.92 , -3.014389625728430E-02 , + 19.925 , -1.362770379699480E-02 , + 19.93 , 1.998432435284760E-03 , + 19.935 , 1.650283145918720E-02 , + 19.94 , 2.964895620060110E-02 , + 19.945 , 4.116860136833410E-02 , + 19.95 , 5.074351304162170E-02 , + 19.955 , 5.800645031803000E-02 , + 19.96 , 6.256532313956960E-02 , + 19.965 , 6.405233292472851E-02 , + 19.97 , 6.218959865152200E-02 , + 19.975 , 5.686184515599930E-02 , + 19.98 , 4.817972906533240E-02 , + 19.985 , 3.651967859402010E-02 , + 19.99 , 2.252985493696160E-02 , + 19.995 , 7.097071756102240E-03 , + 20.0 , -8.721812839652310E-03 , + 20.005 , -2.379447424676810E-02 , + 20.01 , -3.701839037090120E-02 , + 20.015 , -4.742092878891140E-02 , + 20.02 , -5.423951270215350E-02 , + 20.025 , -5.697258922350620E-02 , + 20.03 , -5.539776158916270E-02 , + 20.035 , -4.956057087520670E-02 , + 20.04 , -3.974179526714170E-02 , + 20.045 , -2.641288342533750E-02 , + 20.05 , -1.019081782994870E-02 , + 20.055 , 8.202447545571230E-03 , + 20.06 , 2.797116679219240E-02 , + 20.065 , 4.827036868959560E-02 , + 20.07 , 6.822566739672180E-02 , + 20.075 , 8.695562572496580E-02 , + 20.08 , 0.103598292547575 , + 20.085 , 0.117345557097572 , + 20.09 , 0.127481089438341 , + 20.095 , 0.133420394415517 , + 20.1 , 0.134744188882336 , + 20.105 , 0.131221676654994 , + 20.11 , 0.122818973076751 , + 20.115 , 0.109691680974573 , + 20.12 , 9.216522604322611E-02 , + 20.125 , 7.070600814518090E-02 , + 20.13 , 4.589147778332150E-02 , + 20.135 , 1.838180387523030E-02 , + 20.14 , -1.110108370552780E-02 , + 20.145 , -4.178877084026370E-02 , + 20.15 , -7.287571484484311E-02 , + 20.155 , -0.10352963470195 , + 20.16 , -0.13290387884342 , + 20.165 , -0.16015839093613 , + 20.17 , -0.18448715088686 , + 20.175 , -0.20515328670567 , + 20.18 , -0.22152568111903 , + 20.185 , -0.23311328473587 , + 20.19 , -0.23959100455607 , + 20.195 , -0.24081433909493 , + 20.2 , -0.23682050088862 , + 20.205 , -0.22781739014645 , + 20.21 , -0.21416412518464 , + 20.215 , -0.19634582016096 , + 20.22 , -0.17494767238438 , + 20.225 , -0.15062916150452 , + 20.23 , -0.12410162176008 , + 20.235 , -9.610482601536199E-02 , + 20.24 , -6.738446390246500E-02 , + 20.245 , -3.866506506796110E-02 , + 20.25 , -1.062408132283030E-02 , + 20.255 , 1.613821656425260E-02 , + 20.26 , 4.112363448240460E-02 , + 20.265 , 6.395563455415000E-02 , + 20.27 , 8.438638743734070E-02 , + 20.275 , 0.10229225024046 , + 20.28 , 0.11765525248804 , + 20.285 , 0.13053719119583 , + 20.29 , 0.141047644803831 , + 20.295 , 0.14931741898274 , + 20.3 , 0.155478926240496 , + 20.305 , 0.159660339201315 , + 20.31 , 0.161990227205732 , + 20.315 , 0.162612590283051 , + 20.32 , 0.161703234926074 , + 20.325 , 0.159483350064339 , + 20.33 , 0.156221155279841 , + 20.335 , 0.152221918187124 , + 20.34 , 0.147804677752111 , + 20.345 , 0.143271172359312 , + 20.35 , 0.138873332096741 , + 20.355 , 0.134787926819641 , + 20.36 , 0.131103697853831 , + 20.365 , 0.127825557460833 , + 20.37 , 0.12489405648423 , + 20.375 , 0.122216684366155 , + 20.38 , 0.119703338338164 , + 20.385 , 0.117298332826065 , + 20.39 , 0.115002111347558 , + 20.395 , 0.1128792665639 , + 20.4 , 0.111051600017025 , + 20.405 , 0.109680624221402 , + 20.41 , 0.108942958893076 , + 20.415 , 0.109006468464252 , + 20.42 , 0.110010955231372 , + 20.425 , 0.112056904842183 , + 20.43 , 0.115202427994996 , + 20.435 , 0.119466647868312 , + 20.44 , 0.124835559019734 , + 20.445 , 0.131267773242386 , + 20.45 , 0.138696105432056 , + 20.455 , 0.14702533406325 , + 20.46 , 0.156125727838975 , + 20.465 , 0.165825042690333 , + 20.47 , 0.0 , + ), + INTERPOL='LIN', + PROL_DROITE='CONSTANT', + PROL_GAUCHE='EXCLU',); + + +ACCELV1=DEFI_FONCTION(NOM_PARA='INST', + VALE= +( + 0.0 , 0.0 , + 1.000000000000000E-02 , 1.310000000000000E-03 , + 2.000000000000000E-02 , 7.200000000000000E-04 , + 3.000000000000000E-02 , -1.160000000000000E-03 , + 4.000000000000000E-02 , -4.010000000000000E-03 , + 5.000000000000000E-02 , -8.580000000000001E-03 , + 6.000000000000000E-02 , -1.459000000000000E-02 , + 7.000000000000001E-02 , -1.920000000000000E-02 , + 8.000000000000000E-02 , -1.947000000000000E-02 , + 9.000000000000000E-02 , -1.781000000000000E-02 , + 0.1 , -1.970000000000000E-02 , + 0.11 , -2.520000000000000E-02 , + 0.12 , -3.281000000000000E-02 , + 0.13 , -4.377000000000000E-02 , + 0.14 , -5.504000000000000E-02 , + 0.15 , -5.797000000000000E-02 , + 0.16 , -4.627000000000000E-02 , + 0.17 , -2.536000000000000E-02 , + 0.18 , -6.700000000000000E-03 , + 0.19 , 7.849999999999999E-03 , + 0.2 , 2.168000000000000E-02 , + 0.21 , 3.643000000000000E-02 , + 0.22 , 5.686000000000000E-02 , + 0.23 , 8.019999999999999E-02 , + 0.24 , 8.942000000000000E-02 , + 0.25 , 7.790000000000000E-02 , + 0.26 , 6.301000000000000E-02 , + 0.27 , 5.860000000000000E-02 , + 0.28 , 5.444000000000000E-02 , + 0.29 , 3.314000000000000E-02 , + 0.3 , -4.730000000000000E-03 , + 0.31 , -3.492000000000000E-02 , + 0.32 , -3.413000000000000E-02 , + 0.33 , -7.530000000000000E-03 , + 0.34 , 1.991000000000000E-02 , + 0.35 , 2.983000000000000E-02 , + 0.36 , 2.482000000000000E-02 , + 0.37 , 1.676000000000000E-02 , + 0.38 , 4.890000000000000E-03 , + 0.39 , -1.521000000000000E-02 , + 0.4 , -3.575000000000000E-02 , + 0.41 , -5.053000000000000E-02 , + 0.42 , -6.325000000000000E-02 , + 0.43 , -7.273000000000000E-02 , + 0.44 , -7.520000000000000E-02 , + 0.45 , -8.463000000000000E-02 , + 0.46 , -0.11597 , + 0.47 , -0.1564 , + 0.48 , -0.18027 , + 0.49 , -0.17201 , + 0.5 , -0.13845 , + 0.51 , -0.1016 , + 0.52 , -6.390999999999999E-02 , + 0.53 , -1.035000000000000E-02 , + 0.54 , 5.961000000000000E-02 , + 0.55 , 0.12972 , + 0.56 , 0.18788 , + 0.57 , 0.23015 , + 0.58 , 0.23082 , + 0.59 , 0.1643 , + 0.6 , 6.750000000000000E-02 , + 0.61 , 7.450000000000000E-03 , + 0.62 , 1.664000000000000E-02 , + 0.63 , 8.058000000000000E-02 , + 0.64 , 0.15546 , + 0.65 , 0.2133 , + 0.66 , 0.24265 , + 0.67 , 0.21922 , + 0.68 , 0.1295 , + 0.69 , 1.220000000000000E-03 , + 0.7 , -0.12397 , + 0.71 , -0.1882 , + 0.72 , -0.17059 , + 0.73 , -0.11119 , + 0.74 , -9.375000000000000E-02 , + 0.75 , -0.15419 , + 0.76 , -0.21371 , + 0.77 , -0.19269 , + 0.78 , -0.12556 , + 0.79 , -8.054000000000000E-02 , + 0.8 , -5.658000000000000E-02 , + 0.81 , -2.563000000000000E-02 , + 0.82 , -1.082000000000000E-02 , + 0.83 , -6.067000000000000E-02 , + 0.84 , -0.16876 , + 0.85 , -0.26933 , + 0.86 , -0.31693 , + 0.87 , -0.3189 , + 0.88 , -0.31999 , + 0.89 , -0.32387 , + 0.9 , -0.35623 , + 0.91 , -0.38483 , + 0.92 , -0.36307 , + 0.93 , -0.29278 , + 0.94 , -0.18821 , + 0.95 , -6.119000000000000E-02 , + 0.96 , 3.932000000000000E-02 , + 0.97 , 7.092000000000000E-02 , + 0.98 , 3.394000000000000E-02 , + 0.99 , 1.056000000000000E-02 , + 1.0 , 3.006000000000000E-02 , + 1.01 , 4.384000000000000E-02 , + 1.02 , 1.582000000000000E-02 , + 1.03 , -2.452000000000000E-02 , + 1.04 , -3.991000000000000E-02 , + 1.05 , -4.053000000000000E-02 , + 1.06 , -4.416000000000000E-02 , + 1.07 , -6.185000000000000E-02 , + 1.08 , -0.10165 , + 1.09 , -0.13542 , + 1.1 , -0.142 , + 1.11 , -0.13819 , + 1.12 , -0.13187 , + 1.13 , -0.11765 , + 1.14 , -8.853000000000000E-02 , + 1.15 , -4.957000000000000E-02 , + 1.16 , -2.751000000000000E-02 , + 1.17 , -4.837000000000000E-02 , + 1.18 , -0.11303 , + 1.19 , -0.16115 , + 1.2 , -0.1365 , + 1.21 , -9.369000000000000E-02 , + 1.22 , -0.10681 , + 1.23 , -0.16911 , + 1.24 , -0.23593 , + 1.25 , -0.27067 , + 1.26 , -0.27471 , + 1.27 , -0.25731 , + 1.28 , -0.19103 , + 1.29 , -7.716000000000001E-02 , + 1.3 , 1.100000000000000E-03 , + 1.31 , -4.582000000000000E-02 , + 1.32 , -0.19352 , + 1.33 , -0.32144 , + 1.34 , -0.37399 , + 1.35 , -0.40308 , + 1.36 , -0.45452 , + 1.37 , -0.51071 , + 1.38 , -0.52231 , + 1.39 , -0.45018 , + 1.4 , -0.30537 , + 1.41 , -0.15517 , + 1.42 , -7.362000000000000E-02 , + 1.43 , -9.615000000000000E-02 , + 1.44 , -0.17148 , + 1.45 , -0.17476 , + 1.46 , -8.399000000000000E-02 , + 1.47 , -2.696000000000000E-02 , + 1.48 , -6.808000000000000E-02 , + 1.49 , -0.12817 , + 1.5 , -0.12265 , + 1.51 , -6.149000000000000E-02 , + 1.52 , -8.380000000000000E-03 , + 1.53 , 1.139000000000000E-02 , + 1.54 , 5.830000000000000E-03 , + 1.55 , -2.002000000000000E-02 , + 1.56 , -3.584000000000000E-02 , + 1.57 , -1.060000000000000E-03 , + 1.58 , 6.028000000000000E-02 , + 1.59 , 8.509000000000000E-02 , + 1.6 , 9.515000000000000E-02 , + 1.61 , 0.14372 , + 1.62 , 0.17863 , + 1.63 , 0.16098 , + 1.64 , 0.15227 , + 1.65 , 0.16265 , + 1.66 , 0.1009 , + 1.67 , -8.347000000000000E-02 , + 1.68 , -0.28571 , + 1.69 , -0.3845 , + 1.7 , -0.42649 , + 1.71 , -0.48045 , + 1.72 , -0.48546 , + 1.73 , -0.34744 , + 1.74 , -4.460000000000000E-02 , + 1.75 , 0.31704 , + 1.76 , 0.56244 , + 1.77 , 0.61288 , + 1.78 , 0.56235 , + 1.79 , 0.56046 , + 1.8 , 0.58601 , + 1.81 , 0.50428 , + 1.82 , 0.34783 , + 1.83 , 0.2707 , + 1.84 , 0.32579 , + 1.85 , 0.43838 , + 1.86 , 0.49734 , + 1.87 , 0.46993 , + 1.88 , 0.42104 , + 1.89 , 0.39656 , + 1.9 , 0.37011 , + 1.91 , 0.3211 , + 1.92 , 0.27122 , + 1.93 , 0.2175 , + 1.94 , 0.1251 , + 1.95 , 3.090000000000000E-03 , + 1.96 , -9.401000000000000E-02 , + 1.97 , -0.13751 , + 1.98 , -0.12623 , + 1.99 , -3.147000000000000E-02 , + 2.0 , 0.15999 , + 2.01 , 0.39077 , + 2.02 , 0.57348 , + 2.03 , 0.61086 , + 2.04 , 0.4807 , + 2.05 , 0.29864 , + 2.06 , 0.18108 , + 2.07 , 0.167 , + 2.08 , 0.23579 , + 2.09 , 0.28543 , + 2.1 , 0.21887 , + 2.11 , 6.136000000000000E-02 , + 2.12 , -8.754000000000001E-02 , + 2.13 , -0.18795 , + 2.14 , -0.28217 , + 2.15 , -0.39328 , + 2.16 , -0.47351 , + 2.17 , -0.45659 , + 2.18 , -0.38611 , + 2.19 , -0.40359 , + 2.2 , -0.49671 , + 2.21 , -0.47831 , + 2.22 , -0.24834 , + 2.23 , 9.692000000000001E-02 , + 2.24 , 0.36832 , + 2.25 , 0.49779 , + 2.26 , 0.55588 , + 2.27 , 0.55074 , + 2.28 , 0.47652 , + 2.29 , 0.42596 , + 2.3 , 0.45439 , + 2.31 , 0.4758 , + 2.32 , 0.36011 , + 2.33 , 9.916999999999999E-02 , + 2.34 , -0.22081 , + 2.35 , -0.53559 , + 2.36 , -0.73055 , + 2.37 , -0.68219 , + 2.38 , -0.46512 , + 2.39 , -0.29795 , + 2.4 , -0.29155 , + 2.41 , -0.37205 , + 2.42 , -0.45321 , + 2.43 , -0.52678 , + 2.44 , -0.53549 , + 2.45 , -0.39903 , + 2.46 , -0.17073 , + 2.47 , 4.007000000000000E-02 , + 2.48 , 0.19098 , + 2.49 , 0.23016 , + 2.5 , 0.11487 , + 2.51 , -3.277000000000000E-02 , + 2.52 , -2.678000000000000E-02 , + 2.53 , 0.14456 , + 2.54 , 0.33564 , + 2.55 , 0.43459 , + 2.56 , 0.47636 , + 2.57 , 0.56106 , + 2.58 , 0.69871 , + 2.59 , 0.78021 , + 2.6 , 0.69033 , + 2.61 , 0.48738 , + 2.62 , 0.37542 , + 2.63 , 0.44792 , + 2.64 , 0.63115 , + 2.65 , 0.80303 , + 2.66 , 0.86913 , + 2.67 , 0.81861 , + 2.68 , 0.67639 , + 2.69 , 0.44981 , + 2.7 , 0.19577 , + 2.71 , 1.762000000000000E-02 , + 2.72 , -7.475000000000000E-02 , + 2.73 , -0.18543 , + 2.74 , -0.31712 , + 2.75 , -0.30763 , + 2.76 , -5.022000000000000E-02 , + 2.77 , 0.36264 , + 2.78 , 0.71418 , + 2.79 , 0.86474 , + 2.8 , 0.91391 , + 2.81 , 0.97578 , + 2.82 , 0.99997 , + 2.83 , 0.90663 , + 2.84 , 0.71448 , + 2.85 , 0.55982 , + 2.86 , 0.55183 , + 2.87 , 0.63744 , + 2.88 , 0.70292 , + 2.89 , 0.68299 , + 2.9 , 0.58616 , + 2.91 , 0.47484 , + 2.92 , 0.38822 , + 2.93 , 0.3229 , + 2.94 , 0.25296 , + 2.95 , 0.16705 , + 2.96 , 0.10044 , + 2.97 , 7.353000000000000E-02 , + 2.98 , 4.790000000000000E-02 , + 2.99 , -3.974000000000000E-02 , + 3.0 , -0.21989 , + 3.01 , -0.43388 , + 3.02 , -0.59094 , + 3.03 , -0.68752 , + 3.04 , -0.77344 , + 3.05 , -0.84165 , + 3.06 , -0.87592 , + 3.07 , -0.92165 , + 3.08 , -0.98681 , + 3.09 , -0.9813 , + 3.1 , -0.85134 , + 3.11 , -0.71226 , + 3.12 , -0.70318 , + 3.13 , -0.73062 , + 3.14 , -0.63434 , + 3.15 , -0.49621 , + 3.16 , -0.46434 , + 3.17 , -0.4895 , + 3.18 , -0.43989 , + 3.19 , -0.297 , + 3.2 , -0.12264 , + 3.21 , 5.685000000000000E-02 , + 3.22 , 0.20721 , + 3.23 , 0.29127 , + 3.24 , 0.37167 , + 3.25 , 0.47314 , + 3.26 , 0.48428 , + 3.27 , 0.34199 , + 3.28 , 0.14378 , + 3.29 , 2.014000000000000E-02 , + 3.3 , -3.310000000000000E-03 , + 3.31 , 3.046000000000000E-02 , + 3.32 , 7.851000000000000E-02 , + 3.33 , 0.1222 , + 3.34 , 0.19291 , + 3.35 , 0.2916 , + 3.36 , 0.38011 , + 3.37 , 0.46514 , + 3.38 , 0.52328 , + 3.39 , 0.51669 , + 3.4 , 0.4727 , + 3.41 , 0.38682 , + 3.42 , 0.22939 , + 3.43 , 1.800000000000000E-02 , + 3.44 , -0.199 , + 3.45 , -0.40018 , + 3.46 , -0.5733 , + 3.47 , -0.72332 , + 3.48 , -0.82419 , + 3.49 , -0.83348 , + 3.5 , -0.74258 , + 3.51 , -0.61694 , + 3.52 , -0.56099 , + 3.53 , -0.61112 , + 3.54 , -0.71023 , + 3.55 , -0.78959 , + 3.56 , -0.85129 , + 3.57 , -0.93566 , + 3.58 , -0.99997 , + 3.59 , -0.92052 , + 3.6 , -0.6664 , + 3.61 , -0.3873 , + 3.62 , -0.25033 , + 3.63 , -0.24161 , + 3.64 , -0.18701 , + 3.65 , 9.379999999999999E-03 , + 3.66 , 0.11381 , + 3.67 , 0.16743 , + 3.68 , 0.16297 , + 3.69 , 0.1216 , + 3.7 , 5.279000000000000E-02 , + 3.71 , -9.607000000000000E-02 , + 3.72 , -0.30972 , + 3.73 , -0.35938 , + 3.74 , -0.19296 , + 3.75 , 6.919000000000000E-02 , + 3.76 , 0.27173 , + 3.77 , 0.34172 , + 3.78 , 0.31251 , + 3.79 , 0.24099 , + 3.8 , 0.15009 , + 3.81 , 0.10136 , + 3.82 , 0.18046 , + 3.83 , 0.36244 , + 3.84 , 0.47034 , + 3.85 , 0.36939 , + 3.86 , 0.15689 , + 3.87 , 1.108000000000000E-02 , + 3.88 , 3.990000000000000E-03 , + 3.89 , 0.11976 , + 3.9 , 0.24956 , + 3.91 , 0.21477 , + 3.92 , -3.172000000000000E-02 , + 3.93 , -0.24232 , + 3.94 , -0.1514 , + 3.95 , 0.12645 , + 3.96 , 0.3411 , + 3.97 , 0.48457 , + 3.98 , 0.61705 , + 3.99 , 0.70283 , + 4.0 , 0.70328 , + 4.01 , 0.62998 , + 4.02 , 0.53518 , + 4.03 , 0.44668 , + 4.04 , 0.36172 , + 4.05 , 0.31406 , + 4.06 , 0.32888 , + 4.07 , 0.35459 , + 4.08 , 0.32512 , + 4.09 , 0.25195 , + 4.1 , 0.20405 , + 4.11 , 0.22648 , + 4.12 , 0.30571 , + 4.13 , 0.37309 , + 4.14 , 0.35283 , + 4.15 , 0.24118 , + 4.16 , 0.11162 , + 4.17 , 1.458000000000000E-02 , + 4.18 , -7.364000000000000E-02 , + 4.19 , -0.1521 , + 4.2 , -0.14128 , + 4.21 , 2.440000000000000E-02 , + 4.22 , 0.2852 , + 4.23 , 0.45129 , + 4.24 , 0.38982 , + 4.25 , 0.15588 , + 4.26 , -0.11495 , + 4.27 , -0.31375 , + 4.28 , -0.42086 , + 4.29 , -0.48904 , + 4.3 , -0.52097 , + 4.31 , -0.49168 , + 4.32 , -0.4234 , + 4.33 , -0.36559 , + 4.34 , -0.36994 , + 4.35 , -0.42675 , + 4.36 , -0.45696 , + 4.37 , -0.39583 , + 4.38 , -0.24523 , + 4.39 , -7.371999999999999E-02 , + 4.4 , 5.577000000000000E-02 , + 4.41 , 0.13029 , + 4.42 , 0.17 , + 4.43 , 0.21223 , + 4.44 , 0.25214 , + 4.45 , 0.25221 , + 4.46 , 0.20971 , + 4.47 , 0.15915 , + 4.48 , 0.13965 , + 4.49 , 0.1015 , + 4.5 , -5.693000000000000E-02 , + 4.51 , -0.30165 , + 4.52 , -0.49413 , + 4.53 , -0.5601 , + 4.54 , -0.5473 , + 4.55 , -0.52318 , + 4.56 , -0.43186 , + 4.57 , -0.21177 , + 4.58 , 5.701000000000000E-02 , + 4.59 , 0.26717 , + 4.6 , 0.3673 , + 4.61 , 0.3813 , + 4.62 , 0.40079 , + 4.63 , 0.39365 , + 4.64 , 0.18973 , + 4.65 , -0.17373 , + 4.66 , -0.40285 , + 4.67 , -0.36957 , + 4.68 , -0.23873 , + 4.69 , -0.13623 , + 4.7 , -1.420000000000000E-02 , + 4.71 , 0.15954 , + 4.72 , 0.31583 , + 4.73 , 0.4076 , + 4.74 , 0.44925 , + 4.75 , 0.43323 , + 4.76 , 0.36783 , + 4.77 , 0.32597 , + 4.78 , 0.34835 , + 4.79 , 0.36693 , + 4.8 , 0.28138 , + 4.81 , 0.11386 , + 4.82 , -4.390000000000000E-02 , + 4.83 , -0.20925 , + 4.84 , -0.42702 , + 4.85 , -0.62277 , + 4.86 , -0.72429 , + 4.87 , -0.7462 , + 4.88 , -0.75887 , + 4.89 , -0.77194 , + 4.9 , -0.72951 , + 4.91 , -0.66245 , + 4.92 , -0.67709 , + 4.93 , -0.80669 , + 4.94 , -0.95972 , + 4.95 , -0.99997 , + 4.96 , -0.88454 , + 4.97 , -0.69049 , + 4.98 , -0.52094 , + 4.99 , -0.3957 , + 5.0 , -0.24286 , + 5.01 , -3.739000000000000E-02 , + 5.02 , 0.10577 , + 5.03 , 0.17347 , + 5.04 , 0.16886 , + 5.05 , 0.14491 , + 5.06 , 0.14907 , + 5.07 , 0.17361 , + 5.08 , 0.20083 , + 5.09 , 0.21954 , + 5.1 , 0.2328 , + 5.11 , 0.2575 , + 5.12 , 0.28932 , + 5.13 , 0.31126 , + 5.14 , 0.29244 , + 5.15 , 0.19772 , + 5.16 , 5.796000000000000E-02 , + 5.17 , -6.429000000000000E-02 , + 5.18 , -5.218000000000000E-02 , + 5.19 , 9.539000000000000E-02 , + 5.2 , 0.20966 , + 5.21 , 0.15862 , + 5.22 , 1.473000000000000E-02 , + 5.23 , -3.926000000000000E-02 , + 5.24 , 8.541000000000000E-02 , + 5.25 , 0.31423 , + 5.26 , 0.44181 , + 5.27 , 0.30949 , + 5.28 , -4.230000000000000E-03 , + 5.29 , -0.32893 , + 5.3 , -0.59096 , + 5.31 , -0.72514 , + 5.32 , -0.65562 , + 5.33 , -0.42079 , + 5.34 , -0.1588 , + 5.35 , 2.904000000000000E-02 , + 5.36 , 0.10308 , + 5.37 , 4.177000000000000E-02 , + 5.38 , -6.319000000000000E-02 , + 5.39 , -4.705000000000000E-02 , + 5.4 , 9.604000000000000E-02 , + 5.41 , 0.24518 , + 5.42 , 0.30632 , + 5.43 , 0.23914 , + 5.44 , 9.232000000000000E-02 , + 5.45 , -1.776000000000000E-02 , + 5.46 , -7.690000000000000E-03 , + 5.47 , 7.241000000000000E-02 , + 5.48 , 9.512000000000000E-02 , + 5.49 , 8.989000000000000E-02 , + 5.5 , 0.19384 , + 5.51 , 0.35667 , + 5.52 , 0.38627 , + 5.53 , 0.27202 , + 5.54 , 0.22809 , + 5.55 , 0.35372 , + 5.56 , 0.49889 , + 5.57 , 0.54618 , + 5.58 , 0.55561 , + 5.59 , 0.6075 , + 5.6 , 0.65833 , + 5.61 , 0.62315 , + 5.62 , 0.54314 , + 5.63 , 0.5024 , + 5.64 , 0.49951 , + 5.65 , 0.50238 , + 5.66 , 0.459 , + 5.67 , 0.32065 , + 5.68 , 0.12297 , + 5.69 , -4.304000000000000E-02 , + 5.7 , -0.12348 , + 5.71 , -0.16939 , + 5.72 , -0.26337 , + 5.73 , -0.37116 , + 5.74 , -0.40828 , + 5.75 , -0.39748 , + 5.76 , -0.42458 , + 5.77 , -0.49729 , + 5.78 , -0.51741 , + 5.79 , -0.39554 , + 5.8 , -0.19178 , + 5.81 , -6.471000000000000E-02 , + 5.82 , -6.743000000000000E-02 , + 5.83 , -0.1271 , + 5.84 , -0.1634 , + 5.85 , -0.13345 , + 5.86 , -6.090000000000000E-02 , + 5.87 , 2.519000000000000E-02 , + 5.88 , 0.14903 , + 5.89 , 0.28064 , + 5.9 , 0.34038 , + 5.91 , 0.3104 , + 5.92 , 0.22998 , + 5.93 , 0.15353 , + 5.94 , 0.1055 , + 5.95 , 7.457000000000000E-02 , + 5.96 , 5.763000000000000E-02 , + 5.97 , 8.033999999999999E-02 , + 5.98 , 0.14644 , + 5.99 , 0.1332 , + 6.0 , -7.482000000000000E-02 , + 6.01 , -0.36556 , + 6.02 , -0.55895 , + 6.03 , -0.59056 , + 6.04 , -0.46664 , + 6.05 , -0.26194 , + 6.06 , -7.546000000000000E-02 , + 6.07 , 7.784000000000001E-02 , + 6.08 , 0.23755 , + 6.09 , 0.36836 , + 6.1 , 0.37298 , + 6.11 , 0.26509 , + 6.12 , 0.15102 , + 6.13 , 6.525000000000000E-02 , + 6.14 , -1.695000000000000E-02 , + 6.15 , -0.10207 , + 6.16 , -0.1821 , + 6.17 , -0.26644 , + 6.18 , -0.32842 , + 6.19 , -0.24869 , + 6.2 , 2.279000000000000E-02 , + 6.21 , 0.37255 , + 6.22 , 0.6758 , + 6.23 , 0.86221 , + 6.24 , 0.91467 , + 6.25 , 0.89167 , + 6.26 , 0.84631 , + 6.27 , 0.74074 , + 6.28 , 0.49841 , + 6.29 , 0.16761 , + 6.3 , -4.544000000000000E-02 , + 6.31 , -2.644000000000000E-02 , + 6.32 , 9.400000000000000E-02 , + 6.33 , 0.16063 , + 6.34 , 0.18176 , + 6.35 , 0.20612 , + 6.36 , 0.22068 , + 6.37 , 0.22211 , + 6.38 , 0.23664 , + 6.39 , 0.24671 , + 6.4 , 0.1861 , + 6.41 , 0.10676 , + 6.42 , 0.2039 , + 6.43 , 0.4894 , + 6.44 , 0.7178 , + 6.45 , 0.73624 , + 6.46 , 0.64197 , + 6.47 , 0.61236 , + 6.48 , 0.66281 , + 6.49 , 0.6407 , + 6.5 , 0.48402 , + 6.51 , 0.28743 , + 6.52 , 0.1436 , + 6.53 , 6.140000000000000E-02 , + 6.54 , -1.770000000000000E-03 , + 6.55 , -6.498000000000000E-02 , + 6.56 , -0.12251 , + 6.57 , -0.16577 , + 6.58 , -0.20217 , + 6.59 , -0.28219 , + 6.6 , -0.37605 , + 6.61 , -0.34257 , + 6.62 , -0.12814 , + 6.63 , 0.1706 , + 6.64 , 0.38468 , + 6.65 , 0.39384 , + 6.66 , 0.26746 , + 6.67 , 0.18207 , + 6.68 , 0.19512 , + 6.69 , 0.22133 , + 6.7 , 0.209 , + 6.71 , 0.17146 , + 6.72 , 6.763000000000000E-02 , + 6.73 , -0.13527 , + 6.74 , -0.37496 , + 6.75 , -0.55764 , + 6.76 , -0.58824 , + 6.77 , -0.44844 , + 6.78 , -0.27116 , + 6.79 , -0.19551 , + 6.8 , -0.18978 , + 6.81 , -9.911000000000000E-02 , + 6.82 , 0.11626 , + 6.83 , 0.30541 , + 6.84 , 0.3521 , + 6.85 , 0.27698 , + 6.86 , 0.10781 , + 6.87 , -0.13553 , + 6.88 , -0.3724 , + 6.89 , -0.51163 , + 6.9 , -0.49535 , + 6.91 , -0.29991 , + 6.92 , -1.034000000000000E-02 , + 6.93 , 0.19111 , + 6.94 , 0.1843 , + 6.95 , 6.730000000000000E-03 , + 6.96 , -0.21507 , + 6.97 , -0.41983 , + 6.98 , -0.58894 , + 6.99 , -0.63614 , + 7.0 , -0.54698 , + 7.01 , -0.44682 , + 7.02 , -0.42416 , + 7.03 , -0.46132 , + 7.04 , -0.48084 , + 7.05 , -0.43504 , + 7.06 , -0.34615 , + 7.07 , -0.23496 , + 7.08 , -0.13072 , + 7.09 , -5.857000000000000E-02 , + 7.1 , 1.753000000000000E-02 , + 7.11 , 0.10141 , + 7.12 , 0.12684 , + 7.13 , 9.014000000000000E-02 , + 7.14 , 0.11682 , + 7.15 , 0.28896 , + 7.16 , 0.48134 , + 7.17 , 0.54721 , + 7.18 , 0.49147 , + 7.19 , 0.35746 , + 7.2 , 0.17093 , + 7.21 , -6.870000000000000E-03 , + 7.22 , -7.575999999999999E-02 , + 7.23 , -4.320000000000000E-03 , + 7.24 , 6.714000000000001E-02 , + 7.25 , 2.620000000000000E-03 , + 7.26 , -0.12071 , + 7.27 , -0.16453 , + 7.28 , -0.1671 , + 7.29 , -0.24591 , + 7.3 , -0.36246 , + 7.31 , -0.39855 , + 7.32 , -0.33851 , + 7.33 , -0.22608 , + 7.34 , -0.1129 , + 7.35 , -3.976000000000000E-02 , + 7.36 , 5.950000000000000E-03 , + 7.37 , 4.231000000000000E-02 , + 7.38 , 9.320000000000001E-02 , + 7.39 , 0.21161 , + 7.4 , 0.37502 , + 7.41 , 0.46085 , + 7.42 , 0.42852 , + 7.43 , 0.39911 , + 7.44 , 0.48134 , + 7.45 , 0.61862 , + 7.46 , 0.65845 , + 7.47 , 0.52488 , + 7.48 , 0.27775 , + 7.49 , 2.611000000000000E-02 , + 7.5 , -0.16858 , + 7.51 , -0.35917 , + 7.52 , -0.64888 , + 7.53 , -0.93894 , + 7.54 , -0.99997 , + 7.55 , -0.79545 , + 7.56 , -0.50022 , + 7.57 , -0.31055 , + 7.58 , -0.28451 , + 7.59 , -0.32788 , + 7.6 , -0.34293 , + 7.61 , -0.30914 , + 7.62 , -0.29364 , + 7.63 , -0.36128 , + 7.64 , -0.43128 , + 7.65 , -0.41928 , + 7.66 , -0.39651 , + 7.67 , -0.43324 , + 7.68 , -0.4592 , + 7.69 , -0.3661 , + 7.7 , -0.17726 , + 7.71 , -7.930000000000000E-03 , + 7.72 , 9.228000000000000E-02 , + 7.73 , 0.12711 , + 7.74 , 0.10315 , + 7.75 , 9.070000000000000E-03 , + 7.76 , -0.1676 , + 7.77 , -0.37078 , + 7.78 , -0.48702 , + 7.79 , -0.42176 , + 7.8 , -0.20091 , + 7.81 , -7.270000000000000E-03 , + 7.82 , 3.404000000000000E-02 , + 7.83 , 2.700000000000000E-03 , + 7.84 , -4.730000000000000E-03 , + 7.85 , -2.107000000000000E-02 , + 7.86 , -7.763000000000000E-02 , + 7.87 , -0.11332 , + 7.88 , -9.217000000000000E-02 , + 7.89 , -7.226000000000000E-02 , + 7.9 , -0.10282 , + 7.91 , -0.18072 , + 7.92 , -0.27112 , + 7.93 , -0.33308 , + 7.94 , -0.37009 , + 7.95 , -0.41046 , + 7.96 , -0.46542 , + 7.97 , -0.51679 , + 7.98 , -0.48695 , + 7.99 , -0.31766 , + 8.0 , -0.11193 , + 8.01 , -1.808000000000000E-02 , + 8.02 , -9.790000000000000E-03 , + 8.03 , 7.910000000000000E-03 , + 8.04 , 2.892000000000000E-02 , + 8.05 , 5.256000000000000E-02 , + 8.06 , 0.15118 , + 8.07 , 0.33598 , + 8.08 , 0.47411 , + 8.09 , 0.4184 , + 8.1 , 0.22182 , + 8.11 , 6.008000000000000E-02 , + 8.12 , 7.820000000000001E-03 , + 8.13 , 3.031000000000000E-02 , + 8.14 , 6.139000000000000E-02 , + 8.15 , 9.475000000000000E-02 , + 8.16 , 0.1711 , + 8.17 , 0.25375 , + 8.18 , 0.32694 , + 8.19 , 0.47654 , + 8.2 , 0.71476 , + 8.21 , 0.92354 , + 8.22 , 0.99997 , + 8.23 , 0.96174 , + 8.24 , 0.85956 , + 8.25 , 0.67462 , + 8.26 , 0.42666 , + 8.27 , 0.21402 , + 8.28 , 8.068000000000000E-02 , + 8.29 , -2.572000000000000E-02 , + 8.3 , -0.18823 , + 8.31 , -0.43016 , + 8.32 , -0.69265 , + 8.33 , -0.84523 , + 8.34 , -0.78451 , + 8.35 , -0.5823 , + 8.36 , -0.39951 , + 8.37 , -0.3009 , + 8.38 , -0.28826 , + 8.39 , -0.34762 , + 8.4 , -0.40794 , + 8.41 , -0.37827 , + 8.42 , -0.24945 , + 8.43 , -0.10703 , + 8.44 , -1.106000000000000E-02 , + 8.45 , 6.251000000000000E-02 , + 8.46 , 0.1419 , + 8.47 , 0.19928 , + 8.48 , 0.18798 , + 8.49 , 0.11645 , + 8.5 , 4.575000000000000E-02 , + 8.51 , 4.959000000000000E-02 , + 8.52 , 0.17716 , + 8.53 , 0.34359 , + 8.54 , 0.36584 , + 8.55 , 0.23915 , + 8.56 , 0.18171 , + 8.57 , 0.30089 , + 8.58 , 0.43922 , + 8.59 , 0.40395 , + 8.6 , 0.15759 , + 8.61 , -0.16407 , + 8.62 , -0.36165 , + 8.63 , -0.39041 , + 8.64 , -0.35247 , + 8.65 , -0.31056 , + 8.66 , -0.24355 , + 8.67 , -9.318000000000000E-02 , + 8.68 , 7.779999999999999E-02 , + 8.69 , 5.175000000000000E-02 , + 8.7 , -0.23925 , + 8.71 , -0.59171 , + 8.72 , -0.77473 , + 8.73 , -0.75474 , + 8.74 , -0.64528 , + 8.75 , -0.48987 , + 8.76 , -0.29956 , + 8.77 , -0.1701 , + 8.78 , -0.13175 , + 8.79 , -0.10789 , + 8.8 , -4.978000000000000E-02 , + 8.81 , 4.376000000000000E-02 , + 8.82 , 0.15205 , + 8.83 , 0.2202 , + 8.84 , 0.17479 , + 8.85 , 2.103000000000000E-02 , + 8.86 , -0.14172 , + 8.87 , -0.26548 , + 8.88 , -0.38534 , + 8.89 , -0.50451 , + 8.9 , -0.53404 , + 8.91 , -0.38116 , + 8.92 , -0.11525 , + 8.93 , 7.395000000000000E-02 , + 8.94 , 0.10361 , + 8.95 , 6.577000000000000E-02 , + 8.96 , 6.259000000000001E-02 , + 8.97 , 5.649000000000000E-02 , + 8.98 , -3.880000000000000E-03 , + 8.99 , -2.390000000000000E-02 , + 9.0 , 7.305000000000000E-02 , + 9.01 , 0.19452 , + 9.02 , 0.2608 , + 9.03 , 0.35267 , + 9.04 , 0.5391 , + 9.05 , 0.73389 , + 9.06 , 0.83545 , + 9.07 , 0.82904 , + 9.08 , 0.72024 , + 9.09 , 0.51294 , + 9.1 , 0.23736 , + 9.11 , -4.577000000000000E-02 , + 9.12 , -0.26395 , + 9.13 , -0.38853 , + 9.14 , -0.43089 , + 9.15 , -0.4349 , + 9.16 , -0.41682 , + 9.17 , -0.37537 , + 9.18 , -0.32465 , + 9.19 , -0.29702 , + 9.2 , -0.32491 , + 9.21 , -0.3466 , + 9.22 , -0.28185 , + 9.23 , -0.19619 , + 9.24 , -0.14637 , + 9.25 , -9.772000000000000E-02 , + 9.26 , -7.858999999999999E-02 , + 9.27 , -0.13191 , + 9.28 , -0.21558 , + 9.29 , -0.24568 , + 9.3 , -0.18549 , + 9.31 , -9.976000000000000E-02 , + 9.32 , -6.297000000000000E-02 , + 9.33 , -8.577000000000000E-02 , + 9.34 , -0.11997 , + 9.35 , -5.070000000000000E-02 , + 9.36 , 0.19743 , + 9.37 , 0.55636 , + 9.38 , 0.86649 , + 9.39 , 0.99997 , + 9.4 , 0.95787 , + 9.41 , 0.80859 , + 9.42 , 0.58733 , + 9.43 , 0.34042 , + 9.44 , 0.15629 , + 9.45 , 7.298000000000000E-02 , + 9.46 , 3.103000000000000E-02 , + 9.47 , -1.360000000000000E-03 , + 9.48 , 2.567000000000000E-02 , + 9.49 , 9.848000000000000E-02 , + 9.5 , 0.13363 , + 9.51 , 0.10499 , + 9.52 , 1.947000000000000E-02 , + 9.53 , -0.11686 , + 9.54 , -0.25475 , + 9.55 , -0.33284 , + 9.56 , -0.37717 , + 9.57 , -0.45927 , + 9.58 , -0.53679 , + 9.59 , -0.50988 , + 9.6 , -0.4323 , + 9.61 , -0.46891 , + 9.62 , -0.62414 , + 9.63 , -0.67897 , + 9.64 , -0.46893 , + 9.65 , -0.10561 , + 9.66 , 0.12896 , + 9.67 , 7.442000000000000E-02 , + 9.68 , -0.13619 , + 9.69 , -0.25497 , + 9.7 , -0.19615 , + 9.71 , -5.295000000000000E-02 , + 9.72 , 5.399000000000000E-02 , + 9.73 , 8.438000000000000E-02 , + 9.74 , 7.897000000000000E-02 , + 9.75 , 0.11239 , + 9.76 , 0.18699 , + 9.77 , 0.19038 , + 9.78 , 0.13535 , + 9.79 , 0.20938 , + 9.8 , 0.43787 , + 9.81 , 0.63937 , + 9.82 , 0.67742 , + 9.83 , 0.58799 , + 9.84 , 0.49876 , + 9.85 , 0.4183 , + 9.86 , 0.29948 , + 9.87 , 0.22905 , + 9.88 , 0.2606 , + 9.89 , 0.28847 , + 9.9 , 0.22616 , + 9.91 , 0.12545 , + 9.92 , 8.956000000000000E-02 , + 9.93 , 0.12928 , + 9.94 , 0.15076 , + 9.95 , 4.544000000000000E-02 , + 9.96 , -0.20722 , + 9.97 , -0.49063 , + 9.98 , -0.6894 , + 9.99 , -0.80485 , + 10.0 , -0.84771 , + 10.01 , -0.76807 , + 10.02 , -0.56037 , + 10.03 , -0.32503 , + 10.04 , -0.15016 , + 10.05 , -3.882000000000000E-02 , + 10.06 , 6.110000000000000E-03 , + 10.07 , -2.178000000000000E-02 , + 10.08 , -6.615000000000000E-02 , + 10.09 , -3.796000000000000E-02 , + 10.1 , 8.788000000000000E-02 , + 10.11 , 0.2149 , + 10.12 , 0.23018 , + 10.13 , 0.14302 , + 10.14 , 3.300000000000000E-02 , + 10.15 , -5.442000000000000E-02 , + 10.16 , -9.190000000000000E-02 , + 10.17 , -5.636000000000000E-02 , + 10.18 , 1.760000000000000E-03 , + 10.19 , -4.910000000000000E-03 , + 10.2 , -7.645000000000000E-02 , + 10.21 , -0.16067 , + 10.22 , -0.22708 , + 10.23 , -0.23139 , + 10.24 , -0.12101 , + 10.25 , 7.537000000000001E-02 , + 10.26 , 0.24004 , + 10.27 , 0.32546 , + 10.28 , 0.38826 , + 10.29 , 0.41863 , + 10.3 , 0.35794 , + 10.31 , 0.23222 , + 10.32 , 0.11401 , + 10.33 , 1.697000000000000E-02 , + 10.34 , -0.10766 , + 10.35 , -0.25136 , + 10.36 , -0.35757 , + 10.37 , -0.41565 , + 10.38 , -0.3843 , + 10.39 , -0.22915 , + 10.4 , -7.590000000000000E-03 , + 10.41 , 0.24235 , + 10.42 , 0.48677 , + 10.43 , 0.65383 , + 10.44 , 0.70515 , + 10.45 , 0.61222 , + 10.46 , 0.40693 , + 10.47 , 0.24331 , + 10.48 , 0.2277 , + 10.49 , 0.27807 , + 10.5 , 0.24063 , + 10.51 , 9.018000000000000E-02 , + 10.52 , -8.182000000000000E-02 , + 10.53 , -0.23302 , + 10.54 , -0.37812 , + 10.55 , -0.4703 , + 10.56 , -0.41592 , + 10.57 , -0.24651 , + 10.58 , -0.12814 , + 10.59 , -0.13 , + 10.6 , -0.17581 , + 10.61 , -0.22261 , + 10.62 , -0.29974 , + 10.63 , -0.40731 , + 10.64 , -0.49694 , + 10.65 , -0.51567 , + 10.66 , -0.38399 , + 10.67 , -6.413000000000001E-02 , + 10.68 , 0.26417 , + 10.69 , 0.33331 , + 10.7 , 0.13429 , + 10.71 , -8.293000000000000E-02 , + 10.72 , -0.1463 , + 10.73 , -0.13542 , + 10.74 , -0.20542 , + 10.75 , -0.35982 , + 10.76 , -0.44591 , + 10.77 , -0.37107 , + 10.78 , -0.25668 , + 10.79 , -0.25179 , + 10.8 , -0.31124 , + 10.81 , -0.28374 , + 10.82 , -0.12758 , + 10.83 , 1.490000000000000E-02 , + 10.84 , 1.229000000000000E-02 , + 10.85 , -6.356000000000001E-02 , + 10.86 , -5.771000000000000E-02 , + 10.87 , 8.679000000000001E-02 , + 10.88 , 0.31097 , + 10.89 , 0.53347 , + 10.9 , 0.68419 , + 10.91 , 0.65081 , + 10.92 , 0.4251 , + 10.93 , 0.19891 , + 10.94 , 0.11666 , + 10.95 , 0.13796 , + 10.96 , 0.14749 , + 10.97 , 9.375000000000000E-02 , + 10.98 , 2.569000000000000E-02 , + 10.99 , -1.828000000000000E-02 , + 11.0 , -6.660000000000000E-03 , + 11.01 , 9.803000000000001E-02 , + 11.02 , 0.2156 , + 11.03 , 0.2608 , + 11.04 , 0.28376 , + 11.05 , 0.31446 , + 11.06 , 0.30511 , + 11.07 , 0.25332 , + 11.08 , 0.19284 , + 11.09 , 0.1152 , + 11.1 , 1.948000000000000E-02 , + 11.11 , -8.540000000000001E-03 , + 11.12 , -8.070000000000001E-03 , + 11.13 , 5.720000000000000E-03 , + 11.14 , 5.899000000000000E-02 , + 11.15 , 0.13421 , + 11.16 , 0.26053 , + 11.17 , 0.41353 , + 11.18 , 0.51092 , + 11.19 , 0.52002 , + 11.2 , 0.50124 , + 11.21 , 0.5386 , + 11.22 , 0.65388 , + 11.23 , 0.8058 , + 11.24 , 0.93844 , + 11.25 , 0.99997 , + 11.26 , 0.96789 , + 11.27 , 0.87593 , + 11.28 , 0.80065 , + 11.29 , 0.79192 , + 11.3 , 0.8141 , + 11.31 , 0.8052 , + 11.32 , 0.74262 , + 11.33 , 0.61546 , + 11.34 , 0.41975 , + 11.35 , 0.22346 , + 11.36 , 0.14585 , + 11.37 , 0.18339 , + 11.38 , 0.21495 , + 11.39 , 0.22018 , + 11.4 , 0.23766 , + 11.41 , 0.19769 , + 11.42 , 1.272000000000000E-02 , + 11.43 , -0.33277 , + 11.44 , -0.5999 , + 11.45 , -0.66307 , + 11.46 , -0.54941 , + 11.47 , -0.30754 , + 11.48 , 9.150000000000000E-03 , + 11.49 , 0.33567 , + 11.5 , 0.62395 , + 11.51 , 0.82292 , + 11.52 , 0.92488 , + 11.53 , 0.94922 , + 11.54 , 0.90162 , + 11.55 , 0.81535 , + 11.56 , 0.68529 , + 11.57 , 0.48301 , + 11.58 , 0.28744 , + 11.59 , 0.21968 , + 11.6 , 0.31463 , + 11.61 , 0.4858 , + 11.62 , 0.58845 , + 11.63 , 0.57005 , + 11.64 , 0.49055 , + 11.65 , 0.39877 , + 11.66 , 0.2819 , + 11.67 , 0.11731 , + 11.68 , -6.177000000000000E-02 , + 11.69 , -0.1701 , + 11.7 , -0.21434 , + 11.71 , -0.36528 , + 11.72 , -0.67236 , + 11.73 , -0.88398 , + 11.74 , -0.82736 , + 11.75 , -0.67582 , + 11.76 , -0.64387 , + 11.77 , -0.69937 , + 11.78 , -0.68858 , + 11.79 , -0.5758 , + 11.8 , -0.46315 , + 11.81 , -0.45051 , + 11.82 , -0.51549 , + 11.83 , -0.51468 , + 11.84 , -0.35292 , + 11.85 , -0.11964 , + 11.86 , -1.117000000000000E-02 , + 11.87 , -0.1357 , + 11.88 , -0.40276 , + 11.89 , -0.63738 , + 11.9 , -0.73699 , + 11.91 , -0.69661 , + 11.92 , -0.58112 , + 11.93 , -0.46357 , + 11.94 , -0.38497 , + 11.95 , -0.33617 , + 11.96 , -0.26831 , + 11.97 , -0.19582 , + 11.98 , -0.16518 , + 11.99 , -0.14401 , + 12.0 , -7.318000000000000E-02 , + 12.01 , 7.769000000000000E-02 , + 12.02 , 0.26041 , + 12.03 , 0.37046 , + 12.04 , 0.40569 , + 12.05 , 0.44476 , + 12.06 , 0.50231 , + 12.07 , 0.52622 , + 12.08 , 0.47631 , + 12.09 , 0.35672 , + 12.1 , 0.14838 , + 12.11 , -0.13846 , + 12.12 , -0.36979 , + 12.13 , -0.47711 , + 12.14 , -0.54786 , + 12.15 , -0.62333 , + 12.16 , -0.64749 , + 12.17 , -0.58515 , + 12.18 , -0.46856 , + 12.19 , -0.35151 , + 12.2 , -0.26225 , + 12.21 , -0.22214 , + 12.22 , -0.22853 , + 12.23 , -0.19257 , + 12.24 , -2.725000000000000E-02 , + 12.25 , 0.18283 , + 12.26 , 0.25344 , + 12.27 , 0.12964 , + 12.28 , -9.258000000000000E-02 , + 12.29 , -0.29733 , + 12.3 , -0.42242 , + 12.31 , -0.45343 , + 12.32 , -0.38158 , + 12.33 , -0.24116 , + 12.34 , -0.13557 , + 12.35 , -0.11938 , + 12.36 , -0.14999 , + 12.37 , -0.17426 , + 12.38 , -0.16707 , + 12.39 , -0.12211 , + 12.4 , -6.938000000000000E-02 , + 12.41 , -5.365000000000000E-02 , + 12.42 , -6.988999999999999E-02 , + 12.43 , -0.10537 , + 12.44 , -0.18301 , + 12.45 , -0.26683 , + 12.46 , -0.27079 , + 12.47 , -0.18067 , + 12.48 , -5.357000000000000E-02 , + 12.49 , 5.621000000000000E-02 , + 12.5 , 0.12411 , + 12.51 , 0.1349 , + 12.52 , 0.10552 , + 12.53 , 8.767000000000000E-02 , + 12.54 , 5.312000000000000E-02 , + 12.55 , -7.994000000000000E-02 , + 12.56 , -0.28316 , + 12.57 , -0.43439 , + 12.58 , -0.45819 , + 12.59 , -0.39875 , + 12.6 , -0.3257 , + 12.61 , -0.21617 , + 12.62 , -5.834000000000000E-02 , + 12.63 , 6.234000000000000E-02 , + 12.64 , 7.834000000000001E-02 , + 12.65 , 2.524000000000000E-02 , + 12.66 , -4.370000000000000E-03 , + 12.67 , 2.088000000000000E-02 , + 12.68 , 3.738000000000000E-02 , + 12.69 , -5.780000000000000E-03 , + 12.7 , -7.783000000000000E-02 , + 12.71 , -0.10293 , + 12.72 , -5.917000000000000E-02 , + 12.73 , -2.088000000000000E-02 , + 12.74 , -4.084000000000000E-02 , + 12.75 , -7.596000000000000E-02 , + 12.76 , -7.527000000000000E-02 , + 12.77 , -4.418000000000000E-02 , + 12.78 , -2.046000000000000E-02 , + 12.79 , -2.682000000000000E-02 , + 12.8 , -2.654000000000000E-02 , + 12.81 , 3.635000000000000E-02 , + 12.82 , 0.12352 , + 12.83 , 0.13159 , + 12.84 , 4.372000000000000E-02 , + 12.85 , -6.480000000000000E-02 , + 12.86 , -0.1361 , + 12.87 , -0.17058 , + 12.88 , -0.1883 , + 12.89 , -0.19167 , + 12.9 , -0.19116 , + 12.91 , -0.20869 , + 12.92 , -0.23797 , + 12.93 , -0.28017 , + 12.94 , -0.36467 , + 12.95 , -0.46778 , + 12.96 , -0.49324 , + 12.97 , -0.38894 , + 12.98 , -0.2225 , + 12.99 , -9.676000000000000E-02 , + 13.0 , -5.153000000000000E-02 , + 13.01 , -5.856000000000000E-02 , + 13.02 , -6.265000000000000E-02 , + 13.03 , -3.700000000000000E-02 , + 13.04 , 8.800000000000001E-03 , + 13.05 , 4.189000000000000E-02 , + 13.06 , 1.048000000000000E-02 , + 13.07 , -8.393000000000000E-02 , + 13.08 , -0.17214 , + 13.09 , -0.21986 , + 13.1 , -0.25265 , + 13.11 , -0.28696 , + 13.12 , -0.29845 , + 13.13 , -0.27534 , + 13.14 , -0.25187 , + 13.15 , -0.25011 , + 13.16 , -0.27425 , + 13.17 , -0.33551 , + 13.18 , -0.41051 , + 13.19 , -0.45406 , + 13.2 , -0.44533 , + 13.21 , -0.38727 , + 13.22 , -0.30756 , + 13.23 , -0.24203 , + 13.24 , -0.20129 , + 13.25 , -0.16106 , + 13.26 , -9.457000000000000E-02 , + 13.27 , -2.440000000000000E-02 , + 13.28 , 7.040000000000000E-03 , + 13.29 , 8.600000000000000E-03 , + 13.3 , 1.981000000000000E-02 , + 13.31 , 4.834000000000000E-02 , + 13.32 , 7.178000000000000E-02 , + 13.33 , 8.525000000000001E-02 , + 13.34 , 0.1107 , + 13.35 , 0.15822 , + 13.36 , 0.21564 , + 13.37 , 0.27468 , + 13.38 , 0.32506 , + 13.39 , 0.34096 , + 13.4 , 0.32619 , + 13.41 , 0.32491 , + 13.42 , 0.34842 , + 13.43 , 0.36279 , + 13.44 , 0.34026 , + 13.45 , 0.2756 , + 13.46 , 0.18648 , + 13.47 , 9.881000000000000E-02 , + 13.48 , 3.222000000000000E-02 , + 13.49 , 1.061000000000000E-02 , + 13.5 , 4.343000000000000E-02 , + 13.51 , 9.372000000000000E-02 , + 13.52 , 0.10628 , + 13.53 , 7.198000000000000E-02 , + 13.54 , 3.458000000000000E-02 , + 13.55 , 2.182000000000000E-02 , + 13.56 , 1.377000000000000E-02 , + 13.57 , -1.295000000000000E-02 , + 13.58 , -4.297000000000000E-02 , + 13.59 , -4.232000000000000E-02 , + 13.6 , -1.224000000000000E-02 , + 13.61 , 1.559000000000000E-02 , + 13.62 , 1.639000000000000E-02 , + 13.63 , -1.544000000000000E-02 , + 13.64 , -5.384000000000000E-02 , + 13.65 , -7.287000000000000E-02 , + 13.66 , -8.747000000000001E-02 , + 13.67 , -0.10976 , + 13.68 , -0.11529 , + 13.69 , -8.388000000000000E-02 , + 13.7 , -3.945000000000000E-02 , + 13.71 , -2.420000000000000E-02 , + 13.72 , -3.630000000000000E-02 , + 13.73 , -3.928000000000000E-02 , + 13.74 , -2.207000000000000E-02 , + 13.75 , -5.590000000000000E-03 , + 13.76 , -9.450000000000000E-03 , + 13.77 , -2.752000000000000E-02 , + 13.78 , -4.478000000000000E-02 , + 13.79 , -6.457000000000000E-02 , + 13.8 , -8.530000000000000E-02 , + 13.81 , -8.704000000000001E-02 , + 13.82 , -5.918000000000000E-02 , + 13.83 , -3.830000000000000E-03 , + 13.84 , 7.192000000000000E-02 , + 13.85 , 0.14312 , + 13.86 , 0.17488 , + 13.87 , 0.16315 , + 13.88 , 0.14274 , + 13.89 , 0.14017 , + 13.9 , 0.14556 , + 13.91 , 0.13989 , + 13.92 , 0.12104 , + 13.93 , 9.578000000000000E-02 , + 13.94 , 7.056999999999999E-02 , + 13.95 , 5.257000000000000E-02 , + 13.96 , 4.283000000000000E-02 , + 13.97 , 3.754000000000000E-02 , + 13.98 , 3.580000000000000E-02 , + 13.99 , 3.422000000000000E-02 , + 14.0 , 2.593000000000000E-02 , + 14.01 , 4.220000000000000E-03 , + 14.02 , -1.590000000000000E-02 , + 14.03 , -2.929000000000000E-02 , + 14.04 , 4.251000000000000E-02 , + 14.05 , 5.369000000000000E-02 , + 14.06 , 6.154000000000000E-02 , + 14.07 , 6.560000000000001E-02 , + 14.08 , 6.591000000000000E-02 , + 14.09 , 6.272000000000000E-02 , + 14.1 , 5.704000000000000E-02 , + 14.11 , 5.054000000000000E-02 , + 14.12 , 4.304000000000000E-02 , + 14.13 , 3.569000000000000E-02 , + 14.14 , 2.953000000000000E-02 , + 14.15 , 2.591000000000000E-02 , + 14.16 , 2.479000000000000E-02 , + 14.17 , 2.511000000000000E-02 , + 14.18 , 2.581000000000000E-02 , + 14.19 , 2.493000000000000E-02 , + 14.2 , 2.314000000000000E-02 , + 14.21 , 2.027000000000000E-02 , + 14.22 , 1.935000000000000E-02 , + 14.23 , 2.023000000000000E-02 , + 14.24 , 2.506000000000000E-02 , + 14.25 , 3.099000000000000E-02 , + 14.26 , 3.760000000000000E-02 , + 14.27 , 4.262000000000000E-02 , + 14.28 , 4.532000000000000E-02 , + 14.29 , 4.802000000000000E-02 , + 14.3 , 5.005000000000000E-02 , + 14.31 , 5.302000000000000E-02 , + 14.32 , 5.416000000000000E-02 , + 14.33 , 5.517000000000000E-02 , + 14.34 , 5.543000000000000E-02 , + 14.35 , 5.403000000000000E-02 , + 14.36 , 5.095000000000000E-02 , + 14.37 , 4.660000000000000E-02 , + 14.38 , 4.407000000000000E-02 , + 14.39 , 4.359000000000000E-02 , + 14.4 , 4.649000000000000E-02 , + 14.41 , 4.927000000000000E-02 , + 14.42 , 5.116000000000000E-02 , + 14.43 , 5.246000000000000E-02 , + 14.44 , 5.290000000000000E-02 , + 14.45 , 5.342000000000000E-02 , + 14.46 , 5.301000000000000E-02 , + 14.47 , 5.389000000000000E-02 , + 14.48 , 5.518000000000000E-02 , + 14.49 , 5.594000000000000E-02 , + 14.5 , 5.543000000000000E-02 , + 14.51 , 5.542000000000000E-02 , + 14.52 , 5.677000000000000E-02 , + 14.53 , 5.746000000000000E-02 , + 14.54 , 5.802000000000000E-02 , + 14.55 , 5.847000000000000E-02 , + 14.56 , 5.842000000000000E-02 , + 14.57 , 5.750000000000000E-02 , + 14.58 , 5.606000000000000E-02 , + 14.59 , 5.592000000000000E-02 , + 14.6 , 5.517000000000000E-02 , + 14.61 , 5.439000000000000E-02 , + 14.62 , 5.392000000000000E-02 , + 14.63 , 5.395000000000000E-02 , + 14.64 , 5.260000000000000E-02 , + 14.65 , 5.031000000000000E-02 , + 14.66 , 4.883000000000000E-02 , + 14.67 , 4.944000000000000E-02 , + 14.68 , 5.215000000000000E-02 , + 14.69 , 5.627000000000000E-02 , + 14.7 , 6.244000000000000E-02 , + 14.71 , 6.783000000000000E-02 , + 14.72 , 7.159000000000000E-02 , + 14.73 , 7.149999999999999E-02 , + 14.74 , 6.673000000000000E-02 , + 14.75 , 5.755000000000000E-02 , + 14.76 , 4.539000000000000E-02 , + 14.77 , 3.504000000000000E-02 , + 14.78 , 2.721000000000000E-02 , + 14.79 , 2.308000000000000E-02 , + 14.8 , 2.125000000000000E-02 , + 14.81 , 2.022000000000000E-02 , + 14.82 , 1.831000000000000E-02 , + 14.83 , 1.547000000000000E-02 , + 14.84 , 1.321000000000000E-02 , + 14.85 , 1.112000000000000E-02 , + 14.86 , 1.025000000000000E-02 , + 14.87 , 9.549999999999999E-03 , + 14.88 , 1.040000000000000E-02 , + 14.89 , 1.059000000000000E-02 , + 14.9 , 1.108000000000000E-02 , + 14.91 , 1.195000000000000E-02 , + 14.92 , 1.452000000000000E-02 , + 14.93 , 1.809000000000000E-02 , + 14.94 , 2.029000000000000E-02 , + 14.95 , 2.323000000000000E-02 , + 14.96 , 2.515000000000000E-02 , + 14.97 , 2.836000000000000E-02 , + 14.98 , 3.278000000000000E-02 , + 14.99 , 3.934000000000000E-02 , + 15.00 , 0.0 , + ), + INTERPOL='LIN', + PROL_DROITE='CONSTANT', + PROL_GAUCHE='EXCLU',); + + + + diff --git a/Tests/testcomm7/forma12c.comm b/Tests/testcomm7/forma12c.comm new file mode 100755 index 00000000..2027774f --- /dev/null +++ b/Tests/testcomm7/forma12c.comm @@ -0,0 +1,773 @@ +# MODIF DATE 12/05/2005 AUTEUR DURAND C.DURAND +# TITRE TP ANALYSE SISMIQUE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 +#----------------------------------------------------------------------- +# +# ANALYSE RIS12 TR4 REGLEMENTAIRE +# SCENARIO 1 +# GL1(X,Y) + GL2(Z) +# +#----------------------------------------------------------------------- + +DEBUT(CODE=_F(NOM ='FORMA12C',NIV_PUB_WEB='INTERNET')) + +MAILLAGE=LIRE_MAILLAGE(INFO=2) + +MODELE=AFFE_MODELE( + MAILLAGE=MAILLAGE, + AFFE=( + _F(GROUP_MA='GPOU_D_T', + PHENOMENE='MECANIQUE', + MODELISATION='POU_D_T',), + _F(GROUP_MA='GPOU_C_T', + PHENOMENE='MECANIQUE', + MODELISATION='POU_C_T',), + _F(GROUP_MA='GDIS_TR', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_TR',), + ), + ) + +IMPR_RESU(FORMAT='CASTEM',UNITE=37, + MODELE=MODELE, + RESU=_F( + MAILLAGE=MAILLAGE)) + + + +#----------------------------------------------------------------------- +# CARACTERISTIQUES DES ELEMENTS +#----------------------------------------------------------------------- + + +CARA=AFFE_CARA_ELEM( + MODELE=MODELE, + POUTRE=( + _F(GROUP_MA='GMEL0301', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.00711),), + _F(GROUP_MA='GMEL0501', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL0601', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL0701', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1001', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1101', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1201', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1501', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1701', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1801', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1901', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL2001', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL2101', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL2201', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL2401', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.00711),),), + DISCRET=(_F(MAILLE='M0801I02', + CARA='M_TR_D_N', + VALE=(36.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0),), + _F(MAILLE='M1301I02', + CARA='M_TR_D_N', + VALE=(36.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0),),), + DEFI_ARC=(_F(GROUP_MA='GMEL0601', + CENTRE=(466.39260860000002,107.5500031,0.27747499939999998), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,), + _F(GROUP_MA='GMEL1101', + CENTRE=(466.16400149999998,107.3214035,3.7724525930000001), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,), + _F(GROUP_MA='GMEL1701', + CENTRE=(466.16400149999998,106.4785995,4.2335472110000003), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,), + _F(GROUP_MA='GMEL1901', + CENTRE=(466.16400149999998,106.4785995,8.7655010220000005), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,), + _F(GROUP_MA='GMEL2101', + CENTRE=(466.16400149999998,107.4713974,9.2274990080000006), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,),),) + +#----------------------------------------------------------------------- +# DEFINITION DES MATERIAUX +#----------------------------------------------------------------------- + +MATP01=DEFI_MATERIAU(ELAS=_F(E=1.97E11, + NU=0.3, + RHO=1.3108749019999999E4, + ALPHA=1.639999937E-05,),) +MATP03=DEFI_MATERIAU(ELAS=_F(E=1.97E11, + NU=0.3, + RHO=1.956015625E4, + ALPHA=1.639999937E-05,),) + +#----------------------------------------------------------------------- +# DEFINITION DES SUPPORTS +#----------------------------------------------------------------------- + +SUPPORT=AFFE_CHAR_MECA( + MODELE=MODELE, + DDL_IMPO=( +# PF1 ET PF2 + _F( NOEUD = ('N02__I00', 'N01__I00',), + DX = 0., DY = 0., DZ = 0., DRX = 0., DRY = 0., DRZ = 0.), +# GL1 + _F( NOEUD = 'N0701I00', + DX = 0., DY = 0.), +# GL2 + _F( NOEUD = 'N1201I00', + DZ = 0.), + ), + ) + +#----------------------------------------------------------------------- +# DEFINITION DES CHAMPS DE MATERIAUX +#----------------------------------------------------------------------- + +CHMATP=AFFE_MATERIAU(MAILLAGE=MAILLAGE, + AFFE=(_F(GROUP_MA='GMAT01', + MATER=MATP01, + TEMP_REF=20.0,), + _F(GROUP_MA='GMAT03', + MATER=MATP03, + TEMP_REF=20.0,),),) + +#----------------------------------------------------------------------- +# ASSEMBLAGE MATRICE MASSE ET RIGIDITE +#----------------------------------------------------------------------- + +MACRO_MATR_ASSE(MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + CHARGE=SUPPORT, + NUME_DDL=CO('NUMDDL'), + MATR_ASSE=(_F(MATRICE=CO("MATRRIGI"), + OPTION='RIGI_MECA',), + _F(MATRICE=CO("MATRMASS"), + OPTION='MASS_MECA',),),); + + +#----------------------------------------------------------------------- +# ASSEMBLAGE DU SECOND MEMBRE +#----------------------------------------------------------------------- + +INCLUDE(UNITE=22) + +CHSEIX=CALC_CHAR_SEISME( MATR_MASS=MATRMASS, + DIRECTION=(1., 0., 0.,), MONO_APPUI='OUI' + ) +CHSEIY=CALC_CHAR_SEISME( MATR_MASS=MATRMASS, + DIRECTION=(0., 1., 0.,), MONO_APPUI='OUI' + ) +CHSEIZ=CALC_CHAR_SEISME( MATR_MASS=MATRMASS, + DIRECTION=(0., 0., 1.,), MONO_APPUI='OUI' + ) + +#----------------------------------------------------------------------- +# CALCUL DES MODES +#----------------------------------------------------------------------- +MASSINER=POST_ELEM( + MODELE=MODELE, + CHARGE=SUPPORT, + CARA_ELEM=CARA, + CHAM_MATER=CHMATP, + MASS_INER=_F( TOUT = 'OUI',) + ) +MODES=MACRO_MODE_MECA( + MATR_A=MATRRIGI, + MATR_B=MATRMASS, + CALC_FREQ=_F( + FREQ_MIN = 0.0, + FREQ_MAX = 33.0, + NB_BLOC_FREQ = 1), + VERI_MODE=_F( STOP_ERREUR = 'NON'), + NORM_MODE=_F( + NORME = 'MASS_GENE', + MASS_INER =MASSINER), + IMPRESSION=_F( TOUT_PARA = 'OUI') + ) + +# TEST_RESU UNIQUEMENT POUR FAIRE CAS TEST +TEST_RESU(RESU=(_F(RESULTAT=MODES, + NUME_ORDRE=1, + PARA='FREQ', + VALE= 4.5135794612152, + PRECISION=1e-05, + REFERENCE='NON_REGRESSION', + VERSION='7.3.19',))) + +MODES=CALC_ELEM( + reuse=MODES, + MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + OPTION=( + 'EFGE_ELNO_DEPL', + ), + RESULTAT=MODES,) + +########################################################### +#---- REPONSE TRANSITOIRE PAR SUPERPOSITION MODALE ------ +#---- MONO APPUI GRANDEURS RELATIVES ------ +########################################################### + +# DEFINITION DES INSTANTS DE RECUPERATION + +L_RECU=DEFI_LIST_REEL( DEBUT=0., + INTERVALLE=_F( + JUSQU_A = 20.47, + PAS = 0.01) + ) + +#---------------------------------------------------- +#------------- PROJECTION SUR LA BASE MODALE -------- +#---------------------------------------------------- +MACRO_PROJ_BASE( + BASE=MODES, + MATR_ASSE_GENE=( + _F( + MATRICE=CO("MASSEGEN"), + MATR_ASSE=MATRMASS, + ), + _F( + MATRICE=CO("RIGIDGEN"), + MATR_ASSE=MATRRIGI, + ), + ), + VECT_ASSE_GENE=( + _F( + VECTEUR=CO("EFGENX"), + VECT_ASSE=CHSEIX, + ), + _F( + VECTEUR=CO("EFGENY"), + VECT_ASSE=CHSEIY, + ), + _F( + VECTEUR=CO("EFGENZ"), + VECT_ASSE=CHSEIZ, + ), + ), + ) + +#------------------------------------------------------------------ +#-------------- RESOLUTION DU PB GENERALISE ----------------------- +#-------------- SANS CORRECTION STATIQUE -------------------------- +#------------------------------------------------------------------ +GSCR=DYNA_TRAN_MODAL( + MASS_GENE=MASSEGEN, + RIGI_GENE=RIGIDGEN, + AMOR_REDUIT=0.02, + EXCIT=( + _F( + VECT_GENE=EFGENX, + FONC_MULT=ACCELH1, + ), + _F( + VECT_GENE=EFGENY, + FONC_MULT=ACCELH1, + ), + _F( + VECT_GENE=EFGENZ, + FONC_MULT=ACCELV1, + ), + ), + INCREMENT=_F( + INST_INIT = 0., + INST_FIN =20.47, + PAS = 0.001 + ), + ) + +#-------------------------------------------------------------- +#---- RESTITUTION GRANDEUR PHYSIQUE DANS LE REPERE RELATIF +#--- SANS CORRECTION STATIQUE +#-------------------------------------------------------------- +# RESTITUTION GLOBALE DU CHAMP DE DEPLACEMENT RELATIF A CHAQUE INSTANT +# DE LA LISTE L_RECU +RGSCR=REST_BASE_PHYS( + RESU_GENE=GSCR, + INTERPOL='LIN', + LIST_INST=L_RECU, + #TOUT_INST='OUI', + TOUT_CHAM='OUI', + ) +DPSCR=CREA_CHAMP( + TYPE_CHAM='NOEU_DEPL_R', + OPERATION='EXTR', + RESULTAT=RGSCR, + NOM_CHAM='DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) +TDPSCR=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'DEPL_MAX_R', + GROUP_NO='GNSTR01', + CHAM_GD=DPSCR, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + + +# RESTITUTION GLOBALE DU CHAMP EFGE_ELNO_DEPL A CHAQUE INSTANT +# DE LA LISTE L_RECU +RGSCR=CALC_ELEM( + reuse=RGSCR, + MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + OPTION=( + 'EFGE_ELNO_DEPL', + ), + RESULTAT=RGSCR,) +EFSCR=CREA_CHAMP( + TYPE_CHAM='ELNO_SIEF_R', + OPERATION='EXTR', + RESULTAT=RGSCR, + NOM_CHAM='EFGE_ELNO_DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) +TEFSCR=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'EFGE_MAX_R', + GROUP_NO='GNSTR01', + CHAM_GD=EFSCR, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) +IMPR_TABLE( + TABLE=TEFSCR, + FORMAT='TABLEAU', + ) + +########################################################### +#---- REPONSE TRANSITOIRE PAR SUPERPOSITION MODALE ------ +#---- MULTI APPUIS GRANDEURS ABSOLUES ------ +########################################################### + +# DEFINITION EXCITATION MULTIPLE + +MSTA=MODE_STATIQUE( + MATR_RIGI=MATRRIGI, + MATR_MASS=MATRMASS, + MODE_STAT=_F(TOUT='OUI',AVEC_CMP=('DX','DY','DZ'),),) + + +CHSEIXM=CALC_CHAR_SEISME( + MATR_MASS=MATRMASS, + DIRECTION=(1., 0., 0.,), + MODE_STAT=MSTA, + NOEUD=('N02__I00','N01__I00','N0701I00',), + ) + +CHSEIYM=CALC_CHAR_SEISME( + MATR_MASS=MATRMASS, + DIRECTION=(0., 1., 0.,), + MODE_STAT=MSTA, + NOEUD=('N02__I00','N01__I00','N0701I00',), + ) + +CHSEIZM=CALC_CHAR_SEISME( + MATR_MASS=MATRMASS, + DIRECTION=(0., 0., 1.,), + MODE_STAT=MSTA, + NOEUD=('N02__I00','N01__I00','N1201I00',), + ) + +MACRO_PROJ_BASE( + BASE=MODES, + MATR_ASSE_GENE=( + _F( + MATRICE=CO("MASGEN2"), + MATR_ASSE=MATRMASS, + ), + _F( + MATRICE=CO("RIGGEN2"), + MATR_ASSE=MATRRIGI, + ), + ), + VECT_ASSE_GENE=( + _F( + VECTEUR=CO("EFX2"), + VECT_ASSE=CHSEIXM, + ), + _F( + VECTEUR=CO("EFY2"), + VECT_ASSE=CHSEIYM, + ), + _F( + VECTEUR=CO("EFZ2"), + VECT_ASSE=CHSEIZM, + ), + ), + ) + + +VITESH1=CALC_FONCTION( + INTEGRE=_F(FONCTION=ACCELH1,METHODE='TRAPEZE',), + PROL_DROITE='CONSTANT' ) +DEPLAH1=CALC_FONCTION( + INTEGRE=_F(FONCTION=VITESH1,METHODE='TRAPEZE',), + PROL_DROITE='CONSTANT' ) +VITESV1=CALC_FONCTION( + INTEGRE=_F(FONCTION=ACCELV1,METHODE='TRAPEZE',), + PROL_DROITE='CONSTANT' ) +DEPLAV1=CALC_FONCTION( + INTEGRE=_F(FONCTION=VITESV1,METHODE='TRAPEZE',), + PROL_DROITE='CONSTANT' ) + +GSCA=DYNA_TRAN_MODAL( + MASS_GENE=MASGEN2, + RIGI_GENE=RIGGEN2, + AMOR_REDUIT=0.02, + MODE_STAT=MSTA, + EXCIT=( + _F( + VECT_GENE=EFX2, + ACCE=ACCELH1, + VITE=VITESH1, + DEPL=DEPLAH1, + MULT_APPUI='OUI', + DIRECTION=(1.,0.,0.,), + NOEUD=('N02__I00','N01__I00','N0701I00',), + ), + _F( + VECT_GENE=EFY2, + ACCE=ACCELH1, + VITE=VITESH1, + DEPL=DEPLAH1, + MULT_APPUI='OUI', + DIRECTION=(0.,1.,0.,), + NOEUD=('N02__I00','N01__I00','N0701I00',), + ), + _F( + VECT_GENE=EFZ2, + ACCE=ACCELV1, + VITE=VITESV1, + DEPL=DEPLAV1, + MULT_APPUI='OUI', + DIRECTION=(0.,0.,1.,), + NOEUD=('N02__I00','N01__I00','N1201I00',), + ), + ), + INCREMENT=_F( + INST_INIT = 0., + INST_FIN =20.47, + PAS = 0.001 + ), + ) + + +# RESTITUTION GRANDEURS ABSOLUES +#------------------------------- + +RGSCA=REST_BASE_PHYS( + RESU_GENE=GSCA, + INTERPOL='LIN', + LIST_INST=L_RECU, + TOUT_CHAM='OUI', + MULT_APPUI='OUI', + ) + +# DEPLACEMENTS + +DPSCA=CREA_CHAMP( + TYPE_CHAM='NOEU_DEPL_R', + OPERATION='EXTR', + RESULTAT=RGSCA, + NOM_CHAM='DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) + +TDPSCA=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'DEPL_MAX_A', + GROUP_NO='GNSTR01', + CHAM_GD=DPSCA, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=TDPSCA, + FORMAT='TABLEAU', + ) + +# EFFORTS + +RGSCA=CALC_ELEM( + reuse=RGSCA, + MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + OPTION=( + 'EFGE_ELNO_DEPL', + ), + RESULTAT=RGSCA,) + +EFSCA=CREA_CHAMP( + TYPE_CHAM='ELNO_SIEF_R', + OPERATION='EXTR', + RESULTAT=RGSCA, + NOM_CHAM='EFGE_ELNO_DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) + +TEFSCA=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'EFGE_MAX_A', + GROUP_NO='GNSTR01', + CHAM_GD=EFSCA, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) +IMPR_TABLE( + TABLE=TEFSCA, + FORMAT='TABLEAU', + ) + + +# RESTITUTION GRANDEURS RELATIVES +#------------------------------- + +# DEPLACEMENTS + +RGSCR2=REST_BASE_PHYS( + RESU_GENE=GSCA, + INTERPOL='LIN', + LIST_INST=L_RECU, + TOUT_CHAM='OUI', + ) + +DPSCR2=CREA_CHAMP( + TYPE_CHAM='NOEU_DEPL_R', + OPERATION='EXTR', + RESULTAT=RGSCR2, + NOM_CHAM='DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) + +TDPSCR2=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'DEPL_MAX_R2', + GROUP_NO='GNSTR01', + CHAM_GD=DPSCR2, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=TDPSCR2, + FORMAT='TABLEAU', + ) + +# EFFORTS + +RGSCR2=CALC_ELEM( + reuse=RGSCR2, + MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + OPTION=( + 'EFGE_ELNO_DEPL', + ), + RESULTAT=RGSCR2,) + +EFSCR2=CREA_CHAMP( + TYPE_CHAM='ELNO_SIEF_R', + OPERATION='EXTR', + RESULTAT=RGSCR2, + NOM_CHAM='EFGE_ELNO_DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) + +TEFSCR2=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'EFGE_MAX_R2', + GROUP_NO='GNSTR01', + CHAM_GD=EFSCR2, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=TEFSCR2, + FORMAT='TABLEAU', + ) + +########################################################### +#------REPONSE SPECTRALE PAR SUPERPOSITION MODALE--------- +########################################################### + +# CALCUL DU SPECTRE DE REPONSE OSCILLATEUR EN PSEUDO ACCELERATION ABSOLUE +# NAPPE SRO FONCTION DE AMORTISSEMENT +#------------------------------------------------------------------------ +SROXY=CALC_FONCTION( + SPEC_OSCI=_F( + FONCTION=ACCELH1, + AMOR_REDUIT=(0.02,0.05,0.10), + NORME=9.81, + ), + ) +SROZ=CALC_FONCTION( + SPEC_OSCI=_F( + FONCTION=ACCELV1, + AMOR_REDUIT=(0.02,0.05,0.10), + NORME=9.81, + ), + ) + + +#----------------------------------------------- +# REPONSE SPECTRALE SANS CORRECTION STATIQUE +#----------------------------------------------- +SPEC=COMB_SISM_MODAL( + MODE_MECA=MODES, + AMOR_REDUIT=0.02, + MASS_INER=MASSINER, + EXCIT=_F( + MONO_APPUI='OUI', + TRI_SPEC='OUI', + SPEC_OSCI=(SROXY,SROXY,SROZ), + ECHELLE=(9.81,9.81,9.81),), + COMB_MODE=_F(TYPE='CQC',), + COMB_DIRECTION=_F( TYPE = 'QUAD',), + OPTION=( + 'DEPL', + 'EFGE_ELNO_DEPL', + ), + ) + +EFSPEC=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'EFGE_SPEC', + GROUP_NO='GNSTR01', + RESULTAT=SPEC, + NOM_CHAM='EFGE_ELNO_DEPL', + NUME_ORDRE=4, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=EFSPEC, + FORMAT='TABLEAU', + ) + +DPSPEC=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'DEPL_SPEC', + GROUP_NO='GNSTR01', + RESULTAT=SPEC, + NOM_CHAM='DEPL', + NUME_ORDRE=4, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=DPSPEC, + FORMAT='TABLEAU', + ) + + + +FIN() + + + + + + diff --git a/Tests/testcomm7/g.comm b/Tests/testcomm7/g.comm new file mode 100644 index 00000000..8756209b --- /dev/null +++ b/Tests/testcomm7/g.comm @@ -0,0 +1,11 @@ +DEBUT() +sensible=[2.1E11, 0.3, 1.E-6, 1.E-6, ] + +# parse: -affectation +n=len(sensible) +PS=[None]*n + +#for i in range(n): +# PS[i]=DEFI_PARA_SENSI(VALE=sensible[i]) + +FIN() diff --git a/Tests/testcomm7/hplp101b.comm b/Tests/testcomm7/hplp101b.comm new file mode 100755 index 00000000..f6f66257 --- /dev/null +++ b/Tests/testcomm7/hplp101b.comm @@ -0,0 +1,115 @@ +# MODIF DATE 09/05/2006 AUTEUR REZETTE C.REZETTE +# TITRE FISSURE AU CENTRE D'UNE PLAQUE MINCE RECTANGULAIRE FAISANT +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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. +# ====================================================================== +# OBSTACLE A UN FLUC DE CHALEUR UNIFORME EN MILIEU ISOTROPE +# +# TESTE LES DERIVEES DE G DANS LE CAS D'UN CHARGEMENT EN FORCE DE VOLUME + +DEBUT( CODE=_F( NOM = 'HPLP101B',NIV_PUB_WEB='INTERNET')) + +YOUNG = DEFI_PARA_SENSI(VALE=1.) +FORC = DEFI_PARA_SENSI(VALE=1.) + +MA=LIRE_MAILLAGE( ) + +MA=DEFI_GROUP( reuse=MA, MAILLAGE=MA, + CREA_GROUP_NO=_F( + GROUP_MA = ( 'LP9P10', 'LP9P10B', + 'LP8P9', 'LP8P9B', + )) + ) + +MO=AFFE_MODELE( MAILLAGE=MA, + AFFE=_F( TOUT = 'OUI', + PHENOMENE = 'MECANIQUE', + MODELISATION = 'C_PLAN') + ) +ZERO = DEFI_CONSTANTE(VALE=0.) +NU = DEFI_CONSTANTE(VALE=0.3) +ALPHA = DEFI_CONSTANTE(VALE=0.) + +MAT=DEFI_MATERIAU(ELAS_FO=_F( E = YOUNG, NU = NU, + TEMP_DEF_ALPHA =20., + ALPHA = ALPHA, RHO=7800.,)) + +CHMAT=AFFE_MATERIAU( MAILLAGE=MA, + AFFE=_F( TOUT = 'OUI', + MATER = MAT) + ) + +CH=AFFE_CHAR_MECA_F( MODELE=MO, + FORCE_INTERNE=_F(TOUT='OUI',FY=FORC,), + DDL_IMPO=( + _F( GROUP_NO = 'LP8P9', + DX = ZERO), + _F( GROUP_NO = 'LP8P9B', + DX = ZERO), + _F( GROUP_NO = 'P11', + DY = ZERO)) + ) + +DEP=MECA_STATIQUE( MODELE=MO, CHAM_MATER=CHMAT, + SENSIBILITE = (FORC), + EXCIT=_F( CHARGE = CH), + ) + +DEP=CALC_ELEM(reuse=DEP,RESULTAT=DEP, + SENSIBILITE = (FORC), + OPTION=('EPSI_ELGA_DEPL','SIEF_ELGA_DEPL',),) + +FOND=DEFI_FOND_FISS( MAILLAGE=MA, + FOND_FISS=_F( GROUP_NO = ('P0',)), + NORMALE=(0., 1., 0.,) + ) + +THETA0=CALC_THETA( MODELE=MO, + THETA_2D=_F( GROUP_NO = ('P0',), + MODULE = 1., + R_INF = 3.75E-5, + R_SUP = 7.50E-5), + DIRECTION=(1., 0., 0.,) + ) + +FIN() + +THETA01=CALC_THETA( MODELE=MO, + THETA_2D=_F( GROUP_NO = ('P0',), + MODULE = 1., + R_INF = 7.50E-5, + R_SUP = 1.125E-4), + DIRECTION=(1., 0., 0.,) + ) + +# +# DERIVEE PAR RAPPORT A E +# + +DEP2=MECA_STATIQUE( MODELE=MO, CHAM_MATER=CHMAT, + SENSIBILITE = (YOUNG), + EXCIT=_F( CHARGE = CH), + ) + +DEP2=CALC_ELEM(reuse=DEP2,RESULTAT=DEP2, + SENSIBILITE = (YOUNG), + OPTION=('EPSI_ELGA_DEPL','SIEF_ELGA_DEPL',),) + + + +FIN() + diff --git a/Tests/testcomm7/incmat.comm b/Tests/testcomm7/incmat.comm new file mode 100644 index 00000000..705a1cbd --- /dev/null +++ b/Tests/testcomm7/incmat.comm @@ -0,0 +1,7 @@ +DEBUT() +MA=LIRE_MAILLAGE() +INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF', + VARIANTE='A', TYPE_VALE='NOMI', + NOM_MATER='MAT3', INFO=1 ) + +FIN() diff --git a/Tests/testcomm7/param1.comm b/Tests/testcomm7/param1.comm new file mode 100644 index 00000000..79172614 --- /dev/null +++ b/Tests/testcomm7/param1.comm @@ -0,0 +1,36 @@ + +DEBUT() +TEMP_MOY=50. +coef0 = 1.E-3 + +A0=DEFI_FONCTION( NOM_PARA='TEMP', + PROL_DROITE='EXCLU', + PROL_GAUCHE='EXCLU', + VALE=( + 20. ,14.7 *coef0, + 50. ,15.2 *coef0, + 100. ,15.8 *coef0, + 150. ,16.7 *coef0, + 200. ,17.2 *coef0, + 250. ,18. *coef0, + 300. ,18.6 *coef0, + 350. ,19.3 *coef0, + 400. ,20. *coef0, + 450. ,20.5 *coef0, + 500. ,21.1 *coef0, + 550. ,21.7 *coef0, + 600. ,22.2 *coef0, + 650. ,22.7 *coef0, + 700. ,23.2 *coef0, + 750. ,23.7 *coef0, + 800. ,24.1 *coef0, + 950. ,26.67 *coef0, + 1150. ,29.24 *coef0, + 1370. ,32.06 *coef0, + )) + +DEFI_MATERIAU( ELAS=_F( RHO = 1.E08, + NU = 0.3, + E = A0(TEMP_MOY))) + +FIN() diff --git a/Tests/testcomm7/param2.com0 b/Tests/testcomm7/param2.com0 new file mode 100644 index 00000000..2d32a387 --- /dev/null +++ b/Tests/testcomm7/param2.com0 @@ -0,0 +1,4 @@ +POURSUITE(); +l1=DEFI_LIST_ENTI(DEBUT=mon_param,); +FIN(); + diff --git a/Tests/testcomm7/param2.comm b/Tests/testcomm7/param2.comm new file mode 100644 index 00000000..19c8eeb2 --- /dev/null +++ b/Tests/testcomm7/param2.comm @@ -0,0 +1,4 @@ +DEBUT(); +mon_param = 2; +m=LIRE_MAILLAGE() +FIN(); diff --git a/Tests/testcomm7/param3.11 b/Tests/testcomm7/param3.11 new file mode 100644 index 00000000..236ca5ca --- /dev/null +++ b/Tests/testcomm7/param3.11 @@ -0,0 +1,2 @@ +x=45 +y=77 diff --git a/Tests/testcomm7/param3.12 b/Tests/testcomm7/param3.12 new file mode 100644 index 00000000..2c2a2157 --- /dev/null +++ b/Tests/testcomm7/param3.12 @@ -0,0 +1 @@ +d=5;f=7 diff --git a/Tests/testcomm7/param3.com0 b/Tests/testcomm7/param3.com0 new file mode 100644 index 00000000..d5a0bbf5 --- /dev/null +++ b/Tests/testcomm7/param3.com0 @@ -0,0 +1,11 @@ +POURSUITE(); +l1=DEFI_LIST_ENTI(DEBUT=2*mon_param+1,); +l2=DEFI_LIST_ENTI(DEBUT=a[1]); +INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF', + VARIANTE='A', TYPE_VALE='NOMI', + NOM_MATER='MAT3', INFO=1 ) +INCLUDE(UNITE=11) +INCLUDE(UNITE=12) + +FIN(); + diff --git a/Tests/testcomm7/param3.comm b/Tests/testcomm7/param3.comm new file mode 100644 index 00000000..b7a38ea2 --- /dev/null +++ b/Tests/testcomm7/param3.comm @@ -0,0 +1,5 @@ +DEBUT(); +mon_param = 2; +m=LIRE_MAILLAGE() +a=[1,2,3,4];b=2 +FIN(); diff --git a/Tests/testcomm7/pars1.comm b/Tests/testcomm7/pars1.comm new file mode 100644 index 00000000..53e7f325 --- /dev/null +++ b/Tests/testcomm7/pars1.comm @@ -0,0 +1,61 @@ +DEBUT() +a=1 # comment +c=32.3 # comment + +aa='string # bizarre' +a="string # bizarre" + +b="string ( bizarre" + +d="""string multi +line +""" +e="""string multi # ssssssssssss +line +""" +P='''string # bizarre' #profondeur ' # autre +bbb''' + +#comment +#comment +#comment + +#commenta +##XXXX=CHARGE(RAYON=0.1E-2,VALE=(0.12E-1,0.54E-5,0.1),MCF=_F(VALE=0.3E-5), +## V="toto", + ## ) +#commentb + +##CH=CHARGE(RAYON=0.1E-2,VALE=(0.12E-1,0.54E-5,0.1),MCF=_F(VALE=0.3E-5), +## MCF2=(_F(VALE=0.3E-4,GROUP_MA='GMA0601'),_F(VALE=0.3E-2)), +## VALE_C=[0.12E-3,0.54E-1,0.1], + ## ) +MA=LIRE_MAILLAGE() +a=(10, +#commentc +12,13) + +#commentd +P=1 #profondeur +#commente +aaa=(10, +11, #commentc +12,13) +xx=EVAL("13.26") + +fmt_raison='-'*80+''' + + Exception erreur_Fatale interceptee + Raison : %s + +'''+'-'*80+'xxxxxxxxxxxxxxxx\n' + +# commen """ +# commen ''' +# commen ' +# commen " +BETA=3.41557E-08 + +a=8.3 ; #position + +FIN() diff --git a/Tests/testcomm7/parseur.comm b/Tests/testcomm7/parseur.comm new file mode 100644 index 00000000..92aaf898 --- /dev/null +++ b/Tests/testcomm7/parseur.comm @@ -0,0 +1,74 @@ +DEBUT() +P1 = 9.8; + +P2 = 8.8; + +P3 = 7; + +P5 = P3*P1; + +P6 = P1-3; + +P4 = [2,3,4]; + +a = 1. +b=3 +c= 3 * 5 +cc="b+3" +d= 4 + \ + 5 \ + -4 +e=LIRE_MAILLAGE() +##MA=LIRE_MAILLAGE() +x=(1,2) +y=[3, +#comme +4] +z="a" +zz='v' +u='''aaaa +bbbb''' +#ne marche pas avec le parseur actuel +#if 1: +# a=45 +#else: +# a=5.6 +d={"a":0} +e={"a":0, +#comme +"d":4} +#ne marche pas avec le parseur actuel +#a==1 +s="-"*80 +fmt_raison='-'*80+''' + + Exception erreur_Fatale interceptee + Raison : %s + +'''+'-'*80+'xxxxxxxxxxxxxxxx\n' + +# commen """ +# commen ''' +# commen ' +# commen " +BETA=3.41557E-08 + +C_0=105.7 + +C_EQ_I05=69.1 + +C_EQ_E05=69.1 + +C_EQ_I10=51.6 + +C_EQ_E10=69.1 + +FL_INT05 = FORMULE(NOM_PARA='TEMP',VALE=''' +(0.5*BETA / ((C_0 - C_EQ_I05 )**2) + * (TEMP - (2.*C_0 - C_EQ_I05 ))*(TEMP - C_EQ_I05 ))''') + +zz=8.9; +#ne marche pas avec le parseur actuel +#zz=8.9;aa=10 #position + +FIN() diff --git a/Tests/testcomm7/testcomm.py b/Tests/testcomm7/testcomm.py new file mode 100644 index 00000000..72909c8a --- /dev/null +++ b/Tests/testcomm7/testcomm.py @@ -0,0 +1,70 @@ +import os,glob,sys +import unittest +import difflib + +import prefs +from Editeur import appli + +def add_param(j,pos,nom,valeur): + co=j.addentite("PARAMETRE",pos) + co.set_nom(nom) + co.set_valeur(valeur) + return co + +def add_mcsimp(obj,nom,valeur): + mcs=obj.get_child(nom,restreint='oui') + if mcs is None: + pos=obj.get_index_child(nom) + mcs=obj.addentite(nom,pos) + mcs.set_valeur(mcs.eval_val(valeur)) + return mcs + +def cdiff(text1,text2): + return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1))) + +class TestCase(unittest.TestCase): + app=None + def setUp(self): + if self.app == None: + self.app=appli.STANDALONE(version='v7') + pass + + def tearDown(self): + CONTEXT.unset_current_step() + + i=0 + files= os.path.join(os.path.dirname(__file__),"*.comm") + for f in glob.glob(os.path.join(prefs.INSTALLDIR,files)): + for o in ('3','2','1','0','m'): + f=f[:-1]+o + if os.path.isfile(f):break + + i=i+1 + exec """def test%s(self,file="%s"): + "fichier:%s" + self.commtest(file) +""" % (i,f,f) + del i + + def commtest(self,file): + """ Test generique""" + #print file + name=os.path.splitext(os.path.basename(file))[0] + errfile=os.path.join(os.path.dirname(__file__),name+".err") + err="" + if os.path.isfile(errfile): + f=open(errfile) + err=f.read() + f.close() + j=self.app.openJDC(file=file) + assert j.cr.get_mess_exception() == "" + + if err == "": + assert j.isvalid(),j.report() + else: + txt=str(j.report()) + assert txt == err,cdiff(err,txt) + + CONTEXT.unset_current_step() + j.supprime() + assert sys.getrefcount(j) == 2,sys.getrefcount(j) diff --git a/Tests/testcomm7/titi.comm b/Tests/testcomm7/titi.comm new file mode 100644 index 00000000..a235be8a --- /dev/null +++ b/Tests/testcomm7/titi.comm @@ -0,0 +1,69 @@ +DEBUT() +YOUNG = DEFI_PARA_SENSI(VALE=1.) +FORC = DEFI_PARA_SENSI(VALE=1.) +MA=LIRE_MAILLAGE() +MA=DEFI_GROUP( reuse=MA, MAILLAGE=MA, + CREA_GROUP_NO=_F( + GROUP_MA = ( 'LP9P10', 'LP9P10B', + 'LP8P9', 'LP8P9B', + )) + ) + +MO=AFFE_MODELE( MAILLAGE=MA, + AFFE=_F( TOUT = 'OUI', + PHENOMENE = 'MECANIQUE', + MODELISATION = 'C_PLAN') + ) +ZERO = DEFI_CONSTANTE(VALE=0.) +NU = DEFI_CONSTANTE(VALE=0.3) +ALPHA = DEFI_CONSTANTE(VALE=0.) + +MAT=DEFI_MATERIAU(ELAS_FO=_F( E = YOUNG, NU = NU, + TEMP_DEF_ALPHA =20., + ALPHA = ALPHA, RHO=7800.,)) + +CHMAT=AFFE_MATERIAU( MAILLAGE=MA, + AFFE=_F( TOUT = 'OUI', + MATER = MAT) + ) + +CH=AFFE_CHAR_MECA_F( MODELE=MO, + FORCE_INTERNE=_F(TOUT='OUI',FY=FORC,), + DDL_IMPO=( + _F( GROUP_NO = 'LP8P9', + DX = ZERO), + _F( GROUP_NO = 'LP8P9B', + DX = ZERO), + _F( GROUP_NO = 'P11', + DY = ZERO)) + ) + +DEP=MECA_STATIQUE( MODELE=MO, CHAM_MATER=CHMAT, + SENSIBILITE = (FORC), + EXCIT=_F( CHARGE = CH), + ) + +DEP=CALC_ELEM(reuse=DEP,RESULTAT=DEP, + SENSIBILITE = (FORC), + OPTION=('EPSI_ELGA_DEPL','SIEF_ELGA_DEPL',),) + +FOND=DEFI_FOND_FISS( MAILLAGE=MA, + FOND_FISS=_F( GROUP_NO = ('P0',)), + NORMALE=(0., 1., 0.,) + ) + +THETA0=CALC_THETA( MODELE=MO, + THETA_2D=_F( GROUP_NO = ('P0',), + MODULE = 1., + R_INF = 3.75E-5, + R_SUP = 7.50E-5), + DIRECTION=(1., 0., 0.,) + ) + + +FIN() +MA1=LIRE_MAILLAGE() +MO1=AFFE_MODELE( MAILLAGE=MA1, AFFE=_F( TOUT = 'OUI', + PHENOMENE = 'MECANIQUE', MODELISATION = 'C_PLAN')) + +FIN() diff --git a/Tests/testcomm9/a.11 b/Tests/testcomm9/a.11 new file mode 100644 index 00000000..1723fcb9 --- /dev/null +++ b/Tests/testcomm9/a.11 @@ -0,0 +1 @@ +MM=LIRE_MAILLAGE() diff --git a/Tests/testcomm9/a.com0 b/Tests/testcomm9/a.com0 new file mode 100644 index 00000000..04d1cc20 --- /dev/null +++ b/Tests/testcomm9/a.com0 @@ -0,0 +1,3 @@ +POURSUITE() +MA=LIRE_MAILLAGE(INFO=inf) +FIN() diff --git a/Tests/testcomm9/a.comm b/Tests/testcomm9/a.comm new file mode 100644 index 00000000..665f63fe --- /dev/null +++ b/Tests/testcomm9/a.comm @@ -0,0 +1,5 @@ +DEBUT() +inf=1 +p2=inf+1 +p3=sin(p2) +FIN() diff --git a/Tests/testcomm9/aa.comm b/Tests/testcomm9/aa.comm new file mode 100644 index 00000000..124141b4 --- /dev/null +++ b/Tests/testcomm9/aa.comm @@ -0,0 +1,8 @@ +DEBUT() +inf1=1 +MA=LIRE_MAILLAGE(INFO=inf1) +INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF', + VARIANTE='A', TYPE_VALE='NOMI', + NOM_MATER='MAT3', INFO=1 ) + +FIN() diff --git a/Tests/testcomm9/b.comm b/Tests/testcomm9/b.comm new file mode 100644 index 00000000..478973df --- /dev/null +++ b/Tests/testcomm9/b.comm @@ -0,0 +1,9 @@ +DEBUT() +a=1 +fmt_raison='-'*80+""" + + Exception erreur_Fatale interceptee + Raison : %s + +"""+'-'*80+'\n' +FIN() diff --git a/Tests/testcomm9/c.comm b/Tests/testcomm9/c.comm new file mode 100644 index 00000000..a3ac4352 --- /dev/null +++ b/Tests/testcomm9/c.comm @@ -0,0 +1,44 @@ +from Numeric import cos +DEBUT() +RAYCRA=1. +EPCRA=0.1 +S_CR=3.1415*(RAYCRA**2-(RAYCRA-EPCRA)**2) +T_CR=3.1415 +NOMF="nomfichier" +n=2 + +MA=LIRE_MAILLAGE( ) + +MO=AFFE_MODELE( MAILLAGE=MA, + #test de validateur GEOM (typ=grma) avec grma derive de GEOM + AFFE=(_F(GROUP_MA = ('LI1'), + PHENOMENE = 'MECANIQUE', + MODELISATION = 'DIS_TR'), + ), + INFO=2,); + +carel=[0.]*78 + +CAREG=AFFE_CARA_ELEM(MODELE=MO, + DISCRET=_F(GROUP_MA=('LI1'), + CARA = 'K_TR_L', + VALE = carel, + REPERE='LOCAL' , ), + ORIENTATION=(_F(GROUP_MA=('LI1',), + CARA='VECT_Y', + VALE=(0.,0.,1.),),), + ); + +DEFI_FICHIER(UNITE=50, FICHIER='./REPE_OUT/zzzz206a_resu.mail') +#test de validateur LongStr avec parametre instance de PARAMETRE +DEFI_FICHIER(UNITE=50, FICHIER=NOMF) +#test de validateur LongStr avec parametre instance de Formula +u=DEFI_FICHIER( FICHIER=NOMF*2) +DEFI_FICHIER (ACTION='LIBERER',UNITE=50) +#test de validateur d'objet entier (typ='I'), instance de la classe entier +DEFI_FICHIER (ACTION='LIBERER',UNITE=u) + +# test de validateur qui accepte tout (typ=assd) +IMPR_CO(CONCEPT=_F(NOM=MA)) + +FIN() diff --git a/Tests/testcomm9/cabri02a.comm b/Tests/testcomm9/cabri02a.comm new file mode 100755 index 00000000..4c858c6f --- /dev/null +++ b/Tests/testcomm9/cabri02a.comm @@ -0,0 +1,78 @@ +# MODIF DATE 07/03/2005 AUTEUR CIBHHLV L.VIVAN +# RESPONSABLE MABBAS M.ABBAS +# +# TITRE TEST DE REFERENCE POUR LA MACRO DE CALCUL DE BRIDES CABRI +# 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. +# ====================================================================== + +DEBUT(CODE=_F( NOM = 'CABRI02A',NIV_PUB_WEB='INTRANET')); + +# DEFINITION DES DONNEES MATERIAUX + +# Temperature initiale, assemblage libre de contraintes +TEMP_INI=25.0; + +# Temperature moyenne du transitoire pour calcul de lambda et rhoCp +TEMP_MOY = 170.0; + +INCLUDE_MATERIAU(NOM_AFNOR='Z2CN1810', + TYPE_MODELE='REF', + VARIANTE='A', + TYPE_VALE='NOMI', + NOM_MATER='MA_BRI', + EXTRACTION=_F(COMPOR='THER', + TEMP_EVAL= TEMP_MOY,), + UNITE_LONGUEUR='MM'); + +INCLUDE_MATERIAU(NOM_AFNOR='Z12CN13', + TYPE_MODELE='REF', + VARIANTE='A', + TYPE_VALE='NOMI', + NOM_MATER='MA_ECR', + EXTRACTION=_F(COMPOR='THER', + TEMP_EVAL= TEMP_MOY,), + UNITE_LONGUEUR='MM',); + +INCLUDE_MATERIAU(NOM_AFNOR='Z12CN13', + TYPE_MODELE='REF', + VARIANTE='A', + TYPE_VALE='NOMI', + NOM_MATER='MA_RON', + EXTRACTION=_F(COMPOR='THER', + TEMP_EVAL= TEMP_MOY,), + UNITE_LONGUEUR='MM',); + +INCLUDE_MATERIAU(NOM_AFNOR='Z2CN1810', + TYPE_MODELE='REF', + VARIANTE='A', + TYPE_VALE='NOMI', + NOM_MATER='MA_GOU', + EXTRACTION=_F(COMPOR='THER', + TEMP_EVAL= TEMP_MOY,), + UNITE_LONGUEUR='MM',); + +INCLUDE_MATERIAU(NOM_AFNOR='Z6CND1712', + TYPE_MODELE='REF', + VARIANTE='A', + TYPE_VALE='NOMI', + NOM_MATER='MA_LIM', + EXTRACTION=_F(COMPOR='THER', + TEMP_EVAL= TEMP_MOY,), + UNITE_LONGUEUR='MM',); + +FIN(); diff --git a/Tests/testcomm9/d.comm b/Tests/testcomm9/d.comm new file mode 100644 index 00000000..06bd2405 --- /dev/null +++ b/Tests/testcomm9/d.comm @@ -0,0 +1,4 @@ +DEBUT() +a=1 +MA=LIRE_MAILLAGE() +FIN() diff --git a/Tests/testcomm9/e.comm b/Tests/testcomm9/e.comm new file mode 100644 index 00000000..15bf3261 --- /dev/null +++ b/Tests/testcomm9/e.comm @@ -0,0 +1,70 @@ +DEBUT() +MAYA=LIRE_MAILLAGE() + +MAYA=DEFI_GROUP( reuse=MAYA, MAILLAGE=MAYA, + CREA_GROUP_MA=_F( NOM = 'TOUT', TOUT = 'OUI')) + +BARRE1=AFFE_MODELE( MAILLAGE=MAYA, + AFFE=_F( GROUP_MA='SS1', + MODELISATION = 'POU_D_E', + PHENOMENE = 'MECANIQUE')) +# +MATERIO1=DEFI_MATERIAU( ELAS=_F( RHO = 1.E08, NU = 0.3, E = 1.E10)) + +MATERIO2=DEFI_MATERIAU( ELAS=_F( RHO = 0., NU = 0., E = 1.E15)) +# +CHMAT=AFFE_MATERIAU( MAILLAGE=MAYA,AFFE=( + #_F( TOUT = 'OUI', MATER = MATERIO1), + _F( GROUP_MA = 'SS1', MATER = MATERIO1), + _F( GROUP_MA = 'SS2', MATER = MATERIO1), + _F( GROUP_MA = 'SS3', MATER = MATERIO1), + _F( GROUP_MA = 'RIGIDE', MATER = MATERIO2), +)) # commentaire test + +CARA1=AFFE_CARA_ELEM( MODELE=BARRE1, + POUTRE=_F( + GROUP_MA = 'TOUT', + SECTION = 'CERCLE', + CARA = ('R', 'EP',), + VALE = (0.1, 0.01,))) + +GUIDAGE1=AFFE_CHAR_MECA( MODELE=BARRE1,DDL_IMPO=( + _F( GROUP_MA='SS1', + DX = 0., DZ = 0., DRX = 0., DRY = 0.), + _F( GROUP_NO = 'L1', DY = 0., DRZ = 0.), + )) + +K_ELEM1=CALC_MATR_ELEM( MODELE=BARRE1, + CARA_ELEM=CARA1, + CHAM_MATER=CHMAT, + OPTION='RIGI_MECA', + CHARGE=GUIDAGE1) + +NUM1=NUME_DDL( MATR_RIGI=K_ELEM1) + +# +K_ASSE1=ASSE_MATRICE( MATR_ELEM=K_ELEM1, + NUME_DDL=NUM1) + +MODESTA1=MODE_STATIQUE( MATR_RIGI=K_ASSE1, + MODE_STAT=_F( + GROUP_NO=('L12'), + AVEC_CMP = ('DY','DRZ'), + )) + +# parse: -affectation + +DS1=[None]*5 +DS2=[None]*5 +DS3=[None]*5 +DS4=[None]*5 +CHS1=[None]*5 +CHS2=[None]*5 + +# parse: +affectation + +#for k in range(1,5): +# DS1[k] = CREA_CHAMP( OPERATION='EXTR', TYPE_CHAM='NOEU_DEPL_R', +# RESULTAT= MODESTA1, NUME_ORDRE=k, NOM_CHAM = 'DEPL'); + +FIN() diff --git a/Tests/testcomm9/efica01a.11 b/Tests/testcomm9/efica01a.11 new file mode 100644 index 00000000..bec37b5b --- /dev/null +++ b/Tests/testcomm9/efica01a.11 @@ -0,0 +1,19 @@ +DEPL2 = FORMULE(NOM_PARA='INST',VALE='sin(OMEGAA*INST)/(OMEGAA**xx)') +DEPLACE2=CALC_FONC_INTERP( FONCTION=DEPL2, + LIST_PARA=L_INST, + NOM_PARA='INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + NOM_RESU='DEPL' ) + +MONO_X=CALC_CHAR_SEISME( MATR_MASS=MASSE, + DIRECTION=( 1., 0., 0.,), + MONO_APPUI='OUI' ) + + +MACRO_PROJ_BASE(BASE=MODE_MEC,MATR_ASSE_GENE=( + _F( MATRICE = CO("MASS_GEN"), MATR_ASSE = MASSE), + _F( MATRICE = CO("RIGI_GEN"), MATR_ASSE = RIGIDITE)), + VECT_ASSE_GENE=_F( VECTEUR = CO("VECT_X"), VECT_ASSE = MONO_X) + ) + diff --git a/Tests/testcomm9/efica01a.com0 b/Tests/testcomm9/efica01a.com0 new file mode 100755 index 00000000..25134e98 --- /dev/null +++ b/Tests/testcomm9/efica01a.com0 @@ -0,0 +1,49 @@ +POURSUITE(CODE=_F( NOM = 'EFICA01A')) + +INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF', + VARIANTE='A', TYPE_VALE='NOMI', + NOM_MATER='MAT3', INFO=1 ) + +CHMAT3=AFFE_MATERIAU( MAILLAGE=MAILLA3, + AFFE=_F( TOUT='OUI', MATER = MAT3, TEMP_REF = 20.)) + +riginor = 2.88E7 + +TRAN_GE2=DYNA_TRAN_MODAL( MASS_GENE=MGEN_BIC, RIGI_GENE=RGEN_BIC, + METHODE='EULER', + AMOR_REDUIT=( 0.07, 0.07, ), + MODE_STAT=MSTA_BIC,EXCIT=( + _F( VECT_GENE = VECT_X1, ACCE = ACCELER1, + MULT_APPUI = 'OUI', + DIRECTION = ( 1., 0., 0.,), NOEUD = 'NO1', + VITE = VITESSE1, DEPL = DEPLACE1), + _F( VECT_GENE = VECT_X2, ACCE = ACCELER2, + MULT_APPUI = 'OUI', + DIRECTION = ( 1., 0., 0.,), NOEUD = 'NO11', + VITE = VITESSE2, DEPL = DEPLACE2)), + CHOC=_F( GROUP_NO_1 = 'MASSES1', + GROUP_NO_2 = 'MASSES2', + OBSTACLE = GRILLE, + INTITULE = 'NO2/NO12', + NORM_OBST = (0., 0., 1.,), + DIST_1 = 0.4495, + DIST_2 = 0.4495, + RIGI_NOR = riginor, + AMOR_NOR = 0., + RIGI_TAN = 0., + COULOMB = 0.), + INCREMENT=_F( INST_INIT = 0., INST_FIN = 1., PAS = 0.00025), + ARCHIVAGE=_F( PAS_ARCH = 8) + ) + +LISTIMP=DEFI_LIST_REEL( DEBUT=0., + INTERVALLE=_F( JUSQU_A = 1., NOMBRE = 500)) + +RESUA1=REST_BASE_PHYS( RESU_GENE=TRAN_GE1, + LIST_INST=LISTIMP, + INTERPOL='LIN', + NOM_CHAM='DEPL', + MULT_APPUI='OUI' + ) + +FIN() diff --git a/Tests/testcomm9/efica01a.comm b/Tests/testcomm9/efica01a.comm new file mode 100755 index 00000000..20eea866 --- /dev/null +++ b/Tests/testcomm9/efica01a.comm @@ -0,0 +1,275 @@ +# MODIF DATE 20/09/2004 AUTEUR DURAND C.DURAND +# TITRE TEST DE NON REGRESSION DE L IHM EFICAS - DERIVE DE SDND102A +# 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. +# ====================================================================== +# Ce cas test est gere en configuration dans la base ASTER, il sert de +# modele pour prononcer la recette de l IHM d EFICAS : l objectif est de +# pouvoir recreer ce test a l identique dans EFICAS a partir d une page +# blanche. +# On a donc essaye d y placer toutes les commandes un peu particulieres +# du langage de commandes d ASTER +# +# Il s agit en fait du test SDND102A auquel on a ajoute : +# la definition d un parametre (VAL) +# l inclusion d un fichier (INCLUDE) +# une poursuite (POURSUITE) +# Il contient ainsi : +# des parametres, des formules, des macros, des mots cles facteurs repetes +# (y compris conditionnes par des regles : calc_fonction / COMB), +# des blocs (mode_iter_simult,calc_char_seisme), un defi_valeur, un parametre. +# +# +# Il faudra y associer quelques recommandations pour la recette : +# - verifier qu en ouvrant le .com0, il demande bien a browser le .comm puis, en cascade, le .11 +# - verifier qu on peut bien supprimer une commande, un mot cle simple et facteur +# - verifier les acces a la doc +# +# + + +DEBUT(CODE=_F(NOM='EFICA01A',NIV_PUB_WEB='INTERNET',VISU_EFICAS='NON'),) + +MAILLAGE=LIRE_MAILLAGE() + +MAILLAGE=DEFI_GROUP(reuse=MAILLAGE, + MAILLAGE=MAILLAGE, + CREA_GROUP_NO=(_F(NOEUD='NO2', + NOM='MASSES',), + _F(NOEUD='NO1', + NOM='ENCASTRE',),),) + +MAILLA2=LIRE_MAILLAGE(UNITE=21,) + +MODELE=AFFE_MODELE(MAILLAGE=MAILLAGE, + AFFE=(_F(GROUP_MA='RESSORT', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',), + _F(GROUP_NO='MASSES', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',),),) + +BICHOC=AFFE_MODELE(MAILLAGE=MAILLA2, + AFFE=(_F(GROUP_MA='RESSORTS', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',), + _F(GROUP_NO=('MASSES1','MASSES2',), + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',),),) +VAL = 98696.0 + + +CARA_ELE=AFFE_CARA_ELEM(MODELE=MODELE, + DISCRET=(_F(GROUP_MA='RESSORT', + REPERE='GLOBAL', + CARA='K_T_D_L', + VALE=(VAL,0.0,0.0,),), + _F(GROUP_NO='MASSES', + CARA='M_T_D_N', + VALE=25.0,),),) + +CARA_BIC=AFFE_CARA_ELEM(MODELE=BICHOC, + DISCRET=(_F(GROUP_MA='RESSORTS', + REPERE='GLOBAL', + CARA='K_T_D_L', + VALE=(VAL,0.0,0.0,),), + _F(GROUP_NO='MASSES1', + CARA='M_T_D_N', + VALE=25.0,), + _F(GROUP_NO='MASSES2', + CARA='M_T_D_N', + VALE=25.0,),),) + +CON_LIM=AFFE_CHAR_MECA(MODELE=MODELE, + DDL_IMPO=(_F(GROUP_NO='ENCASTRE', + DX=0.0, + DY=0.0, + DZ=0.0,), + _F(GROUP_NO='MASSES', + DY=0.0, + DZ=0.0,),),) + +CL_BICHO=AFFE_CHAR_MECA(MODELE=BICHOC, + DDL_IMPO=(_F(GROUP_NO='ENCBICHO', + DX=0.0, + DY=0.0, + DZ=0.0,), + _F(GROUP_NO=('MASSES1','MASSES2',), + DY=0.0, + DZ=0.0,),),) + +MACRO_MATR_ASSE(MODELE=MODELE, + CARA_ELEM=CARA_ELE, + CHARGE=CON_LIM, + NUME_DDL=CO('NUMEDDL'), + MATR_ASSE=(_F(MATRICE=CO('RIGIDITE'), + OPTION='RIGI_MECA',), + _F(MATRICE=CO('MASSE'), + OPTION='MASS_MECA',),),) + +MACRO_MATR_ASSE(MODELE=BICHOC, + CARA_ELEM=CARA_BIC, + CHARGE=CL_BICHO, + NUME_DDL=CO('NUMDDLC'), + MATR_ASSE=(_F(MATRICE=CO('RIGI_BIC'), + OPTION='RIGI_MECA',), + _F(MATRICE=CO('MASS_BIC'), + OPTION='MASS_MECA',),),) + +MODE_MEC=MODE_ITER_SIMULT(MATR_A=RIGIDITE, + MATR_B=MASSE,) + +MODE_MEC=NORM_MODE(reuse =MODE_MEC, + MODE=MODE_MEC, + NORME='MASS_GENE',) + +MODE_BIC=MODE_ITER_SIMULT(MATR_A=RIGI_BIC, + MATR_B=MASS_BIC, + METHODE='JACOBI', + OPTION='SANS', + CALC_FREQ=_F(OPTION='BANDE', + FREQ=(1.0,10.0,),),) + +MODE_BIC=NORM_MODE(reuse =MODE_BIC, + MODE=MODE_BIC, + NORME='MASS_GENE',) + +MODE_STA=MODE_STATIQUE(MATR_RIGI=RIGIDITE, + MATR_MASS=MASSE, + MODE_STAT=_F(TOUT='OUI', + AVEC_CMP='DX',),) + +MSTA_BIC=MODE_STATIQUE(MATR_RIGI=RIGI_BIC, + MATR_MASS=MASS_BIC, + MODE_STAT=_F(TOUT='OUI', + AVEC_CMP='DX',),) + +L_INST=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=_F(JUSQU_A=1.0, + PAS=1.E-4,),) + +OMEGAA=2.*pi*10. + +ACCE1 = FORMULE(VALE = 'sin(OMEGAA*INST)', + NOM_PARA='INST') + +ACCELER1=CALC_FONC_INTERP(FONCTION=ACCE1, + NOM_RESU='ACCE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +ACCE2 = FORMULE(VALE = '-sin(OMEGAA*INST)', + NOM_PARA='INST') + +ACCELER2=CALC_FONC_INTERP(FONCTION=ACCE2, + NOM_RESU='ACCE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +VITE1 = FORMULE(VALE = '-cos(OMEGAA*INST)/OMEGAA', + NOM_PARA='INST') + +VITESSE1=CALC_FONC_INTERP(FONCTION=VITE1, + NOM_RESU='VITE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +DEPL1 = FORMULE(VALE = '-sin(OMEGAA*INST)/(OMEGAA**2)', + NOM_PARA='INST') + +DEPLACE1=CALC_FONC_INTERP(FONCTION=DEPL1, + NOM_RESU='DEPL', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +VITE2 = FORMULE(VALE = 'cos(OMEGAA*INST)/OMEGAA', + NOM_PARA='INST') + +VITESSE2=CALC_FONC_INTERP(FONCTION=VITE2, + NOM_RESU='VITE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +xx=2 + +INCLUDE(UNITE=11, + INFO=1,) + +MUR=DEFI_OBSTACLE(TYPE='PLAN_Z',) + +TRAN_GE1=DYNA_TRAN_MODAL(METHODE='EULER', + MASS_GENE=MASS_GEN, + RIGI_GENE=RIGI_GEN, + AMOR_REDUIT=0.07, + MODE_STAT=MODE_STA, + INCREMENT=_F(INST_INIT=0.0, + INST_FIN=1.0, + PAS=2.0E-4,), + ARCHIVAGE=_F(PAS_ARCH=8,), + EXCIT=_F(VECT_GENE=VECT_X, + ACCE=ACCELER1, + VITE=VITESSE1, + DEPL=DEPLACE1, + MULT_APPUI='OUI', + DIRECTION=(1.0,0.0,0.0,), + NOEUD='NO1',), + CHOC=_F(INTITULE='NO2/MUR', + GROUP_NO_1='MASSES', + OBSTACLE=MUR, + ORIG_OBST=(-1.0,0.0,0.0,), + NORM_OBST=(0.0,0.0,1.0,), + JEU=1.1005, + RIGI_NOR=5.76E7, + AMOR_NOR=0.0, + RIGI_TAN=0.0, + COULOMB=0.0,),) + +MULT_X1=CALC_CHAR_SEISME(MATR_MASS=MASS_BIC, + DIRECTION=(1.0,0.0,0.0,), + MODE_STAT=MSTA_BIC, + NOEUD='NO1',) + +MULT_X2=CALC_CHAR_SEISME(MATR_MASS=MASS_BIC, + DIRECTION=(1.0,0.0,0.0,), + MODE_STAT=MSTA_BIC, + NOEUD='NO11',) + +MACRO_PROJ_BASE(BASE=MODE_BIC, + MATR_ASSE_GENE=(_F(MATRICE=CO('MGEN_BIC'), + MATR_ASSE=MASS_BIC,), + _F(MATRICE=CO('RGEN_BIC'), + MATR_ASSE=RIGI_BIC,),), + VECT_ASSE_GENE=(_F(VECTEUR=CO('VECT_X1'), + VECT_ASSE=MULT_X1,), + _F(VECTEUR=CO('VECT_X2'), + VECT_ASSE=MULT_X2,),),) + +GRILLE=DEFI_OBSTACLE(TYPE='BI_PLAN_Z',) + +MAILLA3=LIRE_MAILLAGE(UNITE=22,) + +FIN() diff --git a/Tests/testcomm9/efica01b.11 b/Tests/testcomm9/efica01b.11 new file mode 100644 index 00000000..bec37b5b --- /dev/null +++ b/Tests/testcomm9/efica01b.11 @@ -0,0 +1,19 @@ +DEPL2 = FORMULE(NOM_PARA='INST',VALE='sin(OMEGAA*INST)/(OMEGAA**xx)') +DEPLACE2=CALC_FONC_INTERP( FONCTION=DEPL2, + LIST_PARA=L_INST, + NOM_PARA='INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE', + NOM_RESU='DEPL' ) + +MONO_X=CALC_CHAR_SEISME( MATR_MASS=MASSE, + DIRECTION=( 1., 0., 0.,), + MONO_APPUI='OUI' ) + + +MACRO_PROJ_BASE(BASE=MODE_MEC,MATR_ASSE_GENE=( + _F( MATRICE = CO("MASS_GEN"), MATR_ASSE = MASSE), + _F( MATRICE = CO("RIGI_GEN"), MATR_ASSE = RIGIDITE)), + VECT_ASSE_GENE=_F( VECTEUR = CO("VECT_X"), VECT_ASSE = MONO_X) + ) + diff --git a/Tests/testcomm9/efica01b.comm b/Tests/testcomm9/efica01b.comm new file mode 100755 index 00000000..20eea866 --- /dev/null +++ b/Tests/testcomm9/efica01b.comm @@ -0,0 +1,275 @@ +# MODIF DATE 20/09/2004 AUTEUR DURAND C.DURAND +# TITRE TEST DE NON REGRESSION DE L IHM EFICAS - DERIVE DE SDND102A +# 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. +# ====================================================================== +# Ce cas test est gere en configuration dans la base ASTER, il sert de +# modele pour prononcer la recette de l IHM d EFICAS : l objectif est de +# pouvoir recreer ce test a l identique dans EFICAS a partir d une page +# blanche. +# On a donc essaye d y placer toutes les commandes un peu particulieres +# du langage de commandes d ASTER +# +# Il s agit en fait du test SDND102A auquel on a ajoute : +# la definition d un parametre (VAL) +# l inclusion d un fichier (INCLUDE) +# une poursuite (POURSUITE) +# Il contient ainsi : +# des parametres, des formules, des macros, des mots cles facteurs repetes +# (y compris conditionnes par des regles : calc_fonction / COMB), +# des blocs (mode_iter_simult,calc_char_seisme), un defi_valeur, un parametre. +# +# +# Il faudra y associer quelques recommandations pour la recette : +# - verifier qu en ouvrant le .com0, il demande bien a browser le .comm puis, en cascade, le .11 +# - verifier qu on peut bien supprimer une commande, un mot cle simple et facteur +# - verifier les acces a la doc +# +# + + +DEBUT(CODE=_F(NOM='EFICA01A',NIV_PUB_WEB='INTERNET',VISU_EFICAS='NON'),) + +MAILLAGE=LIRE_MAILLAGE() + +MAILLAGE=DEFI_GROUP(reuse=MAILLAGE, + MAILLAGE=MAILLAGE, + CREA_GROUP_NO=(_F(NOEUD='NO2', + NOM='MASSES',), + _F(NOEUD='NO1', + NOM='ENCASTRE',),),) + +MAILLA2=LIRE_MAILLAGE(UNITE=21,) + +MODELE=AFFE_MODELE(MAILLAGE=MAILLAGE, + AFFE=(_F(GROUP_MA='RESSORT', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',), + _F(GROUP_NO='MASSES', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',),),) + +BICHOC=AFFE_MODELE(MAILLAGE=MAILLA2, + AFFE=(_F(GROUP_MA='RESSORTS', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',), + _F(GROUP_NO=('MASSES1','MASSES2',), + PHENOMENE='MECANIQUE', + MODELISATION='DIS_T',),),) +VAL = 98696.0 + + +CARA_ELE=AFFE_CARA_ELEM(MODELE=MODELE, + DISCRET=(_F(GROUP_MA='RESSORT', + REPERE='GLOBAL', + CARA='K_T_D_L', + VALE=(VAL,0.0,0.0,),), + _F(GROUP_NO='MASSES', + CARA='M_T_D_N', + VALE=25.0,),),) + +CARA_BIC=AFFE_CARA_ELEM(MODELE=BICHOC, + DISCRET=(_F(GROUP_MA='RESSORTS', + REPERE='GLOBAL', + CARA='K_T_D_L', + VALE=(VAL,0.0,0.0,),), + _F(GROUP_NO='MASSES1', + CARA='M_T_D_N', + VALE=25.0,), + _F(GROUP_NO='MASSES2', + CARA='M_T_D_N', + VALE=25.0,),),) + +CON_LIM=AFFE_CHAR_MECA(MODELE=MODELE, + DDL_IMPO=(_F(GROUP_NO='ENCASTRE', + DX=0.0, + DY=0.0, + DZ=0.0,), + _F(GROUP_NO='MASSES', + DY=0.0, + DZ=0.0,),),) + +CL_BICHO=AFFE_CHAR_MECA(MODELE=BICHOC, + DDL_IMPO=(_F(GROUP_NO='ENCBICHO', + DX=0.0, + DY=0.0, + DZ=0.0,), + _F(GROUP_NO=('MASSES1','MASSES2',), + DY=0.0, + DZ=0.0,),),) + +MACRO_MATR_ASSE(MODELE=MODELE, + CARA_ELEM=CARA_ELE, + CHARGE=CON_LIM, + NUME_DDL=CO('NUMEDDL'), + MATR_ASSE=(_F(MATRICE=CO('RIGIDITE'), + OPTION='RIGI_MECA',), + _F(MATRICE=CO('MASSE'), + OPTION='MASS_MECA',),),) + +MACRO_MATR_ASSE(MODELE=BICHOC, + CARA_ELEM=CARA_BIC, + CHARGE=CL_BICHO, + NUME_DDL=CO('NUMDDLC'), + MATR_ASSE=(_F(MATRICE=CO('RIGI_BIC'), + OPTION='RIGI_MECA',), + _F(MATRICE=CO('MASS_BIC'), + OPTION='MASS_MECA',),),) + +MODE_MEC=MODE_ITER_SIMULT(MATR_A=RIGIDITE, + MATR_B=MASSE,) + +MODE_MEC=NORM_MODE(reuse =MODE_MEC, + MODE=MODE_MEC, + NORME='MASS_GENE',) + +MODE_BIC=MODE_ITER_SIMULT(MATR_A=RIGI_BIC, + MATR_B=MASS_BIC, + METHODE='JACOBI', + OPTION='SANS', + CALC_FREQ=_F(OPTION='BANDE', + FREQ=(1.0,10.0,),),) + +MODE_BIC=NORM_MODE(reuse =MODE_BIC, + MODE=MODE_BIC, + NORME='MASS_GENE',) + +MODE_STA=MODE_STATIQUE(MATR_RIGI=RIGIDITE, + MATR_MASS=MASSE, + MODE_STAT=_F(TOUT='OUI', + AVEC_CMP='DX',),) + +MSTA_BIC=MODE_STATIQUE(MATR_RIGI=RIGI_BIC, + MATR_MASS=MASS_BIC, + MODE_STAT=_F(TOUT='OUI', + AVEC_CMP='DX',),) + +L_INST=DEFI_LIST_REEL(DEBUT=0.0, + INTERVALLE=_F(JUSQU_A=1.0, + PAS=1.E-4,),) + +OMEGAA=2.*pi*10. + +ACCE1 = FORMULE(VALE = 'sin(OMEGAA*INST)', + NOM_PARA='INST') + +ACCELER1=CALC_FONC_INTERP(FONCTION=ACCE1, + NOM_RESU='ACCE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +ACCE2 = FORMULE(VALE = '-sin(OMEGAA*INST)', + NOM_PARA='INST') + +ACCELER2=CALC_FONC_INTERP(FONCTION=ACCE2, + NOM_RESU='ACCE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +VITE1 = FORMULE(VALE = '-cos(OMEGAA*INST)/OMEGAA', + NOM_PARA='INST') + +VITESSE1=CALC_FONC_INTERP(FONCTION=VITE1, + NOM_RESU='VITE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +DEPL1 = FORMULE(VALE = '-sin(OMEGAA*INST)/(OMEGAA**2)', + NOM_PARA='INST') + +DEPLACE1=CALC_FONC_INTERP(FONCTION=DEPL1, + NOM_RESU='DEPL', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +VITE2 = FORMULE(VALE = 'cos(OMEGAA*INST)/OMEGAA', + NOM_PARA='INST') + +VITESSE2=CALC_FONC_INTERP(FONCTION=VITE2, + NOM_RESU='VITE', + LIST_PARA=L_INST, + NOM_PARA = 'INST', + PROL_DROITE='LINEAIRE', + PROL_GAUCHE='LINEAIRE',) + +xx=2 + +INCLUDE(UNITE=11, + INFO=1,) + +MUR=DEFI_OBSTACLE(TYPE='PLAN_Z',) + +TRAN_GE1=DYNA_TRAN_MODAL(METHODE='EULER', + MASS_GENE=MASS_GEN, + RIGI_GENE=RIGI_GEN, + AMOR_REDUIT=0.07, + MODE_STAT=MODE_STA, + INCREMENT=_F(INST_INIT=0.0, + INST_FIN=1.0, + PAS=2.0E-4,), + ARCHIVAGE=_F(PAS_ARCH=8,), + EXCIT=_F(VECT_GENE=VECT_X, + ACCE=ACCELER1, + VITE=VITESSE1, + DEPL=DEPLACE1, + MULT_APPUI='OUI', + DIRECTION=(1.0,0.0,0.0,), + NOEUD='NO1',), + CHOC=_F(INTITULE='NO2/MUR', + GROUP_NO_1='MASSES', + OBSTACLE=MUR, + ORIG_OBST=(-1.0,0.0,0.0,), + NORM_OBST=(0.0,0.0,1.0,), + JEU=1.1005, + RIGI_NOR=5.76E7, + AMOR_NOR=0.0, + RIGI_TAN=0.0, + COULOMB=0.0,),) + +MULT_X1=CALC_CHAR_SEISME(MATR_MASS=MASS_BIC, + DIRECTION=(1.0,0.0,0.0,), + MODE_STAT=MSTA_BIC, + NOEUD='NO1',) + +MULT_X2=CALC_CHAR_SEISME(MATR_MASS=MASS_BIC, + DIRECTION=(1.0,0.0,0.0,), + MODE_STAT=MSTA_BIC, + NOEUD='NO11',) + +MACRO_PROJ_BASE(BASE=MODE_BIC, + MATR_ASSE_GENE=(_F(MATRICE=CO('MGEN_BIC'), + MATR_ASSE=MASS_BIC,), + _F(MATRICE=CO('RGEN_BIC'), + MATR_ASSE=RIGI_BIC,),), + VECT_ASSE_GENE=(_F(VECTEUR=CO('VECT_X1'), + VECT_ASSE=MULT_X1,), + _F(VECTEUR=CO('VECT_X2'), + VECT_ASSE=MULT_X2,),),) + +GRILLE=DEFI_OBSTACLE(TYPE='BI_PLAN_Z',) + +MAILLA3=LIRE_MAILLAGE(UNITE=22,) + +FIN() diff --git a/Tests/testcomm9/f.comm b/Tests/testcomm9/f.comm new file mode 100644 index 00000000..d15a6179 --- /dev/null +++ b/Tests/testcomm9/f.comm @@ -0,0 +1,18 @@ +from Numeric import size + +DEBUT() + +# Definition des parametres de l'excitation sinusoidale +freq=1500.0 +periode=1.0/freq +pas=periode/100.0 + +LISTTM=DEFI_LIST_REEL(DEBUT=0.0*periode, + INTERVALLE=_F(JUSQU_A=100.0*periode, + PAS=pas,),); + +LISTRD=DEFI_LIST_REEL(DEBUT=(98.0)*periode+pas, + INTERVALLE=_F(JUSQU_A=(100.0)*periode, + PAS=pas,),); + +FIN() diff --git a/Tests/testcomm9/forma12c.22 b/Tests/testcomm9/forma12c.22 new file mode 100755 index 00000000..1452b8f2 --- /dev/null +++ b/Tests/testcomm9/forma12c.22 @@ -0,0 +1,5616 @@ +ACCELH1=DEFI_FONCTION(NOM_PARA='INST', + VALE= + ( + 0.0 , 0.0 , + 5.000000000000000E-03 , 1.384945820672120E-02 , + 1.000000000000000E-02 , 1.382919843991470E-02 , + 1.500000000000000E-02 , 1.382973754982250E-02 , + 2.000000000000000E-02 , 1.383338152282280E-02 , + 2.500000000000000E-02 , 1.393648950771420E-02 , + 3.000000000000000E-02 , 1.434779984741860E-02 , + 3.500000000000000E-02 , 1.512950713231800E-02 , + 4.000000000000000E-02 , 1.614535272002630E-02 , + 4.500000000000000E-02 , 1.731995083544010E-02 , + 5.000000000000000E-02 , 1.859624623558040E-02 , + 5.500000000000000E-02 , 1.953967672923960E-02 , + 6.000000000000000E-02 , 1.941781110418540E-02 , + 6.500000000000000E-02 , 1.786343830924350E-02 , + 7.000000000000001E-02 , 1.516191250319950E-02 , + 7.500000000000000E-02 , 1.188464893531830E-02 , + 8.000000000000000E-02 , 8.604671706807470E-03 , + 8.500000000000001E-02 , 5.843238016204390E-03 , + 9.000000000000000E-02 , 3.844393537029640E-03 , + 9.500000000000000E-02 , 2.578831760615030E-03 , + 0.1 , 2.285337760842440E-03 , + 0.105 , 3.429647164261850E-03 , + 0.11 , 5.693975593542530E-03 , + 0.115 , 8.059677068797949E-03 , + 0.12 , 1.074690536157120E-02 , + 0.125 , 1.570430547663250E-02 , + 0.13 , 2.370085802024690E-02 , + 0.135 , 3.228248728765840E-02 , + 0.14 , 3.854420890726100E-02 , + 0.145 , 4.255105840524570E-02 , + 0.15 , 4.542487497977820E-02 , + 0.155 , 4.522394778102340E-02 , + 0.16 , 3.829095514459380E-02 , + 0.165 , 2.483633029107950E-02 , + 0.17 , 9.962011825963081E-03 , + 0.175 , -1.690338763720670E-03 , + 0.18 , -9.628765294085771E-03 , + 0.185 , -1.491533457160890E-02 , + 0.19 , -1.675574249783150E-02 , + 0.195 , -1.397302390604700E-02 , + 0.2 , -8.394257392452909E-03 , + 0.205 , -4.066198655663860E-03 , + 0.21 , -2.824511823738000E-03 , + 0.215 , -2.617183840945080E-03 , + 0.22 , -1.417346427510000E-03 , + 0.225 , -1.143002215953450E-03 , + 0.23 , -5.114862179520550E-03 , + 0.235 , -1.257393226409120E-02 , + 0.24 , -2.009825306788950E-02 , + 0.245 , -2.922606396367100E-02 , + 0.25 , -4.681398923377460E-02 , + 0.255 , -7.440515051138789E-02 , + 0.26 , -0.10334790104033 , + 0.265 , -0.12586697159281 , + 0.27 , -0.14387794464775 , + 0.275 , -0.15814759425273 , + 0.28 , -0.15645166862504 , + 0.285 , -0.12686021613717 , + 0.29 , -7.870738657620450E-02 , + 0.295 , -3.337529798013800E-02 , + 0.3 , 4.960493246599410E-03 , + 0.305 , 5.045559596258160E-02 , + 0.31 , 0.105226085321393 , + 0.315 , 0.149377859842677 , + 0.32 , 0.169404090056596 , + 0.325 , 0.175768658339062 , + 0.33 , 0.179795570216475 , + 0.335 , 0.172362231098084 , + 0.34 , 0.14178782193451 , + 0.345 , 9.600009720172401E-02 , + 0.35 , 4.821844915823450E-02 , + 0.355 , -4.337533256019430E-03 , + 0.36 , -6.584719156367530E-02 , + 0.365 , -0.11836425870338 , + 0.37 , -0.13733576068719 , + 0.375 , -0.12352979806305 , + 0.38 , -9.647458189678811E-02 , + 0.385 , -6.215705630868780E-02 , + 0.39 , -1.230416228554950E-02 , + 0.395 , 4.641921735700460E-02 , + 0.4 , 8.859572962085120E-02 , + 0.405 , 9.988862929152570E-02 , + 0.41 , 9.014811266775360E-02 , + 0.415 , 7.203047941527541E-02 , + 0.42 , 4.502398610270280E-02 , + 0.425 , 6.797639622722420E-03 , + 0.43 , -3.515202910758360E-02 , + 0.435 , -7.008994299356780E-02 , + 0.44 , -9.184195885494270E-02 , + 0.445 , -9.764578216442391E-02 , + 0.45 , -8.980199943709211E-02 , + 0.455 , -7.844678621890611E-02 , + 0.46 , -7.092648374585479E-02 , + 0.465 , -5.916134617989510E-02 , + 0.47 , -2.956966177372460E-02 , + 0.475 , 1.671374368998170E-02 , + 0.48 , 6.681414337976969E-02 , + 0.485 , 0.115921896874314 , + 0.49 , 0.168522035427266 , + 0.495 , 0.222448388891968 , + 0.5 , 0.268501345352512 , + 0.505 , 0.304492502191568 , + 0.51 , 0.333201521434027 , + 0.515 , 0.348912055073103 , + 0.52 , 0.344336194210705 , + 0.525 , 0.328357457992693 , + 0.53 , 0.315639958020935 , + 0.535 , 0.298753776631336 , + 0.54 , 0.252828404979867 , + 0.545 , 0.169993172714936 , + 0.55 , 6.727059721322880E-02 , + 0.555 , -4.209915010595060E-02 , + 0.56 , -0.16027870746769 , + 0.565 , -0.28051898189652 , + 0.57 , -0.37473468426368 , + 0.575 , -0.41761046311846 , + 0.58 , -0.40704487960185 , + 0.585 , -0.35317881167887 , + 0.59 , -0.26473865427636 , + 0.595 , -0.15439054042026 , + 0.6 , -4.069603171914010E-02 , + 0.605 , 6.408493301865420E-02 , + 0.61 , 0.155029022019142 , + 0.615 , 0.221244653075603 , + 0.62 , 0.250448298949297 , + 0.625 , 0.2498283906321 , + 0.63 , 0.239493456134941 , + 0.635 , 0.218886088833644 , + 0.64 , 0.164337222785859 , + 0.645 , 7.035013146739150E-02 , + 0.65 , -3.065825126167990E-02 , + 0.655 , -0.10313193025801 , + 0.66 , -0.14127712726139 , + 0.665 , -0.15425776005121 , + 0.67 , -0.14167316851909 , + 0.675 , -0.10137097186279 , + 0.68 , -4.328536800004760E-02 , + 0.685 , 2.048801937177380E-02 , + 0.69 , 8.302000641121640E-02 , + 0.695 , 0.129331142992423 , + 0.7 , 0.139601455006784 , + 0.705 , 0.121227983591054 , + 0.71 , 0.113005236382458 , + 0.715 , 0.1379818615802 , + 0.72 , 0.176308826146499 , + 0.725 , 0.205232483015008 , + 0.73 , 0.236700670002903 , + 0.735 , 0.28518726999873 , + 0.74 , 0.325155532319882 , + 0.745 , 0.319888795846513 , + 0.75 , 0.275055725375209 , + 0.755 , 0.223753796143942 , + 0.76 , 0.172075077677344 , + 0.765 , 0.102710116433296 , + 0.77 , 2.458158105150330E-02 , + 0.775 , -2.772090362464080E-02 , + 0.78 , -4.579263759539020E-02 , + 0.785 , -5.563702283874560E-02 , + 0.79 , -6.754184615076410E-02 , + 0.795 , -5.871706032442020E-02 , + 0.8 , -1.692509300464670E-02 , + 0.805 , 3.809918865159700E-02 , + 0.81 , 9.363878798804159E-02 , + 0.815 , 0.168712355371222 , + 0.82 , 0.278043767236916 , + 0.825 , 0.400260018759297 , + 0.83 , 0.503549901131272 , + 0.835 , 0.576593704222666 , + 0.84 , 0.611464547720466 , + 0.845 , 0.581774928421811 , + 0.85 , 0.466685485187298 , + 0.855 , 0.279469592461024 , + 0.86 , 4.649599505060000E-02 , + 0.865 , -0.22611474655397 , + 0.87 , -0.53742100922433 , + 0.875 , -0.85597468112981 , + 0.88 , -1.12858445463436 , + 0.885 , -1.31964097839003 , + 0.89 , -1.41810357733099 , + 0.895 , -1.4129005458435 , + 0.9 , -1.29047173798494 , + 0.905 , -1.05919909208997 , + 0.91 , -0.75411881989804 , + 0.915 , -0.41406737678731 , + 0.92 , -7.194360976911091E-02 , + 0.925 , 0.232932654611786 , + 0.93 , 0.457448784206965 , + 0.935 , 0.581369260987795 , + 0.94 , 0.617884772522987 , + 0.945 , 0.588638581913632 , + 0.95 , 0.499594354895777 , + 0.955 , 0.351854051263097 , + 0.96 , 0.167285288529307 , + 0.965 , -1.354817972678980E-02 , + 0.97 , -0.16506107206104 , + 0.975 , -0.30020976135865 , + 0.98 , -0.44800006523462 , + 0.985 , -0.60571664044792 , + 0.99 , -0.72882650966723 , + 0.995 , -0.78150351703968 , + 1.0 , -0.78325351768449 , + 1.005 , -0.7804638307994 , + 1.01 , -0.77907901470961 , + 1.015 , -0.74044922924701 , + 1.02 , -0.64794816611668 , + 1.025 , -0.53653982368824 , + 1.03 , -0.43590944296704 , + 1.035 , -0.32196595199848 , + 1.04 , -0.15803623495676 , + 1.045 , 4.418314484939760E-02 , + 1.05 , 0.242865235492215 , + 1.055 , 0.422391619487335 , + 1.06 , 0.586878740356939 , + 1.065 , 0.710461681206935 , + 1.07 , 0.741340861669433 , + 1.075 , 0.655713664787049 , + 1.08 , 0.470616913700976 , + 1.085 , 0.20656145315631 , + 1.09 , -0.12112308548803 , + 1.095 , -0.47118919290136 , + 1.1 , -0.77786799146278 , + 1.105 , -0.99394827732625 , + 1.11 , -1.10304473601585 , + 1.115 , -1.08949447190265 , + 1.12 , -0.93583496154967 , + 1.125 , -0.65727377808015 , + 1.13 , -0.30107834922153 , + 1.135 , 9.620828359443580E-02 , + 1.14 , 0.514013416080853 , + 1.145 , 0.90642132985077 , + 1.15 , 1.20374217441116 , + 1.155 , 1.37257710404611 , + 1.16 , 1.43303286111545 , + 1.165 , 1.40075730037501 , + 1.17 , 1.25846296855354 , + 1.175 , 1.00832137286648 , + 1.18 , 0.706462116642059 , + 1.185 , 0.413493607411118 , + 1.19 , 0.148293682071222 , + 1.195 , -8.190792579850280E-02 , + 1.2 , -0.25000976533114 , + 1.205 , -0.34497838239222 , + 1.21 , -0.39991632301279 , + 1.215 , -0.44361527764964 , + 1.22 , -0.45948891812011 , + 1.225 , -0.43276591909851 , + 1.23 , -0.39819165775721 , + 1.235 , -0.38929817650006 , + 1.24 , -0.37545880341991 , + 1.245 , -0.30998449197619 , + 1.25 , -0.21624700688801 , + 1.255 , -0.16343645166853 , + 1.26 , -0.17391443905321 , + 1.265 , -0.21919282258219 , + 1.27 , -0.29688345097037 , + 1.275 , -0.43984931085551 , + 1.28 , -0.64071500818847 , + 1.285 , -0.82875858278133 , + 1.29 , -0.93796346189032 , + 1.295 , -0.949512523725 , + 1.3 , -0.857601537535 , + 1.305 , -0.65014691427727 , + 1.31 , -0.34930571456794 , + 1.315 , -2.752743937664530E-02 , + 1.32 , 0.246332435481473 , + 1.325 , 0.45001279080827 , + 1.33 , 0.58297681321004 , + 1.335 , 0.636158064092188 , + 1.34 , 0.611598530544366 , + 1.345 , 0.543575003876384 , + 1.35 , 0.472132760127251 , + 1.355 , 0.4099056501601 , + 1.36 , 0.349344621324927 , + 1.365 , 0.282806527352702 , + 1.37 , 0.200676817565078 , + 1.375 , 9.097626989587490E-02 , + 1.38 , -3.844874520206900E-02 , + 1.385 , -0.1485730750104 , + 1.39 , -0.19431957586841 , + 1.395 , -0.15348271845224 , + 1.4 , -2.614043201034680E-02 , + 1.405 , 0.177537986918302 , + 1.41 , 0.435115227256899 , + 1.415 , 0.705841641151383 , + 1.42 , 0.939450691097474 , + 1.425 , 1.09606995057385 , + 1.43 , 1.16508829271638 , + 1.435 , 1.17152904343664 , + 1.44 , 1.15677325221222 , + 1.445 , 1.14474618562157 , + 1.45 , 1.13563604509728 , + 1.455 , 1.136131797716 , + 1.46 , 1.17059034109195 , + 1.465 , 1.24349566378999 , + 1.47 , 1.31555125128714 , + 1.475 , 1.34451073520553 , + 1.48 , 1.32767985662737 , + 1.485 , 1.27338631745007 , + 1.49 , 1.15790168079473 , + 1.495 , 0.956521791996786 , + 1.5 , 0.698290997947875 , + 1.505 , 0.438367846650034 , + 1.51 , 0.189519144568428 , + 1.515 , -6.309865148517370E-02 , + 1.52 , -0.2907946493572 , + 1.525 , -0.43414032419491 , + 1.53 , -0.49035140435209 , + 1.535 , -0.51769162343818 , + 1.54 , -0.53944953961898 , + 1.545 , -0.51762829963883 , + 1.55 , -0.44905875024602 , + 1.555 , -0.41047655284131 , + 1.56 , -0.45801991852189 , + 1.565 , -0.5452728301642 , + 1.57 , -0.60180223196739 , + 1.575 , -0.64090769354799 , + 1.58 , -0.71776674993069 , + 1.585 , -0.81770575898523 , + 1.59 , -0.86693741584294 , + 1.595 , -0.84067997754846 , + 1.6 , -0.78353488744314 , + 1.605 , -0.71744286940014 , + 1.61 , -0.59774454986713 , + 1.615 , -0.38171240617319 , + 1.62 , -8.924731070437070E-02 , + 1.625 , 0.229074480135456 , + 1.63 , 0.542610098773165 , + 1.635 , 0.829628497520742 , + 1.64 , 1.04494574127203 , + 1.645 , 1.13156269562082 , + 1.65 , 1.05624249517991 , + 1.655 , 0.819935992458342 , + 1.66 , 0.449565343322086 , + 1.665 , -2.180707598866940E-03 , + 1.67 , -0.46040931126981 , + 1.675 , -0.85138688793934 , + 1.68 , -1.12388943755807 , + 1.685 , -1.24657385888904 , + 1.69 , -1.20179685962043 , + 1.695 , -0.99981038351547 , + 1.7 , -0.69163368557204 , + 1.705 , -0.34742052586021 , + 1.71 , -1.646326697056420E-02 , + 1.715 , 0.283945578116849 , + 1.72 , 0.543028107021654 , + 1.725 , 0.737133979583192 , + 1.73 , 0.84487160610996 , + 1.735 , 0.870212972351319 , + 1.74 , 0.834700198404195 , + 1.745 , 0.747170431789498 , + 1.75 , 0.594410232927394 , + 1.755 , 0.367486332109475 , + 1.76 , 8.962182967477010E-02 , + 1.765 , -0.1883067260291 , + 1.77 , -0.41613375697166 , + 1.775 , -0.56543072263443 , + 1.78 , -0.62930681455469 , + 1.785 , -0.60967253780204 , + 1.79 , -0.50702726496872 , + 1.795 , -0.32533912503295 , + 1.8 , -9.026946700126549E-02 , + 1.805 , 0.145429511003968 , + 1.81 , 0.330819022676906 , + 1.815 , 0.45222714352563 , + 1.82 , 0.524252434401283 , + 1.825 , 0.544685292311812 , + 1.83 , 0.482635967462947 , + 1.835 , 0.323118603668567 , + 1.84 , 9.999214308770410E-02 , + 1.845 , -0.1356321129448 , + 1.85 , -0.36128518628156 , + 1.855 , -0.57322505412043 , + 1.86 , -0.74566937227067 , + 1.865 , -0.831111234663 , + 1.87 , -0.79988891088422 , + 1.875 , -0.65798317740384 , + 1.88 , -0.42968513644553 , + 1.885 , -0.14457167669537 , + 1.89 , 0.161701689894838 , + 1.895 , 0.456458659481019 , + 1.9 , 0.720641473510481 , + 1.905 , 0.93536449279502 , + 1.91 , 1.06690148982661 , + 1.915 , 1.08832474904443 , + 1.92 , 1.00876475369484 , + 1.925 , 0.854457298011041 , + 1.93 , 0.628173977645005 , + 1.935 , 0.322546940276438 , + 1.94 , -2.596888473873320E-02 , + 1.945 , -0.33525384338564 , + 1.95 , -0.5416882826646 , + 1.955 , -0.63460201942509 , + 1.96 , -0.61577036509424 , + 1.965 , -0.46445342826001 , + 1.97 , -0.17427091738081 , + 1.975 , 0.197608608481982 , + 1.98 , 0.551300717211572 , + 1.985 , 0.807313151449369 , + 1.99 , 0.929291756112952 , + 1.995 , 0.900203655372628 , + 2.0 , 0.711960914602783 , + 2.005 , 0.386125888668035 , + 2.01 , -1.664845298933290E-02 , + 2.015 , -0.42003837834356 , + 2.02 , -0.75822166854004 , + 2.025 , -0.97936810396973 , + 2.03 , -1.0426579951744 , + 2.035 , -0.93057240999803 , + 2.04 , -0.66368034717177 , + 2.045 , -0.29110991423144 , + 2.05 , 0.119136312621438 , + 2.055 , 0.505291402538494 , + 2.06 , 0.880216899892637 , + 2.065 , 1.20828770980265 , + 2.07 , 1.46849325860208 , + 2.075 , 1.67233522841001 , + 2.08 , 1.84159238892188 , + 2.085 , 1.97017314302929 , + 2.09 , 2.02820005370812 , + 2.095 , 2.00307389537606 , + 2.1 , 1.90918679712901 , + 2.105 , 1.7492164388665 , + 2.11 , 1.49601732028444 , + 2.115 , 1.13320644545655 , + 2.12 , 0.691534368057989 , + 2.125 , 0.222522846896641 , + 2.13 , -0.2568718835065 , + 2.135 , -0.73270869895797 , + 2.14 , -1.16691560085841 , + 2.145 , -1.52131308342383 , + 2.15 , -1.77830659090987 , + 2.155 , -1.94190868704924 , + 2.16 , -2.01807428134882 , + 2.165 , -2.01753841723068 , + 2.17 , -1.96550102271951 , + 2.175 , -1.88172547074643 , + 2.18 , -1.76181108149962 , + 2.185 , -1.60314470865115 , + 2.19 , -1.43287068566641 , + 2.195 , -1.27868078783724 , + 2.2 , -1.12992856906385 , + 2.205 , -0.96854903020236 , + 2.21 , -0.82469988669093 , + 2.215 , -0.75306712540506 , + 2.22 , -0.75949831264927 , + 2.225 , -0.80266627698916 , + 2.23 , -0.86825465400046 , + 2.235 , -0.98190873939491 , + 2.24 , -1.13332846537187 , + 2.245 , -1.24587809111606 , + 2.25 , -1.25403636722243 , + 2.255 , -1.16774949125882 , + 2.26 , -1.02737996901608 , + 2.265 , -0.83618584315821 , + 2.27 , -0.58078051378866 , + 2.275 , -0.28886675266917 , + 2.28 , -1.584903466322660E-02 , + 2.285 , 0.243494185775485 , + 2.29 , 0.493747779128152 , + 2.295 , 0.763367558765503 , + 2.3 , 1.04659160151311 , + 2.305 , 1.31787059651459 , + 2.31 , 1.55330513693362 , + 2.315 , 1.72708398800512 , + 2.32 , 1.80403390270411 , + 2.325 , 1.74474528448072 , + 2.33 , 1.51781565889812 , + 2.335 , 1.11765857002866 , + 2.34 , 0.582482410154426 , + 2.345 , -9.718428438488540E-03 , + 2.35 , -0.57168637020167 , + 2.355 , -1.03230607359137 , + 2.36 , -1.33718623748091 , + 2.365 , -1.44694517260007 , + 2.37 , -1.35098612723151 , + 2.375 , -1.07661964039704 , + 2.38 , -0.67815732332436 , + 2.385 , -0.22427774359532 , + 2.39 , 0.206546911873295 , + 2.395 , 0.541628296955107 , + 2.4 , 0.739725635914114 , + 2.405 , 0.792688071679571 , + 2.41 , 0.699855261818748 , + 2.415 , 0.460345996951087 , + 2.42 , 9.825062680758330E-02 , + 2.425 , -0.32686436332366 , + 2.43 , -0.75151572607261 , + 2.435 , -1.13800924040631 , + 2.44 , -1.46265919709476 , + 2.445 , -1.69312259897435 , + 2.45 , -1.79655595938503 , + 2.455 , -1.76112116582848 , + 2.46 , -1.59504402395201 , + 2.465 , -1.31375304224191 , + 2.47 , -0.94339622712974 , + 2.475 , -0.5311872307141 , + 2.48 , -0.13652655158703 , + 2.485 , 0.191652831784399 , + 2.49 , 0.427316277261529 , + 2.495 , 0.565105289247264 , + 2.5 , 0.614388715344672 , + 2.505 , 0.595214227948157 , + 2.51 , 0.537482815214678 , + 2.515 , 0.480599475426244 , + 2.52 , 0.461418219827792 , + 2.525 , 0.490351150400196 , + 2.53 , 0.544926077525614 , + 2.535 , 0.597359901626847 , + 2.54 , 0.63915145270988 , + 2.545 , 0.666359147512914 , + 2.55 , 0.659549902572926 , + 2.555 , 0.607653814797886 , + 2.56 , 0.542274304956947 , + 2.565 , 0.514978623780516 , + 2.57 , 0.542507936778163 , + 2.575 , 0.605343596447052 , + 2.58 , 0.694971250554721 , + 2.585 , 0.820564438850225 , + 2.59 , 0.964525817889196 , + 2.595 , 1.07728875105342 , + 2.6 , 1.13416623229962 , + 2.605 , 1.16046452303612 , + 2.61 , 1.18333170206295 , + 2.615 , 1.19818806982642 , + 2.62 , 1.2055342011362 , + 2.625 , 1.23921335799247 , + 2.63 , 1.32082369230339 , + 2.635 , 1.41353565810184 , + 2.64 , 1.45647248242833 , + 2.645 , 1.42296156176653 , + 2.65 , 1.31247243180803 , + 2.655 , 1.10982597617917 , + 2.66 , 0.796193729509591 , + 2.665 , 0.391525367264635 , + 2.67 , -5.039209232008630E-02 , + 2.675 , -0.48551296055089 , + 2.68 , -0.89084690987514 , + 2.685 , -1.24148991258587 , + 2.69 , -1.50817716119153 , + 2.695 , -1.67597297557138 , + 2.7 , -1.74058611919401 , + 2.705 , -1.69018703360535 , + 2.71 , -1.51441737441596 , + 2.715 , -1.22691360409733 , + 2.72 , -0.85820811206465 , + 2.725 , -0.43656402639097 , + 2.73 , -1.877591162527850E-03 , + 2.735 , 0.3722134714064 , + 2.74 , 0.604368486493566 , + 2.745 , 0.654206094948509 , + 2.75 , 0.520823349815255 , + 2.755 , 0.204565302761595 , + 2.76 , -0.24284766157643 , + 2.765 , -0.75311719985656 , + 2.77 , -1.25324781337662 , + 2.775 , -1.6520239944361 , + 2.78 , -1.91175925323649 , + 2.785 , -2.02042853839568 , + 2.79 , -1.95654753001104 , + 2.795 , -1.71189367332731 , + 2.8 , -1.33217954914393 , + 2.805 , -0.90169171320611 , + 2.81 , -0.48741397679456 , + 2.815 , -0.11957680209296 , + 2.82 , 0.208180180447444 , + 2.825 , 0.429754499753944 , + 2.83 , 0.500373556893508 , + 2.835 , 0.453923556202155 , + 2.84 , 0.356589274872127 , + 2.845 , 0.252756610751608 , + 2.85 , 0.15368816142573 , + 2.855 , 7.226479768245560E-02 , + 2.86 , 3.888968358902120E-02 , + 2.865 , 7.085947846528430E-02 , + 2.87 , 0.145649387450817 , + 2.875 , 0.221440328548596 , + 2.88 , 0.271936154319643 , + 2.885 , 0.285520971687156 , + 2.89 , 0.244558483181686 , + 2.895 , 0.131111505423643 , + 2.9 , -4.976188706858230E-02 , + 2.905 , -0.27342387270832 , + 2.91 , -0.51955671330527 , + 2.915 , -0.77083790776384 , + 2.92 , -0.9909431240431 , + 2.925 , -1.1326860598253 , + 2.93 , -1.17530215375529 , + 2.935 , -1.1315547074335 , + 2.94 , -1.01461371409468 , + 2.945 , -0.82697517656886 , + 2.95 , -0.5923950948081 , + 2.955 , -0.367250148284 , + 2.96 , -0.19748847576212 , + 2.965 , -8.287483750208639E-02 , + 2.97 , 1.205615998459890E-03 , + 2.975 , 6.700285876984650E-02 , + 2.98 , 0.142475719272639 , + 2.985 , 0.272732688275581 , + 2.99 , 0.498473860216776 , + 2.995 , 0.815246300242191 , + 3.0 , 1.17850966940332 , + 3.005 , 1.5365879707165 , + 3.01 , 1.83696246846193 , + 3.015 , 2.01683359177992 , + 3.02 , 2.02473029766593 , + 3.025 , 1.85763991176815 , + 3.03 , 1.55996114842794 , + 3.035 , 1.19160270003895 , + 3.04 , 0.817034460759104 , + 3.045 , 0.512897988315463 , + 3.05 , 0.347660769303193 , + 3.055 , 0.341161122643262 , + 3.06 , 0.460638539442427 , + 3.065 , 0.655193651694964 , + 3.07 , 0.871495085561553 , + 3.075 , 1.04025886670637 , + 3.08 , 1.0866972125822 , + 3.085 , 0.97592646156581 , + 3.09 , 0.732149789609832 , + 3.095 , 0.404350262104711 , + 3.1 , 3.450811147404410E-02 , + 3.105 , -0.3574143716153 , + 3.11 , -0.67593382755679 , + 3.115 , -0.85741138771834 , + 3.12 , -0.88812837843921 , + 3.125 , -0.79137979090702 , + 3.13 , -0.59262327029812 , + 3.135 , -0.31629865744548 , + 3.14 , -7.233283133936310E-03 , + 3.145 , 0.273183439196407 , + 3.15 , 0.478066409829062 , + 3.155 , 0.58805365224197 , + 3.16 , 0.593648649534557 , + 3.165 , 0.483000051126779 , + 3.17 , 0.254384438681656 , + 3.175 , -6.624305965878829E-02 , + 3.18 , -0.4267275966133 , + 3.185 , -0.81396009231636 , + 3.19 , -1.1955849391981 , + 3.195 , -1.53431204255614 , + 3.2 , -1.79550741772338 , + 3.205 , -1.95961471169112 , + 3.21 , -2.02193224868472 , + 3.215 , -1.98153140879109 , + 3.22 , -1.83692731893728 , + 3.225 , -1.59274123405354 , + 3.23 , -1.26186737186096 , + 3.235 , -0.85475661028155 , + 3.24 , -0.37101324608578 , + 3.245 , 0.104191797011254 , + 3.25 , 0.444402436394787 , + 3.255 , 0.80270823947836 , + 3.26 , 1.15997110726162 , + 3.265 , 1.495182836989 , + 3.27 , 1.77744468860316 , + 3.275 , 1.96545418255327 , + 3.28 , 2.0238275806165 , + 3.285 , 1.94070094966571 , + 3.29 , 1.72718398222401 , + 3.295 , 1.40473739766314 , + 3.3 , 1.00200904728279 , + 3.305 , 0.563540200278601 , + 3.31 , 0.149874332156587 , + 3.315 , -0.36080714644631 , + 3.32 , -0.78705501088032 , + 3.325 , -0.96779259671266 , + 3.33 , -0.92388383903371 , + 3.335 , -0.70129187312547 , + 3.34 , -0.37633413832281 , + 3.345 , -4.983212937679970E-02 , + 3.35 , 0.182525585093038 , + 3.355 , 0.262197946276188 , + 3.36 , 0.176793782229557 , + 3.365 , -5.176420413944920E-02 , + 3.37 , -0.37933630972585 , + 3.375 , -0.74271351288949 , + 3.38 , -1.06375084817712 , + 3.385 , -1.26478653529069 , + 3.39 , -1.29047203891782 , + 3.395 , -1.12256167350094 , + 3.4 , -0.78075489126115 , + 3.405 , -0.31359677016703 , + 3.41 , 0.21274034122224 , + 3.415 , 0.723339413347021 , + 3.42 , 1.14216320992711 , + 3.425 , 1.40285852862188 , + 3.43 , 1.46353765010519 , + 3.435 , 1.31751508169454 , + 3.44 , 0.990610982524745 , + 3.445 , 0.528518300724784 , + 3.45 , -1.201464116995880E-02 , + 3.455 , -0.56495490805526 , + 3.46 , -1.06256507808036 , + 3.465 , -1.45449004401942 , + 3.47 , -1.72216993561753 , + 3.475 , -1.87372425489139 , + 3.48 , -1.93012616321294 , + 3.485 , -1.92125770401275 , + 3.49 , -1.88683182264746 , + 3.495 , -1.86489427093378 , + 3.5 , -1.87314769209702 , + 3.505 , -1.90576881574645 , + 3.51 , -1.947112317286 , + 3.515 , -1.97949862409975 , + 3.52 , -1.97797423254897 , + 3.525 , -1.91218852417812 , + 3.53 , -1.76423764925703 , + 3.535 , -1.54024679422456 , + 3.54 , -1.25875344890035 , + 3.545 , -0.9338632056843 , + 3.55 , -0.57694094749828 , + 3.555 , -0.20814045746558 , + 3.56 , 0.146206363036127 , + 3.565 , 0.468653953534567 , + 3.57 , 0.754631835985132 , + 3.575 , 0.999185044322006 , + 3.58 , 1.18633789810153 , + 3.585 , 1.29531712809396 , + 3.59 , 1.31308664187438 , + 3.595 , 1.23731524907479 , + 3.6 , 1.07118836166498 , + 3.605 , 0.822464072088323 , + 3.61 , 0.509927368235254 , + 3.615 , 0.167608567620092 , + 3.62 , -0.16136132010127 , + 3.625 , -0.43756626339828 , + 3.63 , -0.63523583164368 , + 3.635 , -0.74542737572521 , + 3.64 , -0.7756133968174 , + 3.645 , -0.74811092815284 , + 3.65 , -0.69606885610044 , + 3.655 , -0.6565734770812 , + 3.66 , -0.66248883313473 , + 3.665 , -0.7327889886856 , + 3.67 , -0.86178796221599 , + 3.675 , -1.01484775035497 , + 3.68 , -1.13874812866412 , + 3.685 , -1.18063976569405 , + 3.69 , -1.10015331426255 , + 3.695 , -0.87258642642403 , + 3.7 , -0.49606882241743 , + 3.705 , -3.859866915145810E-03 , + 3.71 , 0.536274174652005 , + 3.715 , 1.04296495682297 , + 3.72 , 1.44309287260192 , + 3.725 , 1.67861157963259 , + 3.73 , 1.7100067792938 , + 3.735 , 1.52993945453465 , + 3.74 , 1.17332394495836 , + 3.745 , 0.705456146258253 , + 3.75 , 0.19881090381289 , + 3.755 , -0.27919234543845 , + 3.76 , -0.66960551503829 , + 3.765 , -0.93205155196248 , + 3.77 , -1.05626273217395 , + 3.775 , -1.05832450991158 , + 3.78 , -0.96616376411692 , + 3.785 , -0.81175596966687 , + 3.79 , -0.6282915868819 , + 3.795 , -0.43985996859902 , + 3.8 , -0.25160708755689 , + 3.805 , -5.670095344855360E-02 , + 3.81 , 0.149245250303935 , + 3.815 , 0.367246556878583 , + 3.82 , 0.6001728423305 , + 3.825 , 0.842651059699404 , + 3.83 , 1.06576976559939 , + 3.835 , 1.22584984073272 , + 3.84 , 1.29118905603104 , + 3.845 , 1.25131649498925 , + 3.85 , 1.10483834283469 , + 3.855 , 0.858719957928343 , + 3.86 , 0.546596899968826 , + 3.865 , 0.232913780073415 , + 3.87 , -1.178392373167330E-02 , + 3.875 , -0.13503158427521 , + 3.88 , -0.10474649816556 , + 3.885 , 8.615352677596511E-02 , + 3.89 , 0.410679548743155 , + 3.895 , 0.826698146053687 , + 3.9 , 1.26554832994177 , + 3.905 , 1.65499072160026 , + 3.91 , 1.92591491458393 , + 3.915 , 2.02174681879988 , + 3.92 , 1.91690039738994 , + 3.925 , 1.62485068724173 , + 3.93 , 1.1855690119834 , + 3.935 , 0.653037378513217 , + 3.94 , 9.668746640223920E-02 , + 3.945 , -0.4301741972333 , + 3.95 , -0.83059880381395 , + 3.955 , -1.06253651005356 , + 3.96 , -1.12343783668418 , + 3.965 , -1.02905594887957 , + 3.97 , -0.81438063696053 , + 3.975 , -0.53887343061785 , + 3.98 , -0.27199822870815 , + 3.985 , -6.791154597367660E-02 , + 3.99 , 4.530742217552380E-02 , + 3.995 , 6.262857784368379E-02 , + 4.0 , 2.441344328897610E-03 , + 4.005 , -9.190475922367920E-02 , + 4.01 , -0.16297517487801 , + 4.015 , -0.15723894800794 , + 4.02 , -3.537253515270430E-02 , + 4.025 , 0.193043922562747 , + 4.03 , 0.526357119583793 , + 4.035 , 0.929427363269694 , + 4.04 , 1.34182501632519 , + 4.045 , 1.69896106062951 , + 4.05 , 1.94147299764395 , + 4.055 , 2.02131168938189 , + 4.06 , 1.91405493567929 , + 4.065 , 1.62895808406502 , + 4.07 , 1.20381890102136 , + 4.075 , 0.692151048809337 , + 4.08 , 0.156757509395021 , + 4.085 , -0.38604102584051 , + 4.09 , -0.84133083525009 , + 4.095 , -1.156233699226 , + 4.1 , -1.33230861444598 , + 4.105 , -1.38570779035153 , + 4.11 , -1.34124970345719 , + 4.115 , -1.23546550701648 , + 4.12 , -1.10801235519435 , + 4.125 , -0.98248955079667 , + 4.13 , -0.86003296814087 , + 4.135 , -0.73178734822649 , + 4.14 , -0.59090783838188 , + 4.145 , -0.43318234968906 , + 4.15 , -0.25684880447788 , + 4.155 , -6.856986064204031E-02 , + 4.16 , 0.113175698843399 , + 4.165 , 0.263255109728613 , + 4.17 , 0.35752664561249 , + 4.175 , 0.378805103678297 , + 4.18 , 0.323547996037049 , + 4.185 , 0.206516861655614 , + 4.19 , 5.649526699216110E-02 , + 4.195 , -9.378626227851780E-02 , + 4.2 , -0.21317600878937 , + 4.205 , -0.27287940125587 , + 4.21 , -0.25114165876958 , + 4.215 , -0.14168231890677 , + 4.22 , 4.361065500048250E-02 , + 4.225 , 0.279918937448746 , + 4.23 , 0.535273378579502 , + 4.235 , 0.773588682574221 , + 4.24 , 0.958219914615338 , + 4.245 , 1.05647251768057 , + 4.25 , 1.0429998608356 , + 4.255 , 0.904048723430757 , + 4.26 , 0.64342045751792 , + 4.265 , 0.283827852947311 , + 4.27 , -0.13946358577039 , + 4.275 , -0.58422822501242 , + 4.28 , -1.00040723456331 , + 4.285 , -1.33261766567896 , + 4.29 , -1.53443838788264 , + 4.295 , -1.58333249912622 , + 4.3 , -1.48186835325815 , + 4.305 , -1.25134227914383 , + 4.31 , -0.93134131663624 , + 4.315 , -0.58023320392854 , + 4.32 , -0.263068523183 , + 4.325 , -3.234875382342560E-02 , + 4.33 , 8.104457813070970E-02 , + 4.335 , 6.646358030000100E-02 , + 4.34 , -6.520527065940920E-02 , + 4.345 , -0.27865084678943 , + 4.35 , -0.52301393304868 , + 4.355 , -0.75029273588902 , + 4.36 , -0.92586132464525 , + 4.365 , -1.02745479977821 , + 4.37 , -1.045887182644 , + 4.375 , -0.98998208526761 , + 4.38 , -0.88247620098788 , + 4.385 , -0.74513807964771 , + 4.39 , -0.589693305748 , + 4.395 , -0.4218623825717 , + 4.4 , -0.24559350524832 , + 4.405 , -5.960463612956680E-02 , + 4.41 , 0.142717207535869 , + 4.415 , 0.362879306116347 , + 4.42 , 0.588751862423607 , + 4.425 , 0.799650310566393 , + 4.43 , 0.976747652586761 , + 4.435 , 1.1062713323933 , + 4.44 , 1.17888982115871 , + 4.445 , 1.19440253536595 , + 4.45 , 1.16760308413961 , + 4.455 , 1.12503563953872 , + 4.46 , 1.09428815021162 , + 4.465 , 1.09605242115199 , + 4.47 , 1.141397648121 , + 4.475 , 1.22879693707608 , + 4.48 , 1.34085300252377 , + 4.485 , 1.44734590197994 , + 4.49 , 1.51600244532524 , + 4.495 , 1.52347176965462 , + 4.5 , 1.4600805519962 , + 4.505 , 1.32990917025988 , + 4.51 , 1.15031027736352 , + 4.515 , 0.950259774927611 , + 4.52 , 0.764000212508228 , + 4.525 , 0.620467212343643 , + 4.53 , 0.53443313966959 , + 4.535 , 0.504324479922065 , + 4.54 , 0.515518988342075 , + 4.545 , 0.5449123033391 , + 4.55 , 0.565643760216133 , + 4.555 , 0.553361701085439 , + 4.56 , 0.492730481489852 , + 4.565 , 0.380543114015636 , + 4.57 , 0.224809165664267 , + 4.575 , 4.198032082290820E-02 , + 4.58 , -0.14747370012324 , + 4.585 , -0.32583933056166 , + 4.59 , -0.48349824002692 , + 4.595 , -0.61801754775951 , + 4.6 , -0.72971208292477 , + 4.605 , -0.82083468227042 , + 4.61 , -0.89775066250987 , + 4.615 , -0.96888908984926 , + 4.62 , -1.0384220049282 , + 4.625 , -1.10412227179889 , + 4.63 , -1.16142632685637 , + 4.635 , -1.20605223114456 , + 4.64 , -1.23228150965333 , + 4.645 , -1.2330625103562 , + 4.65 , -1.20312802686153 , + 4.655 , -1.13793589958523 , + 4.66 , -1.0287141764878 , + 4.665 , -0.8641100498206 , + 4.67 , -0.63938852378214 , + 4.675 , -0.35979779312165 , + 4.68 , -3.418457890781780E-02 , + 4.685 , 0.32663500010105 , + 4.69 , 0.70029027164172 , + 4.695 , 1.04848934874391 , + 4.7 , 1.32926995685333 , + 4.705 , 1.5103149027497 , + 4.71 , 1.56674966292037 , + 4.715 , 1.47490809529175 , + 4.72 , 1.22042977817102 , + 4.725 , 0.812026061087399 , + 4.73 , 0.280340511193259 , + 4.735 , -0.25291232049697 , + 4.74 , -0.74295446485739 , + 4.745 , -1.21402870653543 , + 4.75 , -1.61401924449385 , + 4.755 , -1.89622337299338 , + 4.76 , -2.02674956179211 , + 4.765 , -1.98422913056168 , + 4.77 , -1.76288837183623 , + 4.775 , -1.38094808362694 , + 4.78 , -0.88180280078288 , + 4.785 , -0.32340693878301 , + 4.79 , 0.309775095794083 , + 4.795 , 0.96398882181726 , + 4.8 , 1.46521480566007 , + 4.805 , 1.77054065361263 , + 4.81 , 1.87515908448363 , + 4.815 , 1.80763374123846 , + 4.82 , 1.61871625340312 , + 4.825 , 1.37383254873989 , + 4.83 , 1.14323155673988 , + 4.835 , 0.984115330306988 , + 4.84 , 0.925398091665492 , + 4.845 , 0.966346779872473 , + 4.85 , 1.08319151549769 , + 4.855 , 1.23351422222229 , + 4.86 , 1.36203968864373 , + 4.865 , 1.41500821627328 , + 4.87 , 1.35632626255014 , + 4.875 , 1.17338649661648 , + 4.88 , 0.873766424591019 , + 4.885 , 0.482332773802851 , + 4.89 , 3.923546396876550E-02 , + 4.895 , -0.22463035892901 , + 4.9 , -0.44775774321397 , + 4.905 , -0.63337252960387 , + 4.91 , -0.77214474283379 , + 4.915 , -0.86139644715887 , + 4.92 , -0.90539713757332 , + 4.925 , -0.91457475953945 , + 4.93 , -0.90292943826226 , + 4.935 , -0.88570153051275 , + 4.94 , -0.87839307255918 , + 4.945 , -0.89582516241653 , + 4.95 , -0.95014576706764 , + 4.955 , -1.0485044185337 , + 4.96 , -1.1912694657772 , + 4.965 , -1.3708025639651 , + 4.97 , -1.57077187288448 , + 4.975 , -1.76663217835511 , + 4.98 , -1.92803570312605 , + 4.985 , -2.02359808191781 , + 4.99 , -2.0273751484136 , + 4.995 , -1.9250033514058 , + 5.0 , -1.71741034508892 , + 5.005 , -1.42182210128631 , + 5.01 , -1.07072647445332 , + 5.015 , -0.70800393596021 , + 5.02 , -0.38102872779966 , + 5.025 , -0.13042197488723 , + 5.03 , 3.718076749748670E-02 , + 5.035 , 0.111181074997115 , + 5.04 , 1.189110285104030E-02 , + 5.045 , -0.20207868848779 , + 5.05 , -0.44910010485315 , + 5.055 , -0.64276640560255 , + 5.06 , -0.71152270492906 , + 5.065 , -0.61247600528197 , + 5.07 , -0.33784697642092 , + 5.075 , 8.416359716705800E-02 , + 5.08 , 0.593871386434318 , + 5.085 , 1.11066790591664 , + 5.09 , 1.547857061782 , + 5.095 , 1.82798847499016 , + 5.1 , 1.89521989018272 , + 5.105 , 1.72255076224409 , + 5.11 , 1.31357650362981 , + 5.115 , 0.700681089848237 , + 5.12 , -3.944101274735180E-02 , + 5.125 , -0.57538253938727 , + 5.13 , -1.09801528037525 , + 5.135 , -1.54898464132246 , + 5.14 , -1.87419746618154 , + 5.145 , -2.02778376701628 , + 5.15 , -1.97724411607912 , + 5.155 , -1.70971194891691 , + 5.16 , -1.23638258073101 , + 5.165 , -0.59315494390597 , + 5.17 , 0.111368648891046 , + 5.175 , 0.663169389460638 , + 5.18 , 1.18144631611042 , + 5.185 , 1.60890018466206 , + 5.19 , 1.8979822410482 , + 5.195 , 2.01808652053979 , + 5.2 , 1.96085818554624 , + 5.205 , 1.74218321821589 , + 5.21 , 1.39935953655912 , + 5.215 , 0.984200755295425 , + 5.22 , 0.55469135825056 , + 5.225 , 0.166760087786826 , + 5.23 , -0.29010383111112 , + 5.235 , -0.69805571505204 , + 5.24 , -0.82852798007756 , + 5.245 , -0.70078564730017 , + 5.25 , -0.3628421318389 , + 5.255 , 7.584234896818380E-02 , + 5.26 , 0.43610921884854 , + 5.265 , 0.80338816570313 , + 5.27 , 1.14583363535399 , + 5.275 , 1.44233546379898 , + 5.28 , 1.68096745166101 , + 5.285 , 1.85664177773435 , + 5.29 , 1.96856248638458 , + 5.295 , 2.01783075579683 , + 5.3 , 2.00659270193592 , + 5.305 , 1.93938767266716 , + 5.31 , 1.82500672559004 , + 5.315 , 1.67686130322037 , + 5.32 , 1.5118566159347 , + 5.325 , 1.34860724410237 , + 5.33 , 1.20475926474899 , + 5.335 , 1.09288033252557 , + 5.34 , 1.01607186043109 , + 5.345 , 0.965585517364128 , + 5.35 , 0.921875442510843 , + 5.355 , 0.858856383267098 , + 5.36 , 0.750174073799282 , + 5.365 , 0.575950824274314 , + 5.37 , 0.328597045194569 , + 5.375 , 1.652082973209100E-02 , + 5.38 , -0.50276970745072 , + 5.385 , -1.03563631031452 , + 5.39 , -1.50490953601753 , + 5.395 , -1.84994677847168 , + 5.4 , -2.02843329407602 , + 5.405 , -2.02545789978173 , + 5.41 , -1.85714442697612 , + 5.415 , -1.56774223620682 , + 5.42 , -1.22052435654413 , + 5.425 , -0.88506969766425 , + 5.43 , -0.62375651367727 , + 5.435 , -0.47941781141452 , + 5.44 , -0.46672787176114 , + 5.445 , -0.57069258501391 , + 5.45 , -0.75256544897363 , + 5.455 , -0.95943306586182 , + 5.46 , -1.13415327472143 , + 5.465 , -1.22591171353667 , + 5.47 , -1.2008821223853 , + 5.475 , -1.04867466773548 , + 5.48 , -0.7816480899877 , + 5.485 , -0.43025221187204 , + 5.49 , -3.849293308865140E-02 , + 5.495 , 0.351248620973817 , + 5.5 , 0.678851223955433 , + 5.505 , 0.903561274568929 , + 5.51 , 1.000825087451 , + 5.515 , 0.960934560706297 , + 5.52 , 0.78992867723245 , + 5.525 , 0.511317876998132 , + 5.53 , 0.162760320816359 , + 5.535 , -0.15233717951736 , + 5.54 , -0.408210240848 , + 5.545 , -0.62888561745421 , + 5.55 , -0.79619865273995 , + 5.555 , -0.90334422649211 , + 5.56 , -0.957273231721 , + 5.565 , -0.97632112916908 , + 5.57 , -0.98529324126005 , + 5.575 , -1.01088001195299 , + 5.58 , -1.07663632540647 , + 5.585 , -1.1964450302827 , + 5.59 , -1.36885544627383 , + 5.595 , -1.57548223311668 , + 5.6 , -1.78343920945552 , + 5.605 , -1.94998845541488 , + 5.61 , -2.02894698358654 , + 5.615 , -1.97893684719994 , + 5.62 , -1.77192812280346 , + 5.625 , -1.39963819951885 , + 5.63 , -0.87646499571534 , + 5.635 , -0.23861147042705 , + 5.64 , 0.336218007155657 , + 5.645 , 0.847327478768983 , + 5.65 , 1.30857622082849 , + 5.655 , 1.67664606685409 , + 5.66 , 1.91879317489308 , + 5.665 , 2.01692172130926 , + 5.67 , 1.96853013034153 , + 5.675 , 1.78510825075991 , + 5.68 , 1.4896405295593 , + 5.685 , 1.11350916384325 , + 5.69 , 0.692073407024996 , + 5.695 , 0.259804585073245 , + 5.7 , -0.24312332096602 , + 5.705 , -0.83740028991543 , + 5.71 , -1.32862161402076 , + 5.715 , -1.69669262414581 , + 5.72 , -1.93128745142237 , + 5.725 , -2.02921997287969 , + 5.73 , -1.99337280480397 , + 5.735 , -1.83373410433008 , + 5.74 , -1.56747293050187 , + 5.745 , -1.21724094498849 , + 5.75 , -0.81052148648056 , + 5.755 , -0.38038326455022 , + 5.76 , 4.429619989889450E-02 , + 5.765 , 0.482041333875258 , + 5.77 , 0.827113852485307 , + 5.775 , 1.05562255275457 , + 5.78 , 1.15574510229285 , + 5.785 , 1.13102185729002 , + 5.79 , 1.00111402711585 , + 5.795 , 0.796402227894675 , + 5.8 , 0.550299036643284 , + 5.805 , 0.294746376632263 , + 5.81 , 5.779627739619110E-02 , + 5.815 , -0.14033970324891 , + 5.82 , -0.29057904479289 , + 5.825 , -0.39279585396293 , + 5.83 , -0.4494482504971 , + 5.835 , -0.46100119177358 , + 5.84 , -0.42521937611264 , + 5.845 , -0.3375317644422 , + 5.85 , -0.19158847654649 , + 5.855 , 1.752214546441880E-02 , + 5.86 , 0.287160001209617 , + 5.865 , 0.602028255467961 , + 5.87 , 0.933254236049531 , + 5.875 , 1.24149905843902 , + 5.88 , 1.48303299176761 , + 5.885 , 1.61843953382086 , + 5.89 , 1.62241665153411 , + 5.895 , 1.49156853196882 , + 5.9 , 1.24765942303674 , + 5.905 , 0.935345755846739 , + 5.91 , 0.614175990416646 , + 5.915 , 0.345931028275661 , + 5.92 , 0.180659960734569 , + 5.925 , 0.145383600846828 , + 5.93 , 0.237765412366942 , + 5.935 , 0.425793201109318 , + 5.94 , 0.654468234473261 , + 5.945 , 0.858677159866798 , + 5.95 , 0.978207334350809 , + 5.955 , 0.970329031591707 , + 5.96 , 0.818026030367143 , + 5.965 , 0.533251338659083 , + 5.97 , 0.15356868640373 , + 5.975 , -0.26839144886352 , + 5.98 , -0.67878215135657 , + 5.985 , -1.03400683986537 , + 5.99 , -1.3073585979251 , + 5.995 , -1.49178002375022 , + 6.0 , -1.59881218617846 , + 6.005 , -1.65263612785215 , + 6.01 , -1.68040775595467 , + 6.015 , -1.70326118069031 , + 6.02 , -1.73147514087517 , + 6.025 , -1.76409391726272 , + 6.03 , -1.79154678107851 , + 6.035 , -1.80004486312369 , + 6.04 , -1.77657113231061 , + 6.045 , -1.71309083748955 , + 6.05 , -1.60890845106533 , + 6.055 , -1.47045377157793 , + 6.06 , -1.30823176663841 , + 6.065 , -1.13218678075657 , + 6.07 , -0.94831725641373 , + 6.075 , -0.7582938943429 , + 6.08 , -0.56105916215743 , + 6.085 , -0.35465660035081 , + 6.09 , -0.1384716720616 , + 6.095 , 8.181401775998960E-02 , + 6.1 , 0.295120583821675 , + 6.105 , 0.488813785339096 , + 6.11 , 0.645978019217284 , + 6.115 , 0.751956445909178 , + 6.12 , 0.797070178696218 , + 6.125 , 0.778938415578525 , + 6.13 , 0.703933126539259 , + 6.135 , 0.586193282063444 , + 6.14 , 0.444346814137257 , + 6.145 , 0.29825595848257 , + 6.15 , 0.16716086262001 , + 6.155 , 6.845201123569530E-02 , + 6.16 , 1.638790200297000E-02 , + 6.165 , 2.138979757918980E-02 , + 6.17 , 9.013446340544370E-02 , + 6.175 , 0.225364316943996 , + 6.18 , 0.424627726925139 , + 6.185 , 0.678666340108451 , + 6.19 , 0.970459569802561 , + 6.195 , 1.27533903222018 , + 6.2 , 1.56265390764561 , + 6.205 , 1.79967884086063 , + 6.21 , 1.95730777614782 , + 6.215 , 2.01568092318868 , + 6.22 , 1.9680798901563 , + 6.225 , 1.82260275300508 , + 6.23 , 1.6012628707179 , + 6.235 , 1.33584067303513 , + 6.24 , 1.06088096670087 , + 6.245 , 0.806020651973241 , + 6.25 , 0.590240383625112 , + 6.255 , 0.419170058894404 , + 6.26 , 0.285567810216695 , + 6.265 , 0.172882474189092 , + 6.27 , 6.141521693570270E-02 , + 6.275 , -4.100655746000240E-02 , + 6.28 , -0.12748144658853 , + 6.285 , -0.22402606929835 , + 6.29 , -0.32266457931099 , + 6.295 , -0.41245768954213 , + 6.3 , -0.48300494677694 , + 6.305 , -0.5281469572368 , + 6.31 , -0.54867239852271 , + 6.315 , -0.55291028225442 , + 6.32 , -0.55498836852966 , + 6.325 , -0.57168033795742 , + 6.33 , -0.61890124937392 , + 6.335 , -0.70832720330432 , + 6.34 , -0.8444688842815 , + 6.345 , -1.02312789012362 , + 6.35 , -1.23201420479741 , + 6.355 , -1.45302869056683 , + 6.36 , -1.66483750094807 , + 6.365 , -1.84512502578643 , + 6.37 , -1.97287391729285 , + 6.375 , -2.03065548439675 , + 6.38 , -2.00620454087577 , + 6.385 , -1.89315139172675 , + 6.39 , -1.69175663119939 , + 6.395 , -1.40995495579992 , + 6.4 , -1.06376441111769 , + 6.405 , -0.67620069765757 , + 6.41 , -0.27510795942141 , + 6.415 , 0.196812130002227 , + 6.42 , 0.789662759769171 , + 6.425 , 1.26662960840841 , + 6.43 , 1.6072638071671 , + 6.435 , 1.81182394487741 , + 6.44 , 1.89972228643561 , + 6.445 , 1.9047619217593 , + 6.45 , 1.86751034078394 , + 6.455 , 1.8254292028055 , + 6.46 , 1.80357147143536 , + 6.465 , 1.80953648503866 , + 6.47 , 1.83384689586528 , + 6.475 , 1.8545291406415 , + 6.48 , 1.84468010904891 , + 6.485 , 1.78185447755559 , + 6.49 , 1.65634384795161 , + 6.495 , 1.47475850013982 , + 6.5 , 1.25778784095604 , + 6.505 , 1.03382280148781 , + 6.51 , 0.830377669084782 , + 6.515 , 0.664847688813952 , + 6.52 , 0.537441337312092 , + 6.525 , 0.429805314578715 , + 6.53 , 0.31046587513464 , + 6.535 , 0.1447657890999 , + 6.54 , -9.382243026102850E-02 , + 6.545 , -0.41334712070585 , + 6.55 , -0.79651775006838 , + 6.555 , -1.20028045361043 , + 6.56 , -1.56291508214219 , + 6.565 , -1.81661688690887 , + 6.57 , -1.90206035531056 , + 6.575 , -1.7817477770441 , + 6.58 , -1.44921463753588 , + 6.585 , -0.93148892423534 , + 6.59 , -0.28406148521622 , + 6.595 , 0.323315074176515 , + 6.6 , 0.852343584238104 , + 6.605 , 1.31274405752464 , + 6.61 , 1.66746511449112 , + 6.615 , 1.89908333611956 , + 6.62 , 2.00928735485692 , + 6.625 , 2.01484159347826 , + 6.63 , 1.94157792559844 , + 6.635 , 1.81783611017065 , + 6.64 , 1.66894503437948 , + 6.645 , 1.51424202651612 , + 6.65 , 1.36676756429498 , + 6.655 , 1.23440796614096 , + 6.66 , 1.12141683734346 , + 6.665 , 1.03005163859298 , + 6.67 , 0.961856012808879 , + 6.675 , 0.917594207115419 , + 6.68 , 0.895802572654735 , + 6.685 , 0.891399934871178 , + 6.69 , 0.895639060058472 , + 6.695 , 0.897175457172006 , + 6.7 , 0.883661601343515 , + 6.705 , 0.844008961722013 , + 6.71 , 0.77132601406367 , + 6.715 , 0.665213447750178 , + 6.72 , 0.531957875807601 , + 6.725 , 0.382692370009228 , + 6.73 , 0.230704777961798 , + 6.735 , 8.848409780228460E-02 , + 6.74 , -4.320967298403890E-02 , + 6.745 , -0.1762892860789 , + 6.75 , -0.28784586821218 , + 6.755 , -0.38905860495499 , + 6.76 , -0.49291382383649 , + 6.765 , -0.61009214038178 , + 6.77 , -0.74528548081034 , + 6.775 , -0.89462751554703 , + 6.78 , -1.04544755808821 , + 6.785 , -1.17892732569852 , + 6.79 , -1.27460153013389 , + 6.795 , -1.31507899117539 , + 6.8 , -1.28996744751844 , + 6.805 , -1.19853880216558 , + 6.81 , -1.0504463612584 , + 6.815 , -0.86390673664632 , + 6.82 , -0.66172430237656 , + 6.825 , -0.46650461944826 , + 6.83 , -0.29641016005237 , + 6.835 , -0.16215486668974 , + 6.84 , -6.552041776213589E-02 , + 6.845 , 2.987151640449150E-04 , + 6.85 , 4.839493719297370E-02 , + 6.855 , 9.446598470843660E-02 , + 6.86 , 0.152946671436979 , + 6.865 , 0.234067255310907 , + 6.87 , 0.342244784612781 , + 6.875 , 0.475796904621799 , + 6.88 , 0.627950076248601 , + 6.885 , 0.788973056491094 , + 6.89 , 0.948691666991149 , + 6.895 , 1.09834384227231 , + 6.9 , 1.23115050816982 , + 6.905 , 1.34171557597024 , + 6.91 , 1.42465179927775 , + 6.915 , 1.47287601846948 , + 6.92 , 1.47626092610496 , + 6.925 , 1.42154296744535 , + 6.93 , 1.29406455566583 , + 6.935 , 1.08117541948277 , + 6.94 , 0.776554035067551 , + 6.945 , 0.384383520531035 , + 6.95 , -7.294167926560280E-02 , + 6.955 , -0.53864400514197 , + 6.96 , -1.00153859379899 , + 6.965 , -1.41800783516812 , + 6.97 , -1.7468581519585 , + 6.975 , -1.95670089086248 , + 6.98 , -2.03182599021495 , + 6.985 , -1.97504743961906 , + 6.99 , -1.80676558399137 , + 6.995 , -1.5604834986916 , + 7.0 , -1.27576644446333 , + 7.005 , -0.9903221748174 , + 7.01 , -0.73330353810734 , + 7.015 , -0.52160326879535 , + 7.02 , -0.35985223488993 , + 7.025 , -0.24369954400838 , + 7.03 , -0.16525998770838 , + 7.035 , -0.11901231195031 , + 7.04 , -0.10598389561423 , + 7.045 , -0.13446900972305 , + 7.05 , -0.21699230917524 , + 7.055 , -0.36458839091288 , + 7.06 , -0.58005276943233 , + 7.065 , -0.85208512054878 , + 7.07 , -1.15259800704237 , + 7.075 , -1.43896995914881 , + 7.08 , -1.66118309359685 , + 7.085 , -1.771927531099 , + 7.09 , -1.73721975477998 , + 7.095 , -1.54526433804976 , + 7.1 , -1.21113953262348 , + 7.105 , -0.7752249017621 , + 7.11 , -0.29527299039846 , + 7.115 , 0.173294693493191 , + 7.12 , 0.57635137765972 , + 7.125 , 0.862335395139578 , + 7.13 , 1.01919271305477 , + 7.135 , 1.06290746127159 , + 7.14 , 1.03167712327493 , + 7.145 , 0.975104812475545 , + 7.15 , 0.94186991196106 , + 7.155 , 0.968697291206275 , + 7.16 , 1.07242991307441 , + 7.165 , 1.24693307983413 , + 7.17 , 1.46588613539846 , + 7.175 , 1.69040391004537 , + 7.18 , 1.87856926470802 , + 7.185 , 1.9942412785979 , + 7.19 , 2.01380495894182 , + 7.195 , 1.93002933646123 , + 7.2 , 1.75219708416187 , + 7.205 , 1.50259348018555 , + 7.21 , 1.21097997176944 , + 7.215 , 0.908929916225265 , + 7.22 , 0.624987318443838 , + 7.225 , 0.380818385977012 , + 7.23 , 0.188682790341481 , + 7.235 , 5.054908150564660E-02 , + 7.24 , -4.224733175465410E-02 , + 7.245 , -0.10533217769884 , + 7.25 , -0.15872049577028 , + 7.255 , -0.22626933934594 , + 7.26 , -0.32933473878503 , + 7.265 , -0.48196141281812 , + 7.27 , -0.68656470353389 , + 7.275 , -0.93107691321487 , + 7.28 , -1.18865855652987 , + 7.285 , -1.420854392386 , + 7.29 , -1.58410377773137 , + 7.295 , -1.63852514448294 , + 7.3 , -1.55725203777855 , + 7.305 , -1.33440140393595 , + 7.31 , -0.98961414150744 , + 7.315 , -0.56741260276393 , + 7.32 , -0.13082880911958 , + 7.325 , 0.249583666745638 , + 7.33 , 0.508940072170202 , + 7.335 , 0.600662717049061 , + 7.34 , 0.5059779991769 , + 7.345 , 0.238142376340394 , + 7.35 , -0.15979854274957 , + 7.355 , -0.62330642360817 , + 7.36 , -1.07861985315351 , + 7.365 , -1.45613573961171 , + 7.37 , -1.70221047327019 , + 7.375 , -1.78733777799186 , + 7.38 , -1.70935128300863 , + 7.385 , -1.49139661468471 , + 7.39 , -1.17576612947581 , + 7.395 , -0.81553092872387 , + 7.4 , -0.46579815462372 , + 7.405 , -0.17584397718572 , + 7.41 , 1.695055532407140E-02 , + 7.415 , 9.080438530410280E-02 , + 7.42 , 4.100203845188310E-02 , + 7.425 , -0.12015714114647 , + 7.43 , -0.36451642152235 , + 7.435 , -0.65063615988914 , + 7.44 , -0.92820901616803 , + 7.445 , -1.14411024994249 , + 7.45 , -1.2495457268474 , + 7.455 , -1.20784941543681 , + 7.46 , -1.00217372922289 , + 7.465 , -0.64135799082343 , + 7.47 , -0.16185956349448 , + 7.475 , 0.375443341531982 , + 7.48 , 0.893242359584305 , + 7.485 , 1.30942170236106 , + 7.49 , 1.55069511538195 , + 7.495 , 1.56597687306026 , + 7.5 , 1.33649434622083 , + 7.505 , 0.880087983425295 , + 7.51 , 0.248772549844589 , + 7.515 , -0.36466467822546 , + 7.52 , -0.91944206639744 , + 7.525 , -1.41086648314942 , + 7.53 , -1.78197182048109 , + 7.535 , -1.99448021035504 , + 7.54 , -2.03276742886028 , + 7.545 , -1.9038540437772 , + 7.55 , -1.63408290724591 , + 7.555 , -1.26366851276266 , + 7.56 , -0.84036300953546 , + 7.565 , -0.41319072336647 , + 7.57 , -2.695184824283270E-02 , + 7.575 , 0.376706658165673 , + 7.58 , 0.651108722060469 , + 7.585 , 0.775943751253261 , + 7.59 , 0.755597751751617 , + 7.595 , 0.613374035034045 , + 7.6 , 0.389100193892965 , + 7.605 , 0.134140214335999 , + 7.61 , -9.593512494436110E-02 , + 7.615 , -0.25014262596395 , + 7.62 , -0.29113724407252 , + 7.625 , -0.20287737386171 , + 7.63 , 5.024227092122790E-03 , + 7.635 , 0.297903261089418 , + 7.64 , 0.622107890736794 , + 7.645 , 0.91558081793758 , + 7.65 , 1.12076183929425 , + 7.655 , 1.19700603742361 , + 7.66 , 1.12967888152307 , + 7.665 , 0.933743975370447 , + 7.67 , 0.650793261469538 , + 7.675 , 0.339973230252299 , + 7.68 , 6.485809767286120E-02 , + 7.685 , -0.12047151548951 , + 7.69 , -0.18271341139574 , + 7.695 , -0.11542038316497 , + 7.7 , 6.117124311775080E-02 , + 7.705 , 0.306221765396461 , + 7.71 , 0.568625694223555 , + 7.715 , 0.79886093305278 , + 7.72 , 0.959184513633666 , + 7.725 , 1.02975813458714 , + 7.73 , 1.00975707269538 , + 7.735 , 0.913870269761431 , + 7.74 , 0.765608368548335 , + 7.745 , 0.589594520216864 , + 7.75 , 0.405299730586112 , + 7.755 , 0.223985767660469 , + 7.76 , 4.920974997763450E-02 , + 7.765 , -0.11994024975627 , + 7.77 , -0.28424112296356 , + 7.775 , -0.43999294669787 , + 7.78 , -0.57663798061898 , + 7.785 , -0.67751213622858 , + 7.79 , -0.72360079867587 , + 7.795 , -0.69901457723046 , + 7.8 , -0.59650776204881 , + 7.805 , -0.42155886366402 , + 7.81 , -0.19380300792328 , + 7.815 , 5.489933475191600E-02 , + 7.82 , 0.285466317840837 , + 7.825 , 0.458377987772727 , + 7.83 , 0.540543411689915 , + 7.835 , 0.510857284716815 , + 7.84 , 0.363486292918927 , + 7.845 , 0.108336402431131 , + 7.85 , -0.21209396424761 , + 7.855 , -0.56957977141521 , + 7.86 , -0.94077073678275 , + 7.865 , -1.29262615047061 , + 7.87 , -1.59622106208727 , + 7.875 , -1.82918316989524 , + 7.88 , -1.97699031089989 , + 7.885 , -2.03327946447786 , + 7.89 , -1.99933934346025 , + 7.895 , -1.88300955675939 , + 7.9 , -1.69721418310355 , + 7.905 , -1.45829064978291 , + 7.91 , -1.18410498022345 , + 7.915 , -0.8919394708508 , + 7.92 , -0.59649837620085 , + 7.925 , -0.30856724453543 , + 7.93 , -3.473084459177880E-02 , + 7.935 , 0.243954038684612 , + 7.94 , 0.505067577023267 , + 7.945 , 0.74523171014185 , + 7.95 , 0.961076322702563 , + 7.955 , 1.14544017577101 , + 7.96 , 1.28755260199966 , + 7.965 , 1.37508301728453 , + 7.97 , 1.39752728794968 , + 7.975 , 1.35018389601987 , + 7.98 , 1.23776787698572 , + 7.985 , 1.07653932806098 , + 7.99 , 0.893865005632781 , + 7.995 , 0.724806073674302 , + 8.0 , 0.606180934525952 , + 8.005 , 0.569233587341791 , + 8.01 , 0.632383043958699 , + 8.015 , 0.795725327814524 , + 8.02 , 1.03874194319127 , + 8.025 , 1.32196705023762 , + 8.03 , 1.59246805399968 , + 8.035 , 1.79229440498998 , + 8.04 , 1.86849022149291 , + 8.045 , 1.78281948278322 , + 8.05 , 1.51926230063055 , + 8.055 , 1.08785213984058 , + 8.06 , 0.524349594247236 , + 8.065 , -0.1140897577962 , + 8.07 , -0.75657207669552 , + 8.075 , -1.32834364834345 , + 8.08 , -1.76124306233852 , + 8.085 , -2.00310207974856 , + 8.09 , -2.02480910234302 , + 8.095 , -1.82430118945956 , + 8.1 , -1.42701906953591 , + 8.105 , -0.88275056011672 , + 8.11 , -0.25930710346958 , + 8.115 , 0.36611395388268 , + 8.12 , 0.916779579720004 , + 8.125 , 1.32634332320688 , + 8.13 , 1.54748990874522 , + 8.135 , 1.55804957216978 , + 8.14 , 1.36358979345776 , + 8.145 , 0.996118542284482 , + 8.15 , 0.509028622424576 , + 8.155 , -3.108833671467930E-02 , + 8.16 , -0.55458355458891 , + 8.165 , -0.9992113406596 , + 8.17 , -1.31909921378195 , + 8.175 , -1.4907344205054 , + 8.18 , -1.51500626604052 , + 8.185 , -1.41506172917135 , + 8.19 , -1.23045719608832 , + 8.195 , -1.00875563741852 , + 8.2 , -0.79618535909745 , + 8.205 , -0.62910374181022 , + 8.21 , -0.52781524086439 , + 8.215 , -0.49375763302869 , + 8.22 , -0.51036868088539 , + 8.225 , -0.54721127046085 , + 8.23 , -0.56640455149806 , + 8.235 , -0.5300607346312 , + 8.24 , -0.40739746710395 , + 8.245 , -0.18031656379607 , + 8.25 , 9.909295562647380E-02 , + 8.255 , 0.384178096593259 , + 8.26 , 0.711568797471058 , + 8.265 , 1.05465985685733 , + 8.27 , 1.38307322715161 , + 8.275 , 1.66640133480447 , + 8.28 , 1.87778042356214 , + 8.285 , 1.99690726227749 , + 8.29 , 2.01218574892656 , + 8.295 , 1.9218468256107 , + 8.3 , 1.73397654400921 , + 8.305 , 1.4654715893691 , + 8.31 , 1.14002097734659 , + 8.315 , 0.785289540807961 , + 8.32 , 0.429654714191936 , + 8.325 , 9.887434390542030E-02 , + 8.33 , -0.27373446466779 , + 8.335 , -0.61453278823147 , + 8.34 , -0.86361514651737 , + 8.345 , -1.02764207046752 , + 8.35 , -1.12312770730449 , + 8.355 , -1.17242345160079 , + 8.36 , -1.19890949112902 , + 8.365 , -1.22231476786338 , + 8.37 , -1.25506074091502 , + 8.375 , -1.30037291926648 , + 8.38 , -1.35246560106362 , + 8.385 , -1.39867274893801 , + 8.39 , -1.42300013455657 , + 8.395 , -1.41027137760835 , + 8.4 , -1.34988412628361 , + 8.405 , -1.23833354826905 , + 8.41 , -1.08003474781669 , + 8.415 , -0.8863811686465 , + 8.42 , -0.67334691448991 , + 8.425 , -0.45824149658395 , + 8.43 , -0.25648271091485 , + 8.435 , -7.919497664086800E-02 , + 8.44 , 6.790702566583660E-02 , + 8.445 , 0.184336104551994 , + 8.45 , 0.273607496426052 , + 8.455 , 0.341427765954767 , + 8.46 , 0.393859568348449 , + 8.465 , 0.436054008314734 , + 8.47 , 0.471822329873715 , + 8.475 , 0.503940686983312 , + 8.48 , 0.534766790770446 , + 8.485 , 0.566720547413461 , + 8.49 , 0.602204083610117 , + 8.495 , 0.642759211345947 , + 8.5 , 0.687546596661957 , + 8.505 , 0.73161370540631 , + 8.51 , 0.764633590722345 , + 8.515 , 0.770779801924118 , + 8.52 , 0.730226474533298 , + 8.525 , 0.622364880535585 , + 8.53 , 0.430299195926097 , + 8.535 , 0.145690142921501 , + 8.54 , -0.1875029917819 , + 8.545 , -0.54835468448798 , + 8.55 , -0.93829077724458 , + 8.555 , -1.32093112448324 , + 8.56 , -1.65568314187632 , + 8.565 , -1.90374313930578 , + 8.57 , -2.03414217931564 , + 8.575 , -2.02871594615485 , + 8.58 , -1.88502979034511 , + 8.585 , -1.61666670363564 , + 8.59 , -1.25090542907548 , + 8.595 , -0.82439719072454 , + 8.6 , -0.3777961843308 , + 8.605 , 5.997342456618780E-02 , + 8.61 , 0.498580351025926 , + 8.615 , 0.848666797179574 , + 8.62 , 1.09518857615416 , + 8.625 , 1.23554791479412 , + 8.63 , 1.2781763580922 , + 8.635 , 1.2403900007702 , + 8.64 , 1.14586627728766 , + 8.645 , 1.02207806372073 , + 8.65 , 0.897804023904626 , + 8.655 , 0.800618191332478 , + 8.66 , 0.754133205007585 , + 8.665 , 0.775081318262375 , + 8.67 , 0.87060821275674 , + 8.675 , 1.03627950859147 , + 8.68 , 1.25531150972849 , + 8.685 , 1.49959206680695 , + 8.69 , 1.73283203030496 , + 8.695 , 1.91564235877547 , + 8.7 , 2.01171708813146 , + 8.705 , 1.99404478322172 , + 8.71 , 1.85004122617725 , + 8.715 , 1.5844790314963 , + 8.72 , 1.21937543098226 , + 8.725 , 0.790685383472318 , + 8.73 , 0.34253999395618 , + 8.735 , -8.315108890721259E-02 , + 8.74 , -0.45782997432698 , + 8.745 , -0.73560630397696 , + 8.75 , -0.90358121095544 , + 8.755 , -0.96494822819405 , + 8.76 , -0.93630744097796 , + 8.765 , -0.84299937779174 , + 8.77 , -0.71350666162014 , + 8.775 , -0.57402043454602 , + 8.78 , -0.44427168990607 , + 8.785 , -0.33542713208977 , + 8.79 , -0.2501116833682 , + 8.795 , -0.18401361018569 , + 8.8 , -0.12842784460002 , + 8.805 , -7.314603730146210E-02 , + 8.81 , -9.074234322190291E-03 , + 8.815 , 7.000693452309770E-02 , + 8.82 , 0.166710878734688 , + 8.825 , 0.280110709519932 , + 8.83 , 0.406273894637497 , + 8.835 , 0.539123020255816 , + 8.84 , 0.671480131538164 , + 8.845 , 0.796107038123461 , + 8.85 , 0.906615981394394 , + 8.855 , 0.998324490593576 , + 8.86 , 1.0690620538107 , + 8.865 , 1.11975528767815 , + 8.87 , 1.15453246345251 , + 8.875 , 1.18023682665442 , + 8.88 , 1.20532586633037 , + 8.885 , 1.23820591293966 , + 8.89 , 1.28520280175297 , + 8.895 , 1.3486570631952 , + 8.9 , 1.42571219461991 , + 8.905 , 1.50820033663049 , + 8.91 , 1.58374708347145 , + 8.915 , 1.63800541668437 , + 8.92 , 1.65764589236558 , + 8.925 , 1.63341505537543 , + 8.93 , 1.5624359419512 , + 8.935 , 1.44906883520367 , + 8.94 , 1.30406714173948 , + 8.945 , 1.14214506133789 , + 8.95 , 0.97845385721763 , + 8.955 , 0.824773099970328 , + 8.96 , 0.686415293227468 , + 8.965 , 0.560675032421674 , + 8.97 , 0.437346493634863 , + 8.975 , 0.301223152764708 , + 8.98 , 0.136102516376474 , + 8.985 , -7.065849555314389E-02 , + 8.99 , -0.32407738413447 , + 8.995 , -0.61898581453294 , + 9.0 , -0.93960037368359 , + 9.005 , -1.26143943272218 , + 9.01 , -1.55516650644025 , + 9.015 , -1.79156612412015 , + 9.02 , -1.94652674681638 , + 9.025 , -2.00503791616427 , + 9.03 , -1.96340298656283 , + 9.035 , -1.82929859570769 , + 9.04 , -1.61975611512981 , + 9.045 , -1.35763976380722 , + 9.05 , -1.06749188919142 , + 9.055 , -0.77165747380896 , + 9.06 , -0.48743715471134 , + 9.065 , -0.22573691716227 , + 9.07 , 8.680561556133970E-03 , + 9.075 , 0.215640087376458 , + 9.08 , 0.397259171267499 , + 9.085 , 0.555581085303924 , + 9.09 , 0.690729679309828 , + 9.095 , 0.800029757983254 , + 9.1 , 0.878247351202657 , + 9.105 , 0.91878759810445 , + 9.11 , 0.915444383097841 , + 9.115 , 0.864214490635585 , + 9.12 , 0.76472553582975 , + 9.125 , 0.620899809131162 , + 9.13 , 0.440670714935382 , + 9.135 , 0.234785445409552 , + 9.14 , 1.501866477042620E-02 , + 9.145 , -0.16256660035877 , + 9.15 , -0.33008216119127 , + 9.155 , -0.49037224168296 , + 9.16 , -0.64324845085619 , + 9.165 , -0.79113983805113 , + 9.17 , -0.93796449486453 , + 9.175 , -1.0876496844508 , + 9.18 , -1.24257624122444 , + 9.185 , -1.40228132491324 , + 9.19 , -1.56269378306469 , + 9.195 , -1.71610185022193 , + 9.2 , -1.85187081485719 , + 9.205 , -1.95781829391389 , + 9.21 , -2.02202032577224 , + 9.215 , -2.03476784125131 , + 9.22 , -1.99032018745331 , + 9.225 , -1.88813289198619 , + 9.23 , -1.73333557866961 , + 9.235 , -1.53634649422576 , + 9.24 , -1.31166062827625 , + 9.245 , -1.075970419663 , + 9.25 , -0.84593818781158 , + 9.255 , -0.63597140868637 , + 9.26 , -0.4563931782957 , + 9.265 , -0.31231411198407 , + 9.27 , -0.20343660584305 , + 9.275 , -0.12481923225902 , + 9.28 , -6.848370877973950E-02 , + 9.285 , -2.555427519972480E-02 , + 9.29 , 1.844706127350420E-02 , + 9.295 , 6.430221576072399E-02 , + 9.3 , 0.10743778394149 , + 9.305 , 0.141299341041405 , + 9.31 , 0.154447624403715 , + 9.315 , 0.133048252401135 , + 9.32 , 6.418690106369780E-02 , + 9.325 , -6.064647417949840E-02 , + 9.33 , -0.24265292279827 , + 9.335 , -0.47405842905361 , + 9.34 , -0.73810449789487 , + 9.345 , -1.0108148464089 , + 9.35 , -1.26431984266432 , + 9.355 , -1.47118757622947 , + 9.36 , -1.60894844812626 , + 9.365 , -1.66394726283033 , + 9.37 , -1.63377593114862 , + 9.375 , -1.52779564631775 , + 9.38 , -1.36560192630373 , + 9.385 , -1.17367488772945 , + 9.39 , -0.98085465048613 , + 9.395 , -0.81346133563023 , + 9.4 , -0.6909389063025 , + 9.405 , -0.62276084953816 , + 9.41 , -0.607149409463 , + 9.415 , -0.63177724383888 , + 9.42 , -0.67625991576389 , + 9.425 , -0.71589163373072 , + 9.43 , -0.72595664968346 , + 9.435 , -0.68589387170155 , + 9.44 , -0.58268627289106 , + 9.445 , -0.412930213848 , + 9.45 , -0.18338626940602 , + 9.455 , 8.998844390524470E-02 , + 9.46 , 0.384209486902062 , + 9.465 , 0.672301526951598 , + 9.47 , 0.926752158620487 , + 9.475 , 1.12295373373336 , + 9.48 , 1.24217806572443 , + 9.485 , 1.27378905610875 , + 9.49 , 1.21646747255966 , + 9.495 , 1.07838936456105 , + 9.5 , 0.876298148043991 , + 9.505 , 0.633562127434793 , + 9.51 , 0.377406516734523 , + 9.515 , 0.135641869430563 , + 9.52 , -6.672476216219871E-02 , + 9.525 , -0.21056458019019 , + 9.53 , -0.28496091918619 , + 9.535 , -0.28841969553759 , + 9.54 , -0.2287139810782 , + 9.545 , -0.12132500570029 , + 9.55 , 7.625888610971770E-03 , + 9.555 , 0.116222883261377 , + 9.56 , 0.213774951165706 , + 9.565 , 0.289397517200485 , + 9.57 , 0.338281477903747 , + 9.575 , 0.362345137379695 , + 9.58 , 0.369650428641696 , + 9.585 , 0.372716892921114 , + 9.59 , 0.386055603509022 , + 9.595 , 0.423398634616031 , + 9.6 , 0.495129281552051 , + 9.605 , 0.60639781396735 , + 9.61 , 0.756225797586165 , + 9.615 , 0.937731164545477 , + 9.62 , 1.13931299682061 , + 9.625 , 1.34651259505288 , + 9.63 , 1.54413547032879 , + 9.635 , 1.71824818793864 , + 9.64 , 1.85768676819293 , + 9.645 , 1.95489941817505 , + 9.65 , 2.00610002856624 , + 9.655 , 2.01090936461916 , + 9.66 , 1.97169865125757 , + 9.665 , 1.89287748522473 , + 9.67 , 1.78030387269109 , + 9.675 , 1.64090911938383 , + 9.68 , 1.48250660526215 , + 9.685 , 1.31363233674109 , + 9.69 , 1.14327915207579 , + 9.695 , 0.980390644995991 , + 9.7 , 0.833122502994828 , + 9.705 , 0.707943691566063 , + 9.71 , 0.608782533951479 , + 9.715 , 0.536448337875884 , + 9.72 , 0.488573445463521 , + 9.725 , 0.46016643878741 , + 9.73 , 0.444740766028055 , + 9.735 , 0.435798656192539 , + 9.74 , 0.428373605655483 , + 9.745 , 0.420256963476142 , + 9.75 , 0.412594868385096 , + 9.755 , 0.409674164332935 , + 9.76 , 0.417930829751558 , + 9.765 , 0.444371250852317 , + 9.77 , 0.494775704856077 , + 9.775 , 0.572057120950962 , + 9.78 , 0.675155981128035 , + 9.785 , 0.798679222993941 , + 9.79 , 0.933324321352313 , + 9.795 , 1.06694698775423 , + 9.8 , 1.18603236012388 , + 9.805 , 1.27724967196587 , + 9.81 , 1.32882747232424 , + 9.815 , 1.33155990686688 , + 9.82 , 1.27942417786924 , + 9.825 , 1.16984949079063 , + 9.83 , 1.00375336219652 , + 9.835 , 0.78541101181126 , + 9.84 , 0.522229879372249 , + 9.845 , 0.224363288427596 , + 9.85 , -7.544298823405959E-02 , + 9.855 , -0.32414911077947 , + 9.86 , -0.56925067043303 , + 9.865 , -0.80153173249929 , + 9.87 , -1.01385881998571 , + 9.875 , -1.20197758458175 , + 9.88 , -1.36481009682394 , + 9.885 , -1.50413197543959 , + 9.89 , -1.62360229940215 , + 9.895 , -1.72737604935286 , + 9.9 , -1.81858556613035 , + 9.905 , -1.89811306323292 , + 9.91 , -1.96399286416952 , + 9.915 , -2.01169321437822 , + 9.92 , -2.03524420540911 , + 9.925 , -2.02897089319518 , + 9.93 , -1.9893635845244 , + 9.935 , -1.91657784009958 , + 9.94 , -1.81508296294018 , + 9.945 , -1.69320466339342 , + 9.95 , -1.56159803137893 , + 9.955 , -1.4309899156992 , + 9.96 , -1.309755744458 , + 9.965 , -1.20194945689331 , + 9.97 , -1.10635858004562 , + 9.975 , -1.01686709903203 , + 9.98 , -0.92410491644605 , + 9.985 , -0.81798616411117 , + 9.99 , -0.69053338279253 , + 9.995 , -0.53828091954851 , + 10.0 , -0.36368359344091 , + 10.005 , -0.17516204935777 , + 10.01 , 3.283892190983560E-02 , + 10.015 , 0.330694200317556 , + 10.02 , 0.577629318788318 , + 10.025 , 0.752762239562344 , + 10.03 , 0.843359973197779 , + 10.035 , 0.846296788144704 , + 10.04 , 0.767736310318568 , + 10.045 , 0.621457280597053 , + 10.05 , 0.426437216065522 , + 10.055 , 0.204358996732675 , + 10.06 , -2.248438925201870E-02 , + 10.065 , -0.23266656596899 , + 10.07 , -0.40662586629101 , + 10.075 , -0.52750200085185 , + 10.08 , -0.58215648669077 , + 10.085 , -0.56248497246021 , + 10.09 , -0.4669190429802 , + 10.095 , -0.30169803576621 , + 10.1 , -8.141467321068210E-02 , + 10.105 , 0.171736188042055 , + 10.11 , 0.430255910671489 , + 10.115 , 0.665052841920839 , + 10.12 , 0.849933032813423 , + 10.125 , 0.965995866692921 , + 10.13 , 1.00493830188015 , + 10.135 , 0.970469370709915 , + 10.14 , 0.877402798238989 , + 10.145 , 0.748601808713132 , + 10.15 , 0.610481808617733 , + 10.155 , 0.488130421487012 , + 10.16 , 0.401133125757128 , + 10.165 , 0.360990723458034 , + 10.17 , 0.370538085006636 , + 10.175 , 0.425250483406994 , + 10.18 , 0.515772332268937 , + 10.185 , 0.630771503752903 , + 10.19 , 0.759255763887151 , + 10.195 , 0.891778215264391 , + 10.2 , 1.02038573505463 , + 10.205 , 1.13765165967161 , + 10.21 , 1.2354498601353 , + 10.215 , 1.30423925529986 , + 10.22 , 1.3333818353705 , + 10.225 , 1.31262109496076 , + 10.23 , 1.23439607687214 , + 10.235 , 1.09630588839482 , + 10.24 , 0.902881246184685 , + 10.245 , 0.665930257015006 , + 10.25 , 0.403145595569434 , + 10.255 , 0.135167464543167 , + 10.26 , -0.1181889683435 , + 10.265 , -0.34158112353947 , + 10.27 , -0.5266606974231 , + 10.275 , -0.67279436439978 , + 10.28 , -0.78577175818034 , + 10.285 , -0.87491503414711 , + 10.29 , -0.94943871678613 , + 10.295 , -1.01514749755514 , + 10.3 , -1.07240552249575 , + 10.305 , -1.1159454664886 , + 10.31 , -1.13652214942974 , + 10.315 , -1.12387719989209 , + 10.32 , -1.07009467236169 , + 10.325 , -0.9723415710773 , + 10.33 , -0.83421714797159 , + 10.335 , -0.66537603566363 , + 10.34 , -0.47961924019497 , + 10.345 , -0.29207437055768 , + 10.35 , -0.11633661841191 , + 10.355 , 3.762456752764130E-02 , + 10.36 , 0.164274796553055 , + 10.365 , 0.262005149857291 , + 10.37 , 0.331666422264028 , + 10.375 , 0.374819782001995 , + 10.38 , 0.392377294442122 , + 10.385 , 0.384141260826285 , + 10.39 , 0.34936414194296 , + 10.395 , 0.288052561776111 , + 10.4 , 0.20242178785536 , + 10.405 , 9.785306567479871E-02 , + 10.41 , -1.713557520971730E-02 , + 10.415 , -0.13204374310037 , + 10.42 , -0.23639873810073 , + 10.425 , -0.32201635263159 , + 10.43 , -0.38475152712529 , + 10.435 , -0.4251245384254 , + 10.44 , -0.44753546126283 , + 10.445 , -0.45825628870499 , + 10.45 , -0.46279334754373 , + 10.455 , -0.46346276944743 , + 10.46 , -0.45799981189361 , + 10.465 , -0.43972280992741 , + 10.47 , -0.39929302861398 , + 10.475 , -0.32758719542718 , + 10.48 , -0.21885278786041 , + 10.485 , -7.315503161217039E-02 , + 10.49 , 0.102651407152514 , + 10.495 , 0.295816563735959 , + 10.5 , 0.490226934148564 , + 10.505 , 0.669891810457828 , + 10.51 , 0.82237594525252 , + 10.515 , 0.941216017829958 , + 10.52 , 1.02661998674533 , + 10.525 , 1.08430529858058 , + 10.53 , 1.12286636573309 , + 10.535 , 1.15051988582967 , + 10.54 , 1.17222128266484 , + 10.545 , 1.18801420247095 , + 10.55 , 1.19307665922947 , + 10.555 , 1.17938295001738 , + 10.56 , 1.13840303313913 , + 10.565 , 1.06394181580147 , + 10.57 , 0.95422952397942 , + 10.575 , 0.812611611237298 , + 10.58 , 0.646677789199809 , + 10.585 , 0.466152014272008 , + 10.59 , 0.280289725059773 , + 10.595 , 9.565146176778430E-02 , + 10.6 , -8.499446193837400E-02 , + 10.605 , -0.26230216706899 , + 10.61 , -0.4386137767682 , + 10.615 , -0.6154630451662 , + 10.62 , -0.79113786663093 , + 10.625 , -0.9591661750224 , + 10.63 , -1.10826769502301 , + 10.635 , -1.22391556601366 , + 10.64 , -1.29112533315649 , + 10.645 , -1.29775475114347 , + 10.65 , -1.23742365152054 , + 10.655 , -1.11129656465532 , + 10.66 , -0.9282894842173 , + 10.665 , -0.70371663339333 , + 10.67 , -0.45680011277455 , + 10.675 , -0.20771128037236 , + 10.68 , 2.512459612945220E-02 , + 10.685 , 0.226918245807304 , + 10.69 , 0.387350552286146 , + 10.695 , 0.500473670939197 , + 10.7 , 0.564029266358019 , + 10.705 , 0.578637288901258 , + 10.71 , 0.547211894628189 , + 10.715 , 0.474757060973486 , + 10.72 , 0.368436624005821 , + 10.725 , 0.237615830995378 , + 10.73 , 9.352792827951401E-02 , + 10.735 , -5.167273774008210E-02 , + 10.74 , -0.18646809540466 , + 10.745 , -0.30187135567744 , + 10.75 , -0.39316916542135 , + 10.755 , -0.46096802891446 , + 10.76 , -0.51111268636195 , + 10.765 , -0.55334646668629 , + 10.77 , -0.59891300067983 , + 10.775 , -0.65764678122702 , + 10.78 , -0.73525453842381 , + 10.785 , -0.83150017185443 , + 10.79 , -0.93976747420304 , + 10.795 , -1.04812248595262 , + 10.8 , -1.14160318244191 , + 10.805 , -1.2051488991501 , + 10.81 , -1.22646384585139 , + 10.815 , -1.19814339245798 , + 10.82 , -1.11865520710004 , + 10.825 , -0.9920714349609 , + 10.83 , -0.82681485385664 , + 10.835 , -0.63386505629908 , + 10.84 , -0.42496268277971 , + 10.845 , -0.21119376102165 , + 10.85 , -2.191019852703480E-03 , + 10.855 , 0.194127641793734 , + 10.86 , 0.371466018382975 , + 10.865 , 0.525035130835761 , + 10.87 , 0.651602813791636 , + 10.875 , 0.749803994860723 , + 10.88 , 0.820544481310922 , + 10.885 , 0.867273287648818 , + 10.89 , 0.895807866624117 , + 10.895 , 0.913572593095597 , + 10.9 , 0.928236729298366 , + 10.905 , 0.946014350836689 , + 10.91 , 0.970040868532415 , + 10.915 , 0.999311930164329 , + 10.92 , 1.02854682988849 , + 10.925 , 1.04913139979 , + 10.93 , 1.05098941441043 , + 10.935 , 1.02499491482512 , + 10.94 , 0.965351048328359 , + 10.945 , 0.871370473531725 , + 10.95 , 0.748233229517312 , + 10.955 , 0.606563895886194 , + 10.96 , 0.460955473292802 , + 10.965 , 0.327805324612049 , + 10.97 , 0.222950093923078 , + 10.975 , 0.159562148201255 , + 10.98 , 0.146631988185719 , + 10.985 , 0.188170103964573 , + 10.99 , 0.283066815855546 , + 10.995 , 0.425428418732869 , + 11.0 , 0.605185596503197 , + 11.005 , 0.808842841129001 , + 11.01 , 1.0203252588096 , + 11.015 , 1.22200011907392 , + 11.02 , 1.39594474367148 , + 11.025 , 1.52549944650203 , + 11.03 , 1.59700049844879 , + 11.035 , 1.60145576944865 , + 11.04 , 1.53581761942562 , + 11.045 , 1.4034930323483 , + 11.05 , 1.2138831423925 , + 11.055 , 0.980912371026411 , + 11.06 , 0.720812505576093 , + 11.065 , 0.449601892036102 , + 11.07 , 0.180857582628542 , + 11.075 , -7.573381698891210E-02 , + 11.08 , -0.31470812975405 , + 11.085 , -0.53405962087938 , + 11.09 , -0.73364261678681 , + 11.095 , -0.91330540113887 , + 11.1 , -1.07132417643687 , + 11.105 , -1.20365312210336 , + 11.11 , -1.30419832213249 , + 11.115 , -1.36604239161232 , + 11.12 , -1.38321880818252 , + 11.125 , -1.35249870150789 , + 11.13 , -1.27462783831177 , + 11.135 , -1.15465182792767 , + 11.14 , -1.00123343402233 , + 11.145 , -0.82518952456788 , + 11.15 , -0.63769529339716 , + 11.155 , -0.44866816516864 , + 11.16 , -0.26576203055682 , + 11.165 , -9.416463454136630E-02 , + 11.17 , 6.287575092606090E-02 , + 11.175 , 0.203141505865471 , + 11.18 , 0.324579712695666 , + 11.185 , 0.424889751727608 , + 11.19 , 0.501750804315283 , + 11.195 , 0.5536421159011 , + 11.2 , 0.580921794960766 , + 11.205 , 0.586704260853481 , + 11.21 , 0.5770850470881 , + 11.215 , 0.560449668733132 , + 11.22 , 0.545887300846328 , + 11.225 , 0.541047479949923 , + 11.23 , 0.549990662947013 , + 11.235 , 0.571663114185204 , + 11.24 , 0.599500251771258 , + 11.245 , 0.62236878054162 , + 11.25 , 0.626713322562836 , + 11.255 , 0.599434772191117 , + 11.26 , 0.530838614269415 , + 11.265 , 0.416951659398843 , + 11.27 , 0.26068866151549 , + 11.275 , 7.163385796821510E-02 , + 11.28 , -0.13542954911164 , + 11.285 , -0.34285006284799 , + 11.29 , -0.53271798082564 , + 11.295 , -0.68922055953639 , + 11.3 , -0.80031992822441 , + 11.305 , -0.85859556643174 , + 11.31 , -0.86132208764303 , + 11.315 , -0.81002406922002 , + 11.32 , -0.70979684966059 , + 11.325 , -0.56862676261062 , + 11.33 , -0.39681435075012 , + 11.335 , -0.20645292887016 , + 11.34 , -1.082875708200500E-02 , + 11.345 , 0.176412752549899 , + 11.35 , 0.342376371445806 , + 11.355 , 0.476235796330172 , + 11.36 , 0.570527791788077 , + 11.365 , 0.622137109693916 , + 11.37 , 0.632674434445817 , + 11.375 , 0.608089217990313 , + 11.38 , 0.557537864431003 , + 11.385 , 0.491727720373806 , + 11.39 , 0.421100488617183 , + 11.395 , 0.35424883871057 , + 11.4 , 0.296898598214297 , + 11.405 , 0.251615782949777 , + 11.41 , 0.218205567537362 , + 11.415 , 0.194575186033259 , + 11.42 , 0.177750889222743 , + 11.425 , 0.164739545969125 , + 11.43 , 0.153046754059915 , + 11.435 , 0.140795993214209 , + 11.44 , 0.12656443411951 , + 11.445 , 0.109119048772985 , + 11.45 , 8.726746617413900E-02 , + 11.455 , 5.991980120903190E-02 , + 11.46 , 2.635460927914640E-02 , + 11.465 , -1.345275150280380E-02 , + 11.47 , -5.863610709200840E-02 , + 11.475 , -0.10755044102404 , + 11.48 , -0.15824658177879 , + 11.485 , -0.20921212071436 , + 11.49 , -0.26013226175091 , + 11.495 , -0.31237245530863 , + 11.5 , -0.36890715351072 , + 11.505 , -0.43358437734804 , + 11.51 , -0.50981957766845 , + 11.515 , -0.59903776556946 , + 11.52 , -0.69931194037806 , + 11.525 , -0.80465691443919 , + 11.53 , -0.90529166691289 , + 11.535 , -0.98894889157901 , + 11.54 , -1.0430005689334 , + 11.545 , -1.05693388169808 , + 11.55 , -1.0245796623575 , + 11.555 , -0.94554374723514 , + 11.56 , -0.82548253167239 , + 11.565 , -0.67515951222416 , + 11.57 , -0.50853411181021 , + 11.575 , -0.34035152824456 , + 11.58 , -0.18380744340702 , + 11.585 , -4.877605466847740E-02 , + 11.59 , 5.909608053637810E-02 , + 11.595 , 0.138405652647701 , + 11.6 , 0.191311518017365 , + 11.605 , 0.222508949979136 , + 11.61 , 0.238194003082017 , + 11.615 , 0.245269919971124 , + 11.62 , 0.250838712250952 , + 11.625 , 0.261870016704265 , + 11.63 , 0.284836510438269 , + 11.635 , 0.325131372886616 , + 11.64 , 0.386198740355232 , + 11.645 , 0.468513501462264 , + 11.65 , 0.568696341674455 , + 11.655 , 0.679148315040223 , + 11.66 , 0.788508513966795 , + 11.665 , 0.883056182933764 , + 11.67 , 0.948906416298242 , + 11.675 , 0.974570797520427 , + 11.68 , 0.953277599477234 , + 11.685 , 0.884438058167201 , + 11.69 , 0.77382364723826 , + 11.695 , 0.632334566850428 , + 11.7 , 0.473622939615698 , + 11.705 , 0.311143111887763 , + 11.71 , 0.15539149490874 , + 11.715 , 1.204008787083370E-02 , + 11.72 , -0.1185541756946 , + 11.725 , -0.24038836981401 , + 11.73 , -0.35969118541412 , + 11.735 , -0.48228327823872 , + 11.74 , -0.61114632720659 , + 11.745 , -0.74488165421895 , + 11.75 , -0.87742903375438 , + 11.755 , -0.9990735442117 , + 11.76 , -1.09838127444184 , + 11.765 , -1.16449496867241 , + 11.77 , -1.18914405096313 , + 11.775 , -1.1678940579368 , + 11.78 , -1.10040933370095 , + 11.785 , -0.98984205208497 , + 11.79 , -0.8417105178341 , + 11.795 , -0.66273801588279 , + 11.8 , -0.46007426875265 , + 11.805 , -0.24109784101173 , + 11.81 , -1.376424841735200E-02 , + 11.815 , 0.212820798236347 , + 11.82 , 0.428004774853851 , + 11.825 , 0.61976809620263 , + 11.83 , 0.775664732827253 , + 11.835 , 0.884459785072971 , + 11.84 , 0.938105319486098 , + 11.845 , 0.933533376809836 , + 11.85 , 0.873720830366818 , + 11.855 , 0.767639484838718 , + 11.86 , 0.628977669852066 , + 11.865 , 0.4738539721813 , + 11.87 , 0.31801589351757 , + 11.875 , 0.174157204161953 , + 11.88 , 4.995725310342680E-02 , + 11.885 , -5.275216941488590E-02 , + 11.89 , -0.13756423084181 , + 11.895 , -0.2120196831066 , + 11.9 , -0.28548456301669 , + 11.905 , -0.36691840941378 , + 11.91 , -0.46300320666114 , + 11.915 , -0.57696070561373 , + 11.92 , -0.70814553643099 , + 11.925 , -0.85232717509853 , + 11.93 , -1.00241060096662 , + 11.935 , -1.14936568830572 , + 11.94 , -1.28315120023664 , + 11.945 , -1.39356260774938 , + 11.95 , -1.47101607033074 , + 11.955 , -1.5073448490242 , + 11.96 , -1.4966490584904 , + 11.965 , -1.43616086274327 , + 11.97 , -1.32698077186283 , + 11.975 , -1.17446433758603 , + 11.98 , -0.98804059864846 , + 11.985 , -0.78032474331784 , + 11.99 , -0.56556840849598 , + 11.995 , -0.35765933543277 , + 12.0 , -0.16807550799874 , + 12.005 , -4.227255766186140E-03 , + 12.01 , 0.131383604645629 , + 12.015 , 0.240987503608671 , + 12.02 , 0.330348730788584 , + 12.025 , 0.406826008170448 , + 12.03 , 0.477144240124697 , + 12.035 , 0.545422501700242 , + 12.04 , 0.611915404843405 , + 12.045 , 0.672755857445556 , + 12.05 , 0.720723072194553 , + 12.055 , 0.746832365003761 , + 12.06 , 0.742346946489963 , + 12.065 , 0.700760339032901 , + 12.07 , 0.619339003519911 , + 12.075 , 0.499959785870592 , + 12.08 , 0.349159304278182 , + 12.085 , 0.177470223182518 , + 12.09 , -1.753350545225190E-03 , + 12.095 , -0.17379950342875 , + 12.1 , -0.32413511149758 , + 12.105 , -0.43987021437218 , + 12.11 , -0.51104917071923 , + 12.115 , -0.53171143244092 , + 12.12 , -0.50064639271511 , + 12.125 , -0.42174741533336 , + 12.13 , -0.30385287601246 , + 12.135 , -0.1599770009419 , + 12.14 , -5.916472086063350E-03 , + 12.145 , 0.141672124157728 , + 12.15 , 0.267467136745314 , + 12.155 , 0.359599717485464 , + 12.16 , 0.411271872916484 , + 12.165 , 0.421529890421321 , + 12.17 , 0.394986365391134 , + 12.175 , 0.340522937951077 , + 12.18 , 0.269238562662315 , + 12.185 , 0.19209641315972 , + 12.19 , 0.11779958413244 , + 12.195 , 5.136625423508250E-02 , + 12.2 , -6.300947873046220E-03 , + 12.205 , -5.782223054975370E-02 , + 12.21 , -0.10793985148095 , + 12.215 , -0.16174127408618 , + 12.22 , -0.22298866763169 , + 12.225 , -0.2929886222154 , + 12.23 , -0.37024238871399 , + 12.235 , -0.45090142997871 , + 12.24 , -0.52980992267136 , + 12.245 , -0.60178949630599 , + 12.25 , -0.66276746147737 , + 12.255 , -0.71046604589472 , + 12.26 , -0.74450641227213 , + 12.265 , -0.76599806365513 , + 12.27 , -0.77681628816103 , + 12.275 , -0.77885826543421 , + 12.28 , -0.77352755022123 , + 12.285 , -0.76159237398235 , + 12.29 , -0.74340951487468 , + 12.295 , -0.7193684533261 , + 12.3 , -0.69033859752466 , + 12.305 , -0.65790529310338 , + 12.31 , -0.62427337609045 , + 12.315 , -0.59183465481714 , + 12.32 , -0.5625391602505 , + 12.325 , -0.53727609431785 , + 12.33 , -0.51549939568466 , + 12.335 , -0.49523027754421 , + 12.34 , -0.47348196058407 , + 12.345 , -0.44699386193397 , + 12.35 , -0.41308162478787 , + 12.355 , -0.37035623858392 , + 12.36 , -0.31912406711736 , + 12.365 , -0.26136188585533 , + 12.37 , -0.20030871435109 , + 12.375 , -0.13979053261561 , + 12.38 , -8.348819445843680E-02 , + 12.385 , -3.432412971860200E-02 , + 12.39 , 5.898257672503130E-03 , + 12.395 , 3.658675251617240E-02 , + 12.4 , 5.823490831704580E-02 , + 12.405 , 7.220973009677149E-02 , + 12.41 , 8.054556791305920E-02 , + 12.415 , 8.583652449551200E-02 , + 12.42 , 9.119751190995400E-02 , + 12.425 , 0.10022495276452 , + 12.43 , 0.116830802684467 , + 12.435 , 0.144865533553475 , + 12.44 , 0.187496464655846 , + 12.445 , 0.246429769927851 , + 12.45 , 0.321134575890146 , + 12.455 , 0.408310004218564 , + 12.46 , 0.501792671730819 , + 12.465 , 0.593049206029892 , + 12.47 , 0.672237912914609 , + 12.475 , 0.729699407315016 , + 12.48 , 0.757595593934302 , + 12.485 , 0.751370987649759 , + 12.49 , 0.710716591717499 , + 12.495 , 0.639832178015772 , + 12.5 , 0.546914264636683 , + 12.505 , 0.442962983193198 , + 12.51 , 0.340141957400465 , + 12.515 , 0.249991895482425 , + 12.52 , 0.181816356681784 , + 12.525 , 0.14149413564273 , + 12.53 , 0.130883062190031 , + 12.535 , 0.147852731887966 , + 12.54 , 0.186894240935408 , + 12.545 , 0.240161777063203 , + 12.55 , 0.298772249040031 , + 12.555 , 0.3541646202598 , + 12.56 , 0.399336722395081 , + 12.565 , 0.429803491932159 , + 12.57 , 0.444142296553351 , + 12.575 , 0.444055340271153 , + 12.58 , 0.433919042501565 , + 12.585 , 0.41987739717275 , + 12.59 , 0.408602791719151 , + 12.595 , 0.405932599777175 , + 12.6 , 0.415626645287793 , + 12.605 , 0.438500795189521 , + 12.61 , 0.47213105784221 , + 12.615 , 0.511225323925744 , + 12.62 , 0.548612052766521 , + 12.625 , 0.576660272126196 , + 12.63 , 0.588829953918048 , + 12.635 , 0.581021197761628 , + 12.64 , 0.552418992096461 , + 12.645 , 0.505653719521126 , + 12.65 , 0.446259700593861 , + 12.655 , 0.381569197808235 , + 12.66 , 0.319325454510432 , + 12.665 , 0.266332799357825 , + 12.67 , 0.227442179455834 , + 12.675 , 0.20505248099 , + 12.68 , 0.199165657452942 , + 12.685 , 0.207885677656546 , + 12.69 , 0.228151213713856 , + 12.695 , 0.256464303289308 , + 12.7 , 0.289423464944378 , + 12.705 , 0.323974105633788 , + 12.71 , 0.357399971553342 , + 12.715 , 0.387180213631022 , + 12.72 , 0.410871216078733 , + 12.725 , 0.426149440224674 , + 12.73 , 0.431066724422046 , + 12.735 , 0.424468610875424 , + 12.74 , 0.40643852414304 , + 12.745 , 0.378585136191504 , + 12.75 , 0.344023630341179 , + 12.755 , 0.306976904799534 , + 12.76 , 0.272045167670388 , + 12.765 , 0.243295410789869 , + 12.77 , 0.223399948751481 , + 12.775 , 0.213036444793139 , + 12.78 , 0.210713889469279 , + 12.785 , 0.213057227036913 , + 12.79 , 0.21547276609123 , + 12.795 , 0.213006795751766 , + 12.8 , 0.201182178134479 , + 12.805 , 0.176611102924828 , + 12.81 , 0.137299208402565 , + 12.815 , 8.261651333889580E-02 , + 12.82 , 1.306254997938910E-02 , + 12.825 , -7.003874532972119E-02 , + 12.83 , -0.16475325893821 , + 12.835 , -0.26859374971277 , + 12.84 , -0.37841766630558 , + 12.845 , -0.49027765178853 , + 12.85 , -0.59935591527846 , + 12.855 , -0.70013189417767 , + 12.86 , -0.78683177941038 , + 12.865 , -0.85412623949955 , + 12.87 , -0.89792127381358 , + 12.875 , -0.91603916182254 , + 12.88 , -0.90857357773468 , + 12.885 , -0.87778714750083 , + 12.89 , -0.8275372966502 , + 12.895 , -0.76235786224487 , + 12.9 , -0.68643393291051 , + 12.905 , -0.60274756840487 , + 12.91 , -0.51264247885951 , + 12.915 , -0.41593073711012 , + 12.92 , -0.3115269410358 , + 12.925 , -0.19842747985447 , + 12.93 , -7.676760694603291E-02 , + 12.935 , 5.135539420685220E-02 , + 12.94 , 0.181528383908596 , + 12.945 , 0.307260660414741 , + 12.95 , 0.420769213103223 , + 12.955 , 0.514139979660135 , + 12.96 , 0.580592682156079 , + 12.965 , 0.615578076246798 , + 12.97 , 0.617476907926892 , + 12.975 , 0.587799377315074 , + 12.98 , 0.530889280436902 , + 12.985 , 0.453243660311424 , + 12.99 , 0.362622392194437 , + 12.995 , 0.2671120583141 , + 13.0 , 0.174286119779362 , + 13.005 , 9.052797178882990E-02 , + 13.01 , 2.054498441234870E-02 , + 13.015 , -3.294702871288870E-02 , + 13.02 , -6.937300005549160E-02 , + 13.025 , -9.028206231971420E-02 , + 13.03 , -9.913110412573760E-02 , + 13.035 , -0.10083734030815 , + 13.04 , -0.10108450259662 , + 13.045 , -0.1054266897417 , + 13.05 , -0.1182915683999 , + 13.055 , -0.14205888957835 , + 13.06 , -0.17640190935702 , + 13.065 , -0.21806865581631 , + 13.07 , -0.26120089347156 , + 13.075 , -0.29817769418101 , + 13.08 , -0.32085004389739 , + 13.085 , -0.32193831070962 , + 13.09 , -0.29631759697471 , + 13.095 , -0.24193696858333 , + 13.1 , -0.16019970762232 , + 13.105 , -5.574993867029920E-02 , + 13.11 , 6.425618048517991E-02 , + 13.115 , 0.19122987419663 , + 13.12 , 0.316346629224766 , + 13.125 , 0.431653751489729 , + 13.13 , 0.530914954469608 , + 13.135 , 0.610121196882937 , + 13.14 , 0.667657470309265 , + 13.145 , 0.704186599565721 , + 13.15 , 0.722325191446681 , + 13.155 , 0.726186367330791 , + 13.16 , 0.720836106520834 , + 13.165 , 0.711688820321258 , + 13.17 , 0.703862564199362 , + 13.175 , 0.701524520420123 , + 13.18 , 0.707294612263167 , + 13.185 , 0.721797723723084 , + 13.19 , 0.743474213000332 , + 13.195 , 0.768726481461021 , + 13.2 , 0.792431876186836 , + 13.205 , 0.808764824723334 , + 13.21 , 0.812196723822406 , + 13.215 , 0.798471820125594 , + 13.22 , 0.765360902698407 , + 13.225 , 0.713020417223642 , + 13.23 , 0.643892155196421 , + 13.235 , 0.562167990243985 , + 13.24 , 0.472970245560551 , + 13.245 , 0.381438619514679 , + 13.25 , 0.291951206368075 , + 13.255 , 0.20762340636979 , + 13.26 , 0.130166940321081 , + 13.265 , 6.006289386634430E-02 , + 13.27 , -3.060365982684810E-03 , + 13.275 , -6.001488208941340E-02 , + 13.28 , -0.11173380533579 , + 13.285 , -0.15914104631288 , + 13.29 , -0.20317809418618 , + 13.295 , -0.24493336090531 , + 13.3 , -0.28573011925772 , + 13.305 , -0.32707569024184 , + 13.31 , -0.37040876594875 , + 13.315 , -0.41668833903021 , + 13.32 , -0.46592656198441 , + 13.325 , -0.51683388329442 , + 13.33 , -0.56671530350641 , + 13.335 , -0.61172427575717 , + 13.34 , -0.64745289857378 , + 13.345 , -0.66975635467017 , + 13.35 , -0.67561421984368 , + 13.355 , -0.66382212752523 , + 13.36 , -0.63533221269618 , + 13.365 , -0.59315990071751 , + 13.37 , -0.54187928568118 , + 13.375 , -0.48684683870894 , + 13.38 , -0.43334458417513 , + 13.385 , -0.38584852580448 , + 13.39 , -0.34757223717143 , + 13.395 , -0.32034609191295 , + 13.4 , -0.30479305822331 , + 13.405 , -0.30068667519817 , + 13.41 , -0.30734431404504 , + 13.415 , -0.32393187524719 , + 13.42 , -0.3496124571983 , + 13.425 , -0.38355062958007 , + 13.43 , -0.42483772740574 , + 13.435 , -0.47243959941852 , + 13.44 , -0.52523698989138 , + 13.445 , -0.58218855059142 , + 13.45 , -0.64255715702482 , + 13.455 , -0.70611547192509 , + 13.46 , -0.77319959733532 , + 13.465 , -0.84453581144061 , + 13.47 , -0.9208154277502 , + 13.475 , -1.00210330165744 , + 13.48 , -1.08722318257344 , + 13.485 , -1.17331384017982 , + 13.49 , -1.25571905330723 , + 13.495 , -1.32830569669314 , + 13.5 , -1.38419198321401 , + 13.505 , -1.41674939954092 , + 13.51 , -1.42066916256513 , + 13.515 , -1.39284912504276 , + 13.52 , -1.33290856588875 , + 13.525 , -1.24321481899912 , + 13.53 , -1.12845482092199 , + 13.535 , -0.994859301148 , + 13.54 , -0.84929200472393 , + 13.545 , -0.69840229944309 , + 13.55 , -0.5480171915834 , + 13.555 , -0.40283245150506 , + 13.56 , -0.26639859300057 , + 13.565 , -0.1412841699847 , + 13.57 , -2.930752910284020E-02 , + 13.575 , 6.831031669366761E-02 , + 13.58 , 0.150909902638648 , + 13.585 , 0.218485436556094 , + 13.59 , 0.271817772885176 , + 13.595 , 0.312563547048263 , + 13.6 , 0.343197563758831 , + 13.605 , 0.366784232668975 , + 13.61 , 0.386577813348275 , + 13.615 , 0.405567940703392 , + 13.62 , 0.426060284638387 , + 13.625 , 0.449416325446865 , + 13.63 , 0.476003373865086 , + 13.635 , 0.505362938780156 , + 13.64 , 0.536518767578895 , + 13.645 , 0.568328300506654 , + 13.65 , 0.599754845087405 , + 13.655 , 0.630000025300325 , + 13.66 , 0.6584695973929 , + 13.665 , 0.68462841460832 , + 13.67 , 0.70782686172262 , + 13.675 , 0.727203534668359 , + 13.68 , 0.741722744375036 , + 13.685 , 0.750362416108883 , + 13.69 , 0.752392406085506 , + 13.695 , 0.747650040601305 , + 13.7 , 0.736696231685042 , + 13.705 , 0.720777621636586 , + 13.71 , 0.701571294344929 , + 13.715 , 0.680769236869278 , + 13.72 , 0.659613778989939 , + 13.725 , 0.638519591968826 , + 13.73 , 0.616905016742059 , + 13.735 , 0.593283746255628 , + 13.74 , 0.565603855337414 , + 13.745 , 0.531733554716355 , + 13.75 , 0.489962659748419 , + 13.755 , 0.439375608243233 , + 13.76 , 0.380009446404367 , + 13.765 , 0.312773129830936 , + 13.77 , 0.239195423372873 , + 13.775 , 0.16110638214858 , + 13.78 , 8.038995906805420E-02 , + 13.785 , -1.102897232504770E-03 , + 13.79 , -8.144778281704360E-02 , + 13.795 , -0.15840843583426 , + 13.8 , -0.22917659635052 , + 13.805 , -0.29024518206889 , + 13.81 , -0.33752175024298 , + 13.815 , -0.36674198188098 , + 13.82 , -0.37413071891857 , + 13.825 , -0.35717935529397 , + 13.83 , -0.31535074520267 , + 13.835 , -0.25052105857336 , + 13.84 , -0.16702284226815 , + 13.845 , -7.124636094412699E-02 , + 13.85 , 2.913353087510890E-02 , + 13.855 , 0.126149325078345 , + 13.86 , 0.212544685340441 , + 13.865 , 0.282593826653342 , + 13.87 , 0.33259342353236 , + 13.875 , 0.360977014896564 , + 13.88 , 0.368090497895831 , + 13.885 , 0.355740094833499 , + 13.89 , 0.326653538417733 , + 13.895 , 0.283980395609887 , + 13.9 , 0.230911938687721 , + 13.905 , 0.170438689852821 , + 13.91 , 0.105217955743757 , + 13.915 , 3.748846121428490E-02 , + 13.92 , -3.100811006762060E-02 , + 13.925 , -9.912461677678459E-02 , + 13.93 , -0.16638732593593 , + 13.935 , -0.23301599989748 , + 13.94 , -0.29981098203477 , + 13.945 , -0.36788336374228 , + 13.95 , -0.43823790831234 , + 13.955 , -0.51128976367887 , + 13.96 , -0.58642827752511 , + 13.965 , -0.66176331535379 , + 13.97 , -0.7341480161194 , + 13.975 , -0.79952454249667 , + 13.98 , -0.85353878258576 , + 13.985 , -0.89230509468498 , + 13.99 , -0.9131476514604 , + 13.995 , -0.91514375354423 , + 14.0 , -0.8993367487938 , + 14.005 , -0.86856422332842 , + 14.01 , -0.82694415950239 , + 14.015 , -0.77913771351111 , + 14.02 , -0.72955729658514 , + 14.025 , -0.68168905647206 , + 14.03 , -0.63766151216947 , + 14.035 , -0.59811504505913 , + 14.04 , -0.56235853309889 , + 14.045 , -0.52872726325526 , + 14.05 , -0.49503897771436 , + 14.055 , -0.45902725746187 , + 14.06 , -0.41868594009816 , + 14.065 , -0.37248337306763 , + 14.07 , -0.31947100513302 , + 14.075 , -0.25931189817463 , + 14.08 , -0.19228261646431 , + 14.085 , -0.11925792681763 , + 14.09 , -4.169532968283350E-02 , + 14.095 , 3.843303316390890E-02 , + 14.1 , 0.118775003838835 , + 14.105 , 0.196837583343436 , + 14.11 , 0.270307193173439 , + 14.115 , 0.337420184008135 , + 14.12 , 0.397291393971841 , + 14.125 , 0.450126440210993 , + 14.13 , 0.497226657276013 , + 14.135 , 0.540774142842358 , + 14.14 , 0.58340264798186 , + 14.145 , 0.627643304621108 , + 14.15 , 0.675349975738562 , + 14.155 , 0.727241025622671 , + 14.16 , 0.782651129746367 , + 14.165 , 0.839560451090441 , + 14.17 , 0.894881294455553 , + 14.175 , 0.944955884798899 , + 14.18 , 0.986144014351956 , + 14.185 , 1.015390719979 , + 14.19 , 1.0306572943892 , + 14.195 , 1.03115234481902 , + 14.2 , 1.01733343986871 , + 14.205 , 0.990709541557108 , + 14.21 , 0.953502790822332 , + 14.215 , 0.908254264710393 , + 14.22 , 0.857454756635746 , + 14.225 , 0.803265224100822 , + 14.23 , 0.74737385316121 , + 14.235 , 0.690995601525318 , + 14.24 , 0.635005073529152 , + 14.245 , 0.580160133049894 , + 14.25 , 0.527369694111442 , + 14.255 , 0.477938039158216 , + 14.26 , 0.433728338232803 , + 14.265 , 0.397194149800069 , + 14.27 , 0.371248511478309 , + 14.275 , 0.358963505823744 , + 14.28 , 0.363137797938165 , + 14.285 , 0.385787231840523 , + 14.29 , 0.427657749130475 , + 14.295 , 0.487849697242734 , + 14.3 , 0.563646552494242 , + 14.305 , 0.650598748291401 , + 14.31 , 0.742869615401765 , + 14.315 , 0.833794067276776 , + 14.32 , 0.916556460872168 , + 14.325 , 0.984863842045941 , + 14.33 , 1.0335040976667 , + 14.335 , 1.05869041827564 , + 14.34 , 1.05816644274048 , + 14.345 , 1.03108361491544 , + 14.35 , 0.977735351761127 , + 14.355 , 0.899232930675646 , + 14.36 , 0.797237214065439 , + 14.365 , 0.673796884116058 , + 14.37 , 0.531337867932015 , + 14.375 , 0.372747573641774 , + 14.38 , 0.20150981243218 , + 14.385 , 2.178427411223690E-02 , + 14.39 , -0.16161383529816 , + 14.395 , -0.34339606863716 , + 14.4 , -0.5181084642692 , + 14.405 , -0.68053644448525 , + 14.41 , -0.826088703855 , + 14.415 , -0.95112570187104 , + 14.42 , -1.05313423965707 , + 14.425 , -1.13075625342751 , + 14.43 , -1.18366851217429 , + 14.435 , -1.21238579974723 , + 14.44 , -1.21803310838506 , + 14.445 , -1.20215241564511 , + 14.45 , -1.16656016251128 , + 14.455 , -1.113269900772 , + 14.46 , -1.04444581397611 , + 14.465 , -0.96236345544593 , + 14.47 , -0.86935386142724 , + 14.475 , -0.76773118679175 , + 14.48 , -0.65972693552001 , + 14.485 , -0.54746173019692 , + 14.49 , -0.43299292085595 , + 14.495 , -0.3184397215422 , + 14.5 , -0.20616849862018 , + 14.505 , -9.897318159698620E-02 , + 14.51 , -1.803143023172810E-04 , + 14.515 , 8.640194233650360E-02 , + 14.52 , 0.156727372406871 , + 14.525 , 0.206940131693837 , + 14.53 , 0.233914703352716 , + 14.535 , 0.235793875210402 , + 14.54 , 0.212387260096523 , + 14.545 , 0.165314426336394 , + 14.55 , 9.783758697368690E-02 , + 14.555 , 1.439534230634960E-02 , + 14.56 , -8.005859022341789E-02 , + 14.565 , -0.18076618261283 , + 14.57 , -0.28374454180973 , + 14.575 , -0.38610798365218 , + 14.58 , -0.48605081190961 , + 14.585 , -0.58252398542127 , + 14.59 , -0.67470367132805 , + 14.595 , -0.76142935693159 , + 14.6 , -0.8407780560685 , + 14.605 , -0.90992374040628 , + 14.61 , -0.96532870247995 , + 14.615 , -1.00324396367882 , + 14.62 , -1.02038773635927 , + 14.625 , -1.01463341589249 , + 14.63 , -0.98552757460307 , + 14.635 , -0.93450835223946 , + 14.64 , -0.86477120783303 , + 14.645 , -0.78081893710178 , + 14.65 , -0.68781873202676 , + 14.655 , -0.59091719649253 , + 14.66 , -0.49467793607145 , + 14.665 , -0.40274402274473 , + 14.67 , -0.31777533615604 , + 14.675 , -0.24161241000393 , + 14.68 , -0.17557875216008 , + 14.685 , -0.12078750746673 , + 14.69 , -7.835224295217311E-02 , + 14.695 , -4.942101977486440E-02 , + 14.7 , -3.503749471905150E-02 , + 14.705 , -3.587495731215070E-02 , + 14.71 , -5.194398103175540E-02 , + 14.715 , -8.236828155631780E-02 , + 14.72 , -0.12531697112263 , + 14.725 , -0.17812203875209 , + 14.73 , -0.23756805254037 , + 14.735 , -0.30028601265584 , + 14.74 , -0.36316012018238 , + 14.745 , -0.42365909583363 , + 14.75 , -0.48002335079991 , + 14.755 , -0.53128602795839 , + 14.76 , -0.57714447879069 , + 14.765 , -0.61773654874064 , + 14.77 , -0.65338922947777 , + 14.775 , -0.68440719071073 , + 14.78 , -0.71094150841826 , + 14.785 , -0.73295383213119 , + 14.79 , -0.75025831938642 , + 14.795 , -0.76260438890415 , + 14.8 , -0.76975912976851 , + 14.805 , -0.77155180131721 , + 14.81 , -0.76787415141689 , + 14.815 , -0.75863134459094 , + 14.82 , -0.74368104295612 , + 14.825 , -0.72278322433993 , + 14.83 , -0.69560054902327 , + 14.835 , -0.66175375591306 , + 14.84 , -0.62093898535516 , + 14.845 , -0.57306913773937 , + 14.85 , -0.51841917741191 , + 14.855 , -0.45771315164191 , + 14.86 , -0.392137917305 , + 14.865 , -0.3232532945768 , + 14.87 , -0.25282156152333 , + 14.875 , -0.18257072630809 , + 14.88 , -0.11395570313114 , + 14.885 , -4.795078990473090E-02 , + 14.89 , 1.505030752196730E-02 , + 14.895 , 7.523505899511330E-02 , + 14.9 , 0.133241663209769 , + 14.905 , 0.189946958395501 , + 14.91 , 0.246204884243539 , + 14.915 , 0.302617865301028 , + 14.92 , 0.359383341937356 , + 14.925 , 0.416272256914715 , + 14.93 , 0.472730379837134 , + 14.935 , 0.528097455638089 , + 14.94 , 0.581866656852053 , + 14.945 , 0.633923511292493 , + 14.95 , 0.684671503159956 , + 14.955 , 0.735006617044871 , + 14.96 , 0.78610900707482 , + 14.965 , 0.839096114213373 , + 14.97 , 0.894592925855566 , + 14.975 , 0.952340646800937 , + 14.98 , 1.0109322862822 , + 14.985 , 1.06776815099708 , + 14.99 , 1.11925763952313 , + 14.995 , 1.16125733848899 , + 15.0 , 1.18965840938029 , + 15.005 , 1.20101711803106 , + 15.01 , 1.19309156203439 , + 15.015 , 1.16518353563898 , + 15.02 , 1.11821232455035 , + 15.025 , 1.0545184865003 , + 15.03 , 0.977448615628865 , + 15.035 , 0.890815252481333 , + 15.04 , 0.798354444510221 , + 15.045 , 0.703279494461959 , + 15.05 , 0.60801847543151 , + 15.055 , 0.514150357593879 , + 15.06 , 0.422530486995826 , + 15.065 , 0.333543044544543 , + 15.07 , 0.247413880227417 , + 15.075 , 0.164505011560775 , + 15.08 , 8.554502116652860E-02 , + 15.085 , 1.176008397877900E-02 , + 15.09 , -5.508991016794810E-02 , + 15.095 , -0.11277329041032 , + 15.1 , -0.15872202731611 , + 15.105 , -0.19023769676271 , + 15.11 , -0.20475543680883 , + 15.115 , -0.20016459209247 , + 15.12 , -0.17515953672649 , + 15.125 , -0.1295909322101 , + 15.13 , -6.475341455153370E-02 , + 15.135 , 1.645644779243700E-02 , + 15.14 , 0.109582085491203 , + 15.145 , 0.208891920094615 , + 15.15 , 0.307902347961824 , + 15.155 , 0.400086953541137 , + 15.16 , 0.479656312478387 , + 15.165 , 0.54227026093024 , + 15.17 , 0.585531391323096 , + 15.175 , 0.60915577781107 , + 15.18 , 0.614771789148716 , + 15.185 , 0.605386403919845 , + 15.19 , 0.584635659710548 , + 15.195 , 0.555987240463961 , + 15.2 , 0.522078576056577 , + 15.205 , 0.484332615313383 , + 15.21 , 0.44293940454718 , + 15.215 , 0.397175120559912 , + 15.22 , 0.345968006972672 , + 15.225 , 0.288543030116857 , + 15.23 , 0.224972791486283 , + 15.235 , 0.156481408793171 , + 15.24 , 8.542958350357370E-02 , + 15.245 , 1.498370477529230E-02 , + 15.25 , -5.142934425176120E-02 , + 15.255 , -0.1107437937938 , + 15.26 , -0.16078441017566 , + 15.265 , -0.20057844669055 , + 15.27 , -0.23037829970624 , + 15.275 , -0.2514154045316 , + 15.28 , -0.26546110414046 , + 15.285 , -0.27433386226401 , + 15.29 , -0.27947343680654 , + 15.295 , -0.28170382574971 , + 15.3 , -0.28121922535055 , + 15.305 , -0.27778333156123 , + 15.31 , -0.27106104276765 , + 15.315 , -0.26098347288903 , + 15.32 , -0.2480337104626 , + 15.325 , -0.23338239832851 , + 15.33 , -0.21883669131141 , + 15.335 , -0.20662723365469 , + 15.34 , -0.19908795725974 , + 15.345 , -0.1983095632208 , + 15.35 , -0.20583511356768 , + 15.355 , -0.22245388077999 , + 15.36 , -0.24810721805446 , + 15.365 , -0.28190022979588 , + 15.37 , -0.32218399867655 , + 15.375 , -0.36668187000496 , + 15.38 , -0.41262893144551 , + 15.385 , -0.4569195252945 , + 15.39 , -0.49626700745835 , + 15.395 , -0.52739011070132 , + 15.4 , -0.54723474350703 , + 15.405 , -0.55322582044501 , + 15.41 , -0.54352567312437 , + 15.415 , -0.51725918301048 , + 15.42 , -0.47466073347181 , + 15.425 , -0.41710230560527 , + 15.43 , -0.34698928139492 , + 15.435 , -0.26752756403572 , + 15.44 , -0.18240759770015 , + 15.445 , -9.545429827632960E-02 , + 15.45 , -1.031774321012660E-02 , + 15.455 , 6.975569716684001E-02 , + 15.46 , 0.142031815271298 , + 15.465 , 0.204287600135245 , + 15.47 , 0.254724524020873 , + 15.475 , 0.291852234959508 , + 15.48 , 0.314393966922164 , + 15.485 , 0.321257693596354 , + 15.49 , 0.311592647764159 , + 15.495 , 0.284924209311069 , + 15.5 , 0.241333574629117 , + 15.505 , 0.181630984411648 , + 15.51 , 0.107473789318163 , + 15.515 , 2.138659993284420E-02 , + 15.52 , -7.333294612818740E-02 , + 15.525 , -0.17281819572361 , + 15.53 , -0.2729111163528 , + 15.535 , -0.36947452952708 , + 15.54 , -0.45868092644508 , + 15.545 , -0.53724054983261 , + 15.55 , -0.60253835404275 , + 15.555 , -0.65267651763316 , + 15.56 , -0.6864354117723 , + 15.565 , -0.70318229683703 , + 15.57 , -0.70276183568102 , + 15.575 , -0.68540176686393 , + 15.58 , -0.6516520838685 , + 15.585 , -0.60236502510189 , + 15.59 , -0.538706492591 , + 15.595 , -0.46217410897888 , + 15.6 , -0.37460077533887 , + 15.605 , -0.27810973417383 , + 15.61 , -0.17502716813551 , + 15.615 , -6.773228527287170E-02 , + 15.62 , 4.151501433409210E-02 , + 15.625 , 0.150751860185515 , + 15.63 , 0.258442092002889 , + 15.635 , 0.363538574930614 , + 15.64 , 0.465442765332169 , + 15.645 , 0.563876126508653 , + 15.65 , 0.658665592231715 , + 15.655 , 0.749509291460253 , + 15.66 , 0.835755718589599 , + 15.665 , 0.916264699152492 , + 15.67 , 0.989375816925145 , + 15.675 , 1.05301420158238 , + 15.68 , 1.10490739292059 , + 15.685 , 1.14288462647541 , + 15.69 , 1.16518849553063 , + 15.695 , 1.1707464912492 , + 15.7 , 1.15934157640063 , + 15.705 , 1.13165264409975 , + 15.71 , 1.08916287801769 , + 15.715 , 1.03396048449819 , + 15.72 , 0.968480895649285 , + 15.725 , 0.895239610317516 , + 15.73 , 0.816614791244956 , + 15.735 , 0.734699276030846 , + 15.74 , 0.651241095374945 , + 15.745 , 0.567649521370319 , + 15.75 , 0.485049163207599 , + 15.755 , 0.404335549986381 , + 15.76 , 0.326219056425138 , + 15.765 , 0.251231356865374 , + 15.77 , 0.179720965294244 , + 15.775 , 0.111831041730238 , + 15.78 , 4.750476279777080E-02 , + 15.785 , -1.347798247405040E-02 , + 15.79 , -7.141356069694010E-02 , + 15.795 , -0.12656450883031 , + 15.8 , -0.1790372399842 , + 15.805 , -0.2286955113047 , + 15.81 , -0.27512243015728 , + 15.815 , -0.31766447732324 , + 15.82 , -0.3555388110919 , + 15.825 , -0.38798921520158 , + 15.83 , -0.41444221410296 , + 15.835 , -0.43463094635962 , + 15.84 , -0.44864369112348 , + 15.845 , -0.4568931292131 , + 15.85 , -0.46000160926806 , + 15.855 , -0.45865250041628 , + 15.86 , -0.45343877892519 , + 15.865 , -0.44476504067162 , + 15.87 , -0.43283082098116 , + 15.875 , -0.41771237775514 , + 15.88 , -0.3995214147592 , + 15.885 , -0.37860415544342 , + 15.89 , -0.35572212713179 , + 15.895 , -0.33216132888134 , + 15.9 , -0.30972572285948 , + 15.905 , -0.29059799700979 , + 15.91 , -0.27708096353175 , + 15.915 , -0.27126155854412 , + 15.92 , -0.2746590319597 , + 15.925 , -0.28792675974919 , + 15.93 , -0.31066689274262 , + 15.935 , -0.34140077106906 , + 15.94 , -0.3777039602476 , + 15.945 , -0.41648665097944 , + 15.95 , -0.45437291128764 , + 15.955 , -0.48811381404708 , + 15.96 , -0.51496612193939 , + 15.965 , -0.5329765854495 , + 15.97 , -0.54113053164364 , + 15.975 , -0.53935053269995 , + 15.98 , -0.52835825596445 , + 15.985 , -0.50943591924887 , + 15.99 , -0.48413923071434 , + 15.995 , -0.45401661733085 , + 16.0 , -0.42038541841803 , + 16.005 , -0.38419449756936 , + 16.01 , -0.34598883075877 , + 16.015 , -0.30596135684737 , + 16.02 , -0.26406862723475 , + 16.025 , -0.22017134269813 , + 16.03 , -0.17416871222392 , + 16.035 , -0.12609398639317 , + 16.04 , -7.616580091339020E-02 , + 16.045 , -2.479105816937940E-02 , + 16.05 , 2.745737110728120E-02 , + 16.055 , 7.987861751112391E-02 , + 16.06 , 0.131672708259285 , + 16.065 , 0.181958505928516 , + 16.07 , 0.229779175022502 , + 16.075 , 0.274114727562895 , + 16.08 , 0.313912537790184 , + 16.085 , 0.348155259464482 , + 16.09 , 0.375959714090624 , + 16.095 , 0.396703409827832 , + 16.1 , 0.410143539243666 , + 16.105 , 0.416499539855543 , + 16.11 , 0.416464899336383 , + 16.115 , 0.411132431725026 , + 16.12 , 0.401834694221056 , + 16.125 , 0.389926331168038 , + 16.13 , 0.376552509432684 , + 16.135 , 0.362455371415181 , + 16.14 , 0.347864663265341 , + 16.145 , 0.332498409591647 , + 16.15 , 0.315673926599289 , + 16.155 , 0.296498803516978 , + 16.16 , 0.274095775096738 , + 16.165 , 0.247800859489553 , + 16.17 , 0.217295286911219 , + 16.175 , 0.182636701553898 , + 16.18 , 0.144199700257594 , + 16.185 , 0.102548913123023 , + 16.19 , 5.829530297192130E-02 , + 16.195 , 1.197592728082750E-02 , + 16.2 , -3.600290534227300E-02 , + 16.205 , -8.535615468618291E-02 , + 16.21 , -0.13584918811621 , + 16.215 , -0.18721153582539 , + 16.22 , -0.23906457716721 , + 16.225 , -0.29090350734869 , + 16.23 , -0.34213587188623 , + 16.235 , -0.392170780993 , + 16.24 , -0.44051591221236 , + 16.245 , -0.48684480865516 , + 16.25 , -0.53098857668878 , + 16.255 , -0.57284978382707 , + 16.26 , -0.61224319073572 , + 16.265 , -0.64871598685836 , + 16.27 , -0.68140334352395 , + 16.275 , -0.70898222576025 , + 16.28 , -0.7297595947791 , + 16.285 , -0.7418948815967 , + 16.29 , -0.74371891027858 , + 16.295 , -0.73407611710958 , + 16.3 , -0.71260329024102 , + 16.305 , -0.67986749030603 , + 16.31 , -0.63732240300856 , + 16.315 , -0.58707824160675 , + 16.32 , -0.53154405116823 , + 16.325 , -0.47301455154914 , + 16.33 , -0.41331652122001 , + 16.335 , -0.35357961212191 , + 16.34 , -0.29419497300413 , + 16.345 , -0.23495140181355 , + 16.35 , -0.17531083484956 , + 16.355 , -0.11473456907756 , + 16.36 , -5.298091218194400E-02 , + 16.365 , 9.709062607778981E-03 , + 16.37 , 7.256409889259650E-02 , + 16.375 , 0.134384503385863 , + 16.38 , 0.193739454595389 , + 16.385 , 0.24920525086789 , + 16.39 , 0.299568602241651 , + 16.395 , 0.343956956389216 , + 16.4 , 0.381866908791684 , + 16.405 , 0.413114650618461 , + 16.41 , 0.437733369467239 , + 16.415 , 0.455877974867213 , + 16.42 , 0.46776384132681 , + 16.425 , 0.473663922748246 , + 16.43 , 0.47395074709205 , + 16.435 , 0.469159269294089 , + 16.44 , 0.460028874160481 , + 16.445 , 0.447496145434672 , + 16.45 , 0.43262324571891 , + 16.455 , 0.416476298710912 , + 16.46 , 0.39998487143001 , + 16.465 , 0.383825594174033 , + 16.47 , 0.368369873101624 , + 16.475 , 0.353714574674185 , + 16.48 , 0.339789306901935 , + 16.485 , 0.326509782519242 , + 16.49 , 0.313927074313828 , + 16.495 , 0.302325131506492 , + 16.5 , 0.292230126681682 , + 16.505 , 0.284323481848275 , + 16.51 , 0.279278430837744 , + 16.515 , 0.277565991023392 , + 16.52 , 0.27928378094795 , + 16.525 , 0.284059216918989 , + 16.53 , 0.291055442661278 , + 16.535 , 0.299081158427955 , + 16.54 , 0.306775986803293 , + 16.545 , 0.312824550426672 , + 16.55 , 0.316148133716397 , + 16.555 , 0.316029035226392 , + 16.56 , 0.31215069004257 , + 16.565 , 0.304553318859 , + 16.57 , 0.293538129439739 , + 16.575 , 0.279551088336509 , + 16.58 , 0.263087654869009 , + 16.585 , 0.244637877428558 , + 16.59 , 0.224678132698894 , + 16.595 , 0.203690933512921 , + 16.6 , 0.182189070638557 , + 16.605 , 0.160712533967535 , + 16.61 , 0.139788985048289 , + 16.615 , 0.119849630257617 , + 16.62 , 0.101127004531768 , + 16.625 , 8.356184746823360E-02 , + 16.63 , 6.675788773408831E-02 , + 16.635 , 5.000422430522750E-02 , + 16.64 , 3.237781788478290E-02 , + 16.645 , 1.290492007865870E-02 , + 16.65 , -9.242841522190411E-03 , + 16.655 , -3.457307113926180E-02 , + 16.66 , -6.315044794397080E-02 , + 16.665 , -9.456431033805510E-02 , + 16.67 , -0.12798945588883 , + 16.675 , -0.16233338586658 , + 16.68 , -0.19643231791386 , + 16.685 , -0.22926030484873 , + 16.69 , -0.26010137973961 , + 16.695 , -0.28866176894499 , + 16.7 , -0.31509595200913 , + 16.705 , -0.33995273832631 , + 16.71 , -0.36405095016433 , + 16.715 , -0.38831357635509 , + 16.72 , -0.41358504112542 , + 16.725 , -0.44046253469103 , + 16.73 , -0.46915752304 , + 16.735 , -0.49941060932339 , + 16.74 , -0.53046223395319 , + 16.745 , -0.56108536534834 , + 16.75 , -0.58967419378453 , + 16.755 , -0.61438209498106 , + 16.76 , -0.63329121107995 , + 16.765 , -0.64459684400811 , + 16.77 , -0.64678096256853 , + 16.775 , -0.63875489537808 , + 16.78 , -0.61995220147847 , + 16.785 , -0.59036060295097 , + 16.79 , -0.55049669392639 , + 16.795 , -0.50133039140924 , + 16.8 , -0.44418245956687 , + 16.805 , -0.38061075875138 , + 16.81 , -0.31231562731901 , + 16.815 , -0.24106197922092 , + 16.82 , -0.1686326543263 , + 16.825 , -9.679598568714549E-02 , + 16.83 , -2.728380092511400E-02 , + 16.835 , 3.824293020108400E-02 , + 16.84 , 9.824002683071940E-02 , + 16.845 , 0.151346034414838 , + 16.85 , 0.196448639221428 , + 16.855 , 0.232748834021365 , + 16.86 , 0.259798117288868 , + 16.865 , 0.277506221603702 , + 16.87 , 0.286111918797314 , + 16.875 , 0.286131733842289 , + 16.88 , 0.278296735618878 , + 16.885 , 0.263498277115562 , + 16.89 , 0.24274886174333 , + 16.895 , 0.217166404345327 , + 16.9 , 0.187968246853482 , + 16.905 , 0.156461968787081 , + 16.91 , 0.124015045694316 , + 16.915 , 9.199139026589789E-02 , + 16.92 , 6.165693925050090E-02 , + 16.925 , 3.406870712543500E-02 , + 16.93 , 9.974305988061479E-03 , + 16.935 , -1.024803512308630E-02 , + 16.94 , -2.658403019625520E-02 , + 16.945 , -3.930334521456180E-02 , + 16.95 , -4.881605741987730E-02 , + 16.955 , -5.549717708582600E-02 , + 16.96 , -5.952392534556360E-02 , + 16.965 , -6.076975805147920E-02 , + 16.97 , -5.879314030308780E-02 , + 16.975 , -5.292859848425780E-02 , + 16.98 , -4.246799585244240E-02 , + 16.985 , -2.689000147691090E-02 , + 16.99 , -6.084643377645750E-03 , + 16.995 , 1.948494890135070E-02 , + 17.0 , 4.872381188647930E-02 , + 17.005 , 7.996838345792370E-02 , + 17.01 , 0.111158477862087 , + 17.015 , 0.140083752196672 , + 17.02 , 0.164651035916986 , + 17.025 , 0.18312224741681 , + 17.03 , 0.194279612887888 , + 17.035 , 0.197502657429334 , + 17.04 , 0.192756670137177 , + 17.045 , 0.180518699701142 , + 17.05 , 0.161669903280425 , + 17.055 , 0.137385815960322 , + 17.06 , 0.109043393552795 , + 17.065 , 7.814867623624100E-02 , + 17.07 , 4.627753286711330E-02 , + 17.075 , 1.501227171733180E-02 , + 17.08 , -1.413775130832270E-02 , + 17.085 , -3.983793711438840E-02 , + 17.09 , -6.104036519750250E-02 , + 17.095 , -7.708842285673501E-02 , + 17.1 , -8.778382263463140E-02 , + 17.105 , -9.339483606844121E-02 , + 17.11 , -9.459269265106150E-02 , + 17.115 , -9.232223501388739E-02 , + 17.12 , -8.763025422153840E-02 , + 17.125 , -8.148499770125020E-02 , + 17.13 , -7.462775457220110E-02 , + 17.135 , -6.748324353623050E-02 , + 17.14 , -6.014609852966310E-02 , + 17.145 , -5.243702915474610E-02 , + 17.15 , -4.400785444844100E-02 , + 17.155 , -3.446180958692290E-02 , + 17.16 , -2.345792198001310E-02 , + 17.165 , -1.077394978512690E-02 , + 17.17 , 3.679128728274960E-03 , + 17.175 , 1.988574043577430E-02 , + 17.18 , 3.777667605297300E-02 , + 17.185 , 5.727939847072780E-02 , + 17.19 , 7.834501552629659E-02 , + 17.195 , 0.100944016898245 , + 17.2 , 0.125030824710985 , + 17.205 , 0.150493723897266 , + 17.21 , 0.177105725250697 , + 17.215 , 0.204499198588219 , + 17.22 , 0.232171627050269 , + 17.225 , 0.259522952289019 , + 17.23 , 0.28591162656688 , + 17.235 , 0.310713017545991 , + 17.24 , 0.333360202463241 , + 17.245 , 0.353356491062333 , + 17.25 , 0.370257070307643 , + 17.255 , 0.383631410780558 , + 17.26 , 0.393022771718625 , + 17.265 , 0.397924531915073 , + 17.27 , 0.397789484581034 , + 17.275 , 0.392075448648513 , + 17.28 , 0.380321842357972 , + 17.285 , 0.362236624526743 , + 17.29 , 0.337775799625786 , + 17.295 , 0.307187618217491 , + 17.3 , 0.271012952518342 , + 17.305 , 0.230034748672592 , + 17.31 , 0.185192192119736 , + 17.315 , 0.1374724900416 , + 17.32 , 8.781061932229070E-02 , + 17.325 , 3.701123827098990E-02 , + 17.33 , -1.428322820528750E-02 , + 17.335 , -6.558572925239700E-02 , + 17.34 , -0.11651660768663 , + 17.345 , -0.16673628393002 , + 17.35 , -0.21587015869355 , + 17.355 , -0.26345095520442 , + 17.36 , -0.30888431890374 , + 17.365 , -0.35145163113226 , + 17.37 , -0.39033885127352 , + 17.375 , -0.42469770664605 , + 17.38 , -0.45371821850159 , + 17.385 , -0.4767087589838 , + 17.39 , -0.49316630884791 , + 17.395 , -0.50283205552792 , + 17.4 , -0.50572081737774 , + 17.405 , -0.50212196719028 , + 17.41 , -0.49256808518885 , + 17.415 , -0.47777707225688 , + 17.42 , -0.45857357564831 , + 17.425 , -0.43580164741667 , + 17.43 , -0.41024501009179 , + 17.435 , -0.3825675139441 , + 17.44 , -0.35328788816102 , + 17.445 , -0.32279085797443 , + 17.45 , -0.29137731320226 , + 17.455 , -0.25933449326509 , + 17.46 , -0.2270143702293 , + 17.465 , -0.19489381305459 , + 17.47 , -0.16360264699467 , + 17.475 , -0.1339028594142 , + 17.48 , -0.1066224111889 , + 17.485 , -8.254834652459410E-02 , + 17.49 , -6.230534889079800E-02 , + 17.495 , -4.623541755964700E-02 , + 17.5 , -3.430878641434340E-02 , + 17.505 , -2.607920373761460E-02 , + 17.51 , -2.069570607448080E-02 , + 17.515 , -1.696571448514850E-02 , + 17.52 , -1.346258488402600E-02 , + 17.525 , -8.657687814216761E-03 , + 17.53 , -1.066706267368470E-03 , + 17.535 , 1.061426833550790E-02 , + 17.54 , 2.738663947692650E-02 , + 17.545 , 4.985546977711610E-02 , + 17.55 , 7.816411304470480E-02 , + 17.555 , 0.111966131087412 , + 17.56 , 0.150434055062022 , + 17.565 , 0.19231308509617 , + 17.57 , 0.236013378779133 , + 17.575 , 0.279746002917216 , + 17.58 , 0.321684272405146 , + 17.585 , 0.360138883852544 , + 17.59 , 0.393718048669997 , + 17.595 , 0.421452589177563 , + 17.6 , 0.442859042866297 , + 17.605 , 0.457932285135102 , + 17.61 , 0.467063199142238 , + 17.615 , 0.470901203329776 , + 17.62 , 0.470183933061112 , + 17.625 , 0.465570499510758 , + 17.63 , 0.457509881267887 , + 17.635 , 0.446170505322342 , + 17.64 , 0.431441044905879 , + 17.645 , 0.412997059132728 , + 17.65 , 0.390417907394592 , + 17.655 , 0.363320032948617 , + 17.66 , 0.331482683771369 , + 17.665 , 0.294935652090983 , + 17.67 , 0.254001046090184 , + 17.675 , 0.209280977845859 , + 17.68 , 0.161607754445718 , + 17.685 , 0.111965960430188 , + 17.69 , 6.141586922651330E-02 , + 17.695 , 1.102093548815530E-02 , + 17.7 , -3.820203658969610E-02 , + 17.705 , -8.531704155098779E-02 , + 17.71 , -0.1294862669167 , + 17.715 , -0.16998594459785 , + 17.72 , -0.20622064042651 , + 17.725 , -0.23774591935919 , + 17.73 , -0.26428840511531 , + 17.735 , -0.28576606331927 , + 17.74 , -0.30229286763517 , + 17.745 , -0.31416772926296 , + 17.75 , -0.3218406535065 , + 17.755 , -0.3258645654062 , + 17.76 , -0.32683843068621 , + 17.765 , -0.32535588224289 , + 17.77 , -0.32196457829868 , + 17.775 , -0.31715006731732 , + 17.78 , -0.31133941077337 , + 17.785 , -0.30492235408688 , + 17.79 , -0.29827929738639 , + 17.795 , -0.29180571311681 , + 17.8 , -0.2859227673159 , + 17.805 , -0.2810686116836 , + 17.81 , -0.27767024271612 , + 17.815 , -0.27609995179852 , + 17.82 , -0.27662600365925 , + 17.825 , -0.27936632736658 , + 17.83 , -0.28425416349301 , + 17.835 , -0.29102164261339 , + 17.84 , -0.29920350847177 , + 17.845 , -0.30815897987418 , + 17.85 , -0.31710995942421 , + 17.855 , -0.32518836729579 , + 17.86 , -0.33149006868417 , + 17.865 , -0.33512980995752 , + 17.87 , -0.33529555909469 , + 17.875 , -0.3312973400369 , + 17.88 , -0.32261024125577 , + 17.885 , -0.30890529900639 , + 17.89 , -0.290070720818 , + 17.895 , -0.26621431048452 , + 17.9 , -0.23765242692415 , + 17.905 , -0.20488114286083 , + 17.91 , -0.16853769940936 , + 17.915 , -0.12935252659241 , + 17.92 , -8.810348127193721E-02 , + 17.925 , -4.557141302171240E-02 , + 17.93 , -2.513356389291560E-03 , + 17.935 , 4.035724323904150E-02 , + 17.94 , 8.237249752346711E-02 , + 17.945 , 0.122904827481364 , + 17.95 , 0.16135335850423 , + 17.955 , 0.197135089796928 , + 17.96 , 0.229680590055412 , + 17.965 , 0.258445542327015 , + 17.97 , 0.282931564681535 , + 17.975 , 0.3027256078172 , + 17.98 , 0.317544225316334 , + 17.985 , 0.327282981257925 , + 17.99 , 0.332055566875123 , + 17.995 , 0.332219078215985 , + 18.0 , 0.328372664764279 , + 18.005 , 0.321327968541342 , + 18.01 , 0.312046315167661 , + 18.015 , 0.301552393558308 , + 18.02 , 0.29083015000257 , + 18.025 , 0.280717140577436 , + 18.03 , 0.271812862742294 , + 18.035 , 0.264416834319869 , + 18.04 , 0.258507921567912 , + 18.045 , 0.25377043717894 , + 18.05 , 0.249664740892512 , + 18.055 , 0.245531784942376 , + 18.06 , 0.240715666971269 , + 18.065 , 0.234683989615924 , + 18.07 , 0.227126896191005 , + 18.075 , 0.218018915200585 , + 18.08 , 0.207635259720329 , + 18.085 , 0.196519817484055 , + 18.09 , 0.185413864456323 , + 18.095 , 0.175156074068905 , + 18.1 , 0.166570903921847 , + 18.105 , 0.160362276331594 , + 18.11 , 0.157026715204937 , + 18.115 , 0.156797444080986 , + 18.12 , 0.159624455669982 , + 18.125 , 0.16519187224497 , + 18.13 , 0.172968089200864 , + 18.135 , 0.1822813476427 , + 18.14 , 0.192409206882619 , + 18.145 , 0.202670276399768 , + 18.15 , 0.212504752944377 , + 18.155 , 0.221533110089593 , + 18.16 , 0.229583054017435 , + 18.165 , 0.236681693233947 , + 18.17 , 0.24301317231324 , + 18.175 , 0.248850323481097 , + 18.18 , 0.254471744041749 , + 18.185 , 0.260080804366178 , + 18.19 , 0.265741889443548 , + 18.195 , 0.27134643214208 , + 18.2 , 0.276614811069614 , + 18.205 , 0.281132591864889 , + 18.21 , 0.284412543870369 , + 18.215 , 0.285966261493111 , + 18.22 , 0.28537109719781 , + 18.225 , 0.282316011041418 , + 18.23 , 0.276621372715182 , + 18.235 , 0.268228573189369 , + 18.24 , 0.257171332184819 , + 18.245 , 0.243536231265936 , + 18.25 , 0.227433656521336 , + 18.255 , 0.208982058948683 , + 18.26 , 0.188316971988387 , + 18.265 , 0.165617801602736 , + 18.27 , 0.141146408794358 , + 18.275 , 0.115280086715596 , + 18.28 , 8.852986599304000E-02 , + 18.285 , 6.153122175946150E-02 , + 18.29 , 3.501087677361560E-02 , + 18.295 , 9.728375745511450E-03 , + 18.3 , -1.358945599970610E-02 , + 18.305 , -3.431372431462720E-02 , + 18.31 , -5.195992570184670E-02 , + 18.315 , -6.621459033346280E-02 , + 18.32 , -7.693590669330690E-02 , + 18.325 , -8.413813135115721E-02 , + 18.33 , -8.796246104481401E-02 , + 18.335 , -8.865026558137970E-02 , + 18.34 , -8.651948855745679E-02 , + 18.345 , -8.194991749053140E-02 , + 18.35 , -7.537263942731640E-02 , + 18.355 , -6.726122085666700E-02 , + 18.36 , -5.811712688388060E-02 , + 18.365 , -4.844978592925620E-02 , + 18.37 , -3.874961154322750E-02 , + 18.375 , -2.946321539637920E-02 , + 18.38 , -2.097389378477130E-02 , + 18.385 , -1.359774681728760E-02 , + 18.39 , -7.592927023032140E-03 , + 18.395 , -3.182771456432360E-03 , + 18.4 , -5.797783397815400E-04 , + 18.405 , -3.403899532317900E-06 , + 18.41 , -1.673453644507240E-03 , + 18.415 , -5.782448384807060E-03 , + 18.42 , -1.244176672900140E-02 , + 18.425 , -2.161800758848600E-02 , + 18.43 , -3.307323100644420E-02 , + 18.435 , -4.633260284878780E-02 , + 18.44 , -6.069252068692880E-02 , + 18.445 , -7.527964829315580E-02 , + 18.45 , -8.915230216299309E-02 , + 18.455 , -0.10143296879817 , + 18.46 , -0.11144311748952 , + 18.465 , -0.11881688272356 , + 18.47 , -0.12356683521081 , + 18.475 , -0.12609239258508 , + 18.48 , -0.12712667509216 , + 18.485 , -0.12763705192334 , + 18.49 , -0.12869455777906 , + 18.495 , -0.13134291006952 , + 18.5 , -0.13648385782305 , + 18.505 , -0.14479654925278 , + 18.51 , -0.15669435068272 , + 18.515 , -0.17231899455012 , + 18.52 , -0.19156053351027 , + 18.525 , -0.2140948418449 , + 18.53 , -0.23942532421762 , + 18.535 , -0.26692808116807 , + 18.54 , -0.29589366741626 , + 18.545 , -0.32556987300455 , + 18.55 , -0.35520167089443 , + 18.555 , -0.38407157568151 , + 18.56 , -0.41153207462536 , + 18.565 , -0.43702839771631 , + 18.57 , -0.46010162556848 , + 18.575 , -0.4803753536196 , + 18.58 , -0.49752469104796 , + 18.585 , -0.51123932275576 , + 18.59 , -0.52119100580172 , + 18.595 , -0.52702031860061 , + 18.6 , -0.52835074084744 , + 18.605 , -0.52483178107225 , + 18.61 , -0.51620504117931 , + 18.615 , -0.50237569943468 , + 18.62 , -0.4834730346886 , + 18.625 , -0.45987873870396 , + 18.63 , -0.43221396453591 , + 18.635 , -0.40128199130244 , + 18.64 , -0.36797809251035 , + 18.645 , -0.33318247540211 , + 18.65 , -0.2976655847206 , + 18.655 , -0.26201863587465 , + 18.66 , -0.22662902367112 , + 18.665 , -0.19169728326541 , + 18.67 , -0.15729264669158 , + 18.675 , -0.1234229501959 , + 18.68 , -9.010582719609091E-02 , + 18.685 , -5.741817970014060E-02 , + 18.69 , -2.552248385036910E-02 , + 18.695 , 5.339196527069970E-03 , + 18.7 , 3.486712311982680E-02 , + 18.705 , 6.273660435450590E-02 , + 18.71 , 8.862290998998250E-02 , + 18.715 , 0.112218745947816 , + 18.72 , 0.133237764611335 , + 18.725 , 0.151417354399901 , + 18.73 , 0.166520793732197 , + 18.735 , 0.178358092928635 , + 18.74 , 0.186819039757722 , + 18.745 , 0.191918879888126 , + 18.75 , 0.193841382081441 , + 18.755 , 0.192966026117615 , + 18.76 , 0.189861849245228 , + 18.765 , 0.185243424802453 , + 18.77 , 0.179886808055877 , + 18.775 , 0.174523130427245 , + 18.78 , 0.169727209876345 , + 18.785 , 0.165828266795135 , + 18.79 , 0.162860717438664 , + 18.795 , 0.160568509105303 , + 18.8 , 0.158460262202499 , + 18.805 , 0.155903588032585 , + 18.81 , 0.152236721793017 , + 18.815 , 0.146874335438137 , + 18.82 , 0.139388100075902 , + 18.825 , 0.129551248829624 , + 18.83 , 0.117346184292776 , + 18.835 , 0.102944396398025 , + 18.84 , 8.667203203856250E-02 , + 18.845 , 6.897292950992250E-02 , + 18.85 , 5.037981195577830E-02 , + 18.855 , 3.149222301298260E-02 , + 18.86 , 1.295788909713510E-02 , + 18.865 , -4.552694712540460E-03 , + 18.87 , -2.038471143298640E-02 , + 18.875 , -3.395374370024890E-02 , + 18.88 , -4.480974308295430E-02 , + 18.885 , -5.269874412847760E-02 , + 18.89 , -5.760475116618620E-02 , + 18.895 , -5.975782869643340E-02 , + 18.9 , -5.959990728708000E-02 , + 18.905 , -5.771202182665640E-02 , + 18.91 , -5.471620957553570E-02 , + 18.915 , -5.117481281717030E-02 , + 18.92 , -4.751155121434680E-02 , + 18.925 , -4.397377050356170E-02 , + 18.93 , -4.064613036051550E-02 , + 18.935 , -3.750986634275660E-02 , + 18.94 , -3.453164301123860E-02 , + 18.945 , -3.175456679161500E-02 , + 18.95 , -2.936540580184520E-02 , + 18.955 , -2.771540773125420E-02 , + 18.96 , -2.728673446781490E-02 , + 18.965 , -2.860928038065850E-02 , + 18.97 , -3.214733887015950E-02 , + 18.975 , -3.818284412564310E-02 , + 18.98 , -4.672302188795090E-02 , + 18.985 , -5.745461744704080E-02 , + 18.99 , -6.975424591801779E-02 , + 18.995 , -8.275205425474760E-02 , + 19.0 , -9.543348500501039E-02 , + 19.005 , -0.10675671144965 , + 19.01 , -0.11576388175306 , + 19.015 , -0.12166743333762 , + 19.02 , -0.12390264431233 , + 19.025 , -0.12214656117846 , + 19.03 , -0.11631154879176 , + 19.035 , -0.10652423304446 , + 19.04 , -9.310118520163460E-02 , + 19.045 , -7.652590539072700E-02 , + 19.05 , -5.743089586506230E-02 , + 19.055 , -3.657596705689010E-02 , + 19.06 , -1.481925977005460E-02 , + 19.065 , 6.926924474783110E-03 , + 19.07 , 2.775463368340260E-02 , + 19.075 , 4.683156424739500E-02 , + 19.08 , 6.347270763070770E-02 , + 19.085 , 7.720227146370970E-02 , + 19.09 , 8.779042470764520E-02 , + 19.095 , 9.526029188212271E-02 , + 19.1 , 9.986040447199600E-02 , + 19.105 , 0.102009856725406 , + 19.11 , 0.102225525300876 , + 19.115 , 0.101047428528718 , + 19.12 , 9.897427931868839E-02 , + 19.125 , 9.642072648080460E-02 , + 19.13 , 9.369918170530429E-02 , + 19.135 , 9.102713402201090E-02 , + 19.14 , 8.855073690832560E-02 , + 19.145 , 8.637784747202421E-02 , + 19.15 , 8.460889194052530E-02 , + 19.155 , 8.335969452805890E-02 , + 19.16 , 8.277035792073900E-02 , + 19.165 , 8.300094888178290E-02 , + 19.17 , 8.421449446395760E-02 , + 19.175 , 8.655290215462839E-02 , + 19.18 , 9.010941198122500E-02 , + 19.185 , 9.490288969345520E-02 , + 19.19 , 0.100856185025776 , + 19.195 , 0.107783589409055 , + 19.2 , 0.115386291208123 , + 19.205 , 0.123260349877366 , + 19.21 , 0.130913935378 , + 19.215 , 0.137796521245135 , + 19.22 , 0.143335849367096 , + 19.225 , 0.14698030532155 , + 19.23 , 0.148242029288944 , + 19.235 , 0.146735661784648 , + 19.24 , 0.142208324703231 , + 19.245 , 0.134556865273917 , + 19.25 , 0.123832305128576 , + 19.255 , 0.110231039547548 , + 19.26 , 9.407703422254150E-02 , + 19.265 , 7.579763962651660E-02 , + 19.27 , 5.589930332000480E-02 , + 19.275 , 3.494345559651580E-02 , + 19.28 , 1.352655612925890E-02 , + 19.285 , -7.738281430620860E-03 , + 19.29 , -2.823640126172170E-02 , + 19.295 , -4.736851280459840E-02 , + 19.3 , -6.456726778946650E-02 , + 19.305 , -7.931522042729799E-02 , + 19.31 , -9.116146754991310E-02 , + 19.315 , -9.973543395603350E-02 , + 19.32 , -0.10475595669325 , + 19.325 , -0.10603430822357 , + 19.33 , -0.10347284701214 , + 19.335 , -9.706124752024230E-02 , + 19.34 , -8.687430152469530E-02 , + 19.345 , -7.307405512475940E-02 , + 19.35 , -5.591887411984520E-02 , + 19.355 , -3.577706479529710E-02 , + 19.36 , -1.314335388833300E-02 , + 19.365 , 1.134983613684490E-02 , + 19.37 , 3.693079681400050E-02 , + 19.375 , 6.270474265740390E-02 , + 19.38 , 8.768905345507640E-02 , + 19.385 , 0.1108686368144 , + 19.39 , 0.1312644416171 , + 19.395 , 0.148009041167522 , + 19.4 , 0.160416739422417 , + 19.405 , 0.168040427167663 , + 19.41 , 0.170704607506662 , + 19.415 , 0.168512624998284 , + 19.42 , 0.161826470167071 , + 19.425 , 0.151223327305197 , + 19.43 , 0.137436526462059 , + 19.435 , 0.12128787067038 , + 19.44 , 0.103621500126964 , + 19.445 , 8.524411667406280E-02 , + 19.45 , 6.687930552254420E-02 , + 19.455 , 4.913589731864990E-02 , + 19.46 , 3.249281642772610E-02 , + 19.465 , 1.729796363375550E-02 , + 19.47 , 3.779772699936010E-03 , + 19.475 , -7.933453913126739E-03 , + 19.48 , -1.778837362450150E-02 , + 19.485 , -2.578180319663970E-02 , + 19.49 , -3.193743546434960E-02 , + 19.495 , -3.628975661666560E-02 , + 19.5 , -3.887558954382360E-02 , + 19.505 , -3.973470241057670E-02 , + 19.51 , -3.891788867951480E-02 , + 19.515 , -3.649986139114820E-02 , + 19.52 , -3.259249709820460E-02 , + 19.525 , -2.735427053548850E-02 , + 19.53 , -2.099133842643200E-02 , + 19.535 , -1.374830536741160E-02 , + 19.54 , -5.887877188928280E-03 , + 19.545 , 2.336959611728440E-03 , + 19.55 , 1.071436148192050E-02 , + 19.555 , 1.910203440373310E-02 , + 19.56 , 2.744608047788240E-02 , + 19.565 , 3.578603089731680E-02 , + 19.57 , 4.424249115467690E-02 , + 19.575 , 5.298918396292150E-02 , + 19.58 , 6.221237826554930E-02 , + 19.585 , 7.206505940082400E-02 , + 19.59 , 8.262287004060030E-02 , + 19.595 , 9.385089818082880E-02 , + 19.6 , 0.105586535210159 , + 19.605 , 0.117542979202558 , + 19.61 , 0.129332330456747 , + 19.615 , 0.140505656304056 , + 19.62 , 0.150602470682144 , + 19.625 , 0.159201510072528 , + 19.63 , 0.165963272203869 , + 19.635 , 0.170657754779367 , + 19.64 , 0.173171986392552 , + 19.645 , 0.173497060176099 , + 19.65 , 0.171698563869022 , + 19.655 , 0.167877117650055 , + 19.66 , 0.162128958008132 , + 19.665 , 0.154515020640188 , + 19.67 , 0.145047978425579 , + 19.675 , 0.133699089240968 , + 19.68 , 0.120425826006013 , + 19.685 , 0.105211954035009 , + 19.69 , 8.811482794436119E-02 , + 19.695 , 6.930362885349300E-02 , + 19.7 , 4.908317786948910E-02 , + 19.705 , 2.789284466062680E-02 , + 19.71 , 6.282684187232620E-03 , + 19.715 , -1.513293891731910E-02 , + 19.72 , -3.573219349475490E-02 , + 19.725 , -5.494565996060560E-02 , + 19.73 , -7.230331792209500E-02 , + 19.735 , -8.746611435403620E-02 , + 19.74 , -0.10023408196077 , + 19.745 , -0.11053680897542 , + 19.75 , -0.11840927699064 , + 19.755 , -0.12396609115553 , + 19.76 , -0.12737940482213 , + 19.765 , -0.12886942680431 , + 19.77 , -0.12870508549978 , + 19.775 , -0.12721486235372 , + 19.78 , -0.12479696224801 , + 19.785 , -0.12192134851853 , + 19.79 , -0.11911512331687 , + 19.795 , -0.11692852296234 , + 19.8 , -0.1158828122011 , + 19.805 , -0.11640862718208 , + 19.81 , -0.11878469144379 , + 19.815 , -0.12309145404105 , + 19.82 , -0.12918833366224 , + 19.825 , -0.13672125838288 , + 19.83 , -0.14515938284391 , + 19.835 , -0.15385497532022 , + 19.84 , -0.16211467849934 , + 19.845 , -0.16927092799142 , + 19.85 , -0.1747405815055 , + 19.855 , -0.17806542050622 , + 19.86 , -0.17893075004105 , + 19.865 , -0.17716517197334 , + 19.87 , -0.1727273398208 , + 19.875 , -0.16568659834495 , + 19.88 , -0.15620370102824 , + 19.885 , -0.14451379659869 , + 19.89 , -0.13091402606184 , + 19.895 , -0.11575112780621 , + 19.9 , -9.940839096806510E-02 , + 19.905 , -8.228798219382000E-02 , + 19.91 , -6.479104079602420E-02 , + 19.915 , -4.729626907194930E-02 , + 19.92 , -3.014389625728430E-02 , + 19.925 , -1.362770379699480E-02 , + 19.93 , 1.998432435284760E-03 , + 19.935 , 1.650283145918720E-02 , + 19.94 , 2.964895620060110E-02 , + 19.945 , 4.116860136833410E-02 , + 19.95 , 5.074351304162170E-02 , + 19.955 , 5.800645031803000E-02 , + 19.96 , 6.256532313956960E-02 , + 19.965 , 6.405233292472851E-02 , + 19.97 , 6.218959865152200E-02 , + 19.975 , 5.686184515599930E-02 , + 19.98 , 4.817972906533240E-02 , + 19.985 , 3.651967859402010E-02 , + 19.99 , 2.252985493696160E-02 , + 19.995 , 7.097071756102240E-03 , + 20.0 , -8.721812839652310E-03 , + 20.005 , -2.379447424676810E-02 , + 20.01 , -3.701839037090120E-02 , + 20.015 , -4.742092878891140E-02 , + 20.02 , -5.423951270215350E-02 , + 20.025 , -5.697258922350620E-02 , + 20.03 , -5.539776158916270E-02 , + 20.035 , -4.956057087520670E-02 , + 20.04 , -3.974179526714170E-02 , + 20.045 , -2.641288342533750E-02 , + 20.05 , -1.019081782994870E-02 , + 20.055 , 8.202447545571230E-03 , + 20.06 , 2.797116679219240E-02 , + 20.065 , 4.827036868959560E-02 , + 20.07 , 6.822566739672180E-02 , + 20.075 , 8.695562572496580E-02 , + 20.08 , 0.103598292547575 , + 20.085 , 0.117345557097572 , + 20.09 , 0.127481089438341 , + 20.095 , 0.133420394415517 , + 20.1 , 0.134744188882336 , + 20.105 , 0.131221676654994 , + 20.11 , 0.122818973076751 , + 20.115 , 0.109691680974573 , + 20.12 , 9.216522604322611E-02 , + 20.125 , 7.070600814518090E-02 , + 20.13 , 4.589147778332150E-02 , + 20.135 , 1.838180387523030E-02 , + 20.14 , -1.110108370552780E-02 , + 20.145 , -4.178877084026370E-02 , + 20.15 , -7.287571484484311E-02 , + 20.155 , -0.10352963470195 , + 20.16 , -0.13290387884342 , + 20.165 , -0.16015839093613 , + 20.17 , -0.18448715088686 , + 20.175 , -0.20515328670567 , + 20.18 , -0.22152568111903 , + 20.185 , -0.23311328473587 , + 20.19 , -0.23959100455607 , + 20.195 , -0.24081433909493 , + 20.2 , -0.23682050088862 , + 20.205 , -0.22781739014645 , + 20.21 , -0.21416412518464 , + 20.215 , -0.19634582016096 , + 20.22 , -0.17494767238438 , + 20.225 , -0.15062916150452 , + 20.23 , -0.12410162176008 , + 20.235 , -9.610482601536199E-02 , + 20.24 , -6.738446390246500E-02 , + 20.245 , -3.866506506796110E-02 , + 20.25 , -1.062408132283030E-02 , + 20.255 , 1.613821656425260E-02 , + 20.26 , 4.112363448240460E-02 , + 20.265 , 6.395563455415000E-02 , + 20.27 , 8.438638743734070E-02 , + 20.275 , 0.10229225024046 , + 20.28 , 0.11765525248804 , + 20.285 , 0.13053719119583 , + 20.29 , 0.141047644803831 , + 20.295 , 0.14931741898274 , + 20.3 , 0.155478926240496 , + 20.305 , 0.159660339201315 , + 20.31 , 0.161990227205732 , + 20.315 , 0.162612590283051 , + 20.32 , 0.161703234926074 , + 20.325 , 0.159483350064339 , + 20.33 , 0.156221155279841 , + 20.335 , 0.152221918187124 , + 20.34 , 0.147804677752111 , + 20.345 , 0.143271172359312 , + 20.35 , 0.138873332096741 , + 20.355 , 0.134787926819641 , + 20.36 , 0.131103697853831 , + 20.365 , 0.127825557460833 , + 20.37 , 0.12489405648423 , + 20.375 , 0.122216684366155 , + 20.38 , 0.119703338338164 , + 20.385 , 0.117298332826065 , + 20.39 , 0.115002111347558 , + 20.395 , 0.1128792665639 , + 20.4 , 0.111051600017025 , + 20.405 , 0.109680624221402 , + 20.41 , 0.108942958893076 , + 20.415 , 0.109006468464252 , + 20.42 , 0.110010955231372 , + 20.425 , 0.112056904842183 , + 20.43 , 0.115202427994996 , + 20.435 , 0.119466647868312 , + 20.44 , 0.124835559019734 , + 20.445 , 0.131267773242386 , + 20.45 , 0.138696105432056 , + 20.455 , 0.14702533406325 , + 20.46 , 0.156125727838975 , + 20.465 , 0.165825042690333 , + 20.47 , 0.0 , + ), + INTERPOL='LIN', + PROL_DROITE='CONSTANT', + PROL_GAUCHE='EXCLU',); + + +ACCELV1=DEFI_FONCTION(NOM_PARA='INST', + VALE= +( + 0.0 , 0.0 , + 1.000000000000000E-02 , 1.310000000000000E-03 , + 2.000000000000000E-02 , 7.200000000000000E-04 , + 3.000000000000000E-02 , -1.160000000000000E-03 , + 4.000000000000000E-02 , -4.010000000000000E-03 , + 5.000000000000000E-02 , -8.580000000000001E-03 , + 6.000000000000000E-02 , -1.459000000000000E-02 , + 7.000000000000001E-02 , -1.920000000000000E-02 , + 8.000000000000000E-02 , -1.947000000000000E-02 , + 9.000000000000000E-02 , -1.781000000000000E-02 , + 0.1 , -1.970000000000000E-02 , + 0.11 , -2.520000000000000E-02 , + 0.12 , -3.281000000000000E-02 , + 0.13 , -4.377000000000000E-02 , + 0.14 , -5.504000000000000E-02 , + 0.15 , -5.797000000000000E-02 , + 0.16 , -4.627000000000000E-02 , + 0.17 , -2.536000000000000E-02 , + 0.18 , -6.700000000000000E-03 , + 0.19 , 7.849999999999999E-03 , + 0.2 , 2.168000000000000E-02 , + 0.21 , 3.643000000000000E-02 , + 0.22 , 5.686000000000000E-02 , + 0.23 , 8.019999999999999E-02 , + 0.24 , 8.942000000000000E-02 , + 0.25 , 7.790000000000000E-02 , + 0.26 , 6.301000000000000E-02 , + 0.27 , 5.860000000000000E-02 , + 0.28 , 5.444000000000000E-02 , + 0.29 , 3.314000000000000E-02 , + 0.3 , -4.730000000000000E-03 , + 0.31 , -3.492000000000000E-02 , + 0.32 , -3.413000000000000E-02 , + 0.33 , -7.530000000000000E-03 , + 0.34 , 1.991000000000000E-02 , + 0.35 , 2.983000000000000E-02 , + 0.36 , 2.482000000000000E-02 , + 0.37 , 1.676000000000000E-02 , + 0.38 , 4.890000000000000E-03 , + 0.39 , -1.521000000000000E-02 , + 0.4 , -3.575000000000000E-02 , + 0.41 , -5.053000000000000E-02 , + 0.42 , -6.325000000000000E-02 , + 0.43 , -7.273000000000000E-02 , + 0.44 , -7.520000000000000E-02 , + 0.45 , -8.463000000000000E-02 , + 0.46 , -0.11597 , + 0.47 , -0.1564 , + 0.48 , -0.18027 , + 0.49 , -0.17201 , + 0.5 , -0.13845 , + 0.51 , -0.1016 , + 0.52 , -6.390999999999999E-02 , + 0.53 , -1.035000000000000E-02 , + 0.54 , 5.961000000000000E-02 , + 0.55 , 0.12972 , + 0.56 , 0.18788 , + 0.57 , 0.23015 , + 0.58 , 0.23082 , + 0.59 , 0.1643 , + 0.6 , 6.750000000000000E-02 , + 0.61 , 7.450000000000000E-03 , + 0.62 , 1.664000000000000E-02 , + 0.63 , 8.058000000000000E-02 , + 0.64 , 0.15546 , + 0.65 , 0.2133 , + 0.66 , 0.24265 , + 0.67 , 0.21922 , + 0.68 , 0.1295 , + 0.69 , 1.220000000000000E-03 , + 0.7 , -0.12397 , + 0.71 , -0.1882 , + 0.72 , -0.17059 , + 0.73 , -0.11119 , + 0.74 , -9.375000000000000E-02 , + 0.75 , -0.15419 , + 0.76 , -0.21371 , + 0.77 , -0.19269 , + 0.78 , -0.12556 , + 0.79 , -8.054000000000000E-02 , + 0.8 , -5.658000000000000E-02 , + 0.81 , -2.563000000000000E-02 , + 0.82 , -1.082000000000000E-02 , + 0.83 , -6.067000000000000E-02 , + 0.84 , -0.16876 , + 0.85 , -0.26933 , + 0.86 , -0.31693 , + 0.87 , -0.3189 , + 0.88 , -0.31999 , + 0.89 , -0.32387 , + 0.9 , -0.35623 , + 0.91 , -0.38483 , + 0.92 , -0.36307 , + 0.93 , -0.29278 , + 0.94 , -0.18821 , + 0.95 , -6.119000000000000E-02 , + 0.96 , 3.932000000000000E-02 , + 0.97 , 7.092000000000000E-02 , + 0.98 , 3.394000000000000E-02 , + 0.99 , 1.056000000000000E-02 , + 1.0 , 3.006000000000000E-02 , + 1.01 , 4.384000000000000E-02 , + 1.02 , 1.582000000000000E-02 , + 1.03 , -2.452000000000000E-02 , + 1.04 , -3.991000000000000E-02 , + 1.05 , -4.053000000000000E-02 , + 1.06 , -4.416000000000000E-02 , + 1.07 , -6.185000000000000E-02 , + 1.08 , -0.10165 , + 1.09 , -0.13542 , + 1.1 , -0.142 , + 1.11 , -0.13819 , + 1.12 , -0.13187 , + 1.13 , -0.11765 , + 1.14 , -8.853000000000000E-02 , + 1.15 , -4.957000000000000E-02 , + 1.16 , -2.751000000000000E-02 , + 1.17 , -4.837000000000000E-02 , + 1.18 , -0.11303 , + 1.19 , -0.16115 , + 1.2 , -0.1365 , + 1.21 , -9.369000000000000E-02 , + 1.22 , -0.10681 , + 1.23 , -0.16911 , + 1.24 , -0.23593 , + 1.25 , -0.27067 , + 1.26 , -0.27471 , + 1.27 , -0.25731 , + 1.28 , -0.19103 , + 1.29 , -7.716000000000001E-02 , + 1.3 , 1.100000000000000E-03 , + 1.31 , -4.582000000000000E-02 , + 1.32 , -0.19352 , + 1.33 , -0.32144 , + 1.34 , -0.37399 , + 1.35 , -0.40308 , + 1.36 , -0.45452 , + 1.37 , -0.51071 , + 1.38 , -0.52231 , + 1.39 , -0.45018 , + 1.4 , -0.30537 , + 1.41 , -0.15517 , + 1.42 , -7.362000000000000E-02 , + 1.43 , -9.615000000000000E-02 , + 1.44 , -0.17148 , + 1.45 , -0.17476 , + 1.46 , -8.399000000000000E-02 , + 1.47 , -2.696000000000000E-02 , + 1.48 , -6.808000000000000E-02 , + 1.49 , -0.12817 , + 1.5 , -0.12265 , + 1.51 , -6.149000000000000E-02 , + 1.52 , -8.380000000000000E-03 , + 1.53 , 1.139000000000000E-02 , + 1.54 , 5.830000000000000E-03 , + 1.55 , -2.002000000000000E-02 , + 1.56 , -3.584000000000000E-02 , + 1.57 , -1.060000000000000E-03 , + 1.58 , 6.028000000000000E-02 , + 1.59 , 8.509000000000000E-02 , + 1.6 , 9.515000000000000E-02 , + 1.61 , 0.14372 , + 1.62 , 0.17863 , + 1.63 , 0.16098 , + 1.64 , 0.15227 , + 1.65 , 0.16265 , + 1.66 , 0.1009 , + 1.67 , -8.347000000000000E-02 , + 1.68 , -0.28571 , + 1.69 , -0.3845 , + 1.7 , -0.42649 , + 1.71 , -0.48045 , + 1.72 , -0.48546 , + 1.73 , -0.34744 , + 1.74 , -4.460000000000000E-02 , + 1.75 , 0.31704 , + 1.76 , 0.56244 , + 1.77 , 0.61288 , + 1.78 , 0.56235 , + 1.79 , 0.56046 , + 1.8 , 0.58601 , + 1.81 , 0.50428 , + 1.82 , 0.34783 , + 1.83 , 0.2707 , + 1.84 , 0.32579 , + 1.85 , 0.43838 , + 1.86 , 0.49734 , + 1.87 , 0.46993 , + 1.88 , 0.42104 , + 1.89 , 0.39656 , + 1.9 , 0.37011 , + 1.91 , 0.3211 , + 1.92 , 0.27122 , + 1.93 , 0.2175 , + 1.94 , 0.1251 , + 1.95 , 3.090000000000000E-03 , + 1.96 , -9.401000000000000E-02 , + 1.97 , -0.13751 , + 1.98 , -0.12623 , + 1.99 , -3.147000000000000E-02 , + 2.0 , 0.15999 , + 2.01 , 0.39077 , + 2.02 , 0.57348 , + 2.03 , 0.61086 , + 2.04 , 0.4807 , + 2.05 , 0.29864 , + 2.06 , 0.18108 , + 2.07 , 0.167 , + 2.08 , 0.23579 , + 2.09 , 0.28543 , + 2.1 , 0.21887 , + 2.11 , 6.136000000000000E-02 , + 2.12 , -8.754000000000001E-02 , + 2.13 , -0.18795 , + 2.14 , -0.28217 , + 2.15 , -0.39328 , + 2.16 , -0.47351 , + 2.17 , -0.45659 , + 2.18 , -0.38611 , + 2.19 , -0.40359 , + 2.2 , -0.49671 , + 2.21 , -0.47831 , + 2.22 , -0.24834 , + 2.23 , 9.692000000000001E-02 , + 2.24 , 0.36832 , + 2.25 , 0.49779 , + 2.26 , 0.55588 , + 2.27 , 0.55074 , + 2.28 , 0.47652 , + 2.29 , 0.42596 , + 2.3 , 0.45439 , + 2.31 , 0.4758 , + 2.32 , 0.36011 , + 2.33 , 9.916999999999999E-02 , + 2.34 , -0.22081 , + 2.35 , -0.53559 , + 2.36 , -0.73055 , + 2.37 , -0.68219 , + 2.38 , -0.46512 , + 2.39 , -0.29795 , + 2.4 , -0.29155 , + 2.41 , -0.37205 , + 2.42 , -0.45321 , + 2.43 , -0.52678 , + 2.44 , -0.53549 , + 2.45 , -0.39903 , + 2.46 , -0.17073 , + 2.47 , 4.007000000000000E-02 , + 2.48 , 0.19098 , + 2.49 , 0.23016 , + 2.5 , 0.11487 , + 2.51 , -3.277000000000000E-02 , + 2.52 , -2.678000000000000E-02 , + 2.53 , 0.14456 , + 2.54 , 0.33564 , + 2.55 , 0.43459 , + 2.56 , 0.47636 , + 2.57 , 0.56106 , + 2.58 , 0.69871 , + 2.59 , 0.78021 , + 2.6 , 0.69033 , + 2.61 , 0.48738 , + 2.62 , 0.37542 , + 2.63 , 0.44792 , + 2.64 , 0.63115 , + 2.65 , 0.80303 , + 2.66 , 0.86913 , + 2.67 , 0.81861 , + 2.68 , 0.67639 , + 2.69 , 0.44981 , + 2.7 , 0.19577 , + 2.71 , 1.762000000000000E-02 , + 2.72 , -7.475000000000000E-02 , + 2.73 , -0.18543 , + 2.74 , -0.31712 , + 2.75 , -0.30763 , + 2.76 , -5.022000000000000E-02 , + 2.77 , 0.36264 , + 2.78 , 0.71418 , + 2.79 , 0.86474 , + 2.8 , 0.91391 , + 2.81 , 0.97578 , + 2.82 , 0.99997 , + 2.83 , 0.90663 , + 2.84 , 0.71448 , + 2.85 , 0.55982 , + 2.86 , 0.55183 , + 2.87 , 0.63744 , + 2.88 , 0.70292 , + 2.89 , 0.68299 , + 2.9 , 0.58616 , + 2.91 , 0.47484 , + 2.92 , 0.38822 , + 2.93 , 0.3229 , + 2.94 , 0.25296 , + 2.95 , 0.16705 , + 2.96 , 0.10044 , + 2.97 , 7.353000000000000E-02 , + 2.98 , 4.790000000000000E-02 , + 2.99 , -3.974000000000000E-02 , + 3.0 , -0.21989 , + 3.01 , -0.43388 , + 3.02 , -0.59094 , + 3.03 , -0.68752 , + 3.04 , -0.77344 , + 3.05 , -0.84165 , + 3.06 , -0.87592 , + 3.07 , -0.92165 , + 3.08 , -0.98681 , + 3.09 , -0.9813 , + 3.1 , -0.85134 , + 3.11 , -0.71226 , + 3.12 , -0.70318 , + 3.13 , -0.73062 , + 3.14 , -0.63434 , + 3.15 , -0.49621 , + 3.16 , -0.46434 , + 3.17 , -0.4895 , + 3.18 , -0.43989 , + 3.19 , -0.297 , + 3.2 , -0.12264 , + 3.21 , 5.685000000000000E-02 , + 3.22 , 0.20721 , + 3.23 , 0.29127 , + 3.24 , 0.37167 , + 3.25 , 0.47314 , + 3.26 , 0.48428 , + 3.27 , 0.34199 , + 3.28 , 0.14378 , + 3.29 , 2.014000000000000E-02 , + 3.3 , -3.310000000000000E-03 , + 3.31 , 3.046000000000000E-02 , + 3.32 , 7.851000000000000E-02 , + 3.33 , 0.1222 , + 3.34 , 0.19291 , + 3.35 , 0.2916 , + 3.36 , 0.38011 , + 3.37 , 0.46514 , + 3.38 , 0.52328 , + 3.39 , 0.51669 , + 3.4 , 0.4727 , + 3.41 , 0.38682 , + 3.42 , 0.22939 , + 3.43 , 1.800000000000000E-02 , + 3.44 , -0.199 , + 3.45 , -0.40018 , + 3.46 , -0.5733 , + 3.47 , -0.72332 , + 3.48 , -0.82419 , + 3.49 , -0.83348 , + 3.5 , -0.74258 , + 3.51 , -0.61694 , + 3.52 , -0.56099 , + 3.53 , -0.61112 , + 3.54 , -0.71023 , + 3.55 , -0.78959 , + 3.56 , -0.85129 , + 3.57 , -0.93566 , + 3.58 , -0.99997 , + 3.59 , -0.92052 , + 3.6 , -0.6664 , + 3.61 , -0.3873 , + 3.62 , -0.25033 , + 3.63 , -0.24161 , + 3.64 , -0.18701 , + 3.65 , 9.379999999999999E-03 , + 3.66 , 0.11381 , + 3.67 , 0.16743 , + 3.68 , 0.16297 , + 3.69 , 0.1216 , + 3.7 , 5.279000000000000E-02 , + 3.71 , -9.607000000000000E-02 , + 3.72 , -0.30972 , + 3.73 , -0.35938 , + 3.74 , -0.19296 , + 3.75 , 6.919000000000000E-02 , + 3.76 , 0.27173 , + 3.77 , 0.34172 , + 3.78 , 0.31251 , + 3.79 , 0.24099 , + 3.8 , 0.15009 , + 3.81 , 0.10136 , + 3.82 , 0.18046 , + 3.83 , 0.36244 , + 3.84 , 0.47034 , + 3.85 , 0.36939 , + 3.86 , 0.15689 , + 3.87 , 1.108000000000000E-02 , + 3.88 , 3.990000000000000E-03 , + 3.89 , 0.11976 , + 3.9 , 0.24956 , + 3.91 , 0.21477 , + 3.92 , -3.172000000000000E-02 , + 3.93 , -0.24232 , + 3.94 , -0.1514 , + 3.95 , 0.12645 , + 3.96 , 0.3411 , + 3.97 , 0.48457 , + 3.98 , 0.61705 , + 3.99 , 0.70283 , + 4.0 , 0.70328 , + 4.01 , 0.62998 , + 4.02 , 0.53518 , + 4.03 , 0.44668 , + 4.04 , 0.36172 , + 4.05 , 0.31406 , + 4.06 , 0.32888 , + 4.07 , 0.35459 , + 4.08 , 0.32512 , + 4.09 , 0.25195 , + 4.1 , 0.20405 , + 4.11 , 0.22648 , + 4.12 , 0.30571 , + 4.13 , 0.37309 , + 4.14 , 0.35283 , + 4.15 , 0.24118 , + 4.16 , 0.11162 , + 4.17 , 1.458000000000000E-02 , + 4.18 , -7.364000000000000E-02 , + 4.19 , -0.1521 , + 4.2 , -0.14128 , + 4.21 , 2.440000000000000E-02 , + 4.22 , 0.2852 , + 4.23 , 0.45129 , + 4.24 , 0.38982 , + 4.25 , 0.15588 , + 4.26 , -0.11495 , + 4.27 , -0.31375 , + 4.28 , -0.42086 , + 4.29 , -0.48904 , + 4.3 , -0.52097 , + 4.31 , -0.49168 , + 4.32 , -0.4234 , + 4.33 , -0.36559 , + 4.34 , -0.36994 , + 4.35 , -0.42675 , + 4.36 , -0.45696 , + 4.37 , -0.39583 , + 4.38 , -0.24523 , + 4.39 , -7.371999999999999E-02 , + 4.4 , 5.577000000000000E-02 , + 4.41 , 0.13029 , + 4.42 , 0.17 , + 4.43 , 0.21223 , + 4.44 , 0.25214 , + 4.45 , 0.25221 , + 4.46 , 0.20971 , + 4.47 , 0.15915 , + 4.48 , 0.13965 , + 4.49 , 0.1015 , + 4.5 , -5.693000000000000E-02 , + 4.51 , -0.30165 , + 4.52 , -0.49413 , + 4.53 , -0.5601 , + 4.54 , -0.5473 , + 4.55 , -0.52318 , + 4.56 , -0.43186 , + 4.57 , -0.21177 , + 4.58 , 5.701000000000000E-02 , + 4.59 , 0.26717 , + 4.6 , 0.3673 , + 4.61 , 0.3813 , + 4.62 , 0.40079 , + 4.63 , 0.39365 , + 4.64 , 0.18973 , + 4.65 , -0.17373 , + 4.66 , -0.40285 , + 4.67 , -0.36957 , + 4.68 , -0.23873 , + 4.69 , -0.13623 , + 4.7 , -1.420000000000000E-02 , + 4.71 , 0.15954 , + 4.72 , 0.31583 , + 4.73 , 0.4076 , + 4.74 , 0.44925 , + 4.75 , 0.43323 , + 4.76 , 0.36783 , + 4.77 , 0.32597 , + 4.78 , 0.34835 , + 4.79 , 0.36693 , + 4.8 , 0.28138 , + 4.81 , 0.11386 , + 4.82 , -4.390000000000000E-02 , + 4.83 , -0.20925 , + 4.84 , -0.42702 , + 4.85 , -0.62277 , + 4.86 , -0.72429 , + 4.87 , -0.7462 , + 4.88 , -0.75887 , + 4.89 , -0.77194 , + 4.9 , -0.72951 , + 4.91 , -0.66245 , + 4.92 , -0.67709 , + 4.93 , -0.80669 , + 4.94 , -0.95972 , + 4.95 , -0.99997 , + 4.96 , -0.88454 , + 4.97 , -0.69049 , + 4.98 , -0.52094 , + 4.99 , -0.3957 , + 5.0 , -0.24286 , + 5.01 , -3.739000000000000E-02 , + 5.02 , 0.10577 , + 5.03 , 0.17347 , + 5.04 , 0.16886 , + 5.05 , 0.14491 , + 5.06 , 0.14907 , + 5.07 , 0.17361 , + 5.08 , 0.20083 , + 5.09 , 0.21954 , + 5.1 , 0.2328 , + 5.11 , 0.2575 , + 5.12 , 0.28932 , + 5.13 , 0.31126 , + 5.14 , 0.29244 , + 5.15 , 0.19772 , + 5.16 , 5.796000000000000E-02 , + 5.17 , -6.429000000000000E-02 , + 5.18 , -5.218000000000000E-02 , + 5.19 , 9.539000000000000E-02 , + 5.2 , 0.20966 , + 5.21 , 0.15862 , + 5.22 , 1.473000000000000E-02 , + 5.23 , -3.926000000000000E-02 , + 5.24 , 8.541000000000000E-02 , + 5.25 , 0.31423 , + 5.26 , 0.44181 , + 5.27 , 0.30949 , + 5.28 , -4.230000000000000E-03 , + 5.29 , -0.32893 , + 5.3 , -0.59096 , + 5.31 , -0.72514 , + 5.32 , -0.65562 , + 5.33 , -0.42079 , + 5.34 , -0.1588 , + 5.35 , 2.904000000000000E-02 , + 5.36 , 0.10308 , + 5.37 , 4.177000000000000E-02 , + 5.38 , -6.319000000000000E-02 , + 5.39 , -4.705000000000000E-02 , + 5.4 , 9.604000000000000E-02 , + 5.41 , 0.24518 , + 5.42 , 0.30632 , + 5.43 , 0.23914 , + 5.44 , 9.232000000000000E-02 , + 5.45 , -1.776000000000000E-02 , + 5.46 , -7.690000000000000E-03 , + 5.47 , 7.241000000000000E-02 , + 5.48 , 9.512000000000000E-02 , + 5.49 , 8.989000000000000E-02 , + 5.5 , 0.19384 , + 5.51 , 0.35667 , + 5.52 , 0.38627 , + 5.53 , 0.27202 , + 5.54 , 0.22809 , + 5.55 , 0.35372 , + 5.56 , 0.49889 , + 5.57 , 0.54618 , + 5.58 , 0.55561 , + 5.59 , 0.6075 , + 5.6 , 0.65833 , + 5.61 , 0.62315 , + 5.62 , 0.54314 , + 5.63 , 0.5024 , + 5.64 , 0.49951 , + 5.65 , 0.50238 , + 5.66 , 0.459 , + 5.67 , 0.32065 , + 5.68 , 0.12297 , + 5.69 , -4.304000000000000E-02 , + 5.7 , -0.12348 , + 5.71 , -0.16939 , + 5.72 , -0.26337 , + 5.73 , -0.37116 , + 5.74 , -0.40828 , + 5.75 , -0.39748 , + 5.76 , -0.42458 , + 5.77 , -0.49729 , + 5.78 , -0.51741 , + 5.79 , -0.39554 , + 5.8 , -0.19178 , + 5.81 , -6.471000000000000E-02 , + 5.82 , -6.743000000000000E-02 , + 5.83 , -0.1271 , + 5.84 , -0.1634 , + 5.85 , -0.13345 , + 5.86 , -6.090000000000000E-02 , + 5.87 , 2.519000000000000E-02 , + 5.88 , 0.14903 , + 5.89 , 0.28064 , + 5.9 , 0.34038 , + 5.91 , 0.3104 , + 5.92 , 0.22998 , + 5.93 , 0.15353 , + 5.94 , 0.1055 , + 5.95 , 7.457000000000000E-02 , + 5.96 , 5.763000000000000E-02 , + 5.97 , 8.033999999999999E-02 , + 5.98 , 0.14644 , + 5.99 , 0.1332 , + 6.0 , -7.482000000000000E-02 , + 6.01 , -0.36556 , + 6.02 , -0.55895 , + 6.03 , -0.59056 , + 6.04 , -0.46664 , + 6.05 , -0.26194 , + 6.06 , -7.546000000000000E-02 , + 6.07 , 7.784000000000001E-02 , + 6.08 , 0.23755 , + 6.09 , 0.36836 , + 6.1 , 0.37298 , + 6.11 , 0.26509 , + 6.12 , 0.15102 , + 6.13 , 6.525000000000000E-02 , + 6.14 , -1.695000000000000E-02 , + 6.15 , -0.10207 , + 6.16 , -0.1821 , + 6.17 , -0.26644 , + 6.18 , -0.32842 , + 6.19 , -0.24869 , + 6.2 , 2.279000000000000E-02 , + 6.21 , 0.37255 , + 6.22 , 0.6758 , + 6.23 , 0.86221 , + 6.24 , 0.91467 , + 6.25 , 0.89167 , + 6.26 , 0.84631 , + 6.27 , 0.74074 , + 6.28 , 0.49841 , + 6.29 , 0.16761 , + 6.3 , -4.544000000000000E-02 , + 6.31 , -2.644000000000000E-02 , + 6.32 , 9.400000000000000E-02 , + 6.33 , 0.16063 , + 6.34 , 0.18176 , + 6.35 , 0.20612 , + 6.36 , 0.22068 , + 6.37 , 0.22211 , + 6.38 , 0.23664 , + 6.39 , 0.24671 , + 6.4 , 0.1861 , + 6.41 , 0.10676 , + 6.42 , 0.2039 , + 6.43 , 0.4894 , + 6.44 , 0.7178 , + 6.45 , 0.73624 , + 6.46 , 0.64197 , + 6.47 , 0.61236 , + 6.48 , 0.66281 , + 6.49 , 0.6407 , + 6.5 , 0.48402 , + 6.51 , 0.28743 , + 6.52 , 0.1436 , + 6.53 , 6.140000000000000E-02 , + 6.54 , -1.770000000000000E-03 , + 6.55 , -6.498000000000000E-02 , + 6.56 , -0.12251 , + 6.57 , -0.16577 , + 6.58 , -0.20217 , + 6.59 , -0.28219 , + 6.6 , -0.37605 , + 6.61 , -0.34257 , + 6.62 , -0.12814 , + 6.63 , 0.1706 , + 6.64 , 0.38468 , + 6.65 , 0.39384 , + 6.66 , 0.26746 , + 6.67 , 0.18207 , + 6.68 , 0.19512 , + 6.69 , 0.22133 , + 6.7 , 0.209 , + 6.71 , 0.17146 , + 6.72 , 6.763000000000000E-02 , + 6.73 , -0.13527 , + 6.74 , -0.37496 , + 6.75 , -0.55764 , + 6.76 , -0.58824 , + 6.77 , -0.44844 , + 6.78 , -0.27116 , + 6.79 , -0.19551 , + 6.8 , -0.18978 , + 6.81 , -9.911000000000000E-02 , + 6.82 , 0.11626 , + 6.83 , 0.30541 , + 6.84 , 0.3521 , + 6.85 , 0.27698 , + 6.86 , 0.10781 , + 6.87 , -0.13553 , + 6.88 , -0.3724 , + 6.89 , -0.51163 , + 6.9 , -0.49535 , + 6.91 , -0.29991 , + 6.92 , -1.034000000000000E-02 , + 6.93 , 0.19111 , + 6.94 , 0.1843 , + 6.95 , 6.730000000000000E-03 , + 6.96 , -0.21507 , + 6.97 , -0.41983 , + 6.98 , -0.58894 , + 6.99 , -0.63614 , + 7.0 , -0.54698 , + 7.01 , -0.44682 , + 7.02 , -0.42416 , + 7.03 , -0.46132 , + 7.04 , -0.48084 , + 7.05 , -0.43504 , + 7.06 , -0.34615 , + 7.07 , -0.23496 , + 7.08 , -0.13072 , + 7.09 , -5.857000000000000E-02 , + 7.1 , 1.753000000000000E-02 , + 7.11 , 0.10141 , + 7.12 , 0.12684 , + 7.13 , 9.014000000000000E-02 , + 7.14 , 0.11682 , + 7.15 , 0.28896 , + 7.16 , 0.48134 , + 7.17 , 0.54721 , + 7.18 , 0.49147 , + 7.19 , 0.35746 , + 7.2 , 0.17093 , + 7.21 , -6.870000000000000E-03 , + 7.22 , -7.575999999999999E-02 , + 7.23 , -4.320000000000000E-03 , + 7.24 , 6.714000000000001E-02 , + 7.25 , 2.620000000000000E-03 , + 7.26 , -0.12071 , + 7.27 , -0.16453 , + 7.28 , -0.1671 , + 7.29 , -0.24591 , + 7.3 , -0.36246 , + 7.31 , -0.39855 , + 7.32 , -0.33851 , + 7.33 , -0.22608 , + 7.34 , -0.1129 , + 7.35 , -3.976000000000000E-02 , + 7.36 , 5.950000000000000E-03 , + 7.37 , 4.231000000000000E-02 , + 7.38 , 9.320000000000001E-02 , + 7.39 , 0.21161 , + 7.4 , 0.37502 , + 7.41 , 0.46085 , + 7.42 , 0.42852 , + 7.43 , 0.39911 , + 7.44 , 0.48134 , + 7.45 , 0.61862 , + 7.46 , 0.65845 , + 7.47 , 0.52488 , + 7.48 , 0.27775 , + 7.49 , 2.611000000000000E-02 , + 7.5 , -0.16858 , + 7.51 , -0.35917 , + 7.52 , -0.64888 , + 7.53 , -0.93894 , + 7.54 , -0.99997 , + 7.55 , -0.79545 , + 7.56 , -0.50022 , + 7.57 , -0.31055 , + 7.58 , -0.28451 , + 7.59 , -0.32788 , + 7.6 , -0.34293 , + 7.61 , -0.30914 , + 7.62 , -0.29364 , + 7.63 , -0.36128 , + 7.64 , -0.43128 , + 7.65 , -0.41928 , + 7.66 , -0.39651 , + 7.67 , -0.43324 , + 7.68 , -0.4592 , + 7.69 , -0.3661 , + 7.7 , -0.17726 , + 7.71 , -7.930000000000000E-03 , + 7.72 , 9.228000000000000E-02 , + 7.73 , 0.12711 , + 7.74 , 0.10315 , + 7.75 , 9.070000000000000E-03 , + 7.76 , -0.1676 , + 7.77 , -0.37078 , + 7.78 , -0.48702 , + 7.79 , -0.42176 , + 7.8 , -0.20091 , + 7.81 , -7.270000000000000E-03 , + 7.82 , 3.404000000000000E-02 , + 7.83 , 2.700000000000000E-03 , + 7.84 , -4.730000000000000E-03 , + 7.85 , -2.107000000000000E-02 , + 7.86 , -7.763000000000000E-02 , + 7.87 , -0.11332 , + 7.88 , -9.217000000000000E-02 , + 7.89 , -7.226000000000000E-02 , + 7.9 , -0.10282 , + 7.91 , -0.18072 , + 7.92 , -0.27112 , + 7.93 , -0.33308 , + 7.94 , -0.37009 , + 7.95 , -0.41046 , + 7.96 , -0.46542 , + 7.97 , -0.51679 , + 7.98 , -0.48695 , + 7.99 , -0.31766 , + 8.0 , -0.11193 , + 8.01 , -1.808000000000000E-02 , + 8.02 , -9.790000000000000E-03 , + 8.03 , 7.910000000000000E-03 , + 8.04 , 2.892000000000000E-02 , + 8.05 , 5.256000000000000E-02 , + 8.06 , 0.15118 , + 8.07 , 0.33598 , + 8.08 , 0.47411 , + 8.09 , 0.4184 , + 8.1 , 0.22182 , + 8.11 , 6.008000000000000E-02 , + 8.12 , 7.820000000000001E-03 , + 8.13 , 3.031000000000000E-02 , + 8.14 , 6.139000000000000E-02 , + 8.15 , 9.475000000000000E-02 , + 8.16 , 0.1711 , + 8.17 , 0.25375 , + 8.18 , 0.32694 , + 8.19 , 0.47654 , + 8.2 , 0.71476 , + 8.21 , 0.92354 , + 8.22 , 0.99997 , + 8.23 , 0.96174 , + 8.24 , 0.85956 , + 8.25 , 0.67462 , + 8.26 , 0.42666 , + 8.27 , 0.21402 , + 8.28 , 8.068000000000000E-02 , + 8.29 , -2.572000000000000E-02 , + 8.3 , -0.18823 , + 8.31 , -0.43016 , + 8.32 , -0.69265 , + 8.33 , -0.84523 , + 8.34 , -0.78451 , + 8.35 , -0.5823 , + 8.36 , -0.39951 , + 8.37 , -0.3009 , + 8.38 , -0.28826 , + 8.39 , -0.34762 , + 8.4 , -0.40794 , + 8.41 , -0.37827 , + 8.42 , -0.24945 , + 8.43 , -0.10703 , + 8.44 , -1.106000000000000E-02 , + 8.45 , 6.251000000000000E-02 , + 8.46 , 0.1419 , + 8.47 , 0.19928 , + 8.48 , 0.18798 , + 8.49 , 0.11645 , + 8.5 , 4.575000000000000E-02 , + 8.51 , 4.959000000000000E-02 , + 8.52 , 0.17716 , + 8.53 , 0.34359 , + 8.54 , 0.36584 , + 8.55 , 0.23915 , + 8.56 , 0.18171 , + 8.57 , 0.30089 , + 8.58 , 0.43922 , + 8.59 , 0.40395 , + 8.6 , 0.15759 , + 8.61 , -0.16407 , + 8.62 , -0.36165 , + 8.63 , -0.39041 , + 8.64 , -0.35247 , + 8.65 , -0.31056 , + 8.66 , -0.24355 , + 8.67 , -9.318000000000000E-02 , + 8.68 , 7.779999999999999E-02 , + 8.69 , 5.175000000000000E-02 , + 8.7 , -0.23925 , + 8.71 , -0.59171 , + 8.72 , -0.77473 , + 8.73 , -0.75474 , + 8.74 , -0.64528 , + 8.75 , -0.48987 , + 8.76 , -0.29956 , + 8.77 , -0.1701 , + 8.78 , -0.13175 , + 8.79 , -0.10789 , + 8.8 , -4.978000000000000E-02 , + 8.81 , 4.376000000000000E-02 , + 8.82 , 0.15205 , + 8.83 , 0.2202 , + 8.84 , 0.17479 , + 8.85 , 2.103000000000000E-02 , + 8.86 , -0.14172 , + 8.87 , -0.26548 , + 8.88 , -0.38534 , + 8.89 , -0.50451 , + 8.9 , -0.53404 , + 8.91 , -0.38116 , + 8.92 , -0.11525 , + 8.93 , 7.395000000000000E-02 , + 8.94 , 0.10361 , + 8.95 , 6.577000000000000E-02 , + 8.96 , 6.259000000000001E-02 , + 8.97 , 5.649000000000000E-02 , + 8.98 , -3.880000000000000E-03 , + 8.99 , -2.390000000000000E-02 , + 9.0 , 7.305000000000000E-02 , + 9.01 , 0.19452 , + 9.02 , 0.2608 , + 9.03 , 0.35267 , + 9.04 , 0.5391 , + 9.05 , 0.73389 , + 9.06 , 0.83545 , + 9.07 , 0.82904 , + 9.08 , 0.72024 , + 9.09 , 0.51294 , + 9.1 , 0.23736 , + 9.11 , -4.577000000000000E-02 , + 9.12 , -0.26395 , + 9.13 , -0.38853 , + 9.14 , -0.43089 , + 9.15 , -0.4349 , + 9.16 , -0.41682 , + 9.17 , -0.37537 , + 9.18 , -0.32465 , + 9.19 , -0.29702 , + 9.2 , -0.32491 , + 9.21 , -0.3466 , + 9.22 , -0.28185 , + 9.23 , -0.19619 , + 9.24 , -0.14637 , + 9.25 , -9.772000000000000E-02 , + 9.26 , -7.858999999999999E-02 , + 9.27 , -0.13191 , + 9.28 , -0.21558 , + 9.29 , -0.24568 , + 9.3 , -0.18549 , + 9.31 , -9.976000000000000E-02 , + 9.32 , -6.297000000000000E-02 , + 9.33 , -8.577000000000000E-02 , + 9.34 , -0.11997 , + 9.35 , -5.070000000000000E-02 , + 9.36 , 0.19743 , + 9.37 , 0.55636 , + 9.38 , 0.86649 , + 9.39 , 0.99997 , + 9.4 , 0.95787 , + 9.41 , 0.80859 , + 9.42 , 0.58733 , + 9.43 , 0.34042 , + 9.44 , 0.15629 , + 9.45 , 7.298000000000000E-02 , + 9.46 , 3.103000000000000E-02 , + 9.47 , -1.360000000000000E-03 , + 9.48 , 2.567000000000000E-02 , + 9.49 , 9.848000000000000E-02 , + 9.5 , 0.13363 , + 9.51 , 0.10499 , + 9.52 , 1.947000000000000E-02 , + 9.53 , -0.11686 , + 9.54 , -0.25475 , + 9.55 , -0.33284 , + 9.56 , -0.37717 , + 9.57 , -0.45927 , + 9.58 , -0.53679 , + 9.59 , -0.50988 , + 9.6 , -0.4323 , + 9.61 , -0.46891 , + 9.62 , -0.62414 , + 9.63 , -0.67897 , + 9.64 , -0.46893 , + 9.65 , -0.10561 , + 9.66 , 0.12896 , + 9.67 , 7.442000000000000E-02 , + 9.68 , -0.13619 , + 9.69 , -0.25497 , + 9.7 , -0.19615 , + 9.71 , -5.295000000000000E-02 , + 9.72 , 5.399000000000000E-02 , + 9.73 , 8.438000000000000E-02 , + 9.74 , 7.897000000000000E-02 , + 9.75 , 0.11239 , + 9.76 , 0.18699 , + 9.77 , 0.19038 , + 9.78 , 0.13535 , + 9.79 , 0.20938 , + 9.8 , 0.43787 , + 9.81 , 0.63937 , + 9.82 , 0.67742 , + 9.83 , 0.58799 , + 9.84 , 0.49876 , + 9.85 , 0.4183 , + 9.86 , 0.29948 , + 9.87 , 0.22905 , + 9.88 , 0.2606 , + 9.89 , 0.28847 , + 9.9 , 0.22616 , + 9.91 , 0.12545 , + 9.92 , 8.956000000000000E-02 , + 9.93 , 0.12928 , + 9.94 , 0.15076 , + 9.95 , 4.544000000000000E-02 , + 9.96 , -0.20722 , + 9.97 , -0.49063 , + 9.98 , -0.6894 , + 9.99 , -0.80485 , + 10.0 , -0.84771 , + 10.01 , -0.76807 , + 10.02 , -0.56037 , + 10.03 , -0.32503 , + 10.04 , -0.15016 , + 10.05 , -3.882000000000000E-02 , + 10.06 , 6.110000000000000E-03 , + 10.07 , -2.178000000000000E-02 , + 10.08 , -6.615000000000000E-02 , + 10.09 , -3.796000000000000E-02 , + 10.1 , 8.788000000000000E-02 , + 10.11 , 0.2149 , + 10.12 , 0.23018 , + 10.13 , 0.14302 , + 10.14 , 3.300000000000000E-02 , + 10.15 , -5.442000000000000E-02 , + 10.16 , -9.190000000000000E-02 , + 10.17 , -5.636000000000000E-02 , + 10.18 , 1.760000000000000E-03 , + 10.19 , -4.910000000000000E-03 , + 10.2 , -7.645000000000000E-02 , + 10.21 , -0.16067 , + 10.22 , -0.22708 , + 10.23 , -0.23139 , + 10.24 , -0.12101 , + 10.25 , 7.537000000000001E-02 , + 10.26 , 0.24004 , + 10.27 , 0.32546 , + 10.28 , 0.38826 , + 10.29 , 0.41863 , + 10.3 , 0.35794 , + 10.31 , 0.23222 , + 10.32 , 0.11401 , + 10.33 , 1.697000000000000E-02 , + 10.34 , -0.10766 , + 10.35 , -0.25136 , + 10.36 , -0.35757 , + 10.37 , -0.41565 , + 10.38 , -0.3843 , + 10.39 , -0.22915 , + 10.4 , -7.590000000000000E-03 , + 10.41 , 0.24235 , + 10.42 , 0.48677 , + 10.43 , 0.65383 , + 10.44 , 0.70515 , + 10.45 , 0.61222 , + 10.46 , 0.40693 , + 10.47 , 0.24331 , + 10.48 , 0.2277 , + 10.49 , 0.27807 , + 10.5 , 0.24063 , + 10.51 , 9.018000000000000E-02 , + 10.52 , -8.182000000000000E-02 , + 10.53 , -0.23302 , + 10.54 , -0.37812 , + 10.55 , -0.4703 , + 10.56 , -0.41592 , + 10.57 , -0.24651 , + 10.58 , -0.12814 , + 10.59 , -0.13 , + 10.6 , -0.17581 , + 10.61 , -0.22261 , + 10.62 , -0.29974 , + 10.63 , -0.40731 , + 10.64 , -0.49694 , + 10.65 , -0.51567 , + 10.66 , -0.38399 , + 10.67 , -6.413000000000001E-02 , + 10.68 , 0.26417 , + 10.69 , 0.33331 , + 10.7 , 0.13429 , + 10.71 , -8.293000000000000E-02 , + 10.72 , -0.1463 , + 10.73 , -0.13542 , + 10.74 , -0.20542 , + 10.75 , -0.35982 , + 10.76 , -0.44591 , + 10.77 , -0.37107 , + 10.78 , -0.25668 , + 10.79 , -0.25179 , + 10.8 , -0.31124 , + 10.81 , -0.28374 , + 10.82 , -0.12758 , + 10.83 , 1.490000000000000E-02 , + 10.84 , 1.229000000000000E-02 , + 10.85 , -6.356000000000001E-02 , + 10.86 , -5.771000000000000E-02 , + 10.87 , 8.679000000000001E-02 , + 10.88 , 0.31097 , + 10.89 , 0.53347 , + 10.9 , 0.68419 , + 10.91 , 0.65081 , + 10.92 , 0.4251 , + 10.93 , 0.19891 , + 10.94 , 0.11666 , + 10.95 , 0.13796 , + 10.96 , 0.14749 , + 10.97 , 9.375000000000000E-02 , + 10.98 , 2.569000000000000E-02 , + 10.99 , -1.828000000000000E-02 , + 11.0 , -6.660000000000000E-03 , + 11.01 , 9.803000000000001E-02 , + 11.02 , 0.2156 , + 11.03 , 0.2608 , + 11.04 , 0.28376 , + 11.05 , 0.31446 , + 11.06 , 0.30511 , + 11.07 , 0.25332 , + 11.08 , 0.19284 , + 11.09 , 0.1152 , + 11.1 , 1.948000000000000E-02 , + 11.11 , -8.540000000000001E-03 , + 11.12 , -8.070000000000001E-03 , + 11.13 , 5.720000000000000E-03 , + 11.14 , 5.899000000000000E-02 , + 11.15 , 0.13421 , + 11.16 , 0.26053 , + 11.17 , 0.41353 , + 11.18 , 0.51092 , + 11.19 , 0.52002 , + 11.2 , 0.50124 , + 11.21 , 0.5386 , + 11.22 , 0.65388 , + 11.23 , 0.8058 , + 11.24 , 0.93844 , + 11.25 , 0.99997 , + 11.26 , 0.96789 , + 11.27 , 0.87593 , + 11.28 , 0.80065 , + 11.29 , 0.79192 , + 11.3 , 0.8141 , + 11.31 , 0.8052 , + 11.32 , 0.74262 , + 11.33 , 0.61546 , + 11.34 , 0.41975 , + 11.35 , 0.22346 , + 11.36 , 0.14585 , + 11.37 , 0.18339 , + 11.38 , 0.21495 , + 11.39 , 0.22018 , + 11.4 , 0.23766 , + 11.41 , 0.19769 , + 11.42 , 1.272000000000000E-02 , + 11.43 , -0.33277 , + 11.44 , -0.5999 , + 11.45 , -0.66307 , + 11.46 , -0.54941 , + 11.47 , -0.30754 , + 11.48 , 9.150000000000000E-03 , + 11.49 , 0.33567 , + 11.5 , 0.62395 , + 11.51 , 0.82292 , + 11.52 , 0.92488 , + 11.53 , 0.94922 , + 11.54 , 0.90162 , + 11.55 , 0.81535 , + 11.56 , 0.68529 , + 11.57 , 0.48301 , + 11.58 , 0.28744 , + 11.59 , 0.21968 , + 11.6 , 0.31463 , + 11.61 , 0.4858 , + 11.62 , 0.58845 , + 11.63 , 0.57005 , + 11.64 , 0.49055 , + 11.65 , 0.39877 , + 11.66 , 0.2819 , + 11.67 , 0.11731 , + 11.68 , -6.177000000000000E-02 , + 11.69 , -0.1701 , + 11.7 , -0.21434 , + 11.71 , -0.36528 , + 11.72 , -0.67236 , + 11.73 , -0.88398 , + 11.74 , -0.82736 , + 11.75 , -0.67582 , + 11.76 , -0.64387 , + 11.77 , -0.69937 , + 11.78 , -0.68858 , + 11.79 , -0.5758 , + 11.8 , -0.46315 , + 11.81 , -0.45051 , + 11.82 , -0.51549 , + 11.83 , -0.51468 , + 11.84 , -0.35292 , + 11.85 , -0.11964 , + 11.86 , -1.117000000000000E-02 , + 11.87 , -0.1357 , + 11.88 , -0.40276 , + 11.89 , -0.63738 , + 11.9 , -0.73699 , + 11.91 , -0.69661 , + 11.92 , -0.58112 , + 11.93 , -0.46357 , + 11.94 , -0.38497 , + 11.95 , -0.33617 , + 11.96 , -0.26831 , + 11.97 , -0.19582 , + 11.98 , -0.16518 , + 11.99 , -0.14401 , + 12.0 , -7.318000000000000E-02 , + 12.01 , 7.769000000000000E-02 , + 12.02 , 0.26041 , + 12.03 , 0.37046 , + 12.04 , 0.40569 , + 12.05 , 0.44476 , + 12.06 , 0.50231 , + 12.07 , 0.52622 , + 12.08 , 0.47631 , + 12.09 , 0.35672 , + 12.1 , 0.14838 , + 12.11 , -0.13846 , + 12.12 , -0.36979 , + 12.13 , -0.47711 , + 12.14 , -0.54786 , + 12.15 , -0.62333 , + 12.16 , -0.64749 , + 12.17 , -0.58515 , + 12.18 , -0.46856 , + 12.19 , -0.35151 , + 12.2 , -0.26225 , + 12.21 , -0.22214 , + 12.22 , -0.22853 , + 12.23 , -0.19257 , + 12.24 , -2.725000000000000E-02 , + 12.25 , 0.18283 , + 12.26 , 0.25344 , + 12.27 , 0.12964 , + 12.28 , -9.258000000000000E-02 , + 12.29 , -0.29733 , + 12.3 , -0.42242 , + 12.31 , -0.45343 , + 12.32 , -0.38158 , + 12.33 , -0.24116 , + 12.34 , -0.13557 , + 12.35 , -0.11938 , + 12.36 , -0.14999 , + 12.37 , -0.17426 , + 12.38 , -0.16707 , + 12.39 , -0.12211 , + 12.4 , -6.938000000000000E-02 , + 12.41 , -5.365000000000000E-02 , + 12.42 , -6.988999999999999E-02 , + 12.43 , -0.10537 , + 12.44 , -0.18301 , + 12.45 , -0.26683 , + 12.46 , -0.27079 , + 12.47 , -0.18067 , + 12.48 , -5.357000000000000E-02 , + 12.49 , 5.621000000000000E-02 , + 12.5 , 0.12411 , + 12.51 , 0.1349 , + 12.52 , 0.10552 , + 12.53 , 8.767000000000000E-02 , + 12.54 , 5.312000000000000E-02 , + 12.55 , -7.994000000000000E-02 , + 12.56 , -0.28316 , + 12.57 , -0.43439 , + 12.58 , -0.45819 , + 12.59 , -0.39875 , + 12.6 , -0.3257 , + 12.61 , -0.21617 , + 12.62 , -5.834000000000000E-02 , + 12.63 , 6.234000000000000E-02 , + 12.64 , 7.834000000000001E-02 , + 12.65 , 2.524000000000000E-02 , + 12.66 , -4.370000000000000E-03 , + 12.67 , 2.088000000000000E-02 , + 12.68 , 3.738000000000000E-02 , + 12.69 , -5.780000000000000E-03 , + 12.7 , -7.783000000000000E-02 , + 12.71 , -0.10293 , + 12.72 , -5.917000000000000E-02 , + 12.73 , -2.088000000000000E-02 , + 12.74 , -4.084000000000000E-02 , + 12.75 , -7.596000000000000E-02 , + 12.76 , -7.527000000000000E-02 , + 12.77 , -4.418000000000000E-02 , + 12.78 , -2.046000000000000E-02 , + 12.79 , -2.682000000000000E-02 , + 12.8 , -2.654000000000000E-02 , + 12.81 , 3.635000000000000E-02 , + 12.82 , 0.12352 , + 12.83 , 0.13159 , + 12.84 , 4.372000000000000E-02 , + 12.85 , -6.480000000000000E-02 , + 12.86 , -0.1361 , + 12.87 , -0.17058 , + 12.88 , -0.1883 , + 12.89 , -0.19167 , + 12.9 , -0.19116 , + 12.91 , -0.20869 , + 12.92 , -0.23797 , + 12.93 , -0.28017 , + 12.94 , -0.36467 , + 12.95 , -0.46778 , + 12.96 , -0.49324 , + 12.97 , -0.38894 , + 12.98 , -0.2225 , + 12.99 , -9.676000000000000E-02 , + 13.0 , -5.153000000000000E-02 , + 13.01 , -5.856000000000000E-02 , + 13.02 , -6.265000000000000E-02 , + 13.03 , -3.700000000000000E-02 , + 13.04 , 8.800000000000001E-03 , + 13.05 , 4.189000000000000E-02 , + 13.06 , 1.048000000000000E-02 , + 13.07 , -8.393000000000000E-02 , + 13.08 , -0.17214 , + 13.09 , -0.21986 , + 13.1 , -0.25265 , + 13.11 , -0.28696 , + 13.12 , -0.29845 , + 13.13 , -0.27534 , + 13.14 , -0.25187 , + 13.15 , -0.25011 , + 13.16 , -0.27425 , + 13.17 , -0.33551 , + 13.18 , -0.41051 , + 13.19 , -0.45406 , + 13.2 , -0.44533 , + 13.21 , -0.38727 , + 13.22 , -0.30756 , + 13.23 , -0.24203 , + 13.24 , -0.20129 , + 13.25 , -0.16106 , + 13.26 , -9.457000000000000E-02 , + 13.27 , -2.440000000000000E-02 , + 13.28 , 7.040000000000000E-03 , + 13.29 , 8.600000000000000E-03 , + 13.3 , 1.981000000000000E-02 , + 13.31 , 4.834000000000000E-02 , + 13.32 , 7.178000000000000E-02 , + 13.33 , 8.525000000000001E-02 , + 13.34 , 0.1107 , + 13.35 , 0.15822 , + 13.36 , 0.21564 , + 13.37 , 0.27468 , + 13.38 , 0.32506 , + 13.39 , 0.34096 , + 13.4 , 0.32619 , + 13.41 , 0.32491 , + 13.42 , 0.34842 , + 13.43 , 0.36279 , + 13.44 , 0.34026 , + 13.45 , 0.2756 , + 13.46 , 0.18648 , + 13.47 , 9.881000000000000E-02 , + 13.48 , 3.222000000000000E-02 , + 13.49 , 1.061000000000000E-02 , + 13.5 , 4.343000000000000E-02 , + 13.51 , 9.372000000000000E-02 , + 13.52 , 0.10628 , + 13.53 , 7.198000000000000E-02 , + 13.54 , 3.458000000000000E-02 , + 13.55 , 2.182000000000000E-02 , + 13.56 , 1.377000000000000E-02 , + 13.57 , -1.295000000000000E-02 , + 13.58 , -4.297000000000000E-02 , + 13.59 , -4.232000000000000E-02 , + 13.6 , -1.224000000000000E-02 , + 13.61 , 1.559000000000000E-02 , + 13.62 , 1.639000000000000E-02 , + 13.63 , -1.544000000000000E-02 , + 13.64 , -5.384000000000000E-02 , + 13.65 , -7.287000000000000E-02 , + 13.66 , -8.747000000000001E-02 , + 13.67 , -0.10976 , + 13.68 , -0.11529 , + 13.69 , -8.388000000000000E-02 , + 13.7 , -3.945000000000000E-02 , + 13.71 , -2.420000000000000E-02 , + 13.72 , -3.630000000000000E-02 , + 13.73 , -3.928000000000000E-02 , + 13.74 , -2.207000000000000E-02 , + 13.75 , -5.590000000000000E-03 , + 13.76 , -9.450000000000000E-03 , + 13.77 , -2.752000000000000E-02 , + 13.78 , -4.478000000000000E-02 , + 13.79 , -6.457000000000000E-02 , + 13.8 , -8.530000000000000E-02 , + 13.81 , -8.704000000000001E-02 , + 13.82 , -5.918000000000000E-02 , + 13.83 , -3.830000000000000E-03 , + 13.84 , 7.192000000000000E-02 , + 13.85 , 0.14312 , + 13.86 , 0.17488 , + 13.87 , 0.16315 , + 13.88 , 0.14274 , + 13.89 , 0.14017 , + 13.9 , 0.14556 , + 13.91 , 0.13989 , + 13.92 , 0.12104 , + 13.93 , 9.578000000000000E-02 , + 13.94 , 7.056999999999999E-02 , + 13.95 , 5.257000000000000E-02 , + 13.96 , 4.283000000000000E-02 , + 13.97 , 3.754000000000000E-02 , + 13.98 , 3.580000000000000E-02 , + 13.99 , 3.422000000000000E-02 , + 14.0 , 2.593000000000000E-02 , + 14.01 , 4.220000000000000E-03 , + 14.02 , -1.590000000000000E-02 , + 14.03 , -2.929000000000000E-02 , + 14.04 , 4.251000000000000E-02 , + 14.05 , 5.369000000000000E-02 , + 14.06 , 6.154000000000000E-02 , + 14.07 , 6.560000000000001E-02 , + 14.08 , 6.591000000000000E-02 , + 14.09 , 6.272000000000000E-02 , + 14.1 , 5.704000000000000E-02 , + 14.11 , 5.054000000000000E-02 , + 14.12 , 4.304000000000000E-02 , + 14.13 , 3.569000000000000E-02 , + 14.14 , 2.953000000000000E-02 , + 14.15 , 2.591000000000000E-02 , + 14.16 , 2.479000000000000E-02 , + 14.17 , 2.511000000000000E-02 , + 14.18 , 2.581000000000000E-02 , + 14.19 , 2.493000000000000E-02 , + 14.2 , 2.314000000000000E-02 , + 14.21 , 2.027000000000000E-02 , + 14.22 , 1.935000000000000E-02 , + 14.23 , 2.023000000000000E-02 , + 14.24 , 2.506000000000000E-02 , + 14.25 , 3.099000000000000E-02 , + 14.26 , 3.760000000000000E-02 , + 14.27 , 4.262000000000000E-02 , + 14.28 , 4.532000000000000E-02 , + 14.29 , 4.802000000000000E-02 , + 14.3 , 5.005000000000000E-02 , + 14.31 , 5.302000000000000E-02 , + 14.32 , 5.416000000000000E-02 , + 14.33 , 5.517000000000000E-02 , + 14.34 , 5.543000000000000E-02 , + 14.35 , 5.403000000000000E-02 , + 14.36 , 5.095000000000000E-02 , + 14.37 , 4.660000000000000E-02 , + 14.38 , 4.407000000000000E-02 , + 14.39 , 4.359000000000000E-02 , + 14.4 , 4.649000000000000E-02 , + 14.41 , 4.927000000000000E-02 , + 14.42 , 5.116000000000000E-02 , + 14.43 , 5.246000000000000E-02 , + 14.44 , 5.290000000000000E-02 , + 14.45 , 5.342000000000000E-02 , + 14.46 , 5.301000000000000E-02 , + 14.47 , 5.389000000000000E-02 , + 14.48 , 5.518000000000000E-02 , + 14.49 , 5.594000000000000E-02 , + 14.5 , 5.543000000000000E-02 , + 14.51 , 5.542000000000000E-02 , + 14.52 , 5.677000000000000E-02 , + 14.53 , 5.746000000000000E-02 , + 14.54 , 5.802000000000000E-02 , + 14.55 , 5.847000000000000E-02 , + 14.56 , 5.842000000000000E-02 , + 14.57 , 5.750000000000000E-02 , + 14.58 , 5.606000000000000E-02 , + 14.59 , 5.592000000000000E-02 , + 14.6 , 5.517000000000000E-02 , + 14.61 , 5.439000000000000E-02 , + 14.62 , 5.392000000000000E-02 , + 14.63 , 5.395000000000000E-02 , + 14.64 , 5.260000000000000E-02 , + 14.65 , 5.031000000000000E-02 , + 14.66 , 4.883000000000000E-02 , + 14.67 , 4.944000000000000E-02 , + 14.68 , 5.215000000000000E-02 , + 14.69 , 5.627000000000000E-02 , + 14.7 , 6.244000000000000E-02 , + 14.71 , 6.783000000000000E-02 , + 14.72 , 7.159000000000000E-02 , + 14.73 , 7.149999999999999E-02 , + 14.74 , 6.673000000000000E-02 , + 14.75 , 5.755000000000000E-02 , + 14.76 , 4.539000000000000E-02 , + 14.77 , 3.504000000000000E-02 , + 14.78 , 2.721000000000000E-02 , + 14.79 , 2.308000000000000E-02 , + 14.8 , 2.125000000000000E-02 , + 14.81 , 2.022000000000000E-02 , + 14.82 , 1.831000000000000E-02 , + 14.83 , 1.547000000000000E-02 , + 14.84 , 1.321000000000000E-02 , + 14.85 , 1.112000000000000E-02 , + 14.86 , 1.025000000000000E-02 , + 14.87 , 9.549999999999999E-03 , + 14.88 , 1.040000000000000E-02 , + 14.89 , 1.059000000000000E-02 , + 14.9 , 1.108000000000000E-02 , + 14.91 , 1.195000000000000E-02 , + 14.92 , 1.452000000000000E-02 , + 14.93 , 1.809000000000000E-02 , + 14.94 , 2.029000000000000E-02 , + 14.95 , 2.323000000000000E-02 , + 14.96 , 2.515000000000000E-02 , + 14.97 , 2.836000000000000E-02 , + 14.98 , 3.278000000000000E-02 , + 14.99 , 3.934000000000000E-02 , + 15.00 , 0.0 , + ), + INTERPOL='LIN', + PROL_DROITE='CONSTANT', + PROL_GAUCHE='EXCLU',); + + + + diff --git a/Tests/testcomm9/forma12c.comm b/Tests/testcomm9/forma12c.comm new file mode 100755 index 00000000..2027774f --- /dev/null +++ b/Tests/testcomm9/forma12c.comm @@ -0,0 +1,773 @@ +# MODIF DATE 12/05/2005 AUTEUR DURAND C.DURAND +# TITRE TP ANALYSE SISMIQUE +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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 +#----------------------------------------------------------------------- +# +# ANALYSE RIS12 TR4 REGLEMENTAIRE +# SCENARIO 1 +# GL1(X,Y) + GL2(Z) +# +#----------------------------------------------------------------------- + +DEBUT(CODE=_F(NOM ='FORMA12C',NIV_PUB_WEB='INTERNET')) + +MAILLAGE=LIRE_MAILLAGE(INFO=2) + +MODELE=AFFE_MODELE( + MAILLAGE=MAILLAGE, + AFFE=( + _F(GROUP_MA='GPOU_D_T', + PHENOMENE='MECANIQUE', + MODELISATION='POU_D_T',), + _F(GROUP_MA='GPOU_C_T', + PHENOMENE='MECANIQUE', + MODELISATION='POU_C_T',), + _F(GROUP_MA='GDIS_TR', + PHENOMENE='MECANIQUE', + MODELISATION='DIS_TR',), + ), + ) + +IMPR_RESU(FORMAT='CASTEM',UNITE=37, + MODELE=MODELE, + RESU=_F( + MAILLAGE=MAILLAGE)) + + + +#----------------------------------------------------------------------- +# CARACTERISTIQUES DES ELEMENTS +#----------------------------------------------------------------------- + + +CARA=AFFE_CARA_ELEM( + MODELE=MODELE, + POUTRE=( + _F(GROUP_MA='GMEL0301', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.00711),), + _F(GROUP_MA='GMEL0501', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL0601', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL0701', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1001', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1101', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1201', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1501', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1701', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1801', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL1901', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL2001', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL2101', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL2201', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.0034),), + _F(GROUP_MA='GMEL2401', + SECTION='CERCLE', + CARA=('R','EP'), + VALE=(0.08415,0.00711),),), + DISCRET=(_F(MAILLE='M0801I02', + CARA='M_TR_D_N', + VALE=(36.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0),), + _F(MAILLE='M1301I02', + CARA='M_TR_D_N', + VALE=(36.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0),),), + DEFI_ARC=(_F(GROUP_MA='GMEL0601', + CENTRE=(466.39260860000002,107.5500031,0.27747499939999998), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,), + _F(GROUP_MA='GMEL1101', + CENTRE=(466.16400149999998,107.3214035,3.7724525930000001), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,), + _F(GROUP_MA='GMEL1701', + CENTRE=(466.16400149999998,106.4785995,4.2335472110000003), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,), + _F(GROUP_MA='GMEL1901', + CENTRE=(466.16400149999998,106.4785995,8.7655010220000005), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,), + _F(GROUP_MA='GMEL2101', + CENTRE=(466.16400149999998,107.4713974,9.2274990080000006), + RAYON=0.22859999540000001, + COEF_FLEX_XY=14.43145561, + COEF_FLEX_XZ=14.43145561,),),) + +#----------------------------------------------------------------------- +# DEFINITION DES MATERIAUX +#----------------------------------------------------------------------- + +MATP01=DEFI_MATERIAU(ELAS=_F(E=1.97E11, + NU=0.3, + RHO=1.3108749019999999E4, + ALPHA=1.639999937E-05,),) +MATP03=DEFI_MATERIAU(ELAS=_F(E=1.97E11, + NU=0.3, + RHO=1.956015625E4, + ALPHA=1.639999937E-05,),) + +#----------------------------------------------------------------------- +# DEFINITION DES SUPPORTS +#----------------------------------------------------------------------- + +SUPPORT=AFFE_CHAR_MECA( + MODELE=MODELE, + DDL_IMPO=( +# PF1 ET PF2 + _F( NOEUD = ('N02__I00', 'N01__I00',), + DX = 0., DY = 0., DZ = 0., DRX = 0., DRY = 0., DRZ = 0.), +# GL1 + _F( NOEUD = 'N0701I00', + DX = 0., DY = 0.), +# GL2 + _F( NOEUD = 'N1201I00', + DZ = 0.), + ), + ) + +#----------------------------------------------------------------------- +# DEFINITION DES CHAMPS DE MATERIAUX +#----------------------------------------------------------------------- + +CHMATP=AFFE_MATERIAU(MAILLAGE=MAILLAGE, + AFFE=(_F(GROUP_MA='GMAT01', + MATER=MATP01, + TEMP_REF=20.0,), + _F(GROUP_MA='GMAT03', + MATER=MATP03, + TEMP_REF=20.0,),),) + +#----------------------------------------------------------------------- +# ASSEMBLAGE MATRICE MASSE ET RIGIDITE +#----------------------------------------------------------------------- + +MACRO_MATR_ASSE(MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + CHARGE=SUPPORT, + NUME_DDL=CO('NUMDDL'), + MATR_ASSE=(_F(MATRICE=CO("MATRRIGI"), + OPTION='RIGI_MECA',), + _F(MATRICE=CO("MATRMASS"), + OPTION='MASS_MECA',),),); + + +#----------------------------------------------------------------------- +# ASSEMBLAGE DU SECOND MEMBRE +#----------------------------------------------------------------------- + +INCLUDE(UNITE=22) + +CHSEIX=CALC_CHAR_SEISME( MATR_MASS=MATRMASS, + DIRECTION=(1., 0., 0.,), MONO_APPUI='OUI' + ) +CHSEIY=CALC_CHAR_SEISME( MATR_MASS=MATRMASS, + DIRECTION=(0., 1., 0.,), MONO_APPUI='OUI' + ) +CHSEIZ=CALC_CHAR_SEISME( MATR_MASS=MATRMASS, + DIRECTION=(0., 0., 1.,), MONO_APPUI='OUI' + ) + +#----------------------------------------------------------------------- +# CALCUL DES MODES +#----------------------------------------------------------------------- +MASSINER=POST_ELEM( + MODELE=MODELE, + CHARGE=SUPPORT, + CARA_ELEM=CARA, + CHAM_MATER=CHMATP, + MASS_INER=_F( TOUT = 'OUI',) + ) +MODES=MACRO_MODE_MECA( + MATR_A=MATRRIGI, + MATR_B=MATRMASS, + CALC_FREQ=_F( + FREQ_MIN = 0.0, + FREQ_MAX = 33.0, + NB_BLOC_FREQ = 1), + VERI_MODE=_F( STOP_ERREUR = 'NON'), + NORM_MODE=_F( + NORME = 'MASS_GENE', + MASS_INER =MASSINER), + IMPRESSION=_F( TOUT_PARA = 'OUI') + ) + +# TEST_RESU UNIQUEMENT POUR FAIRE CAS TEST +TEST_RESU(RESU=(_F(RESULTAT=MODES, + NUME_ORDRE=1, + PARA='FREQ', + VALE= 4.5135794612152, + PRECISION=1e-05, + REFERENCE='NON_REGRESSION', + VERSION='7.3.19',))) + +MODES=CALC_ELEM( + reuse=MODES, + MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + OPTION=( + 'EFGE_ELNO_DEPL', + ), + RESULTAT=MODES,) + +########################################################### +#---- REPONSE TRANSITOIRE PAR SUPERPOSITION MODALE ------ +#---- MONO APPUI GRANDEURS RELATIVES ------ +########################################################### + +# DEFINITION DES INSTANTS DE RECUPERATION + +L_RECU=DEFI_LIST_REEL( DEBUT=0., + INTERVALLE=_F( + JUSQU_A = 20.47, + PAS = 0.01) + ) + +#---------------------------------------------------- +#------------- PROJECTION SUR LA BASE MODALE -------- +#---------------------------------------------------- +MACRO_PROJ_BASE( + BASE=MODES, + MATR_ASSE_GENE=( + _F( + MATRICE=CO("MASSEGEN"), + MATR_ASSE=MATRMASS, + ), + _F( + MATRICE=CO("RIGIDGEN"), + MATR_ASSE=MATRRIGI, + ), + ), + VECT_ASSE_GENE=( + _F( + VECTEUR=CO("EFGENX"), + VECT_ASSE=CHSEIX, + ), + _F( + VECTEUR=CO("EFGENY"), + VECT_ASSE=CHSEIY, + ), + _F( + VECTEUR=CO("EFGENZ"), + VECT_ASSE=CHSEIZ, + ), + ), + ) + +#------------------------------------------------------------------ +#-------------- RESOLUTION DU PB GENERALISE ----------------------- +#-------------- SANS CORRECTION STATIQUE -------------------------- +#------------------------------------------------------------------ +GSCR=DYNA_TRAN_MODAL( + MASS_GENE=MASSEGEN, + RIGI_GENE=RIGIDGEN, + AMOR_REDUIT=0.02, + EXCIT=( + _F( + VECT_GENE=EFGENX, + FONC_MULT=ACCELH1, + ), + _F( + VECT_GENE=EFGENY, + FONC_MULT=ACCELH1, + ), + _F( + VECT_GENE=EFGENZ, + FONC_MULT=ACCELV1, + ), + ), + INCREMENT=_F( + INST_INIT = 0., + INST_FIN =20.47, + PAS = 0.001 + ), + ) + +#-------------------------------------------------------------- +#---- RESTITUTION GRANDEUR PHYSIQUE DANS LE REPERE RELATIF +#--- SANS CORRECTION STATIQUE +#-------------------------------------------------------------- +# RESTITUTION GLOBALE DU CHAMP DE DEPLACEMENT RELATIF A CHAQUE INSTANT +# DE LA LISTE L_RECU +RGSCR=REST_BASE_PHYS( + RESU_GENE=GSCR, + INTERPOL='LIN', + LIST_INST=L_RECU, + #TOUT_INST='OUI', + TOUT_CHAM='OUI', + ) +DPSCR=CREA_CHAMP( + TYPE_CHAM='NOEU_DEPL_R', + OPERATION='EXTR', + RESULTAT=RGSCR, + NOM_CHAM='DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) +TDPSCR=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'DEPL_MAX_R', + GROUP_NO='GNSTR01', + CHAM_GD=DPSCR, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + + +# RESTITUTION GLOBALE DU CHAMP EFGE_ELNO_DEPL A CHAQUE INSTANT +# DE LA LISTE L_RECU +RGSCR=CALC_ELEM( + reuse=RGSCR, + MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + OPTION=( + 'EFGE_ELNO_DEPL', + ), + RESULTAT=RGSCR,) +EFSCR=CREA_CHAMP( + TYPE_CHAM='ELNO_SIEF_R', + OPERATION='EXTR', + RESULTAT=RGSCR, + NOM_CHAM='EFGE_ELNO_DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) +TEFSCR=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'EFGE_MAX_R', + GROUP_NO='GNSTR01', + CHAM_GD=EFSCR, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) +IMPR_TABLE( + TABLE=TEFSCR, + FORMAT='TABLEAU', + ) + +########################################################### +#---- REPONSE TRANSITOIRE PAR SUPERPOSITION MODALE ------ +#---- MULTI APPUIS GRANDEURS ABSOLUES ------ +########################################################### + +# DEFINITION EXCITATION MULTIPLE + +MSTA=MODE_STATIQUE( + MATR_RIGI=MATRRIGI, + MATR_MASS=MATRMASS, + MODE_STAT=_F(TOUT='OUI',AVEC_CMP=('DX','DY','DZ'),),) + + +CHSEIXM=CALC_CHAR_SEISME( + MATR_MASS=MATRMASS, + DIRECTION=(1., 0., 0.,), + MODE_STAT=MSTA, + NOEUD=('N02__I00','N01__I00','N0701I00',), + ) + +CHSEIYM=CALC_CHAR_SEISME( + MATR_MASS=MATRMASS, + DIRECTION=(0., 1., 0.,), + MODE_STAT=MSTA, + NOEUD=('N02__I00','N01__I00','N0701I00',), + ) + +CHSEIZM=CALC_CHAR_SEISME( + MATR_MASS=MATRMASS, + DIRECTION=(0., 0., 1.,), + MODE_STAT=MSTA, + NOEUD=('N02__I00','N01__I00','N1201I00',), + ) + +MACRO_PROJ_BASE( + BASE=MODES, + MATR_ASSE_GENE=( + _F( + MATRICE=CO("MASGEN2"), + MATR_ASSE=MATRMASS, + ), + _F( + MATRICE=CO("RIGGEN2"), + MATR_ASSE=MATRRIGI, + ), + ), + VECT_ASSE_GENE=( + _F( + VECTEUR=CO("EFX2"), + VECT_ASSE=CHSEIXM, + ), + _F( + VECTEUR=CO("EFY2"), + VECT_ASSE=CHSEIYM, + ), + _F( + VECTEUR=CO("EFZ2"), + VECT_ASSE=CHSEIZM, + ), + ), + ) + + +VITESH1=CALC_FONCTION( + INTEGRE=_F(FONCTION=ACCELH1,METHODE='TRAPEZE',), + PROL_DROITE='CONSTANT' ) +DEPLAH1=CALC_FONCTION( + INTEGRE=_F(FONCTION=VITESH1,METHODE='TRAPEZE',), + PROL_DROITE='CONSTANT' ) +VITESV1=CALC_FONCTION( + INTEGRE=_F(FONCTION=ACCELV1,METHODE='TRAPEZE',), + PROL_DROITE='CONSTANT' ) +DEPLAV1=CALC_FONCTION( + INTEGRE=_F(FONCTION=VITESV1,METHODE='TRAPEZE',), + PROL_DROITE='CONSTANT' ) + +GSCA=DYNA_TRAN_MODAL( + MASS_GENE=MASGEN2, + RIGI_GENE=RIGGEN2, + AMOR_REDUIT=0.02, + MODE_STAT=MSTA, + EXCIT=( + _F( + VECT_GENE=EFX2, + ACCE=ACCELH1, + VITE=VITESH1, + DEPL=DEPLAH1, + MULT_APPUI='OUI', + DIRECTION=(1.,0.,0.,), + NOEUD=('N02__I00','N01__I00','N0701I00',), + ), + _F( + VECT_GENE=EFY2, + ACCE=ACCELH1, + VITE=VITESH1, + DEPL=DEPLAH1, + MULT_APPUI='OUI', + DIRECTION=(0.,1.,0.,), + NOEUD=('N02__I00','N01__I00','N0701I00',), + ), + _F( + VECT_GENE=EFZ2, + ACCE=ACCELV1, + VITE=VITESV1, + DEPL=DEPLAV1, + MULT_APPUI='OUI', + DIRECTION=(0.,0.,1.,), + NOEUD=('N02__I00','N01__I00','N1201I00',), + ), + ), + INCREMENT=_F( + INST_INIT = 0., + INST_FIN =20.47, + PAS = 0.001 + ), + ) + + +# RESTITUTION GRANDEURS ABSOLUES +#------------------------------- + +RGSCA=REST_BASE_PHYS( + RESU_GENE=GSCA, + INTERPOL='LIN', + LIST_INST=L_RECU, + TOUT_CHAM='OUI', + MULT_APPUI='OUI', + ) + +# DEPLACEMENTS + +DPSCA=CREA_CHAMP( + TYPE_CHAM='NOEU_DEPL_R', + OPERATION='EXTR', + RESULTAT=RGSCA, + NOM_CHAM='DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) + +TDPSCA=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'DEPL_MAX_A', + GROUP_NO='GNSTR01', + CHAM_GD=DPSCA, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=TDPSCA, + FORMAT='TABLEAU', + ) + +# EFFORTS + +RGSCA=CALC_ELEM( + reuse=RGSCA, + MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + OPTION=( + 'EFGE_ELNO_DEPL', + ), + RESULTAT=RGSCA,) + +EFSCA=CREA_CHAMP( + TYPE_CHAM='ELNO_SIEF_R', + OPERATION='EXTR', + RESULTAT=RGSCA, + NOM_CHAM='EFGE_ELNO_DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) + +TEFSCA=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'EFGE_MAX_A', + GROUP_NO='GNSTR01', + CHAM_GD=EFSCA, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) +IMPR_TABLE( + TABLE=TEFSCA, + FORMAT='TABLEAU', + ) + + +# RESTITUTION GRANDEURS RELATIVES +#------------------------------- + +# DEPLACEMENTS + +RGSCR2=REST_BASE_PHYS( + RESU_GENE=GSCA, + INTERPOL='LIN', + LIST_INST=L_RECU, + TOUT_CHAM='OUI', + ) + +DPSCR2=CREA_CHAMP( + TYPE_CHAM='NOEU_DEPL_R', + OPERATION='EXTR', + RESULTAT=RGSCR2, + NOM_CHAM='DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) + +TDPSCR2=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'DEPL_MAX_R2', + GROUP_NO='GNSTR01', + CHAM_GD=DPSCR2, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=TDPSCR2, + FORMAT='TABLEAU', + ) + +# EFFORTS + +RGSCR2=CALC_ELEM( + reuse=RGSCR2, + MODELE=MODELE, + CHAM_MATER=CHMATP, + CARA_ELEM=CARA, + OPTION=( + 'EFGE_ELNO_DEPL', + ), + RESULTAT=RGSCR2,) + +EFSCR2=CREA_CHAMP( + TYPE_CHAM='ELNO_SIEF_R', + OPERATION='EXTR', + RESULTAT=RGSCR2, + NOM_CHAM='EFGE_ELNO_DEPL', + TYPE_MAXI='MAXI', + TYPE_RESU='VALE', + TOUT_ORDRE='OUI' + ) + +TEFSCR2=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'EFGE_MAX_R2', + GROUP_NO='GNSTR01', + CHAM_GD=EFSCR2, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=TEFSCR2, + FORMAT='TABLEAU', + ) + +########################################################### +#------REPONSE SPECTRALE PAR SUPERPOSITION MODALE--------- +########################################################### + +# CALCUL DU SPECTRE DE REPONSE OSCILLATEUR EN PSEUDO ACCELERATION ABSOLUE +# NAPPE SRO FONCTION DE AMORTISSEMENT +#------------------------------------------------------------------------ +SROXY=CALC_FONCTION( + SPEC_OSCI=_F( + FONCTION=ACCELH1, + AMOR_REDUIT=(0.02,0.05,0.10), + NORME=9.81, + ), + ) +SROZ=CALC_FONCTION( + SPEC_OSCI=_F( + FONCTION=ACCELV1, + AMOR_REDUIT=(0.02,0.05,0.10), + NORME=9.81, + ), + ) + + +#----------------------------------------------- +# REPONSE SPECTRALE SANS CORRECTION STATIQUE +#----------------------------------------------- +SPEC=COMB_SISM_MODAL( + MODE_MECA=MODES, + AMOR_REDUIT=0.02, + MASS_INER=MASSINER, + EXCIT=_F( + MONO_APPUI='OUI', + TRI_SPEC='OUI', + SPEC_OSCI=(SROXY,SROXY,SROZ), + ECHELLE=(9.81,9.81,9.81),), + COMB_MODE=_F(TYPE='CQC',), + COMB_DIRECTION=_F( TYPE = 'QUAD',), + OPTION=( + 'DEPL', + 'EFGE_ELNO_DEPL', + ), + ) + +EFSPEC=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'EFGE_SPEC', + GROUP_NO='GNSTR01', + RESULTAT=SPEC, + NOM_CHAM='EFGE_ELNO_DEPL', + NUME_ORDRE=4, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=EFSPEC, + FORMAT='TABLEAU', + ) + +DPSPEC=POST_RELEVE_T( + ACTION= + _F( + INTITULE = 'DEPL_SPEC', + GROUP_NO='GNSTR01', + RESULTAT=SPEC, + NOM_CHAM='DEPL', + NUME_ORDRE=4, + TOUT_CMP='OUI', + OPERATION ='EXTRACTION', + ), + ) + +IMPR_TABLE( + TABLE=DPSPEC, + FORMAT='TABLEAU', + ) + + + +FIN() + + + + + + diff --git a/Tests/testcomm9/g.comm b/Tests/testcomm9/g.comm new file mode 100644 index 00000000..8756209b --- /dev/null +++ b/Tests/testcomm9/g.comm @@ -0,0 +1,11 @@ +DEBUT() +sensible=[2.1E11, 0.3, 1.E-6, 1.E-6, ] + +# parse: -affectation +n=len(sensible) +PS=[None]*n + +#for i in range(n): +# PS[i]=DEFI_PARA_SENSI(VALE=sensible[i]) + +FIN() diff --git a/Tests/testcomm9/hplp101b.comm b/Tests/testcomm9/hplp101b.comm new file mode 100755 index 00000000..ef2790a1 --- /dev/null +++ b/Tests/testcomm9/hplp101b.comm @@ -0,0 +1,189 @@ +# MODIF DATE 09/05/2006 AUTEUR REZETTE C.REZETTE +# TITRE FISSURE AU CENTRE D'UNE PLAQUE MINCE RECTANGULAIRE FAISANT +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2004 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. +# ====================================================================== +# OBSTACLE A UN FLUC DE CHALEUR UNIFORME EN MILIEU ISOTROPE +# +# TESTE LES DERIVEES DE G DANS LE CAS D'UN CHARGEMENT EN FORCE DE VOLUME + +DEBUT( CODE=_F( NOM = 'HPLP101B',NIV_PUB_WEB='INTERNET')) + +YOUNG = DEFI_PARA_SENSI(VALE=1.) +FORC = DEFI_PARA_SENSI(VALE=1.) + +MA=LIRE_MAILLAGE( ) + +MA=DEFI_GROUP( reuse=MA, MAILLAGE=MA, + CREA_GROUP_NO=_F( + GROUP_MA = ( 'LP9P10', 'LP9P10B', + 'LP8P9', 'LP8P9B', + )) + ) + +MO=AFFE_MODELE( MAILLAGE=MA, + AFFE=_F( TOUT = 'OUI', + PHENOMENE = 'MECANIQUE', + MODELISATION = 'C_PLAN') + ) +ZERO = DEFI_CONSTANTE(VALE=0.) +NU = DEFI_CONSTANTE(VALE=0.3) +ALPHA = DEFI_CONSTANTE(VALE=0.) + +MAT=DEFI_MATERIAU(ELAS_FO=_F( E = YOUNG, NU = NU, + TEMP_DEF_ALPHA =20., + ALPHA = ALPHA, RHO=7800.,)) + +CHMAT=AFFE_MATERIAU( MAILLAGE=MA, + AFFE=_F( TOUT = 'OUI', + MATER = MAT) + ) + +CH=AFFE_CHAR_MECA_F( MODELE=MO, + FORCE_INTERNE=_F(TOUT='OUI',FY=FORC,), + DDL_IMPO=( + _F( GROUP_NO = 'LP8P9', + DX = ZERO), + _F( GROUP_NO = 'LP8P9B', + DX = ZERO), + _F( GROUP_NO = 'P11', + DY = ZERO)) + ) + +DEP=MECA_STATIQUE( MODELE=MO, CHAM_MATER=CHMAT, + SENSIBILITE = (FORC), + EXCIT=_F( CHARGE = CH), + ) + +DEP=CALC_ELEM(reuse=DEP,RESULTAT=DEP, + SENSIBILITE = (FORC), + OPTION=('EPSI_ELGA_DEPL','SIEF_ELGA_DEPL',),) + +FOND=DEFI_FOND_FISS( MAILLAGE=MA, + FOND_FISS=_F( GROUP_NO = ('P0',)), + NORMALE=(0., 1., 0.,) + ) + +THETA0=CALC_THETA( MODELE=MO, + THETA_2D=_F( GROUP_NO = ('P0',), + MODULE = 1., + R_INF = 3.75E-5, + R_SUP = 7.50E-5), + DIRECTION=(1., 0., 0.,) + ) + +G0=CALC_G( RESULTAT=DEP, + THETA=_F(THETA=THETA0), + SYME_CHAR='SANS', + COMP_ELAS=_F( RELATION = 'ELAS', + DEFORMATION = 'PETIT') + ) + +DG0=CALC_G( RESULTAT=DEP, + SENSIBILITE = (FORC), + THETA=_F(THETA=THETA0), + SYME_CHAR='SANS', + COMP_ELAS=_F( RELATION = 'ELAS', + DEFORMATION = 'PETIT') + ) + +TEST_TABLE( TABLE=DG0, + NOM_PARA='DG/DF', + SENSIBILITE = (FORC), + VALE=1.06E-2, + REFERENCE='ANALYTIQUE', + PRECISION=0.0005 ) +FIN() + +THETA01=CALC_THETA( MODELE=MO, + THETA_2D=_F( GROUP_NO = ('P0',), + MODULE = 1., + R_INF = 7.50E-5, + R_SUP = 1.125E-4), + DIRECTION=(1., 0., 0.,) + ) + +G1=CALC_G( RESULTAT=DEP, + THETA=_F(THETA=THETA01), + COMP_ELAS=_F( RELATION = 'ELAS', + DEFORMATION = 'PETIT'), + SYME_CHAR='SANS' + ) + +DG1=CALC_G( RESULTAT=DEP, + SENSIBILITE = (FORC), + THETA=_F(THETA=THETA01), + SYME_CHAR='SANS', + COMP_ELAS=_F( RELATION = 'ELAS', + DEFORMATION = 'PETIT') + ) + +TEST_TABLE( TABLE=DG1, + NOM_PARA='G', + SENSIBILITE = (FORC), + REFERENCE='ANALYTIQUE', + VALE=1.06E-2, + PRECISION=0.0005 ) + +# +# DERIVEE PAR RAPPORT A E +# + +DEP2=MECA_STATIQUE( MODELE=MO, CHAM_MATER=CHMAT, + SENSIBILITE = (YOUNG), + EXCIT=_F( CHARGE = CH), + ) + +DEP2=CALC_ELEM(reuse=DEP2,RESULTAT=DEP2, + SENSIBILITE = (YOUNG), + OPTION=('EPSI_ELGA_DEPL','SIEF_ELGA_DEPL',),) + + +DG2=CALC_G( RESULTAT=DEP2, + SENSIBILITE = (YOUNG), + THETA=_F(THETA=THETA0), + SYME_CHAR='SANS', + COMP_ELAS=_F( RELATION = 'ELAS', + DEFORMATION = 'PETIT') + ) + +TEST_TABLE( TABLE=DG2, + NOM_PARA='G', + SENSIBILITE = (YOUNG), + REFERENCE='ANALYTIQUE', + VALE=-5.3E-3, + PRECISION=0.0005 ) + + +DG3=CALC_G( RESULTAT=DEP2, + SENSIBILITE = (YOUNG), + THETA=_F(THETA=THETA01), + SYME_CHAR='SANS', + COMP_ELAS=_F( RELATION = 'ELAS', + DEFORMATION = 'PETIT') + ) + +TEST_TABLE( TABLE=DG3, + NOM_PARA='G', + VALE=-5.3E-3, + SENSIBILITE = (YOUNG), + REFERENCE='ANALYTIQUE', + PRECISION=0.0005 ) + + +FIN() + diff --git a/Tests/testcomm9/hsnv100h.comm b/Tests/testcomm9/hsnv100h.comm new file mode 100755 index 00000000..976dc604 --- /dev/null +++ b/Tests/testcomm9/hsnv100h.comm @@ -0,0 +1,46 @@ +# MODIF DATE 23/10/2006 AUTEUR VABHHTS J.PELLET +# TITRE THERMO-PLASTICITE EN TRACTION SIMPLE (MODELISATION:C_PLAN) +# 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. +# ====================================================================== +# + +DEBUT(CODE=_F( NOM = 'HSNV100H',NIV_PUB_WEB='INTRANET'),IMPR_MACRO='OUI',DEBUG=_F(SDVERI='OUI')) + +#...................................................................... +# CAS TEST THERMOPLASTICITE ELEMENTAIRE +#...................................................................... +# DEFINITION DES CARACTERISTIQUES DU MATERIAU +# + +MAIL=LIRE_MAILLAGE( ) + +INCLUDE_MATERIAU(TYPE_MODELE='REF', + TYPE_VALE='NOMI', + NOM_AFNOR='Z2CND1712', + VARIANTE='A', + NOM_MATER='MONMAT', + UNITE_LONGUEUR='MM' + ) + +CHMAT=AFFE_MATERIAU( MAILLAGE=MAIL,AFFE=( + _F( TOUT='OUI',TEMP_REF=25, MATER = MONMAT), + ),) + +# + +FIN() diff --git a/Tests/testcomm9/incmat.comm b/Tests/testcomm9/incmat.comm new file mode 100644 index 00000000..705a1cbd --- /dev/null +++ b/Tests/testcomm9/incmat.comm @@ -0,0 +1,7 @@ +DEBUT() +MA=LIRE_MAILLAGE() +INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF', + VARIANTE='A', TYPE_VALE='NOMI', + NOM_MATER='MAT3', INFO=1 ) + +FIN() diff --git a/Tests/testcomm9/param1.comm b/Tests/testcomm9/param1.comm new file mode 100644 index 00000000..79172614 --- /dev/null +++ b/Tests/testcomm9/param1.comm @@ -0,0 +1,36 @@ + +DEBUT() +TEMP_MOY=50. +coef0 = 1.E-3 + +A0=DEFI_FONCTION( NOM_PARA='TEMP', + PROL_DROITE='EXCLU', + PROL_GAUCHE='EXCLU', + VALE=( + 20. ,14.7 *coef0, + 50. ,15.2 *coef0, + 100. ,15.8 *coef0, + 150. ,16.7 *coef0, + 200. ,17.2 *coef0, + 250. ,18. *coef0, + 300. ,18.6 *coef0, + 350. ,19.3 *coef0, + 400. ,20. *coef0, + 450. ,20.5 *coef0, + 500. ,21.1 *coef0, + 550. ,21.7 *coef0, + 600. ,22.2 *coef0, + 650. ,22.7 *coef0, + 700. ,23.2 *coef0, + 750. ,23.7 *coef0, + 800. ,24.1 *coef0, + 950. ,26.67 *coef0, + 1150. ,29.24 *coef0, + 1370. ,32.06 *coef0, + )) + +DEFI_MATERIAU( ELAS=_F( RHO = 1.E08, + NU = 0.3, + E = A0(TEMP_MOY))) + +FIN() diff --git a/Tests/testcomm9/param2.com0 b/Tests/testcomm9/param2.com0 new file mode 100644 index 00000000..2d32a387 --- /dev/null +++ b/Tests/testcomm9/param2.com0 @@ -0,0 +1,4 @@ +POURSUITE(); +l1=DEFI_LIST_ENTI(DEBUT=mon_param,); +FIN(); + diff --git a/Tests/testcomm9/param2.comm b/Tests/testcomm9/param2.comm new file mode 100644 index 00000000..19c8eeb2 --- /dev/null +++ b/Tests/testcomm9/param2.comm @@ -0,0 +1,4 @@ +DEBUT(); +mon_param = 2; +m=LIRE_MAILLAGE() +FIN(); diff --git a/Tests/testcomm9/param3.11 b/Tests/testcomm9/param3.11 new file mode 100644 index 00000000..236ca5ca --- /dev/null +++ b/Tests/testcomm9/param3.11 @@ -0,0 +1,2 @@ +x=45 +y=77 diff --git a/Tests/testcomm9/param3.12 b/Tests/testcomm9/param3.12 new file mode 100644 index 00000000..2c2a2157 --- /dev/null +++ b/Tests/testcomm9/param3.12 @@ -0,0 +1 @@ +d=5;f=7 diff --git a/Tests/testcomm9/param3.com0 b/Tests/testcomm9/param3.com0 new file mode 100644 index 00000000..d5a0bbf5 --- /dev/null +++ b/Tests/testcomm9/param3.com0 @@ -0,0 +1,11 @@ +POURSUITE(); +l1=DEFI_LIST_ENTI(DEBUT=2*mon_param+1,); +l2=DEFI_LIST_ENTI(DEBUT=a[1]); +INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF', + VARIANTE='A', TYPE_VALE='NOMI', + NOM_MATER='MAT3', INFO=1 ) +INCLUDE(UNITE=11) +INCLUDE(UNITE=12) + +FIN(); + diff --git a/Tests/testcomm9/param3.comm b/Tests/testcomm9/param3.comm new file mode 100644 index 00000000..b7a38ea2 --- /dev/null +++ b/Tests/testcomm9/param3.comm @@ -0,0 +1,5 @@ +DEBUT(); +mon_param = 2; +m=LIRE_MAILLAGE() +a=[1,2,3,4];b=2 +FIN(); diff --git a/Tests/testcomm9/pars1.comm b/Tests/testcomm9/pars1.comm new file mode 100644 index 00000000..53e7f325 --- /dev/null +++ b/Tests/testcomm9/pars1.comm @@ -0,0 +1,61 @@ +DEBUT() +a=1 # comment +c=32.3 # comment + +aa='string # bizarre' +a="string # bizarre" + +b="string ( bizarre" + +d="""string multi +line +""" +e="""string multi # ssssssssssss +line +""" +P='''string # bizarre' #profondeur ' # autre +bbb''' + +#comment +#comment +#comment + +#commenta +##XXXX=CHARGE(RAYON=0.1E-2,VALE=(0.12E-1,0.54E-5,0.1),MCF=_F(VALE=0.3E-5), +## V="toto", + ## ) +#commentb + +##CH=CHARGE(RAYON=0.1E-2,VALE=(0.12E-1,0.54E-5,0.1),MCF=_F(VALE=0.3E-5), +## MCF2=(_F(VALE=0.3E-4,GROUP_MA='GMA0601'),_F(VALE=0.3E-2)), +## VALE_C=[0.12E-3,0.54E-1,0.1], + ## ) +MA=LIRE_MAILLAGE() +a=(10, +#commentc +12,13) + +#commentd +P=1 #profondeur +#commente +aaa=(10, +11, #commentc +12,13) +xx=EVAL("13.26") + +fmt_raison='-'*80+''' + + Exception erreur_Fatale interceptee + Raison : %s + +'''+'-'*80+'xxxxxxxxxxxxxxxx\n' + +# commen """ +# commen ''' +# commen ' +# commen " +BETA=3.41557E-08 + +a=8.3 ; #position + +FIN() diff --git a/Tests/testcomm9/parseur.comm b/Tests/testcomm9/parseur.comm new file mode 100644 index 00000000..92aaf898 --- /dev/null +++ b/Tests/testcomm9/parseur.comm @@ -0,0 +1,74 @@ +DEBUT() +P1 = 9.8; + +P2 = 8.8; + +P3 = 7; + +P5 = P3*P1; + +P6 = P1-3; + +P4 = [2,3,4]; + +a = 1. +b=3 +c= 3 * 5 +cc="b+3" +d= 4 + \ + 5 \ + -4 +e=LIRE_MAILLAGE() +##MA=LIRE_MAILLAGE() +x=(1,2) +y=[3, +#comme +4] +z="a" +zz='v' +u='''aaaa +bbbb''' +#ne marche pas avec le parseur actuel +#if 1: +# a=45 +#else: +# a=5.6 +d={"a":0} +e={"a":0, +#comme +"d":4} +#ne marche pas avec le parseur actuel +#a==1 +s="-"*80 +fmt_raison='-'*80+''' + + Exception erreur_Fatale interceptee + Raison : %s + +'''+'-'*80+'xxxxxxxxxxxxxxxx\n' + +# commen """ +# commen ''' +# commen ' +# commen " +BETA=3.41557E-08 + +C_0=105.7 + +C_EQ_I05=69.1 + +C_EQ_E05=69.1 + +C_EQ_I10=51.6 + +C_EQ_E10=69.1 + +FL_INT05 = FORMULE(NOM_PARA='TEMP',VALE=''' +(0.5*BETA / ((C_0 - C_EQ_I05 )**2) + * (TEMP - (2.*C_0 - C_EQ_I05 ))*(TEMP - C_EQ_I05 ))''') + +zz=8.9; +#ne marche pas avec le parseur actuel +#zz=8.9;aa=10 #position + +FIN() diff --git a/Tests/testcomm9/testcomm.py b/Tests/testcomm9/testcomm.py new file mode 100644 index 00000000..e211716e --- /dev/null +++ b/Tests/testcomm9/testcomm.py @@ -0,0 +1,70 @@ +import os,glob,sys +import unittest +import difflib + +import prefs +from Editeur import appli + +def add_param(j,pos,nom,valeur): + co=j.addentite("PARAMETRE",pos) + co.set_nom(nom) + co.set_valeur(valeur) + return co + +def add_mcsimp(obj,nom,valeur): + mcs=obj.get_child(nom,restreint='oui') + if mcs is None: + pos=obj.get_index_child(nom) + mcs=obj.addentite(nom,pos) + mcs.set_valeur(mcs.eval_val(valeur)) + return mcs + +def cdiff(text1,text2): + return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1))) + +class TestCase(unittest.TestCase): + app=None + def setUp(self): + if self.app == None: + self.app=appli.STANDALONE(version='v9') + pass + + def tearDown(self): + CONTEXT.unset_current_step() + + i=0 + files= os.path.join(os.path.dirname(__file__),"*.comm") + for f in glob.glob(os.path.join(prefs.INSTALLDIR,files)): + for o in ('3','2','1','0','m'): + f=f[:-1]+o + if os.path.isfile(f):break + + i=i+1 + exec """def test%s(self,file="%s"): + "fichier:%s" + self.commtest(file) +""" % (i,f,f) + del i + + def commtest(self,file): + """ Test generique""" + #print file + name=os.path.splitext(os.path.basename(file))[0] + errfile=os.path.join(os.path.dirname(__file__),name+".err") + err="" + if os.path.isfile(errfile): + f=open(errfile) + err=f.read() + f.close() + j=self.app.openJDC(file=file) + assert j.cr.get_mess_exception() == "" + + if err == "": + assert j.isvalid(),j.report() + else: + txt=str(j.report()) + assert txt == err,cdiff(err,txt) + + CONTEXT.unset_current_step() + j.supprime() + assert sys.getrefcount(j) == 2,sys.getrefcount(j) diff --git a/Tests/testcomm9/titi.comm b/Tests/testcomm9/titi.comm new file mode 100644 index 00000000..a235be8a --- /dev/null +++ b/Tests/testcomm9/titi.comm @@ -0,0 +1,69 @@ +DEBUT() +YOUNG = DEFI_PARA_SENSI(VALE=1.) +FORC = DEFI_PARA_SENSI(VALE=1.) +MA=LIRE_MAILLAGE() +MA=DEFI_GROUP( reuse=MA, MAILLAGE=MA, + CREA_GROUP_NO=_F( + GROUP_MA = ( 'LP9P10', 'LP9P10B', + 'LP8P9', 'LP8P9B', + )) + ) + +MO=AFFE_MODELE( MAILLAGE=MA, + AFFE=_F( TOUT = 'OUI', + PHENOMENE = 'MECANIQUE', + MODELISATION = 'C_PLAN') + ) +ZERO = DEFI_CONSTANTE(VALE=0.) +NU = DEFI_CONSTANTE(VALE=0.3) +ALPHA = DEFI_CONSTANTE(VALE=0.) + +MAT=DEFI_MATERIAU(ELAS_FO=_F( E = YOUNG, NU = NU, + TEMP_DEF_ALPHA =20., + ALPHA = ALPHA, RHO=7800.,)) + +CHMAT=AFFE_MATERIAU( MAILLAGE=MA, + AFFE=_F( TOUT = 'OUI', + MATER = MAT) + ) + +CH=AFFE_CHAR_MECA_F( MODELE=MO, + FORCE_INTERNE=_F(TOUT='OUI',FY=FORC,), + DDL_IMPO=( + _F( GROUP_NO = 'LP8P9', + DX = ZERO), + _F( GROUP_NO = 'LP8P9B', + DX = ZERO), + _F( GROUP_NO = 'P11', + DY = ZERO)) + ) + +DEP=MECA_STATIQUE( MODELE=MO, CHAM_MATER=CHMAT, + SENSIBILITE = (FORC), + EXCIT=_F( CHARGE = CH), + ) + +DEP=CALC_ELEM(reuse=DEP,RESULTAT=DEP, + SENSIBILITE = (FORC), + OPTION=('EPSI_ELGA_DEPL','SIEF_ELGA_DEPL',),) + +FOND=DEFI_FOND_FISS( MAILLAGE=MA, + FOND_FISS=_F( GROUP_NO = ('P0',)), + NORMALE=(0., 1., 0.,) + ) + +THETA0=CALC_THETA( MODELE=MO, + THETA_2D=_F( GROUP_NO = ('P0',), + MODULE = 1., + R_INF = 3.75E-5, + R_SUP = 7.50E-5), + DIRECTION=(1., 0., 0.,) + ) + + +FIN() +MA1=LIRE_MAILLAGE() +MO1=AFFE_MODELE( MAILLAGE=MA1, AFFE=_F( TOUT = 'OUI', + PHENOMENE = 'MECANIQUE', MODELISATION = 'C_PLAN')) + +FIN() diff --git a/Tests/testcomm9/toto.comm b/Tests/testcomm9/toto.comm new file mode 100644 index 00000000..1bd3e3da --- /dev/null +++ b/Tests/testcomm9/toto.comm @@ -0,0 +1,7 @@ +DEBUT() + +MA=LIRE_MAILLAGE(UNITE=20, +#cocococo=LIRE_MAILLAGE(UNITE=20, + VERI_MAIL=_F(VERIF='OUI',), + INFO=1,); +FIN() diff --git a/Tests/testelem/cata1.py b/Tests/testelem/cata1.py index 684f51a4..1ec39bae 100644 --- a/Tests/testelem/cata1.py +++ b/Tests/testelem/cata1.py @@ -1,4 +1,5 @@ from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType +import Sdbase class CATA: def __init__(self): @@ -9,15 +10,15 @@ class CATA: cata=CATA() -class concept(ASSD):pass +class concept(ASSD,Sdbase.AsBase):pass OP1 = OPER(nom='OP1',op=1,sd_prod=concept, a=SIMP(typ='I'), c=SIMP(typ='I',position='global'), ) -class concept2(ASSD):pass -class concept3(ASSD):pass +class concept2(ASSD,Sdbase.AsBase):pass +class concept3(ASSD,Sdbase.AsBase):pass def op2_prod(TYPE_RESU,**args): if TYPE_RESU == "TRANS" : return concept2 diff --git a/Tests/testelem/cata2.py b/Tests/testelem/cata2.py index 7a632543..34dc6831 100644 --- a/Tests/testelem/cata2.py +++ b/Tests/testelem/cata2.py @@ -1,4 +1,5 @@ from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType,CO,MACRO +import Sdbase class CATA: @@ -10,15 +11,15 @@ class CATA: cata=CATA() -class concept(ASSD):pass +class concept(ASSD,Sdbase.AsBase):pass OP1 = OPER(nom='OP1',op=1,sd_prod=concept, a=SIMP(typ='I'), c=SIMP(typ='I',position='global'), ) -class concept2(ASSD):pass -class concept3(ASSD):pass +class concept2(ASSD,Sdbase.AsBase):pass +class concept3(ASSD,Sdbase.AsBase):pass def op2_prod(self,MATR,**args): self.type_sdprod(MATR,concept2) diff --git a/Tests/testelem/cata5.py b/Tests/testelem/cata5.py index 7060a7ea..33fa23b8 100644 --- a/Tests/testelem/cata5.py +++ b/Tests/testelem/cata5.py @@ -1,10 +1,11 @@ # -*- coding: iso-8859-15 -*- from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType,CO,MACRO,JDC_CATA +import Sdbase JdC=JDC_CATA(code="ASTER") -class concept(ASSD):pass -class concept2(ASSD):pass -class concept3(ASSD):pass +class concept(ASSD,Sdbase.AsBase):pass +class concept2(ASSD,Sdbase.AsBase):pass +class concept3(ASSD,Sdbase.AsBase):pass class concept4(concept2):pass def OP_ops(self,MATR,**args): diff --git a/Tests/testelem/testbloc1.py b/Tests/testelem/testbloc1.py index abdd1357..c3b0b748 100644 --- a/Tests/testelem/testbloc1.py +++ b/Tests/testelem/testbloc1.py @@ -1,5 +1,8 @@ # coding=utf-8 from Accas import SIMP,FACT,BLOC,UN_PARMI,OPER,ASSD,MACRO,_F +import Sdbase + +class concept(ASSD,Sdbase.AsBase):pass import unittest @@ -12,7 +15,6 @@ class CATA: cata=CATA() -class concept(ASSD):pass OP1 = OPER(nom='OP1',op=1, sd_prod=concept, WWWW=SIMP(statut='o',typ='TXM', position='global'), diff --git a/Tests/testelem/testitem1.py b/Tests/testelem/testitem1.py index 5c73b925..93776064 100644 --- a/Tests/testelem/testitem1.py +++ b/Tests/testelem/testitem1.py @@ -24,7 +24,7 @@ def add_mcsimp(obj,nom,valeur): def cdiff(text1,text2): return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1))) -version= 'v8' +version= 'v9' class TestCase(unittest.TestCase): """ Tests sur des items """ diff --git a/Tests/testelem/testjdc3.py b/Tests/testelem/testjdc3.py index 842be867..4d2a936e 100644 --- a/Tests/testelem/testjdc3.py +++ b/Tests/testelem/testjdc3.py @@ -25,7 +25,7 @@ def add_mcsimp(obj,nom,valeur): def cdiff(text1,text2): return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1))) -version='v8' +version='v9' class TestCase(unittest.TestCase): def setUp(self): diff --git a/Tests/testelem/testoper1.py b/Tests/testelem/testoper1.py index d4137e3e..dc5ae280 100644 --- a/Tests/testelem/testoper1.py +++ b/Tests/testelem/testoper1.py @@ -3,7 +3,9 @@ import cata1 from cata1 import OP1,OP2,OP3,OP4,OP5,OP6,OP7 from Accas import AsException,ASSD,OPER,SIMP,FACT,BLOC,_F -class concept(ASSD):pass +import Sdbase + +class concept(ASSD,Sdbase.AsBase):pass import unittest diff --git a/Tests/testelem/testposition1.py b/Tests/testelem/testposition1.py index 96e906c4..ce295dbe 100644 --- a/Tests/testelem/testposition1.py +++ b/Tests/testelem/testposition1.py @@ -3,7 +3,9 @@ import os import cata3 from Accas import AsException,ASSD,OPER,SIMP,FACT,BLOC,_F -class concept(ASSD):pass +import Sdbase + +class concept(ASSD,Sdbase.AsBase):pass import unittest diff --git a/Tests/testelem/testzzz6az.py b/Tests/testelem/testzzz6az.py index a29eebcd..748748c8 100644 --- a/Tests/testelem/testzzz6az.py +++ b/Tests/testelem/testzzz6az.py @@ -35,7 +35,7 @@ class TestCase(unittest.TestCase): def test000(self): """ Test de construction du fichier de commandes az.comm de zero""" - app=appli.STANDALONE(version='v6.8') + app=appli.STANDALONE(version='v6') j=app.newJDC() # commande DEBUT co=j.addentite("DEBUT",0) diff --git a/Tests/testihm7/common.py b/Tests/testihm7/common.py new file mode 100644 index 00000000..37c180cd --- /dev/null +++ b/Tests/testihm7/common.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- + +from tkMessageBox import showinfo +root=None +jdcdisplay=None + +class UnKnownNode(Exception):pass + +def init_common(r,j): + global root,jdcdisplay + root=r + jdcdisplay=j + +def KP_return(): + root.event_generate("") + root.update() + +def delete_node(panel): + panel.node.delete() + +def uncomment_command(panel): + panel.bouton_unc.invoke() + root.update() + panel=jdcdisplay.panel_courant + return panel + +def comment_command(panel): + panel.nb.selectpage('Commentaire') + panel.comment_commande() + root.update() + panel=jdcdisplay.panel_courant + return panel + +def create_mocle(nom,panel): + panel.nb.selectpage('Mocles') + panel.Liste.afficheMot(nom) + root.update() + label=panel.Liste.dico_labels[nom] + label.event_generate("") + root.event_generate("") + root.update() + return jdcdisplay.panel_courant + +def change_commandcomm(text,panel): + panel.widget_text.setvalue(text) + root.update() + panel.bouton_val.invoke() + return panel + +def create_command(nom,panel): + panel.nb.selectpage('Commande') + root.update() + panel.command_entry.setentry(nom) + panel.command_entry.component('entry').focus_set() + root.event_generate("") + root.update() + label=panel.liste_command.dico_labels[nom] + label.event_generate("") + label.event_generate("") + #root.event_generate("") + root.update() + panel=jdcdisplay.panel_courant + return panel + +def create_comment(text,panel): + panel.nb.selectpage('Commentaire') + panel.ajout_commentaire() + root.update() + panel=jdcdisplay.panel_courant + panel.widget_text.setvalue(text) + root.update() + panel.bouton_val.invoke() + #panel.change_valeur() + return panel + +def create_param(nom,valeur,panel): + panel.nb.selectpage('Commentaire') + panel.ajout_parametre() + root.update() + panel=jdcdisplay.panel_courant + if nom: + panel.entry_nom.delete(0,"end") + panel.entry_nom.insert(0,nom) + panel.entry_nom.event_generate("") + panel.entry_val.delete(0,"end") + panel.entry_val.insert(0,valeur) + panel.entry_val.event_generate("") + panel.bouton_val.invoke() + root.update() + return panel + +def create_formule(nom,args,expr,panel): + panel=create_command("FORMULE",panel) + panel.entry_nom.delete(0,"end") + panel.entry_nom.insert(0,nom) + panel.entry_nom.event_generate("") + panel.entry_arg.delete(0,"end") + panel.entry_arg.insert(0,args) + panel.entry_arg.event_generate("") + panel.entry_exp.delete(0,"end") + panel.entry_exp.insert(0,expr) + panel.entry_exp.event_generate("") + panel.bouton_val.invoke() + root.update() + return panel + +def nomme_concept(nom,panel): + panel.nb.selectpage('Concept') + root.update() + panel._any.delete(0,"end") + panel._any.insert(0,nom) + panel.but_ok.invoke() + root.update() + return jdcdisplay.panel_courant + +def select_mcf(nom,ind,node): + panel=select_child(nom,node) + parent=panel.node + parent.expand() + parent.select_next(ind) + panel=jdcdisplay.panel_courant + panel.node.expand() + return panel + +def select_child(nom,node): + """node est le parent dont on veut le fils nom""" + for n in node.children: + if n.item.nom == nom: + n.select() + root.update() + panel= jdcdisplay.panel_courant + panel.node.expand() + return panel + raise UnKnownNode(nom) + +def select_node(node): + node.select() + node.expand() + root.update() + return jdcdisplay.panel_courant + +def choose_valeur(valeur,panel): + panel.Liste_choix.afficheMot(valeur) + root.update() + label=panel.Liste_choix.dico_labels[valeur] + label.event_generate("") + label.event_generate("") + root.update() + +def choose_sdco(valeur,panel): + i = list(panel.listbox.get(0, 'end')).index(valeur) + panel.listbox.component("listbox").selection_set(i) + panel.listbox.component("listbox").focus_set() + panel.listbox.component("listbox").event_generate("") + root.update() + +def choose_assd(valeur,panel): + i = list(panel.listbox.get(0, 'end')).index(valeur) + panel.listbox.component("listbox").selection_set(i) + panel.but_val.invoke() + root.update() + +def set_valeur(valeur,panel): + panel.entry.delete(0,"end") + panel.entry.insert(0,valeur) + panel.entry.event_generate("") + root.update() + +def set_sdco(valeur,panel): + panel.b_co.invoke('OUI') + root.update() + panel.entry_co.delete(0,"end") + panel.entry_co.insert(0,valeur) + panel.entry_co.event_generate("") + root.update() + +def set_complexe(valeur,panel): + panel.entry3.setentry(valeur) + panel.entry3.component('entry').focus_set() + panel.entry3.event_generate("") + root.update() + +def add_valeur_into(valeur,panel): + label=panel.Liste_choix.dico_labels[valeur] + panel.Liste_choix.afficheMot(valeur) + root.update() + label.event_generate("<1>") + panel.bouton_add.invoke() + root.update() + +def add_valeur(valeur,panel): + panel.entry.delete(0,"end") + panel.entry.insert(0,valeur) + panel.entry.event_generate("") + root.update() + +def valider_valeur(panel): + panel.bouton_accepter.invoke() + root.update() + +def copier_coller(): + root.event_generate("") + root.event_generate("") + root.update() + return jdcdisplay.panel_courant + diff --git a/Tests/testihm7/testihm1.py b/Tests/testihm7/testihm1.py new file mode 100644 index 00000000..3b806c3d --- /dev/null +++ b/Tests/testihm7/testihm1.py @@ -0,0 +1,337 @@ +# -*- coding: utf-8 -*- +# Modules Python +import os +import unittest +import difflib +import compare +import sys +import Tkinter + +# Modules Eficas +import prefs +from Editeur import eficas_go +from Editeur import splash +from Editeur import session +from Editeur import eficas +from Editeur import images +from common import * + +version='v7' + +class TestCase(unittest.TestCase): + def setUp(self): + self.root = Tkinter.Tk() + images.update_cache() + # Analyse des arguments de la ligne de commande + options=session.parse([]) + options.cata=version + pass + + def tearDown(self): + self.root.destroy() + init_common(None,None) + pass + + def test000(self): + root=self.root + code="ASTER" + splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code) + splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...") + app=eficas.EFICAS(root,code=code) + j=app.bureau.newJDC() + jdcdisplay=app.bureau.JDCDisplay_courant + init_common(root,jdcdisplay) + + # commande DEBUT + co=j.addentite("DEBUT",0) + # commande FIN + co=j.addentite("FIN",1) + + jdctree=jdcdisplay.tree.tree.children[0] + panel=select_child("DEBUT",jdctree) + + panel=create_param("P1",9.8,panel) + panel=create_param("P2",8.8,panel) + panel=create_param("P3",7,panel) + panel=create_param("P4","[2,3,4]",panel) + panel=create_param("P5","P3*P1",panel) + panel=create_param(None,"P1-3",panel) + panel=create_comment("Pas trouve shellpanel",panel) + + #commnde LIRE_MAILLAGE + panel=create_command("LIRE_MAILLAGE",panel) + command=panel.node + panel=nomme_concept("MAILLA2",panel) + panel=select_node(command) + panel=create_mocle("UNITE",panel) + panel=set_valeur("P4[1]",panel) + command.collapse() + panel=select_node(command) + #FORMULE + panel=create_formule("az","a,z","a+z",panel) + #commande AFFE_MODELE + panel=create_command("AFFE_MODELE",panel) + command=panel.node + select_child("MAILLAGE",command) + panel=select_node(command) + panel=create_mocle("AFFE",panel) + parent=panel.node + panel=select_child("PHENOMENE",parent) + choose_valeur("MECANIQUE",panel) + panel=select_child("b_mecanique",parent) + panel=select_child("MODELISATION",panel.node) + add_valeur_into("3D",panel) + add_valeur_into("3D_FLUIDE",panel) + valider_valeur(panel) + panel=select_node(parent) + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_node(command) + panel=nomme_concept("MO",panel) + command.collapse() + #fin commande AFFE_MODELE + panel=copier_coller() + command=panel.node + panel=create_mocle("AFFE",panel) + panel=select_node(command) + panel=create_mocle("AFFE",panel) + panel=select_mcf("AFFE",1,command) + parent=panel.node + panel=create_mocle("GROUP_NO",panel) + add_valeur("'GNP3','GNP5','GNP6','GNP7','GNP8','GNP9','GNP10','GNP11','GNP12'",panel) + valider_valeur(panel) + panel=select_child("PHENOMENE",parent) + choose_valeur("ACOUSTIQUE",panel) + panel=select_child("b_acoustique",parent) + panel=select_child("MODELISATION",panel.node) + add_valeur_into("PLAN",panel) + valider_valeur(panel) + + panel=select_mcf("AFFE",2,command) + parent=panel.node + panel=create_mocle("GROUP_MA",panel) + add_valeur("MASSES",panel) + valider_valeur(panel) + panel=select_child("PHENOMENE",parent) + choose_valeur("THERMIQUE",panel) + panel=select_child("b_thermique",parent) + panel=select_child("MODELISATION",panel.node) + add_valeur_into("COQUE",panel) + valider_valeur(panel) + + panel=select_node(command) + panel=nomme_concept("AFFE1",panel) + command.collapse() + #fin commande AFFE_MODELE + #commande AFFE_CARA_ELEM + panel=create_command("AFFE_CARA_ELEM",panel) + command=panel.node + panel=select_node(command) + panel=create_mocle("POUTRE",panel) + parent=panel.node + panel=select_child("SECTION",parent) + choose_valeur("CERCLE",panel) + panel=select_child("b_cercle",parent) + panel=select_child("b_constant",panel.node) + p=panel.node + panel=select_child("CARA",p) + add_valeur_into("R",panel) + add_valeur_into("EP",panel) + valider_valeur(panel) + panel=select_child("VALE",p) + add_valeur("1,2",panel) + valider_valeur(panel) + panel=select_node(parent) + panel=create_mocle("GROUP_MA",panel) + add_valeur("GR1,GR2",panel) + valider_valeur(panel) + panel=select_child("MODELE",command) + choose_assd("MO",panel) + panel=select_node(command) + panel=nomme_concept("CARA",panel) + command.collapse() + #fin commande AFFE_CARA_ELEM + panel=create_command("DEFI_FONCTION",panel) + command=panel.node + panel=create_mocle("VALE",panel) + add_valeur("5.0,3.0",panel) + add_valeur("P4[1],P3",panel) + valider_valeur(panel) + panel=select_child("NOM_PARA",command) + add_valeur("DX",panel) + panel=select_node(command) + panel=nomme_concept("F1",panel) + command.collapse() + #fin DEFI_FONCTION + panel=create_command("DEFI_FONCTION",panel) + command=panel.node + panel=create_mocle("VALE_C",panel) + add_valeur("5.0,7.0,9.0",panel) + add_valeur("9.0,8.0,7.0",panel) + valider_valeur(panel) + panel=select_child("NOM_PARA",command) + add_valeur("DRX",panel) + panel=select_node(command) + panel=nomme_concept("F3",panel) + command.collapse() + #fin DEFI_FONCTION +#MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0, +# NU=0.0,), +# ECRO_ASYM_LINE=_F(DC_SIGM_EPSI=0.0, +# SY_C=200000000.0, +# DT_SIGM_EPSI=0.0, +# SY_T=50000000.0,),); + + panel=create_command("DEFI_MATERIAU",panel) + command=panel.node + panel=create_mocle("ELAS",panel) + p=panel.node + panel=select_child("E",p) + set_valeur("100000000000.0",panel) + panel=select_child("NU",p) + set_valeur("0.0",panel) + panel=select_node(command) + panel=create_mocle("ECRO_ASYM_LINE",panel) + p=panel.node + panel=select_child("DC_SIGM_EPSI",p) + set_valeur("0.0",panel) + panel=select_child("SY_C",p) + set_valeur("200000000.0",panel) + panel=select_child("DT_SIGM_EPSI",p) + set_valeur("0.0",panel) + panel=select_child("SY_T",p) + set_valeur("50000000.0",panel) + panel=select_node(command) + panel=nomme_concept("MATER2",panel) + command.collapse() + #fin DEFI_MATERIAU + #PS1=DEFI_PARA_SENSI(VALE=1.0,); + #PS2=DEFI_PARA_SENSI(VALE=1.0,); + #PS3=DEFI_PARA_SENSI(VALE=1.0,); + panel=create_command("DEFI_PARA_SENSI",panel) + command=panel.node + panel=select_child("VALE",command) + set_valeur("1.0",panel) + panel=select_node(command) + panel=nomme_concept("PS1",panel) + command.collapse() + panel=create_command("DEFI_PARA_SENSI",panel) + command=panel.node + panel=select_child("VALE",command) + set_valeur("1.0",panel) + panel=select_node(command) + panel=nomme_concept("PS2",panel) + command.collapse() + panel=create_command("DEFI_PARA_SENSI",panel) + command=panel.node + panel=select_child("VALE",command) + set_valeur("1.0",panel) + panel=select_node(command) + panel=nomme_concept("PS3",panel) + command.collapse() +#CHMAT2=AFFE_MATERIAU(MAILLAGE=MAIL, +# AFFE=_F(TOUT='OUI', +# MATER=MATER2,),); + panel=create_command("AFFE_MATERIAU",panel) + command=panel.node + panel=select_child("MAILLAGE",command) + panel=select_child("AFFE",command) + affe=panel.node + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_child("MATER",affe) + add_valeur_into("MATER2",panel) + valider_valeur(panel) + panel=select_node(command) + panel=nomme_concept("CHMAT2",panel) + command.collapse() +#AAAZ=AFFE_CHAR_THER(MODELE=AFFE1, +# TEMP_IMPO=_F(TOUT='OUI', +# TEMP=0.0,),); + panel=create_command("AFFE_CHAR_THER",panel) + command=panel.node + panel=create_mocle("TEMP_IMPO",panel) + temp=panel.node + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_node(temp) + panel=create_mocle("TEMP",panel) + panel=set_valeur("0.0",panel) + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_node(command) + panel=nomme_concept("AAAZ",panel) + command.collapse() +#TH1=THER_LINEAIRE(MODELE=AFFE1, +# CHAM_MATER=CHMAT2, +# EXCIT=_F(CHARGE=AAAZ,), +# SENSIBILITE=(PS1,PS2,),); + panel=create_command("THER_LINEAIRE",panel) + command=panel.node + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_child("CHAM_MATER",command) + panel=select_child("EXCIT",command) + panel=select_child("CHARGE",panel.node) + panel=select_node(command) + panel=create_mocle("SENSIBILITE",panel) + add_valeur_into("PS1",panel) + add_valeur_into("PS2",panel) + valider_valeur(panel) + panel=select_node(command) + panel=nomme_concept("TH1",panel) + command.collapse() +#ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1, +# PRES_IMPO=_F(TOUT='OUI', +# PRES=('RI',3.0,3.0,),),); + panel=create_command("AFFE_CHAR_ACOU",panel) + command=panel.node + panel=create_mocle("PRES_IMPO",panel) + pres=panel.node + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_child("PRES",pres) + set_complexe("'RI',3.0,3.0",panel) + panel=select_node(command) + panel=nomme_concept("ACA1",panel) + command.collapse() +#MACRO_MATR_ASSE(MODELE=AFFE1, +# NUME_DDL=CO('DDL1'), +# MATR_ASSE=_F(MATRICE=CO('MAT1'), +# OPTION='RIGI_THER',),); + panel=create_command("MACRO_MATR_ASSE",panel) + command=panel.node + panel=select_child("NUME_DDL",command) + set_sdco("DDL1",panel) + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_child("MATR_ASSE",command) + matr=panel.node + panel=select_child("OPTION",matr) + choose_valeur("RIGI_THER",panel) + panel=select_child("MATRICE",matr) + set_sdco("MAT1",panel) + panel=select_node(command) + command.collapse() +#MACRO_MATR_ASSE(MODELE=AFFE1, +# NUME_DDL=DDL1, +# MATR_ASSE=_F(MATRICE=MAT1, +# OPTION='RIGI_THER',),); + panel=create_command("MACRO_MATR_ASSE",panel) + command=panel.node + panel=select_child("NUME_DDL",command) + choose_sdco("DDL1",panel) + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_child("MATR_ASSE",command) + matr=panel.node + panel=select_child("OPTION",matr) + choose_valeur("RIGI_THER",panel) + panel=select_child("MATRICE",matr) + set_sdco("MAT2",panel) + panel=select_node(command) + command.collapse() + + assert j.isvalid(),j.report() diff --git a/Tests/testihm7/testihm2.py b/Tests/testihm7/testihm2.py new file mode 100644 index 00000000..15d83d9f --- /dev/null +++ b/Tests/testihm7/testihm2.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +# Modules Python +import os +import unittest +import difflib +import compare +import sys +import Tkinter + +# Modules Eficas +import prefs +from Editeur import eficas_go +from Editeur import splash +from Editeur import session +from Editeur import eficas +from Editeur import images +from common import * + + +class TestCase(unittest.TestCase): + def setUp(self): + self.root = Tkinter.Tk() + images.update_cache() + # Analyse des arguments de la ligne de commande + options=session.parse([]) + options.cata="v7" + pass + + def tearDown(self): + self.root.destroy() + init_common(None,None) + pass + + def test000(self): + root=self.root + code="ASTER" + splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code) + splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...") + app=eficas.EFICAS(root,code=code) + j=app.bureau.newJDC() + jdcdisplay=app.bureau.JDCDisplay_courant + init_common(root,jdcdisplay) + + # commande DEBUT + co=j.addentite("DEBUT",0) + # commande FIN + co=j.addentite("FIN",1) + + jdctree=jdcdisplay.tree.tree.children[0] + panel=select_child("DEBUT",jdctree) + panel=create_command("LIRE_MAILLAGE",panel) + panel=nomme_concept("MA",panel) + + panel=create_command("AFFE_MODELE",panel) + command=panel.node + select_child("MAILLAGE",command) + panel=select_node(command) + panel=create_mocle("AFFE",panel) + parent=panel.node + panel=select_child("PHENOMENE",parent) + choose_valeur("MECANIQUE",panel) + panel=select_child("b_mecanique",parent) + panel=select_child("MODELISATION",panel.node) + add_valeur_into("3D",panel) + add_valeur_into("3D_FLUIDE",panel) + valider_valeur(panel) + panel=select_node(parent) + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_node(command) + panel=nomme_concept("MO",panel) + + assert j.isvalid(),j.report() diff --git a/Tests/testihm7/testihm4.py b/Tests/testihm7/testihm4.py new file mode 100644 index 00000000..abdea69f --- /dev/null +++ b/Tests/testihm7/testihm4.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Modules Python +import os +import unittest +import difflib +import compare +import sys +import Tkinter + +# Modules Eficas +import prefs +from Editeur import eficas_go +from Editeur import splash +from Editeur import session +from Editeur import eficas +from Editeur import images +from common import * + + +class TestCase(unittest.TestCase): + def setUp(self): + self.root = Tkinter.Tk() + images.update_cache() + # Analyse des arguments de la ligne de commande + options=session.parse([]) + options.cata="v7" + pass + + def tearDown(self): + self.root.destroy() + init_common(None,None) + pass + + def test000(self): + root=self.root + code="ASTER" + splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code) + splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...") + app=eficas.EFICAS(root,code=code) + file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm") + j=app.bureau.openJDC(file=file) + jdcdisplay=app.bureau.JDCDisplay_courant + init_common(root,jdcdisplay) + jdctree=jdcdisplay.tree.tree.children[0] + #commentariser commande MACRO_MATR_ASSE + panel=select_child("MACRO_MATR_ASSE",jdctree) + panel=comment_command(panel) + #decommentariser commande MACRO_MATR_ASSE + panel=uncomment_command(panel) + #creation commande commentée + panel=create_command("LIRE_MAILLAGE",panel) + panel=comment_command(panel) + panel=change_commandcomm("mm=LIRE_MAILLAGE(INFO=2,UNITE=21)",panel) + panel=uncomment_command(panel) + panel=select_child("DEFI_FONCTION",jdctree) + delete_node(panel) + + assert j.isvalid(),j.report() diff --git a/Tests/testihm9/common.py b/Tests/testihm9/common.py new file mode 100644 index 00000000..37c180cd --- /dev/null +++ b/Tests/testihm9/common.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- + +from tkMessageBox import showinfo +root=None +jdcdisplay=None + +class UnKnownNode(Exception):pass + +def init_common(r,j): + global root,jdcdisplay + root=r + jdcdisplay=j + +def KP_return(): + root.event_generate("") + root.update() + +def delete_node(panel): + panel.node.delete() + +def uncomment_command(panel): + panel.bouton_unc.invoke() + root.update() + panel=jdcdisplay.panel_courant + return panel + +def comment_command(panel): + panel.nb.selectpage('Commentaire') + panel.comment_commande() + root.update() + panel=jdcdisplay.panel_courant + return panel + +def create_mocle(nom,panel): + panel.nb.selectpage('Mocles') + panel.Liste.afficheMot(nom) + root.update() + label=panel.Liste.dico_labels[nom] + label.event_generate("") + root.event_generate("") + root.update() + return jdcdisplay.panel_courant + +def change_commandcomm(text,panel): + panel.widget_text.setvalue(text) + root.update() + panel.bouton_val.invoke() + return panel + +def create_command(nom,panel): + panel.nb.selectpage('Commande') + root.update() + panel.command_entry.setentry(nom) + panel.command_entry.component('entry').focus_set() + root.event_generate("") + root.update() + label=panel.liste_command.dico_labels[nom] + label.event_generate("") + label.event_generate("") + #root.event_generate("") + root.update() + panel=jdcdisplay.panel_courant + return panel + +def create_comment(text,panel): + panel.nb.selectpage('Commentaire') + panel.ajout_commentaire() + root.update() + panel=jdcdisplay.panel_courant + panel.widget_text.setvalue(text) + root.update() + panel.bouton_val.invoke() + #panel.change_valeur() + return panel + +def create_param(nom,valeur,panel): + panel.nb.selectpage('Commentaire') + panel.ajout_parametre() + root.update() + panel=jdcdisplay.panel_courant + if nom: + panel.entry_nom.delete(0,"end") + panel.entry_nom.insert(0,nom) + panel.entry_nom.event_generate("") + panel.entry_val.delete(0,"end") + panel.entry_val.insert(0,valeur) + panel.entry_val.event_generate("") + panel.bouton_val.invoke() + root.update() + return panel + +def create_formule(nom,args,expr,panel): + panel=create_command("FORMULE",panel) + panel.entry_nom.delete(0,"end") + panel.entry_nom.insert(0,nom) + panel.entry_nom.event_generate("") + panel.entry_arg.delete(0,"end") + panel.entry_arg.insert(0,args) + panel.entry_arg.event_generate("") + panel.entry_exp.delete(0,"end") + panel.entry_exp.insert(0,expr) + panel.entry_exp.event_generate("") + panel.bouton_val.invoke() + root.update() + return panel + +def nomme_concept(nom,panel): + panel.nb.selectpage('Concept') + root.update() + panel._any.delete(0,"end") + panel._any.insert(0,nom) + panel.but_ok.invoke() + root.update() + return jdcdisplay.panel_courant + +def select_mcf(nom,ind,node): + panel=select_child(nom,node) + parent=panel.node + parent.expand() + parent.select_next(ind) + panel=jdcdisplay.panel_courant + panel.node.expand() + return panel + +def select_child(nom,node): + """node est le parent dont on veut le fils nom""" + for n in node.children: + if n.item.nom == nom: + n.select() + root.update() + panel= jdcdisplay.panel_courant + panel.node.expand() + return panel + raise UnKnownNode(nom) + +def select_node(node): + node.select() + node.expand() + root.update() + return jdcdisplay.panel_courant + +def choose_valeur(valeur,panel): + panel.Liste_choix.afficheMot(valeur) + root.update() + label=panel.Liste_choix.dico_labels[valeur] + label.event_generate("") + label.event_generate("") + root.update() + +def choose_sdco(valeur,panel): + i = list(panel.listbox.get(0, 'end')).index(valeur) + panel.listbox.component("listbox").selection_set(i) + panel.listbox.component("listbox").focus_set() + panel.listbox.component("listbox").event_generate("") + root.update() + +def choose_assd(valeur,panel): + i = list(panel.listbox.get(0, 'end')).index(valeur) + panel.listbox.component("listbox").selection_set(i) + panel.but_val.invoke() + root.update() + +def set_valeur(valeur,panel): + panel.entry.delete(0,"end") + panel.entry.insert(0,valeur) + panel.entry.event_generate("") + root.update() + +def set_sdco(valeur,panel): + panel.b_co.invoke('OUI') + root.update() + panel.entry_co.delete(0,"end") + panel.entry_co.insert(0,valeur) + panel.entry_co.event_generate("") + root.update() + +def set_complexe(valeur,panel): + panel.entry3.setentry(valeur) + panel.entry3.component('entry').focus_set() + panel.entry3.event_generate("") + root.update() + +def add_valeur_into(valeur,panel): + label=panel.Liste_choix.dico_labels[valeur] + panel.Liste_choix.afficheMot(valeur) + root.update() + label.event_generate("<1>") + panel.bouton_add.invoke() + root.update() + +def add_valeur(valeur,panel): + panel.entry.delete(0,"end") + panel.entry.insert(0,valeur) + panel.entry.event_generate("") + root.update() + +def valider_valeur(panel): + panel.bouton_accepter.invoke() + root.update() + +def copier_coller(): + root.event_generate("") + root.event_generate("") + root.update() + return jdcdisplay.panel_courant + diff --git a/Tests/testihm9/testihm1.py b/Tests/testihm9/testihm1.py new file mode 100644 index 00000000..dab4f5e6 --- /dev/null +++ b/Tests/testihm9/testihm1.py @@ -0,0 +1,337 @@ +# -*- coding: utf-8 -*- +# Modules Python +import os +import unittest +import difflib +import compare +import sys +import Tkinter + +# Modules Eficas +import prefs +from Editeur import eficas_go +from Editeur import splash +from Editeur import session +from Editeur import eficas +from Editeur import images +from common import * + +version='v9' + +class TestCase(unittest.TestCase): + def setUp(self): + self.root = Tkinter.Tk() + images.update_cache() + # Analyse des arguments de la ligne de commande + options=session.parse([]) + options.cata=version + pass + + def tearDown(self): + self.root.destroy() + init_common(None,None) + pass + + def test000(self): + root=self.root + code="ASTER" + splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code) + splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...") + app=eficas.EFICAS(root,code=code) + j=app.bureau.newJDC() + jdcdisplay=app.bureau.JDCDisplay_courant + init_common(root,jdcdisplay) + + # commande DEBUT + co=j.addentite("DEBUT",0) + # commande FIN + co=j.addentite("FIN",1) + + jdctree=jdcdisplay.tree.tree.children[0] + panel=select_child("DEBUT",jdctree) + + panel=create_param("P1",9.8,panel) + panel=create_param("P2",8.8,panel) + panel=create_param("P3",7,panel) + panel=create_param("P4","[2,3,4]",panel) + panel=create_param("P5","P3*P1",panel) + panel=create_param(None,"P1-3",panel) + panel=create_comment("Pas trouve shellpanel",panel) + + #commnde LIRE_MAILLAGE + panel=create_command("LIRE_MAILLAGE",panel) + command=panel.node + panel=nomme_concept("MAILLA2",panel) + panel=select_node(command) + panel=create_mocle("UNITE",panel) + panel=set_valeur("P4[1]",panel) + command.collapse() + panel=select_node(command) + #FORMULE + panel=create_formule("az","a,z","a+z",panel) + #commande AFFE_MODELE + panel=create_command("AFFE_MODELE",panel) + command=panel.node + select_child("MAILLAGE",command) + panel=select_node(command) + panel=create_mocle("AFFE",panel) + parent=panel.node + panel=select_child("PHENOMENE",parent) + choose_valeur("MECANIQUE",panel) + panel=select_child("b_mecanique",parent) + panel=select_child("MODELISATION",panel.node) + add_valeur_into("3D",panel) + add_valeur_into("3D_FLUIDE",panel) + valider_valeur(panel) + panel=select_node(parent) + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_node(command) + panel=nomme_concept("MO",panel) + command.collapse() + #fin commande AFFE_MODELE + panel=copier_coller() + command=panel.node + panel=create_mocle("AFFE",panel) + panel=select_node(command) + panel=create_mocle("AFFE",panel) + panel=select_mcf("AFFE",1,command) + parent=panel.node + panel=create_mocle("GROUP_NO",panel) + add_valeur("'GNP3','GNP5','GNP6','GNP7','GNP8','GNP9','GNP10','GNP11','GNP12'",panel) + valider_valeur(panel) + panel=select_child("PHENOMENE",parent) + choose_valeur("ACOUSTIQUE",panel) + panel=select_child("b_acoustique",parent) + panel=select_child("MODELISATION",panel.node) + add_valeur_into("PLAN",panel) + valider_valeur(panel) + + panel=select_mcf("AFFE",2,command) + parent=panel.node + panel=create_mocle("GROUP_MA",panel) + add_valeur("MASSES",panel) + valider_valeur(panel) + panel=select_child("PHENOMENE",parent) + choose_valeur("THERMIQUE",panel) + panel=select_child("b_thermique",parent) + panel=select_child("MODELISATION",panel.node) + add_valeur_into("COQUE",panel) + valider_valeur(panel) + + panel=select_node(command) + panel=nomme_concept("AFFE1",panel) + command.collapse() + #fin commande AFFE_MODELE + #commande AFFE_CARA_ELEM + panel=create_command("AFFE_CARA_ELEM",panel) + command=panel.node + panel=select_node(command) + panel=create_mocle("POUTRE",panel) + parent=panel.node + panel=select_child("SECTION",parent) + choose_valeur("CERCLE",panel) + panel=select_child("b_cercle",parent) + panel=select_child("b_constant",panel.node) + p=panel.node + panel=select_child("CARA",p) + add_valeur_into("R",panel) + add_valeur_into("EP",panel) + valider_valeur(panel) + panel=select_child("VALE",p) + add_valeur("1,2",panel) + valider_valeur(panel) + panel=select_node(parent) + panel=create_mocle("GROUP_MA",panel) + add_valeur("GR1,GR2",panel) + valider_valeur(panel) + panel=select_child("MODELE",command) + choose_assd("MO",panel) + panel=select_node(command) + panel=nomme_concept("CARA",panel) + command.collapse() + #fin commande AFFE_CARA_ELEM + panel=create_command("DEFI_FONCTION",panel) + command=panel.node + panel=create_mocle("VALE",panel) + add_valeur("5.0,3.0",panel) + add_valeur("P4[1],P3",panel) + valider_valeur(panel) + panel=select_child("NOM_PARA",command) + choose_valeur("DX",panel) + panel=select_node(command) + panel=nomme_concept("F1",panel) + command.collapse() + #fin DEFI_FONCTION + panel=create_command("DEFI_FONCTION",panel) + command=panel.node + panel=create_mocle("VALE_C",panel) + add_valeur("5.0,7.0,9.0",panel) + add_valeur("9.0,8.0,7.0",panel) + valider_valeur(panel) + panel=select_child("NOM_PARA",command) + choose_valeur("DRX",panel) + panel=select_node(command) + panel=nomme_concept("F3",panel) + command.collapse() + #fin DEFI_FONCTION +#MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0, +# NU=0.0,), +# ECRO_ASYM_LINE=_F(DC_SIGM_EPSI=0.0, +# SY_C=200000000.0, +# DT_SIGM_EPSI=0.0, +# SY_T=50000000.0,),); + + panel=create_command("DEFI_MATERIAU",panel) + command=panel.node + panel=create_mocle("ELAS",panel) + p=panel.node + panel=select_child("E",p) + set_valeur("100000000000.0",panel) + panel=select_child("NU",p) + set_valeur("0.0",panel) + panel=select_node(command) + panel=create_mocle("ECRO_ASYM_LINE",panel) + p=panel.node + panel=select_child("DC_SIGM_EPSI",p) + set_valeur("0.0",panel) + panel=select_child("SY_C",p) + set_valeur("200000000.0",panel) + panel=select_child("DT_SIGM_EPSI",p) + set_valeur("0.0",panel) + panel=select_child("SY_T",p) + set_valeur("50000000.0",panel) + panel=select_node(command) + panel=nomme_concept("MATER2",panel) + command.collapse() + #fin DEFI_MATERIAU + #PS1=DEFI_PARA_SENSI(VALE=1.0,); + #PS2=DEFI_PARA_SENSI(VALE=1.0,); + #PS3=DEFI_PARA_SENSI(VALE=1.0,); + panel=create_command("DEFI_PARA_SENSI",panel) + command=panel.node + panel=select_child("VALE",command) + set_valeur("1.0",panel) + panel=select_node(command) + panel=nomme_concept("PS1",panel) + command.collapse() + panel=create_command("DEFI_PARA_SENSI",panel) + command=panel.node + panel=select_child("VALE",command) + set_valeur("1.0",panel) + panel=select_node(command) + panel=nomme_concept("PS2",panel) + command.collapse() + panel=create_command("DEFI_PARA_SENSI",panel) + command=panel.node + panel=select_child("VALE",command) + set_valeur("1.0",panel) + panel=select_node(command) + panel=nomme_concept("PS3",panel) + command.collapse() +#CHMAT2=AFFE_MATERIAU(MAILLAGE=MAIL, +# AFFE=_F(TOUT='OUI', +# MATER=MATER2,),); + panel=create_command("AFFE_MATERIAU",panel) + command=panel.node + panel=select_child("MAILLAGE",command) + panel=select_child("AFFE",command) + affe=panel.node + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_child("MATER",affe) + add_valeur_into("MATER2",panel) + valider_valeur(panel) + panel=select_node(command) + panel=nomme_concept("CHMAT2",panel) + command.collapse() +#AAAZ=AFFE_CHAR_THER(MODELE=AFFE1, +# TEMP_IMPO=_F(TOUT='OUI', +# TEMP=0.0,),); + panel=create_command("AFFE_CHAR_THER",panel) + command=panel.node + panel=create_mocle("TEMP_IMPO",panel) + temp=panel.node + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_node(temp) + panel=create_mocle("TEMP",panel) + panel=set_valeur("0.0",panel) + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_node(command) + panel=nomme_concept("AAAZ",panel) + command.collapse() +#TH1=THER_LINEAIRE(MODELE=AFFE1, +# CHAM_MATER=CHMAT2, +# EXCIT=_F(CHARGE=AAAZ,), +# SENSIBILITE=(PS1,PS2,),); + panel=create_command("THER_LINEAIRE",panel) + command=panel.node + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_child("CHAM_MATER",command) + panel=select_child("EXCIT",command) + panel=select_child("CHARGE",panel.node) + panel=select_node(command) + panel=create_mocle("SENSIBILITE",panel) + add_valeur_into("PS1",panel) + add_valeur_into("PS2",panel) + valider_valeur(panel) + panel=select_node(command) + panel=nomme_concept("TH1",panel) + command.collapse() +#ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1, +# PRES_IMPO=_F(TOUT='OUI', +# PRES=('RI',3.0,3.0,),),); + panel=create_command("AFFE_CHAR_ACOU",panel) + command=panel.node + panel=create_mocle("PRES_IMPO",panel) + pres=panel.node + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_child("PRES",pres) + set_complexe("'RI',3.0,3.0",panel) + panel=select_node(command) + panel=nomme_concept("ACA1",panel) + command.collapse() +#MACRO_MATR_ASSE(MODELE=AFFE1, +# NUME_DDL=CO('DDL1'), +# MATR_ASSE=_F(MATRICE=CO('MAT1'), +# OPTION='RIGI_THER',),); + panel=create_command("MACRO_MATR_ASSE",panel) + command=panel.node + panel=select_child("NUME_DDL",command) + set_sdco("DDL1",panel) + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_child("MATR_ASSE",command) + matr=panel.node + panel=select_child("OPTION",matr) + choose_valeur("RIGI_THER",panel) + panel=select_child("MATRICE",matr) + set_sdco("MAT1",panel) + panel=select_node(command) + command.collapse() +#MACRO_MATR_ASSE(MODELE=AFFE1, +# NUME_DDL=DDL1, +# MATR_ASSE=_F(MATRICE=MAT1, +# OPTION='RIGI_THER',),); + panel=create_command("MACRO_MATR_ASSE",panel) + command=panel.node + panel=select_child("NUME_DDL",command) + choose_sdco("DDL1",panel) + panel=select_child("MODELE",command) + choose_assd("AFFE1",panel) + panel=select_child("MATR_ASSE",command) + matr=panel.node + panel=select_child("OPTION",matr) + choose_valeur("RIGI_THER",panel) + panel=select_child("MATRICE",matr) + set_sdco("MAT2",panel) + panel=select_node(command) + command.collapse() + + assert j.isvalid(),j.report() diff --git a/Tests/testihm9/testihm2.py b/Tests/testihm9/testihm2.py new file mode 100644 index 00000000..ab88e845 --- /dev/null +++ b/Tests/testihm9/testihm2.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +# Modules Python +import os +import unittest +import difflib +import compare +import sys +import Tkinter + +# Modules Eficas +import prefs +from Editeur import eficas_go +from Editeur import splash +from Editeur import session +from Editeur import eficas +from Editeur import images +from common import * + + +class TestCase(unittest.TestCase): + def setUp(self): + self.root = Tkinter.Tk() + images.update_cache() + # Analyse des arguments de la ligne de commande + options=session.parse([]) + options.cata="v9" + pass + + def tearDown(self): + self.root.destroy() + init_common(None,None) + pass + + def test000(self): + root=self.root + code="ASTER" + splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code) + splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...") + app=eficas.EFICAS(root,code=code) + j=app.bureau.newJDC() + jdcdisplay=app.bureau.JDCDisplay_courant + init_common(root,jdcdisplay) + + # commande DEBUT + co=j.addentite("DEBUT",0) + # commande FIN + co=j.addentite("FIN",1) + + jdctree=jdcdisplay.tree.tree.children[0] + panel=select_child("DEBUT",jdctree) + panel=create_command("LIRE_MAILLAGE",panel) + panel=nomme_concept("MA",panel) + + panel=create_command("AFFE_MODELE",panel) + command=panel.node + select_child("MAILLAGE",command) + panel=select_node(command) + panel=create_mocle("AFFE",panel) + parent=panel.node + panel=select_child("PHENOMENE",parent) + choose_valeur("MECANIQUE",panel) + panel=select_child("b_mecanique",parent) + panel=select_child("MODELISATION",panel.node) + add_valeur_into("3D",panel) + add_valeur_into("3D_FLUIDE",panel) + valider_valeur(panel) + panel=select_node(parent) + panel=create_mocle("TOUT",panel) + choose_valeur("OUI",panel) + panel=select_node(command) + panel=nomme_concept("MO",panel) + + assert j.isvalid(),j.report() diff --git a/Tests/testihm9/testihm3.py b/Tests/testihm9/testihm3.py new file mode 100644 index 00000000..7fa615f3 --- /dev/null +++ b/Tests/testihm9/testihm3.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# Modules Python +import os +import unittest +import difflib +import compare +import sys +import Tkinter + +# Modules Eficas +import prefs +from Editeur import eficas_go +from Editeur import splash +from Editeur import session +from Editeur import eficas +from Editeur import images +from common import * + + +class TestCase(unittest.TestCase): + def setUp(self): + self.root = Tkinter.Tk() + images.update_cache() + # Analyse des arguments de la ligne de commande + options=session.parse([]) + options.cata="petit" + pass + + def tearDown(self): + self.root.destroy() + init_common(None,None) + pass + + def test000(self): + root=self.root + code="ASTER" + splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code) + splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...") + app=eficas.EFICAS(root,code=code) + j=app.bureau.newJDC() + jdcdisplay=app.bureau.JDCDisplay_courant + init_common(root,jdcdisplay) + + # commande DEBUT + co=j.addentite("DEBUT",0) + # commande FIN + co=j.addentite("FIN",1) + + jdctree=jdcdisplay.tree.tree.children[0] + panel=select_child("DEBUT",jdctree) + panel=create_command("TESTS_VALID",panel) + command=panel.node + panel=select_child("LongStr",command) + set_valeur("aaa",panel) + panel=select_child("ListStr",command) + add_valeur("aaa",panel) + add_valeur("bbbb,ccc",panel) + valider_valeur(panel) + panel=select_child("PairVal",command) + add_valeur(2,panel) + add_valeur("4,6",panel) + valider_valeur(panel) + panel=select_child("RangeVal",command) + set_valeur(4,panel) + panel=select_child("CardVal",command) + add_valeur("4,6,5,7",panel) + valider_valeur(panel) + panel=select_child("EnumVal",command) + choose_valeur(3,panel) + panel=select_child("OrdList",command) + add_valeur("4,6,5,7",panel) + valider_valeur(panel) + panel=select_child("OrdList2",command) + add_valeur_into(2,panel) + valider_valeur(panel) + panel=select_child("TypeVal",command) + set_valeur(5,panel) + panel=select_child("Compul",command) + add_valeur("2",panel) + add_valeur("1",panel) + valider_valeur(panel) + panel=select_child("CompulInto",command) + add_valeur_into(2,panel) + add_valeur_into(1,panel) + valider_valeur(panel) + panel=select_child("Norep",command) + add_valeur("2",panel) + valider_valeur(panel) + panel=select_child("NorepInto",command) + add_valeur_into(2,panel) + valider_valeur(panel) + + panel=select_node(command) + panel=nomme_concept("MA",panel) + + assert j.isvalid(),j.report() diff --git a/Tests/testihm9/testihm4.py b/Tests/testihm9/testihm4.py new file mode 100644 index 00000000..6e0d3547 --- /dev/null +++ b/Tests/testihm9/testihm4.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Modules Python +import os +import unittest +import difflib +import compare +import sys +import Tkinter + +# Modules Eficas +import prefs +from Editeur import eficas_go +from Editeur import splash +from Editeur import session +from Editeur import eficas +from Editeur import images +from common import * + + +class TestCase(unittest.TestCase): + def setUp(self): + self.root = Tkinter.Tk() + images.update_cache() + # Analyse des arguments de la ligne de commande + options=session.parse([]) + options.cata="v9" + pass + + def tearDown(self): + self.root.destroy() + init_common(None,None) + pass + + def test000(self): + root=self.root + code="ASTER" + splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code) + splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...") + app=eficas.EFICAS(root,code=code) + file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm") + j=app.bureau.openJDC(file=file) + jdcdisplay=app.bureau.JDCDisplay_courant + init_common(root,jdcdisplay) + jdctree=jdcdisplay.tree.tree.children[0] + #commentariser commande MACRO_MATR_ASSE + panel=select_child("MACRO_MATR_ASSE",jdctree) + panel=comment_command(panel) + #decommentariser commande MACRO_MATR_ASSE + panel=uncomment_command(panel) + #creation commande commentée + panel=create_command("LIRE_MAILLAGE",panel) + panel=comment_command(panel) + panel=change_commandcomm("mm=LIRE_MAILLAGE(INFO=2,UNITE=21)",panel) + panel=uncomment_command(panel) + panel=select_child("DEFI_FONCTION",jdctree) + delete_node(panel) + + assert j.isvalid(),j.report() diff --git a/Validation/V_ENSEMBLE.py b/Validation/V_ENSEMBLE.py index 9170351a..205c4c12 100644 --- a/Validation/V_ENSEMBLE.py +++ b/Validation/V_ENSEMBLE.py @@ -25,7 +25,7 @@ class ENSEMBLE: """ La règle vérifie que si un mot-clé de self.mcs est present - parmi les elements de args tous les autres doivent etre presents. + parmi les elements de args tous les autres doivent etre presents. 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 diff --git a/Validation/V_ETAPE.py b/Validation/V_ETAPE.py index 66adbf77..4fc69be5 100644 --- a/Validation/V_ETAPE.py +++ b/Validation/V_ETAPE.py @@ -150,11 +150,11 @@ class ETAPE(V_MCCOMPO.MCCOMPO): """ Cette méthode met à jour le concept produit en fonction des conditions initiales : - 1- Il n'y a pas de concept retourné (self.definition.sd_prod == None) + 1. Il n'y a pas de concept retourné (self.definition.sd_prod == None) - 2- Le concept retourné n existait pas (self.sd == None) + 2. Le concept retourné n existait pas (self.sd == None) - 3- Le concept retourné existait. On change alors son type ou on le supprime + 3. Le concept retourné existait. On change alors son type ou on le supprime En cas d'erreur (exception) on retourne un indicateur de validité de 0 sinon de 1 """ @@ -193,7 +193,9 @@ class ETAPE(V_MCCOMPO.MCCOMPO): else: if self.sd: # Un sd existe deja, on change son type - self.sd.__class__=sd_prod + if CONTEXT.debug:print "changement de type:",self.sd,sd_prod + if self.sd.__class__ != sd_prod: + self.sd.change_type(sd_prod) else: # Le sd n existait pas , on ne le crée pas if cr == 'oui' : self.cr.fatal("Concept retourné non défini") diff --git a/Validation/V_EXCLUS.py b/Validation/V_EXCLUS.py index f477cff3..b0e5ce84 100644 --- a/Validation/V_EXCLUS.py +++ b/Validation/V_EXCLUS.py @@ -25,7 +25,7 @@ class EXCLUS: """ La règle vérifie qu'un seul mot-clé de self.mcs est present - parmi les elements de args. + parmi les elements de args. 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 diff --git a/Validation/V_MACRO_ETAPE.py b/Validation/V_MACRO_ETAPE.py index 5c218615..9d20953e 100644 --- a/Validation/V_MACRO_ETAPE.py +++ b/Validation/V_MACRO_ETAPE.py @@ -116,11 +116,11 @@ class MACRO_ETAPE(V_ETAPE.ETAPE): """ Cette méthode met à jour le concept produit en fonction des conditions initiales : - 1- Il n'y a pas de concept retourné (self.definition.sd_prod == None) + 1. Il n'y a pas de concept retourné (self.definition.sd_prod == None) - 2- Le concept retourné n existait pas (self.sd == None) + 2. Le concept retourné n existait pas (self.sd == None) - 3- Le concept retourné existait. On change alors son type ou on le supprime + 3. Le concept retourné existait. On change alors son type ou on le supprime En cas d'erreur (exception) on retourne un indicateur de validité de 0 sinon de 1 """ @@ -162,13 +162,16 @@ class MACRO_ETAPE(V_ETAPE.ETAPE): valid= 0 if valid:self.sd=self.reuse else: + #Cas d'un concept non reutilise if sd_prod == None:# Pas de concept retourné # Que faut il faire de l eventuel ancien sd ? self.sd = None else: if self.sd: # Un sd existe deja, on change son type - self.sd.__class__=sd_prod + if CONTEXT.debug:print "changement de type:",self.sd,sd_prod + if self.sd.__class__ != sd_prod: + self.sd.change_type(sd_prod) self.typret=sd_prod else: # Le sd n existait pas , on ne le crée pas diff --git a/Validation/V_MCBLOC.py b/Validation/V_MCBLOC.py index 6a3f7a44..bf4bcd1a 100644 --- a/Validation/V_MCBLOC.py +++ b/Validation/V_MCBLOC.py @@ -39,7 +39,7 @@ class MCBLOC(V_MCCOMPO.MCCOMPO): """ Cette classe a un attribut de classe : - - txt_nat qui sert pour les comptes-rendus liés à cette classe + - txt_nat qui sert pour les comptes-rendus liés à cette classe """ txt_nat="Bloc :" diff --git a/Validation/V_MCFACT.py b/Validation/V_MCFACT.py index a9a18605..f66fd6bb 100644 --- a/Validation/V_MCFACT.py +++ b/Validation/V_MCFACT.py @@ -39,7 +39,7 @@ class MCFACT(V_MCCOMPO.MCCOMPO): """ Cette classe a un attribut de classe : - - txt_nat qui sert pour les comptes-rendus liés à cette classe + - txt_nat qui sert pour les comptes-rendus liés à cette classe """ txt_nat="Mot cle Facteur :" diff --git a/Validation/V_MCLIST.py b/Validation/V_MCLIST.py index 0dc3fcdb..3145302f 100644 --- a/Validation/V_MCLIST.py +++ b/Validation/V_MCLIST.py @@ -41,9 +41,9 @@ class MCList: """ Cette classe a deux attributs de classe : - - CR qui sert à construire l'objet compte-rendu + - CR qui sert à construire l'objet compte-rendu - - txt_nat qui sert pour les comptes-rendus liés à cette classe + - txt_nat qui sert pour les comptes-rendus liés à cette classe """ CR=N_CR.CR diff --git a/Validation/V_MCSIMP.py b/Validation/V_MCSIMP.py index 8e69333d..e48ec0b2 100644 --- a/Validation/V_MCSIMP.py +++ b/Validation/V_MCSIMP.py @@ -40,21 +40,21 @@ from Noyau.N_VALIDATOR import listProto class MCSIMP: """ - COMMENTAIRE CCAR - Cette classe est quasiment identique à la classe originale d'EFICAS - a part quelques changements cosmétiques et des chagements pour la - faire fonctionner de facon plus autonome par rapport à l'environnement - EFICAS + COMMENTAIRE CCAR: + Cette classe est quasiment identique à la classe originale d'EFICAS + a part quelques changements cosmétiques et des chagements pour la + faire fonctionner de facon plus autonome par rapport à l'environnement + EFICAS - A mon avis, il faudrait aller plus loin et réduire les dépendances - amont au strict nécessaire. + A mon avis, il faudrait aller plus loin et réduire les dépendances + amont au strict nécessaire. - - Est il indispensable de faire l'évaluation de la valeur dans le contexte - du jdc dans cette classe. + - Est il indispensable de faire l'évaluation de la valeur dans le contexte + du jdc dans cette classe. - - Ne pourrait on pas doter les objets en présence des méthodes suffisantes - pour éviter les tests un peu particuliers sur GEOM, PARAMETRE et autres. J'ai - d'ailleurs modifié la classe pour éviter l'import de GEOM + - Ne pourrait on pas doter les objets en présence des méthodes suffisantes + pour éviter les tests un peu particuliers sur GEOM, PARAMETRE et autres. J'ai + d'ailleurs modifié la classe pour éviter l'import de GEOM """ CR=N_CR.CR diff --git a/Validation/V_PRESENT_ABSENT.py b/Validation/V_PRESENT_ABSENT.py index eb6fbdfc..299ed2ad 100644 --- a/Validation/V_PRESENT_ABSENT.py +++ b/Validation/V_PRESENT_ABSENT.py @@ -25,8 +25,8 @@ class PRESENT_ABSENT: """ La règle vérifie que si le premier mot-clé de self.mcs est present - parmi les elements de args les autres mots clés de self.mcs - doivent etre absents + parmi les elements de args les autres mots clés de self.mcs + doivent etre absents 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 diff --git a/Validation/V_PRESENT_PRESENT.py b/Validation/V_PRESENT_PRESENT.py index 4848c2ef..62764f9b 100644 --- a/Validation/V_PRESENT_PRESENT.py +++ b/Validation/V_PRESENT_PRESENT.py @@ -25,7 +25,7 @@ class PRESENT_PRESENT: """ La règle vérifie que si le premier mot-clé de self.mcs est present - parmi les elements de args les autres doivent l'etre aussi + parmi les elements de args les autres doivent l'etre aussi 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 diff --git a/convert/convert_asterv5.py b/convert/convert_asterv5.py index bf13ea13..10bccc7f 100644 --- a/convert/convert_asterv5.py +++ b/convert/convert_asterv5.py @@ -114,7 +114,7 @@ class AsterParser: self.out = parseur_python.PARSEUR_PYTHON(self.out).get_texte() except: self.cr.fatal("Erreur dans la deuxième phase d interpretation de %s" % self.filename) - tracebak.print_exc() + traceback.print_exc() return "" self.oldtext=self.text return self.out diff --git a/convert/parseur_python.py b/convert/parseur_python.py index aa4a5d43..68dc8905 100644 --- a/convert/parseur_python.py +++ b/convert/parseur_python.py @@ -88,15 +88,19 @@ number_kw_pattern=re.compile(r""" """,re.VERBOSE|re.MULTILINE) def construit_genea(texte,liste_mc): - """Retourne un dictionnaire dont les cles sont des reels et les valeurs sont leurs representations textuelles. + """ + Retourne un dictionnaire dont les cles sont des reels et les valeurs sont leurs representations textuelles. + Realise un filtrage sur les reels : + - Ne garde que les reels pour lesquels str ne donne pas une bonne representation. - Ne garde que les reels derriere un argument keyword dont le nom est dans liste_mc - >>> s = '''a=+21.3e-5*85,b=-.1234,c=81.6 , d= -8 , e=_F(x=342.67,y=-1), f=+1.1, g=(1.3,-5,1.54E-3), - ... #POMPE_PRIMA._BOUCLE_N._2_ELEMENT_NUMERO:0239 - ... h=_F(x=34.6,y=-1)''' - >>> construit_genea(s,['a','x']) - {0.000213: '21.3e-5'} + + >>> s = '''a=+21.3e-5*85,b=-.1234,c=81.6 , d= -8 , e=_F(x=342.67,y=-1), f=+1.1, g=(1.3,-5,1.54E-3), + ... #POMPE_PRIMA._BOUCLE_N._2_ELEMENT_NUMERO:0239 + ... h=_F(x=34.6,y=-1)''' + >>> construit_genea(s,['a','x']) + {0.000213: '21.3e-5'} """ d={} mot="" @@ -605,7 +609,10 @@ class PARSEUR_PYTHON: #index=epure1.find("=") #epure2=epure1[index+1:len(epure1)].replace("_F(","(") #dict_reel_concept=self.construit_genea(epure2) - dict_reel_concept=construit_genea(epure2,self.appli.liste_simp_reel) + if self.appli: + dict_reel_concept=construit_genea(epure2,self.appli.liste_simp_reel) + else: + dict_reel_concept={} if nomConcept !=None : if len(dict_reel_concept) != 0: self.appli.dict_reels[nomConcept]=dict_reel_concept @@ -639,6 +646,7 @@ if __name__ == "__main__" : fichier = '/local/chris/ASTER/instals/STA8.2/astest/forma12c.comm' fichier = 'titi.comm' fichier = '../Aster/sdls300a.comm' + fichier = '../Aster/az.comm' texte = open(fichier,'r').read() class appli: dict_reels={} diff --git a/generator/generator_ini.py b/generator/generator_ini.py index ff696331..3e94abf7 100644 --- a/generator/generator_ini.py +++ b/generator/generator_ini.py @@ -28,7 +28,7 @@ import traceback import types,string from Noyau import N_CR -from Accas import MCSIMP,MCFACT +from Accas import MCSIMP,MCFACT,MCList def entryPoint(): """ @@ -83,13 +83,25 @@ class IniGenerator: """ liste_mcfact=[] sect_defaut='' + if isinstance(obj,MCList): + if len(obj.data) > 1: + raise "Pas supporté" + else: + obj=obj.data[0] + for mocle in obj.mc_liste: - if isinstance(mocle,MCFACT): - liste_mcfact.append(self.generMCFACT(mocle)) - elif isinstance(mocle,MCSIMP): - sect_defaut=sect_defaut+self.generMCSIMP(mocle) - else: - self.cr.fatal("Entite inconnue ou interdite : "+`mocle`) + if isinstance(mocle,MCList): + if len(mocle.data) > 1: + raise "Pas supporté" + else: + liste_mcfact.append(self.generMCFACT(mocle.data[0])) + elif isinstance(mocle,MCFACT): + liste_mcfact.append(self.generMCFACT(mocle)) + elif isinstance(mocle,MCSIMP): + sect_defaut=sect_defaut+self.generMCSIMP(mocle) + else: + self.cr.fatal("Entite inconnue ou interdite : "+`mocle`) + self.text='' if sect_defaut != '': self.text="[DEFAULT]\n"+sect_defaut diff --git a/generator/generator_pyth.py b/generator/generator_pyth.py index caf372a1..62c27729 100644 --- a/generator/generator_pyth.py +++ b/generator/generator_pyth.py @@ -27,7 +27,7 @@ import traceback import types,string from Noyau import N_CR -from Accas import MCSIMP,MCFACT +from Accas import MCSIMP,MCFACT,MCList def entryPoint(): """ @@ -86,15 +86,28 @@ class PythGenerator: Les mots-clés multiples ne sont pas traités """ s='' + if isinstance(obj,MCList): + if len(obj.data) > 1: + raise "Pas supporté" + else: + obj=obj.data[0] + for mocle in obj.mc_liste: - if isinstance(mocle,MCFACT): - valeur=self.generMCFACT(mocle) - s=s+"%s = %s\n" % (mocle.nom,valeur) - elif isinstance(v,MCSIMP): - valeur = self.generMCSIMP(mocle) + if isinstance(mocle,MCList): + if len(mocle.data) > 1: + raise "Pas supporté" + else: + valeur=self.generMCFACT(mocle.data[0]) s=s+"%s = %s\n" % (mocle.nom,valeur) - else: - self.cr.fatal("Entite inconnue ou interdite : "+`mocle`) + elif isinstance(mocle,MCFACT): + valeur=self.generMCFACT(mocle) + s=s+"%s = %s\n" % (mocle.nom,valeur) + elif isinstance(v,MCSIMP): + valeur = self.generMCSIMP(mocle) + s=s+"%s = %s\n" % (mocle.nom,valeur) + else: + self.cr.fatal("Entite inconnue ou interdite : "+`mocle`) + self.text=s return self.text diff --git a/generator/generator_python.py b/generator/generator_python.py index 309d12be..f8645f42 100644 --- a/generator/generator_python.py +++ b/generator/generator_python.py @@ -472,21 +472,12 @@ class PythonGenerator: return l def format_item(self,valeur,etape): - if type(valeur) == types.InstanceType : - if valeur.__class__.__name__ == 'CO' or hasattr(etape,'sdprods') and valeur in etape.sdprods : - s = "CO('"+ self.generator(valeur) +"')" - elif isinstance(valeur,Accas.PARAMETRE): - # il ne faut pas prendre la string que retourne gener - # mais seulement le nom dans le cas d'un paramètre - s = valeur.nom - else: - s = self.generator(valeur) - elif type(valeur) == types.FloatType : + if type(valeur) == types.FloatType : # Pour un flottant on utilise str # ou la notation scientifique s = str(valeur) clefobj=etape.get_sdname() - if self.appli.dict_reels.has_key(clefobj): + if self.appli and self.appli.dict_reels.has_key(clefobj): if self.appli.dict_reels[clefobj].has_key(valeur): s=self.appli.dict_reels[clefobj][valeur] elif type(valeur) == types.StringType : @@ -498,6 +489,26 @@ class PythonGenerator: s='"""'+valeur+'"""' else: s = repr(valeur) + elif isinstance(valeur,Accas.CO) or hasattr(etape,'sdprods') and valeur in etape.sdprods: + s = "CO('"+ self.generator(valeur) +"')" + elif isinstance(valeur,Accas.ASSD): + s = self.generator(valeur) + elif isinstance(valeur,Accas.PARAMETRE): + # il ne faut pas prendre la string que retourne gener + # mais seulement le nom dans le cas d'un paramètre + s = valeur.nom + + #elif type(valeur) == types.InstanceType or isinstance(valeur,object): + # if valeur.__class__.__name__ == 'CO' or hasattr(etape,'sdprods') and valeur in etape.sdprods : + # s = "CO('"+ self.generator(valeur) +"')" + # elif isinstance(valeur,Accas.PARAMETRE): + # il ne faut pas prendre la string que retourne gener + # mais seulement le nom dans le cas d'un paramètre + # s = valeur.nom + # else: + # print valeur + # s = self.generator(valeur) + else : # Pour les autres types on utilise repr s = repr(valeur)