+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
# 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
-#@ MODIF Sensibilite Utilitai DATE 07/03/2006 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF Sensibilite Macro DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# ======================================================================
"""
+Module traite de la gestion des concepts sensibles :
+ - classe permettant de stocker les noms des concepts et leurs dérivées
+ - corps de la macro MEMO_NOM_SENSI
"""
-from types import StringTypes
-import aster
-from Utilitai.Utmess import UTMESS
+# proctection eficas
+try:
+ import aster
+ from Utilitai.Utmess import U2MESS as UTMESS
+except:
+ pass
-# Doit etre en accord avec semeco.f
-prefix = '&NOSENSI.MEMO'
-nommem = '%-24s' % (prefix + '.CORR')
+_VIDE_ = '????????'
-def NomCompose(nomsd, nomps, msg='A'):
- """Utilitaire analogue à la routine fortran PSRENC.
- Retourne le nom composé à partir du couple (SD de base, paramètre sensible).
- `msg` : 'A', 'F' ou 'silence' (pas de message)
+#-------------------------------------------------------------------------------
+class MEMORISATION_SENSIBILITE:
+ """Classe pour la mémorisation des concepts sensibles et leurs dérivées.
"""
- nomcomp = None
- vect = aster.getvectjev(nommem)
- if not type(nomsd) in StringTypes:
- nomsd = nomsd.get_name()
- if not type(nomps) in StringTypes:
- nomps = nomps.get_name()
- if vect:
- trouv = False
- for ch in vect[0:len(vect):2]:
- if ch[0:8].strip() == nomsd and ch[8:16].strip() == nomps:
- trouv=True
- nomcomp = ch[16:24].strip()
- if not trouv and msg != 'silence':
- UTMESS(msg, 'NomCompose', 'Dérivée de %s par rapport à %s non disponible'\
- % (nomsd, nomps))
- elif msg != 'silence':
- UTMESS(msg, 'NomCompose', 'Pas de calcul de sensibilité accessible.')
- return nomcomp
-
-def SdPara(nomcomp, msg='A'):
- """Retourne le couple (SD de base, paramètre sensible) correspondant au nom
- composé `nomcomp`.
- `msg` : 'A', 'F' ou 'silence' (pas de message)
+ def __init__(self, debug=False):
+ """Initialisation de la structure
+ """
+ self._debug = debug
+ # dictionnaire de correspondance : ('nom concept', 'nom parasensi') : 'nom compose'
+ self._corr = {}
+ self._nsnp = {} # l'inverse
+ # dictionnaire donnant les 3 tuples de mots-clés, valeurs, mots-clés facteurs
+ self._mcle = {}
+
+
+ def key(self, nosimp, nopase):
+ """Retourne la clé d'accès aux dictionnaires
+ """
+ if not type(nosimp) in (str, unicode) or not type(nopase) in (str, unicode) or \
+ len(nosimp.strip()) > 8 or len(nopase.strip()) > 8:
+ UTMESS('F', 'SENSIBILITE_57', valk=(nosimp, nopase))
+ return nosimp.strip(), nopase.strip()
+
+
+ def set(self, nosimp, nopase, nocomp=None, limocl=None, livale=None, limofa=None,
+ verbose=False):
+ """On renseigne la structure de mémorisation : CHOIX='E'
+ """
+ key = self.key(nosimp, nopase)
+ if self._corr.has_key(key):
+ UTMESS('F', 'SENSIBILITE_90', valk=(nosimp, nopase))
+ limocl = limocl or ()
+ livale = livale or ()
+ limofa = limofa or ()
+ if not (len(limocl) == len(livale) == len(limofa)):
+ UTMESS('F', 'SENSIBILITE_97')
+
+ if nocomp is None:
+ nocomp = aster.get_nom_concept_unique('S')
+ self._corr[key] = nocomp
+ self._nsnp[nocomp] = key
+ self._mcle[key] = (limocl, livale, limofa)
+
+ if verbose or self._debug:
+ UTMESS('I', 'SENSIBILITE_58', valk=(nosimp, nopase, nocomp))
+ if len(limocl) != 0:
+ UTMESS('I', 'SENSIBILITE_59', valk=(str(limocl), str(livale), str(limofa)))
+
+
+ def get_nocomp(self, nosimp, nopase):
+ """On récupère le nom composé associé à un nom simple.
+ """
+ key = self.key(nosimp, nopase)
+ nocomp = self._corr.get(key, _VIDE_)
+ if self._debug:
+ print '<DBG> memo_sensi.get_nocomp'
+ print ' nosimp, nopase = "%s", "%s"' % (nosimp, nopase)
+ print ' nom composé = "%s"' % nocomp
+ return nocomp
+
+
+ def get_nsnp(self, nocomp):
+ """On récupère le nom du concept et le parasensi associé au nom composé fourni.
+ """
+ key = self._nsnp.get(nocomp, (_VIDE_, _VIDE_))
+ if self._debug:
+ print '<DBG> memo_sensi.get_nsnp'
+ print ' nom composé = "%s"' % nocomp
+ print ' nosimp, nopase = "%s", "%s"' % key
+ return nocomp
+
+
+ def get_mcle(self, nosimp, nopase):
+ """On récupère les mots-clés associés à un couple ('nom concept', 'nom parasensi')
+ """
+ key = self.key(nosimp, nopase)
+ tup3 = self._mcle.get(key, ((), (), ()) )
+ if self._debug:
+ print tup3
+ print '<DBG> memo_sensi.get_mcle nbmocl =',len(tup3[0])
+ print ' nosimp, nopase = "%s", "%s"' % (nosimp, nopase)
+ print ' mots-clés = ', tup3
+ return tup3
+
+
+ def psinfo(self, nosimp):
+ """Pendant de l'ex-routine psnosd : retour selon le type de `nosimp`.
+ """
+ # est-ce une structure dérivée ?
+ if nosimp in self._nsnp.keys():
+ t_couples = self._nsnp[nosimp]
+ ideriv = 1
+ else:
+ t_couples = self.get_deriv(nosimp)
+ ideriv = 0
+ # on met le tuple des couples à plat : un tuple de longueur double
+ l_res = []
+ for coupl in t_couples:
+ l_res.extend(coupl)
+ t_res = tuple(l_res)
+ if self._debug:
+ print '<DBG> memo_sensi.psinfo'
+ print ' nosimp = "%s"' % nosimp
+ print ' ideriv = ', ideriv
+ print ' result = ', t_res
+ return ideriv, t_res
+
+
+ def get_deriv(self, nosimp):
+ """On récupère la liste des couples ('nom composé', 'nom parasensi') associé à
+ un nom simple.
+ """
+ res = []
+ # liste des clés d'accès concernant `nosimp`.
+ l_key = [(ns, np) for ns, np in self._corr.keys() if ns == nosimp.strip()]
+ for ns, np in l_key:
+ res.append((self._corr[ns, np], np))
+ return tuple(res)
+
+
+ def delete(self, nosimp, nopase):
+ """On récupère les mots-clés associés à un couple ('nom concept', 'nom parasensi')
+ """
+ key = self.key(nosimp, nopase)
+ nocomp = self.get_nocomp(nosimp, nopase)
+ if nocomp != _VIDE_:
+ del self._corr[key]
+ del self._mcle[key]
+ del self._nsnp[nocomp]
+
+
+#-------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------
+def memo_nom_sensi_ops(self, NOM, **args):
+ """Macro MEMO_NOM_SENSI.
+ Transitoire : l'appel aux méthodes de MEMORISATION_SENSIBILITE devraient
+ à terme etre fait directement sans introduire de commandes MEMO_NOM_SENSI.
+
+ Faut-il traiter les mots-clés NOM_ZERO et NOM_UN ?
+ Il me semble que NOM_COMPOSE est toujours présent : obligatoire
"""
- nomsd = None
- nomps = None
- vect = aster.getvectjev(nommem)
- if not type(nomcomp) in StringTypes:
- UTMESS('F', 'SdPara', "Argument de type '%s' invalide" % type(nomcomp).__name__)
- if vect:
- trouv = False
- for ch in vect[0:len(vect):2]:
- if ch[16:24].strip() == nomcomp:
- trouv = True
- nomsd = ch[0:8].strip()
- nomps = ch[8:16].strip()
- if not trouv and msg != 'silence':
- UTMESS(msg, 'SdPara', 'Dérivée de %s par rapport à %s non disponible'\
- % (nomsd, nomps))
- elif msg != 'silence':
- UTMESS(msg, 'SdPara', 'Pas de calcul de sensibilité accessible.')
- return nomsd, nomps
+ ier=0
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # boucle sur les occurrences du mot-clé facteur NOM
+ for occ in NOM:
+ dNOM = occ.cree_dict_valeurs(occ.mc_liste)
+
+ nosimp = dNOM['NOM_SD']
+ nopase = dNOM['PARA_SENSI'].nom
+ nocomp = dNOM['NOM_COMPOSE']
+
+ self.jdc.memo_sensi.set(nosimp, nopase, nocomp,
+ dNOM['MOT_CLE'], dNOM['VALEUR'], dNOM['MOT_FACT'],
+ verbose=True)
+
+ return ier
-#@ MODIF Utmess Utilitai DATE 17/10/2005 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF Utmess Utilitai DATE 04/06/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
+# RESPONSABLE COURTOIS M.COURTOIS
+import os
import sys
-import aster
+import traceback
+import imp
+import re
+from Messages.context_info import message_context_concept
+
+try:
+ import aster
+except:
+ pass
+
+def _(s):
+ return s
+
+# -----------------------------------------------------------------------------
+contacter_assistance = """
+Il y a probablement une erreur dans la programmation.
+Veuillez contacter votre assistance technique."""
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+class MESSAGE_LOGGER:
+ """Classe gérant l'impression de messages.
+ On ne crée qu'une instance de ce type.
+ Cette instance est accessible via le module E_Global pour astermodule.c
+ """
+ def __init__(self):
+ """Initialisation
+ """
+ self.init_buffer()
+
+ # est-ce qu'une erreur <E> s'est produite
+ self.erreur_E = False
+
+ # compteur des alarmes émises { 'id_alarm' : count }
+ self.count_alarm = {}
+
+ # on prépare le dictionnaire des valeurs par défaut des arguments (dicarg) :
+ self.default_args = {}
+ # initialisation des 10 premiers
+ for i in range(1,11):
+ self.default_args['i%d' % i] = 99999999
+ self.default_args['r%d' % i] = 9.9999E99
+ self.default_args['k%d' % i] = 'xxxxxx'
+
+# -----------------------------------------------------------------------------
+ def __call__(self, *args, **kwargs):
+ """Raccourci pour simplifier l'appel depuis astermodule.c et UTMESS.
+ """
+ self.print_message(*args, **kwargs)
+
+# -----------------------------------------------------------------------------
+ def print_message(self, code, idmess, valk=(), vali=(), valr=(),
+ exception=False):
+ """Appelé par la routine fortran U2MESG ou à la fonction python UTMESS
+ pour afficher un message.
+ L'impression de ce message est différée si le `code` est suivi d'un "+".
+ code : 'A', 'E', 'S', 'F', 'I'
+ idmess : identificateur du message
+ valk, vali, valr : liste des chaines, entiers ou réels.
+ Si exception==True, on lève une exception en cas d'erreur.
+ """
+ # récupération du texte du message
+ dictmess = self.get_message(code, idmess, valk, vali, valr)
+
+ # on le met dans le buffer
+ self.add_to_buffer(dictmess)
+
+ # si on n'attend pas une suite, ...
+ if len(code) < 2 or code[1] != '+':
+ # mise à jour des compteurs
+ self.update_counter()
+
+ # on imprime le message en attente
+ self.print_buffer_content()
+
+ if exception:
+ reason = ' <EXCEPTION LEVEE> %s' % idmess
+ if code[0] == 'S':
+ raise aster.error, reason
+ elif code[0] == 'F':
+ raise aster.FatalError, reason
+
+ return None
+
+# -----------------------------------------------------------------------------
+ def build_dict_args(self, valk, vali, valr):
+ """Construit le dictionnaire de formattage du message.
+ """
+ # homogénéisation : uniquement des tuples + strip des chaines de caractères
+ valk, vali, valr = map(force_enum, (valk, vali, valr))
+ valk = [k.strip() for k in valk]
+
+ # variables passées au message
+ dicarg = self.default_args.copy()
+ for i in range(1,len(valk)+1):
+ dicarg['k%d' % i] = valk[i-1]
+ for i in range(1,len(vali)+1):
+ dicarg['i%d' % i] = vali[i-1]
+ for i in range(1,len(valr)+1):
+ dicarg['r%d' % i] = valr[i-1]
+ # valeur spéciale : ktout = concaténation de toutes les chaines
+ dicarg['ktout'] = ' '.join(valk)
+
+ return dicarg
+
+# -----------------------------------------------------------------------------
+ def get_message(self, code, idmess, valk=(), vali=(), valr=()):
+ """Retourne le texte du message dans un dictionnaire dont les clés sont :
+ 'code', 'id_message', 'corps_message'
+ """
+ dicarg = self.build_dict_args(valk, vali, valr)
+
+ # décodage : idmess => (catamess, numess)
+ idmess = idmess.strip()
+ x = idmess.split("_")
+ assert len(x) > 1, idmess
+ catamess='_'.join(x[0:-1]).lower()
+ numess = int(x[-1])
+ assert numess > 0 and numess < 100, idmess
+
+ # import catamess => cata_msg
+ try:
+ mod = __import__('Messages.%s' % catamess, globals(), locals(), [catamess])
+ # si le dictionnaire n'existe pas, on alertera au moment du formatage.
+ cata_msg = getattr(mod, 'cata_msg', {})
+ except Exception, msg:
+ # doit permettre d'éviter la récursivité
+ if catamess != 'supervis':
+ self.print_message('A', 'SUPERVIS_57', valk=(catamess, str(msg)))
+ cata_msg = {}
+
+ # corps du message
+ try:
+ # cata_msg[num] = 'format'
+ # ou {'message' : 'format', 'context' : 'éléments de contexte'}
+ if type(cata_msg[numess]) == dict:
+ fmt_msg = cata_msg[numess]['message']
+ ctxt_msg = cata_msg[numess]['context']
+ else:
+ fmt_msg = cata_msg[numess]
+ ctxt_msg = None
+
+ dictmess = {
+ 'code' : code,
+ 'id_message' : idmess,
+ 'corps_message' : fmt_msg % dicarg,
+ 'context_info' : self.get_context(ctxt_msg, idmess, dicarg),
+ }
+ if code == 'I':
+ dictmess['id_message'] = ''
+ except Exception, msg:
+ dictmess = {
+ 'code' : code,
+ 'id_message' : '',
+ 'corps_message' : """Erreur de programmation.
+Le message %s n'a pas pu etre formaté correctement.
+--------------------------------------------------------------------------
+%s
+--------------------------------------------------------------------------
+
+%s""" \
+ % (idmess,
+ ''.join(traceback.format_tb(sys.exc_traceback)), contacter_assistance),
+ 'context_info' : '',
+ }
+ # limite la longueur des ligness
+ dictmess['corps_message'] = cut_long_lines(dictmess['corps_message'], 80)
+ return dictmess
+
+# -----------------------------------------------------------------------------
+ def init_buffer(self):
+ """Initialise le buffer.
+ """
+ self._buffer = []
+
+# -----------------------------------------------------------------------------
+ def add_to_buffer(self, dictmess):
+ """Ajoute le message décrit dans le buffer en vue d'une impression
+ ultérieure.
+ """
+ self._buffer.append(dictmess)
+
+# -----------------------------------------------------------------------------
+ def get_current_code(self):
+ """Retourne le code du message du buffer = code du message le plus grave
+ (cf. dgrav)
+ """
+ dgrav = { '?' : -9, 'I' : 0, 'A' : 1, 'S' : 4, 'Z' : 4, 'E' : 6, 'F' : 10 }
+
+ current = '?'
+ for dictmess in self._buffer:
+ code = dictmess['code'][0]
+ if dgrav.get(code, -9) > dgrav.get(current, -9):
+ current = code
+
+ return current
+
+# -----------------------------------------------------------------------------
+ def get_current_id(self):
+ """Retourne l'id du message du buffer = id du premier message
+ """
+ return self._buffer[0]['id_message']
+
+# -----------------------------------------------------------------------------
+ def print_buffer_content(self):
+ """Extrait l'ensemble des messages du buffer dans un dictionnaire unique,
+ imprime le message, et vide le buffer pour le message suivant.
+ - code : celui du message le plus grave (cf. dgrav)
+ - id : celui du premier message qui est affiché
+ - corps : concaténation de tous les messages.
+ """
+ if len(self._buffer) < 1:
+ return None
+
+ # construction du dictionnaire du message global
+ dglob = {
+ 'code' : self.get_current_code(),
+ 'id_message' : self.get_current_id(),
+ 'liste_message' : [],
+ 'liste_context' : [],
+ }
+ for dictmess in self._buffer:
+ dglob['liste_message'].append(dictmess['corps_message'])
+ dglob['liste_context'].append(dictmess['context_info'])
+ dglob['corps_message'] = ''.join(dglob['liste_message'])
+ dglob['context_info'] = ''.join(dglob['liste_context'])
+
+ # liste des unités d'impression en fonction du type de message
+ l_unit = self.list_unit(dglob['code'])
+
+ # texte final et impression
+ txt = self.format_message(dglob)
+ for unite in l_unit:
+ aster.affiche(unite, txt)
+
+ self.init_buffer()
+
+# -----------------------------------------------------------------------------
+ def update_counter(self):
+ """Mise à jour des compteurs et réaction si besoin.
+ """
+ nmax_alarm = 5
+ code = self.get_current_code()
+ if code == 'E':
+ self.erreur_E = True
+ elif code == 'F':
+ self.erreur_E = False
+ elif code == 'A':
+ idmess = self.get_current_id()
+ # nombre d'occurence de cette alarme
+ self.count_alarm[idmess] = self.count_alarm.get(idmess, 0) + 1
+ if self.count_alarm[idmess] == nmax_alarm:
+ # Pour mettre en relief le message SUPERVIS_41, on le sépare
+ # de la dernière alarme
+ self.print_buffer_content()
+ dictmess = self.get_message(code, 'SUPERVIS_41',
+ valk=idmess, vali=nmax_alarm)
+ self.add_to_buffer(dictmess)
+ elif self.count_alarm[idmess] > nmax_alarm:
+ # count_alarm > 5, on vide le buffer
+ self.init_buffer()
+
+# -----------------------------------------------------------------------------
+ def check_counter(self, silent=False):
+ """Méthode "jusqu'ici tout va bien" !
+ Si des erreurs <E> se sont produites, on arrete le code en <F>.
+ Appelée par FIN ou directement au cours de l'exécution d'une commande.
+ Retourne un entier : 0 si tout est ok.
+ Si silent==True, on n'émet pas de message, on ne s'arrete pas.
+ """
+ iret = 0
+ if self.erreur_E:
+ iret = 4
+ self.erreur_E = False
+ if not silent:
+ self.print_message('F', 'SUPERVIS_6', exception=True)
+ return iret
+
+# -----------------------------------------------------------------------------
+ def format_message(self, dictmess):
+ """Formate le message décrit dans un dico :
+ 'code' : A, E, S, F, I
+ 'id_message' : identification du message
+ 'corps_message' : texte
+ """
+ charh = '-' # horizontal
+ charv = '!' # vertical
+ charc = '!' # coin
+ dcomm = {
+ 'A' : _("""Ceci est une alarme. Si vous ne comprenez pas le sens de cette
+alarme, vous pouvez obtenir des résultats inattendus !"""),
+ 'E' : _("""Cette erreur sera suivie d'une erreur fatale."""),
+ 'S' : _("""Cette erreur est fatale. Le code s'arrete. Toutes les étapes
+du calcul ont été sauvées dans la base jusqu'au moment de l'arret."""),
+ 'F' : _("""Cette erreur est fatale. Le code s'arrete."""),
+ }
+
+ # format complet
+ format_general = {
+ 'decal' : ' ',
+ 'header' : """<%(type_message)s> %(str_id_message)s""",
+ 'ligne' : '%(charv)s %%-%(maxlen)ds %(charv)s',
+ 'corps' : """%(header)s
+
+%(corps_message)s
+%(context_info)s
+
+%(commentaire)s
+""",
+ 'final' : """
+%(separateur)s
+%(corps)s
+%(separateur)s
+
+""",
+ }
+ # format light pour les infos
+ format_light = {
+ 'decal' : '',
+ 'header' : """<%(type_message)s> """,
+ 'ligne' : '%%s',
+ 'corps' : """%(corps_message)s
+%(context_info)s""",
+ 'final' : """%(corps)s""",
+ }
+ dmsg = dictmess.copy()
+ dmsg['type_message'] = self.get_type_message(dictmess['code'])
+ if dmsg['id_message'] != '':
+ dmsg['str_id_message'] = '<%s>' % dmsg['id_message']
+ else:
+ dmsg['str_id_message'] = ''
+
+ # format utilisé
+ format = format_general
+ if dmsg['type_message'] == 'I':
+ format = format_light
+
+ dmsg['header'] = format['header'] % dmsg
+ dmsg['commentaire'] = dcomm.get(dmsg['type_message'], '')
+ if re.search('^DVP', dmsg['id_message']) != None:
+ dmsg['commentaire'] += contacter_assistance
+
+ dmsg['corps'] = format['corps'] % dmsg
+
+
+ # longueur de la ligne la plus longue
+ l_line = dmsg['corps'].splitlines()
+ maxlen = max([len(line) for line in l_line])
+
+ # format des lignes sur maxlen caractères
+ dlin = {
+ 'charh' : charh,
+ 'charv' : charv,
+ 'charc' : charc,
+ 'maxlen' : maxlen
+ }
+ fmt_line = format['ligne'] % dlin
+
+ # on formate toutes les lignes
+ txt = [fmt_line % line for line in l_line]
+ dmsg['corps'] = os.linesep.join(txt)
+ dmsg['separateur'] = charc + charh * (maxlen + 2) + charc
+
+ # ligne haut et bas
+ newtxt = format['final'] % dmsg
+ # on décale
+ l_txt = [format['decal'] + line for line in newtxt.splitlines()]
+
+ return clean_string(os.linesep.join(l_txt))
+
+# -----------------------------------------------------------------------------
+ def list_unit(self, code):
+ """Retourne la liste des noms de fichiers (logiques) sur lesquels doit
+ etre imprimé le message.
+ """
+ #IDF = INDEX('EFIDASXZ', ...)
+ #'Z' (IDF=8) = LEVEE D'EXCEPTION
+ d = {
+ 'E' : ('ERREUR', 'MESSAGE', 'RESULTAT'),
+ 'I' : ('MESSAGE',),
+ 'A' : ('MESSAGE', 'RESULTAT'),
+ }
+ d['F'] = d['S'] = d['Z'] = d['E']
+ d['X'] = d['A']
+ return d.get(code, d['F'])
+
+# -----------------------------------------------------------------------------
+ def get_type_message(self, code):
+ """Retourne le type du message affiché.
+ En cas d'erreur, si on lève une exception au lieu de s'arreter,
+ on n'affiche pas le type de l'erreur pour ne pas fausser le diagnostic
+ """
+ typmess = code.strip()
+ if aster.onFatalError() == 'EXCEPTION':
+ if typmess in ('E', 'F'):
+ typmess = 'EXCEPTION'
+ # dans tous les cas, pour S et Z (exception), on affiche EXCEPTION.
+ if typmess in ('Z', 'S'):
+ typmess = 'EXCEPTION'
+ return typmess
+
+# -----------------------------------------------------------------------------
+ def get_context(self, ctxt_msg, idmess, dicarg):
+ """Prise en compte du context du message pour donner d'autres infos
+ à l'utilisateur.
+ ctxt_msg est un dictionnaire. Les clés traitées sont :
+ - CONCEPT
+ """
+ if not ctxt_msg:
+ return ''
+ msg = []
+ # tout dans un try/except car c'est du bonus, il ne faudrait pas planter !
+ try:
+ if ctxt_msg.has_key('CONCEPT'):
+ l_co = [dicarg[arg] for arg in force_enum(ctxt_msg['CONCEPT'])]
+ for co in l_co:
+ msg.append(message_context_concept(co))
+ except:
+ pass
+ return os.linesep.join(msg)
+
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+def clean_string(chaine):
+ """Supprime tous les caractères non imprimables.
+ """
+ invalid = '?'
+ txt = []
+ for c in chaine:
+ if ord(c) != 0:
+ txt.append(c)
+ else:
+ txt.append(invalid)
+ return ''.join(txt)
+
+# -----------------------------------------------------------------------------
+def force_enum(obj):
+ """Retourne `obj` si c'est une liste ou un tuple,
+ sinon retourne [obj,]
+ """
+ if type(obj) not in (list, tuple):
+ obj = [obj,]
+ return obj
+
+# -----------------------------------------------------------------------------
+def maximize_lines(l_fields, maxlen, sep):
+ """Construit des lignes dont la longueur est au plus de `maxlen` caractères.
+ Les champs sont assemblés avec le séparateur `sep`.
+ """
+ newlines = []
+ while len(l_fields) > 0:
+ cur = []
+ while len(l_fields) > 0 and len(sep.join(cur + [l_fields[0],])) <= maxlen:
+ cur.append(l_fields.pop(0))
+ newlines.append(sep.join(cur))
+ newlines = [l for l in newlines if l != '']
+ return newlines
+
+def cut_long_lines(txt, maxlen, sep=os.linesep,
+ l_separ=(' ', ',', ';', '.', ':')):
+ """Coupe les morceaux de `txt` (isolés avec `sep`) de plus de `maxlen`
+ caractères.
+ On utilise successivement les séparateurs de `l_separ`.
+ """
+ l_lines = txt.split(sep)
+ newlines = []
+ for line in l_lines:
+ if len(line) > maxlen:
+ l_sep = list(l_separ)
+ line = cut_long_lines(line, maxlen, l_sep[0], l_sep[1:])
+ line = maximize_lines(line, maxlen, l_sep[0])
+ newlines.extend(line)
+ else:
+ newlines.append(line)
+ # au plus haut niveau, on assemble le texte
+ if sep == os.linesep:
+ newlines = os.linesep.join(newlines)
+ return newlines
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+# unique instance du MESSAGE_LOGGER
+MessageLog = MESSAGE_LOGGER()
+
+
+# -----------------------------------------------------------------------------
+def U2MESS(code, idmess, valk=(), vali=(), valr=()):
+ """Utilitaire analogue à la routine fortran U2MESS/U2MESG avec les arguments
+ optionnels.
+ code : 'A', 'E', 'S', 'F', 'I'
+ idmess : identificateur du message
+ valk, vali, valr : liste des chaines, entiers ou réels.
+
+ Appel sans valeurs : avec valeurs :
+ U2MESS('A', 'SUPERVIS_55') U2MESS('A', 'SUPERVIS_55', vali=[1, 2])
+
+ Remarques :
+ - Nommer les arguments permet de ne pas tous les passer.
+ - Meme fonctionnement que U2MESG :
+ + appel à MessageLog
+ + puis exception ou abort en fonction du niveau d'erreur.
+ """
+ MessageLog(code, idmess, valk, vali, valr, exception=True)
+
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+#
+# !!! UTMESS sera remplacé par U2MESS !!!
+# !!! Ne plus utilisé UTMESS !!!
+#
def UTMESS(code, sprg, texte):
- """Utilitaire analogue à la routine fortran UTMESS.
- code : 'A', 'E', 'S', 'F', 'I'
- sprg : nom du module, classe ou fonction python où l'on se trouve
- texte : contenu du message
+ """Conserver le temps de réalisé le basculement
"""
fmt='\n <%s> <%s> %s\n\n'
sanscode='\n <%s> %s\n\n'
raise aster.error, reason
elif code=='F':
raise aster.FatalError, reason
+
--- /dev/null
+#@ 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,v 1.1.2.2 2007-06-08 12:28:30 pnoyret Exp $"
+
+# ----- 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
-#@ MODIF t_fonction Utilitai DATE 25/09/2006 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF t_fonction Utilitai DATE 30/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
import types
from sets import Set
-class FonctionError(Exception):
- pass
+# -----------------------------------------------------------------------------
+class FonctionError(Exception): pass
+class ParametreError(FonctionError): pass # probleme de NOM_PARA
+class InterpolationError(FonctionError): pass
+class ProlongementError(FonctionError): pass
+
+# -----------------------------------------------------------------------------
def interp(typ_i,val,x1,x2,y1,y2) :
"""Interpolation linéaire/logarithmique entre un couple de valeurs
"""
if typ_i==['LOG','LOG']: return exp(log(y1)+(log(val)-log(x1))*(log(y2)-log(y1))/(log(x2)-log(x1)))
if typ_i==['LOG','LIN']: return y1+(log(val)-log(x1))*(y2-y1)/(log(x2)-log(x1))
if typ_i[0]=='NON' :
- if val==x1 : return y1
- elif val==x2 : return y2
- else : raise FonctionError, 'fonction : interpolation NON'
+ if val==x1 : return y1
+ elif val==x2 : return y2
+ else :
+ raise InterpolationError, "abscisse = %g, intervalle = [%g, %g]" % (val, x1, x2)
+
def is_ordo(liste) :
listb=list(Set(liste))
listb.sort()
return liste==listb
+
+# -----------------------------------------------------------------------------
class t_fonction :
"""Classe pour fonctions réelles, équivalent au type aster = fonction_sdaster
"""
- def __init__(self,vale_x,vale_y,para) :
+ def __init__(self,vale_x,vale_y,para,nom='') :
"""Création d'un objet fonction
- vale_x et vale_y sont des listes de réels de meme longueur
- para est un dictionnaire contenant les entrées PROL_DROITE, PROL_GAUCHE et INTERPOL (cf sd ASTER)
"""
+ self.nom=nom
pk=para.keys()
pk.sort()
if pk!=['INTERPOL','NOM_PARA','NOM_RESU','PROL_DROITE','PROL_GAUCHE'] :
"""
para=copy.copy(self.para)
if other.para['NOM_RESU']!=self.para['NOM_PARA'] :
- raise FonctionError,'''composition de fonctions : NOM_RESU1 et NOM_PARA2 incohérents '''
+ raise ParametreError,'''composition de fonctions : NOM_RESU1 et NOM_PARA2 incohérents '''
para['NOM_PARA']==other.para['NOM_PARA']
return t_fonction(other.vale_x,map(self,other.vale_y),para)
if self.para['PROL_GAUCHE']=='EXCLU' :
eps_g=(val-self.vale_x[0] )/(self.vale_x[1] -self.vale_x[0])
if abs(eps_g)<=tol : return self.vale_y[0]
- else : raise FonctionError, 'fonction évaluée hors du domaine de définition'
+ else : raise ProlongementError, 'fonction évaluée hors du domaine de définition'
else :
if self.para['PROL_GAUCHE']=='CONSTANT' : return self.vale_y[0]
if self.para['PROL_GAUCHE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val,self.vale_x[0],
if self.para['PROL_DROITE']=='EXCLU' :
eps_d=(val-self.vale_x[-1])/(self.vale_x[-1]-self.vale_x[-2])
if abs(eps_d)<=tol : return self.vale_y[-1]
- else : raise FonctionError, 'fonction évaluée hors du domaine de définition'
+ else : raise ProlongementError, 'fonction évaluée hors du domaine de définition'
else :
if self.para['PROL_DROITE']=='CONSTANT' : return self.vale_y[-1]
if self.para['PROL_DROITE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val,self.vale_x[-1],
else : f_g=self
val_min =f_g.vale_x[0]
prol_gauche=f_g.para['PROL_GAUCHE']
- if self.vale_x[0]>other.vale_x[0]:
+ if self.vale_x[-1]>other.vale_x[-1]:
if other.para['PROL_DROITE']!='EXCLU' : f_d=self
else : f_d=other
else :
prol_droite=f_d.para['PROL_DROITE']
vale_x=concatenate((self.vale_x,other.vale_x))
vale_x=clip(vale_x,val_min,val_max)
- vale_x=sort(dict([(i,0) for i in vale_x]).keys())
- return vale_x,prol_gauche,prol_droite
+ vale_x=sort(list(Set(vale_x)))
+ return vale_x, prol_gauche, prol_droite
def cut(self,rinf,rsup,prec,crit='RELATIF') :
"""Renvoie la fonction self dont on a 'coupé' les extrémités en x=rinf et x=rsup
"""
return self.__class__(liste_val,map(self,liste_val),self.para)
- def sup(self,other) :
- """renvoie l'enveloppe supérieure de self et other
+ def func_union(self, func, other) :
+ """Retourne la fonction x : func(y1=self(x), y2=other(x))
+ sur la liste d'abscisses union de celles de self et de other.
"""
- para=copy.copy(self.para)
- # commentaire : pour les prolongements et l'interpolation, c'est self
- # qui prime sur other
- vale_x=self.vale_x.tolist()+other.vale_x.tolist()
+ para = copy.copy(self.para)
+ # Pour les prolongements et l'interpolation, c'est self qui prime sur other
+ vale_x = self.vale_x.tolist() + other.vale_x.tolist()
# on ote les abscisses doublons
- vale_x=dict([(i,0) for i in vale_x]).keys()
+ vale_x = list(Set(vale_x))
vale_x.sort()
- vale_x=array(vale_x)
- vale_y1=map(self, vale_x)
- vale_y2=map(other,vale_x)
- vale_y=map(max,vale_y1,vale_y2)
- return t_fonction(vale_x,vale_y,para)
-
- def inf(self,other) :
- """renvoie l'enveloppe inférieure de self et other
- """
- para=copy.copy(self.para)
- # commentaire : pour les prolongements et l'interpolation, c'est self
- # qui prime sur other
- vale_x=self.vale_x.tolist()+other.vale_x.tolist()
- # on ote les abscisses doublons
- vale_x=dict([(i,0) for i in vale_x]).keys()
- vale_x.sort()
- vale_x=array(vale_x)
- vale_y1=map(self, vale_x)
- vale_y2=map(other,vale_x)
- vale_y=map(min,vale_y1,vale_y2)
- return t_fonction(vale_x,vale_y,para)
+ vale_x = array(vale_x)
+ # interpolation des deux fonctions sur l'union des abscisses
+ vale_y1 = map(self, vale_x)
+ vale_y2 = map(other, vale_x)
+ # applique la fonction sur chaque couple (y1=f1(x), y2=f2(x))
+ vale_y = map(func, vale_y1, vale_y2)
+ return t_fonction(vale_x, vale_y, para)
+
+ def enveloppe(self, other, crit):
+ """renvoie l'enveloppe supérieure ou inférieure de self et other.
+ """
+ if crit.upper() == 'SUP':
+ env = self.func_union(max, other)
+ elif crit.upper() == 'INF':
+ env = self.func_union(min, other)
+ else:
+ raise FonctionError, 'enveloppe : le critère doit etre SUP ou INF !'
+ return env
def suppr_tend(self) :
"""pour les corrections d'accélérogrammes
para=copy.copy(self.para)
para['NOM_PARA']='FREQ'
if self.para['NOM_PARA']!='INST' :
- raise FonctionError, 'fonction réelle : FFT : NOM_PARA=INST pour une transformée directe'
+ raise ParametreError, 'fonction réelle : FFT : NOM_PARA=INST pour une transformée directe'
pas = self.vale_x[1]-self.vale_x[0]
for i in range(1,len(self.vale_x)) :
ecart = abs(((self.vale_x[i]-self.vale_x[i-1])-pas)/pas)
vale_y=self.vale_y.tolist()
vale_y=vale_y+[0.]*(2**(n+1)-len(self.vale_x))
vale_y=array(vale_y)
+ elif methode=='COMPLET' :
+ vale_y=self.vale_y
vect=FFT.fft(vale_y)
pasfreq =1./(pas*(len(vect)-1))
vale_x =[pasfreq*i for i in range(len(vect))]
vale_y =vect*pas
return t_fonction_c(vale_x,vale_y,para)
+
+# -----------------------------------------------------------------------------
class t_fonction_c(t_fonction) :
"""Classe pour fonctions complexes, équivalent au type aster = fonction_c
"""
para=copy.copy(self.para)
para['NOM_PARA']='INST'
if self.para['NOM_PARA']!='FREQ' :
- raise FonctionError, 'fonction complexe : FFT : NOM_PARA=FREQ pour une transformée directe'
+ raise ParametreError, 'fonction complexe : FFT : NOM_PARA=FREQ pour une transformée directe'
pas = self.vale_x[1]-self.vale_x[0]
for i in range(1,len(self.vale_x)) :
ecart = abs(((self.vale_x[i]-self.vale_x[i-1])-pas)/pas)
vale_fon1.reverse()
vale_fonc=vale_fonc+vale_fon1
vale_fonc=array(vale_fonc)
- if syme=='OUI' and len(self.vale_x)!=2**n :
+ if syme=='OUI' and methode!='COMPLET' and len(self.vale_x)!=2**n :
raise FonctionError, 'fonction complexe : FFT : syme=OUI et nombre de points<>2**n'
- part1=vale_fonc[:len(vale_fonc)/2+1]
- part2=vale_fonc[1:len(vale_fonc)/2]
+ if methode!='COMPLET' :
+ part1=vale_fonc[:len(vale_fonc)/2+1]
+ part2=vale_fonc[1:len(vale_fonc)/2]
+ if methode=='COMPLET' :
+ mil=int(len(self.vale_x)/2)
+ mil2=int((len(self.vale_x)+1)/2)
+ vale_fonc=self.vale_y
+ if syme=='OUI' :
+ mil=int(len(self.vale_x)/2)
+ mil2=int((len(self.vale_x)+1)/2)
+ elif syme=='NON' :
+ part2=vale_fonc[1:-1]
+ part2=part2.tolist()
+ part2.reverse()
+ vale_fonc=array(vale_fonc.tolist()+part2)
+ mil=int(len(self.vale_x)/2)*2
+ mil2=int((len(self.vale_x)+1)/2)*2-1
+ part1=vale_fonc[:mil+1]
+ part2=vale_fonc[1:mil2]
part2=conjugate(part2)
part2=part2.tolist()
part2.reverse()
return t_fonction(vale_x,vale_y,para)
+# -----------------------------------------------------------------------------
class t_nappe :
"""Classe pour nappes, équivalent au type aster = nappe_sdaster
"""
- def __init__(self,vale_para,l_fonc,para) :
+ def __init__(self,vale_para,l_fonc,para,nom='') :
"""Création d'un objet nappe
- vale_para est la liste de valeur des parametres (mot clé PARA dans DEFI_NAPPE)
- para est un dictionnaire contenant les entrées PROL_DROITE, PROL_GAUCHE et INTERPOL (cf sd ASTER)
- l_fonc est la liste des fonctions, de cardinal égal à celui de vale_para
"""
+ self.nom = nom
pk=para.keys()
pk.sort()
if pk!=['INTERPOL','NOM_PARA','NOM_PARA_FONC','NOM_RESU','PROL_DROITE','PROL_GAUCHE'] :
if i==0 :
if val1==self.vale_para[0] : return self.l_fonc[0](val2)
if val1 <self.vale_para[0] :
- if self.para['PROL_GAUCHE']=='EXCLU' : raise FonctionError, 'nappe évaluée hors du domaine de définition'
+ if self.para['PROL_GAUCHE']=='EXCLU' : raise ParametreError, 'nappe évaluée hors du domaine de définition'
if self.para['PROL_GAUCHE']=='CONSTANT' : return self.l_fonc[0](val2)
if self.para['PROL_GAUCHE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val1,
self.vale_para[0],
elif i==n :
if val1==self.vale_para[-1] : return self.l_fonc[-1](val2)
if val1 >self.vale_para[-1] :
- if self.para['PROL_DROITE']=='EXCLU' : raise FonctionError, 'nappe évaluée hors du domaine de définition'
+ if self.para['PROL_DROITE']=='EXCLU' : raise ParametreError, 'nappe évaluée hors du domaine de définition'
if self.para['PROL_DROITE']=='CONSTANT' : return self.l_fonc[-1](val2)
if self.para['PROL_DROITE']=='LINEAIRE' : return interp(self.para['INTERPOL'],val1,
self.vale_para[-1],
"""
l_fonc=[]
if isinstance(other,t_nappe):
- if self.vale_para!=other.vale_para : raise FonctionError, 'nappes à valeurs de paramètres différentes'
+ if self.vale_para!=other.vale_para : raise ParametreError, 'nappes à valeurs de paramètres différentes'
for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]+other.l_fonc[i])
elif type(other) in [types.FloatType,types.IntType] :
for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]+other)
"""
l_fonc=[]
if isinstance(other,t_nappe):
- if self.vale_para!=other.vale_para : raise FonctionError, 'nappes à valeurs de paramètres différentes'
+ if self.vale_para!=other.vale_para : raise ParametreError, 'nappes à valeurs de paramètres différentes'
for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]*other.l_fonc[i])
elif type(other) in [types.FloatType,types.IntType] :
for i in range(len(self.l_fonc)) : l_fonc.append(self.l_fonc[i]*other)
"""Renvoie la nappe self avec un support union de celui de self et de other
le support est la discrétisation vale_para et les discrétisations des fonctions
"""
- if self==other : return self
- if self.para!=other.para : raise FonctionError, 'combinaison de nappes à caractéristiques interpolation et prolongement différentes'
+ if self==other:
+ return self
+ if self.para!=other.para:
+ raise FonctionError, 'combinaison de nappes à caractéristiques interpolation et prolongement différentes'
vale_para=self.vale_para.tolist()+other.vale_para.tolist()
- vale_para=dict([(i,0) for i in vale_para]).keys()
+ vale_para=list(Set(vale_para))
vale_para.sort()
vale_para=array(vale_para)
l_fonc=[]
for val in vale_para :
- if val in self.vale_para : l_fonc.append(self.l_fonc[searchsorted(self.vale_para,val)])
- elif val in other.vale_para :
- other_fonc=other.l_fonc[searchsorted(other.vale_para,val)]
- new_vale_x=other_fonc.vale_x
- new_para =other_fonc.para
- new_vale_y=[self(x) for x in new_vale_x]
- if isinstance(other_fonc,t_fonction) :
- l_fonc.append(t_fonction(new_vale_x,new_vale_y,new_para))
- if isinstance(other_fonc,t_fonction_c) :
- l_fonc.append(t_fonction_c(new_vale_x,new_vale_y,new_para))
- else : raise FonctionError, 'combinaison de nappes : incohérence'
+ if val in self.vale_para:
+ l_fonc.append(self.l_fonc[searchsorted(self.vale_para, val)])
+ elif val in other.vale_para:
+ other_fonc=other.l_fonc[searchsorted(other.vale_para, val)]
+ new_vale_x=other_fonc.vale_x
+ new_para =other_fonc.para
+ new_vale_y=[self(x) for x in new_vale_x]
+ if isinstance(other_fonc, t_fonction):
+ l_fonc.append(t_fonction(new_vale_x, new_vale_y, new_para))
+ if isinstance(other_fonc, t_fonction_c):
+ l_fonc.append(t_fonction_c(new_vale_x, new_vale_y, new_para))
+ else:
+ raise FonctionError, 'combinaison de nappes : incohérence'
return t_nappe(vale_para,l_fonc,self.para)
def extreme(self) :
for item in vm['min'] : item.reverse()
for item in vm['max'] : item.reverse()
return vm
+
+
+# -----------------------------------------------------------------------------
+def homo_support_nappe(l_f):
+ """Homogénéisation du support d'une liste de nappes.
+ Retourne une liste de nappes.
+ """
+ if type(l_f) not in (list, tuple):
+ l_f = [l_f,]
+ l_fres=[]
+ for f in l_f:
+ assert isinstance(f, t_nappe), 'Erreur : homo_support_nappe est réservé aux nappes !'
+ __ff=f
+ for g in l_f:
+ __ff=__ff.homo_support(g)
+ l_fres.append(__ff)
+ return l_fres
+
-# -*- coding: utf-8 -*-
-#@ MODIF __init__ Cata DATE 27/03/2002 AUTEUR DURAND C.DURAND
+#@ MODIF __init__ Cata DATE 20/09/2004 AUTEUR DURAND C.DURAND
+# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
-#
--- /dev/null
+# -*- 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)
+
#
__version__="$Name: $"
-__Id__="$Id: cata.py,v 1.4.6.1 2006/05/29 07:04:57 cchris Exp $"
+__Id__="$Id: cata.py,v 1.5.12.2 2007-05-29 17:08:48 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 Noyau
+class ASSD(ASSD,Noyau.AsBase):pass
+class GEOM(GEOM,Noyau.AsBase):pass
+#fin compatibilite
+
# Type le plus general
class entier (ASSD):pass
class reel (ASSD):pass
import os,sys
+sys.modules["Cata"]=sys.modules[__name__]
rep_macro = os.path.dirname(__file__)
sys.path.insert(0,rep_macro)
+rep_macro=os.path.join(rep_macro,'Macro')
+sys.path.insert(0,rep_macro)
+
+
+#compatibilite avec V9
+import Noyau
+import Accas
+class ASSD(Accas.ASSD,Noyau.AsBase):pass
+class GEOM(Accas.GEOM,ASSD):pass
+class formule(Accas.formule,ASSD):pass
+Accas.ASSD=ASSD
+Accas.GEOM=GEOM
+Accas.formule=formule
+#fin compatibilite
+
from cata import *
+
+from math import ceil
+from Extensions import param2
+pi=param2.Variable('pi',pi)
+
#
__version__="$Name: $"
-__Id__="$Id: cata.py,v 1.2.4.1 2006/12/14 17:22:47 pnoyret Exp $"
+__Id__="$Id: cata.py,v 1.3.8.6 2007-06-15 13:57:36 cchris Exp $"
#
JdC = JDC_CATA(code='ASTER',
execmodul=None,
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
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,37.7 *coef0,
+ 50. ,38.6 *coef0,
+ 100. ,39.9 *coef0,
+ 150. ,40.5 *coef0,
+ 200. ,40.5 *coef0,
+ 250. ,40.2 *coef0,
+ 300. ,39.5 *coef0,
+ 350. ,38.7 *coef0,
+ 400. ,37.7 *coef0,
+ 450. ,36.6 *coef0,
+ 500. ,35.5 *coef0,
+ 550. ,34.3 *coef0,
+ 600. ,33.0 *coef0,
+ 650. ,31.8 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.49E+6 *coef1,
+ 50. ,3.59E+6 *coef1,
+ 100. ,3.77E+6 *coef1,
+ 150. ,3.93E+6 *coef1,
+ 200. ,4.09E+6 *coef1,
+ 250. ,4.27E+6 *coef1,
+ 300. ,4.42E+6 *coef1,
+ 350. ,4.60E+6 *coef1,
+ 400. ,4.80E+6 *coef1,
+ 450. ,5.04E+6 *coef1,
+ 500. ,5.35E+6 *coef1,
+ 550. ,5.69E+6 *coef1,
+ 600. ,6.10E+6 *coef1,
+ 650. ,6.65E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,205.E+9 *coef2,
+ 20. ,204.E+9 *coef2,
+ 50. ,203.E+9 *coef2,
+ 100. ,200.E+9 *coef2,
+ 150. ,197.E+9 *coef2,
+ 200. ,193.E+9 *coef2,
+ 250. ,189.E+9 *coef2,
+ 300. ,185.E+9 *coef2,
+ 350. ,180.E+9 *coef2,
+ 400. ,176.E+9 *coef2,
+ 450. ,171.E+9 *coef2,
+ 500. ,166.E+9 *coef2,
+ 550. ,160.E+9 *coef2,
+ 600. ,155.E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 11.22E-6, 50., 11.45E-6,
+ 100., 11.79E-6, 150., 12.14E-6,
+ 200., 12.47E-6, 250., 12.78E-6,
+ 300., 13.08E-6, 350., 13.40E-6,
+ 400., 13.72E-6, 450., 14.02E-6,
+ ))
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ )
+ )
+
+#
+
--- /dev/null
+indispensable pour ne pas avoir une directory vide
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,22.7 *coef0,
+ 50. ,23.1 *coef0,
+ 100. ,23.9 *coef0,
+ 150. ,24.7 *coef0,
+ 200. ,25.5 *coef0,
+ 250. ,26.3 *coef0,
+ 300. ,27.1 *coef0,
+ 350. ,27.9 *coef0,
+ 400. ,28.7 *coef0,
+ 450. ,29.5 *coef0,
+ 500. ,30.3 *coef0,
+ 550. ,31.1 *coef0,
+ 600. ,31.9 *coef0,
+ 650. ,32.7 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.64E+6 *coef1,
+ 50. ,3.73E+6 *coef1,
+ 100. ,3.90E+6 *coef1,
+ 150. ,4.06E+6 *coef1,
+ 200. ,4.22E+6 *coef1,
+ 250. ,4.39E+6 *coef1,
+ 300. ,4.55E+6 *coef1,
+ 350. ,4.70E+6 *coef1,
+ 400. ,4.86E+6 *coef1,
+ 450. ,5.04E+6 *coef1,
+ 500. ,5.21E+6 *coef1,
+ 550. ,5.32E+6 *coef1,
+ 600. ,5.39E+6 *coef1,
+ 650. ,5.37E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,216.5E+9 *coef2,
+ 20. ,215.4E+9 *coef2,
+ 50. ,213.0E+9 *coef2,
+ 100. ,209.4E+9 *coef2,
+ 150. ,206.0E+9 *coef2,
+ 200. ,201.8E+9 *coef2,
+ 250. ,197.5E+9 *coef2,
+ 300. ,193.5E+9 *coef2,
+ 350. ,189.0E+9 *coef2,
+ 400. ,184.5E+9 *coef2,
+ 450. ,179.0E+9 *coef2,
+ 500. ,173.5E+9 *coef2,
+ 550. ,167.0E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 9.42E-6, 50., 9.60E-6,
+ 100., 9.96E-6, 150., 10.20E-6,
+ 200., 10.44E-6, 250., 10.69E-6,
+ 300., 10.95E-6, 350., 11.19E-6,
+ 400., 11.40E-6, 450., 11.59E-6,
+ ))
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ )
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -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,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.60E+6 *coef1,
+ 50. ,3.74E+6 *coef1,
+ 100. ,3.90E+6 *coef1,
+ 150. ,4.10E+6 *coef1,
+ 200. ,4.16E+6 *coef1,
+ 250. ,4.27E+6 *coef1,
+ 300. ,4.30E+6 *coef1,
+ 350. ,4.35E+6 *coef1,
+ 400. ,4.39E+6 *coef1,
+ 450. ,4.39E+6 *coef1,
+ 500. ,4.44E+6 *coef1,
+ 550. ,4.47E+6 *coef1,
+ 600. ,4.49E+6 *coef1,
+ 650. ,4.53E+6 *coef1,
+ 700. ,4.58E+6 *coef1,
+ 750. ,4.61E+6 *coef1,
+ 800. ,4.72E+6 *coef1,
+ 1000. ,4.99E+6 *coef1,
+ 1200. ,5.04E+6 *coef1,
+ 1500. ,5.04E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198.5E+9 *coef2,
+ 20. ,197.E+9 *coef2,
+ 50. ,195.E+9 *coef2,
+ 100. ,191.5E+9 *coef2,
+ 150. ,187.5E+9 *coef2,
+ 200. ,184.E+9 *coef2,
+ 250. ,180.E+9 *coef2,
+ 300. ,176.5E+9 *coef2,
+ 350. ,172.E+9 *coef2,
+ 400. ,168.E+9 *coef2,
+ 450. ,164.E+9 *coef2,
+ 500. ,160.E+9 *coef2,
+ 550. ,155.5E+9 *coef2,
+ 600. ,151.5E+9 *coef2,
+ 700. ,142.5E+9 *coef2,
+ 800. ,130.E+9 *coef2,
+ 1000. ,81.5E+9 *coef2,
+ 1200. ,7.4E+9 *coef2,
+ 1400. ,0. *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+_A3=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 16.4E-6,
+ 50., 16.54E-6, 100., 16.8E-6,
+ 150., 17.04E-6, 200., 17.2E-6,
+ 250., 17.5E-6, 300., 17.7E-6,
+ 350., 17.9E-6, 400., 18.1E-6,
+ 450., 18.24E-6, 500., 18.4E-6,
+ 600., 18.7E-6, 700., 18.9E-6,
+ 800., 19.1E-6, 900., 19.3E-6,
+ 1000., 19.5E-6, 1400., 20.E-6,
+ 1600., 20.2E-6,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 20°C
+#
+
+coef5=1.E ## UNIT -6
+_A5=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 9.39E-4, 185.E+6 *coef5,
+ 1.07E-3, 190.53E+6 *coef5,
+ 1.64E-3, 225.E+6 *coef5,
+ 3.32E-3, 261.E+6 *coef5,
+ 7.45E-3, 287.E+6 *coef5,
+ 0.011, 300.E+6 *coef5,
+ 0.032, 360.E+6 *coef5,
+ 0.05, 404.E+6 *coef5,
+ 0.1, 491.E+6 *coef5,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 200°C
+#
+coef6=1.E ## UNIT -6
+_A6=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.61E-4 ,140.E+6 *coef6,
+ 1.E-3 ,150.E+6 *coef6,
+ 2.9E-3 ,168.E+6 *coef6,
+ 4.E-3 ,181.E+6 *coef6,
+ 7.E-3 ,195.E+6 *coef6,
+ 1.E-2 ,205.E+6 *coef6,
+ 0.034 ,276.E+6 *coef6,
+ 0.05 ,303.E+6 *coef6,
+ 0.15 ,450.E+6 *coef6,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 350°C
+#
+coef7=1.E ## UNIT -6
+_A7=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.56E-4 ,130.E+6 *coef7,
+ 8.9E-4 ,136.E+6 *coef7,
+ 1.84E-3 ,145.E+6 *coef7,
+ 2.9E-3 ,151.E+6 *coef7,
+ 4.9E-3 ,160.E+6 *coef7,
+ 8.9E-3 ,174.E+6 *coef7,
+ 0.011 ,180.E+6 *coef7,
+ 0.051 ,261.E+6 *coef7,
+ #0.01 ,353.E+6 *coef7,
+ 0.1 ,353.E+6 *coef7,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 400°C
+#
+coef8=1.E ## UNIT -6
+_A8=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.14E-4 ,120.E+6 *coef8,
+ 1.E-3 ,125.E+6 *coef8,
+ 2.E-3 ,134.E+6 *coef8,
+ 3.E-3 ,141.E+6 *coef8,
+ 8.E-3 ,157.E+6 *coef8,
+ 19.E-3 ,185.E+6 *coef8,
+ 25.E-3 ,200.E+6 *coef8,
+ 0.05 ,240.E+6 *coef8,
+ 0.1 ,320.E+6 *coef8,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 600°C
+#
+coef9=1.E ## UNIT -6
+_A9=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 5.94E-4 ,90.E+6 *coef9,
+ 1.E-3 ,104.E+6 *coef9,
+ 2.E-3 ,112.E+6 *coef9,
+ 3.E-3 ,119.E+6 *coef9,
+ 6.5E-3 ,131.E+6 *coef9,
+ 1.E-2 ,141.E+6 *coef9,
+ 2.14E-2 ,174.E+6 *coef9,
+ 0.05 ,224.E+6 *coef9,
+ 0.15 ,350.E+6 *coef9,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 800°C
+#
+coefA=1.E ## UNIT -6
+_AA=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 5.77E-4 ,75.E+6 *coefA,
+ 1.5E-3 ,81.E+6 *coefA,
+ 3.E-3 ,92.5E+6 *coefA,
+ 4.E-3 ,95.5E+6 *coefA,
+ 6.E-3 ,104.E+6 *coefA,
+ 0.01 ,115.E+6 *coefA,
+ 0.0278 ,141.E+6 *coefA,
+ 0.05 ,159.E+6 *coefA,
+ 0.1 ,170.E+6 *coefA,
+ ))
+
+#
+# COURBE DE TRACTION
+#
+
+_AB=DEFI_NAPPE(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ PARA=(20.,200.,350.,400.,600.,800., ),
+ FONCTION=(_A5,_A6,_A7,_A8,_A9,_AA, ))
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+
+# SM EN FONCTION DE LA TEMPERATURE
+
+_BD=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='CONSTANT',
+ VALE=(
+ 20.0,115.0E6,
+ 50.0,115.0E6,
+ 100.0,115.0E6,
+ 150.0,115.0E6,
+ 200.0,109.0E6,
+ 250.0,103.0E6,
+ 300.0,96.0E6,
+ 340.0,94.0E6,
+ 350.0,94.0E6,
+ ))
+_AD=CALC_FONCTION(COMB=_F(FONCTION = _BD,
+ COEF = 1.E ## UNIT -6
+ ),);
+
+# N_KE CONSTANTE EN FAIT
+_AE=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',VALE=(20.,0.3,100.,0.3),)
+
+# M_KE CONSTANTE EN FAIT
+_AF=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',VALE=(20.,1.7,100.,1.7),)
+
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+ TRACTION=_F( SIGM = _AB, ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=1.79E11*1.E ## UNIT -6
+ ),
+
+ RCCM_FO=_F( ## SUBST RCCM
+ SM=_AD, ## EVAL _AD
+ N_KE=_AE, ## EVAL _AE
+ M_KE=_AF, ## EVAL _AF
+ )
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#
+# Catalogue MATERIAU de l'acier inoxydable austenitique 316L
+# - Denomination AFNOR : Z2CND1712
+# - Denomination usuelle : A316L
+#
+# LAMBDA EN FONCTION DE LA TEMPERATURE
+#
+coef0=1.E ## UNIT -3
+
+_A0=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,14.0 *coef0,
+ 50. ,14.4 *coef0,
+ 100. ,15.2 *coef0,
+ 150. ,15.8 *coef0,
+ 200. ,16.6 *coef0,
+ 250. ,17.3 *coef0,
+ 300. ,17.9 *coef0,
+ 350. ,18.6 *coef0,
+ 400. ,19.2 *coef0,
+ 450. ,19.9 *coef0,
+ 500. ,20.6 *coef0,
+ 550. ,21.2 *coef0,
+ 600. ,21.8 *coef0,
+ 650. ,22.4 *coef0,
+ 700. ,23.1 *coef0,
+ 750. ,23.7 *coef0,
+ 800. ,24.3 *coef0,
+ 900. ,26.0 *coef0,
+ 1000. ,27.3 *coef0,
+ 1200. ,29.9 *coef0,
+ 1500. ,34.0 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPERATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3598972. *coef1,
+ 50. ,3701799. *coef1,
+ 100. ,3907455. *coef1,
+ 150. ,4010152. *coef1,
+ 200. ,4160401. *coef1,
+ 250. ,4261084. *coef1,
+ 300. ,4292566. *coef1,
+ 350. ,4366197. *coef1,
+ 400. ,4393593. *coef1,
+ 450. ,4422222. *coef1,
+ 500. ,4439655. *coef1,
+ 550. ,4463158. *coef1,
+ 600. ,4494845. *coef1,
+ 650. ,4525252. *coef1,
+ 700. ,4583333. *coef1,
+ 750. ,4637965. *coef1,
+ 800. ,4700193. *coef1,
+ 900. ,4946500. *coef1,
+ 1000. ,4989600. *coef1,
+ 1200. ,5043650. *coef1,
+ 1500. ,5037000. *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPERATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198500.E+6 *coef2,
+ 20. ,197000.E+6 *coef2,
+ 50. ,195000.E+6 *coef2,
+ 100. ,191500.E+6 *coef2,
+ 150. ,187500.E+6 *coef2,
+ 200. ,184000.E+6 *coef2,
+ 250. ,180000.E+6 *coef2,
+ 300. ,176500.E+6 *coef2,
+ 350. ,172000.E+6 *coef2,
+ 400. ,168000.E+6 *coef2,
+ 450. ,164000.E+6 *coef2,
+ 500. ,160000.E+6 *coef2,
+ 550. ,155500.E+6 *coef2,
+ 600. ,151500.E+6 *coef2,
+ 700. ,142500.E+6 *coef2,
+ 800. ,130000.E+6 *coef2,
+ 900. ,108000.E+6 *coef2,
+ 1000. ,81500.E+6 *coef2,
+ 1100. ,32000.E+6 *coef2,
+ 1200. ,7400.E+6 *coef2,
+ 1300. ,3000.E+6 *coef2,
+ 1400. ,5.E+6 *coef2,
+ ))
+#
+# NU EN FONCTION DE LA TEMPERATURE
+#
+_A3=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPERATURE
+#
+
+_A4=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.0 ,15.4E-6 ,
+ 20.0 ,15.54E-6 ,
+ 50.0 ,15.72E-6 ,
+ 100.0 ,16.0E-6 ,
+ 150.0 ,16.3E-6 ,
+ 200.0 ,16.6E-6 ,
+ 250.0 ,16.86E-6 ,
+ 300.0 ,17.1E-6 ,
+ 350.0 ,17.36E-6 ,
+ 400.0 ,17.6E-6 ,
+ 450.0 ,17.82E-6 ,
+ 500.0 ,18.0E-6 ,
+ 600.0 ,18.4E-6 ,
+ 700.0 ,18.7E-6 ,
+ 800.0 ,19.0E-6 ,
+ 900.0 ,19.2E-6 ,
+ 1000.0 ,19.4E-6 ,
+ 1400.0 ,19.6E-6 ,
+ 1600.0 ,19.7E-6 ,
+ ))
+
+
+#
+# COURBE DE TRACTION A LA TEMPERATURE 20C
+#
+
+coef5=1.E ## UNIT -6
+_TR20=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.08446701E-2 ,166.4E+6 *coef5,
+ 0.09221476E-2 ,177.72307E+6 *coef5,
+ 0.09675755E-2 ,184.702374E+6 *coef5,
+ 0.10035526E-2 ,189.819863E+6 *coef5,
+ 0.10341966E-2 ,193.88674E+6 *coef5,
+ 0.10613920E-2 ,197.274216E+6 *coef5,
+ 0.11091372E-2 ,202.74003E+6 *coef5,
+ 0.11294416E-2 ,202.8E+6 *coef5,
+ 0.13218274E-2 ,221.E+6 *coef5,
+ 0.17010152E-2 ,236.6E+6 *coef5,
+ 0.22670051E-2 ,249.6E+6 *coef5,
+ 0.33197970E-2 ,260.E+6 *coef5,
+ 0.53857868E-2 ,273.E+6 *coef5,
+ 0.74253807E-2 ,280.8E+6 *coef5,
+ 0.94517766E-2 ,286.E+6 *coef5,
+ 1.14913706E-2 ,293.8E+6 *coef5,
+ 1.65573604E-2 ,306.8E+6 *coef5,
+ 2.16101523E-2 ,317.2E+6 *coef5,
+ 3.17289340E-2 ,340.6E+6 *coef5,
+ ))
+
+#
+# COURBE DE TRACTION A LA TEMPERATURE 100C
+#
+coef6=1.E ## UNIT -6
+_TR100=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.07268930E-2 ,139.2E+6 *coef6,
+ 0.10049608E-2 ,173.3E+6 *coef6,
+ 0.20003864E-2 ,200.E+6 *coef6,
+ 0.30757180E-2 ,206.E+6 *coef6,
+ 1.11994778E-2 ,229.7E+6 *coef6,
+ 2.13211488E-2 ,253.E+6 *coef6,
+ 4.15456919E-2 ,296.E+6 *coef6,
+ 6.17545692E-2 ,336.E+6 *coef6,
+ 8.19582245E-2 ,375.E+6 *coef6,
+ 10.2151436E-2 ,412.E+6 *coef6,
+ 15.2647520E-2 ,507.E+6 *coef6,
+ 20.3143603E-2 ,602.E+6 *coef6,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 200C
+#
+coef7=1.E ## UNIT -6
+_TR200=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.06271740E-2 ,115.4E+6 *coef7,
+ 0.10631555E-2 ,153.4E+6 *coef7,
+ 0.19565609E-2 ,170.E+6 *coef7,
+ 0.29734414E-2 ,173.E+6 *coef7,
+ 1.11084853E-2 ,197.E+6 *coef7,
+ 2.12435291E-2 ,221.E+6 *coef7,
+ 4.14854828E-2 ,264.E+6 *coef7,
+ 6.17133693E-2 ,304.5E+6 *coef7,
+ 8.19300023E-2 ,343.E+6 *coef7,
+ 10.2149449E-2 ,382.E+6 *coef7,
+ 15.2689624E-2 ,478.E+6 *coef7,
+ 20.3224173E-2 ,573.E+6 *coef7,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 300C
+#
+coef8=1.E ## UNIT -6
+_TR300=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.05694051E-2 ,100.5E+6 *coef8,
+ 0.09563739E-2 ,133.5E+6 *coef8,
+ 0.19998584E-2 ,150.E+6 *coef8,
+ 0.28781870E-2 ,155.E+6 *coef8,
+ 1.10254958E-2 ,181.E+6 *coef8,
+ 2.11614731E-2 ,205.E+6 *coef8,
+ 4.14164306E-2 ,250.E+6 *coef8,
+ 6.16430595E-2 ,290.E+6 *coef8,
+ 8.18696884E-2 ,330.E+6 *coef8,
+ 10.2096317E-2 ,370.E+6 *coef8,
+ 15.2623229E-2 ,463.E+6 *coef8,
+ 20.3161473E-2 ,558.E+6 *coef8,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 350C
+#
+coef9=1.E ## UNIT -6
+_TR350=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.05558140E-2 ,95.6E+6 *coef9,
+ 0.06134823E-2 ,102.078952E+6 *coef9,
+ 0.06467887E-2 ,106.087661E+6 *coef9,
+ 0.06738779E-2 ,109.026998E+6 *coef9,
+ 0.06974587E-2 ,111.362893E+6 *coef9,
+ 0.07187707E-2 ,113.308561E+6 *coef9,
+ 0.07570231E-2 ,116.447965E+6 *coef9,
+ 0.08008140E-2 ,120.54E+6 *coef9,
+ 0.09520930E-2 ,129.36E+6 *coef9,
+ 0.12862791E-2 ,135.24E+6 *coef9,
+ 0.18204651E-2 ,141.12E+6 *coef9,
+ 0.28546512E-2 ,147.E+6 *coef9,
+ 0.48973837E-2 ,154.35E+6 *coef9,
+ 0.69315698E-2 ,160.23E+6 *coef9,
+ 0.89657558E-2 ,166.11E+6 *coef9,
+ 1.09913953E-2 ,170.52E+6 *coef9,
+ 1.60597674E-2 ,182.28E+6 *coef9,
+ 2.11195930E-2 ,192.57E+6 *coef9,
+ 3.12477907E-2 ,214.62E+6 *coef9,
+ ))
+#
+# COURBE DE TRACTION
+#
+
+_A5=DEFI_NAPPE(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ PARA=(20.,100.,200.,300.,350., ),
+ FONCTION=(_TR20,_TR100,_TR200,_TR300,_TR350))
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+ TRACTION=_F( SIGM = _A5, ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=2.07E11*1.E ## UNIT -6
+ ),
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,14.0 *coef0,
+ 50. ,14.4 *coef0,
+ 100. ,15.2 *coef0,
+ 150. ,15.8 *coef0,
+ 200. ,16.6 *coef0,
+ 250. ,17.3 *coef0,
+ 300. ,17.9 *coef0,
+ 350. ,18.6 *coef0,
+ 400. ,19.2 *coef0,
+ 450. ,19.9 *coef0,
+ 500. ,20.6 *coef0,
+ 550. ,21.2 *coef0,
+ 600. ,21.8 *coef0,
+ 650. ,22.4 *coef0,
+ 700. ,23.1 *coef0,
+ 750. ,23.7 *coef0,
+ 800. ,24.3 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.60E+6 *coef1,
+ 50. ,3.70E+6 *coef1,
+ 100. ,3.91E+6 *coef1,
+ 150. ,4.01E+6 *coef1,
+ 200. ,4.16E+6 *coef1,
+ 250. ,4.26E+6 *coef1,
+ 300. ,4.29E+6 *coef1,
+ 350. ,4.37E+6 *coef1,
+ 400. ,4.39E+6 *coef1,
+ 450. ,4.42E+6 *coef1,
+ 500. ,4.44E+6 *coef1,
+ 550. ,4.46E+6 *coef1,
+ 600. ,4.49E+6 *coef1,
+ 650. ,4.53E+6 *coef1,
+ 700. ,4.58E+6 *coef1,
+ 750. ,4.64E+6 *coef1,
+ 800. ,4.70E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198.5E+9 *coef2,
+ 20. ,197.0E+9 *coef2,
+ 50. ,195.0E+9 *coef2,
+ 100. ,191.5E+9 *coef2,
+ 150. ,187.5E+9 *coef2,
+ 200. ,184.0E+9 *coef2,
+ 250. ,180.0E+9 *coef2,
+ 300. ,176.5E+9 *coef2,
+ 350. ,172.0E+9 *coef2,
+ 400. ,168.0E+9 *coef2,
+ 450. ,164.0E+9 *coef2,
+ 500. ,160.0E+9 *coef2,
+ 550. ,155.5E+9 *coef2,
+ 600. ,151.5E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 15.54E-6, 50., 15.72E-6,
+ 100., 16.00E-6, 150., 16.30E-6,
+ 200., 16.60E-6, 250., 16.86E-6,
+ 300., 17.10E-6, 350., 17.36E-6,
+ 400., 17.60E-6, 450., 17.82E-6,
+ ))
+
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=1.79E11*1.E ## UNIT -6
+ ),
+
+ )
+
+#
+
# Modules Eficas
import Accas
from Accas import ASSD
-from Utilitai.Utmess import UTMESS
try:
+ from Utilitai.Utmess import UTMESS
import aster
# Si le module aster est présent, on le connecte
# au JDC
-#@ MODIF creation_donnees_homard Macro DATE 30/10/2006 AUTEUR DURAND C.DURAND
+#@ MODIF creation_donnees_homard Macro DATE 04/04/2007 AUTEUR VIVAN L.VIVAN
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
+# RESPONSABLE VIVAN L.VIVAN
"""
Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster.
"""
-__revision__ = "V1.1"
+__revision__ = "V1.2"
__all__ = [ ]
import os
import os.path
+from types import ListType, TupleType
+EnumTypes = (ListType, TupleType)
try:
from Utilitai.Utmess import UTMESS
self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom"
else :
self.fic_homard_niter = None
+ self.fic_homard_niterp1 = None
#
# 6.1. Le pilotage de l'adaptation
#
if message_erreur is not None :
UTMESS("F", self.nom_macro, message_erreur)
#
- return self.fic_homard_niter
+ return self.fic_homard_niter, self.fic_homard_niterp1
# ------------------------------------------------------------------------------
def ouvre_fichier (self, nomfic_local) :
"""Ouvre en écriture un fichier après l'avoir éventuellement détruit
self.ecrire_ligne_configuration_2("CCNoMFro", self.dico_configuration["NOM_MED_MAILLAGE_FRONTIERE"])
if self.mots_cles.has_key("GROUP_MA") :
if self.mots_cles["GROUP_MA"] is not None :
- for group_ma in self.mots_cles["GROUP_MA"] :
- self.ecrire_ligne_configuration_2("CCGroFro", group_ma)
+ if not type(self.mots_cles["GROUP_MA"]) in EnumTypes :
+ self.ecrire_ligne_configuration_2("CCGroFro", self.mots_cles["GROUP_MA"])
+ else :
+ for group_ma in self.mots_cles["GROUP_MA"] :
+ self.ecrire_ligne_configuration_2("CCGroFro", group_ma)
#
# 8. L'éventuel maillage annexe
#
-#@ MODIF defi_cable_bp_ops Macro DATE 14/11/2006 AUTEUR ASSIRE A.ASSIRE
+#@ MODIF defi_cable_bp_ops Macro DATE 04/04/2007 AUTEUR VIVAN L.VIVAN
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# -------------------------------------
# USAGE :
# Entrée :
-# - MAILLAGE
# - MODELE
# - CABLE
# - CHAM_MATER
-def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
+def defi_cable_bp_ops(self,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE,
RELAXATION,CONE,TITRE,INFO,**args):
motscles['CONE']=[]
motscles['CONE'].append( dCONE )
-
- # VERIFICATION QUE LE MAILLAGE EST COHERENT AVEC LE MODELE
-
+ # RECUPERATION DU MAILLAGE A PARTIR DU MODELE
__MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' )
- if string.ljust(MAILLAGE.nom,8) != __MAIL[0] :
- echo_mess=[]
- echo_mess.append( ' \n' )
- echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
- echo_mess.append( ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND \n' )
- echo_mess.append( ' # PAS A CELUI UTILISE DANS LE MODELE ! \n' )
- echo_mess.append( ' # '+MAILLAGE.nom+' - '+__MAIL[0]+'\n' )
- echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
- message=string.join(echo_mess)
- UTMESS('F',message)
-
-
- # DEFINITION DU NOM DES GROUP_NO
+ __MAIL= __MAIL[0].strip()
+ MAILLAGE = self.get_sd_avant_etape(__MAIL,self)
- __NOM = '_AN_'
+ # DEFINITION DU NOM DES GROUP_NO
+ __NOM = 'AN__'
__LGNO = MAILLAGE.LIST_GROUP_NO()
__LGN1 = []
for i in __LGNO :
# ======================================================================
import aster
-from Utilitai.Utmess import UTMESS
-from Utilitai.Table import Table
-from Utilitai.partition import MAIL_PY
+try :
+ from Utilitai.Utmess import UTMESS
+ from Utilitai.Table import Table
+ from Utilitai.partition import MAIL_PY
+except :
+ pass
def buildTabString(tabLevel):
"""
-#@ MODIF macr_adap_mail_ops Macro DATE 30/10/2006 AUTEUR DURAND C.DURAND
+#@ MODIF macr_adap_mail_ops Macro DATE 04/04/2007 AUTEUR VIVAN L.VIVAN
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration )
if ( INFO > 1 ) :
donnees_homard.quel_mode ( )
- fic_homard_niter = donnees_homard.creation_configuration ( )
+ fic_homard_niter, fic_homard_niterp1 = donnees_homard.creation_configuration ( )
donnees_homard.ecrire_fichier_configuration ( )
if ( mode_homard == "INFO" ) :
Nom_Fichier_Donnees = donnees_homard.ecrire_fichier_donnees ( )
INFO = INFO, **motscsi )
#
#====================================================================
-# 8. Menage des fichiers MED et HOMARD devenus inutiles
+# 8. Menage des fichiers devenus inutiles
+# On doit imperativement garder le dernier fichier homard produit
+# En mode d'information, on garde également les fichiers textes
#====================================================================
#
- liste_aux = [ fichier_aster_vers_homard ]
+ liste_aux = [fichier_aster_vers_homard]
+ liste_aux_bis = os.listdir(Rep_Calc_HOMARD_global)
+ for fic in liste_aux_bis :
+ fic_total = os.path.join(Rep_Calc_HOMARD_global, fic)
+ liste_aux.append(fic_total)
+ liste_aux_bis = []
if ( mode_homard == "ADAP" ) :
liste_aux.append(fichier_homard_vers_aster)
- fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niter)
- liste_aux.append(fic)
-#gn print "liste_aux = ",liste_aux
+ fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niterp1)
+ liste_aux_bis.append(fic)
#
for fic in liste_aux :
- if ( INFO > 1 ) :
- print "Destruction du fichier ", fic
- if os.path.isfile(fic) :
- try :
- os.remove(fic)
- except os.error,codret_partiel :
- self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
- UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic)
+ if fic not in liste_aux_bis :
+ if ( INFO > 1 ) :
+ print "Destruction du fichier ", fic
+ if os.path.isfile(fic) :
+ try :
+ os.remove(fic)
+ except os.error,codret_partiel :
+ self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
+ UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic)
#gn print "Répertoire ",Rep_Calc_HOMARD_global
#gn os.system("ls -la "+Rep_Calc_HOMARD_global)
#gn print "Répertoire ",Rep_Calc_ASTER
#gn os.system("ls -la "+Rep_Calc_ASTER)
+#gn print os.listdir(Rep_Calc_HOMARD_global)
+#gn print "glop :", Rep_Calc_HOMARD_global
#
#====================================================================
# C'est fini !
from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor
import aster
import string
-from Utilitai.Utmess import UTMESS
+try :
+ from Utilitai.Utmess import UTMESS
+except :
+ pass
# ------------------------------------------------------------------------------
def ASCFON(RC,RM,EP,ORIEN,AZIM,AXEC,POS,Y):
-#@ MODIF macr_lign_coupe_ops Macro DATE 27/06/2006 AUTEUR THOMASSO D.THOMASSON
+#@ MODIF macr_lign_coupe_ops Macro DATE 09/05/2007 AUTEUR SALMONA L.SALMONA
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# Expression des contraintes aux noeuds ou des déplacements dans le repere local
__remodr=__recou
+ icham=0
+ ioc2=0
+ mcACTION=[]
if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') :
- for m in LIGN_COUPE :
+ if NOM_CHAM in ('DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):icham=1
+ # Gestion du calcul en repère local - VECT_Y
+ rep_local=0
+ if m['NB_POINTS'] !=None :
if m['VECT_Y'] !=None :
+ if icham: rep_local=1
+ else :
+ UTMESS('A','MACR_LIGN_COUPE','LE CHAMP '+NOM_CHAM+' N EST PAS TRAITE PAR MACR_LIGNE_COUPE EN REPERE LOCAL.'
+ +'LE CALCUL EST EFFECTUE EN REPERE GLOBAL.')
+
+ for m in LIGN_COUPE :
+ if rep_local:
epsi=0.00000001
# --- determination des angles nautiques
cx1=m['COOR_EXTR'][0]-m['COOR_ORIG'][0]
alpha=alpha*180/math.pi
beta=beta*180/math.pi
gamma=gamma*180/math.pi
-
# --- MODI_REPERE
motscles={}
motscles['MODI_CHAM']=[]
LCMP=['DX','DY','DZ']
TYPE_CHAM='VECT_3D'
motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),)
- elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):
+ elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):
if dime == 2:
LCMP=['SIXX','SIYY','SIZZ','SIXY']
TYPE_CHAM='TENS_2D'
LCMP=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ']
TYPE_CHAM='TENS_3D'
motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),)
+
# DEFI_REPERE
ANGL_NAUT=[]
ANGL_NAUT.append(alpha)
motscles['DEFI_REPERE'].append(_F(REPERE='UTILISATEUR',ANGL_NAUT=ANGL_NAUT),)
__remodr=MODI_REPERE(RESULTAT=__recou,**motscles)
+ if m['NB_POINTS'] !=None :
+ ioc2=ioc2+1
+ groupe='LICOU'+str(ioc2)
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ else : intitl='l.coupe'+str(ioc2)
+ elif m['GROUP_NO']!=None :
+ groupe=m['GROUP_NO'].ljust(8).upper()
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ else : intitl=groupe
+ mcACTION.append( _F(INTITULE = intitl,
+ RESULTAT = __remodr,
+ GROUP_NO = groupe,
+ NOM_CHAM = NOM_CHAM,
+ TOUT_CMP = 'OUI',
+ OPERATION = 'EXTRACTION', ) )
+
+ else:
# Production d'une table pour toutes les lignes de coupe
-
- ioc2=0
- mcACTION=[]
- for m in LIGN_COUPE :
- if m['NB_POINTS'] !=None :
- ioc2=ioc2+1
- groupe='LICOU'+str(ioc2)
- if m['INTITULE'] !=None : intitl=m['INTITULE']
- else : intitl='l.coupe'+str(ioc2)
- elif m['GROUP_NO']!=None :
- groupe=m['GROUP_NO'].ljust(8).upper()
- if m['INTITULE'] !=None : intitl=m['INTITULE']
- else : intitl=groupe
- mcACTION.append( _F(INTITULE = intitl,
- RESULTAT = __remodr,
- GROUP_NO = groupe,
- NOM_CHAM = NOM_CHAM,
- TOUT_CMP = 'OUI',
- OPERATION = 'EXTRACTION', ) )
-
+ for m in LIGN_COUPE :
+ if m['NB_POINTS'] !=None :
+ ioc2=ioc2+1
+ groupe='LICOU'+str(ioc2)
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ else : intitl='l.coupe'+str(ioc2)
+ elif m['GROUP_NO']!=None :
+ groupe=m['GROUP_NO'].ljust(8).upper()
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ else : intitl=groupe
+ mcACTION.append( _F(INTITULE = intitl,
+ RESULTAT = __recou,
+ GROUP_NO = groupe,
+ NOM_CHAM = NOM_CHAM,
+ TOUT_CMP = 'OUI',
+ OPERATION = 'EXTRACTION', ) )
+
+ elif AsType(RESULTAT).__name__ in ('evol_ther',) :
+ for m in LIGN_COUPE :
+ if m['NB_POINTS'] !=None :
+ ioc2=ioc2+1
+ groupe='LICOU'+str(ioc2)
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ else : intitl='l.coupe'+str(ioc2)
+ elif m['GROUP_NO']!=None :
+ groupe=m['GROUP_NO'].ljust(8).upper()
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ else : intitl=groupe
+ mcACTION.append( _F(INTITULE = intitl,
+ RESULTAT = __recou,
+ GROUP_NO = groupe,
+ NOM_CHAM = NOM_CHAM,
+ TOUT_CMP = 'OUI',
+ OPERATION = 'EXTRACTION', ) )
+
+
__tabitm=POST_RELEVE_T(ACTION=mcACTION,);
# on repasse par les tables python pour supprimer les paramètres inutiles
self.DeclareOut('nomres',self.sd)
dictab=__tabitm.EXTR_TABLE()
- listpara=dictab.para
- listpara.remove('NOEUD')
- listpara.remove('RESU')
-
- coltab=[]
- for key in listpara :
- val=dictab[key].values()[key]
- if type(val[0])==types.IntType :
- coltab.append(_F(PARA=key,LISTE_I=val))
- elif type(val[0])==types.FloatType :
- coltab.append(_F(PARA=key,LISTE_R=val))
- elif type(val[0])==types.StringType :
- coltab.append(_F(PARA=key,LISTE_K=val,TYPE_K='K16'))
- nomres=CREA_TABLE(LISTE=coltab)
+
+ del dictab['NOEUD']
+ del dictab['RESU']
+ dprod = dictab.dict_CREA_TABLE()
+
+ nomres=CREA_TABLE(**dprod)
return ier
from Accas import _F
import aster
import string
-from Utilitai.Utmess import UTMESS
+try :
+ from Utilitai.Utmess import UTMESS
+except :
+ pass
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):
"""
sys.modules["Cata"]=sys.modules[__name__]
rep_macro = os.path.dirname(__file__)
sys.path.insert(0,rep_macro)
+rep_macro=os.path.join(rep_macro,'Macro')
+sys.path.insert(0,rep_macro)
+
+
+#compatibilite avec V9
+import Noyau
+import Accas
+class ASSD(Accas.ASSD,Noyau.AsBase):pass
+class GEOM(Accas.GEOM,ASSD):pass
+class formule(Accas.formule,ASSD):pass
+Accas.ASSD=ASSD
+Accas.GEOM=GEOM
+Accas.formule=formule
+#fin compatibilite
from cata import *
from math import ceil
pass
__version__="$Name: $"
-__Id__="$Id: cata.py,v 1.2.4.3 2006/12/14 17:30:02 pnoyret Exp $"
+__Id__="$Id: cata.py,v 1.3.8.6 2007-06-14 16:18:24 pnoyret Exp $"
EnumTypes = (ListType, TupleType)
l.append(typ+"_"+gd)
return tuple(l)
-#& MODIF COMMANDE DATE 19/09/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA
+#& MODIF COMMANDE DATE 09/05/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
#============================================================================
COQUE =FACT(statut='f',max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA' ),
- PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
+ PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),
+ EXCLUS('ANGL_REP','VECTEUR'),),
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' ),
fr="Titre de la table produite"),
INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)
-#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE
+#& MODIF COMMANDE DATE 08/03/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
),
b_theta_3d =BLOC(condition="THETA_3D != None",
- FOND_FISS =SIMP(statut='f',typ=fond_fiss),),
+ 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='**',
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 22/06/2005 AUTEUR REZETTE C.REZETTE
+#& MODIF COMMANDE DATE 05/02/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
),
CALC_AMOR_GENE =FACT(statut='f',
regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),),
- MASS_GENE = SIMP(statut='f', typ=matr_asse_gene_r),
- RIGI_GENE = SIMP(statut='f', typ=matr_asse_gene_r),
+ MASS_GENE = SIMP(statut='o', typ=matr_asse_gene_r),
+ RIGI_GENE = SIMP(statut='o', typ=matr_asse_gene_r),
AMOR_REDUIT = SIMP(statut='f',typ='R',max='**'),
LIST_AMOR = SIMP(statut='f',typ=listr8_sdaster ),
),
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
+#& MODIF COMMANDE DATE 04/04/2007 AUTEUR VIVAN L.VIVAN
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
#
# USAGE :
# Entrée :
-# - MAILLAGE
# - MODELE
# - CABLE
# - CHAM_MATER
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",)},
- regles=(ENSEMBLE('MAILLAGE','CONE'),),
- MAILLAGE =SIMP(statut='f',typ=maillage_sdaster),
MODELE =SIMP(statut='o',typ=modele_sdaster ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 09/05/2006 AUTEUR GALENNE E.GALENNE
+#& MODIF COMMANDE DATE 08/03/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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,),
+ 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='**'),
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,),
+ 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'),),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 10/10/2006 AUTEUR REZETTE C.REZETTE
+#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
),
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'),
+ b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None",
+ regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
+ 'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),),
+ 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'),
OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 27/11/2006 AUTEUR PELLET J.PELLET
+#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
),
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'),
+ b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None",
+ regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
+ 'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),),
+ 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'),
POSITION =SIMP(statut='f',typ='I',defaut=1),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
) ;
-#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE
+#& MODIF COMMANDE DATE 09/05/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG
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)",
- ),
+ # mots-clés utilisant uniquement aux formats autres que TABLEAU
+ # mais ce serait trop pénible de devoir les supprimer quand on change de format
+ # donc on ne les met pas dans un bloc
+ # "pseudo" bloc mise en forme :
+
LEGENDE =SIMP(statut='f',typ='TXM',
fr="Légende associée à la fonction" ),
STYLE =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
+ # fin bloc mise en 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") ),
),
COMMENTAIRE =SIMP(statut='f',typ='TXM' ),
) ;
-#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE
+#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**'),
+ FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5",into=("1PE12.5","1PE16.9") ),
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") ),
),
UNITE = SIMP(statut='f',typ='I',defaut=38),
AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
);
-#& MODIF COMMANDE DATE 06/11/2006 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/05/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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_info_med =BLOC(condition="FORMAT=='MED'",
+ INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ ),
+
b_sensibilite =BLOC(condition="RESULTAT != None",
fr="Définition des paramètres de sensibilité",
ang="Definition of sensitivity parameters",
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
+#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
),
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"),
+ VERSION =SIMP(statut='f',typ='TXM',into=("V1_3","V1_4",),defaut="V1_3"),
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),
INFO =SIMP(statut='f',typ='I',defaut=2,into=( 1, 2 ) ),
);
-#& MODIF COMMANDE DATE 07/11/2006 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/01/2007 AUTEUR VIVAN L.VIVAN
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
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='f',typ='R',defaut=9.81),
+ 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),
),
);
-#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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'),),
+ regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),),
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' ),
+ FREQ_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ),
+ FREQ_FIN =SIMP(statut='o',typ='R',val_min=0.E+0 ),
+ NB_POIN =SIMP(statut='o',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
fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"),
) ;
-#& MODIF COMMANDE DATE 10/10/2006 AUTEUR REZETTE C.REZETTE
+#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
),
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'),
+ b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None",
+ regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
+ 'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),),
+ 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'),
VERSION =SIMP(statut='f',typ='TXM' ),
),
) ;
-#& MODIF COMMANDE DATE 10/10/2006 AUTEUR REZETTE C.REZETTE
+#& MODIF COMMANDE DATE 09/05/2007 AUTEUR SALMONA L.SALMONA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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 ),
+ PRECISION =SIMP(statut='f',typ='R',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'",
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,37.7 *coef0,
+ 50. ,38.6 *coef0,
+ 100. ,39.9 *coef0,
+ 150. ,40.5 *coef0,
+ 200. ,40.5 *coef0,
+ 250. ,40.2 *coef0,
+ 300. ,39.5 *coef0,
+ 350. ,38.7 *coef0,
+ 400. ,37.7 *coef0,
+ 450. ,36.6 *coef0,
+ 500. ,35.5 *coef0,
+ 550. ,34.3 *coef0,
+ 600. ,33.0 *coef0,
+ 650. ,31.8 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.49E+6 *coef1,
+ 50. ,3.59E+6 *coef1,
+ 100. ,3.77E+6 *coef1,
+ 150. ,3.93E+6 *coef1,
+ 200. ,4.09E+6 *coef1,
+ 250. ,4.27E+6 *coef1,
+ 300. ,4.42E+6 *coef1,
+ 350. ,4.60E+6 *coef1,
+ 400. ,4.80E+6 *coef1,
+ 450. ,5.04E+6 *coef1,
+ 500. ,5.35E+6 *coef1,
+ 550. ,5.69E+6 *coef1,
+ 600. ,6.10E+6 *coef1,
+ 650. ,6.65E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,205.E+9 *coef2,
+ 20. ,204.E+9 *coef2,
+ 50. ,203.E+9 *coef2,
+ 100. ,200.E+9 *coef2,
+ 150. ,197.E+9 *coef2,
+ 200. ,193.E+9 *coef2,
+ 250. ,189.E+9 *coef2,
+ 300. ,185.E+9 *coef2,
+ 350. ,180.E+9 *coef2,
+ 400. ,176.E+9 *coef2,
+ 450. ,171.E+9 *coef2,
+ 500. ,166.E+9 *coef2,
+ 550. ,160.E+9 *coef2,
+ 600. ,155.E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 11.22E-6, 50., 11.45E-6,
+ 100., 11.79E-6, 150., 12.14E-6,
+ 200., 12.47E-6, 250., 12.78E-6,
+ 300., 13.08E-6, 350., 13.40E-6,
+ 400., 13.72E-6, 450., 14.02E-6,
+ ))
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ )
+ )
+
+#
+
--- /dev/null
+indispensable pour ne pas avoir une directory vide
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,22.7 *coef0,
+ 50. ,23.1 *coef0,
+ 100. ,23.9 *coef0,
+ 150. ,24.7 *coef0,
+ 200. ,25.5 *coef0,
+ 250. ,26.3 *coef0,
+ 300. ,27.1 *coef0,
+ 350. ,27.9 *coef0,
+ 400. ,28.7 *coef0,
+ 450. ,29.5 *coef0,
+ 500. ,30.3 *coef0,
+ 550. ,31.1 *coef0,
+ 600. ,31.9 *coef0,
+ 650. ,32.7 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.64E+6 *coef1,
+ 50. ,3.73E+6 *coef1,
+ 100. ,3.90E+6 *coef1,
+ 150. ,4.06E+6 *coef1,
+ 200. ,4.22E+6 *coef1,
+ 250. ,4.39E+6 *coef1,
+ 300. ,4.55E+6 *coef1,
+ 350. ,4.70E+6 *coef1,
+ 400. ,4.86E+6 *coef1,
+ 450. ,5.04E+6 *coef1,
+ 500. ,5.21E+6 *coef1,
+ 550. ,5.32E+6 *coef1,
+ 600. ,5.39E+6 *coef1,
+ 650. ,5.37E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,216.5E+9 *coef2,
+ 20. ,215.4E+9 *coef2,
+ 50. ,213.0E+9 *coef2,
+ 100. ,209.4E+9 *coef2,
+ 150. ,206.0E+9 *coef2,
+ 200. ,201.8E+9 *coef2,
+ 250. ,197.5E+9 *coef2,
+ 300. ,193.5E+9 *coef2,
+ 350. ,189.0E+9 *coef2,
+ 400. ,184.5E+9 *coef2,
+ 450. ,179.0E+9 *coef2,
+ 500. ,173.5E+9 *coef2,
+ 550. ,167.0E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 9.42E-6, 50., 9.60E-6,
+ 100., 9.96E-6, 150., 10.20E-6,
+ 200., 10.44E-6, 250., 10.69E-6,
+ 300., 10.95E-6, 350., 11.19E-6,
+ 400., 11.40E-6, 450., 11.59E-6,
+ ))
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ )
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -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,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.60E+6 *coef1,
+ 50. ,3.74E+6 *coef1,
+ 100. ,3.90E+6 *coef1,
+ 150. ,4.10E+6 *coef1,
+ 200. ,4.16E+6 *coef1,
+ 250. ,4.27E+6 *coef1,
+ 300. ,4.30E+6 *coef1,
+ 350. ,4.35E+6 *coef1,
+ 400. ,4.39E+6 *coef1,
+ 450. ,4.39E+6 *coef1,
+ 500. ,4.44E+6 *coef1,
+ 550. ,4.47E+6 *coef1,
+ 600. ,4.49E+6 *coef1,
+ 650. ,4.53E+6 *coef1,
+ 700. ,4.58E+6 *coef1,
+ 750. ,4.61E+6 *coef1,
+ 800. ,4.72E+6 *coef1,
+ 1000. ,4.99E+6 *coef1,
+ 1200. ,5.04E+6 *coef1,
+ 1500. ,5.04E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198.5E+9 *coef2,
+ 20. ,197.E+9 *coef2,
+ 50. ,195.E+9 *coef2,
+ 100. ,191.5E+9 *coef2,
+ 150. ,187.5E+9 *coef2,
+ 200. ,184.E+9 *coef2,
+ 250. ,180.E+9 *coef2,
+ 300. ,176.5E+9 *coef2,
+ 350. ,172.E+9 *coef2,
+ 400. ,168.E+9 *coef2,
+ 450. ,164.E+9 *coef2,
+ 500. ,160.E+9 *coef2,
+ 550. ,155.5E+9 *coef2,
+ 600. ,151.5E+9 *coef2,
+ 700. ,142.5E+9 *coef2,
+ 800. ,130.E+9 *coef2,
+ 1000. ,81.5E+9 *coef2,
+ 1200. ,7.4E+9 *coef2,
+ 1400. ,0. *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+_A3=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 16.4E-6,
+ 50., 16.54E-6, 100., 16.8E-6,
+ 150., 17.04E-6, 200., 17.2E-6,
+ 250., 17.5E-6, 300., 17.7E-6,
+ 350., 17.9E-6, 400., 18.1E-6,
+ 450., 18.24E-6, 500., 18.4E-6,
+ 600., 18.7E-6, 700., 18.9E-6,
+ 800., 19.1E-6, 900., 19.3E-6,
+ 1000., 19.5E-6, 1400., 20.E-6,
+ 1600., 20.2E-6,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 20°C
+#
+
+coef5=1.E ## UNIT -6
+_A5=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 9.39E-4, 185.E+6 *coef5,
+ 1.07E-3, 190.53E+6 *coef5,
+ 1.64E-3, 225.E+6 *coef5,
+ 3.32E-3, 261.E+6 *coef5,
+ 7.45E-3, 287.E+6 *coef5,
+ 0.011, 300.E+6 *coef5,
+ 0.032, 360.E+6 *coef5,
+ 0.05, 404.E+6 *coef5,
+ 0.1, 491.E+6 *coef5,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 200°C
+#
+coef6=1.E ## UNIT -6
+_A6=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.61E-4 ,140.E+6 *coef6,
+ 1.E-3 ,150.E+6 *coef6,
+ 2.9E-3 ,168.E+6 *coef6,
+ 4.E-3 ,181.E+6 *coef6,
+ 7.E-3 ,195.E+6 *coef6,
+ 1.E-2 ,205.E+6 *coef6,
+ 0.034 ,276.E+6 *coef6,
+ 0.05 ,303.E+6 *coef6,
+ 0.15 ,450.E+6 *coef6,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 350°C
+#
+coef7=1.E ## UNIT -6
+_A7=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.56E-4 ,130.E+6 *coef7,
+ 8.9E-4 ,136.E+6 *coef7,
+ 1.84E-3 ,145.E+6 *coef7,
+ 2.9E-3 ,151.E+6 *coef7,
+ 4.9E-3 ,160.E+6 *coef7,
+ 8.9E-3 ,174.E+6 *coef7,
+ 0.011 ,180.E+6 *coef7,
+ 0.051 ,261.E+6 *coef7,
+ #0.01 ,353.E+6 *coef7,
+ 0.1 ,353.E+6 *coef7,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 400°C
+#
+coef8=1.E ## UNIT -6
+_A8=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.14E-4 ,120.E+6 *coef8,
+ 1.E-3 ,125.E+6 *coef8,
+ 2.E-3 ,134.E+6 *coef8,
+ 3.E-3 ,141.E+6 *coef8,
+ 8.E-3 ,157.E+6 *coef8,
+ 19.E-3 ,185.E+6 *coef8,
+ 25.E-3 ,200.E+6 *coef8,
+ 0.05 ,240.E+6 *coef8,
+ 0.1 ,320.E+6 *coef8,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 600°C
+#
+coef9=1.E ## UNIT -6
+_A9=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 5.94E-4 ,90.E+6 *coef9,
+ 1.E-3 ,104.E+6 *coef9,
+ 2.E-3 ,112.E+6 *coef9,
+ 3.E-3 ,119.E+6 *coef9,
+ 6.5E-3 ,131.E+6 *coef9,
+ 1.E-2 ,141.E+6 *coef9,
+ 2.14E-2 ,174.E+6 *coef9,
+ 0.05 ,224.E+6 *coef9,
+ 0.15 ,350.E+6 *coef9,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 800°C
+#
+coefA=1.E ## UNIT -6
+_AA=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 5.77E-4 ,75.E+6 *coefA,
+ 1.5E-3 ,81.E+6 *coefA,
+ 3.E-3 ,92.5E+6 *coefA,
+ 4.E-3 ,95.5E+6 *coefA,
+ 6.E-3 ,104.E+6 *coefA,
+ 0.01 ,115.E+6 *coefA,
+ 0.0278 ,141.E+6 *coefA,
+ 0.05 ,159.E+6 *coefA,
+ 0.1 ,170.E+6 *coefA,
+ ))
+
+#
+# COURBE DE TRACTION
+#
+
+_AB=DEFI_NAPPE(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ PARA=(20.,200.,350.,400.,600.,800., ),
+ FONCTION=(_A5,_A6,_A7,_A8,_A9,_AA, ))
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+
+# SM EN FONCTION DE LA TEMPERATURE
+
+_BD=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='CONSTANT',
+ VALE=(
+ 20.0,115.0E6,
+ 50.0,115.0E6,
+ 100.0,115.0E6,
+ 150.0,115.0E6,
+ 200.0,109.0E6,
+ 250.0,103.0E6,
+ 300.0,96.0E6,
+ 340.0,94.0E6,
+ 350.0,94.0E6,
+ ))
+_AD=CALC_FONCTION(COMB=_F(FONCTION = _BD,
+ COEF = 1.E ## UNIT -6
+ ),);
+
+# N_KE CONSTANTE EN FAIT
+_AE=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',VALE=(20.,0.3,100.,0.3),)
+
+# M_KE CONSTANTE EN FAIT
+_AF=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',VALE=(20.,1.7,100.,1.7),)
+
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+ TRACTION=_F( SIGM = _AB, ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=1.79E11*1.E ## UNIT -6
+ ),
+
+ RCCM_FO=_F( ## SUBST RCCM
+ SM=_AD, ## EVAL _AD
+ N_KE=_AE, ## EVAL _AE
+ M_KE=_AF, ## EVAL _AF
+ )
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#
+# Catalogue MATERIAU de l'acier inoxydable austenitique 316L
+# - Denomination AFNOR : Z2CND1712
+# - Denomination usuelle : A316L
+#
+# LAMBDA EN FONCTION DE LA TEMPERATURE
+#
+coef0=1.E ## UNIT -3
+
+_A0=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,14.0 *coef0,
+ 50. ,14.4 *coef0,
+ 100. ,15.2 *coef0,
+ 150. ,15.8 *coef0,
+ 200. ,16.6 *coef0,
+ 250. ,17.3 *coef0,
+ 300. ,17.9 *coef0,
+ 350. ,18.6 *coef0,
+ 400. ,19.2 *coef0,
+ 450. ,19.9 *coef0,
+ 500. ,20.6 *coef0,
+ 550. ,21.2 *coef0,
+ 600. ,21.8 *coef0,
+ 650. ,22.4 *coef0,
+ 700. ,23.1 *coef0,
+ 750. ,23.7 *coef0,
+ 800. ,24.3 *coef0,
+ 900. ,26.0 *coef0,
+ 1000. ,27.3 *coef0,
+ 1200. ,29.9 *coef0,
+ 1500. ,34.0 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPERATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3598972. *coef1,
+ 50. ,3701799. *coef1,
+ 100. ,3907455. *coef1,
+ 150. ,4010152. *coef1,
+ 200. ,4160401. *coef1,
+ 250. ,4261084. *coef1,
+ 300. ,4292566. *coef1,
+ 350. ,4366197. *coef1,
+ 400. ,4393593. *coef1,
+ 450. ,4422222. *coef1,
+ 500. ,4439655. *coef1,
+ 550. ,4463158. *coef1,
+ 600. ,4494845. *coef1,
+ 650. ,4525252. *coef1,
+ 700. ,4583333. *coef1,
+ 750. ,4637965. *coef1,
+ 800. ,4700193. *coef1,
+ 900. ,4946500. *coef1,
+ 1000. ,4989600. *coef1,
+ 1200. ,5043650. *coef1,
+ 1500. ,5037000. *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPERATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198500.E+6 *coef2,
+ 20. ,197000.E+6 *coef2,
+ 50. ,195000.E+6 *coef2,
+ 100. ,191500.E+6 *coef2,
+ 150. ,187500.E+6 *coef2,
+ 200. ,184000.E+6 *coef2,
+ 250. ,180000.E+6 *coef2,
+ 300. ,176500.E+6 *coef2,
+ 350. ,172000.E+6 *coef2,
+ 400. ,168000.E+6 *coef2,
+ 450. ,164000.E+6 *coef2,
+ 500. ,160000.E+6 *coef2,
+ 550. ,155500.E+6 *coef2,
+ 600. ,151500.E+6 *coef2,
+ 700. ,142500.E+6 *coef2,
+ 800. ,130000.E+6 *coef2,
+ 900. ,108000.E+6 *coef2,
+ 1000. ,81500.E+6 *coef2,
+ 1100. ,32000.E+6 *coef2,
+ 1200. ,7400.E+6 *coef2,
+ 1300. ,3000.E+6 *coef2,
+ 1400. ,5.E+6 *coef2,
+ ))
+#
+# NU EN FONCTION DE LA TEMPERATURE
+#
+_A3=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPERATURE
+#
+
+_A4=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.0 ,15.4E-6 ,
+ 20.0 ,15.54E-6 ,
+ 50.0 ,15.72E-6 ,
+ 100.0 ,16.0E-6 ,
+ 150.0 ,16.3E-6 ,
+ 200.0 ,16.6E-6 ,
+ 250.0 ,16.86E-6 ,
+ 300.0 ,17.1E-6 ,
+ 350.0 ,17.36E-6 ,
+ 400.0 ,17.6E-6 ,
+ 450.0 ,17.82E-6 ,
+ 500.0 ,18.0E-6 ,
+ 600.0 ,18.4E-6 ,
+ 700.0 ,18.7E-6 ,
+ 800.0 ,19.0E-6 ,
+ 900.0 ,19.2E-6 ,
+ 1000.0 ,19.4E-6 ,
+ 1400.0 ,19.6E-6 ,
+ 1600.0 ,19.7E-6 ,
+ ))
+
+
+#
+# COURBE DE TRACTION A LA TEMPERATURE 20C
+#
+
+coef5=1.E ## UNIT -6
+_TR20=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.08446701E-2 ,166.4E+6 *coef5,
+ 0.09221476E-2 ,177.72307E+6 *coef5,
+ 0.09675755E-2 ,184.702374E+6 *coef5,
+ 0.10035526E-2 ,189.819863E+6 *coef5,
+ 0.10341966E-2 ,193.88674E+6 *coef5,
+ 0.10613920E-2 ,197.274216E+6 *coef5,
+ 0.11091372E-2 ,202.74003E+6 *coef5,
+ 0.11294416E-2 ,202.8E+6 *coef5,
+ 0.13218274E-2 ,221.E+6 *coef5,
+ 0.17010152E-2 ,236.6E+6 *coef5,
+ 0.22670051E-2 ,249.6E+6 *coef5,
+ 0.33197970E-2 ,260.E+6 *coef5,
+ 0.53857868E-2 ,273.E+6 *coef5,
+ 0.74253807E-2 ,280.8E+6 *coef5,
+ 0.94517766E-2 ,286.E+6 *coef5,
+ 1.14913706E-2 ,293.8E+6 *coef5,
+ 1.65573604E-2 ,306.8E+6 *coef5,
+ 2.16101523E-2 ,317.2E+6 *coef5,
+ 3.17289340E-2 ,340.6E+6 *coef5,
+ ))
+
+#
+# COURBE DE TRACTION A LA TEMPERATURE 100C
+#
+coef6=1.E ## UNIT -6
+_TR100=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.07268930E-2 ,139.2E+6 *coef6,
+ 0.10049608E-2 ,173.3E+6 *coef6,
+ 0.20003864E-2 ,200.E+6 *coef6,
+ 0.30757180E-2 ,206.E+6 *coef6,
+ 1.11994778E-2 ,229.7E+6 *coef6,
+ 2.13211488E-2 ,253.E+6 *coef6,
+ 4.15456919E-2 ,296.E+6 *coef6,
+ 6.17545692E-2 ,336.E+6 *coef6,
+ 8.19582245E-2 ,375.E+6 *coef6,
+ 10.2151436E-2 ,412.E+6 *coef6,
+ 15.2647520E-2 ,507.E+6 *coef6,
+ 20.3143603E-2 ,602.E+6 *coef6,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 200C
+#
+coef7=1.E ## UNIT -6
+_TR200=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.06271740E-2 ,115.4E+6 *coef7,
+ 0.10631555E-2 ,153.4E+6 *coef7,
+ 0.19565609E-2 ,170.E+6 *coef7,
+ 0.29734414E-2 ,173.E+6 *coef7,
+ 1.11084853E-2 ,197.E+6 *coef7,
+ 2.12435291E-2 ,221.E+6 *coef7,
+ 4.14854828E-2 ,264.E+6 *coef7,
+ 6.17133693E-2 ,304.5E+6 *coef7,
+ 8.19300023E-2 ,343.E+6 *coef7,
+ 10.2149449E-2 ,382.E+6 *coef7,
+ 15.2689624E-2 ,478.E+6 *coef7,
+ 20.3224173E-2 ,573.E+6 *coef7,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 300C
+#
+coef8=1.E ## UNIT -6
+_TR300=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.05694051E-2 ,100.5E+6 *coef8,
+ 0.09563739E-2 ,133.5E+6 *coef8,
+ 0.19998584E-2 ,150.E+6 *coef8,
+ 0.28781870E-2 ,155.E+6 *coef8,
+ 1.10254958E-2 ,181.E+6 *coef8,
+ 2.11614731E-2 ,205.E+6 *coef8,
+ 4.14164306E-2 ,250.E+6 *coef8,
+ 6.16430595E-2 ,290.E+6 *coef8,
+ 8.18696884E-2 ,330.E+6 *coef8,
+ 10.2096317E-2 ,370.E+6 *coef8,
+ 15.2623229E-2 ,463.E+6 *coef8,
+ 20.3161473E-2 ,558.E+6 *coef8,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 350C
+#
+coef9=1.E ## UNIT -6
+_TR350=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.05558140E-2 ,95.6E+6 *coef9,
+ 0.06134823E-2 ,102.078952E+6 *coef9,
+ 0.06467887E-2 ,106.087661E+6 *coef9,
+ 0.06738779E-2 ,109.026998E+6 *coef9,
+ 0.06974587E-2 ,111.362893E+6 *coef9,
+ 0.07187707E-2 ,113.308561E+6 *coef9,
+ 0.07570231E-2 ,116.447965E+6 *coef9,
+ 0.08008140E-2 ,120.54E+6 *coef9,
+ 0.09520930E-2 ,129.36E+6 *coef9,
+ 0.12862791E-2 ,135.24E+6 *coef9,
+ 0.18204651E-2 ,141.12E+6 *coef9,
+ 0.28546512E-2 ,147.E+6 *coef9,
+ 0.48973837E-2 ,154.35E+6 *coef9,
+ 0.69315698E-2 ,160.23E+6 *coef9,
+ 0.89657558E-2 ,166.11E+6 *coef9,
+ 1.09913953E-2 ,170.52E+6 *coef9,
+ 1.60597674E-2 ,182.28E+6 *coef9,
+ 2.11195930E-2 ,192.57E+6 *coef9,
+ 3.12477907E-2 ,214.62E+6 *coef9,
+ ))
+#
+# COURBE DE TRACTION
+#
+
+_A5=DEFI_NAPPE(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ PARA=(20.,100.,200.,300.,350., ),
+ FONCTION=(_TR20,_TR100,_TR200,_TR300,_TR350))
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+ TRACTION=_F( SIGM = _A5, ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=2.07E11*1.E ## UNIT -6
+ ),
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,14.0 *coef0,
+ 50. ,14.4 *coef0,
+ 100. ,15.2 *coef0,
+ 150. ,15.8 *coef0,
+ 200. ,16.6 *coef0,
+ 250. ,17.3 *coef0,
+ 300. ,17.9 *coef0,
+ 350. ,18.6 *coef0,
+ 400. ,19.2 *coef0,
+ 450. ,19.9 *coef0,
+ 500. ,20.6 *coef0,
+ 550. ,21.2 *coef0,
+ 600. ,21.8 *coef0,
+ 650. ,22.4 *coef0,
+ 700. ,23.1 *coef0,
+ 750. ,23.7 *coef0,
+ 800. ,24.3 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.60E+6 *coef1,
+ 50. ,3.70E+6 *coef1,
+ 100. ,3.91E+6 *coef1,
+ 150. ,4.01E+6 *coef1,
+ 200. ,4.16E+6 *coef1,
+ 250. ,4.26E+6 *coef1,
+ 300. ,4.29E+6 *coef1,
+ 350. ,4.37E+6 *coef1,
+ 400. ,4.39E+6 *coef1,
+ 450. ,4.42E+6 *coef1,
+ 500. ,4.44E+6 *coef1,
+ 550. ,4.46E+6 *coef1,
+ 600. ,4.49E+6 *coef1,
+ 650. ,4.53E+6 *coef1,
+ 700. ,4.58E+6 *coef1,
+ 750. ,4.64E+6 *coef1,
+ 800. ,4.70E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198.5E+9 *coef2,
+ 20. ,197.0E+9 *coef2,
+ 50. ,195.0E+9 *coef2,
+ 100. ,191.5E+9 *coef2,
+ 150. ,187.5E+9 *coef2,
+ 200. ,184.0E+9 *coef2,
+ 250. ,180.0E+9 *coef2,
+ 300. ,176.5E+9 *coef2,
+ 350. ,172.0E+9 *coef2,
+ 400. ,168.0E+9 *coef2,
+ 450. ,164.0E+9 *coef2,
+ 500. ,160.0E+9 *coef2,
+ 550. ,155.5E+9 *coef2,
+ 600. ,151.5E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 15.54E-6, 50., 15.72E-6,
+ 100., 16.00E-6, 150., 16.30E-6,
+ 200., 16.60E-6, 250., 16.86E-6,
+ 300., 17.10E-6, 350., 17.36E-6,
+ 400., 17.60E-6, 450., 17.82E-6,
+ ))
+
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=1.79E11*1.E ## UNIT -6
+ ),
+
+ )
+
+#
+
# Modules Eficas
import Accas
from Accas import ASSD
-from Utilitai.Utmess import UTMESS
try:
import aster
# au JDC
import Build.B_CODE
Build.B_CODE.CODE.codex=aster
+ from Utilitai.Utmess import UTMESS
except:
pass
-AFFE_CARA_ELEM:U4.42.01-h
+AFFE_CARA_ELEM:U4.42.01-i
AFFE_CHAR_ACOU:U4.44.04-g
-AFFE_CHAR_CINE_F:U4.44.03-g
-AFFE_CHAR_CINE:U4.44.03-g
-AFFE_CHAR_MECA:U4.44.01-h
-AFFE_CHAR_MECA_F:U4.44.01-h
-AFFE_CHAR_MECA_C:U4.44.05-e
+AFFE_CHAR_CINE_F:U4.44.03-h
+AFFE_CHAR_CINE:U4.44.03-h
+AFFE_CHAR_MECA:U4.44.01-i
+AFFE_CHAR_MECA_F:U4.44.01-i
+AFFE_CHAR_MECA_C:U4.44.05-f
AFFE_CHAR_THER_F:U4.44.02-h
AFFE_CHAR_THER:U4.44.02-h
-AFFE_MATERIAU:U4.43.03-h
-AFFE_MODELE:U4.41.01-h
-AIDE:U4.02.01-h
-ASSE_MAILLAGE:U4.23.03-g
-ASSE_MATRICE:U4.61.22-h
-ASSE_MATR_GENE:U4.65.04-f
+AFFE_CHAR_THER_F:U4.44.02-i
+AFFE_CHAR_THER:U4.44.02-i
+AFFE_MATERIAU:U4.43.03-i2
+AFFE_MODELE:U4.41.01-i2
+AIDE:U4.02.01-i
+ASSE_MAILLAGE:U4.23.03-h
+ASSE_MATRICE:U4.61.22-i
+ASSE_MATR_GENE:U4.65.04-g
ASSE_VECTEUR:U4.61.23-h
-ASSE_VECT_GENE:U4.65.05-f
-CALC_AMOR_MODAL:U4.52.13-f
-CALC_CHAM_ELEM:U4.81.03-h
-CALC_CHAR_CINE:U4.61.03-g
-CALC_CHAR_SEISME:U4.63.01-g
-CALC_ELEM:U4.81.01-h
-CALC_FATIGUE:U4.83.02-e
-CALC_FLUI_STRU:U4.66.02-f
-CALC_FONCTION:U4.32.04-h
-CALC_FONC_INTERP:U4.32.01-f
-CALC_FORC_AJOU:U4.66.03-b
-CALC_G_LOCAL_T:U4.82.04-g
+ASSE_VECT_GENE:U4.65.05-g
+CALC_AMOR_MODAL:U4.52.13-g
+CALC_CHAM_ELEM:U4.81.03-i
+CALC_CHAR_CINE:U4.61.03-h1
+CALC_CHAR_SEISME:U4.63.01-h
+CALC_ELEM:U4.81.01-i
+CALC_FATIGUE:U4.83.02-f
+CALC_FLUI_STRU:U4.66.02-g
+CALC_FONCTION:U4.32.04-i
+CALC_FONC_INTERP:U4.32.01-g
+CALC_FORC_AJOU:U4.66.03-c
+CALC_G:U4.82.03-h
+CALC_G_LOCAL_T:U4.82.04-h1
CALC_G_THETA_T:U4.82.03-g
-CALC_INTE_SPEC:U4.36.03-g
-CALC_MATR_AJOU:U4.66.01-e
+CALC_INTE_SPEC:U4.36.03-h
+CALC_MATR_AJOU:U4.66.01-f
CALC_MATR_ELEM:U4.61.01-h
-CALC_META:U4.85.01-c
-CALC_NO:U4.81.02-g
+CALC_META:U4.85.01-d
+CALC_NO:U4.81.02-h
CALC_PRECONT:U4.42.05-a
-CALC_THETA:U4.82.02-f
+CALC_TABLE:U4.33.03-a
+CALC_THETA:U4.82.02-g
CALC_VECT_ELEM:U4.61.02-h
COMB_CHAM_ELEM:U4.72.03-g
COMB_CHAM_NO:U4.72.02-h
-COMB_FOURIER:U4.83.31-e
-COMB_MATR_ASSE:U4.72.01-h
-COMB_SISM_MODAL:U4.84.01-f
-COMP_INCR:U4.51.11-a
-CREA_CHAMP:U4.72.04-c
-CREA_MAILLAGE:U4.23.02-e
-CREA_RESU:U4.44.12-f
-CREA_TABLE:U4.33.02-a
+COMB_FOURIER:U4.83.31-f
+COMB_MATR_ASSE:U4.72.01-i
+COMB_SISM_MODAL:U4.84.01-g
+COMP_INCR:U4.51.11-b
+CREA_CHAMP:U4.72.04-d1
+CREA_MAILLAGE:U4.23.02-f1
+CREA_RESU:U4.44.12-g
+CREA_TABLE:U4.33.02-b
DEBUT:U4.11.01-h
-DEFI_BASE_MODALE:U4.64.02-g
-DEFI_CABLE_BP:U4.42.04-c
-DEFI_COMPOR:U4.43.06-a
+DEFI_ CONSTANTE:U4.31.01-i
+DEFI_BASE_MODALE:U4.64.02-h1
+DEFI_CABLE_BP:U4.42.04-d
+DEFI_COMPOR:U4.43.06-b
DEFI_CONSTANTE:U4.31.01-h
-DEFI_COQU_MULT:U4.42.03-g
-DEFI_FICHIER:U4.12.03-a
-DEFI_FISS_XFEM:U4.82.08-a
-DEFI_FLUI_STRU:U4.25.01-f
-DEFI_FONCTION:U4.31.02-h
-DEFI_FONC_ELEC:U4.mk.10-g
-DEFI_FONC_FLUI:U4.35.01-e
-DEFI_FOND_FISS:U4.82.01-g
-DEFI_GROUP:U4.22.01-g
-DEFI_INTERF_DYNA:U4.64.01-g
-DEFI_INTE_SPEC:U4.36.02-g
+DEFI_COQU_MULT:U4.42.03-h
+DEFI_FICHIER:U4.12.03-b
+DEFI_FISS_XFEM:U4.82.08-b
+DEFI_FLUI_STRU:U4.25.01-g
+DEFI_FONCTION:U4.31.02-i1
+DEFI_FONC_ELEC:U4.mk.10-h
+DEFI_FONC_FLUI:U4.35.01-f
+DEFI_FOND_FISS:U4.82.01-h
+DEFI_GROUP:U4.22.01-h
+DEFI_INTERF_DYNA:U4.64.01-h
+DEFI_INTE_SPEC:U4.36.02-h
DEFI_LIST_ENTI:U4.34.02-h
DEFI_LIST_REEL:U4.34.01-h
-DEFI_MAILLAGE:U4.23.01-g
-DEFI_MATERIAU:U4.43.01-h
-DEFI_MODELE_GENE:U4.65.02-f
-DEFI_NAPPE:U4.31.03-h
-DEFI_OBSTACLE:U4.44.21-g
-DEFI_PARA_SENSI:U4.31.06-b
-DEFI_SPEC_TURB:U4.44.31-e
+DEFI_MAILLAGE:U4.23.01-h
+DEFI_MATERIAU:U4.43.01-i
+DEFI_MODELE_GENE:U4.65.02-g
+DEFI_NAPPE:U4.31.03-i
+DEFI_OBSTACLE:U4.44.21-h
+DEFI_PARA_SENSI:U4.31.06-c
+DEFI_PART_FETI:U4.23.05-a1
+DEFI_SPEC_TURB:U4.44.31-f
DEFI_SQUELETTE:U4.24.01-h
DEFI_TEXTURE:U4.43.05-c
DEFI_THER_JOULE:U4.mk.20-f
-DEFI_TRC:U4.43.04-g
-DEPL_INTERNE:U4.62.02-g
-DETRUIRE:U4.14.01-f
+DEFI_TRC:U4.43.04-h
+DEPL_INTERNE:U4.62.02-h
+DETRUIRE:U4.14.01-g
DIST_LIGN_3D:U4.mk.30-f
-DYNA_ALEA_MODAL:U4.53.22-g
-DYNA_LINE_HARM:U4.53.11-g
-DYNA_LINE_TRAN:U4.53.02-h
-DYNA_NON_LINE:U4.53.01-g
-DYNA_SPEC_MODAL:U4.53.23-e
-DYNA_TRAN_EXPLI:U4.53.03-a
-DYNA_TRAN_MODAL:U4.53.21-g
+DYNA_ALEA_MODAL:U4.53.22-h
+DYNA_LINE_HARM:U4.53.11-h
+DYNA_LINE_TRAN:U4.53.02-i
+DYNA_NON_LINE:U4.53.01-h
+DYNA_SPEC_MODAL:U4.53.23-f
+DYNA_TRAN_EXPLI:U4.53.03-b
+DYNA_TRAN_MODAL:U4.53.21-h
ENGENDRE_TEST:U4.92.11-d
-EXEC_LOGICIEL:U7.00.01-c
-EXTR_MODE:U4.52.12-e
-EXTR_RESU:U4.71.04-d
+EXEC_LOGICIEL:U7.00.01-d
+EXTR_MODE:U4.52.12-f
+EXTR_RESU:U4.71.04-e
EXTR_TABLE:U4.71.05-a
-FACT_GRAD:U4.55.03-g
-FACT_LDLT:U4.55.01-h
-FIN:U4.11.02-h
-FONC_FLUI_STRU:U4.35.02-e
-FORMULE:U4.31.05-f
-GENE_FONC_ALEA:U4.36.05-g
-GENE_MATR_ALEA:U4.36.06-b
+FACT_GRAD:U4.55.03-h
+FACT_LDLT:U4.55.01-i1
+FIN:U4.11.02-i
+FONC_FLUI_STRU:U4.35.02-f
+FORMULE:U4.31.05-g
+GENE_FONC_ALEA:U4.36.05-h
+GENE_MATR_ALEA:U4.36.06-c
GENE_VARI_ALEA:U4.36.07-b
-IMPR_CLASSI:U7.04.21-c
-IMPR_CO:U4.91.11-h
-IMPR_COURBE:U4.33.01-e
+IMPR_CLASSI:U7.04.21-d
+IMPR_CO:U4.91.11-i
IMPR_FICO_HOMA:U7.04.01-c
-IMPR_FONCTION:U4.33.01-f
-IMPR_GENE:U4.91.02-e
-IMPR_JEVEUX:U4.91.21-h
-IMPR_MACR_ELEM:U7.04.33-e
-IMPR_MATRICE:U7.04.32-e
+IMPR_FONCTION:U4.33.01-g
+IMPR_GENE:U4.91.02-f
+IMPR_JEVEUX:U4.91.21-i
+IMPR_MACR_ELEM:U7.04.33-g
+IMPR_MATRICE:U7.04.32-f
+IMPR_MISS3D:U7.04.11-f
IMPR_MISS_3D:U7.04.11-e
-IMPR_OAR:U7.04.51-a
+IMPR_OAR:U7.04.51-b
IMPR_RESU:U4.91.01-h
-IMPR_STURM:U4.52.01-h
+IMPR_STURM:U4.52.01-i
IMPR_TABLE:U4.91.03-e
-INCLUDE:U4.13.01-g
-INCLUDE_MATERIAU:U4.43.02-c
-INFO_EXEC_ASTER:U4.13.04-a
-INTE_MAIL_2D:U4.81.11-g
-INTE_MAIL_3D:U4.81.12-g
-LIRE_CHAMP:U7.02.02-c
-LIRE_FONCTION:U4.32.02-g
-LIRE_INTE_SPEC:U4.36.01-g
-LIRE_MAILLAGE:U4.21.01-h
-LIRE_MISS_3D:U7.02.31-e
-LIRE_PLEXUS:U7.02.11-c
-LIRE_RESU:U7.02.01-e
-LIRE_TABLE:U7.02.03-b
-MACRO_CARA_POUTRE:U4.42.02-d
+INCLUDE:U4.13.01-h
+INCLUDE_MATERIAU:U4.43.02-d
+INFO_EXEC_ASTER:U4.13.04-b
+INFO_FONCTION:U4.32.05-a
+INTE_MAIL_2D:U4.81.11-h
+INTE_MAIL_3D:U4.81.12-h
+LIRE_CHAMP:U7.02.02-d1
+LIRE_FONCTION:U4.32.02-h
+LIRE_FORC_MISS:U7.02.33-a
+LIRE_IMPE_MISS:U7.02.32-a
+LIRE_INTE_SPEC:U4.36.01-h
+LIRE_MAILLAGE:U4.21.01-i
+LIRE_MISS_3D:U7.02.31-f
+LIRE_PLEXUS:U7.02.11-d
+LIRE_RESU:U7.02.01-f
+LIRE_TABLE:U7.02.03-c
MACRO_ELAS_MULT:U4.51.02-e
-MACRO_MATR_AJOU:U4.66.11-d
-MACRO_MATR_ASSE:U4.61.21-e
-MACRO_MISS_3D:U7.03.11-c
-MACRO_MODE_MECA:U4.52.02-e
-MACRO_PROJ_BASE:U4.63.11-e
-MACR_ADAP_MAIL:U7.03.01-c
-MACR_ASCOUF_CALC:U4.cf.20-c
-MACR_ASCOUF_MAIL:U4.cf.10-c
-MACR_ASPIC_CALC:U4.pc.20-c
-MACR_ASPIC_MAIL:U4.pc.10-c
+MACRO_ELIAS_MULT:U4.51.02-f
+MACRO_MATR_AJOU:U4.66.11-e
+MACRO_MATR_ASSE:U4.61.21-f
+MACRO_MISS_3D:U7.03.11-e
+MACRO_MODE_MECA:U4.52.02-f
+MACRO_PROJ_BASE:U4.63.11-f
+MACR_ADAP_MAIL:U7.03.01-d
+MACR_ASCOUF_CALC:U4.cf.20-d
+MACR_ASCOUF_MAIL:U4.cf.10-d
+MACR_ASPIC_CALC:U4.pc.20-d
+MACR_ASPIC_MAIL:U4.pc.10-d
MACR_CABRI_CALC:U4.cb.20-a
MACR_CABRI_MAIL:U4.cb.10-a
-MACR_CARA_POUTRE:U4.42.02-e
-MACR_ECLA_PG:U4.44.14-a
-MACR_ELEM_DYNA:U4.65.01-f
-MACR_ELEM_STAT:U4.62.01-g
+MACR_CARA_POUTRE:U4.42.02-f
+MACR_ECLA_PG:U4.44.14-b
+MACR_ELEM_DYNA:U4.65.01-g
+MACR_ELEM_STAT:U4.62.01-h
MACR_FIABILITE:U7.03.31-a
-MACR_FIAB_IMPR:U7.04.41-a
-MACR_INFO_MAIL:U7.03.02-c
-MACR_LIGN_COUPE:U4.81.13-b
-MACR_RECAL:U4.73.02-b
-MAJ_CATA:U4.15.01-f
-MECA_STATIQUE:U4.51.01-h
-MEMO_NOM_SENSI:U4.31.07-b
+MACR_FIAB_IMPR:U7.04.41-b
+MACR_INFO_MAIL:U7.03.02-d
+MACR_LIGN_COUPE:U4.81.13-c
+MACR_RECAL:U4.73.02-c
+MAC_MODES:U4.52.15-a
+MAJ_CATA:U4.15.01-g
+MECA_STATIQUE:U4.51.01-i1
+MEMO_NOM_SENSI:U4.31.07-c
+MODE_INTER_CYCL:U4.52.05-h
MODE_ITER_CYCL:U4.52.05-g
-MODE_ITER_INV:U4.52.04-h
-MODE_ITER_SIMULT:U4.52.03-g
-MODE_STATIQUE:U4.52.14-g
-MODI_BASE_MODALE:U4.66.21-e
-MODI_MAILLAGE:U4.23.04-e
-MODI_MODELE_XFEM:U4.41.11-a
+MODE_ITER_INV:U4.52.04-i
+MODE_ITER_SIMULT:U4.52.03-h
+MODE_STATIQUE:U4.52.14-h
+MODI_BASE_MODALE:U4.66.21-f
+MODI_MAILLAGE:U4.23.04-f
+MODI_MODELE_XFEM:U4.41.11-b
MODI_OBSTACLE:U4.44.22-c
-MODI_REPERE:U4.74.01-b
-NORM_MODE:U4.52.11-g
-NUME_DDL:U4.61.11-h
-NUME_DDL_GENE:U4.65.03-f
-POST_DYNA_ALEA:U4.84.04-f
-POST_DYNA_MODA_T:U4.84.02-f
-POST_ELEM:U4.81.22-f
-POST_FATIGUE:U4.83.01-e
-POST_FATI_ALEA:U4.84.03-e
-POST_K1_K2_K3:U4.82.05-c
-POST_K_BETA:U4.82.07-b
-POST_RCCM:U4.83.11-e
-POST_RELEVE_T:U4.81.21-f
+MODI_REPERE:U4.74.01-c
+MODY_OBSTACLE:U4.44.22-d
+NORM_MODE:U4.52.11-h
+NUME_DDL:U4.61.11-i
+NUME_DDL_GENE:U4.65.03-g
+POST_CHAM_XFEM:U4.82.22-a
+POST_DYNA_ALEA:U4.84.04-g
+POST_DYNA_MODA_T:U4.84.02-g
+POST_ELEM:U4.81.22-g
+POST_FATIGUE:U4.83.01-f
+POST_FATI_ALEA:U4.84.03-f
+POST_GP:U4.82.31-a
+POST_K1_K2_K3:U4.82.05-d
+POST_K_BETA:U4.82.07-c
+POST_K_TRANS:U4.82.30-a
+POST_MAIL_XFEM:U4.82.21-a
+POST_RCCM:U4.83.11-f
+POST_RELEVE_T:U4.81.21-g1
POST_USURE:U4.84.05-f
-POST_ZAC:U4.83.21-d
-POURSUITE:U4.11.03-h
+POST_ZAC:U4.83.21-e
+POURSUITE:U4.11.03-i
PRE_GIBI:U7.01.11-h
-PRE_GMSH:U7.01.31-b
-PRE_IDEAS:U7.01.01-h
-PROD_MATR_CHAM:U4.72.06-d
-PROJ_CHAMP:U4.72.05-e
-PROJ_MATR_BASE:U4.63.12-g
-PROJ_MESU_MODAL:U4.73.01-c
-PROJ_SPEC_BASE:U4.63.14-e
-PROJ_VECT_BASE:U4.63.13-g
-RECA_WEIBULL:U4.82.06-c
-RECU_FONCTION:U4.32.03-g
-RECU_GENE:U4.71.03-g
+PRE_GMSH:U7.01.31-c
+PRE_IDEAS:U7.01.01-i
+PROD_MATR_CHAM:U4.72.06-e
+PROJ_CHAMP:U4.72.05-g
+PROJ_MATR_BASE:U4.63.12-h
+PROJ_MESU_MODAL:U4.73.01-d
+PROJ_SPEC_BASE:U4.63.14-f
+PROJ_VECT_BASE:U4.63.13-h
+PROPA_XFEM:U4.82.11-a
+RECA_WEIBULL:U4.82.06-d
+RECU_FONCTION:U4.32.03-h
+RECU_GENE:U4.71.03-h
RECU_TABLE:U4.71.02-c
-RESO_GRAD:U4.55.04-g
-RESO_LDLT:U4.55.02-h
-REST_BASE_PHYS:U4.63.21-g
-REST_SPEC_PHYS:U4.63.22-e
-SENSIBILITE:U4.50.02-b
-SOLVEUR:U4.50.01-e
-STANLEY:U4.81.31-b
-STAT_NON_LINE:U4.51.03-g
-TEST_FICHIER:U4.92.04-a
-TEST_FONCTION:U4.92.02-g
-TEST_RESU:U4.92.01-h
-TEST_TABLE:U4.92.03-d
-THER_LINEAIRE:U4.54.01-h
-THER_NON_LINE:U4.54.02-f
-THER_NON_LINE_MO:U4.54.03-d
+RESO_GRAD:U4.55.04-h
+RESO_LDLT:U4.55.02-i1
+REST_BASE_PHYS:U4.63.21-h
+REST_SPEC_PHYS:U4.63.22-f
+SENSIBILITE:U4.50.02-c
+SOLVEUR:U4.50.01-f2
+STANLEY:U4.81.31-c
+STAT_NON_LINE:U4.51.03-h
+TEST_FICHIER:U4.92.04-b
+TEST_FONCTION:U4.92.02-h
+TEST_RESU:U4.92.01-i
+TEST_TABLE:U4.92.03-e1
+THER_LINEAIRE:U4.54.01-i
+THER_NON_LINE:U4.54.02-g
+THER_NON_LINE_MO:U4.54.03-e
\ No newline at end of file
--- /dev/null
+#@ MODIF Sensibilite Macro DATE 16/05/2007 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.
+# ======================================================================
+
+"""
+Module traite de la gestion des concepts sensibles :
+ - classe permettant de stocker les noms des concepts et leurs dérivées
+ - corps de la macro MEMO_NOM_SENSI
+"""
+
+# proctection eficas
+try:
+ import aster
+ from Utilitai.Utmess import U2MESS as UTMESS
+except:
+ pass
+
+_VIDE_ = '????????'
+
+#-------------------------------------------------------------------------------
+class MEMORISATION_SENSIBILITE:
+ """Classe pour la mémorisation des concepts sensibles et leurs dérivées.
+ """
+ def __init__(self, debug=False):
+ """Initialisation de la structure
+ """
+ self._debug = debug
+ # dictionnaire de correspondance : ('nom concept', 'nom parasensi') : 'nom compose'
+ self._corr = {}
+ self._nsnp = {} # l'inverse
+ # dictionnaire donnant les 3 tuples de mots-clés, valeurs, mots-clés facteurs
+ self._mcle = {}
+
+
+ def key(self, nosimp, nopase):
+ """Retourne la clé d'accès aux dictionnaires
+ """
+ if not type(nosimp) in (str, unicode) or not type(nopase) in (str, unicode) or \
+ len(nosimp.strip()) > 8 or len(nopase.strip()) > 8:
+ UTMESS('F', 'SENSIBILITE_57', valk=(nosimp, nopase))
+ return nosimp.strip(), nopase.strip()
+
+
+ def set(self, nosimp, nopase, nocomp=None, limocl=None, livale=None, limofa=None,
+ verbose=False):
+ """On renseigne la structure de mémorisation : CHOIX='E'
+ """
+ key = self.key(nosimp, nopase)
+ if self._corr.has_key(key):
+ UTMESS('F', 'SENSIBILITE_90', valk=(nosimp, nopase))
+ limocl = limocl or ()
+ livale = livale or ()
+ limofa = limofa or ()
+ if not (len(limocl) == len(livale) == len(limofa)):
+ UTMESS('F', 'SENSIBILITE_97')
+
+ if nocomp is None:
+ nocomp = aster.get_nom_concept_unique('S')
+ self._corr[key] = nocomp
+ self._nsnp[nocomp] = key
+ self._mcle[key] = (limocl, livale, limofa)
+
+ if verbose or self._debug:
+ UTMESS('I', 'SENSIBILITE_58', valk=(nosimp, nopase, nocomp))
+ if len(limocl) != 0:
+ UTMESS('I', 'SENSIBILITE_59', valk=(str(limocl), str(livale), str(limofa)))
+
+
+ def get_nocomp(self, nosimp, nopase):
+ """On récupère le nom composé associé à un nom simple.
+ """
+ key = self.key(nosimp, nopase)
+ nocomp = self._corr.get(key, _VIDE_)
+ if self._debug:
+ print '<DBG> memo_sensi.get_nocomp'
+ print ' nosimp, nopase = "%s", "%s"' % (nosimp, nopase)
+ print ' nom composé = "%s"' % nocomp
+ return nocomp
+
+
+ def get_nsnp(self, nocomp):
+ """On récupère le nom du concept et le parasensi associé au nom composé fourni.
+ """
+ key = self._nsnp.get(nocomp, (_VIDE_, _VIDE_))
+ if self._debug:
+ print '<DBG> memo_sensi.get_nsnp'
+ print ' nom composé = "%s"' % nocomp
+ print ' nosimp, nopase = "%s", "%s"' % key
+ return nocomp
+
+
+ def get_mcle(self, nosimp, nopase):
+ """On récupère les mots-clés associés à un couple ('nom concept', 'nom parasensi')
+ """
+ key = self.key(nosimp, nopase)
+ tup3 = self._mcle.get(key, ((), (), ()) )
+ if self._debug:
+ print tup3
+ print '<DBG> memo_sensi.get_mcle nbmocl =',len(tup3[0])
+ print ' nosimp, nopase = "%s", "%s"' % (nosimp, nopase)
+ print ' mots-clés = ', tup3
+ return tup3
+
+
+ def psinfo(self, nosimp):
+ """Pendant de l'ex-routine psnosd : retour selon le type de `nosimp`.
+ """
+ # est-ce une structure dérivée ?
+ if nosimp in self._nsnp.keys():
+ t_couples = self._nsnp[nosimp]
+ ideriv = 1
+ else:
+ t_couples = self.get_deriv(nosimp)
+ ideriv = 0
+ # on met le tuple des couples à plat : un tuple de longueur double
+ l_res = []
+ for coupl in t_couples:
+ l_res.extend(coupl)
+ t_res = tuple(l_res)
+ if self._debug:
+ print '<DBG> memo_sensi.psinfo'
+ print ' nosimp = "%s"' % nosimp
+ print ' ideriv = ', ideriv
+ print ' result = ', t_res
+ return ideriv, t_res
+
+
+ def get_deriv(self, nosimp):
+ """On récupère la liste des couples ('nom composé', 'nom parasensi') associé à
+ un nom simple.
+ """
+ res = []
+ # liste des clés d'accès concernant `nosimp`.
+ l_key = [(ns, np) for ns, np in self._corr.keys() if ns == nosimp.strip()]
+ for ns, np in l_key:
+ res.append((self._corr[ns, np], np))
+ return tuple(res)
+
+
+ def delete(self, nosimp, nopase):
+ """On récupère les mots-clés associés à un couple ('nom concept', 'nom parasensi')
+ """
+ key = self.key(nosimp, nopase)
+ nocomp = self.get_nocomp(nosimp, nopase)
+ if nocomp != _VIDE_:
+ del self._corr[key]
+ del self._mcle[key]
+ del self._nsnp[nocomp]
+
+
+#-------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------
+def memo_nom_sensi_ops(self, NOM, **args):
+ """Macro MEMO_NOM_SENSI.
+ Transitoire : l'appel aux méthodes de MEMORISATION_SENSIBILITE devraient
+ à terme etre fait directement sans introduire de commandes MEMO_NOM_SENSI.
+
+ Faut-il traiter les mots-clés NOM_ZERO et NOM_UN ?
+ Il me semble que NOM_COMPOSE est toujours présent : obligatoire
+ """
+ ier=0
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # boucle sur les occurrences du mot-clé facteur NOM
+ for occ in NOM:
+ dNOM = occ.cree_dict_valeurs(occ.mc_liste)
+
+ nosimp = dNOM['NOM_SD']
+ nopase = dNOM['PARA_SENSI'].nom
+ nocomp = dNOM['NOM_COMPOSE']
+
+ self.jdc.memo_sensi.set(nosimp, nopase, nocomp,
+ dNOM['MOT_CLE'], dNOM['VALEUR'], dNOM['MOT_FACT'],
+ verbose=True)
+
+ return ier
--- /dev/null
+#@ 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.
+#
+#
+# ======================================================================
--- /dev/null
+#@ MODIF calc_fonction_ops Macro DATE 30/05/2007 AUTEUR COURTOIS 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.
+# ======================================================================
+
+import copy
+import traceback
+from math import pi
+
+
+# -----------------------------------------------------------------------------
+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
+ from Utilitai.t_fonction import t_fonction, t_fonction_c, t_nappe, homo_support_nappe, \
+ FonctionError, ParametreError, InterpolationError, ProlongementError
+ from Utilitai import liss_enveloppe
+ from Accas import _F
+ from Cata.cata import nappe_sdaster,fonction_sdaster,fonction_c
+ from Utilitai.Utmess import UTMESS, U2MESS
+ from Numeric import alltrue,less,array,reshape,cos,sin,exp,sqrt
+ from Numeric import choose,zeros,Float
+ import aster_fonctions
+ EnumTypes = (list, tuple)
+
+ ### 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)
+
+ # éléments de contexte
+ ctxt = Context()
+ ### l'ensemble est dans un try/except pour recuperer les erreurs du module t_fonction
+ try:
+ ###
+ if (INTEGRE != None):
+ __ff=INTEGRE['FONCTION'].convert()
+ ctxt.f = __ff.nom
+ if INTEGRE['METHODE']=='TRAPEZE' :
+ __ex=__ff.trapeze(INTEGRE['COEF'])
+ elif INTEGRE['METHODE']=='SIMPSON' :
+ __ex=__ff.simpson(INTEGRE['COEF'])
+ ###
+ if (DERIVE != None):
+ __ff=DERIVE['FONCTION'].convert()
+ ctxt.f = __ff.nom
+ __ex=__ff.derive()
+ ###
+ if (INVERSE != None):
+ __ff=INVERSE['FONCTION'].convert()
+ ctxt.f = __ff.nom
+ __ex=__ff.inverse()
+ ###
+ if (ABS != None):
+ __ff=ABS['FONCTION'].convert()
+ ctxt.f = __ff.nom
+ __ex=__ff.abs()
+ ###
+ if (COMPOSE != None):
+ __ff=COMPOSE['FONC_RESU'].convert()
+ __fg=COMPOSE['FONC_PARA'].convert()
+ ctxt.f = [__ff.nom, __fg.nom]
+ __ex=__ff[__fg]
+ ###
+ if (ASSE != None):
+ __f0=ASSE['FONCTION'][0].convert()
+ __f1=ASSE['FONCTION'][1].convert()
+ ctxt.f = [__f0.nom, __f1.nom]
+ __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())
+ ctxt.f = [f.nom for f in list_fonc]
+ list_fonc = homo_support_nappe(list_fonc)
+ elif isinstance(self.sd,fonction_sdaster):
+ for mcfact in COMB :
+ __ex=mcfact['FONCTION'].convert()
+ list_fonc.append(__ex)
+
+ __ex = 0.
+ for item, comb in zip(list_fonc, COMB):
+ ctxt.f = item.nom
+ __ex = item * comb['COEF'] + __ex
+ # on prend les paramètres de la 1ère fonction
+ __ex.para = copy.copy(list_fonc[0].para)
+ ###
+ if (COMB_C != None):
+ list_fonc=[]
+ if isinstance(self.sd,nappe_sdaster):
+ for mcfact in COMB_C:
+ list_fonc.append(mcfact['FONCTION'].convert())
+ ctxt.f = [f.nom for f in list_fonc]
+ list_fonc = homo_support_nappe(list_fonc)
+ 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 = 0.
+ for item, comb in zip(list_fonc, COMB_C):
+ if comb['COEF_R'] != None:
+ coef = complex(comb['COEF_R'])
+ elif comb['COEF_C'] != None:
+ if type(comb['COEF_C']) in EnumTypes:
+ coef = tocomplex(comb['COEF_C'])
+ else:
+ coef = comb['COEF_C']
+ ctxt.f = item.nom
+ __ex = item * coef + __ex
+ # on prend les paramètres de la 1ère fonction
+ __ex.para = copy.copy(list_fonc[0].para)
+
+ ### 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()
+ ctxt.f = __ff.nom
+ __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 EnumTypes:
+ l_env=(l_env,)
+ if isinstance(self.sd,nappe_sdaster):
+ for f in l_env:
+ list_fonc.append(f.convert())
+ ctxt.f = [f.nom for f in list_fonc]
+ list_fonc = homo_support_nappe(list_fonc)
+ 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]
+ for nap in list_fonc[1:] :
+ ctxt.f = nap.l_fonc[i].nom
+ __ff=__ff.enveloppe(nap.l_fonc[i], ENVELOPPE['CRITERE'])
+ 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]
+ for f in list_fonc[1:]:
+ ctxt.f = [__ex.nom, f.nom]
+ __ex = __ex.enveloppe(f, ENVELOPPE['CRITERE'])
+ ###
+ if (CORR_ACCE != None):
+ __ex=CORR_ACCE['FONCTION'].convert()
+ ctxt.f = __ex.nom
+ 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()
+ ctxt.f = __ff.nom
+ __ex=__ff.fft(FFT['METHODE'])
+ if isinstance(self.sd,fonction_sdaster):
+ __ff=FFT['FONCTION'].convert(arg='complex')
+ ctxt.f = __ff.nom
+ __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 EnumTypes :
+ 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 EnumTypes:
+ 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()
+ ctxt.f = __ff.nom
+
+ # 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)
+
+ except InterpolationError, msg:
+ U2MESS('F', 'FONCT0_27', valk=(ctxt.f, str(msg)))
+ except ParametreError, msg:
+ U2MESS('F', 'FONCT0_28', valk=(ctxt.f, str(msg)))
+ except ProlongementError, msg:
+ U2MESS('F', 'FONCT0_29', valk=(ctxt.f, str(msg)))
+ except FonctionError, msg:
+ U2MESS('F', 'FONCT0_30', valk=(ctxt.f, str(msg), traceback.format_exc()))
+
+ ### 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
+
+
+# -----------------------------------------------------------------------------
+class Context(object):
+ """Permet de stocker des éléments de contexte pour aider au
+ diagnostic lors de l'émission de message.
+ usage :
+ context = Context()
+ context.f = 'nomfon'
+ print context.f
+ """
+ def __init__(self):
+ self.__nomf = None
+
+ def get_val(self):
+ """Retourne le texte formatté.
+ """
+ nomf = self.__nomf
+ if type(nomf) not in (list, tuple):
+ nomf = [nomf,]
+ pluriel = ''
+ if len(nomf) > 1:
+ pluriel = 's'
+ try:
+ res = """Fonction%(s)s concernée%(s)s : %(nomf)s""" % {
+ 's' : pluriel,
+ 'nomf' : ', '.join(nomf),
+ }
+ except:
+ res = 'erreur de programmation !'
+ return res
+
+ def set_val(self, value):
+ self.__nomf = value
+
+ def del_val(self):
+ del self.__nomf
+
+ f = property(get_val, set_val, del_val, "")
--- /dev/null
+#@ 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
+
--- /dev/null
+#@ MODIF calc_table_ops Macro DATE 16/05/2007 AUTEUR COURTOIS 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
+
+ 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 = self.jdc.memo_sensi.get_nocomp(TABLE.nom, args['SENSIBILITE'].nom)
+ 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
--- /dev/null
+#@ MODIF creation_donnees_homard Macro DATE 04/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 ABBAS M.ABBAS
+"""
+Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster.
+"""
+__revision__ = "V1.2"
+__all__ = [ ]
+
+import os
+import os.path
+from types import ListType, TupleType
+EnumTypes = (ListType, TupleType)
+
+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
+ self.fic_homard_niterp1 = 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, self.fic_homard_niterp1
+# ------------------------------------------------------------------------------
+ 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 :
+ if not type(self.mots_cles["GROUP_MA"]) in EnumTypes :
+ self.ecrire_ligne_configuration_2("CCGroFro", self.mots_cles["GROUP_MA"])
+ else :
+ for group_ma in self.mots_cles["GROUP_MA"] :
+ self.ecrire_ligne_configuration_2("CCGroFro", group_ma)
+#
+# 8. L'éventuel maillage annexe
+#
+ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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']<occ[1]['FREQ_MIN'] :
+ txt = occ[0]+" : FREQ_MAX < FREQ_MIN"
+ UTMESS('F',commande, txt)
+ l_is=[occ[1]['NUME_ORDRE_I'] for occ in l_f]
+ l_js=[occ[1]['NUME_ORDRE_J'] for occ in l_f]
+ iis=sum(l_is)
+ ijs=sum(l_js)
+
+#--- pour une matrice hermitienne ---
+ l_ih=[k*(DIMENSION-k+1) for k in range(1,DIMENSION+1)]
+ l_jh=[k*k for k in range(1,DIMENSION+1)]
+ ih=sum(l_ih)
+ jh=sum(l_jh)
+ if ((iis!=ih) or (ijs!=jh)) :
+ txt = "erreur sur les indices"
+ UTMESS('F',commande, txt)
+
+#--- Construction de la liste de fonctions complexes
+ l_fc=[]
+ for occ in l_f :
+
+#--- PAR_FONCTION
+
+ if occ[0]=='PAR_FONCTION' :
+ l_fc.append(occ[1]['FONCTION'].nom)
+
+#--- KANAI_TAJIMI et CONSTANT
+
+ if occ[0] in ('KANAI_TAJIMI','CONSTANT') :
+ if occ[1]['VALE_R']!=None :
+ valr=occ[1]['VALE_R']
+ vali=0.
+ elif occ[1]['VALE_C']!=None :
+ cmpl=tocomplex(occ[1]['VALE_C'])
+ valr=cmpl.real
+ vali=cmpl.imag
+ else :
+ valr=1.
+ vali=0.
+ x1=Numeric.arange(occ[1]['FREQ_MIN'],occ[1]['FREQ_MAX'],occ[1]['PAS'])
+ x1=x1.tolist()+[occ[1]['FREQ_MAX'],]
+ valc=[]
+ for absc in x1 : valc=valc+[absc,valr,vali]
+
+#--- KANAI_TAJIMI
+
+ if occ[0]=='KANAI_TAJIMI' :
+ amor = occ[1]['AMOR_REDUIT']
+ frqmoy = occ[1]['FREQ_MOY']
+ x11 =Numeric.array([4*(amor**2)*(frqmoy**2)*FREQ**2 \
+ for FREQ in x1 ])
+ xnum =x11+frqmoy**4
+ denom=Numeric.array([ (frqmoy**2-FREQ**2)**2 \
+ for FREQ in x1 ])
+ denom=denom+x11
+ g0=Numeric.array([valr]*len(denom))
+ g0=g0*xnum/denom
+ valc=[]
+ for i in range(len(x1)): valc=valc+[x1[i],g0[i],0.]
+ if occ[0] in ('KANAI_TAJIMI','CONSTANT') :
+ _f=DEFI_FONCTION(PROL_GAUCHE=occ[1]['PROL_GAUCHE'],
+ PROL_DROITE=occ[1]['PROL_DROITE'],
+ INTERPOL =occ[1]['INTERPOL'],
+ VALE_C =valc,
+ NOM_PARA ='FREQ',
+ NOM_RESU ='DSP' )
+ l_fc.append(_f.nom)
+
+ mcfact=[]
+ mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K='DSP' ))
+ mcfact.append(_F(PARA='OPTION' ,LISTE_K='TOUT' ))
+ mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(DIMENSION,) ))
+ tabout=CREA_TABLE(LISTE=mcfact, TITRE='',
+ TYPE_TABLE='TABLE_FONCTION')
+ mcfact=[]
+ mcfact.append(_F(PARA='NUME_ORDRE_I' ,LISTE_I=l_is ))
+ mcfact.append(_F(PARA='NUME_ORDRE_J' ,LISTE_I=l_js ))
+ mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fc ,TYPE_K='K24' ))
+ __l_fonc=CREA_TABLE(LISTE=mcfact, TITRE='')
+ tabout=CALC_TABLE(reuse=tabout,TABLE=tabout,
+ TITRE=self.sd.nom+' : interspectre obtenu par DEFI_INTE_SPEC',
+ ACTION=_F(OPERATION='COMB',TABLE=__l_fonc,))
+
+ return ier
--- /dev/null
+#@ MODIF defi_part_feti_ops Macro DATE 26/03/2007 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.
+# ======================================================================
+# RESPONSABLE ASSIRE A.ASSIRE
+
+
+# ===========================================================================
+# CORPS DE LA MACRO "DEFI_PART_FETI"
+# -------------------------------------
+# USAGE :
+# MAILLAGE maillage a partitionner
+# MODELE modele (facultatif)
+# NB_PART nb de sous-domaines
+# EXCIT liste des chargements
+# METHODE PMETIS, KMETIS ou AUTRE
+# LOGICIEL si AUTRE alors on attend un chemin complet vers executable
+# NOM_GROUP_MA Un nom de base pour les group_ma contenant les SD
+# INFO 1,2
+#
+# ===========================================================================
+# script PYTHON : lancement de DEFI_PART_PA_OPS et de DEFI_PART_OPS
+
+
+def defi_part_feti_ops(self,NB_PART,METHODE,TRAITER_BORDS,NOM_GROUP_MA,CORRECTION_CONNEX,INFO,**args):
+
+ import aster, string, sys
+
+ from Accas import _F
+ from Noyau.N_utils import AsType
+
+ from Utilitai import partition
+
+ # DEBUT DE LA MACRO
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+ ier=0
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ DEFI_PART_OPS = self.get_cmd('DEFI_PART_OPS')
+ INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER')
+ DEFI_FICHIER = self.get_cmd('DEFI_FICHIER')
+ DETRUIRE = self.get_cmd('DETRUIRE')
+ DEFI_PART_PA_OPS = self.get_cmd('DEFI_PART_PA_OPS')
+
+ nompro='DEFI_PART_FETI'
+
+ # Maillage
+ if args.has_key('MODELE'):
+ if args['MODELE'] != None:
+ __MOD = string.ljust(args['MODELE'].nom,8)
+ __MOD =__MOD+'.MODELE .NOMA '
+ __LMAIL = aster.getvectjev(__MOD)
+ __MAIL = string.strip(__LMAIL[0])
+ MAILLAGE=self.get_sd_avant_etape(__MAIL,self)
+ else:
+ MAILLAGE=args['MAILLAGE']
+
+ # Nom des GROUP_MA générés
+ NOM_GROUP_MA = string.strip(NOM_GROUP_MA)
+
+ # Test sur le nombre de caractères de NOM_GROUP_MA
+ if ( len(NOM_GROUP_MA)+len(str(NB_PART)) > 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
--- /dev/null
+#@ 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<S> 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
+
--- /dev/null
+#@ 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)
--- /dev/null
+#@ 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")
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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<S> 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
--- /dev/null
+#@ 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
+try :
+ from Utilitai.Utmess import UTMESS
+ from Utilitai.Table import Table
+ from Utilitai.partition import MAIL_PY
+except :
+ pass
+
+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<!--"+self.commentaire+"-->\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 + "</"+self.nomBalise+">\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()
--- /dev/null
+#@ MODIF impr_table_ops Macro DATE 16/05/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
+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<S> 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
+ 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 = self.jdc.memo_sensi.get_nocomp(TABLE.nom, ps.nom)
+ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ MODIF macr_adap_mail_ops Macro DATE 04/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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, fic_homard_niterp1 = 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+"</tmp/donn1")
+#gn fichier_homard_vers_aster_2_2 = os.path.join("/tmp" , "fort." + str(unite_fichier_homard_vers_aster)+".2")
+#gn os.system("/local00/Logiciels/med-2.3.1/Linux/bin/mdump "+fichier_homard_vers_aster_2+">"+fichier_homard_vers_aster_2_2+"</tmp/donn2")
+#
+#====================================================================
+# 7. ==> 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 devenus inutiles
+# On doit imperativement garder le dernier fichier homard produit
+# En mode d'information, on garde également les fichiers textes
+#====================================================================
+#
+ liste_aux = [fichier_aster_vers_homard]
+ liste_aux_bis = os.listdir(Rep_Calc_HOMARD_global)
+ for fic in liste_aux_bis :
+ fic_total = os.path.join(Rep_Calc_HOMARD_global, fic)
+ liste_aux.append(fic_total)
+ liste_aux_bis = []
+ if ( mode_homard == "ADAP" ) :
+ liste_aux.append(fichier_homard_vers_aster)
+ fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niterp1)
+ liste_aux_bis.append(fic)
+#
+ for fic in liste_aux :
+ if fic not in liste_aux_bis :
+ if ( INFO > 1 ) :
+ print "Destruction du fichier ", fic
+ if os.path.isfile(fic) :
+ try :
+ os.remove(fic)
+ except os.error,codret_partiel :
+ self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
+ UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic)
+#gn print "Répertoire ",Rep_Calc_HOMARD_global
+#gn os.system("ls -la "+Rep_Calc_HOMARD_global)
+#gn print "Répertoire ",Rep_Calc_ASTER
+#gn os.system("ls -la "+Rep_Calc_ASTER)
+#gn print os.listdir(Rep_Calc_HOMARD_global)
+#gn print "glop :", Rep_Calc_HOMARD_global
+#
+#====================================================================
+# C'est fini !
+#====================================================================
+#
+#gn if ( mode_homard == "ADAP" ) :
+#gn os.system("sleep 1")
+#
+ return
--- /dev/null
+#@ MODIF macr_ascouf_calc_ops Macro DATE 23/05/2007 AUTEUR PELLET 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_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 (thermique)---
+#
+ 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']))
+ if mater['GROUP_MA'][:5]=='COUDE' :
+ if TORS_P1!=None :
+ mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER']))
+ mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER']))
+ elif (len(mc_AFFE_MATERIAU)==1) and (CL_BOL_P2_GV==None) :
+ mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER']))
+ elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) :
+ mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER']))
+
+ __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, )
+#
+#------------------------------------------------------------------
+#
+# --- commande AFFE_MATERIAU (mécanique)---
+#
+ if CHAM_MATER!=None : self.DeclareOut('affmth',CHAM_MATER)
+ indther= ECHANGE
+ mcfact=[]
+ mcfac2=[]
+ for mater in mc_AFFE_MATERIAU :
+ if mater['TOUT']!=None :
+ mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],))
+ if indther:
+ mcfac2.append(_F(NOM_VARC='TEMP',TOUT='OUI',
+ EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),)
+ rccmat = mater['MATER']
+ else :
+ mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],))
+ if indther:
+ mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA=mater['GROUP_MA'],
+ EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),)
+ if mater['GROUP_MA'][:5]=='COUDE' :
+ if TORS_P1!=None :
+ mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'],))
+ mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],))
+ if indther:
+ mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P1',
+ EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),)
+ mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2',
+ EVOL=resuth,NOM_CHAM='TEMP',VALE_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'],))
+ if indther:
+ mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2',
+ EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),)
+ elif (mater['BOL' ][:3]=='BOL' ) and (CL_BOL_P2_GV==None) :
+ mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],))
+ if indther:
+ mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA='P2',
+ EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF'],),)
+
+
+ affmth = AFFE_MATERIAU( MAILLAGE = MAILLAGE ,
+ MODELE = modele ,
+ AFFE = mcfact,
+ AFFE_VARC= mcfac2,)
+
+
+
+
+#------------------------------------------------------------------
+#
+# --- 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 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 = affmth ,
+ 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<LT1 : ANGSEC=0.
+ elif X<(-1*RCIN) : ANGSEC=mc_IMPR_TABLE['ANGLE']*pi/180.
+ else :
+ VCOS = cos((-LT1-Z)/(sqrt((X+RCIN)**2+Y**2 )))
+ VSIN = sin((-LT1-Z)/(sqrt((X+RCIN)**2+Y**2 )))
+ ANGSEC = atan2(VSIN,VCOS)
+ vecty=(sin(ANGSEC),0.,cos(ANGSEC))
+ motscles['ACTION'].append(_F(RESULTAT=nomres,
+ NOM_CHAM='SIEF_ELNO_ELGA',
+ INTITULE=tgrno,
+ GROUP_NO=tgrno,
+ NOM_CMP=('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ',),
+ REPERE='LOCAL',
+ VECT_Y=vecty,
+ OPERATION='MOYENNE',))
+ motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR'
+ tablig[3]=POST_RELEVE_T(**motscles)
+#
+# prelevements des ligaments sur les sections MI,TU et GV
+# les 8 ligaments sont tous les 45 degres
+#
+ ACOUR = mc_IMPR_TABLE['ANGLE']*pi/180.0
+ secprl=[None]*3
+ secrcm=[None]*3
+ secinv=[None]*3
+ secmoy=[None]*3
+ for i in range(3):
+ if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.)
+ else :
+ if i==0 : vecty=(sin(ACOUR/2.),0.,cos(ACOUR/2.))
+ if i==1 : vecty=(0.,0.,1.)
+ if i==2 : vecty=(sin(ACOUR),0.,cos(ACOUR))
+ motscles = {}
+ motscles['TITRE']='TABLE DE POST-TRAITEMENT MOYENNE RCCM SECTION '+SECT[i]
+#
+# moyenne RCCM sur les sections MI,TU et GV
+#
+ motscles={}
+ motscles['ACTION']=[]
+ for j in range(8) :
+ motscles['ACTION'].append(_F(RESULTAT=nomres,
+ NOM_CHAM='SIEF_ELNO_ELGA',
+ TOUT_CMP='OUI',
+ INTITULE=LIG[j]+SECT[i],
+ GROUP_NO=LIG[j]+SECT[i],
+ OPERATION='EXTRACTION',))
+ motscles['TITRE']='TABLE DE POST-TRAITEMENT MOYENNE RCCM SECTION '+SECT[i]
+ secprl[i]=POST_RELEVE_T(**motscles)
+ secrcm[i]=POST_RCCM(MATER = rccmat,
+ TYPE_RESU_MECA = 'EVOLUTION',
+ OPTION = 'PM_PB',
+ TRANSITOIRE=_F(TABL_RESU_MECA = secprl[i],),)
+#
+# invariants sur les sections MI,TU et GV
+#
+ motscles = {}
+ motscles['TITRE']='TABLE DE POST-TRAITEMENT INVARIANTS SECTION '+SECT[i]
+ motscles['ACTION']=[]
+ for j in range(8) : motscles['ACTION'].append(_F(INTITULE =LIG[j]+SECT[i],
+ GROUP_NO =LIG[j]+SECT[i],
+ RESULTAT =nomres,
+ NOM_CHAM ='SIEF_ELNO_ELGA',
+ INVARIANT='OUI',
+ OPERATION='EXTRACTION'))
+ secinv[i] = POST_RELEVE_T(**motscles)
+#
+# moyennes contraintes sur les sections MI,TU et GV
+#
+ motscles = {}
+ motscles['TITRE']='TABLE DE POST-TRAITEMENT MOYENNE SECTION '+SECT[i]
+ motscles['ACTION']=[]
+ for j in range(8) : motscles['ACTION'].append(_F(INTITULE =LIG[j]+SECT[i],
+ REPERE ='LOCAL',
+ VECT_Y =vecty,
+ GROUP_NO =LIG[j]+SECT[i],
+ RESULTAT =nomres,
+ NOM_CHAM ='SIEF_ELNO_ELGA',
+ NOM_CMP =('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'),
+ OPERATION='MOYENNE'))
+ secmoy[i] = POST_RELEVE_T(**motscles)
+
+#
+# impression des valeurs maximales pour chaque sous-epaisseur
+#
+ if mc_IMPR_TABLE['TOUT_PARA']=='OUI' :
+ list_para=['TRESCA_MEMBRANE','TRESCA_MFLE','TRESCA','SI_LONG','SI_RADI','SI_CIRC']
+ else : list_para=mc_IMPR_TABLE['NOM_PARA']
+ if 'TRESCA_MEMBRANE' in list_para:
+ IMPR_TABLE(TABLE = tablig[1],
+ FILTRE = _F( NOM_PARA ='PM', CRIT_COMP ='MAXI'),
+ NOM_PARA = ('INTITULE','PM'));
+ if 'TRESCA_MFLE' in list_para:
+ IMPR_TABLE(TABLE = tablig[1],
+ FILTRE =(_F( NOM_PARA ='LIEU',VALE_K ='ORIG'),
+ _F( NOM_PARA ='PMB', CRIT_COMP='MAXI'),),
+ NOM_PARA = ('INTITULE','PMB'));
+ IMPR_TABLE(TABLE = tablig[1],
+ FILTRE =(_F( NOM_PARA='LIEU', VALE_K ='EXTR'),
+ _F( NOM_PARA ='PMB', CRIT_COMP='MAXI'),),
+ NOM_PARA = ('INTITULE','PMB'));
+ if 'SI_RADI' in list_para:
+ IMPR_TABLE(TABLE = tablig[3],
+ FILTRE =(_F( NOM_PARA='QUANTITE',VALE_K ='MOMENT_0'),
+ _F( NOM_PARA ='SIXX', CRIT_COMP='MAXI'),),
+ NOM_PARA = ('INTITULE','SIXX'));
+ if 'SI_LONG' in list_para:
+ IMPR_TABLE(TABLE = tablig[3],
+ FILTRE =(_F( NOM_PARA='QUANTITE',VALE_K ='MOMENT_0'),
+ _F( NOM_PARA ='SIYY', CRIT_COMP='MAXI'),),
+ NOM_PARA = ('INTITULE','SIYY'));
+ if 'SI_CIRC' in list_para:
+ IMPR_TABLE(TABLE = tablig[3],
+ FILTRE =(_F( NOM_PARA='QUANTITE',VALE_K ='MOMENT_0'),
+ _F( NOM_PARA ='SIZZ', CRIT_COMP='MAXI'),),
+ NOM_PARA = ('INTITULE','SIZZ'));
+ if 'TRESCA' in list_para:
+ IMPR_TABLE(TABLE = tablig[2],
+ NOM_PARA = ('INTITULE','NOEUD','TRESCA',),
+ PAGINATION = 'INTITULE',
+ FILTRE = _F( NOM_PARA = 'TRESCA',
+ CRIT_COMP = 'MAXI' ) ) ;
+#
+# impression des resultats pour chaque sous-epaisseur
+#
+ if 'TRESCA_MEMBRANE' in list_para:
+ IMPR_TABLE(TABLE = tablig[1],
+ FILTRE = _F( NOM_PARA='LIEU', VALE_K ='ORIG'),
+ NOM_PARA = ('INTITULE','PM'));
+ if 'TRESCA_MFLE' in list_para:
+ IMPR_TABLE(TABLE = tablig[1],
+ FILTRE = _F( NOM_PARA='LIEU', VALE_K ='ORIG'),
+ NOM_PARA = ('INTITULE','PMB'));
+ IMPR_TABLE(TABLE = tablig[1],
+ FILTRE = _F( NOM_PARA='LIEU', VALE_K ='EXTR'),
+ NOM_PARA = ('INTITULE','PMB'));
+ if 'SI_RADI' in list_para:
+ IMPR_TABLE(TABLE = tablig[3],
+ FILTRE = _F( NOM_PARA='QUANTITE', VALE_K ='MOMENT_0'),
+ NOM_PARA = ('INTITULE','SIXX'));
+ if 'SI_LONG' in list_para:
+ IMPR_TABLE(TABLE = tablig[3],
+ FILTRE = _F( NOM_PARA='QUANTITE', VALE_K ='MOMENT_0'),
+ NOM_PARA = ('INTITULE','SIYY'));
+ if 'SI_CIRC' in list_para:
+ IMPR_TABLE(TABLE = tablig[3],
+ FILTRE = _F( NOM_PARA='QUANTITE', VALE_K ='MOMENT_0'),
+ NOM_PARA = ('INTITULE','SIZZ'));
+ if 'TRESCA' in list_para:
+ IMPR_TABLE(TABLE = tablig[2],
+ NOM_PARA = ('INTITULE','NOEUD','TRESCA',),
+ PAGINATION = 'INTITULE');
+#
+# impression des resultats pour les sections MI, TU et GV
+#
+ for k in range(3):
+ if 'TRESCA_MEMBRANE' in list_para:
+ IMPR_TABLE(TABLE = secrcm[k],
+ FILTRE = _F( NOM_PARA='LIEU', VALE_K ='ORIG'),
+ NOM_PARA = ('INTITULE','PM'));
+ if 'TRESCA_MFLE' in list_para:
+ IMPR_TABLE(TABLE = secrcm[k],
+ FILTRE = _F( NOM_PARA='LIEU', VALE_K ='ORIG'),
+ NOM_PARA = ('INTITULE','PMB'));
+ IMPR_TABLE(TABLE = secrcm[k],
+ FILTRE = _F( NOM_PARA='LIEU', VALE_K ='EXTR'),
+ NOM_PARA = ('INTITULE','PMB'));
+ if 'SI_RADI' in list_para:
+ IMPR_TABLE(TABLE = secmoy[k],
+ FILTRE = _F( NOM_PARA='QUANTITE', VALE_K ='MOMENT_0'),
+ NOM_PARA = ('INTITULE','SIXX'));
+ if 'SI_LONG' in list_para:
+ IMPR_TABLE(TABLE = secmoy[k],
+ FILTRE = _F( NOM_PARA='QUANTITE', VALE_K ='MOMENT_0'),
+ NOM_PARA = ('INTITULE','SIYY'));
+ if 'SI_CIRC' in list_para:
+ IMPR_TABLE(TABLE = secmoy[k],
+ FILTRE = _F( NOM_PARA='QUANTITE', VALE_K ='MOMENT_0'),
+ NOM_PARA = ('INTITULE','SIZZ'));
+ if 'TRESCA' in list_para:
+ IMPR_TABLE(TABLE = secinv[k],
+ NOM_PARA = ('INTITULE','NOEUD','TRESCA',),
+ PAGINATION = 'INTITULE');
+#
+ if TYPE_MAILLAGE in ('FISS_COUDE','FISS_AXIS_DEB'):
+#
+# --- post traitement fissure : calcul de g ----
+#
+ motscles = {}
+ if FOND_FISS != None : self.DeclareOut('fonfis',FOND_FISS)
+ if TYPE_MAILLAGE =='FISS_COUDE' :
+ motscles['FOND_FISS']=_F(GROUP_NO='FONDFISS')
+ motscles['VECT_GRNO_ORIG']= ('PFOR','THOR')
+ motscles['VECT_GRNO_EXTR']= ('PFEX','THEX')
+ else :
+ motscles['FOND_FERME']=_F(GROUP_MA='FONDFISS',
+ GROUP_NO_ORIG='PFOR',
+ GROUP_MA_ORIG='MAIL_ORI')
+ fonfis=DEFI_FOND_FISS(MAILLAGE=MAILLAGE,
+ LEVRE_SUP=_F(GROUP_MA='FACE1'),
+ LEVRE_INF=_F(GROUP_MA='FACE2'),
+ INFO=INFO,**motscles
+ );
+ if THETA_3D!=None :
+ for thet in THETA_3D:
+ _nothet=CALC_THETA(MODELE=modele,
+ FOND_FISS=fonfis,
+ THETA_3D=_F(TOUT = 'OUI',
+ MODULE = 1.,
+ R_INF = thet['R_INF'],
+ R_SUP = thet['R_SUP'],),
+ );
+ motscles = {}
+ if COMP_INCR!=None : motscles['COMP_INCR']=_F(RELATION=COMP_INCR['RELATION'])
+ if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION'])
+ _nogthe=CALC_G( RESULTAT =nomres,
+ OPTION='CALC_G_GLOB',
+ TOUT_ORDRE ='OUI',
+ THETA =_F(THETA=_nothet),**motscles);
+#
+ IMPR_TABLE(TABLE=_nogthe,);
+#
+ for thet in THETA_3D:
+ motscles = {}
+ if COMP_INCR!=None : motscles['COMP_INCR']=_F(RELATION=COMP_INCR['RELATION'])
+ if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION'])
+ if TYPE_MAILLAGE =='FISS_COUDE' :
+ motscles['LISSAGE']=_F(LISSAGE_THETA='LEGENDRE',
+ LISSAGE_G='LEGENDRE',
+ DEGRE=4,)
+ elif TYPE_MAILLAGE =='FISS_AXIS_DEB' :
+ motscles['LISSAGE']=_F(LISSAGE_THETA='LAGRANGE',
+ LISSAGE_G='LAGRANGE',
+ DEGRE=4,)
+ _nogloc=CALC_G (RESULTAT =nomres,
+ TOUT_ORDRE ='OUI',
+ THETA=_F( FOND_FISS =fonfis,
+ R_INF = thet['R_INF'],
+ R_SUP = thet['R_SUP'],),**motscles);
+
+ IMPR_TABLE(TABLE=_nogloc,);
+#
+# --- commande IMPR_RESU ---
+#
+ if IMPRESSION!=None:
+ mcfresu =[]
+ motscles={}
+ if IMPRESSION['FORMAT']=='IDEAS' :
+ motscles['VERSION' ]= IMPRESSION['VERSION']
+ if IMPRESSION['FORMAT']=='CASTEM' :
+ motscles['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI']
+ mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,))
+ if ECHANGE!=None:
+ motscles={}
+ if IMPRESSION['FORMAT']=='IDEAS' :
+ motscles['VERSION' ]= IMPRESSION['VERSION']
+ if IMPRESSION['FORMAT']=='CASTEM' :
+ motscles['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI']
+ mcfresu.append(_F(RESULTAT=resuth,))
+ IMPR_RESU( MODELE = modele,
+ RESU = mcfresu,
+ FORMAT=IMPRESSION['FORMAT'],**motscles)
+#
+ return ier
--- /dev/null
+#@ MODIF macr_ascouf_mail_ops Macro DATE 29/08/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.path
+from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor
+import string
+try :
+ import aster
+ from Utilitai.Utmess import UTMESS
+except :
+ pass
+
+# ------------------------------------------------------------------------------
+def ASCFON(RC,RM,EP,ORIEN,AZIM,AXEC,POS,Y):
+ """
+ FONCTION F(CP)=CC
+ OU CC EST LA TAILLE DE LA FISSURE SUR LE COUDE
+ ET CP LA TAILLE DE FISSURE SUR LA PLAQUE
+ """
+ AZIMR = AZIM*2.*pi/360.
+ if POS=='DEB_INT': X = RM-EP/2.
+ else : X = RM+EP/2.
+ if abs(ORIEN-45.0)<0.01: SIG = 1.
+ else : SIG = -1.
+ f_ASCFON = - SIG*X*RC/(2.*RM*sin(AZIMR)) * ( \
+ log ( RM/X+RM/RC*(cos(AZIMR)- \
+ sin(AZIMR)*SIG*Y/(sqrt(2.)*RM)) + \
+ sqrt( 1.+( RM/X+RM/RC*(cos(AZIMR)- \
+ sin(AZIMR)*SIG*Y/(sqrt(2.)*RM)) )**2 ) \
+ ) \
+ - log ( RM/X+RM/RC*cos(AZIMR) \
+ + sqrt( 1. +(RM/X+RM/RC*cos(AZIMR))**2) \
+ ) ) \
+ - SIG*X*RC/(2.*RM*SIN(AZIMR)) * \
+ ( ( RM/X+RM/RC* ( cos(AZIMR)- \
+ sin(AZIMR)*SIG*Y/(sqrt(2.0)*RM) ) \
+ ) * sqrt( 1. + ( RM/X+RM/RC*(cos(AZIMR)- \
+ sin(AZIMR)*SIG*Y/(SQRT(2.)*RM)) )**2 ) \
+ - ( RM/X+RM/RC*COS(AZIMR) ) \
+ * sqrt( 1. +(RM/X+RM/RC*cos(AZIMR))**2) \
+ ) \
+ - 2.0*AXEC
+ return f_ASCFON
+
+# ------------------------------------------------------------------------------
+def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA,
+ AXEC, AZIM, POS, SF, DSF, BETA, ORIEN):
+ """
+ MACR_ASCOUF_MAIL ASCFIS
+ taille initiale du defaut fissure sur la plaque en
+ fonction des donnees sur le coude ou le tube suivant la
+ transformation choisie
+
+ ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
+
+ ALPHA = ANGLE DU COUDE
+ RM = RAYON MOYEN DU COUDE
+ RC = RAYON DE CINTRAGE DU COUDE
+ EP = EPAISSEUR DU COUDE
+ SUREP = VALEUR DE LA SUREPAISSEUR
+ GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)
+ AXEA = PROFONDEUR FISSURE (DEMI PETIT AXE)
+ AXEC = DEMI GRAND AXE FISSURE
+ AZIM = POSITION AZIMUTALE DU CENTRE DE LA FISSURE
+ POS = POSITION EN PEAU (EXTERNE OU INTERNE)
+ SF = ABCISSE CURVILIGNE LONGITUDINALE DU CENTRE DE LA FISSURE
+ DSF = BOOLEEN EXPRESSION POSITION CENTRE FISSURE
+ BETA = POSITION ANGULAIRE DU CENTRE DE LA FISSURE
+ ORIEN = ORIENTATION DE LA FISSURE
+
+ -----------------DONNEES RENVOYEES-----------------------
+
+ AXEAP = PROFONDEUR DE LA FISSURE (PETIT AXE) SUR LA PLAQUE
+ AXECP = LONGUEUR DE LA FISSURE (GRAND AXE) SUR LA PLAQUE
+ SFP = ABCISSE CURVILIGNE LONGITUDINALE CENTRE FISSURE
+ SUR LA PLAQUE
+
+ """
+ from Utilitai import funct_root
+ echo_mess=['MACR_ASCOUF_MAIL ASCFIS \n',]
+ if POS=='DEB_INT':
+ if (AZIM>=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])<EPS :
+ YI=-(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.
+ YS=MCL_SOUS_EPAIS[bid[1]-1].ILONP-(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.
+ if fabs(bid[0]-ALPHAR*RC)<EPS :
+ YI=ALPHAR*RC-(MCL_SOUS_EPAIS[bid[1]-1].ILONP-(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.)
+ YS=ALPHAR*RC+(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.
+ if YI<(-LTCHAR):
+ 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'%(-1*LTCHAR)
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if YS>(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]<COORXD[l] and BG[j]>=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<pi*RM) :
+#
+# le centre sous-ep est dans la zone flanc droit/extrados/flanc
+# gauche, on preleve pi*RM a droite de la sous-epaisseur
+#
+# zone (centre sous-ep , bord droit)
+#
+ BG.append(ssep.ISCP)
+ BG.append(ssep.ISCP+ssep.ICIRP/2.)
+ BD.append(ssep.ISCP+ssep.ICIRP/2.)
+ BD.append(ssep.ISCP+pi*RM)
+ INDBG.append(0)
+ INDBG.append(1)
+ INDBD.append(0)
+ INDBD.append(0)
+ DNX.append(ssep.IDENC)
+ DNX.append(0)
+ DNX.append(DERAFC)
+ DNX.append(0)
+ INDSEX.append(1)
+ INDSEX.append(0)
+ elif (ssep.ISCP+pi*RM==2.*pi*RM) :
+#
+# sous-ep axisymetrique : on preleve pi*RM a droite
+#
+# zone (centre sous-ep , bord droit)
+#
+ BG.append(ssep.ISCP)
+ BD.append(ssep.ISCP+ssep.ICIRP/2.)
+ INDBG.append(0)
+ INDBD.append(0)
+ DNX.append(ssep.IDENC)
+ DNX.append(0)
+ INDSEX.append(1)
+ INDSEX.append(0)
+ else :
+#
+# le centre sous-ep est dans la zone flanc gauche/intrados/flanc
+# droit : on preleve pi*RM a gauche de la sous-epaisseur
+#
+# zone (centre -pi*RM, bord gauche)
+#
+ BG.append(ssep.ISCP-pi*RM)
+ BG.append(ssep.ISCP-ssep.ICIRP/2.)
+ BD.append(ssep.ISCP-ssep.ICIRP/2.)
+ BD.append(ssep.ISCP)
+ INDBG.append(0)
+ INDBG.append(0)
+ INDBD.append(1)
+ INDBD.append(0)
+ DNX.append(DERAFC)
+ DNX.append(0)
+ DNX.append(ssep.IDENC)
+ DNX.append(0)
+ INDSEX.append(0)
+ INDSEX.append(1)
+
+
+ echo_mess.append( '\n')
+ echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. CIRCONF. :\n')
+ echo_mess.append( '--------------------------------------------- \n')
+ EPS=0.000000000001
+ NZONEX=len(BG)
+ for j in range(NZONEX) :
+ if ( fabs(BG[j]) < EPS ) and ( fabs(BD[j]) < EPS ) :
+ echo_mess.append( 'ZONE NO %d BORNE GAUCHE = %.2f'\
+ ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR \n'%(j+1,BG[j],BD[j]) )
+ else:
+ echo_mess.append( 'ZONE NO %d BORNE GAUCHE = %.2f \n'\
+ ' / BORNE DROITE = %.2f \n'%(j+1,BG[j],BD[j]))
+
+
+# tri des donnees sous-epaisseurs en axial
+ TAMPON,IORDO1,IORDO2,COORYI,COORYS=ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM)
+
+# calcul des zones en axial:
+ BI = []
+ BS = []
+ INDBI = []
+ INDBS = []
+ DNY = []
+ INDSEY = []
+ 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)
+ echo_mess.append( '\n')
+ echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. : \n')
+ echo_mess.append( '----------------------------------------------- \n')
+ NZONEY=len(BI)
+ for j in range(NZONEY) :
+ if ( fabs(BI[j]) < EPS ) and ( fabs(BS[j]) < EPS ) :
+ echo_mess.append( 'ZONE NO %d <> 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<NBSEP :
+# cas ou il ne reste plus que des centres a caser
+ MING = MIND
+ TYPG = TYPD
+ NUMG = NUMD
+ MIND = 2.*pi*RM+1
+ elif TYPD==2 :
+# cas ou la borne droite de la zone precedente etait un centre
+ MING = MIND
+ TYPG = TYPD
+ NUMG = NUMD
+ MIND = TAMPON[j-1][0]
+ if fmod(IABSC2[j-1],2):
+ TYPD = 0
+ NUMD = IABSC1[IABSC2[j-1]/2]
+ else:
+ TYPD = 1
+ NUMD = IABSC1[IABSC2[j-1]/2-1]
+ j=j-1
+ else:
+ if j>= 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)<EPSI :
+ if j==2*NBSEP:break
+ else:continue
+ if j>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])<EPSI: NZONEX = NZONEX-1
+
+ echo_mess.append( '\n')
+ echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. CIRCONF. : \n')
+ echo_mess.append( '----------------------------------------------- \n')
+ for j in range(NZONEX) :
+ if INDBG[j]==0 and INDBD[j]==0 :
+ echo_mess.append( 'ZONE NO %d <> 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)<EPSI:
+ if j==2*NBSEP:break
+ else:continue
+
+ while go50:
+ i=ICE
+ if i<=NBSEP:
+# recherche des centres a intercaler
+ INDC=IORDO1[i-1]
+ if i>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)<EPSI:
+ ICE=ICE+1
+ continue
+ if MCL_SOUS_EPAIS[INDC-1].ISLP<MINI:
+# le centre est la nouvelle borne inf.
+ j=j-1
+ MINS = MINI
+ TYPS = TYPI
+ NUMS = NUMI
+ MINI = MCL_SOUS_EPAIS[INDC-1].ISLP
+ TYPI = 2
+ NUMI = INDC
+ ICE = ICE+1
+ elif MCL_SOUS_EPAIS[INDC-1].ISLP<MINS:
+# le centre est la nouvelle borne sup.
+ MINS = MCL_SOUS_EPAIS[INDC-1].ISLP
+ TYPS = 2
+ NUMS = INDC
+ ICE = ICE+1
+ continue
+ else:pass
+ NZONEY=NZONEY+1
+#
+# code d'intervalles de zone
+# 0 0 = ZONE SOUS-EPAISSEUR
+# 0 1 = SOUS-EPAISSEUR A SUPERIEURE DE LA ZONE
+# 1 0 = SOUS-EPAISSEUR A INFERIEURE DE LA ZONE
+# 1 1 = SOUS EPAISSEUR A SUPERIEURE ET A INFERIEURE DE LA ZONE
+#
+# cas ou la premiere zone ne commence pas au bord de la plaque
+ if MINI>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<ALPHAR*RC:
+ NZONEY=NZONEY+1
+ BI.append(MINS)
+ BS.append(ALPHAR*RC)
+ if TYPS==0 or TYPS==2:
+ INDBI.append(0)
+ INDBS.append(0)
+ DNY.append(MCL_SOUS_EPAIS[NUMS-1].IDENL)
+ DNY.append(0)
+ INDSEY.append(NUMS)
+ elif TYPS==1:
+ INDBI.append(1)
+ INDBS.append(0)
+ DNY.append(DERAFL)
+ DNY.append(0)
+ INDSEY.append(0)
+ else:pass
+
+ echo_mess.append( '\n')
+ echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. :\n')
+ echo_mess.append( '----------------------------------------------- \n')
+
+ for j in range(NZONEY) :
+ if INDBI[j]==0 and INDBS[j]==0 :
+ echo_mess.append( 'ZONE NO %d <> 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<ceil(x)-x<=0.5:
+ return int(ceil(x))
+ else:
+ return int(floor(x))
+
+# conversion des densites de raffinement des embout en degres par rapport
+# a l'angle du coude
+ RTMP=nint(LTCHAR/DELTAY)*DELTAY/4.
+ DENSTU = RTMP*360./(2.*pi*RC)
+ DENSGV = DENSTU
+ NZT=0
+ NZGV=0
+
+ texte='* DEBUT PARAMETRES UTILISATEUR \n'
+ texte=texte+'*\n'
+ texte=texte+'* parametres generaux\n'
+ texte=texte+'*\n'
+ texte=texte+'rm = '+str(RM) +POIVIR
+ texte=texte+'rc = '+str(RC) +POIVIR
+ texte=texte+'alphac = '+str(ALPHA) +POIVIR
+ texte=texte+'epc = '+str(EP) +POIVIR
+ texte=texte+'pirad = '+str(pi) +POIVIR
+ texte=texte+'lgv = '+str(LTCLIM) +POIVIR
+ texte=texte+'lt = '+str(LTCHAR) +POIVIR
+ texte=texte+'lcoude = '+str(ALPHA*pi/180.*RC) +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
+ texte=texte+'nxep = '+str(NBEP) +POIVIR
+ texte=texte+'nzt = '+str(NZT) +POIVIR
+ texte=texte+'nzgv = '+str(NZGV) +POIVIR
+ texte=texte+'daxhtu = '+str(DENSTU) +POIVIR
+ texte=texte+'daxhgv = '+str(DENSGV) +POIVIR
+ texte=texte+'*\n'
+
+ texte=texte+'* Zones couvertes en circonference\n'
+ texte=texte+'*\n'
+ for j in range(NZONEX):
+ texte=texte+'bg .' +str(j+1).rjust(23)+' = '+str(BG[j]-pi*RM) +POIVIR
+ texte=texte+'bd .' +str(j+1).rjust(23)+' = '+str(BD[j]-pi*RM) +POIVIR
+ texte=texte+'indbg .'+str(j+1).rjust(23)+' = '+str(INDBG[j]) +POIVIR
+ texte=texte+'indbd .'+str(j+1).rjust(23)+' = '+str(INDBD[j]) +POIVIR
+ texte=texte+'deny .' +str(j+1).rjust(23)+' = '+str(DNX[2*j]) +POIVIR
+ texte=texte+'nbely .'+str(j+1).rjust(23)+' = '+str(int(DNX[2*j+1])) +POIVIR
+ texte=texte+'*\n'
+
+ texte=texte+'* Zones couvertes longitudinalement\n'
+ texte=texte+'*\n'
+ for j in range(NZONEY):
+ texte=texte+'bi .' +str(j+1).rjust(23)+' = '+str(BI[j]) +POIVIR
+ texte=texte+'bs .' +str(j+1).rjust(23)+' = '+str(BS[j]) +POIVIR
+ texte=texte+'indbi .'+str(j+1).rjust(23)+' = '+str(INDBI[j]) +POIVIR
+ texte=texte+'indbs .'+str(j+1).rjust(23)+' = '+str(INDBS[j]) +POIVIR
+ texte=texte+'denz .' +str(j+1).rjust(23)+' = '+str(DNY[2*j]) +POIVIR
+ texte=texte+'nbelz .'+str(j+1).rjust(23)+' = '+str(int(DNY[2*j+1])) +POIVIR
+ texte=texte+'*\n'
+
+ texte=texte+'* Caracteristiques des sous-epaisseurs\n'
+ texte=texte+'*\n'
+ issep=0
+ for ssep in MCL_SOUS_EPAIS:
+ issep=issep+1
+ texte=texte+'axecir .' +str(issep).rjust(23)+' = '+str(ssep.ICIRP) +POIVIR
+ texte=texte+'axelon .' +str(issep).rjust(23)+' = '+str(ssep.ILONP) +POIVIR
+ texte=texte+'prof .' +str(issep).rjust(23)+' = '+str(ssep['PROFONDEUR'])+POIVIR
+ texte=texte+'coory .' +str(issep).rjust(23)+' = '+str(ssep.ISCP-pi*RM) +POIVIR
+ texte=texte+'coorz .' +str(issep).rjust(23)+' = '+str(ssep.ISLP) +POIVIR
+ texte=texte+'posit .' +str(issep).rjust(23)+" = '"+str(ssep['SOUS_EPAIS'].lower())+"'"+POIVIR
+ texte=texte+'axelonc .'+str(issep).rjust(23)+' = '+str(ssep['AXE_LONGI']) +POIVIR
+ if ssep['POSI_CURV_LONGI']!=None:
+ texte=texte+'coorzc .'+str(issep).rjust(23)+' = '+str(ssep['POSI_CURV_LONGI'])+POIVIR
+ else:
+ DZC=ssep.BETA*pi*(RC+(RM+EP/2.)*cos(pi/2.))/180.
+ texte=texte+'coorzc .'+str(issep).rjust(23)+' = '+str(DZC)+POIVIR
+ if ssep['TYPE']=='AXIS':
+ texte=texte+'axisym .'+str(issep).rjust(23)+" = 'oui'"+POIVIR
+ else:
+ texte=texte+'axisym .'+str(issep).rjust(23)+" = 'non'"+POIVIR
+ if ssep['EMPREINTE'] == 'OUI':
+ texte=texte+'sousep .'+str(issep).rjust(23)+" = 'oui'"+POIVIR
+ else:
+ texte=texte+'sousep .'+str(issep).rjust(23)+" = 'non'"+POIVIR
+ texte=texte+'*\n'
+
+ texte=texte+'* Caracteristique de sur-epaisseur\n'
+ texte=texte+'surep = '+str(SUREP) +POIVIR
+ texte=texte+'* \n'
+ texte=texte+'* FIN PARAMETRES UTILISATEUR\n'
+ fpgib=open('fort.71','w')
+ fpgib.write(texte)
+ fpgib.close()
+
+
+################################################################################
+################################################################################
+################################################################################
+
+# ------------------------------------------------------------------------------
+def write_file_pgib_ASCSP2(MCL_SOUS_EPAIS,NLX,NLY):
+
+ POIVIR = ' ;\n'
+ texte='*\n'
+ texte=texte+'coude extube bord1 clgv bord2 peauext peauint placoude platube\n'
+ texte=texte+'plagv longi circo centr bou1 bou3 ligmed ligtub liggv lig45\n'
+ texte=texte+'ligcir liglon bordtu\n'
+ texte=texte+'= PLAQSEP bg bd bi bs indbg indbd indbi indbs rm rc\n'
+ texte=texte+'alphac pirad epc lt lgv coory coorz axecir axelon prof zsyme posit\n'
+ texte=texte+'lcoude nxep sousep deny nbely denz nbelz axelonc coorzc axisym\n'
+ texte=texte+'daxhtu daxhgv nzt nzgv zcoude surep'+POIVIR
+ texte=texte+'fdromi = ligmed . 1'+POIVIR
+ texte=texte+'exdrmi = ligmed . 2'+POIVIR
+ texte=texte+'extrmi = ligmed . 3'+POIVIR
+ texte=texte+'exgami = ligmed . 4'+POIVIR
+ texte=texte+'fgaumi = ligmed . 5'+POIVIR
+ texte=texte+'ingami = ligmed . 6'+POIVIR
+ texte=texte+'intrmi = ligmed . 7'+POIVIR
+ texte=texte+'indrmi = ligmed . 8'+POIVIR
+ texte=texte+'fdrotu = ligtub . 1'+POIVIR
+ texte=texte+'exdrtu = ligtub . 2'+POIVIR
+ texte=texte+'extrtu = ligtub . 3'+POIVIR
+ texte=texte+'exgatu = ligtub . 4'+POIVIR
+ texte=texte+'fgautu = ligtub . 5'+POIVIR
+ texte=texte+'ingatu = ligtub . 6'+POIVIR
+ texte=texte+'intrtu = ligtub . 7'+POIVIR
+ texte=texte+'indrtu = ligtub . 8'+POIVIR
+ texte=texte+"si (ega zsyme 'entier')"+POIVIR
+ texte=texte+' fdrogv = liggv . 1'+POIVIR
+ texte=texte+' exdrgv = liggv . 2'+POIVIR
+ texte=texte+' extrgv = liggv . 3'+POIVIR
+ texte=texte+' exgagv = liggv . 4'+POIVIR
+ texte=texte+' fgaugv = liggv . 5'+POIVIR
+ texte=texte+' ingagv = liggv . 6'+POIVIR
+ texte=texte+' intrgv = liggv . 7'+POIVIR
+ texte=texte+' indrgv = liggv . 8'+POIVIR
+ texte=texte+'finsi'+POIVIR
+ texte=texte+'*\n'
+
+ text2=write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY)
+ texte=texte+text2
+
+ texte=texte+'*\n'
+ texte=texte+'*oeil = 10000. 0. 0.' +POIVIR
+ texte=texte+'*trac oeil cach coude'+POIVIR
+ texte=texte+'*opti donn 5' +POIVIR
+ texte=texte+'p1 = 0. 0. (-1.*lt)'+POIVIR
+ texte=texte+'p2 = 0. 0. (coor 3 bou3)'+POIVIR
+ texte=texte+'ma = coude et p1 et p2'+POIVIR
+ texte=texte+'sort ma'+POIVIR
+ texte=texte+'neu = nbno ma'+POIVIR
+ texte=texte+"mess 'nombre de noeuds : 'neu"+POIVIR
+ texte=texte+"opti sauv form 'fort.8'"+POIVIR
+ texte=texte+'sauv form ma'+POIVIR
+ texte=texte+'fin'+POIVIR
+ fpgib=open('fort.71','a')
+ fpgib.write(texte)
+ fpgib.close()
+
+################################################################################
+################################################################################
+################################################################################
+
+# ------------------------------------------------------------------------------
+def write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP,SUREP,
+ LTCLIM,LTCHAR,NBEP,loc_datg):
+
+ NY=20
+ CZ=ALPHA*RC*pi/180.
+ NZC=int((ALPHA+0.00001)/5.)
+ DELTAY=2.*pi*RM/20
+ DELTAZ=CZ/NZC
+ DENEXT=int(LTCHAR/DELTAY)*DELTAY/4.
+ NZT=0
+ NZGV=0
+
+ if TYPBOL!=None:
+ if TYPBOL=='CUVE' : TYPEMB = 'typcuv'
+ if TYPBOL=='GV' : TYPEMB = 'typegv'
+ if TYPBOL=='ASP_MPP' : TYPEMB = 'typapp'
+ else:
+ TYPEMB =' '
+
+ POIVIR = ' ;\n'
+ texte='* DEBUT PARAMETRES UTILISATEUR\n'
+ texte=texte+'*\n'
+ texte=texte+'* Parametres generaux\n'
+ texte=texte+'*\n'
+ texte=texte+'nivmag = '+str(NIVMAG) +POIVIR
+ texte=texte+'option dime 3 elem '+TYPELE+' nive nivmag echo 0'+POIVIR
+ texte=texte+'rm = '+str(RM) +POIVIR
+ texte=texte+'rc = '+str(RC) +POIVIR
+ texte=texte+'alphac = '+str(ALPHA) +POIVIR
+ texte=texte+'epc = '+str(EP) +POIVIR
+ texte=texte+'surep = '+str(SUREP) +POIVIR
+ texte=texte+'lgv = '+str(LTCLIM) +POIVIR
+ texte=texte+'lt = '+str(LTCHAR) +POIVIR
+ texte=texte+"typembou = '"+TYPEMB+"'" +POIVIR
+ texte=texte+'nx = '+str(NBEP) +POIVIR
+ texte=texte+'ny = '+str(NY) +POIVIR
+ texte=texte+"pos = 'bidon'" +POIVIR
+ texte=texte+'l1 = 0.' +POIVIR
+ texte=texte+'lbloc = 0.' +POIVIR
+ texte=texte+'crit = 0.0001' +POIVIR
+ texte=texte+'crit2 = 0.01' +POIVIR
+ texte=texte+'epsit = 1.e-3' +POIVIR
+ texte=texte+'pirad = '+str(pi) +POIVIR
+ texte=texte+'nzc = '+str(NZC) +POIVIR
+ texte=texte+'teta_f = '+str(pi/2.) +POIVIR
+ texte=texte+'zpp31 = '+str(CZ) +POIVIR
+ texte=texte+'daxbtu = '+str(DENEXT) +POIVIR
+ texte=texte+'daxhtu = '+str(DELTAZ) +POIVIR
+ texte=texte+'daxbgv = '+str(DELTAZ) +POIVIR
+ texte=texte+'daxhgv = '+str(DENEXT) +POIVIR
+ texte=texte+'nzt = '+str(NZT) +POIVIR
+ texte=texte+'nzgv = '+str(NZGV) +POIVIR
+ texte=texte+'*\n'
+ texte=texte+'* FIN PARAMETRES UTILISATEUR\n'
+ texte = texte + open(os.path.join(loc_datg, 'ascouf_regl_v1.datg'), 'r').read()
+ fdgib=open(nomFichierDATG,'w')
+ fdgib.write(texte)
+ fdgib.close()
+
+################################################################################
+################################################################################
+################################################################################
+# ------------------------------------------------------------------------------
+def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
+ SOUS_EPAIS_COUDE,SOUS_EPAIS_MULTI,
+ FISS_COUDE,IMPRESSION,INFO,**args):
+ """
+ Ecriture de la macro MACR_ASCOUF_MAIL
+ """
+ from Accas import _F
+ import types
+ import aster
+
+ 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')
+ DEFI_FICHIER =self.get_cmd('DEFI_FICHIER')
+ IMPR_RESU =self.get_cmd('IMPR_RESU')
+
+# La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+
+ TYPELE = TYPE_ELEM
+ NIVMAG = EXEC_MAILLAGE['NIVE_GIBI']
+ PRECIS = 0.01
+ CRITER = 'RELATIF'
+ CAR3 = ('IFDRO','IEXDR','IEXTR','IEXGA','IFGAU','IINGA','IINTR','IINDR')
+ CAR4 = ('NOFDRO','NOEXDR','NOEXTR','NOEXGA','NOFGAU','NOINGA','NOINTR','NOINDR')
+ CAR5 = ('NEFDRO','NEEXDR','NEEXTR','NEEXGA','NEFGAU','NEINGA','NEINTR','NEINDR')
+ CAR6 = ('FDRO','EXDR','EXTR','EXGA','FGAU','INGA','INTR','INDR')
+ SECT = ('MI','TU','GV')
+
+#
+################################################################################
+# --- caracteristiques du coude ---
+################################################################################
+#
+ GEOM =COUDE['TRANSFORMEE']
+ ALPHA =COUDE['ANGLE']
+ RC =COUDE['R_CINTR']
+ LTCHAR =COUDE['L_TUBE_P1']
+ LTCLIM =COUDE['L_TUBE_P2']
+ NBEP =COUDE['NB_ELEM_EPAIS']
+ SYME =COUDE['SYME']
+ SUREP =0.0
+ TYPBOL = None
+#
+ if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' :
+ SUREP=COUDE['SUR_EPAIS']
+ TYPBOL =COUDE['BOL_P2']
+ DEXT = COUDE['DEXT']
+ EP1 = COUDE['EPAIS']
+ EP2 = EP1
+ EPI = 0.0
+ TETA1 = 0.0
+ TETA2 = 0.0
+ LTRAN = 0.0
+ NBTRAN = 0
+ else:
+ NBTRAN = 1
+ if COUDE['SYME']!='ENTIER':
+ message= ' les quart et demi structure \n'
+ message=message+' ne peuvent etre realisees \n'
+ message=message+' sur un modele comportant une transition \n'
+ message=message+' d epaisseur \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+#
+ DEXT = COUDE['DEXT_T1']
+ EP1 = COUDE['EPAIS_T1']
+ EP2 = COUDE['EPAIS_T2']
+ TETA1 = COUDE['ANGL_TETA1']
+ TETA2 = 0.0
+ EPI = 0.0
+ if COUDE['ANGL_TETA2']!=None :
+ NBTRAN = 2
+ TETA2 = COUDE['ANGL_TETA2']
+ EPI = COUDE['EPAIS_TI']
+#
+ if COUDE['ABSC_CURV_TRAN']!=None :
+ LTRAN = COUDE['ABSC_CURV_TRAN']
+ else :
+ LTRAN = COUDE['POSI_ANGU_TRAN']* RC * pi / 180.0
+#
+ RM = (DEXT-EP1)/2.0
+ RM2 = RM + (EP2-EP1)/2.0
+ R1 = RC
+ R2 = RM
+ E = EP1
+#
+ if COUDE['SYME']!='ENTIER' and (LTCHAR!=LTCLIM) :
+ message= ' les deux embouts doivent etre \n'
+ message=message+' de meme longueur pour les cas de symetrie \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+#
+ LAMOR = 3.0/2.0 * sqrt( RM*RM*RM / EP1)
+ if LTCHAR<LAMOR :
+ message= ' longueur d embout P1 inferieure \n'
+ message=message+' a la longueur d amortissement = %.2f \n'%LAMOR
+ UTMESS('A', "MACR_ASCOUF_MAIL", message)
+#
+ LAMOR = 3.0/2.0 * sqrt( RM2*RM2*RM2 / EP2)
+ if LTCLIM<LAMOR :
+ message= ' longueur d embout P2 inferieure \n'
+ message=message+' a la longueur d amortissement = %.2f \n'%LAMOR
+ UTMESS('A', "MACR_ASCOUF_MAIL", message)
+#
+ if TYPBOL!=None:
+ if TYPBOL[:1]=='GV' :
+ message= ' la condition aux limites raccord \n'
+ message=message+' 3d-poutre appliquee avec la macro de calcul \n '
+ message=message+' ascouf n est pas licite avec un embout \n'
+ message=message+' de type conique \n'
+ UTMESS('A', "MACR_ASCOUF_MAIL", message)
+#
+################################################################################
+# --- caracteristiques de la fissure ---
+################################################################################
+#
+ if FISS_COUDE!=None:
+ if NBEP!=3:
+ message= ' le nombre d elements dans l epaisseur \n'
+ message=message+' du coude n est pas parametrable pour \n'
+ message=message+' un coude avec fissure \n'
+ message=message+' mot-cle NB_ELEM_EPAIS ignore \n'
+ UTMESS('A', "MACR_ASCOUF_MAIL", message)
+ FPROF = FISS_COUDE['PROFONDEUR']
+ FAXI = FISS_COUDE['AXIS']
+ if FAXI=='NON' and FISS_COUDE['LONGUEUR']==None :
+ message= ' pour les fissures non axisymetriques \n'
+ message=message+' la longueur doit etre specifiee \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if FAXI=='OUI' and FISS_COUDE['LONGUEUR']!=None :
+ message= ' la fissure est axisymetrique : on ne \n'
+ message=message+' tient pas compte de la longueur specifiee \n'
+ UTMESS('A', "MACR_ASCOUF_MAIL", message)
+ if FISS_COUDE['LONGUEUR']!=None : FLONG = FISS_COUDE['LONGUEUR']
+ if FAXI=='OUI' :
+#### on prend une marge de securite a cause des modifs dans ascfis
+ FLONG = 2.0 * pi * (RM + EP1)
+ if FISS_COUDE['ABSC_CURV']!=None :
+ SF = FISS_COUDE['ABSC_CURV']
+ LDEFAU = SF
+ BETA = 0.0
+ else:
+ SF = 0.0
+ BETA = FISS_COUDE['POSI_ANGUL']
+ LDEFAU = BETA * RC * pi / 180.0
+ AZIM = FISS_COUDE['AZIMUT']
+ ORIEN = FISS_COUDE['ORIEN']
+ POSIT = FISS_COUDE['FISSURE']
+ NT = FISS_COUDE['NB_TRANCHE']
+ NS = FISS_COUDE['NB_SECTEUR']
+ NC = FISS_COUDE['NB_COURONNE']
+ if FISS_COUDE['RAYON_TORE']!=None : RC0 = FISS_COUDE['RAYON_TORE']
+ else : RC0 = 0.
+ if FISS_COUDE['COEF_MULT_RC2']!=None : RC2 = FISS_COUDE['COEF_MULT_RC2']
+ else : RC2 = 0.
+ if FISS_COUDE['COEF_MULT_RC3']!=None : RC3 = FISS_COUDE['COEF_MULT_RC3']
+ else : RC3 = 0.
+ EPSI = FISS_COUDE['ANGL_OUVERTURE']
+ OR = ORIEN
+ AZ = AZIM
+ POS = POSIT
+ DGAXEC = FLONG/2.0
+ DC = DGAXEC
+ if ORIEN!=90.0 and NBTRAN!=0 :
+ message= ' avec une transition d epaisseur \n'
+ message=message+' la fissure doit obligatoirement etre transverse \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if ORIEN!=90.0 and NBTRAN!=0 :
+ message= ' avec une transition d epaisseur \n'
+ message=message+' la fissure doit obligatoirement etre transverse \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if ORIEN!=90.0 and COUDE['SYME']!='ENTIER' :
+ message= ' l orientation de la fissure doit \n'
+ message=message+' etre transverse (orien : 90.) pour modeliser \n'
+ message=message+' un quart ou une demi structure \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if ORIEN!=90.0 and FAXI=='OUI' :
+ message= ' la fissure est axisymetrique : son \n'
+ message=message+' orientation doit etre transverse (ORIEN : 90.) \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+#
+################################################################################
+# --- caracteristiques des sous epaisseurs ---
+################################################################################
+#
+ isep = 0
+ MCL_SOUS_EPAIS = None
+ if SOUS_EPAIS_MULTI!=None : MCL_SOUS_EPAIS = SOUS_EPAIS_MULTI
+ if SOUS_EPAIS_COUDE!=None : MCL_SOUS_EPAIS = SOUS_EPAIS_COUDE
+ if SOUS_EPAIS_MULTI!=None and NBTRAN!=0 :
+ message= ' il ne peut pas y avoir plusieurs \n'
+ message=message+' sous-epaisseurs en meme temps qu une \n'
+ message=message+' transition d epaisseur : si une seule \n'
+ message=message+' sous-epaisseur utiliser sous_epais_coude \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if SOUS_EPAIS_COUDE!=None and FISS_COUDE!=None and NBTRAN!=0 :
+ message= ' avec une transition d epaisseur'
+ message=message+' il doit obligatoirement y avoir un defaut \n'
+ message=message+' soit une fissure soit une sous-epaisseur \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if MCL_SOUS_EPAIS!=None :
+ AZIM = 90.0
+ if MCL_SOUS_EPAIS.__class__.__name__ !='MCList' : MCL_SOUS_EPAIS=[MCL_SOUS_EPAIS,]
+ if len(MCL_SOUS_EPAIS)!=1 and COUDE['SYME']!='ENTIER' :
+ message= ' ne modeliser qu une seule \n'
+ message=message+' sous-epaisseur pour un quart ou demi-coude\n '
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ for ssep in MCL_SOUS_EPAIS :
+ isep=isep+1
+ if ssep['AXE_CIRC']!=None and ssep['TYPE']=='AXIS' :
+ message= ' vous ne pouvez declarer la sous- \n'
+ message=message+' epaisseur comme axisymetrique et donner \n'
+ message=message+' une taille d axe circonferentiel \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if ssep['AXE_CIRC']==None and ssep['TYPE']=='ELLI' :
+ message= ' vous devez donner une taille d axe \n'
+ message=message+' circonferentiel pour une sous-epaisseur de \n'
+ message=message+' type elliptique \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ if ssep['POSI_CURV_LONGI']!=None:
+ if ssep['POSI_CURV_LONGI']>(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 (LTRAN<LDEFAU) and (LTRAN>LCOUDE) :
+ 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 (EP2<EPI) :
+ message= ' valeur hors domaine de validite\n'
+ message=message+' l epaisseur apres la transition \n'
+ message=message+' doit etre inferieure a l epaisseur intermediaire \n'
+ UTMESS('F', "MACR_ASCOUF_MAIL", message)
+ LTRANF = LTRAN + (EPI-EP1)/(tan(TETA1))
+ LTRANF = LTRANF + (EP2-EPI)/(tan(TETA2))
+ 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<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
+
+
--- /dev/null
+#@ MODIF macr_aspic_calc_ops Macro DATE 09/05/2007 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 <BORNES> 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 (thermique)---
+#
+ 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, )
+#
+# --- commande AFFE_MATERIAU (mécanique)---
+#
+ if CHAM_MATER!=None : self.DeclareOut('affmth',CHAM_MATER)
+ indther=0
+ if ECHANGE!=None and RESU_THER!=None : indther=1
+ mcfact=[]
+ mcfac2=[]
+ for mater in mc_AFFE_MATERIAU :
+ if mater['TOUT']!=None :
+ mcfact.append(_F(TOUT =mater['TOUT' ],MATER=mater['MATER'],))
+ if indther==1:
+ mcfac2.append(_F(NOM_VARC='TEMP',TOUT='OUI',
+ EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF']),)
+ else:
+ mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],))
+ if indther==1:
+ mcfac2.append(_F(NOM_VARC='TEMP',GROUP_MA=mater['GROUP_MA'],
+ EVOL=resuth,NOM_CHAM='TEMP',VALE_REF=mater['TEMP_REF']),)
+ affmth = AFFE_MATERIAU( MAILLAGE = MAILLAGE ,
+ MODELE = modele ,
+ AFFE = mcfact,
+ AFFE_VARC= mcfac2,)
+#
+# --- 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 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 = affmth ,
+ 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
--- /dev/null
+#@ 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= ' <MACR_ASPIC_MAIL> 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 <LONGUEUR> 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="<MACR_ASPIC_MAIL> PROFONDEUR DE LA FISSURE DANS LE MAILLAGE : %.2f \n"%dist
+ aster.affiche('MESSAGE',texte)
+#
+ return ier
+
+
--- /dev/null
+#@ MODIF macr_cabri_calc_ops Macro DATE 09/05/2007 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.
+# ======================================================================
+
+
+
+
+def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER,
+ CHAR_MECA,RESU_THER,RESO_INTE,
+ AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON,
+ INCREMENT,CHAM_MATER,**args):
+ """
+ Ecriture de la macro MACR_CABRI_CALC
+ """
+
+ #################################################################
+ ########## PREPARATION MACRO
+ #################################################################
+
+ from Accas import _F
+
+ ier =0
+
+ # On met certains mots-clefs dans des variables locales pour les proteger
+ affemateriau = AFFE_MATERIAU
+ mail = MAILLAGE
+ resointe = RESO_INTE
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ # Le nom de la variable doit etre obligatoirement le nom de la commande
+ DEFI_GROUP = self.get_cmd('DEFI_GROUP')
+ AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU')
+ AFFE_MODELE = self.get_cmd('AFFE_MODELE')
+ MODI_MAILLAGE = self.get_cmd('MODI_MAILLAGE')
+ AFFE_CHAR_THER_F = self.get_cmd('AFFE_CHAR_THER_F')
+ AFFE_CHAR_THER = self.get_cmd('AFFE_CHAR_THER')
+ AFFE_CHAR_MECA_F = self.get_cmd('AFFE_CHAR_MECA_F')
+ AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA')
+ DEFI_FONCTION = self.get_cmd('DEFI_FONCTION')
+ DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL')
+ THER_LINEAIRE = self.get_cmd('THER_LINEAIRE')
+ STAT_NON_LINE = self.get_cmd('STAT_NON_LINE')
+
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # Le concept sortant (de type evol_noli) est nomme 'resumeca' dans
+ # le contexte de la macro
+ self.DeclareOut('resumeca',self.sd)
+ self.DeclareOut('mail',MAILLAGE)
+
+ #################################################################
+ ########## PREPARATION DES MODELES
+ #################################################################
+
+ # Definition des groupes
+ mail=DEFI_GROUP(reuse =mail,MAILLAGE=mail,
+ CREA_GROUP_NO=(
+ _F(GROUP_MA='M_GOU',NOM='N_M_GOU',),
+ _F(GROUP_MA='M_JOI',NOM='N_M_JOI',),
+ _F(GROUP_MA='SCBJ',NOM='N_SCBJ',),
+ _F(GROUP_MA='SCJB',NOM='N_SCJB',),
+ _F(GROUP_MA='M_L_AA',NOM='N_M_L_AA',),
+ _F(GROUP_MA='SCEG',NOM='N_SCEG',),
+ _F(GROUP_MA='SCGE',NOM='N_SCGE',),),)
+
+ # Creation du modele thermique
+ if MODELE_THER != None:
+ self.DeclareOut('modther',MODELE_THER)
+
+ modther=AFFE_MODELE(MAILLAGE=mail,
+ AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB',
+ 'M_L_AA','M_INT','M_L_SA','M_EXT','SCEG','SCGE',),
+ PHENOMENE='THERMIQUE',
+ MODELISATION='3D_DIAG',),
+ );
+
+ # Creation du modele mecanique
+ if MODELE_MECA != None:
+ self.DeclareOut('modmeca',MODELE_MECA)
+
+ modmeca = AFFE_MODELE(MAILLAGE=mail,
+ AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB',
+ 'M_L_AA','M_L_SA','SCEG','SCGE','M_INT','M_EXT',),
+ PHENOMENE='MECANIQUE',
+ MODELISATION='3D',),
+ );
+
+ # Orientation des mailles
+ mail=MODI_MAILLAGE(reuse =mail,
+ MAILLAGE=mail,
+ ORIE_PEAU_3D=(_F(GROUP_MA=('M_INT','M_TUB',),),
+ _F(GROUP_MA=('M_L_AA','M_JOI','M_L_SA',),),),
+ );
+
+
+
+ # Affectation des materiaux (thermique)
+ motscles={}
+ motscles['AFFE']=[]
+ for mat in affemateriau:
+ if mat['TOUT'] == None:
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
+ MATER = mat['MATER'],
+ 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',);
+
+ # Affectation des materiaux (mécanique)
+ if CHAM_MATER != None:
+ self.DeclareOut('_chamt',CHAM_MATER)
+ motscles={}
+ motscles['AFFE']=[]
+ motscles['AFFE_VARC']=[]
+ for mat in affemateriau:
+ if mat['TOUT'] == None:
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
+ MATER = mat['MATER'],) )
+ motscles['AFFE_VARC'].append(_F(NOM_VARC='TEMP',GROUP_MA=mat['GROUP_MA'],
+ EVOL=resuther,NOM_CHAM='TEMP',
+ VALE_REF = mat['TEMP_REF'],))
+ else:
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE'].append(_F(TOUT='OUI',
+ MATER = mat['MATER'],
+ TEMP_REF = mat['TEMP_REF'],) )
+ motscles['AFFE_VARC'].append(_F(NOM_VARC='TEMP',TOUT='OUI',
+ EVOL=resuther,NOM_CHAM='TEMP',
+ VALE_REF = mat['TEMP_REF'],))
+
+ _chamt = AFFE_MATERIAU(MAILLAGE=mail,
+ MODELE=modther,
+ AFFE=motscles['AFFE'],
+ AFFE_VARC=motscles['AFFE_VARC'],
+ )
+
+ #################################################################
+ ########## CONDITIONS AUX LIMITES MECANIQUES
+ #################################################################
+ # Recuperation des parametres mecaniques
+ if DEFI_CHAR_MECA != None:
+ if DEFI_CHAR_MECA['PRETENS']!=None:
+ f_pret = DEFI_CHAR_MECA['PRETENS']
+ else:
+ f_pret=DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.0,1.0,-0.02,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ if DEFI_CHAR_MECA['PRES_REP']!=None:
+ pre_int = DEFI_CHAR_MECA['PRES_REP']
+ else:
+ pre_int = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ if DEFI_CHAR_MECA['EFFE_FOND']!=None:
+ eff_fond = DEFI_CHAR_MECA['EFFE_FOND']
+ else:
+ eff_fond=DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ else:
+ f_pret=DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.0,1.0,-0.02,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+
+ pre_int = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+
+ eff_fond=DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ # Que sauver ?
+ if CHAR_MECA != None:
+ for m in CHAR_MECA:
+ if m['TYPE']=="BLOC_BAS_GOUJ":
+ self.DeclareOut('cl_me1',m['CHARGE'])
+ if m['TYPE']=="BLOC_BAS_JOINT":
+ self.DeclareOut('cl_me2',m['CHARGE'])
+ if m['TYPE']=="BLOC_LAT_ALES":
+ self.DeclareOut('cl_me3',m['CHARGE'])
+ if m['TYPE']=="BLOC_LAT_NALES":
+ self.DeclareOut('cl_me4',m['CHARGE'])
+ if m['TYPE']=="PLAN_TUBE":
+ self.DeclareOut('cl_me5',m['CHARGE'])
+ if m['TYPE']=="PRES_FLU":
+ self.DeclareOut('cl_me6',m['CHARGE'])
+ if m['TYPE']=="EFFET_FOND":
+ self.DeclareOut('cl_me7',m['CHARGE'])
+ if m['TYPE']=="CONT_JOINT":
+ self.DeclareOut('cl_me8',m['CHARGE'])
+ if m['TYPE']=="SERR_ECROU_1":
+ self.DeclareOut('cl_me10',m['CHARGE'])
+ if m['TYPE']=="SERR_ECROU_2":
+ self.DeclareOut('cl_me11',m['CHARGE'])
+
+
+ # Blocage bas du goujon
+ cl_me1=AFFE_CHAR_MECA(MODELE=modmeca,
+ DDL_IMPO=_F(GROUP_NO='N_M_GOU',
+ DZ=0.0,),
+ INFO=2,);
+ # Blocage bas du joint
+ cl_me2=AFFE_CHAR_MECA(MODELE=modmeca,
+ DDL_IMPO=_F(GROUP_NO='N_M_JOI',
+ DZ=0.0,),
+ INFO=2,);
+
+ # Blocage lateral, face laterale avec alesage
+ cl_me3=AFFE_CHAR_MECA(MODELE=modmeca,
+ DDL_IMPO=_F(GROUP_NO='N_M_L_AA',
+ DY=0.0,),
+ INFO=2,);
+
+ # Face laterale sans alesage
+ cl_me4=AFFE_CHAR_MECA(MODELE=modmeca,
+ FACE_IMPO=_F(GROUP_MA='M_L_SA',
+ DNOR=0.0,),
+ INFO=2,);
+
+ # Condition de planeite de la face de coupe du tube
+ cl_me5=AFFE_CHAR_MECA(MODELE=modmeca,
+ LIAISON_UNIF=_F(GROUP_MA='M_TUB',
+ DDL='DZ',),
+ INFO=2,);
+ # Pression due au fluide
+ cl_me6=AFFE_CHAR_MECA_F(MODELE=modmeca,
+ PRES_REP=_F(GROUP_MA='M_INT',
+ PRES=pre_int,),
+ INFO=2,);
+
+ # Effet de fond
+ cl_me7=AFFE_CHAR_MECA_F(MODELE=modmeca,
+ PRES_REP=_F(GROUP_MA='M_TUB',
+ PRES=eff_fond,),
+ INFO=2,);
+
+ # Contact zone de joint
+ cl_me8=AFFE_CHAR_MECA(MODELE=modmeca,
+ CONTACT=_F(GROUP_MA_MAIT='SCBJ',
+ GROUP_MA_ESCL='SCJB',),
+ INFO=2,);
+
+ # Serrage ecrou/goujon (pre-tensionnement)
+ cl_me10=AFFE_CHAR_MECA_F(MODELE=modmeca,
+ LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
+ GROUP_NO_2='N_SCGE',
+ DDL_1='DZ',
+ COEF_MULT_1=1.0,
+ DDL_2='DZ',
+ COEF_MULT_2=-1.0,
+ COEF_IMPO=f_pret,),
+ INFO=2,);
+
+ cl_me11=AFFE_CHAR_MECA(MODELE=modmeca,
+ LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
+ GROUP_NO_2='N_SCGE',
+ DDL_1='DX',
+ COEF_MULT_1=1.0,
+ DDL_2='DX',
+ COEF_MULT_2=-1.0,
+ COEF_IMPO=0.0,),
+ INFO=2,);
+
+
+ #################################################################
+ ########## CALCUL MECANIQUE
+ #################################################################
+ # Options de convergence
+ solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
+
+ # Elimination des valeurs "None"
+ for i in solveur.keys():
+ if solveur[i]==None : del solveur[i]
+
+
+ transi2 = DEFI_LIST_REEL(DEBUT=0.0,
+ INTERVALLE=(_F(JUSQU_A=1.0,
+ NOMBRE=2,),
+ _F(JUSQU_A=11.0,
+ NOMBRE=20,),
+ _F(JUSQU_A=600.0,
+ NOMBRE=20,),
+ _F(JUSQU_A=610.0,
+ NOMBRE=20,),
+ _F(JUSQU_A=1800.0,
+ NOMBRE=20,),
+ _F(JUSQU_A=7200.0,
+ NOMBRE=20,),),);
+
+ # Options d'incrementation
+ if INCREMENT != None:
+ if INCREMENT['LIST_INST'] != None:
+ listinst = INCREMENT['LIST_INST']
+ else:
+ listinst = transi2
+
+ increment=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste)
+
+ # Elimination des valeurs "None"
+ for i in increment.keys():
+ if increment[i]==None : del increment[i]
+
+ increment['LIST_INST'] = listinst
+
+ else:
+ listinst = transi2
+ increment =_F(
+ LIST_INST = listinst,
+ ),
+
+ # Options de Newton
+ newton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste)
+ # Elimination des valeurs "None"
+ for i in newton.keys():
+ if newton[i]==None : del newton[i]
+
+ # Options de convergence
+ convergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste)
+ # Elimination des valeurs "None"
+ for i in convergence.keys():
+ if convergence[i]==None : del convergence[i]
+
+ # Options de comportement
+ # Type incremental (=1) ou elastique (=0)
+ comp_incr = 0
+ if RELATION:
+ relation=RELATION
+ if relation == 'VMIS_ISOT_TRAC':
+ comp_incr = 1
+ else:
+ comp_incr = 0
+ else:
+ relation = 'ELAS'
+ comp_incr = 0
+
+
+ # Parametres du calcul
+ if comp_incr == 1:
+ resumeca=STAT_NON_LINE(MODELE=modmeca,
+ CHAM_MATER=_chamt,
+ EXCIT=(_F(CHARGE=cl_me1,),
+ _F(CHARGE=cl_me2,),
+ _F(CHARGE=cl_me3,),
+ _F(CHARGE=cl_me4,),
+ _F(CHARGE=cl_me5,),
+ _F(CHARGE=cl_me6,),
+ _F(CHARGE=cl_me7,),
+ _F(CHARGE=cl_me8,),
+ _F(CHARGE=cl_me10,),
+ _F(CHARGE=cl_me11,),
+ ),
+ SOLVEUR = solveur,
+ COMP_INCR =_F(RELATION=relation,RESO_INTE=resointe),
+ NEWTON = newton,
+ INCREMENT = increment,
+ CONVERGENCE = convergence,
+ TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
+ else:
+ resumeca=STAT_NON_LINE(MODELE=modmeca,
+ CHAM_MATER=_chamt,
+ EXCIT=(_F(CHARGE=cl_me1,),
+ _F(CHARGE=cl_me2,),
+ _F(CHARGE=cl_me3,),
+ _F(CHARGE=cl_me4,),
+ _F(CHARGE=cl_me5,),
+ _F(CHARGE=cl_me6,),
+ _F(CHARGE=cl_me7,),
+ _F(CHARGE=cl_me8,),
+ _F(CHARGE=cl_me10,),
+ _F(CHARGE=cl_me11,),
+ ),
+ SOLVEUR = solveur,
+ COMP_ELAS =_F(RELATION=relation,RESO_INTE=resointe),
+ NEWTON = newton,
+ INCREMENT = increment,
+ CONVERGENCE = convergence,
+ TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
+
+ return ier
+
--- /dev/null
+#@ MODIF macr_cabri_mail_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}
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
+############################################################################################
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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")
--- /dev/null
+#@ MODIF macr_lign_coupe_ops Macro DATE 22/05/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','SIGM_ELNO_DEPL'):
+ 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' and m['REPERE'] != 'CYLINDRIQUE' :
+
+ if m['REPERE'] == 'LOCAL':
+ # --- 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 and abs(cx2-cy2)<epsi and abs(cx3-cy3)<epsi) or \
+ (abs(cx1+cy1)<epsi and abs(cx2+cy2)<epsi and abs(cx3+cy3)<epsi)):
+ UTMESS('F', "MACR_LIGN_COUPE", "valeurs incorrectes pour VECT_Y: x colineaire a y")
+ if abs(cx1*cy1+cx2*cy2+cx3*cy3) > 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,cy2)
+ beta=-asin(cx3)
+ gamma=0.
+ alpha=alpha*180/pi
+ beta=beta*180/pi
+ gamma=gamma*180/pi
+
+ elif m['REPERE'] == 'UTILISATEUR':
+ alpha=m['ANGL_NAUT'][0]
+ beta =m['ANGL_NAUT'][1]
+ gamma=m['ANGL_NAUT'][2]
+
+ 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':
+ if m['REPERE'] == 'CYLINDRIQUE' :
+ 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:
+ 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)
+ else :
+ UTMESS("F","MACR_LIGN_COUPE","LE TYPE "+m['TYPE']+" N'EST PAS COHERENT AVEC LE CHOIX DU REPERE ( REPERE "+m['REPERE']+" ).")
+
+
+
+ if m['TYPE'][:5]=='GROUP' or m['TYPE']=='SEGMENT':
+
+ if m['TYPE'][:5]=='GROUP' and m['REPERE'] == 'LOCAL':
+ # determination du repère local (v1,v2,v3)
+ # ---------------------------------------
+ noma=mail.nom
+ collgrma=aster.getcolljev(noma.ljust(8)+'.GROUPEMA')
+ collcnx =aster.getcolljev(noma.ljust(8)+'.CONNEX')
+ coord =aster.getvectjev(noma.ljust(8)+'.COORDO .VALE')
+ cnom =aster.getvectjev(noma.ljust(8)+'.NOMNOE')
+
+ numa=collgrma[nomgrma.ljust(8)]
+ dictu={}
+# initialisations
+ for ima in numa:
+ n1=collcnx[ima][0]
+ n2=collcnx[ima][1]
+ dictu[n1]=[]
+ dictu[n2]=[]
+# determination du vecteur tangent (v1) + normalisation
+ for ima in numa:
+ vectu1=[]
+ vectu2=[]
+ n1=collcnx[ima][0]
+ n2=collcnx[ima][1]
+ ux=coord[3*(n2-1)]-coord[3*(n1-1)]
+ uy=coord[3*(n2-1)+1]-coord[3*(n1-1)+1]
+ vectu1.append(ux)
+ vectu1.append(uy)
+ vectu2.append(ux)
+ vectu2.append(uy)
+ if dime ==3 :
+ uz=coord[3*(n2-1)+2]-coord[3*(n1-1)+2]
+ vectu1.append(uz)
+ vectu2.append(uz)
+ dictu[n1].append(vectu1)
+ dictu[n2].append(vectu2)
+ for i in dictu:
+ if len(dictu[i])==2:
+ dictu[i][0][0]=dictu[i][0][0]+dictu[i][1][0]
+ dictu[i][0][1]=dictu[i][0][1]+dictu[i][1][1]
+ if dime==3:dictu[i][0][2]=dictu[i][0][2]+dictu[i][1][2]
+ del dictu[i][1]
+ for i in dictu:
+ if dime==2:
+ norm=sqrt(dictu[i][0][0]**2+dictu[i][0][1]**2)
+ dictu[i][0][0]=dictu[i][0][0]/norm
+ dictu[i][0][1]=dictu[i][0][1]/norm
+ elif dime==3:
+ norm=sqrt(dictu[i][0][0]**2+dictu[i][0][1]**2+dictu[i][0][2]**2)
+ dictu[i][0][0]=dictu[i][0][0]/norm
+ dictu[i][0][1]=dictu[i][0][1]/norm
+ dictu[i][0][2]=dictu[i][0][2]/norm
+# determination du vecteur normal (v2):
+# on projete VECT_Y sur le plan orthogonal au vecteur v1.
+# (ce vecteur normal est obtenu par 2 produits vectoriels successifs en 3D)
+ if dime==3:
+ norm=sqrt(m['VECT_Y'][0]**2+m['VECT_Y'][1]**2+m['VECT_Y'][2]**2)
+ tmpy=[m['VECT_Y'][0]/norm,m['VECT_Y'][1]/norm,m['VECT_Y'][2]/norm]
+ j=0
+ __resu=[None]*(len(dictu)+1)
+ __resu[0]=resin
+ for i in dictu:
+ j=j+1
+ vecty=[]
+ if dime==2:
+ vecty.append(-dictu[i][0][1])
+ vecty.append(dictu[i][0][0])
+ dictu[i].append(vecty)
+ elif dime==3:
+ # v3= v1 vectoriel vect_y
+ vectz=[]
+ vectz.append(dictu[i][0][1]*tmpy[2]-dictu[i][0][2]*tmpy[1])
+ vectz.append(dictu[i][0][2]*tmpy[0]-dictu[i][0][0]*tmpy[2])
+ vectz.append(dictu[i][0][0]*tmpy[1]-dictu[i][0][1]*tmpy[0])
+ normz=sqrt(vectz[0]**2+vectz[1]**2+vectz[2]**2)
+ vectz[0]=vectz[0]/normz
+ vectz[1]=vectz[1]/normz
+ vectz[2]=vectz[2]/normz
+ vecty.append(vectz[1]*dictu[i][0][2]-vectz[2]*dictu[i][0][1])
+ vecty.append(vectz[2]*dictu[i][0][0]-vectz[0]*dictu[i][0][2])
+ vecty.append(vectz[0]*dictu[i][0][1]-vectz[1]*dictu[i][0][0])
+ normy=sqrt(vecty[0]**2+vecty[1]**2+vecty[2]**2)
+ vecty[0]=vecty[0]/normy
+ vecty[1]=vecty[1]/normy
+ vecty[2]=vecty[2]/normy
+ dictu[i].append(vecty)
+ dictu[i].append(vectz)
+ cx1=dictu[i][0][0]
+ cx2=dictu[i][0][1]
+ cy1=dictu[i][1][0]
+ cy2=dictu[i][1][1]
+ if dime==3:
+ cx3=dictu[i][0][2]
+ cy3=dictu[i][1][2]
+ cz1=dictu[i][2][0]
+ cz2=dictu[i][2][1]
+ cz3=dictu[i][2][2]
+
+ # determination des angles nautiques (alpha,beta,gamma)
+ # ----------------------------------------------------
+ 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,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']=[]
+ noeu=dictu.keys()
+ motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM,NOEUD=cnom[noeu[j-1]-1]),)
+ 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),)
+ __resu[j]=MODI_REPERE(RESULTAT=__resu[j-1],**motscles)
+ __remodr=__resu[j]
+
+
+ motscles={}
+ motscles['MODI_CHAM']=[]
+ motscles['DEFI_REPERE']=[]
+ motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),)
+ if m['REPERE'] == 'CYLINDRIQUE' :
+ if dime ==3:
+ motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=m['ORIGINE'],AXE_Z=m['AXE_Z']),)
+ elif dime ==2:
+ motscles['DEFI_REPERE'].append(_F(REPERE='CYLINDRIQUE',ORIGINE=m['ORIGINE'],),)
+ __remodr=MODI_REPERE(RESULTAT=resin,**motscles)
+ elif m['REPERE'] == 'UTILISATEUR':
+ alpha=m['ANGL_NAUT'][0]
+ beta =m['ANGL_NAUT'][1]
+ gamma=m['ANGL_NAUT'][2]
+ 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)
+
+
+ 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)<eps:
+ UTMESS('F', "MACR_LIGN_COUPE", "definition incorrecte de COOR_ORIG et CENTRE")
+ x=pt2[0]+a*cos(anglr)-b*sin(anglr)
+ y=pt2[1]+b*cos(anglr)+a*sin(anglr)
+ return x,y
+ elif dimension==3:
+ c=pt1[2]-pt2[2]
+ r=sqrt(a**2+b**2+c**2)
+ if abs(r)<eps:
+ UTMESS('F', "MACR_LIGN_COUPE", "definition incorrecte de COOR_ORIG et CENTRE")
+ d1=dnor[0]
+ d2=dnor[1]
+ d3=dnor[2]
+ d=sqrt(d1**2+d2**2+d3**2)
+ if abs(r)<eps:
+ UTMESS('F', "MACR_LIGN_COUPE", "definition incorrecte de DNOR")
+ x=pt2[0]+a*cos(anglr)+sin(anglr)*(c*d2-b*d3)/d
+ y=pt2[1]+b*cos(anglr)+sin(anglr)*(a*d3-c*d1)/d
+ z=pt2[2]+c*cos(anglr)+sin(anglr)*(b*d1-a*d2)/d
+ return x,y,z
+########################################################################
+# determination de la distance min entre 2 points consécutifs de la ligne de coupe
+
+def dist_min_deux_points(mail):
+ from math import sqrt
+ import aster
+ nno=aster.getvectjev(mail.nom.ljust(8)+'.DIME')[0]
+ l_coor1=[]
+ l_coor2=[]
+ for i in range(nno-1):
+ l_coor1=aster.getvectjev(mail.nom.ljust(8)+'.COORDO .VALE',3*(i),3)
+ l_coor2=aster.getvectjev(mail.nom.ljust(8)+'.COORDO .VALE',3*(i+1),3)
+ d=sqrt( (l_coor1[0]-l_coor2[0])**2+(l_coor1[1]-l_coor2[1])**2+(l_coor1[2]-l_coor2[2])**2)
+ if i == 0 : dist=d
+ else : dist=min(d,dist)
+ return dist
+########################################################################
+# script PYTHON de creation d un maillage de ligne de coupe
+
+def crea_mail_lig_coup(dimension,lignes,groups,arcs):
+
+ import os,sys,copy
+ from Utilitai.Utmess import UTMESS
+
+# construction du maillage au format Aster des segments de lignes de coupe
+
+ nblig=len(lignes)
+ nbngr=len(groups)
+ nbarc=len(arcs)
+
+ resu='TITRE\n'
+ titre='Maillage ligne de coupe'+'\n'
+ resu=resu+'FINSF\n'
+ resu=resu+'COOR_'+str(dimension)+'D\n'
+ epsi=0.00000001
+
+# creation des noeuds
+ nbno=0
+ for i in range(nblig):
+ pt1 = lignes[i][0]
+ pt2 = lignes[i][1]
+ nbp_lig_coupe = lignes[i][2]
+ for j in range(nbp_lig_coupe):
+ if dimension==2:
+ x=pt1[0]+j*(pt2[0]-pt1[0])/(nbp_lig_coupe-1)
+ y=pt1[1]+j*(pt2[1]-pt1[1])/(nbp_lig_coupe-1)
+ nbno=nbno+1
+ noeud=' N'+str(nbno)+' '+str(x)+' '+str(y)+'\n'
+ resu=resu+noeud
+ elif dimension==3:
+ x=pt1[0]+j*(pt2[0]-pt1[0])/(nbp_lig_coupe-1)
+ y=pt1[1]+j*(pt2[1]-pt1[1])/(nbp_lig_coupe-1)
+ z=pt1[2]+j*(pt2[2]-pt1[2])/(nbp_lig_coupe-1)
+ nbno=nbno+1
+ noeud=' N'+str(nbno)+' '+str(x)+' '+str(y)+' '+str(z)+'\n'
+ resu=resu+noeud
+ for i in range(nbngr):
+ for pt in groups[i][1:]:
+ if dimension==2:
+ nbno=nbno+1
+ noeud=' N'+str(nbno)+' '+str(pt[0])+' '+str(pt[1])+'\n'
+ resu=resu+noeud
+ elif dimension==3:
+ nbno=nbno+1
+ noeud=' N'+str(nbno)+' '+str(pt[0])+' '+str(pt[1])+' '+str(pt[2])+'\n'
+ resu=resu+noeud
+ angles=[None]*nbarc
+ for i in range(nbarc):
+ pt1 = arcs[i][0]
+ pt2 = arcs[i][1]
+ nbp_lig_coupe = arcs[i][2]
+ angle = arcs[i][3]
+ if abs(angle-360.)<epsi: nbpt=nbp_lig_coupe+1
+ else : nbpt=nbp_lig_coupe
+ if dimension==3:dnor=arcs[i][4]
+ angles[i] = []
+ for j in range(nbp_lig_coupe):
+ anglj = j*angle/(nbpt-1)
+ angles[i].append(anglj)
+ if dimension==2:
+ nbno=nbno+1
+ x,y=crea_noeu_lig_coup(dimension,pt1,pt2,anglj,dnor=[])
+ noeud=' N'+str(nbno)+' '+str(x)+' '+str(y)+'\n'
+ resu=resu+noeud
+ elif dimension==3:
+ nbno=nbno+1
+ x,y,z=crea_noeu_lig_coup(dimension,pt1,pt2,anglj,dnor)
+ noeud=' N'+str(nbno)+' '+str(x)+' '+str(y)+' '+str(z)+'\n'
+ resu=resu+noeud
+ resu=resu+'FINSF\n'
+
+# creation des mailles
+ nbma=0
+ for i in range(nblig):
+ nbp_lig_coupe = lignes[i][2]
+ resu=resu+'SEG2\n'
+ for j in range(nbp_lig_coupe-1):
+ nbma=nbma+1
+ maille=' M'+str(nbma)+' N'+str(nbma+i)+' N'+str(nbma+1+i)+'\n'
+ resu=resu+maille
+ resu=resu+'FINSF\n'
+ for i in range(nbngr):
+ resu=resu+'SEG2\n'
+ for pt in groups[i][1:-1]:
+ nbma=nbma+1
+ maille=' M'+str(nbma)+' N'+str(nbma+nblig+i)+' N'+str(nbma+nblig+1+i)+'\n'
+ resu=resu+maille
+ resu=resu+'FINSF\n'
+ nprec=0
+
+ for i in range(nbarc):
+ nbp_lig_coupe = arcs[i][2]
+ angle = arcs[i][3]
+ resu=resu+'SEG2\n'
+ nbmai=nbma+nblig+nbngr+nprec+i+1
+ for j in range(nbp_lig_coupe-1):
+ nbma=nbma+1
+ maille=' M'+str(nbma)+' N'+str(nbma+nblig+nbngr+nprec+i)+' N'+str(nbma+nblig+nbngr+nprec+1+i)+'\n'
+ resu=resu+maille
+ if abs(angle-360.)<epsi:
+ nbma=nbma+1
+ maille=' M'+str(nbma)+' N'+str(nbma+nblig+nbngr+nprec+i)+' N'+str(nbmai)+'\n'
+ nprec=nprec-1
+ resu=resu+maille
+ resu=resu+'FINSF\n'
+
+# creation des groupes de mailles (1 par ligne de coupe)
+ nbma=0
+ for i in range(nblig):
+ resu=resu+'GROUP_MA\n'
+ resu=resu+' LICOU'+str(i+1)
+ nbp_lig_coupe = lignes[i][2]
+ for j in range(nbp_lig_coupe-1):
+ nbma=nbma+1
+ resu=resu+' M'+str(nbma)+'\n'
+ resu=resu+'\n'
+ resu=resu+'FINSF\n'
+ for i in range(nbngr):
+ resu=resu+'GROUP_MA\n'
+ resu=resu+groups[i][0]
+ nbp_lig_coupe = len(groups[i])-1
+ for j in range(nbp_lig_coupe-1):
+ nbma=nbma+1
+ resu=resu+' M'+str(nbma)+'\n'
+ resu=resu+'\n'
+ resu=resu+'FINSF\n'
+ arcgma=[]
+ for i in range(nbarc):
+ resu=resu+'GROUP_MA\n'
+ k=nblig+i
+ resu=resu+' LICOU'+str(k+1)
+ arcgma.append('LICOU'+str(k+1))
+ nbp_lig_coupe = arcs[i][2]
+ angle = arcs[i][3]
+ if abs(angle-360.)<epsi: nbpt=nbp_lig_coupe+1
+ else : nbpt=nbp_lig_coupe
+ for j in range(nbpt-1):
+ nbma=nbma+1
+ resu=resu+' M'+str(nbma)+'\n'
+ resu=resu+'\n'
+ resu=resu+'FINSF\n'
+ resu=resu+'FIN\n'
+
+ return resu,arcgma,angles,nbno
+
+
+########################################################################
+def macr_lign_coupe_ops(self,RESULTAT,CHAM_GD,UNITE_MAILLAGE,LIGN_COUPE,
+ NOM_CHAM,MODELE,**args):
+
+ """
+ Ecriture de la macro MACR_LIGN_COUPE
+ """
+ import os,string,types
+ from Accas import _F
+ from Noyau.N_utils import AsType
+ import aster,math
+ from Utilitai.UniteAster import UniteAster
+ from Utilitai.Utmess import UTMESS
+ ier=0
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE')
+ DEFI_GROUP =self.get_cmd('DEFI_GROUP')
+ AFFE_MODELE =self.get_cmd('AFFE_MODELE')
+ PROJ_CHAMP =self.get_cmd('PROJ_CHAMP')
+ POST_RELEVE_T =self.get_cmd('POST_RELEVE_T')
+ CREA_TABLE =self.get_cmd('CREA_TABLE')
+ MODI_REPERE =self.get_cmd('MODI_REPERE')
+ CREA_RESU =self.get_cmd('CREA_RESU')
+ CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE')
+
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ mcORDR={}
+
+ if RESULTAT != None:
+ if args['NUME_ORDRE'] != None :
+ mcORDR['NUME_ORDRE']=args['NUME_ORDRE']
+ elif args['LIST_ORDRE'] != None:
+ mcORDR['LIST_ORDRE']=args['LIST_ORDRE']
+ elif args['INST'] != None:
+ mcORDR['INST']=args['INST']
+ elif args['INST'] != None:
+ mcORDR['INST']=args['INST']
+ elif args['LIST_INST'] != None:
+ mcORDR['LIST_INST']=args['LIST_INST']
+ else :
+ mcORDR['TOUT_ORDRE']='OUI'
+
+ nomresu=RESULTAT.nom
+ l_modele=aster.getvectjev(nomresu.ljust(19)+'.MODL')
+ n_modele=string.strip(l_modele[0])
+ if n_modele=='' :
+ if MODELE==None:
+ UTMESS('F', "MACR_LIGN_COUPE", "nom du modele absent dans le concept resultat "+nomresu)
+ else : n_modele=MODELE.nom
+
+ elif CHAM_GD != None:
+ mcORDR['TOUT_ORDRE']='OUI'
+ if MODELE==None:
+ UTMESS('F', "MACR_LIGN_COUPE", "veuillez renseigner le MODELE si vous utilisez un CHAM_GD ")
+ else : n_modele=MODELE.nom
+ # récupération de la grandeur du champ
+ n_cham=CHAM_GD.nom
+ catagd=aster.getvectjev("&CATA.GD.NOMGD")
+ desc=aster.getvectjev(string.ljust(n_cham,19)+'.DESC')
+ if desc!= None:
+ nomgd=catagd[desc[0]-1]
+ else:
+ celd=aster.getvectjev(string.ljust(n_cham,19)+'.CELD')
+ nomgd=catagd[celd[0]-1]
+ # détermination du type de résultat à créer
+ if nomgd[:6] == 'TEMP_R' : TYPE_RESU='EVOL_THER'
+ elif nomgd[:6] == 'DEPL_R' : TYPE_RESU='EVOL_ELAS'
+ elif nomgd[:6] == 'SIEF_R' :
+ if NOM_CHAM[:4]=='SIGM':TYPE_RESU='EVOL_ELAS'
+ elif NOM_CHAM[:4]=='SIEF':TYPE_RESU='EVOL_NOLI'
+ # création d'un concept résultat à partir du champ CHAM_GD
+ __resuch=CREA_RESU(OPERATION='AFFE',
+ NOM_CHAM=NOM_CHAM, TYPE_RESU=TYPE_RESU,
+ AFFE=_F(CHAM_GD=CHAM_GD,INST=0.),)
+ RESULTAT=__resuch
+ l_mailla=aster.getvectjev(n_modele.ljust(8)+'.MODELE .NOMA')
+ n_mailla=string.strip(l_mailla[0])
+ dime=aster.getvectjev(n_mailla.ljust(8)+'.DIME')[5]
+ collgrma=aster.getcolljev(n_mailla.ljust(8)+'.GROUPEMA')
+ typma=aster.getvectjev(n_mailla.ljust(8)+'.TYPMAIL')
+ connex=aster.getcolljev(n_mailla.ljust(8)+'.CONNEX')
+ ltyma =aster.getvectjev("&CATA.TM.NOMTM")
+
+ lignes=[]
+ groups=[]
+ arcs=[]
+ minidim=dime
+
+ for m in LIGN_COUPE :
+ if m['TYPE'] =='SEGMENT' :
+ lignes.append((m['COOR_ORIG'],m['COOR_EXTR'],m['NB_POINTS']))
+ minidim=min(minidim,len(m['COOR_ORIG']),len(m['COOR_EXTR']))
+ if minidim!=dime:
+ UTMESS('F', "MACR_LIGN_COUPE", "dimensions de maillage et de coordonnees incoherentes")
+ elif m['TYPE'] =='ARC' :
+ minidim=min(minidim,len(m['COOR_ORIG']),len(m['CENTRE']))
+ if minidim!=dime:
+ UTMESS('F', "MACR_LIGN_COUPE", "dimensions de maillage et de coordonnees incoherentes")
+ if dime==2:
+ arcs.append((m['COOR_ORIG'],m['CENTRE'],m['NB_POINTS'],m['ANGLE'],))
+ elif dime==3:
+ if str(m['DNOR'])=='None':
+ UTMESS('F', "MACR_LIGN_COUPE", "le mot-clé 'DNOR' est obligatoire en 3D pour le type 'ARC'")
+ arcs.append((m['COOR_ORIG'],m['CENTRE'],m['NB_POINTS'],m['ANGLE'],m['DNOR']))
+ elif m['TYPE']=='GROUP_NO':
+ ngrno=m['GROUP_NO'].ljust(8).upper()
+ collgrno=aster.getcolljev(n_mailla.ljust(8)+'.GROUPENO')
+ if ngrno not in collgrno.keys() :
+ UTMESS('F', "MACR_LIGN_COUPE", "le group_no "+ngrno+" n est pas dans le maillage "+n_mailla)
+ grpn=collgrno[ngrno]
+ l_coor_group=[ngrno,]
+ for node in grpn:
+ l_coor_group.append(aster.getvectjev(n_mailla.ljust(8)+'.COORDO .VALE',3*(node-1),3))
+ groups.append(l_coor_group)
+ elif m['TYPE']=='GROUP_MA':
+ ngrma=m['GROUP_MA'].ljust(8).upper()
+ if ngrma not in collgrma.keys() :
+ UTMESS('F', "MACR_LIGN_COUPE", "le group_ma "+ngrma+" n est pas dans le maillage "+n_mailla)
+ grpm=collgrma[ngrma]
+ for ma in grpm:
+ if ltyma[typma[ma-1]-1][:3] != 'SEG' :
+ nomma=aster.getvectjev(n_mailla.ljust(8)+'.NOMMAI')
+ UTMESS('F', "MACR_LIGN_COUPE", "le group_ma "+ngrma+" contient la maille "+
+ nomma[ma-1]+"qui n'est pas de type SEG.")
+ __mailla=CREA_MAILLAGE(MAILLAGE= m['MAILLAGE'],)
+ __mailla=DEFI_GROUP( reuse=__mailla,MAILLAGE= __mailla,
+ CREA_GROUP_NO=_F(OPTION='NOEUD_ORDO',NOM=str(m['GROUP_MA']),GROUP_MA=m['GROUP_MA']),)
+ collgrno=aster.getcolljev(__mailla.nom.ljust(8)+'.GROUPENO')
+ grpn=collgrno[str(m['GROUP_MA']).ljust(8)]
+ l_coor_group=[ngrma,]
+ for node in grpn:
+ l_coor_group.append(aster.getvectjev(n_mailla.ljust(8)+'.COORDO .VALE',3*(node-1),3))
+ groups.append(l_coor_group)
+
+
+ if arcs!=[] and (lignes!=[] or groups!=[]) :
+ message = 'On ne peut pas combiner des lignes de coupes de type ARC avec des lignes de coupes SEGMENT ou GROUP_NO. \n'
+ UTMESS('F','MACR_LIGN_COUPE',message)
+
+
+ # Création du maillage des NB_POINTS segments entre COOR_ORIG et COOR_EXTR
+ # ainsi que des segments reliant les noeuds issus des group_no demandés
+ # par appel au script python crea_mail_lig_coup
+ # le maillage est ensuite recopié dans l unité logique UNITE_MAILLAGE
+
+ resu_mail,arcgma,angles,nbno=crea_mail_lig_coup(dime,lignes,groups,arcs)
+ UL = UniteAster()
+ nomFichierSortie = UL.Nom(UNITE_MAILLAGE)
+ fproc=open(nomFichierSortie,'w')
+ fproc.write(resu_mail)
+ fproc.close()
+ UL.EtatInit(UNITE_MAILLAGE)
+
+ # Lecture du maillage de seg2 contenant toutes les lignes de coupe
+ __macou=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,);
+
+ # distance min entre 2 points de la ligne de coupe (utile pour PROJ_CHAMP)
+ dmin=dist_min_deux_points(__macou)
+
+ motscles={}
+ iocc=1
+ motscles['CREA_GROUP_NO']=[]
+ for m in LIGN_COUPE :
+ if m['TYPE'] in ('GROUP_NO','GROUP_MA') :
+ motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=m[m['TYPE']].ljust(8).upper(),) )
+ else :
+ motscles['CREA_GROUP_NO'].append(_F(GROUP_MA='LICOU'+str(iocc),) )
+ iocc=iocc+1
+
+ __macou=DEFI_GROUP( reuse =__macou , MAILLAGE=__macou , **motscles );
+
+ if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') :
+ __mocou=AFFE_MODELE(MAILLAGE=__macou,
+ AFFE=_F(TOUT='OUI',
+ PHENOMENE='MECANIQUE',
+ MODELISATION='BARRE',),);
+ elif AsType(RESULTAT).__name__ in ('evol_ther',) :
+ __mocou=AFFE_MODELE(MAILLAGE=__macou,
+ AFFE=_F(TOUT='OUI',
+ PHENOMENE='THERMIQUE',
+ MODELISATION='PLAN',),);
+
+ motscles={}
+ motscles['VIS_A_VIS']=[]
+ motscles[mcORDR.keys()[0]]=mcORDR.values()[0]
+ if args['VIS_A_VIS']!=None:
+ for v in args['VIS_A_VIS']:
+ if v['GROUP_MA_1']!=None:
+ motscles['VIS_A_VIS'].append(_F(GROUP_MA_1 = v['GROUP_MA_1'],TOUT_2='OUI'),)
+ elif v['MAILLE_1']!=None:
+ motscles['VIS_A_VIS'].append(_F(MAILLE_1 = v['MAILLE_1'],TOUT_2='OUI'),)
+
+ if n_modele in self.get_global_contexte().keys() : MODELE_1=self.get_global_contexte()[n_modele]
+ else : MODELE_1=self.jdc.current_context[n_modele]
+ __recou=PROJ_CHAMP(METHODE='ELEM',
+ RESULTAT=RESULTAT,
+ MODELE_1=MODELE_1,
+ DISTANCE_MAX=dmin*0.001,
+ MODELE_2=__mocou,
+ TYPE_CHAM='NOEU',
+ NOM_CHAM=NOM_CHAM, **motscles);
+
+ __remodr=__recou
+ icham=0
+ ioc2=0
+ mcACTION=[]
+ angtab=[]
+
+ if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') :
+
+ if NOM_CHAM in ('DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU','SIGM_ELNO_DEPL'):icham=1
+
+ for m in LIGN_COUPE :
+
+ motscles={}
+ motscles['OPERATION']=m['OPERATION']
+ if m['NOM_CMP']!=None:
+ motscles['NOM_CMP']=m['NOM_CMP']
+ if m['TRAC_NOR']!=None:
+ motscles['TRAC_NOR']=m['TRAC_NOR']
+ elif m['TRAC_DIR']!=None:
+ motscles['TRAC_DIR']=m['TRAC_DIR']
+ motscles['DIRECTION']=m['DIRECTION']
+ elif m['INVARIANT']!=None:
+ motscles['INVARIANT']=m['INVARIANT']
+ elif m['RESULTANTE']!=None:
+ motscles['RESULTANTE']=m['RESULTANTE']
+ elif m['ELEM_PRINCIPAUX']!=None:
+ motscles['ELEM_PRINCIPAUX']=m['ELEM_PRINCIPAUX']
+ else:
+ motscles['TOUT_CMP']='OUI'
+
+ # on définit le groupe de noeud pour post_releve_t
+ if m['TYPE'] in ('GROUP_NO','GROUP_MA'):
+ groupe=m[m['TYPE']].ljust(8).upper()
+ nomgrma=groupe
+ else:
+ ioc2=ioc2+1
+ groupe='LICOU'+str(ioc2)
+ nomgrma=' '
+
+ # on definit l'intitulé
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ elif m['TYPE'] in ('GROUP_NO','GROUP_MA') : intitl=groupe
+ else : intitl='l.coupe'+str(ioc2)
+
+
+ # Expression des contraintes aux noeuds ou des déplacements dans le repere local
+ if m['REPERE'] != 'GLOBAL':
+
+ if icham==1:
+
+ if m['REPERE']=='POLAIRE':
+ mcACTION.append( _F(INTITULE = intitl,
+ RESULTAT = __remodr,
+ REPERE = m['REPERE'],
+ GROUP_NO = groupe,
+ NOM_CHAM = NOM_CHAM,**motscles ),)
+ else:
+ __remodr=crea_resu_local(dime,MODI_REPERE,NOM_CHAM,m,__recou,__macou,nomgrma)
+ mcACTION.append( _F(INTITULE = intitl,
+ RESULTAT = __remodr,
+ GROUP_NO = groupe,
+ NOM_CHAM = NOM_CHAM,**motscles ),)
+
+ else:
+ UTMESS('A','MACR_LIGN_COUPE','LE CHAMP '+NOM_CHAM+' N EST PAS TRAITE PAR MACR_LIGNE_COUPE EN REPERE '+m['REPERE']+'.'
+ +'LE CALCUL EST EFFECTUE EN REPERE GLOBAL.')
+
+ mcACTION.append( _F(INTITULE = intitl,
+ RESULTAT = __recou,
+ GROUP_NO = groupe,
+ NOM_CHAM = NOM_CHAM,**motscles ),)
+
+ # Expression des contraintes aux noeuds ou des déplacements dans le repere global
+ else:
+
+ mcACTION.append( _F(INTITULE = intitl,
+ RESULTAT = __recou,
+ GROUP_NO = groupe,
+ NOM_CHAM = NOM_CHAM,**motscles ),)
+
+
+ elif AsType(RESULTAT).__name__ in ('evol_ther',) :
+
+ for m in LIGN_COUPE :
+
+ motscles={}
+ motscles['OPERATION']=m['OPERATION']
+ if m['NOM_CMP']!=None:
+ motscles['NOM_CMP']=m['NOM_CMP']
+ if m['TRAC_NOR']!=None:
+ motscles['TRAC_NOR']=m['TRAC_NOR']
+ elif m['TRAC_DIR']!=None:
+ motscles['TRAC_DIR']=m['TRAC_DIR']
+ motscles['DIRECTION']=m['DIRECTION']
+ elif m['INVARIANT']!=None:
+ motscles['INVARIANT']=m['INVARIANT']
+ elif m['RESULTANTE']!=None:
+ motscles['RESULTANTE']=m['RESULTANTE']
+ elif m['ELEM_PRINCIPAUX']!=None:
+ motscles['ELEM_PRINCIPAUX']=m['ELEM_PRINCIPAUX']
+ else:
+ motscles['TOUT_CMP']='OUI'
+
+ if m['TYPE'] not in ('GROUP_NO','GROUP_MA') :
+ ioc2=ioc2+1
+ groupe='LICOU'+str(ioc2)
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ else : intitl='l.coupe'+str(ioc2)
+ else:
+ groupe=m[m['TYPE']].ljust(8).upper()
+ if m['INTITULE'] !=None : intitl=m['INTITULE']
+ else : intitl=groupe
+ mcACTION.append( _F(INTITULE = intitl,
+ RESULTAT = __recou,
+ GROUP_NO = groupe,
+ NOM_CHAM = NOM_CHAM, **motscles ),)
+
+ __tabitm=POST_RELEVE_T(ACTION=mcACTION,);
+
+ # on repasse par les tables python pour supprimer les paramètres inutiles
+ # NOEUD (car il est propre au maillage de la ligne) et RESU
+
+ self.DeclareOut('nomres',self.sd)
+ dictab=__tabitm.EXTR_TABLE()
+
+### Ajout de la colonne theta
+ if len(arcgma)>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
+
+###
+
+ if 'RESU' in dictab.para:
+ del dictab['RESU']
+ if 'NOEUD' in dictab.para:
+ del dictab['NOEUD']
+ dprod = dictab.dict_CREA_TABLE()
+
+ nomres=CREA_TABLE(**dprod)
+
+ return ier
--- /dev/null
+#@ MODIF macr_recal_ops Macro DATE 16/05/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'
+
+
+try:
+ import Utilitai.Utmess
+ 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 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 = {'PILOTE': '', '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<ITER_MAXI)):
+ iter = iter +1
+ new_val, s, l, Act = reca_algo.Levenberg_bornes(val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,UNITE_RESU)
+
+ # Calcul de F, ici L_deriv_sensible ne contient que les termes calculés par la sensibilité, les autres termes sont nuls
+ L_F, L_deriv_sensible = CALCUL_ASTER.calcul_Aster(new_val, INFO)
+
+ new_L_J,new_erreur = Simul.multi_interpole(L_F, RESU_CALC)
+ new_J = Simul.norme_J(L_J_init,new_L_J,UNITE_RESU)
+ l = reca_algo.actualise_lambda(l,Dim.adim(val),Dim.adim(new_val),A,erreur,new_J,J)
+
+ val = copy.copy(new_val)
+ erreur = copy.copy(new_erreur)
+ J = new_J
+
+ # Calcul de la matrice des sensibilites
+ A = Simul.sensibilite(CALCUL_ASTER, L_F, L_deriv_sensible, val, PARA_DIFF_FINI)
+ A = Dim.adim_sensi(A)
+
+ # Calcul du residu
+ residu = reca_algo.test_convergence(gradient_init,erreur,A,s)
+
+ # Affichage iteration
+ Mess.affiche_result_iter(iter,J,val,residu,Act)
+ txt = "Informations de convergence :"
+ txt += '\n=======================================================\n'
+ txt += "Fin de l'iteration "+str(iter)+" :\n"
+ txt += '\n=> Fonctionnelle = '+str(J)
+ txt += '\n=> Residu = '+str(residu)
+ txt += '\n=======================================================\n'
+ if INFO>=1: UTMESS('I','MACR_RECAL',txt)
+
+ if (GRAPHIQUE):
+ if GRAPHIQUE['AFFICHAGE']=='TOUTE_ITERATION':
+ GRAPHE_UL_OUT=GRAPHIQUE['UNITE']
+ pilote=GRAPHIQUE['PILOTE']
+ reca_utilitaires.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,pilote)
+
+ # 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
+ if not args.has_key('prefix_graph'): fichier='graph'
+ else: fichier = args['prefix_graph']
+ if trace:
+ if INFO>=1: UTMESS('I','MACR_RECAL',"Trace des graphiques")
+ GRAPHE_UL_OUT=GRAPHIQUE['UNITE']
+ pilote=GRAPHIQUE['PILOTE']
+ reca_utilitaires.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,pilote,fichier)
+
+ if( METHODE == 'EXTERNE'):
+# if mode_python: return fonctionnelle, gradient
+ return fonctionnelle, gradient
+
+ # 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', default='graph', 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)
+ if debug: 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
+
+
--- /dev/null
+#@ 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
+try :
+ import aster
+ from Utilitai.Utmess import UTMESS
+except :
+ pass
+import string
+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
--- /dev/null
+#@ 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
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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= '<I> <MACRO_MATR_AJOU> 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= '<I> <MACRO_MATR_AJOU> 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ MODIF macro_miss_3d_ops Macro DATE 29/05/2007 AUTEUR VOLDOIRE F.VOLDOIRE
+# -*- 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
+
--- /dev/null
+#@ MODIF observation_ops Macro DATE 05/06/2007 AUTEUR BODEL C.BODEL
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+
+
+
+
+def observation_ops(self,
+ PROJECTION = None,
+ MODELE_1 = None,
+ MODELE_2 = None,
+ RESULTAT = None,
+ NUME_DDL = None,
+ MODI_REPERE = None,
+ NOM_CHAM = None,
+ FILTRE = None,
+ **args):
+
+ """
+ Ecriture de la macro MACRO_OBSERVATION
+ """
+ ier=0
+
+
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # on transforme le mc MODI_REPERE pour ne pas le confondre avec l'operateur
+ # du meme nom
+ MODIF_REPERE = MODI_REPERE
+
+ # importation de commandes
+ import aster
+ import Numeric
+ from Accas import _F
+ from Utilitai.UniteAster import UniteAster
+ from Utilitai.Utmess import UTMESS
+ from Cata.cata import mode_meca, dyna_harmo, evol_elas, base_modale
+ MODI_REPERE = self.get_cmd('MODI_REPERE')
+ PROJ_CHAMP = self.get_cmd('PROJ_CHAMP')
+ CREA_CHAMP = self.get_cmd('CREA_CHAMP')
+ CREA_RESU = self.get_cmd('CREA_RESU')
+ DEFI_BASE_MODALE = self.get_cmd('DEFI_BASE_MODALE')
+ DETRUIRE = self.get_cmd('DETRUIRE')
+
+ # dans **args, on range les options de PROJ_CHAMP facultatives, et dont on
+ # ne sert pas par la suite
+ mcfact = args
+
+ # La macro n'est pas encoire capable de traiter les resultats dyna_harmo
+ if isinstance(RESULTAT, dyna_harmo):
+ UTMESS('E',UTILITAI7_8)
+
+
+#***********************************************
+# PHASE DE PROJECTION
+#***********************************************
+
+ if PROJECTION == 'OUI' :
+ __proj=PROJ_CHAMP(RESULTAT = RESULTAT,
+ MODELE_1 = MODELE_1,
+ MODELE_2 = MODELE_2,
+ NUME_DDL = NUME_DDL,
+ NOM_CHAM = NOM_CHAM,
+ **mcfact
+ );
+
+ else :
+ __proj = RESULTAT
+
+
+
+
+#***********************************************
+# PHASE DE CHANGEMENT DE REPERE
+#***********************************************
+# Le changement de repere se fait dans les routines exterieures crea_normale et crea_repere
+
+# On range dans le mcfact MODI_REPERE une liste de modifications. ex :
+# MODI_REPERE = ( _F( GROUP_NO = toto,
+# REPERE = 'NORMALE' ),
+# CONDITION = (1.0,0.0,0.0),
+# NOM_PARA = 'X')
+# _F( NOEUD = ('a','z','e'...),
+# REPERE = 'CYLINDRIQUE',
+# ORIGINE = (0.,0.,0.),
+# AXE_Z = (0.,1.,0.), ),
+# _F( GROUP_NO = titi,
+# REPERE = 'UTILISATEUR',
+# ANGL_NAUT = (alpha, beta, gamma), )
+# )
+
+
+ # cham_mater et cara_elem pour le resultat a projeter
+ jdc = CONTEXT.get_current_step().jdc
+ nom_cara_elem = aster.getvectjev( RESULTAT.nom.ljust(19) + '.CARA ' )
+ nom_cara_elem = nom_cara_elem[0].strip()
+ cara_elem = jdc.sds_dict[nom_cara_elem]
+ nom_cham_mater = aster.getvectjev( RESULTAT.nom.ljust(19) + '.MATE ' )
+ nom_cham_mater = nom_cham_mater[0].strip()
+ cham_mater = jdc.sds_dict[nom_cham_mater]
+
+ # recuperation du maillage associe au modele experimental
+ _maillag = aster.getvectjev( MODELE_2.nom.ljust(8) + '.MODELE .NOMA ' )
+ maillage = _maillag[0].strip()
+ jdc = CONTEXT.get_current_step().jdc
+ mayaexp = jdc.sds_dict[maillage]
+
+ _maillag = aster.getvectjev( MODELE_1.nom.ljust(8) + '.MODELE .NOMA ' )
+ maillage = _maillag[0].strip()
+ jdc = CONTEXT.get_current_step().jdc
+ mayanum = jdc.sds_dict[maillage]
+
+ if MODIF_REPERE != None :
+ for modi_rep in MODIF_REPERE :
+ type_cham = modi_rep['TYPE_CHAM']
+ nom_cmp = modi_rep['NOM_CMP']
+ mcfact1 = { 'NOM_CMP' : nom_cmp,
+ 'TYPE_CHAM' : type_cham,
+ 'NOM_CHAM' : NOM_CHAM }
+
+ mcfact2 = { }
+ modi_rep = modi_rep.val
+
+ if modi_rep['REPERE'] == 'NORMALE' :
+ # Cas ou l'utilisateur choisit de creer les reperes locaux
+ # selon la normale. On fait un changement de repere local
+ # par noeud
+ for option in ['VECT_X','VECT_Y','CONDITION_X','CONDITION_Y'] :
+ if modi_rep.has_key(option):
+ vect = { option : modi_rep[option] }
+ if len(vect) != 1 :
+ U2MESS('E',UTILITAI7_9)
+ chnorm = crea_normale(self, MODELE_1, MODELE_2,
+ cham_mater, cara_elem, NUME_DDL)
+
+
+ chnormx = chnorm.EXTR_COMP('DX',[],1)
+ ind_noeuds = chnormx.noeud
+ nom_allno = [mayaexp.NOMNOE.get()[k-1] for k in ind_noeuds]
+
+ # on met les noeuds conernes sous forme de liste et on va
+ # chercher les noeuds des mailles pour 'MAILLE' et 'GROUP_MA'
+ for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA','TOUT']:
+ if modi_rep.has_key(typ) :
+ list_no_exp = find_no(mayaexp, {typ : modi_rep[typ]})
+
+ # boucle sur les noeuds pour modifier les reperes.
+ __bid = [None]*(len(list_no_exp) + 1)
+ __bid[0] = __proj
+ k = 0
+ for nomnoe in list_no_exp:
+ ind_no = nom_allno.index(nomnoe)
+ angl_naut = crea_repere(chnorm, ind_no, vect)
+
+ mcfact1.update({ 'NOEUD' : nomnoe })
+ mcfact2.update({ 'REPERE' : 'UTILISATEUR',
+ 'ANGL_NAUT' : angl_naut})
+ args = {'MODI_CHAM' : mcfact1,
+ 'DEFI_REPERE' : mcfact2 }
+ __bid[k+1] = MODI_REPERE( RESULTAT = __bid[k],
+ TOUT_ORDRE = 'OUI',
+ CRITERE = 'RELATIF',
+ **args)
+ k = k + 1
+
+ __proj = __bid[-1:][0]
+
+
+ else:
+ for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA','TOUT']:
+ if modi_rep.has_key(typ) :
+ mcfact1.update({typ : modi_rep[typ]})
+ if modi_rep['REPERE'] == 'CYLINDRIQUE' :
+ origine = modi_rep['ORIGINE']
+ axe_z = modi_rep['AXE_Z']
+ mcfact2.update({ 'REPERE' : 'CYLINDRIQUE',
+ 'ORIGINE' : origine,
+ 'AXE_Z' : axe_z })
+
+ elif modi_rep['REPERE'] == 'UTILISATEUR' :
+ angl_naut = modi_rep['ANGL_NAUT']
+ mcfact2.update({ 'REPERE' : 'UTILISATEUR',
+ 'ANGL_NAUT' : angl_naut })
+ args = {'MODI_CHAM' : mcfact1,
+ 'DEFI_REPERE' : mcfact2 }
+ __bid = MODI_REPERE( RESULTAT = __proj,
+ CRITERE = 'RELATIF',
+ **args)
+ __proj = __bid
+
+
+ else: # pas de modif de repere demandee
+ pass
+
+
+#*************************************************
+# Phase de selection des DDL de mesure
+#*************************************************
+ # les numeros d'ordre de la sd_resu
+ num_ordr = RESULTAT.LIST_VARI_ACCES()['NUME_ORDRE']
+ __cham = [None]*len(num_ordr)
+ list_cham = []
+
+ if FILTRE != None:
+ nb_fi = len(FILTRE)
+
+ for ind in num_ordr:
+ filtres = []
+ liste = []
+ __chamex = CREA_CHAMP(TYPE_CHAM = 'NOEU_DEPL_R',
+ OPERATION = 'EXTR',
+ RESULTAT = __proj,
+ NOM_CHAM = 'DEPL',
+ NUME_ORDRE = ind,);
+
+ for filtre in FILTRE :
+ mcfact1 = {}
+ filtre = filtre.val
+ for typ in ['NOEUD','GROUP_NO','MAILLE','GROUP_MA']:
+ if filtre.has_key(typ) :
+ mcfact1.update({typ : filtre[typ]})
+ mcfact1.update({'NOM_CMP' : filtre['DDL_ACTIF'],
+ 'CHAM_GD' : __chamex })
+ filtres.append(mcfact1)
+
+ __cham[ind-1] = CREA_CHAMP(TYPE_CHAM = 'NOEU_DEPL_R',
+ OPERATION = 'ASSE',
+ MODELE = MODELE_2,
+ PROL_ZERO = 'NON',
+ ASSE = filtres
+ );
+
+ mcfact2 = {'CHAM_GD' : __cham[ind-1],
+ 'MODELE' : MODELE_2,
+ 'CHAM_MATER' : cham_mater,
+ 'CARA_ELEM' : cara_elem,
+ 'NOM_CAS' : str(ind)}
+
+ liste.append(mcfact2)
+ DETRUIRE( CONCEPT= _F( NOM = __chamex ))
+
+
+ self.DeclareOut( 'RESU', self.sd)
+ if isinstance( RESULTAT, evol_elas):
+ # Fabrication de l'evol_elas (cas le plus simple)
+ RESU = CREA_RESU( OPERATION = 'AFFE',
+ TYPE_RESU = 'EVOL_ELAS',
+ NOM_CHAM = 'DEPL',
+ AFFE = liste,
+ );
+
+ if isinstance( RESULTAT, mode_meca):
+ # Fabrication de la base modale resultat. On doit tricher un peu (encore!!), en
+ # faisant un defi_base_modale dans lequel on met zero modes du concept RESULTAT
+ # TODO : permettre la creation directement d'un resu de type mode_meca avec
+ # CREA_RESU
+ RESBID = CREA_RESU( OPERATION = 'AFFE',
+ TYPE_RESU = 'MULT_ELAS',
+ NOM_CHAM = 'DEPL',
+ AFFE = liste,
+ );
+
+ RESU = DEFI_BASE_MODALE( RITZ = (
+ _F( MODE_MECA = RESULTAT,
+ NMAX_MODE = 0,),
+ _F( MULT_ELAS = RESBID),
+ ),
+ NUME_REF=NUME_DDL
+ );
+
+
+ elif isinstance( RESULTAT, dyna_harmo):
+ # TODO : a faire
+ pass
+
+
+ return ier
+
+
+
+
+#**********************************************
+# RECUPERATION DES NORMALES
+#**********************************************
+
+def crea_normale(self, modele_1, modele_2, cham_mater, cara_el, nume_ddl):
+
+ """Cree un champ de vecteurs normaux sur le maillage experimental, par
+ projection du champ de normales cree sur le maillage numerique
+ """
+
+ import Numeric
+ PROJ_CHAMP = self.get_cmd('PROJ_CHAMP')
+ CREA_CHAMP = self.get_cmd('CREA_CHAMP')
+ CREA_RESU = self.get_cmd('CREA_RESU')
+ DEFI_GROUP = self.get_cmd('DEFI_GROUP')
+ import aster
+ from Accas import _F
+ # recherche du maillage associe au modele numerique
+ nom_modele_num = modele_1.nom
+ _maillag = aster.getvectjev( nom_modele_num.ljust(8) + '.MODELE .NOMA ' )
+ maillage = _maillag[0].strip()
+ jdc = CONTEXT.get_current_step().jdc
+ mayanum = jdc.sds_dict[maillage]
+
+
+ DEFI_GROUP( reuse = mayanum,
+ MAILLAGE = mayanum,
+ CREA_GROUP_MA = _F( NOM = '&&TOUMAIL',
+ TOUT = 'OUI' )
+ );
+
+ __norm1 = CREA_CHAMP( MODELE = modele_1,
+ OPERATION = 'NORMALE',
+ TYPE_CHAM = 'NOEU_GEOM_R',
+ GROUP_MA = '&&TOUMAIL',
+ );
+
+ __norm2 = CREA_CHAMP( OPERATION = 'ASSE',
+ TYPE_CHAM = 'NOEU_DEPL_R',
+ MODELE = modele_1,
+ ASSE = _F( TOUT='OUI',
+ CHAM_GD=__norm1,
+ NOM_CMP=('X','Y','Z'),
+ NOM_CMP_RESU=('DX','DY','DZ')
+ )
+ );
+
+ __norm3 = CREA_RESU( OPERATION = 'AFFE',
+ TYPE_RESU = 'EVOL_ELAS',
+ NOM_CHAM = 'DEPL',
+ AFFE = _F( CHAM_GD = __norm2,
+ INST = 1,
+ MODELE = modele_1,
+ CHAM_MATER = cham_mater,
+ CARA_ELEM = cara_el
+ )
+ );
+
+
+ __norm4 = PROJ_CHAMP( RESULTAT = __norm3,
+ MODELE_1 = modele_1,
+ MODELE_2 = modele_2,
+ NOM_CHAM = 'DEPL',
+ TOUT_ORDRE = 'OUI',
+ NUME_DDL = nume_ddl,
+ );
+
+ # __norm5 : toutes les normales au maillage au niveau des capteurs
+ __norm5 = CREA_CHAMP( RESULTAT = __norm4,
+ OPERATION = 'EXTR',
+ NUME_ORDRE = 1,
+ NOM_CHAM = 'DEPL',
+ TYPE_CHAM = 'NOEU_DEPL_R',
+ );
+
+
+ return __norm5
+
+
+#**********************************************************************
+# Calcul des angles nautiques pour le repere local associe a la normale
+#**********************************************************************
+
+def crea_repere(chnorm, ind_no, vect):
+
+ """Creation d'un repere orthonormal a partir du vecteur normale et
+ d'une equation supplementaire donnee par l'utilisateur sous forme
+ de trois parametres et du vecteur de base concerne.
+ """
+
+ import Numeric
+
+ nom_para = vect.keys()[0] # nom_para = 'VECT_X' ou 'VECT_Y'
+ condition = list(vect[nom_para])
+
+ # 1) pour tous les noeuds du maillage experimental, recuperer la normale
+ # calculee a partir du maillage numerique
+ chnormx = chnorm.EXTR_COMP('DX',[],1)
+ chnormy = chnorm.EXTR_COMP('DY',[],1)
+ chnormz = chnorm.EXTR_COMP('DZ',[],1)
+
+ noeuds = chnormx.noeud
+ nbno = len(noeuds)
+
+ normale = [chnormx.valeurs[ind_no],
+ chnormy.valeurs[ind_no],
+ chnormz.valeurs[ind_no]]
+
+ # 2.1) soit l'utilisateur a donne un deuxieme vecteur explicitement
+ # (option VECT_X Ou VECT_Y). Dans ce cas la, le 3e est le produit
+ # vectoriel des deux premiers.
+ if nom_para == 'VECT_X' :
+ vect1 = Numeric.array(list(vect[nom_para])) # vect x du reploc
+ vect2 = cross_product(normale,vect1)
+ reploc = Numeric.array([vect1.tolist(), vect2.tolist(), normale])
+ reploc = Numeric.transpose(reploc)
+
+ elif nom_para == 'VECT_Y' :
+ vect2 = Numeric.array(list(vect[nom_para])) # vect y du reploc
+ vect1 = cross_product(vect2, normale)
+ reploc = Numeric.array([vect1.tolist(), vect2.tolist(), normale])
+ reploc = Numeric.transpose(reploc)
+
+ # 2.2) TODO : plutot que de donner explicitement un vecteur du repere
+ # local avec VECT_X/Y, on devrait aussi pouvoir donner une condition
+ # sous forme d'une equation sur un de ces vecteurs. Par exemple,
+ # CONDITION_X = (0.,1.,0.) signifierait que le vecteur X1 verifie
+ #x(X1) + y(X1) + z(X1) = 0
+ elif nom_para == 'CONDITION_X':
+ pass
+ elif nom_para == 'CONDITION_Y':
+ pass
+
+ # 3) Calcul de l'angle nautique associe au repere local
+ angl_naut = anglnaut(reploc)
+
+ return angl_naut
+
+#*****************************************************************************
+# Aller chercher une liste de noeuds pour un mot cle 'NOEUD', 'GROUP_NO'
+# 'MAILLE' ou 'GROUP_MA'
+#*****************************************************************************
+
+def find_no(maya,mcsimp):
+ """ Si on demande une liste de noeuds, c'est simple, on retourne les noeuds
+ Si on demande une liste de groupes de noeuds, on va chercher les noeuds
+ dans ces groupes, en faisant attention a ne pas etre redondant
+ Si on demande un liste de mailles, on va chercher dans le .CONNEX
+ du maillage les indices, puis les noms des noeuds concernes
+ etc...
+ """
+
+ import Numeric
+
+ list_no = []
+ list_ma = []
+ if mcsimp.has_key('GROUP_NO') and type(mcsimp['GROUP_NO']) != tuple :
+ mcsimp['GROUP_NO'] = [mcsimp['GROUP_NO']]
+ if mcsimp.has_key('GROUP_MA') and type(mcsimp['GROUP_MA']) != tuple :
+ mcsimp['GROUP_MA'] = [mcsimp['GROUP_MA']]
+
+ if mcsimp.has_key('NOEUD') :
+ list_no = list(mcsimp['NOEUD'])
+ elif mcsimp.has_key('GROUP_NO') :
+ for group in mcsimp['GROUP_NO'] :
+ list_ind_no = list(Numeric.array(maya.GROUPENO.get()[group.ljust(8)])-1)
+ for ind_no in list_ind_no :
+ nomnoe = maya.NOMNOE.get()[ind_no]
+ if nomnoe not in list_no :
+ list_no.append(nomnoe)
+ elif mcsimp.has_key('MAILLE') :
+ for mail in mcsimp['MAILLE'] :
+ ind_ma = maya.NOMMAI.get().index(mail.ljust(8))
+ for ind_no in mayaexp.CONNEX[ind_ma] :
+ nomnoe = mayaexp.NOMNOE.get()[ind_no]
+ if nomnoe not in list_no :
+ list_no.append(nomnoe)
+ elif mcsimp.has_key('GROUP_MA') :
+ for group in mcsimp['GROUP_MA'] :
+ list_ma.append(maya.GROUPEMA.get()[group.ljust(8)])
+ for mail in list_ma :
+ ind_ma = maya.NOMMAI.get().index(mail.ljust(8))
+ for ind_no in maya.CONNEX[ind_ma] :
+ nomnoe = maya.NOMNOE.get()[ind_no]
+ if nomnoe not in list_no :
+ list_no.append(nomnoe)
+
+
+ return list_no
+
+
+#************************************************************************************
+# Quelques utilitaires de calculs d'angles nautiques (viennent de zmat004a.comm
+#************************************************************************************
+
+
+def cross_product(a, b):
+ """Return the cross product of two vectors.
+ For a dimension of 2,
+ the z-component of the equivalent three-dimensional cross product is
+ returned.
+
+ For backward compatibility with Numeric <= 23
+ """
+ from Numeric import asarray, array
+ a = asarray(a)
+ b = asarray(b)
+ dim = a.shape[0]
+ assert 2<= dim <=3 and dim == b.shape[0], "incompatible dimensions for cross product"
+ if dim == 2:
+ result = a[0]*b[1] - a[1]*b[0]
+ elif dim == 3:
+ x = a[1]*b[2] - a[2]*b[1]
+ y = a[2]*b[0] - a[0]*b[2]
+ z = a[0]*b[1] - a[1]*b[0]
+ result = array([x,y,z])
+ return result
+
+def norm(x):
+ """Calcul de la norme euclidienne d'un vecteur"""
+ import Numeric
+ tmp = Numeric.sqrt(Numeric.dot(x,x))
+ return tmp
+
+def anglnaut(P):
+
+
+ """Calcule les angles nautiques correspondant a un repere local
+ NB : seuls les deux premiers vecteurs de P (les images respectives
+ de X et Y) sont utiles pour le calcul des angles
+ """
+
+ import copy
+ import Numeric
+ # expression des coordonnees globales des 3 vecteurs de base locale
+ x = Numeric.array([1.,0.,0.])
+ y = Numeric.array([0.,1.,0.])
+ z = Numeric.array([0.,0.,1.])
+
+ xg = P[:,0]
+ yg = P[:,1]
+ zg = P[:,2]
+
+ # calcul des angles nautiques
+ x1=copy.copy(xg)
+ # x1 projection de xg sur la plan xy, non norme
+ x1[2]=0.
+ # produit scalaire X xg
+ COSA=x1[0]/norm(x1)
+ #produit vectoriel X xg
+ SINA=x1[1]/norm(x1)
+ ar=Numeric.arctan2(SINA,COSA)
+ alpha=ar*180/Numeric.pi
+
+ COSB=norm(x1)
+ SINB=-xg[2]
+ beta=Numeric.arctan2(SINB,COSB)*180/Numeric.pi
+
+ P2=Numeric.zeros((3,3),Numeric.Float)
+ P2[0,0]=Numeric.cos(ar)
+ P2[1,0]=Numeric.sin(ar)
+ P2[1,1]=Numeric.cos(ar)
+ P2[0,1]=-Numeric.sin(ar)
+ y1=Numeric.dot(P2,y)
+ y1n=y1/norm(y1)
+
+ # calcul de gamma
+ COSG=Numeric.dot(y1n,yg)
+ SING=Numeric.dot(xg,cross_product(y1n,yg))
+ gamma=Numeric.arctan2(SING,COSG)*180/Numeric.pi
+
+ return alpha,beta,gamma
+
+
+## NB : Equations de passage : un vecteur de coordonnees globales (X,Y,Z) a pour
+## coordonnees locales (X1,Y1,Z1) avec
+## _ _ _ _ _ _ _ _ _ _
+## | 1 0 0 || cos(B) 0 -sin(B) || cos(A) sin(A) 0 || X | | X1 |
+## | 0 cos(G) sin(G) || 0 1 0 || -sin(A) cos(A) 0 || Y | = | Y1 |
+## |_0 -sin(G) cos(G)_||_sin(B) 0 cos(B)_||_ 0 0 1_||_Z_| |_Z1_|
+##
+## A (alpha), B(beta), gamma (G) sont les angle nautiques que l'on donne habituellemet
+## dans les MODI_REPERE. Les equations a resoudre sont les suivantes :
+## cos(A)cos(B) = reploc[0][0]
+## -cos(G)sin(A) + sin(G)cos(A)sin(B) = reploc[0][1]
+## sin(A)sin(G) + cos(A)sin(B)cos(G) = reploc[0][2]
+##
+## sin(A)cos(B) = reploc[1][0]
+## cos(A)cos(G) + sin(A)sin(B)sin(G) = reploc[1][1]
+## -cos(A)sin(G) + sin(A)sin(B)cos(G) = reploc[1][2]
+##
+## -sin(B) = reploc[2][0]
+## cos(B)sin(G) = reploc[2][1]
+## cos(B)cos(G) = reploc[2][2]
+
+
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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)
+
--- /dev/null
+#@ MODIF post_k1_k2_k3_ops Macro DATE 09/05/2007 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 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, VIS_A_VIS=_F(MAILLE_1 = 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, VIS_A_VIS=_F(MAILLE_1 = 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 abss<rmprec :
+ NBTRLS = NBTRLS +1
+ Tmpsup.append(dicoS[Lnf1[i]][k])
+ if SYME_CHAR=='SANS':
+ if dicoI[Lnf1[i]][k] !='':
+ itoti = itoti +1
+ Ninf = dicoI[Lnf1[i]][k]
+ Pinf = array([d_coor[Ninf][0],d_coor[Ninf][1],d_coor[Ninf][2]])
+ absi = sqrt(dot(transpose(Pfon-Pinf),Pfon-Pinf))
+# On verifie que les noeuds sont en vis a vis
+ if abss<rmprec :
+ dist = sqrt(dot(transpose(Psup-Pinf),Psup-Pinf))
+ if dist>precn :
+ 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)<PRECISION]
+ else : match=[x for x in l_inst_tab if abs(inst-x)<PRECISION]
+ if len(match)==0 :
+ message = 'PAS D INSTANT TROUVE DANS LA TABLE POUR L INSTANT %f\n'%inst
+ UTMESS('F', macro, message)
+ if len(match)>=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 x<rmprec]
+ nbval = len(refsc)
+ else :
+ nbval=len(abscs)
+ abscs=array(abscs[:nbval])
+ coxs=array(tabsupi['COOR_X'].values()['COOR_X'][:nbval],Float)
+ coys=array(tabsupi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
+ if ndim==2 : cozs=Numeric.zeros(nbval,Float)
+ elif ndim==3 : cozs=array(tabsupi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
+
+ 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]])
+ abscs = sqrt((coxs-Pfon[0])**2+(coys-Pfon[1])**2+(cozs-Pfon[2])**2)
+ tabsupi['Abs_fo'] = abscs
+ tabsupi.sort('Abs_fo')
+ abscs = getattr(tabsupi,'Abs_fo').values()
+ abscs=array(abscs[:nbval])
+ coxs=array(tabsupi['COOR_X'].values()['COOR_X'][:nbval],Float)
+ coys=array(tabsupi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
+ if ndim==2 : cozs=Numeric.zeros(nbval,Float)
+ elif ndim==3 : cozs=array(tabsupi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
+
+ if FOND_FISS and INFO==2 and iord==0 and not TYPE_MAILLAGE =='LIBRE':
+ for ks in range(0,nbval) :
+ texte="NOEUD RETENU POUR LA LEVRE SUP: %s %f"%(Lnosup[ino][ks],abscs[ks])
+ aster.affiche('MESSAGE',texte)
+ dxs=array(tabsupi['DX'].values()['DX'][:nbval],Float)
+ dys=array(tabsupi['DY'].values()['DY'][:nbval],Float)
+ if ndim==2 : dzs=Numeric.zeros(nbval,Float)
+ elif ndim==3 : dzs=array(tabsupi['DZ'].values()['DZ'][:nbval],Float)
+
+# --- LEVRE INF : "ABSC_CURV" CROISSANTES et < RMAX ---
+ if SYME_CHAR=='SANS' and not FISSURE :
+ absci = getattr(tabinfi,'ABSC_CURV').values()
+ if not FOND_FISS :
+ refi=copy.copy(absci)
+ refi.sort()
+ if refi!=absci : UTMESS('F', macro, 'ABSC_CURV NON CROISSANTS POUR TABL_DEPL_SUP')
+ refic=[x for x in refi if x<rmprec]
+ nbvali=len(refic)
+ else :
+ nbvali=len(absci)
+ if nbvali!=nbval :
+ message= 'DIFFERENCE DE POINTS ENTRE LA LEVRE SUPERIEURE ET LA LEVRE INFERIEURE'
+ if FOND_FISS : message=message+' POUR TRAITER LE NOEUD %.s \n'%Lnofon[i]
+ message=message+' Nombre de points - levre superieure : %i\n'%len(refsc)
+ message=message+' Nombre de points - levre inferieure : %i\n'%len(refic)
+ UTMESS('A',macro, message)
+ nbval=min(nbval,nbvali)
+ absci=array(absci[: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)
+# --- ON VERIFIE QUE LES NOEUDS SONT EN VIS_A_VIS (SYME=SANS) ---
+ if not FOND_FISS :
+ precn = precv * rmax
+ dist=(coxs-coxi)**2+(coys-coyi)**2+(cozs-cozi)**2
+ dist=sqrt(dist)
+ for d in dist :
+ if d>precn : 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
+
--- /dev/null
+#@ 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)<PRECISION]
+ else : match=[x for x in l0_inst if abs(ins-x)<PRECISION]
+ if len(match)==0 :
+ message = 'PAS D INSTANT TROUVE DANS LA TABLE POUR L INSTANT %f\n'%ins
+ UTMESS('A', macro, message)
+ elif len(match)>=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
--- /dev/null
+#@ MODIF reca_algo Macro DATE 16/05/2007 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:
+ import Utilitai.Utmess
+ 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)
--- /dev/null
+#@ MODIF reca_calcul_aster Macro DATE 16/05/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
+__commandes_aster__ = False
+
+debug = False
+
+import copy, Numeric, types, os, sys, pprint, math
+from glob import glob
+
+try:
+ import Utilitai.Utmess
+ 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', '<A>_ALARM', '<F>_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)
+
+
+
+ # On supprime tous les commentaires du fichier esclave
+ fichiernew=[]
+ for ligne in fichier.split('\n'):
+ if ligne.strip() != '':
+ 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
+ if self.METHODE !='EXTERNE':
+ 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)
+
+ if debug: os.system('cp ' + self.new_export + ' /tmp')
+
+ # --FIN CLASSE ----------------------------------------------------------------------------
+
+
+
--- /dev/null
+#@ MODIF reca_controles Macro DATE 16/05/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:
+ import Utilitai.Utmess
+ 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_inf<val_sup
+ val_init appartient à [borne_inf, borne_sup]
+ val_init!=0
+ borne_sup!=0
+ borne_inf!=0
+ """
+
+ txt = ""
+ # verification des bornes
+ for i in range(len(PARAMETRES)):
+ if( PARAMETRES[i][2] >PARAMETRES[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
+
--- /dev/null
+#@ MODIF reca_graphique Macro DATE 16/05/2007 AUTEUR ASSIRE A.ASSIRE
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+import string, copy, Numeric, types
+import Cata
+from Cata.cata import DEFI_FICHIER, IMPR_FONCTION
+from Utilitai.Utmess import UTMESS
+from Accas import _F
+
+try:
+ import Gnuplot
+except:
+ pass
+
+
+#_____________________________________________
+#
+# IMPRESSIONS GRAPHIQUES
+#_____________________________________________
+
+def graphique(FORMAT, L_F, res_exp, reponses, iter, UL_out, interactif):
+
+ if FORMAT=='XMGRACE':
+ for i in range(len(L_F)):
+ _tmp = []
+ courbe1 = res_exp[i]
+ _tmp.append( { 'ABSCISSE': courbe1[:,0].tolist(), 'ORDONNEE': courbe1[:,1].tolist(), 'COULEUR': 1 } )
+ courbe2 = L_F[i]
+ _tmp.append( { 'ABSCISSE': courbe2[:,0].tolist(), 'ORDONNEE': courbe2[:,1].tolist(), 'COULEUR': 2 } )
+
+ motscle2= {'COURBE': _tmp }
+ if interactif: motscle2['PILOTE']= 'INTERACTIF'
+ else: motscle2['PILOTE']= 'POSTSCRIPT'
+
+# DEFI_FICHIER(UNITE=int(UL_out), ACCES='NEW',)
+
+ IMPR_FONCTION(FORMAT='XMGRACE',
+ UNITE=int(UL_out),
+ TITRE='Courbe de : ' + reponses[i][0],
+ SOUS_TITRE='Iteration : ' + str(iter),
+ LEGENDE_X=reponses[i][1],
+ LEGENDE_Y=reponses[i][2],
+ **motscle2
+ );
+# DEFI_FICHIER(ACTION='LIBERER',UNITE=int(UL_out),)
+
+ elif FORMAT=='GNUPLOT':
+ graphe=[]
+ impr=Gnuplot.Gnuplot()
+ Gnuplot.GnuplotOpts.prefer_inline_data=1
+ impr('set data style linespoints')
+ impr('set grid')
+ impr('set pointsize 2.')
+ impr('set terminal postscript color')
+ impr('set output "fort.'+str(UL_out)+'"')
+
+ for i in range(len(L_F)):
+ if interactif:
+ graphe.append(Gnuplot.Gnuplot(persist=0))
+ graphe[i]('set data style linespoints')
+ graphe[i]('set grid')
+ graphe[i]('set pointsize 2.')
+ graphe[i].xlabel(reponses[i][1])
+ graphe[i].ylabel(reponses[i][2])
+ graphe[i].title(reponses[i][0]+' Iteration '+str(iter))
+ graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
+ graphe[i]('pause 5')
+
+ impr.xlabel(reponses[i][1])
+ impr.ylabel(reponses[i][2])
+ impr.title(reponses[i][0]+' Iteration '+str(iter))
+ impr.plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
+
+ else:
+ pass
--- /dev/null
+#@ MODIF reca_interp Macro DATE 16/05/2007 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:
+ import Utilitai.Utmess
+ 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
--- /dev/null
+#@ MODIF reca_message Macro DATE 16/05/2007 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:
+ import Utilitai.Utmess
+ 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 = ' <INFO> 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)
+
--- /dev/null
+#@ MODIF reca_utilitaires Macro DATE 16/05/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 Numeric, LinearAlgebra, copy, os, string, types, sys, glob
+from Numeric import take
+
+
+try: import Gnuplot
+except: pass
+
+try:
+ from Cata.cata import INFO_EXEC_ASTER, DEFI_FICHIER, IMPR_FONCTION, DETRUIRE
+ from Accas import _F
+ import Utilitai.Utmess
+ 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, pilote, 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, 'LEGENDE' : 'Expérience'} )
+ courbe2 = L_F[i]
+ _tmp.append( { 'ABSCISSE': courbe2[:,0].tolist(), 'ORDONNEE': courbe2[:,1].tolist(), 'COULEUR': 2, 'LEGENDE' : 'Calcul'} )
+
+ motscle2= {'COURBE': _tmp }
+ motscle2['PILOTE']= pilote
+
+ IMPR_FONCTION(FORMAT='XMGRACE',
+ UNITE=int(UL_out),
+ TITRE='Courbe : ' + reponses[i][0],
+ SOUS_TITRE=txt_iter,
+ LEGENDE_X=reponses[i][1],
+ LEGENDE_Y=reponses[i][2],
+ **motscle2
+ );
+ dic = {'' : '',
+ 'POSTSCRIPT' : '.ps',
+ 'EPS' : '.eps',
+ 'MIF' : '.mif',
+ 'SVG' : '.svg',
+ 'PNM' : '.pnm',
+ 'PNG' : '.png',
+ 'JPEG' : '.jpg',
+ 'PDF' : '.pdf',
+ 'INTERACTIF' : '.agr'
+ }
+ ext = dic[pilote]
+ if ext!='':
+ os.system('mv ./fort.%s ./REPE_OUT/courbes_%s_iter_%s%s' % (str(UL_out), reponses[i][0], str(iter), ext ) )
+
+ elif FORMAT=='GNUPLOT':
+
+ if fichier:
+ if INFO>=2: UTMESS('I','MACR_RECAL',"Trace des courbes dans le fichier " + 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 1.')
+ 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 1.')
+ 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 pilote=='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) )
+
--- /dev/null
+#@ 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_inf<val_sup
+# val_init appartient à [borne_inf, borne_sup]
+# val_init!=0
+# borne_sup!=0
+# borne_inf!=0
+ txt=""
+ #verification des bornes
+ for i in range(len(PARAMETRES)):
+ if( PARAMETRES[i][2] >PARAMETRES[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
+
+
--- /dev/null
+#@ MODIF simu_point_mat_ops Macro DATE 23/04/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,RECH_LINEAIRE,SIGM_INIT,EPSI_INIT,VARI_INIT,
+ COMP_ELAS,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')
+ CREA_CHAMP = self.get_cmd('CREA_CHAMP')
+# IMPR_RESU = self.get_cmd('IMPR_RESU')
+
+ 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]) )
+
+
+
+# Etat initial
+ SIGINI={}
+ VARINI={}
+ LCSIG=[]
+ LVSIG=[]
+ init_dico={}
+ etatinit=0
+
+# --contraintes initiales
+ if SIGM_INIT:
+ etatinit=1
+ SIGINI=SIGM_INIT[0].cree_dict_valeurs(SIGM_INIT[0].mc_liste)
+ for i in SIGINI.keys():
+ if SIGINI[i]!=None :
+ LCSIG.append(i)
+ LVSIG.append(SIGINI[i])
+
+ __SIG_INIT=CREA_CHAMP(MAILLAGE=__MA,
+ OPERATION='AFFE',
+ TYPE_CHAM='CART_SIEF_R',
+ AFFE=_F(TOUT='OUI',
+ NOM_CMP=LCSIG,
+ VALE=LVSIG,))
+ init_dico['SIGM']=__SIG_INIT
+
+# --variables internes initiales
+ if VARI_INIT:
+ etatinit=1
+ lnomneu=[]
+ lnomvar=[]
+ VARINI=VARI_INIT[0].cree_dict_valeurs(VARI_INIT[0].mc_liste)
+ nbvari=len(VARINI['VALE'])
+ for i in range(nbvari):
+ lnomneu.append('X'+str(i+1))
+ lnomvar.append('V'+str(i+1))
+
+ __NEUT=CREA_CHAMP(OPERATION='AFFE', TYPE_CHAM='CART_NEUT_R', MAILLAGE=__MA,
+ AFFE=_F( MAILLE ='VOLUME', NOM_CMP = lnomneu, VALE = VARINI['VALE']))
+
+ __VAR_INIT=CREA_CHAMP(MODELE=__MO,
+ OPERATION='ASSE',
+ TYPE_CHAM='ELGA_VARI_R',
+ ASSE=_F(TOUT='OUI',CHAM_GD=__NEUT,
+ NOM_CMP=lnomneu,NOM_CMP_RESU=lnomvar))
+ init_dico['VARI']=__VAR_INIT
+# IMPR_RESU(MODELE=__MO,RESU=_F(CHAM_GD=__VAR_INIT))
+
+ # --deformations initiales
+ if EPSI_INIT:
+ etatinit=1
+ EPSINI={}
+ LCDEPL=[]
+ LNDEPL=[]
+ LVDEPL=[]
+ LIST_AFFE=[]
+ mon_dico={}
+ mon_dico["NOEUD"]='P0'
+ mon_dico["NOM_CMP"]=("DX","DY","DZ")
+ mon_dico["VALE"]=(0.,0.,0.)
+ LIST_AFFE.append(mon_dico)
+
+ EPSINI=EPSI_INIT[0].cree_dict_valeurs(EPSI_INIT[0].mc_liste)
+ mon_dico={}
+ mon_dico["NOEUD"]='P1'
+ mon_dico["NOM_CMP"]='DX'
+ mon_dico["VALE"]=EPSINI['EPXX']
+ LIST_AFFE.append(mon_dico)
+ mon_dico={}
+ mon_dico["NOEUD"]='P2'
+ mon_dico["NOM_CMP"]='DY'
+ mon_dico["VALE"]=EPSINI['EPYY']
+ LIST_AFFE.append(mon_dico)
+ if MODELISATION=="3D":
+ mon_dico={}
+ mon_dico["NOEUD"]='P3'
+ mon_dico["NOM_CMP"]='DZ'
+ mon_dico["VALE"]=EPSINI['EPZZ']
+ LIST_AFFE.append(mon_dico)
+ mon_dico={}
+ mon_dico["NOEUD"]='P1'
+ mon_dico["NOM_CMP"]='DY'
+ mon_dico["VALE"]=EPSINI['EPXY']
+ LIST_AFFE.append(mon_dico)
+ mon_dico={}
+ mon_dico["NOEUD"]='P2'
+ mon_dico["NOM_CMP"]='DX'
+ mon_dico["VALE"]=EPSINI['EPXY']
+ LIST_AFFE.append(mon_dico)
+ mon_dico={}
+ mon_dico["NOEUD"]='P1'
+ mon_dico["NOM_CMP"]='DZ'
+ mon_dico["VALE"]=EPSINI['EPXZ']
+ LIST_AFFE.append(mon_dico)
+ mon_dico={}
+ mon_dico["NOEUD"]='P3'
+ mon_dico["NOM_CMP"]='DX'
+ mon_dico["VALE"]=EPSINI['EPXZ']
+ LIST_AFFE.append(mon_dico)
+ mon_dico={}
+ mon_dico["NOEUD"]='P2'
+ mon_dico["NOM_CMP"]='DZ'
+ mon_dico["VALE"]=EPSINI['EPYZ']
+ LIST_AFFE.append(mon_dico)
+ mon_dico={}
+ mon_dico["NOEUD"]='P3'
+ mon_dico["NOM_CMP"]='DY'
+ mon_dico["VALE"]=EPSINI['EPYZ']
+ LIST_AFFE.append(mon_dico)
+ else:
+ mon_dico={}
+ mon_dico["NOEUD"]='P1',
+ mon_dico["NOM_CMP"]='DY'
+ mon_dico["VALE"]=EPSINI['EPXY']
+ LIST_AFFE.append(mon_dico)
+ mon_dico={}
+ mon_dico["NOEUD"]='P2'
+ mon_dico["NOM_CMP"]='DX'
+ mon_dico["VALE"]=EPSINI['EPXY']
+ LIST_AFFE.append(mon_dico)
+ __DEP_INI=CREA_CHAMP(MAILLAGE=__MA,
+ OPERATION='AFFE',
+ TYPE_CHAM='NOEU_DEPL_R',
+ AFFE=LIST_AFFE)
+ init_dico['DEPL']=__DEP_INI
+# IMPR_RESU(RESU=_F(CHAM_GD=__DEP_INI))
+
+
+
+
+# -- Deroulement du calcul
+ motscles={}
+ if COMP_INCR :
+ motscles['COMP_INCR'] = COMP_INCR.List_F()
+ if COMP_ELAS :
+ motscles['COMP_ELAS'] = COMP_ELAS.List_F()
+ motscles['CONVERGENCE'] = CONVERGENCE.List_F()
+ motscles['NEWTON'] = NEWTON.List_F()
+ if RECH_LINEAIRE :
+ motscles['RECH_LINEAIRE'] = RECH_LINEAIRE.List_F()
+ motscles['INCREMENT'] = INCREMENT.List_F()
+
+ if SUIVI_DDL :
+ motscles['SUIVI_DDL'] = SUIVI_DDL.List_F()
+
+ if ARCHIVAGE :
+ motscles['ARCHIVAGE'] = ARCHIVAGE.List_F()
+
+ if etatinit == 1 :
+
+ __EVOL = STAT_NON_LINE(
+ MODELE = __MO,
+ CHAM_MATER = __CHMAT,
+ ETAT_INIT=init_dico,
+ EXCIT = l_char,**motscles)
+
+
+ else:
+
+ __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')
+ )
+
+# IMPR_RESU(RESU=_F(RESULTAT=__EVOL))
+
+# -- 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,TITRE='TABLE ',
+ 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
+
+
+
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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',
+ '<INVALID_REGEXP> %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 = '<S> <TEST_FICHIER> '+texte_erreur
+ # aujourd'hui, je ne sais pas déclencher autre chose que <F>...
+ 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)<epsi:
+ s = '0'
+ else:
+ #s = format_float % float(x)
+ s = format_func(xv, nbch, exp_epsi)
+ except ValueError:
+ s = x
+ if info >= 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)
+
--- /dev/null
+#@ MODIF __init__ Messages DATE 20/02/2007 AUTEUR LEBOUVIER F.LEBOUVIER
+# -*- 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.
+# ======================================================================
--- /dev/null
+#@ MODIF algeline Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ option invalide !
+"""),
+
+2: _("""
+ probleme objet %(k1)s .fetg . il est de longueur impaire !
+"""),
+
+3: _("""
+ pb division par zerodans la construction du alpha !
+"""),
+
+4: _("""
+ valeur inferieure a la tolerance
+"""),
+
+5: _("""
+ pour l'instant, on ne traiteque le cas des matrices reelles.
+"""),
+
+7: _("""
+ Impossible de récupérer les valeurs dans la table.
+"""),
+
+8: _("""
+ attention
+"""),
+
+9: _("""
+ l'origine de l'obstacle est mal positionnee par rapport au noeud de choc de numero %(k1)s , de nom %(k2)s , par rapport au jeu.
+"""),
+
+10: _("""
+ l'origine de l'obstacle est mal positionnee par rapport au noeud de choc de numero %(k1)s , de nom %(k2)s , dans le plan normal au choc.
+"""),
+
+11: _("""
+ la normale a l'obstacle fait un angle nul avec le noeud de choc de numero %(k1)s , avec l'axe du tube.
+"""),
+
+12: _("""
+ la normale a l'obstacle fait un angle inferieur a 10 degres au noeud de choc de numero %(k1)s , avec l'axe du tube.
+"""),
+
+13: _("""
+ la normale a l'obstacle fait un angle inferieur a 45 degres au noeud de choc de numero %(k1)s , avec l'axe du tube.
+"""),
+
+14: _("""
+ les mailles doivent etre de type quad4 ou tri3 et non de type %(k1)s
+"""),
+
+15: _("""
+ l'angle au noeud %(k1)s forme par le vecteur normal de la maille %(k2)s et le vecteur normal de la maille %(k3)s est superieur a 90 degres et vaut %(k4)s degres.
+"""),
+
+16: _("""
+ pref_noeud est trop long ou pref_nume est trop grand
+"""),
+
+17: _("""
+ pref_maille est trop long ou pref_nume est trop grand
+"""),
+
+18: _("""
+ mot-cle facteur %(k1)s non traite
+"""),
+
+19: _("""
+ le group_no %(k1)s n'existe pas
+"""),
+
+20: _("""
+ le nombre de noeuds n'est pas le meme pour les deux group_no
+"""),
+
+21: _("""
+ les group_no ne contiennent qu'un seul noeud
+"""),
+
+22: _("""
+ creation quad4 degenere
+"""),
+
+23: _("""
+ le noeud %(k1)s n est pas equidistant des noeuds %(k2)s et %(k3)s pour la maille : %(k4)s . ameliorez le maillage. on arrete pour eviter des resultats faux
+"""),
+
+24: _("""
+ valeur negative ou nulle pour la puissance quatrieme du nombre d ondes => valeur de l ordre de coque mal determinee => il faut affiner le maillage sur les coques : reduire le pas angulaire pour definir plus de noeuds sur les contours
+"""),
+
+25: _("""
+ nombre de noeuds sur la generatrice inferieur a 4 donc insuffisant pour determiner les coefficients de la deformee axiale
+"""),
+
+26: _("""
+ deplacement radial maximum nul sur la generatrice
+"""),
+
+27: _("""
+ -> Il y a au moins un point d'une zone dont la vitesse réduite locale est
+ extérieure à la zone des vitesses réduites explorées expérimentalement.
+ -> Risque & Conseil :
+ Les valeurs sont extrapolees en dehors des donnees d'essais.
+ Les resultats du calcul seront a prendre avec circonspection.
+"""),
+
+
+
+
+
+
+29: _("""
+ type inconnu
+"""),
+
+30: _("""
+ somme des carres des termes diagonaux nulle => critere indefini
+"""),
+
+31: _("""
+ somme des carres des termes diagonaux negligeable => critere indefini
+"""),
+
+32: _("""
+ cham_cine /= o. sur des ddls non elimines.
+"""),
+
+33: _("""
+ la carte des caracteristiques geometriques des elements de poutre n existe pas
+"""),
+
+34: _("""
+ caracteristiques geometriques elementaires de poutre non definies pour la maille %(k1)s
+"""),
+
+35: _("""
+ l une ou l autre des composantes <r1> et <r2> n existe pas dans le champ de la grandeur
+"""),
+
+36: _("""
+ la section de l element de poutre considere n est pas circulaire
+"""),
+
+37: _("""
+ rayon exterieur nul a l une ou l autre des extremites de l element considere
+"""),
+
+38: _("""
+ le rayon exterieur n est pas constant sur l element considere
+"""),
+
+39: _("""
+ arret justifie par le message ci-dessus.
+"""),
+
+40: _("""
+ option de calcul non prevue !
+"""),
+
+41: _("""
+ option non prevue en non compile mpi
+"""),
+
+42: _("""
+ les vitesses reduites des fichiers .70 et .71 ne sont pas coherentes
+"""),
+
+43: _("""
+ les vitesses etudiees doivent etre strictement positives. le sens de l ecoulement est defini par le choix de la configuration experimentale grappe2 de reference
+"""),
+
+44: _("""
+ seuls les cas d'enceintes circulaires et rectangulaires sont traites.
+"""),
+
+45: _("""
+ le nombre total de tubes ne correspond pas a la somme des tubes des groupes d'equivalence
+"""),
+
+46: _("""
+ la direction des tubes n est pas parallele a l un des axes.
+"""),
+
+47: _("""
+ la direction des tubes n est la meme que celle de l axe directeur.
+"""),
+
+48: _("""
+ les vitesses etudiees doivent toutes etre du meme signe, sinon il y a ambiguite sur les positions d entree/sortie
+"""),
+
+49: _("""
+ nombre de noeuds insuffisant sur la coque interne
+"""),
+
+50: _("""
+ coque interne de longueur nulle
+"""),
+
+51: _("""
+ nombre de noeuds insuffisant sur la coque externe
+"""),
+
+52: _("""
+ coque externe de longueur nulle
+"""),
+
+53: _("""
+ le domaine de recouvrement des coques interne et externe n existe pas
+"""),
+
+54: _("""
+ la carte des caracteristiques geometriques des elements de coque n existe pas. il faut prealablement affecter ces caracteristiques aux groupes de mailles correspondant aux coques interne et externe, par l operateur <affe_cara_elem>
+"""),
+
+55: _("""
+ ce programme suppose que la grandeur "cacoqu" a 2 entiers codes
+"""),
+
+56: _("""
+ les caracteristiques des elements de coque n ont pas ete affectees distinctement a l un ou(et) l autre des groupes de mailles associes aux coques interne et externe
+"""),
+
+57: _("""
+ la composante <ep> n existe pas dans le champ de la grandeur
+"""),
+
+58: _("""
+ pas d epaisseur affectee aux elements de la coque interne
+"""),
+
+59: _("""
+ epaisseur de la coque interne nulle
+"""),
+
+60: _("""
+ pas d epaisseur affectee aux elements de la coque externe
+"""),
+
+61: _("""
+ epaisseur de la coque externe nulle
+"""),
+
+62: _("""
+ incoherence dans la definition de la configuration : le rayon d une des coques est nul
+"""),
+
+63: _("""
+ incoherence dans la definition de la configuration : jeu annulaire negatif ou nul
+"""),
+
+64: _("""
+ element %(k1)s non traite
+"""),
+
+65: _("""
+ on ne peut depasser %(k1)s mailles
+"""),
+
+66: _("""
+ coefficient de type non prevu
+"""),
+
+67: _("""
+ caract. de matrice non prevue
+"""),
+
+68: _("""
+ la zone d excitation du fluide, de nom %(k1)s , est reduite a un point.
+"""),
+
+69: _("""
+ la zone d excitation du fluide, de nom %(k1)s , recoupe une autre zone.
+"""),
+
+70: _("""
+ le noeud d application de l excitation doit appartenir a deux mailles, ni plus ni moins
+"""),
+
+71: _("""
+ le noeud d application de l excitation est situe a la jonction de deux elements de diametres exterieurs differents => ambiguite pour le dimensionnement de l excitation
+"""),
+
+72: _("""
+ autres configurations non traitees
+"""),
+
+73: _("""
+ le cylindre %(k1)s n a pas un axe rectiligne
+"""),
+
+74: _("""
+ erreur dans carces
+"""),
+
+75: _("""
+ la composante n'est pas dans le chamelem
+"""),
+
+76: _("""
+ resolution impossible matrice singuliere, peut etre a cause des erreurs d arrondis
+"""),
+
+77: _("""
+ erreur dans l'inversion de la masse
+"""),
+
+78: _("""
+ ererur dans la recherche des valeurs propres - pas de convergence de l algorithme qr
+"""),
+
+79: _("""
+ le nombre de modes resultats: %(k1)s n est pas correct
+"""),
+
+80: _("""
+ les cylindres %(k1)s et %(k2)s se touchent
+"""),
+
+81: _("""
+ le cylindre %(k1)s deborde de l enceinte circulaire
+"""),
+
+82: _("""
+ pas de groupes de noeuds a creer
+"""),
+
+83: _("""
+ la grille numero %(k1)s deborde du domaine de definition du faisceau
+"""),
+
+84: _("""
+ les grilles numero %(k1)s et numero %(k2)s se recouvrent
+"""),
+
+85: _("""
+ cas d enceintes circulaire etet rectangulaire seulement
+"""),
+
+86: _("""
+ pas de groupe de mailles sous la racine commune %(k1)s
+"""),
+
+87: _("""
+ pas de groupes de mailles sous la racine commune
+"""),
+
+88: _("""
+ un cote de l enceinte est delongueur nulle
+"""),
+
+89: _("""
+ les quatres sommets de l enceinte ne forment pas un rectangle
+"""),
+
+90: _("""
+ le cylindre %(k1)s deborde de l enceinte rectangulaire
+"""),
+
+91: _("""
+ la renumerotation %(k1)s est incompatible avec le solveur multi_frontal.
+"""),
+
+92: _("""
+ absence de relation de comportement de type <elas> pour le materiau constitutif de la coque interne
+"""),
+
+93: _("""
+ absence d un ou de plusieurs parametres de la relation de comportement <elas> pour le materiau constitutif de la coque interne
+"""),
+
+94: _("""
+ valeur du module d young nulle pour le materiau constitutif de la coque interne
+"""),
+
+95: _("""
+ absence de relation de comportement de type <elas> pour le materiau constitutif de la coque externe
+"""),
+
+96: _("""
+ absence d un ou de plusieurs parametres de la relation de comportement <elas> pour le materiau constitutif de la coque externe
+"""),
+
+97: _("""
+ valeur du module d young nulle pour le materiau constitutif de la coque externe
+"""),
+
+98: _("""
+ les deux coques interne et externe sont en mouvement pour le %(k1)s ieme mode.
+"""),
+
+99: _("""
+ non convergence pour le calcul des modes en eau au repos
+"""),
+}
--- /dev/null
+#@ MODIF algeline2 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+2: _("""
+ l une des valeurs propres de la matrice du probleme modal generalise en eau au repos n est pas reelle
+"""),
+
+3: _("""
+ calcul des modes en eau au repos : une des valeurs propres obtenues est nulle
+"""),
+
+4: _("""
+ erreur sur la recherche des lagranges.
+"""),
+
+5: _("""
+ mot cle facteur incorrect.
+"""),
+
+6: _("""
+ type de matrice " %(k1)s " inconnu.
+"""),
+
+7: _("""
+ on ne traite pas cette option.
+"""),
+
+8: _("""
+ on ne peut pas combiner une matrice non symetrique dans une matrice symetrique.
+"""),
+
+9: _("""
+ les matrices a combiner ne sont pas construites sur le meme maillage
+"""),
+
+10: _("""
+ charges cinematiques differentes.
+"""),
+
+11: _("""
+ les "matass" " %(k1)s " et " %(k2)s " n'ont le meme domaine de definition.
+"""),
+
+12: _("""
+ attention: une dimesion nulle ou nmax.lt.dmax(1,n)
+"""),
+
+13: _("""
+ attention: une dimension negative ou nulle
+"""),
+
+14: _("""
+ attention: les dimensions des tableaux ne sont pas correctes
+"""),
+
+15: _("""
+ pas de charge critique dans l intervalle demande
+"""),
+
+16: _("""
+ %(k1)s charges critiques dans l intervalle demande
+"""),
+
+17: _("""
+ au moins une frequence calculee exterieure a la bande demandee
+"""),
+
+18: _("""
+ les matrices " %(k1)s " et " %(k2)s " n'ont pas le meme domaine de definition
+"""),
+
+19: _("""
+ problemes a l'allocation des descripteurs de la matrice " %(k1)s "
+"""),
+
+20: _("""
+ l'argument de "bloc_debut" est plus grand que le nombre de bloc de la matrice
+"""),
+
+21: _("""
+ l'argument de "bloc_fin" doit etre strictement positif
+"""),
+
+22: _("""
+ la numerotation des inconnues est incoherente entre la matrice et le second membre.
+"""),
+
+23: _("""
+ %(k1)s et %(k2)s n'ont pas le meme domaine de definition.
+"""),
+
+24: _("""
+ la matrice a des ddls elimines. il faut utiliser le mot cle cham_cine.
+"""),
+
+25: _("""
+ la matrice et le second membre sont de type different.
+"""),
+
+26: _("""
+ le second membre et le champ cinematiquesont de type different.
+"""),
+
+27: _("""
+ la matrice est d'un type inconnu de l'operateur.
+"""),
+
+28: _("""
+ err_31a: les "matr_asse" %(k1)s " et " %(k2)s " ne sont pas combinables.
+"""),
+
+29: _("""
+ la valeur d'entree min et superieure ou egale a la valeur d'entree sup
+"""),
+
+30: _("""
+ les matrices " %(k1)s " et " %(k2)s " n'ont pas le meme domaine de definition.
+"""),
+
+31: _("""
+ trop de re-ajustement de la borne minimale.
+"""),
+
+32: _("""
+ trop de re-ajustement de la borne maximale.
+"""),
+
+33: _("""
+ type de mode inconnu: %(k1)s
+"""),
+
+34: _("""
+ il n'est pas permis de modifier un objet pere
+"""),
+
+35: _("""
+ mode non calcule a partir de matrices assemblees
+"""),
+
+36: _("""
+ normalisation impossible, le point n'est pas present dans le modele.
+"""),
+
+37: _("""
+ normalisation impossible, la composante n'est pas presente dans le modele.
+"""),
+
+38: _("""
+ manque des parametres entiers
+"""),
+
+39: _("""
+ manque des parametres reels
+"""),
+
+40: _("""
+ manque des parametres caracteres
+"""),
+
+41: _("""
+ normalisation impossible, aucune composante n'est presente dans le modele.
+"""),
+
+42: _("""
+ normalisation impossible, le noeud n'est pas present dans le modele.
+"""),
+
+43: _("""
+ on ne tient pas compte du mot cle facteur "mode_signe" pour des "mode_meca_c"
+"""),
+
+44: _("""
+ " %(k1)s " type de mode non traite
+"""),
+
+45: _("""
+ calcul de flambement et absence du mot cle char_crit ne sont pas compatibles
+"""),
+
+46: _("""
+ calcul de flambement et matrice d'amortissement ne sont pas compatibles
+"""),
+
+47: _("""
+ le nombre de frequences demandees est incorrect.
+"""),
+
+48: _("""
+ nmax_iter_ ajuste ou separe est negatif
+"""),
+
+49: _("""
+ nmax_iter est negatif
+"""),
+
+50: _("""
+ prec_ ajuste ou separe est irrealiste
+"""),
+
+51: _("""
+ prec est irrealiste (inferieure a 1.e-70)
+"""),
+
+52: _("""
+ pas de valeur donnee, separation impossible
+"""),
+
+53: _("""
+ une seule valeur donnee, separation impossible
+"""),
+
+54: _("""
+ la suite des valeurs donnees n'est pas croissante
+"""),
+
+55: _("""
+ mot cle amor_reduit impossible pour cas generalise
+"""),
+
+56: _("""
+ mot cle amor_reduit impossible si option differente de proche
+"""),
+
+57: _("""
+ nombre different d'arguments entre les mots cles amor_reduit et freq
+"""),
+
+58: _("""
+ les matrices " %(k1)s " et " %(k2)s " sont incompatibles entre elles
+"""),
+
+59: _("""
+ presence de frequences negatives dans les donnees.
+"""),
+
+60: _("""
+ trop de reajustement d'une borne de l'intervalle de recherche.
+"""),
+
+61: _("""
+ erreur trop de reajustementd'une borne de l'intervalle de recherche.
+"""),
+
+62: _("""
+ pas de valeurs propres dans la bande de calcul, le concept ne peut etre cree dans ces conditions.
+"""),
+
+63: _("""
+ " %(k1)s " option inconnue.
+"""),
+
+64: _("""
+ le nombre param_ortho_soren n'est pas valide.
+"""),
+
+65: _("""
+ detection des modes de corps rigide n'est utilisee qu'avec tri_diag
+"""),
+
+66: _("""
+ option bande non autorisee pour un probleme avec amortissement
+"""),
+
+67: _("""
+ approche imaginaire ou complexe et frequence nulle incompatible
+"""),
+
+68: _("""
+ option modes de corps rigide non utilisee avec amortissement
+"""),
+
+69: _("""
+ pour le probleme generalise ou quadratique complexe on utilise seulement l'algorithme de sorensen
+"""),
+
+70: _("""
+ probleme complexe et frequence nulle incompatible
+"""),
+
+71: _("""
+ calcul quadratique par la methode de sorensen et frequence nulle incompatible
+"""),
+
+72: _("""
+ la dimension du sous espace de travail est inferieure au nombre de modes rigides
+"""),
+
+73: _("""
+ pas de verification par sturm pour le probleme quadratique
+"""),
+
+74: _("""
+ erreur de verification
+"""),
+
+75: _("""
+ conclusion du utmess-e precedent
+"""),
+
+76: _("""
+ 3 ou 6 valeurs pour le mot cle "direction"
+"""),
+
+77: _("""
+ pour le mot cle facteur "pseudo_mode", il faut donner la matrice de masse.
+"""),
+
+78: _("""
+ la direction est nulle.
+"""),
+
+79: _("""
+ base modale 1 et 2 avec numerotations de taille incompatible
+"""),
+
+80: _("""
+ base modale 1 et 2 avec numerotations incompatibles
+"""),
+
+81: _("""
+ base modale et matrice avec numerotations incompatibles
+"""),
+
+82: _("""
+ nombre de modes et d amortissements differents
+"""),
+
+83: _("""
+ nombre de modes et d amortissements de connors differents
+"""),
+
+84: _("""
+ nombre d amortissements different du nombre de modes calcules
+"""),
+
+85: _("""
+ inversion vmin <=> vmax
+"""),
+
+86: _("""
+ type de matrice inconnu
+"""),
+
+87: _("""
+ pas de produit car le cham_no %(k1)s existe deja.
+"""),
+
+
+
+
+
+
+
+
+89: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle crea_fiss.
+"""),
+
+90: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle line_quad.
+"""),
+
+91: _("""
+ crea_maillage : l'option line_quad ne traite pas les macros mailles
+"""),
+
+92: _("""
+ crea_maillage : l'option line_quad ne traite pas les absc_curv
+"""),
+
+93: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle quad_line.
+"""),
+
+94: _("""
+ crea_maillage : l'option quad_line ne traite pas les macros mailles
+"""),
+
+95: _("""
+ crea_maillage : l'option quad_line ne traite pas les absc_curv
+"""),
+
+96: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle modi_maille.
+"""),
+
+97: _("""
+ une seule occurrence de "quad_tria3"
+"""),
+
+98: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle coqu_volu.
+"""),
+
+99: _("""
+ pas de maille a modifier
+"""),
+}
--- /dev/null
+#@ MODIF algeline3 Messages DATE 23/01/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle crea_maille.
+"""),
+
+2: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle crea_group_ma.
+"""),
+
+3: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle crea_poi1.
+"""),
+
+4: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle repere.
+"""),
+
+5: _("""
+ sous le mot-cle "nom_orig" du mot-facteur "repere", on ne peut donner que les mots "cdg" ou "torsion".
+"""),
+
+6: _("""
+ maille non creee %(k1)s
+"""),
+
+7: _("""
+ le group_ma : %(k1)s existe deja.
+"""),
+
+8: _("""
+ le mot-cle maillage est obligatoire avec le mot-cle detr_group_ma.
+"""),
+
+9: _("""
+ mode non compatible.
+"""),
+
+10: _("""
+ masses effectives unitaires non calculees par norm_mode
+"""),
+
+11: _("""
+ structure resultat vide
+"""),
+
+12: _("""
+ nombre de noeuds sur le contour insuffisant pour determiner correctement les ordres de coque
+"""),
+
+13: _("""
+ azimut indefini pour un des noeuds de la coque
+"""),
+
+14: _("""
+ ordre de coque nul pour l un des modes pris en compte pour le couplage. le modele de resolution ne supporte pas une telle valeur.
+"""),
+
+15: _("""
+ determination du drmax et du dephasage pour le mode %(k1)s : le determinant du systeme issu du moindre carre est nul
+"""),
+
+16: _("""
+ determination du dephasage pour le mode %(k1)s : theta0 indefini
+"""),
+
+17: _("""
+ pivot nul dans la resolution du systeme complexe
+"""),
+
+18: _("""
+ annulation du numerateur dans l expression d un coefficient donnant la solution du probleme fluide instationnaire pour umoy = 0
+"""),
+
+19: _("""
+ determination des valeurs propres de l operateur differentiel : existence d une racine double
+"""),
+
+20: _("""
+ la %(k1)s eme valeur propre est trop petite
+"""),
+
+21: _("""
+ la matr_asse %(k1)s n"est pas stockee "morse" le gcpc est donc impossible.
+"""),
+
+22: _("""
+ conflit une matrice stockee morse ne peut avoir qu"un bloc
+"""),
+
+23: _("""
+ le preconditionnement ldlt_inc d"une matrice complexe n"est pas implemente
+"""),
+
+24: _("""
+ stop 1:erreur programation.
+"""),
+
+25: _("""
+ erreur a l'appel de metis
+"""),
+
+26: _("""
+ pb affichage feti dans preml1 !
+"""),
+
+27: _("""
+ solveur interne ldlt pour l'instant proscrit avec feti
+"""),
+
+28: _("""
+ solveur interne mumps pour l'instant proscrit avec feti
+"""),
+
+29: _("""
+ solveur interne gcpc pour l'instant proscrit avec feti
+"""),
+
+30: _("""
+ matrices a et b incompatibles pour l operation *
+"""),
+
+31: _("""
+ la section de la poutre doit etre constante.
+"""),
+
+32: _("""
+ structure non tubulaire
+"""),
+
+33: _("""
+ on ne traite pas ce type de cham_elem, icoef different de 1
+"""),
+
+34: _("""
+ le cham_no : %(k1)s n"existe pas
+"""),
+
+35: _("""
+ la matr_asse %(k1)s n"est pas stockee "morse"
+"""),
+
+36: _("""
+ conflit une matrice stockee morse ne peut avoir q'un seul bloc
+"""),
+
+37: _("""
+ gcpc n"est pas prevu pour une matrice complexe
+"""),
+
+38: _("""
+ pas de matrice de preconditionnement : on s'arrete
+"""),
+
+39: _("""
+ le cham_no : %(k1)s n"existe pas ==> reprise impossible ==> initialisation par le vecteur nul
+"""),
+
+40: _("""
+ erreur : lmat est nul
+"""),
+
+41: _("""
+ la matrice possede des ddls imposes elimines: il faut un vcine
+"""),
+
+42: _("""
+ la matrice et le vecteur cinematique ne contiennent pas des valeurs de meme type
+"""),
+
+43: _("""
+ la matrice et le second membre ne contiennent pas des valeurs de meme type
+"""),
+
+44: _("""
+ la methode de resolution: %(k1)s est inconnue. on attend ldlt,gcpc, mult_fro ou feti
+"""),
+
+45: _("""
+ methode de bathe et wilson : convergence non atteinte
+"""),
+
+46: _("""
+ recherche de corps rigide pour l'instant proscrite avec matrice non-symetrique
+"""),
+
+47: _("""
+ recherche de corps rigide pour l'instant proscrite avec matrice complexe
+"""),
+
+48: _("""
+ nom_nume_ddl %(k1)s non trouve
+"""),
+
+49: _("""
+ attention plus de six modes de corps rigides detectes
+"""),
+
+50: _("""
+ ! attention %(k1)s .valf existe deja !
+"""),
+
+51: _("""
+ le tableau b est insuffisamment dimensionne pour l operation *
+"""),
+
+52: _("""
+ augmenter la taille de la pile
+"""),
+
+53: _("""
+ toutes les frequencessont des frequences de corps rigide
+"""),
+
+54: _("""
+ calcul des nume_modematrice non inversible pour la frequence consideree
+"""),
+
+55: _("""
+ probleme a la resolution du systeme reduit.
+"""),
+
+56: _("""
+ valeur propre infinie trouvee
+"""),
+
+57: _("""
+ methode qr : probleme de convergence
+"""),
+
+58: _("""
+ il y a des valeurs propres tres proches
+"""),
+
+59: _("""
+ il y a des vp tres proches
+"""),
+
+60: _("""
+ la matrice : %(k1)s a une numerotation incoherente avec le nume_ddl.
+"""),
+
+61: _("""
+ le concept mode " %(k1)s " a ete cree avec les matrices matr_a: %(k2)s , matr_b: %(k3)s , matr_c: %(k4)s et non avec celles passees en arguments.
+"""),
+
+62: _("""
+ le concept mode " %(k1)s " a ete cree avec les matrices matr_a: %(k2)s , matr_b: %(k3)s et non avec celles passees en arguments.
+"""),
+
+63: _("""
+ le systeme a resoudre n'a pas de ddl actif.
+"""),
+
+64: _("""
+ on trouve plus de 9999valeurs propres dans la bande demandee
+"""),
+
+65: _("""
+ la matrice de raideur est numeriquement singuliere (malgre la strategie de decalage) la valeur de decalage est une valeur propre ou la matrice est non inversible.
+"""),
+
+66: _("""
+ -> La borne minimale de la bande de fréquences est une valeur propre !
+ Malgré la stratégie de décalage, la matrice de raideur est numériquement
+ singulière.
+ -> Risque & Conseil :
+ Augmenter (ou diminuer) la fréquence (ou la charge critique dans le cas du calcul de
+ flambement) qui définit la borne minimale de la bande de fréquence.
+"""),
+
+67: _("""
+ la matrice de raideur est numeriquement singuliere (malgre la strategie de decalage) la borne maximale de la bande est une valeur propre. on poursuit tout de meme
+"""),
+
+68: _("""
+ la matrice de raideur est singuliere malgre la strategie de decalage (ie structure avec des modes de corps solide).
+"""),
+
+69: _("""
+ option %(k1)s non reconnue.
+"""),
+
+70: _("""
+ type des valeurs variable d'un mode a l'autre, recuperation impossible.
+"""),
+
+71: _("""
+ nombre d'equations variable d'un mode a l'autre, recuperation impossible.
+"""),
+
+72: _("""
+ probleme interne arpack
+"""),
+
+73: _("""
+ probleme taille workd/l -> augmenter dim_sous_espace
+"""),
+
+74: _("""
+ probleme interne lapack
+"""),
+
+75: _("""
+ probleme construction vecteur initial --> si possible diminuer nmax_freq
+"""),
+
+76: _("""
+ probleme interne lapack, routine flahqr (forme de schur)
+"""),
+
+77: _("""
+ probleme interne lapack, routine ftrevc (vecteurs propres)
+"""),
+
+78: _("""
+ aucune valeur propre a la precision requise --> augmenter prec_soren ou nmax_iter_soren ou augmenter dim_sous_espace
+"""),
+
+79: _("""
+ la position modale d'une des frequences est negative ou nulle, votre systeme matriciel est surement fortement singulier (ceci correspond generalement a un probleme dans la modelisation).
+"""),
+
+80: _("""
+ mode a creer avant appel a vpstor
+"""),
+
+81: _("""
+ " %(k1)s " argument du mot cle "option" pour le calcul des frequences est invalide.
+"""),
+
+82: _("""
+ pour l'option "bande" il faut exactement 2 frequences.
+"""),
+
+83: _("""
+ frequence min. plus grande ou egale a la frequence max.
+"""),
+
+84: _("""
+ pour l'option "centre" il faut exactement 1 frequence.
+"""),
+
+85: _("""
+ pour l'option "plus_petite" les frequences de "freq" sont ignorees.
+"""),
+
+86: _("""
+ pour l'option "bande" il faut exactement 2 charges critiques.
+"""),
+
+87: _("""
+ charge crit. min. plus grande ou egale a la charge crit. max.
+"""),
+
+88: _("""
+ pour l'option "centre" il faut exactement 1 charge critique.
+"""),
+
+89: _("""
+ pour l'option "plus_petite" les charges critiques de "char_crit" sont ignorees.
+"""),
+
+90: _("""
+ objet .refe/.refa/.celk inexistant.
+"""),
+
+91: _("""
+ cham_no non feti !
+"""),
+
+92: _("""
+ liste de cham_no a concatener heterogene
+"""),
+
+93: _("""
+ les cham_nos %(k1)s et %(k2)s sont de type inconnu %(k3)s
+"""),
+
+94: _("""
+ le cham_no %(k1)s de type %(k2)s ne peut etre copie dans le cham_no %(k3)s de type %(k4)s
+"""),
+
+95: _("""
+ champ a representation constante non traite.
+"""),
+
+96: _("""
+ chout non feti !
+"""),
+
+97: _("""
+ type de tri inconnu
+"""),
+
+98: _("""
+ probleme interne lapack, routine dlahqr (forme de schur)
+"""),
+
+99: _("""
+ probleme interne lapack, routine dtrevc (vecteurs propres)
+"""),
+}
--- /dev/null
+#@ MODIF algeline4 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ Seules les méthodes de résolution LDLT et MULT_FRONT sont autorisées.
+"""),
+
+
+3: _("""
+ non convergence nombre d'iterations: %(i1)d
+ norme du residu abs: %(r1)f
+ norme du residu rel: %(r2)f
+"""),
+
+4: _("""
+ manque de memoire memoire disponible %(i1)d et memoire necessaire %(i2)d
+"""),
+
+5: _("""
+ erreur donnees noeud deja existant : %(k1)s
+"""),
+
+
+
+
+
+
+7: _("""
+ erreur donnees maille deja existante : %(k1)s
+"""),
+
+
+
+
+
+
+9: _("""
+ erreur donnees group_ma deja existant : %(k1)s
+"""),
+
+
+
+
+
+
+
+
+11: _("""
+ erreur donnees group_no deja existant : %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+17: _("""
+ inigpc %(i1)d
+"""),
+
+
+
+
+
+
+
+
+19: _("""
+ Matrice masse non définie, il faudrait essayer l'autre algorithme de résolution.
+"""),
+
+
+
+
+
+
+
+
+21: _("""
+ manque de place memoire longueur de bloc insuffisante: %(i1)d
+ le super-noeud %(i2)d
+ neccessite un bloc de %(i3)d
+"""),
+
+
+
+
+
+
+
+
+23: _("""
+ par nueq n'est pas l'identite.indice %(i1)d nueq %(i2)d
+"""),
+
+24: _("""
+ %(k1)s pour le mot cle : %(k2)s noeud : %(k3)s composante : %(k4)s
+"""),
+
+25: _("""
+ combinaison non prevue type resultat : %(k1)s type matrice : %(k2)s
+ type constante: %(k3)s
+"""),
+
+
+
+
+
+
+27: _("""
+ combinaison non prevue type resultat : %(k1)s type matrice : %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+31: _("""
+ combinaison non prevue type resultat : %(k1)s
+"""),
+
+32: _("""
+ charge critique retenue : %(r1)f numero de mode stocke %(i1)d
+"""),
+
+33: _("""
+ la normalisation doit se faire en place et donc il est impossible d'avoir comme concept produit %(k1)s
+ et %(k2)s
+ comme concept d'entree. %(k3)s
+ comme le dit la sagesse populaire, on ne peut avoir le beurre et l'argent du beurre (de charente poitou). %(k4)s
+"""),
+
+34: _("""
+ erreur dans les donnees la masse n existe pas dans la table %(k1)s
+"""),
+
+
+
+
+
+
+
+
+36: _("""
+ l'option de normalisation %(k1)s n'est pas implantee. %(i1)d
+"""),
+
+37: _("""
+ probleme(s) rencontre(s) lors de la factorisation de la matrice : %(k1)s
+"""),
+
+38: _("""
+ appel errone : code retour de rsexch : %(i1)d pb cham_no %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+42: _("""
+ pas de produit car les valeurs de la matrice sont %(k1)s
+ et celles du cham_no sont %(k2)s
+"""),
+
+43: _("""
+ la maille de nom %(k1)s existe deja %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+55: _("""
+ ***** alarme *****pas d'extraction pour %(k1)s
+ pour le numero d'ordre %(i1)d
+"""),
+
+56: _("""
+ ***** alarme *****pas de mode extrait pour %(k1)s
+"""),
+
+57: _("""
+ ***** alarme *****nume_mode identique pour le %(i1)d
+ mode d'ordre %(i2)d
+"""),
+
+58: _("""
+
+ probleme dans le preconditionnement de la matrice matas par ldlt imcomplet
+ pivot nul a la ligne : %(i1)d
+"""),
+
+
+
+
+
+
+
+
+60: _("""
+ incoherence n2 nbddl sans lagranges %(i1)d nbddl reconstitues %(i2)d
+"""),
+
+61: _("""
+ pas de mode statique pour le noeud : %(k1)s et sa composante : %(k2)s
+"""),
+
+62: _("""
+ pour les modes statiques. on attend un : %(k1)s noeud : %(k2)s
+ cmp : %(k3)s
+"""),
+
+63: _("""
+ champ inexistant.pb champ : %(k1)s noeud : %(k2)s cmp : %(k3)s
+"""),
+
+64: _("""
+ detection d'un terme nul sur la sur diagonale valeur de beta %(r1)f
+ valeur de alpha %(r2)f
+"""),
+
+65: _("""
+ on a la %(i1)d -ieme frequence du systeme reduit est complexe = %(r1)f
+ et partie_imaginaire/reelle = %(r2)f
+"""),
+
+66: _("""
+ la val. pro. est: %(r1)f
+"""),
+
+
+
+
+
+
+
+
+68: _("""
+ la vp est: %(r1)f
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+74: _("""
+ calcul d' erreur modale une valeur propre reelle est detectee %(k1)s
+ a partir du couple (frequence, amortissement reduit) on ne peut plus l'a reconstruire %(k2)s
+ par convention l'erreur modale est fixee a : %(r1)f
+"""),
+
+75: _("""
+ probleme generalise complexe
+ amortissement (reduit) de decalage superieur en valeur absolu a %(r1)f
+ on le ramene a la valeur : %(r2)f
+"""),
+
+76: _("""
+ la reorthogonalisation diverge apres %(i1)d iteration(s) %(i2)d
+"""),
+
+77: _("""
+ l'option de normalisation %(k1)s n'est pas implantee.
+"""),
+
+
+
+
+
+
+
+
+79: _("""
+ champ inexistant %(k1)s impossible de recuperer neq %(k2)s
+"""),
+
+80: _("""
+ type de valeurs inconnu %(k1)s
+"""),
+
+81: _("""
+ champ inexistant pb champ %(k1)s
+"""),
+
+82: _("""
+ incoherence de cer tains parametres modaux propres a arpack
+ numero d'erreur %(i1)d
+"""),
+
+83: _("""
+ nombre de valeurs propres convergees %(i1)d
+ < nombre de frequences demandees %(i2)d
+ erreur arpack numero : %(i3)d
+ --> le calcul continue, la prochaine fois %(i4)d
+ --> augmenter dim_sous_espace = %(i5)d
+ --> ou nmax_iter_soren = %(i6)d
+ --> ou prec_soren = %(r1)f
+"""),
+
+
+
+
+
+
+
+
+85: _("""
+ appel errone mode numero %(i1)d position modale %(i2)d
+ code retour de rsexch : %(i3)d
+ pb cham_no %(k1)s
+"""),
+
+86: _("""
+ la reorthogonalisation diverge apres %(i1)d iteration(s) %(i2)d
+ vecteur traite : %(i3)d
+ vecteur teste : %(i4)d
+ arret de la reorthogonalisation %(k1)s
+"""),
+
+87: _("""
+ pour le probleme reduitvaleur(s) propre(s) reelle(s) : %(i1)d
+ valeur(s) propre(s) complexe(s) avec conjuguee : %(i2)d
+ valeur(s) propre(s) complexe(s) sans conjuguee : %(i3)d
+"""),
+
+88: _("""
+ votre probleme est fortement amorti.
+ valeur(s) propre(s) reelle(s) : %(i1)d
+ valeur(s) propre(s) complexe(s) avec conjuguee : %(i2)d
+ valeur(s) propre(s) complexe(s) sans conjuguee : %(i3)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+94: _("""
+ probleme quadratique complexe
+ amortissement (reduit) de decalage superieur en valeur absolu a %(r1)f
+ on le ramene a la valeur : %(r2)f
+"""),
+
+95: _("""
+ probleme quadratique
+ amortissement (reduit) de decalage superieur en valeur absolu a %(r1)f
+ on le ramene a la valeur : %(r2)f
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+98: _("""
+ nombre de valeurs propres convergees %(i1)d
+ < nombre de frequences demandees %(i2)d
+ erreur arpack numero : %(i3)d
+ --> le calcul continue, la prochaine fois %(i4)d
+ --> augmenter dim_sous_espace = %(i5)d
+ --> ou nmax_iter_soren = %(i6)d
+ --> ou prec_soren = %(r1)f
+ si votre probleme est fortement amorti %(i7)d
+ il est possible que des modes propres %(i8)d
+ non calcules soient sur-amortis %(i9)d
+ --> diminuez le nombre de frequences %(i10)d
+ demandees %(i11)d
+"""),
+
+
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF algeline5 Messages DATE 06/04/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4: _("""
+ erreur lapack (ou blas) au niveau de la routine %(k1)s
+ le parametre numero %(i1)d
+ n'a pas une valeur coherente %(i2)d
+"""),
+
+5: _("""
+ !! Attention, vous utilisez l'option de test FETI de l'interface.
+ On va donc simuler la résolution d'un système diagonal canonique,
+ pour provoquer un test d'ensemble de l'algorithme qui doit trouver
+ la solution U=1 sur tous les noeuds.
+ Vos résultats sont donc articiellement faussés pour les besoins de
+ ce test. Pour réaliser effectivement votre calcul, désactiver cette
+ option (INFO_FETI(12:12)='F' au lieu de 'T') !!
+"""),
+
+}
--- /dev/null
+#@ MODIF algorith Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+
+
+3: _("""
+ type de matrice inconnu.
+"""),
+
+4: _("""
+ points confondus
+"""),
+
+5: _("""
+ gradients confondus
+"""),
+
+
+
+
+
+10: _("""
+ impossible de diagonaliser la matrice de raideur en choc
+"""),
+
+11: _("""
+ puls(i) = 0. initialisation a puls0(i).
+"""),
+
+12: _("""
+ -> L'option 'ACCE_ABSOLU' est incorrectement traitée en multi appuis.
+ Sauf si les mouvements sont corrélés.
+ -> Risque & Conseil :
+ Assurez-vous que les mouvements sont décorrélés et indépendants.
+
+"""),
+
+13: _("""
+ le vect_elem n'existe pas : %(k1)s
+"""),
+
+14: _("""
+ champ non renseigne. il faut avoir utilise corich('e',...) sur: %(k1)s
+"""),
+
+15: _("""
+ impossible
+"""),
+
+16: _("""
+ les charges cinematiques sont pour l'instant proscrites avec feti
+"""),
+
+19: _("""
+ stop 3
+"""),
+
+20: _("""
+ on n'a pas pu extraire le premier champ des modes mecaniques.
+"""),
+
+21: _("""
+ le noeud %(k1)s n'appartient pas au maillage : %(k2)s
+"""),
+
+22: _("""
+ le groupe %(k1)s n'appartient pas au maillage : %(k2)s
+"""),
+
+23: _("""
+ le noeud %(k1)s n'est pas un noeud support.
+"""),
+
+24: _("""
+ le nombre de cas doit etre superieur a deux pour etre combine
+"""),
+
+25: _("""
+ donnees incompatibles.
+"""),
+
+26: _("""
+ le vecteur directeur du spectre est nul.
+"""),
+
+27: _("""
+ cas du mono_appui : vous avez deja donne un spectre pour cette direction.
+"""),
+
+28: _("""
+ erreur(s) rencontree(s) lors de la lecture des supports.
+"""),
+
+29: _("""
+ vous avez deja donne un spectre pour le support %(k1)s
+"""),
+
+30: _("""
+ on ne peut pas traiter du mono-appui et du multi-appui simultanement.
+"""),
+
+31: _("""
+ le noeud %(k1)s ne fait pas parti du maillage : %(k2)s
+"""),
+
+32: _("""
+ la numerotation n'est pas coherente avec le modele generalise si vous avez active l'option initial dans nume_ddl_gene faite de meme ici ! on arrete tout
+"""),
+
+33: _("""
+ dimensionement
+"""),
+
+34: _("""
+ il y a incohrence entre la loi de couplage de defi_materiau %(k1)s et la loi de couplage dans stat_non_line %(k2)s
+"""),
+
+35: _("""
+ les champs " %(k1)s " et " %(k2)s " n'ont pas le meme domaine de definition.
+"""),
+
+36: _("""
+ barsoum, hexa : bug !
+"""),
+
+37: _("""
+ barsoum, penta : bug !
+"""),
+
+38: _("""
+ barsoum, pyram : bug !
+"""),
+
+39: _("""
+ barsoum, quad : bug !
+"""),
+
+40: _("""
+ barsoum, tetra : bug !
+"""),
+
+41: _("""
+ barsoum, tria : bug !
+"""),
+
+42: _("""
+ beton_double_dp: increment de deformation plastique en traction negatif --> redecoupage auto du pas de temps
+"""),
+
+43: _("""
+ beton_double_dp: increment de deformation plastique en compression negatif --> redecoupage auto du pas de temps
+"""),
+
+44: _("""
+ integration elastoplastique de loi beton_double_dp : la condition d applicabilite sur la taille des elements n est pas respectee en compression.
+"""),
+
+45: _("""
+ integration elastoplastique de loi beton_double_dp : la condition d applicabilite sur la taille des elements n est pas respectee en compression pour la maille: %(k1)s
+"""),
+
+46: _("""
+ integration elastoplastique de loi beton_double_dp : la condition d applicabilite sur la taille des elements n est pas respectee en traction.
+"""),
+
+47: _("""
+ integration elastoplastique de loi beton_double_dp : la condition d applicabilite sur la taille des elements n est pas respectee en traction pour la maille: %(k1)s
+"""),
+
+48: _("""
+ -> Intégration élastoplastique de loi multi-critères beton_double_dp :
+ la contrainte équivalente est nulle pour la maille %(k1)s: le calcul
+ de la matrice tangente est impossible.
+ -> Risque & Conseil :
+
+"""),
+
+49: _("""
+ pour la loi beton_double_dp le parametre coef_elas_comp doit etre compris entre 0. et 100.
+"""),
+
+50: _("""
+ pour la loi beton_double_dp le parametre long_cara doit etre strictement positif
+"""),
+
+51: _("""
+ beton_double_dp: le cas des contraintes planes n esp pas traite pour ce modele.
+"""),
+
+52: _("""
+ resultat n'est pas en evol_noli
+"""),
+
+53: _("""
+ champ sief_elga non trouve
+"""),
+
+54: _("""
+ champ epsp_elno non trouve
+"""),
+
+55: _("""
+ champ vari_elno_elga non trouve
+"""),
+
+56: _("""
+ aucun champ initial trouve
+"""),
+
+57: _("""
+ le materiau depend de la temperature! il n'y a pas de champ de temperature ! le calcul est impossible
+"""),
+
+
+
+
+
+
+59: _("""
+ thlag-gleg pas possible
+"""),
+
+60: _("""
+ certains coefficients de masse ajoutee sont negatifs. verifiez l' orientation des normales des elements d' interface.convention adoptee : structure vers fluide
+"""),
+
+61: _("""
+ certains coefficients d amortissement ajoute sont negatifs. possibilited instabilitede flottement
+"""),
+
+62: _("""
+ erreur dans le calcul des valeurs propres de la matrice de raideur
+"""),
+
+63: _("""
+ valeurs propres de la matrice de raideur non reelles
+"""),
+
+64: _("""
+ valeurs propres de la matrice de raideur reelles negatives
+"""),
+
+65: _("""
+ erreur dans la selection des valeurs propres de la matrice de raideur
+"""),
+
+66: _("""
+ tailles des matrices incompatibles pour calcul matrice diagonale
+"""),
+
+67: _("""
+ option secante non valide
+"""),
+
+68: _("""
+ trop de familles de systemes de glissement. augmenter la limite actuelle (5)
+"""),
+
+69: _("""
+ trop de familles de systemes de glissement. modifier gerpas
+"""),
+
+70: _("""
+ nbsys=0
+"""),
+
+71: _("""
+ tailles incompatibles pour le produit matrice * vecteur
+"""),
+
+72: _("""
+ traitement non prevu pour le type d'obstacle demande
+"""),
+
+73: _("""
+ obstacle de type discret mal defini (un angle > pi).
+"""),
+
+
+
+
+
+
+77: _("""
+ pb a la resolution du systeme
+"""),
+
+78: _("""
+ cas 2d impossible
+"""),
+
+79: _("""
+ liaison de frottement incongrue
+"""),
+
+
+
+
+
+
+81: _("""
+ erreur contact - trop de reac. geom.
+"""),
+
+82: _("""
+ erreur pgmeur 1
+"""),
+
+
+
+
+
+
+
+
+89: _("""
+ vecteur diagnostic absent (dvlp)
+"""),
+
+90: _("""
+ operation inconnue sur le vecteur diagnostic (dvlp)
+"""),
+
+91: _("""
+ acces incorrect au vecteur diagnostic (dvlp)
+"""),
+
+92: _("""
+ cas impossible
+"""),
+
+
+
+94: _("""
+ pas possible
+"""),
+
+
+
+
+
+
+96: _("""
+ ce mot cle de modi_maillage attend un vecteur de norme non nulle.
+"""),
+
+97: _("""
+ le mot cle repere de modi_maillage attend deux vecteurs non nuls orthogonaux.
+"""),
+
+
+
+
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF algorith10 Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ la variable %(k1)s n existe pas dans la loi %(k2)s
+"""),
+
+2: _("""
+ tailles matrices incompatibles
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10: _("""
+ taille produit matrice-vecteur incompatible
+"""),
+
+11: _("""
+ le champ de deplacement n'a pas ete calcule.
+"""),
+
+12: _("""
+ le champ de vitesse n'a pas ete calcule.
+"""),
+
+13: _("""
+ le champ d'acceleration n'a pas ete calcule.
+"""),
+
+14: _("""
+ developpement non prevu pour le mult_appui ou corr_stat.
+"""),
+
+15: _("""
+ developpement non prevu pour la sous-structuration.
+"""),
+
+16: _("""
+ le champ %(k1)s n'a pas ete calcule dans le mode_meca %(k2)s
+"""),
+
+17: _("""
+ l'option %(k1)s s'aplique sur toute la structure
+"""),
+
+
+
+
+
+
+
+
+
+
+
+20: _("""
+ le comportement : %(k1)s n'a pas etet defini
+"""),
+
+21: _("""
+ dist_refe est obligatoire a la premiere occurence de reco_global
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+31: _("""
+ la bande de frequence retenue ne comporte pas de modes propres
+"""),
+
+32: _("""
+ vous avez demande des modes qui ne sont pas calcules
+"""),
+
+33: _("""
+ il n y a pas de mode statique calcule pour le couple noeud-cmp ci dessus
+"""),
+
+34: _("""
+ redecoupage demande apres non convergence locale. redecoupage global
+"""),
+
+35: _("""
+ redecoupage excessif du pas de temps interne : reduisez votre pas de temps ou augmenter abs(iter_inte_pas). redecoupage global.
+"""),
+
+36: _("""
+ il manque sigm_refe
+"""),
+
+37: _("""
+ il manque resi_hyd1_refe
+"""),
+
+38: _("""
+ il manque resi_hyd2_refe
+"""),
+
+39: _("""
+ il manque resi_ther_refe
+"""),
+
+40: _("""
+ vecteur nul entrainant une division par zero dans nmconv
+"""),
+
+41: _("""
+ incoherence de a ou h
+"""),
+
+42: _("""
+ incoherence de donnees
+"""),
+
+43: _("""
+ incoherence de c, phi ou a
+"""),
+
+44: _("""
+ champ 'depl' non calcule
+"""),
+
+45: _("""
+ champ 'vite' non calcule
+"""),
+
+46: _("""
+ champ 'acce' non calcule
+"""),
+
+47: _("""
+ lecture des instants erronee
+"""),
+
+48: _("""
+ axe de rotation indefini.
+"""),
+
+49: _("""
+ la porosite initiale f0 ne peut etre nulle ou negative
+"""),
+
+50: _("""
+ la porosite initiale f0 ne peut etre egal ou plus grand que un
+"""),
+
+51: _("""
+ comportement de rousselier version petit_reac non implante en contraintes planes
+"""),
+
+52: _("""
+ la porosite initiale f0 ne peut etre negative
+"""),
+
+53: _("""
+ pb2, variables de pilotages
+"""),
+
+54: _("""
+ rk41. erreur d integration dans runge-kutta. trop d iteration.
+"""),
+
+55: _("""
+ rk42. erreur d integration dans. runge-kutta.
+"""),
+
+56: _("""
+ on ne sait pas post-traiter le champ de type: %(k1)s
+"""),
+
+57: _("""
+ choix incorrect du schema d'integration numerique pour le contact
+"""),
+
+58: _("""
+ choix incorrect de l'algorithme de restriction de l'espace des multiplicateurs
+"""),
+
+60: _("""
+ taille vecteurs incompatible
+"""),
+
+61: _("""
+ il faut definir une bande ou un nume_ordre
+"""),
+
+62: _("""
+ il faut definir une "bande" ou une liste de "nume_ordre"
+"""),
+
+63: _("""
+ dimension spectrale fausse
+"""),
+
+64: _("""
+ l'interspectre modal est de type "acce", on ne peut que restitituer une acceleration
+"""),
+
+65: _("""
+ l'interspectre modal est de type "vite", on ne peut que restitituer une vitesse
+"""),
+
+66: _("""
+ l'interspectre modal est de type "depl", on ne peut pas restitituer une acceleration
+"""),
+
+67: _("""
+ l'interspectre modal est de type "depl", on ne peut pas restitituer une vitesse
+"""),
+
+68: _("""
+ il faut autant de "noeud" que de "nom_cmp"
+"""),
+
+69: _("""
+ il faut autant de "maille" que de "noeud"
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+72: _("""
+ il faut definir une liste de mailles pour post-traiter un cham_elem
+"""),
+
+73: _("""
+ la composante %(k1)s du noeud %(k2)s pour la maille %(k3)s n'existe pas.
+"""),
+
+74: _("""
+ on ne traite pas le "poi1"
+"""),
+
+75: _("""
+ type de maille non traitee
+"""),
+
+76: _("""
+ mot-cle nb_bloc inoperant on prend 1 bloc
+"""),
+
+77: _("""
+ element degenere
+"""),
+
+
+
+
+
+
+79: _("""
+ ddl inconnu sur le noeud ou la maille specifiee pour le suivi
+"""),
+
+80: _("""
+ option indisponible pourle suivi
+"""),
+
+81: _("""
+ trop de suivis (limite a 4)
+"""),
+
+82: _("""
+ pas de suivi attache a la demande d affichage
+"""),
+
+83: _("""
+ trop de lignes dans le titre
+"""),
+
+84: _("""
+ erreur dvt dans le type d extrema
+"""),
+
+85: _("""
+ le nombre de suivi ddl est limite a 4 !
+"""),
+
+86: _("""
+ melange de champs de nature differente dans le meme mot-clef facteur suivi
+"""),
+
+87: _("""
+ vecteur de norme trop petite
+"""),
+
+88: _("""
+ comp_elas non implante
+"""),
+
+89: _("""
+ z negatif
+"""),
+
+90: _("""
+ la definition de la temperature est obligatoire pour une loi de couplage de type %(k1)s
+"""),
+
+91: _("""
+ probleme dans la definition de la saturation
+"""),
+
+92: _("""
+ echec dans elimination temps
+"""),
+
+93: _("""
+ il faut un nom de champ
+"""),
+
+94: _("""
+ pas de champ autre que depl ou vite ou acce
+"""),
+
+95: _("""
+ pour interpoler il faut fournir une liste de frequences ou instants.
+"""),
+
+96: _("""
+ calcul du transitoire: pas de solution trouvee. utiliser l'option etat_stat = non.
+"""),
+
+97: _("""
+ duree de l'excitation trop courte pour le calcul du transitoire.
+"""),
+
+98: _("""
+ pivot nul
+"""),
+
+99: _("""
+ on ne sait pas encore traiterla sous structuration en axisymetrique
+"""),
+}
--- /dev/null
+#@ MODIF algorith11 Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ le sup de kmod0 est nul. on prend le sup de kmod.
+"""),
+
+2: _("""
+ le sup de kmod est nul.
+"""),
+
+3: _("""
+ la variable amor est nulle
+"""),
+
+4: _("""
+ erreur de dimension (dvlp)
+"""),
+
+5: _("""
+ force normale nulle.
+"""),
+
+6: _("""
+ somme des "impacts-ecrouissage" < somme des "glissement"
+"""),
+
+7: _("""
+ "nom_cas" n'est pas une variable d'acces d'un resultat de type "evol_ther".
+"""),
+
+8: _("""
+ "nume_mode" n'est pas une variable d'acces d'un resultat de type "evol_ther".
+"""),
+
+9: _("""
+ "nume_mode" n'est pas une variable d'acces d'un resultat de type "mult_elas".
+"""),
+
+10: _("""
+ "inst" n'est pas une variable d'acces d'un resultat de type "mult_elas".
+"""),
+
+11: _("""
+ "nom_cas" n'est pas une variable d'acces d'un resultat de type "fourier_elas".
+"""),
+
+12: _("""
+ "inst" n'est pas une variable d'acces d'un resultat de type "fourier_elas".
+"""),
+
+13: _("""
+ "nom_cas" n'est pas une variable d'acces d'un resultat de type "fourier_ther".
+"""),
+
+14: _("""
+ "inst" n'est pas une variable d'acces d'un resultat de type "fourier_ther".
+"""),
+
+15: _("""
+ "resu_init" est obligatoire
+"""),
+
+16: _("""
+ "maillage_init" est obligatoire
+"""),
+
+17: _("""
+ "resu_final" est obligatoire
+"""),
+
+18: _("""
+ "maillage_final" est obligatoire
+"""),
+
+19: _("""
+ 3 valeurs pour "tran"
+"""),
+
+20: _("""
+ typcal invalide : %(k1)s
+"""),
+
+24: _("""
+ absence de potentiel permanent. on arrete tout.
+"""),
+
+25: _("""
+ le modele fluide n est pas thermique!!!. on arrete tout.
+"""),
+
+26: _("""
+ le modele interface n est pas thermique!!!. on arrete tout.
+"""),
+
+27: _("""
+ modele fluide incompatible avec le calcul de masse ajoutee. seules les modelisations plan ou 3d ou axis sont utilisees.
+"""),
+
+28: _("""
+ on ne trouve pas de champ de temperature chtn
+"""),
+
+29: _("""
+ le nombre d'amortissement modaux est different du nombre de modes dynamiques
+"""),
+
+30: _("""
+ il n y a pas le meme nombre de modes retenus dans l'excitation modale et dans la base modale
+"""),
+
+31: _("""
+ il faut autant d'indices en i et j
+"""),
+
+32: _("""
+ avec sour_press et sour_force il faut deux points/ddls d'application
+"""),
+
+33: _("""
+ mauvais accord entre nombre d'appuis et nombre de valeur dans le mot-clef: nume_ordre_i
+"""),
+
+34: _("""
+ il faut autant de nom de composante que de nom de noeud
+"""),
+
+35: _("""
+ vous avez oublie de preciser le mode statique
+"""),
+
+36: _("""
+ mode statique non- necessaire
+"""),
+
+37: _("""
+ la frequence mini doit etre etre plus faible que la frequence max
+"""),
+
+38: _("""
+ trop de points dans la liste.
+"""),
+
+39: _("""
+ segment nul
+"""),
+
+40: _("""
+ la base locale semble fausse
+"""),
+
+41: _("""
+ la discretisation du fond de fissure est grossiere par rapport a la courbure du fond de fissure. possibilite de resultats faux. il faudrait raffiner le maillage autour du fond de fissure.
+"""),
+
+42: _("""
+ nombre de points d'intersection impossible.
+"""),
+
+43: _("""
+ probleme de dimension :ni 2d, ni 3d
+"""),
+
+
+45: _("""
+ inter douteuse
+"""),
+
+46: _("""
+ trop de points d intersection
+"""),
+
+47: _("""
+ probleme de decoupage a 3 pts
+"""),
+
+48: _("""
+ probleme de decoupage a 4 pts
+"""),
+
+49: _("""
+ uniquement c_plan/d_plan disponible en xfem
+"""),
+
+51: _("""
+ mailles manquantes
+"""),
+
+52: _("""
+ point de fond_fiss sans maille de surfface rattachee.
+"""),
+
+53: _("""
+ pb dans orientation des normales a fond_fiss. verifier la continuite des mailles de fond_fiss
+"""),
+
+54: _("""
+ segment de fond_fiss sans maille de surface rattachee.
+"""),
+
+55: _("""
+ augmenter nxmafi
+"""),
+
+56: _("""
+ -> Lors de l'enregistrement du champ d'archivage du contact, il s'est avéré
+ que les valeurs de contact au noeud %(k1)s différents selon la maille sur
+ laquelle se trouve ce noeud.
+ -> Risque & Conseil :
+ Ce message est normal si le contact est activé sur la fissure.
+"""),
+
+
+
+
+
+
+
+61: _("""
+ -> Lors de l'orientation des points du fond de fissure, le point du fond de
+ fissure initial (PFON_INI) est trop loin du fond de fissure.
+ -> Risque & Conseil :
+ Le point initial qui en résulte amène surement à une orientation du fond
+ de fissure erronée.
+ Veuillez redéfinir le point du fond de fissure initial (mot clé PFON_INI).
+
+"""),
+
+62: _("""
+ pfon_ini = pt_origine
+"""),
+
+63: _("""
+ probleme dans l orientation du fond de fissure : pt_origin mal choisi.
+"""),
+
+64: _("""
+ tous les points du fond de fissure sont des points de bord. assurez-vous du bon choix des parametres d'orientation de fissure et de pfon_ini.
+"""),
+
+65: _("""
+ pfon_ini semble etre un point de fin de fissure selon l'orientation choisie. assurez-vous du bon choix de pfon_ini.
+"""),
+
+66: _("""
+ la methode "upwind" est en cours d'implementation.
+"""),
+
+67: _("""
+ les aretes de la maille %(k1)s ( %(k2)s ) ont %(k3)s points d'intersection avec l'isozero de %(k4)s !!!
+"""),
+
+68: _("""
+ probleme pour recuperer ar_min dans la table "cara_geom"
+"""),
+
+69: _("""
+ armin negatif ou nul
+"""),
+
+70: _("""
+ augmenter nxptff
+"""),
+
+71: _("""
+ le critere de modification de l'enrichissement heaviside servant a eviter les pivots nuls a abouti a un cas de figure qui semble bizarre. normalement, on doit avoir un hexaedre coupe dans un coin (3 points d'intersection), or la, on a un %(k1)s avec %(k2)s points d'intersetion.
+"""),
+
+72: _("""
+ aucune arete sur laquelle lsn s annule
+"""),
+
+73: _("""
+ taille limite d10 non defini
+"""),
+
+74: _("""
+ echec de la recherche de zero (niter)
+"""),
+
+75: _("""
+ echec de la recherche de zero (bornes)
+"""),
+
+76: _("""
+ f(xmin) non negative
+"""),
+
+77: _("""
+ f=0 : augmenter iter_inte_maxi
+"""),
+
+78: _("""
+ polynome non resolu
+"""),
+
+79: _("""
+ pas d'interpolation possible.
+"""),
+
+81: _("""
+ STOP_SINGULIER=DECOUPE nécessite la subdivision automatique du pas de temps (SUBD_PAS).
+"""),
+82: _("""
+ nmvpir erreur dir grandissement. Angle ALPHA %(k1)s. Angle BETA %(k2)s.
+"""),
+83: _("""
+ Arret par manque de temps CPU.
+"""),
+
+85: _("""
+ On veut affecter un comportement %(k1)s avec la relation %(k2)s sur une maille deja affectee par un autre comportement %(k3)s %(k4)s
+"""),
+86: _("""
+ Perturbation trop petite, calcul impossible
+"""),
+87: _("""
+ *** Champ déjà existant ***
+ Le champ %(k1)s à l'instant %(r1)g est remplacé par le champ %(k2)s à l'instant %(r2)g avec la précision %(r3)g.
+"""),
+
+88: _("""
+ &arret debordement assemblage:ligne
+"""),
+
+90: _("""
+ &arret debordement assemblage:colonne
+"""),
+
+92: _("""
+ arret nombre de sous-structure invalide il en faut au minimum: %(i1)d
+ vous en avez defini: %(i2)d
+"""),
+
+93: _("""
+ arret nombre de nom de sous-structure invalide il en faut exactement: %(i1)d
+ vous en avez defini: %(i2)d
+"""),
+
+94: _("""
+ nombre de macr_elem invalide sous_structure %(k1)s vous en avez defini: %(i1)d
+ il en faut exactement: %(i2)d
+"""),
+
+95: _("""
+ nombre d'angles nautiques invalide sous_structure %(k1)s
+ vous en avez defini: %(i1)d
+ il en faut exactement: %(i2)d
+"""),
+
+96: _("""
+ nombre de translation invalide sous_structure %(k1)s vous en avez defini: %(i1)d
+ il en faut exactement: %(i2)d
+"""),
+
+97: _("""
+ nombre de liaison definies invalide vous en avez defini: %(i1)d
+ il en faut au minimum: %(i2)d
+"""),
+
+98: _("""
+ nombre de mot-cle invalide numero liaison: %(i1)d mot-cle: %(k1)s
+ vous en avez defini: %(i2)d
+ il en faut exactement: %(i3)d
+"""),
+
+99: _("""
+ sous-structure indefinie numero liaison: %(i1)d nom sous-structure: %(k1)s
+"""),
+
+}
--- /dev/null
+#@ MODIF algorith12 Messages DATE 06/04/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+2: _("""
+ interface inexistante numero liaison: %(i1)d nom sous-structure: %(k1)s
+ nom macr_elem: %(k2)s
+ nom interface inexistante: %(k3)s
+"""),
+
+3: _("""
+ une sous-structure est sans connexion sous-structure --> %(k1)s
+"""),
+
+4: _("""
+ probleme stockage : option de calcul : %(k1)s occurence : %(k2)s
+ nom du champ : %(k3)s
+"""),
+
+5: _("""
+ probleme stockage : option de calcul : %(k1)s nom du champ cumul : %(k2)s
+"""),
+
+6: _("""
+ donnees incompatibles : pour la direction %(k1)s
+ nombre de blocage : %(i1)d
+ nombre d'excitations : %(i2)d
+"""),
+
+7: _("""
+ donnees incompatibles : pour les modes mecaniques : %(k1)s
+ il manque l'option : %(k2)s
+"""),
+
+
+
+
+
+
+9: _("""
+ probleme stockage : option de calcul : %(k1)s direction : %(k2)s
+ nom du champ : %(k3)s
+"""),
+
+
+
+
+
+
+
+
+11: _("""
+ correction statique non prise en compte pour l'option : %(k1)s
+"""),
+
+12: _("""
+ donnees incompatibles : pour les mode_corr : %(k1)s
+ il manque le champ : %(k2)s
+"""),
+
+13: _("""
+ donnees incompatibles : pour les mode_corr : %(k1)s pour le champ : %(k2)s
+ le type n'est pas %(k3)s
+"""),
+
+14: _("""
+ donnees incompatibles : pour les statiques : %(k1)s
+ il manque le champ : %(k2)s
+"""),
+
+15: _("""
+ donnees incompatibles : pour les statiques : %(k1)s pour le champ : %(k2)s
+ le type n'est pas %(k3)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+18: _("""
+ on ne sait pas bien traiter l'option de calcul demandee : %(k1)s
+"""),
+
+
+
+
+
+
+
+
+20: _("""
+ donnees incompatibles : pour les modes mecaniques : %(k1)s
+ pour l'option : %(k2)s
+ il manque le champ d'ordre %(i1)d
+"""),
+
+21: _("""
+ donnees incompatibles : pour les mode_corr : %(k1)s
+ il manque l'option : %(k2)s
+"""),
+
+22: _("""
+ donnees incompatibles : pour les modes statiques : %(k1)s
+ il manque l'option : %(k2)s
+"""),
+
+23: _("""
+ arret sur question illicite pour le type de base type de base --> %(k1)s
+ question --> %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+26: _("""
+ arret sur manque argument base modale donnee --> %(k1)s
+ interf_dyna donnee --> %(k2)s
+"""),
+
+27: _("""
+ arret sur type de base incorrecte base modale donnee --> %(k1)s
+ type base modale --> %(k2)s
+ type attendu --> %(k3)s
+"""),
+
+28: _("""
+ arret su incoherence donnees base modale donnee --> %(k1)s
+ interf_dyna correspondante --> %(k2)s
+ interf_dyna donnee --> %(k3)s
+"""),
+
+29: _("""
+ probleme arguments de definition interface nom interface donne %(k1)s
+ numero interface donne %(i1)d
+"""),
+
+30: _("""
+ arret sur base modale sans interf_dyna base modale donnee --> %(k1)s
+"""),
+
+31: _("""
+ arret sur manque arguments base modale donnee --> %(k1)s
+ interf_dyna donnee --> %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+38: _("""
+ arret sur probleme coherence interface
+"""),
+
+39: _("""
+ arret sur matrice inexistante matrice %(k1)s
+"""),
+
+40: _("""
+
+ arret probleme de factorisation: presence probable de modes de corps rigide la methode de mac-neal ne fonctionne pas en presence de modes de corps rigide
+"""),
+
+41: _("""
+ --- la taille bloc : %(i1)d est < hauteur_max : %(i2)d
+ changez la taille_bloc des profils: %(k1)s
+ prenez au moins : %(i3)d
+"""),
+
+42: _("""
+ le mot-cle %(k1)s est incompatible avec le champ %(k2)s
+ . utiliser 'group_ma' ou 'maille' pour restreindre le changement de repere a certaines mailles. %(k3)s
+"""),
+
+43: _("""
+ etude 2d angle nautique unique : %(r1)f
+"""),
+
+44: _("""
+ noeud sur l axe_z noeud : %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+49: _("""
+ probleme: sous-structure inconnue sous-structure --> %(k1)s
+"""),
+
+50: _("""
+ pas de sous-structure dans le squelette
+"""),
+
+51: _("""
+ nom de sous-structure non trouve la sous-structure : %(k1)s n existe pas %(k2)s
+"""),
+
+
+
+
+
+
+53: _("""
+ arret sur pivot nul ligne --> %(i1)d
+"""),
+
+
+
+
+
+
+
+
+55: _("""
+ le maillage mail ne contient pas de group_ma mail= %(k1)s
+"""),
+
+56: _("""
+ le group_ma gp n'existe pas dans le maillage mail mail= %(k1)s gp= %(k2)s
+"""),
+
+57: _("""
+ le maillage ne contient pas de group_nomaillage= %(k1)s
+"""),
+
+58: _("""
+ le group_no n'existe pas dansle maillage maillage= %(k1)s
+ group_no= %(k2)s
+"""),
+
+59: _("""
+ nombre noeuds communs nbnoco = %(i1)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+62: _("""
+ les deux numerotations n'ont pas meme maillage d'origine
+ numerotation 1: %(k1)s
+ maillage 1: %(k2)s
+ numerotation 2: %(k3)s
+ maillage 2: %(k4)s
+"""),
+
+63: _("""
+ perte information sur ddl physique a la conversion de numerotation
+ noeud numero: %(i1)d
+ type ddl numero: %(i2)d
+"""),
+
+64: _("""
+ arret sur perte information ddl physique
+"""),
+
+
+
+
+
+
+
+
+66: _("""
+ champ inexistant champ: %(k1)s , nume_ordre: %(i1)d , mode_meca: %(k2)s
+"""),
+
+67: _("""
+ arret sur probleme conditions interface
+"""),
+
+68: _("""
+ le maillage final n'est pas 3d maillage : %(k1)s
+"""),
+
+69: _("""
+ l origine du maillage 1d n est pas 0
+"""),
+
+70: _("""
+ les noeuds du maillage sont confondus
+"""),
+
+71: _("""
+
+ le noeud se trouve en dehors du domaine de definition avec un profil gauche de type exclu
+ noeud : %(k1)s
+"""),
+
+72: _("""
+
+ le noeud se trouve en dehors du domaine de definition avec un profil droit de type exclu
+ noeud : %(k1)s
+"""),
+
+73: _("""
+ probleme pour stoker le champ dans le resultat : %(k1)s
+ , pour le nume_ordre : %(i1)d
+"""),
+
+74: _("""
+ *** champ deja existant ***il sera remplace par le champ %(k1)s
+ pour le nume_ordre %(i1)d
+"""),
+
+75: _("""
+ composante inexistante sur le noeud: %(k1)s composante: %(k2)s
+"""),
+
+76: _("""
+ probleme recuperation chamno concept resultat: %(k1)s numero ordre: %(i1)d
+"""),
+
+77: _("""
+ &pas d' interface definie --> un gage!
+"""),
+
+78: _("""
+ &arret sur interface deja definie mot-cle interface numero --> %(i1)d
+ interface --> %(k1)s
+"""),
+
+79: _("""
+ &les deux interfaces ont pas meme nombre de noeuds
+ nombre noeuds interface droite --> %(i1)d
+ nombre noeuds interface gauche --> %(i2)d
+"""),
+
+80: _("""
+ &les deux interfaces ont pas meme nombre de degres de liberte
+ nombre ddl interface droite --> %(i1)d
+ nombre ddl interface gauche --> %(i2)d
+"""),
+
+81: _("""
+ &arret sur base modale ne comportant pas de modes propres
+"""),
+
+82: _("""
+
+ nombre de modes propres demande superieur au nombre de modes dynamiques de la base
+ nombre de modes demandes --> %(i1)d
+ nombre de modes de la base --> %(i2)d
+ nombre de frequences douteuses --> %(i3)d
+"""),
+
+83: _("""
+ plusieurs champs correspondant a l'acces demande.resultat %(k1)s
+ , acces "inst": %(r1)f
+ , nombre : %(i1)d
+"""),
+
+84: _("""
+ pas de champ correspondant a un acces demande.resultat %(k1)s
+ , acces "inst": %(r1)f
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+89: _("""
+ instant de reprise superieur a la liste des instants instant de reprise: %(r1)f
+ instant max: %(r2)f
+"""),
+
+90: _("""
+ on n'a pas trouve l'instant instant de reprise: %(r1)f
+ pas de temps: %(r2)f
+ borne min: %(r3)f
+ borne max: %(r4)f
+"""),
+
+91: _("""
+ instant final inferieur a la liste des instants instant final: %(r1)f
+ instant min : %(r2)f
+"""),
+
+92: _("""
+ on n'a pas trouve l'instant instant final: %(r1)f
+ pas de temps: %(r2)f
+ borne min: %(r3)f
+ borne max: %(r4)f
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+96: _("""
+ mauvaise valeur de typcum: %(i1)d
+"""),
+
+97: _("""
+ donnees erronees
+ pas d'instant de calcul pour l'instant d'archivage: %(r1)f
+"""),
+
+98: _("""
+ donnees erronees
+ plusieurs instants de calcul pour l'instant d'archivage: %(r1)f
+"""),
+
+99: _("""
+ erreur fatalele champ %(k1)s est incompatible avec la commande %(k2)s
+"""),
+
+}
--- /dev/null
+#@ MODIF algorith13 Messages DATE 30/05/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+1: _("""
+ erreur fatale l'entite %(k1)s n'est pas possible %(k2)s
+"""),
+
+2: _("""
+ erreur dans les donnees d'observation le noeud %(k1)s n'existe pas dans %(k2)s
+"""),
+
+3: _("""
+ erreur dans les donnees d'observation le group_no %(k1)s n'existe pas dans %(k2)s
+"""),
+
+4: _("""
+ erreur dans les donnees d'observation la maille %(k1)s n'existe pas dans %(k2)s
+"""),
+
+5: _("""
+ erreur dans les donnees d'observation le group_ma %(k1)s n'existe pas dans %(k2)s
+"""),
+
+6: _("""
+ erreur dans les donnees d'observation pour "nom_cham" %(k1)s il faut renseigner %(k2)s ou %(k3)s
+"""),
+
+7: _("""
+ erreur dans les donnees d'observation pour "nom_cham" %(k1)s il faut renseigner %(k2)s et %(k3)s
+"""),
+
+8: _("""
+ arret sur maillage non skelette
+"""),
+
+
+
+
+
+
+
+
+10: _("""
+ probleme de duplication de matrice matrice: %(k1)s
+"""),
+
+11: _("""
+ arret probleme de factorisation: presence de modes de corps rigide
+"""),
+
+
+
+
+
+
+
+
+13: _("""
+ icmp dans le desordre pour noeud= %(i1)d et sous-domaine= %(i2)d
+"""),
+
+14: _("""
+ systeme (gi)t*gi probablement non inversible: %(i1)d pb lapack dgetrf: %(i2)d
+"""),
+
+15: _("""
+ systeme (gi)t*gi probablement non inversible: %(i1)d pb lapack dgetrs: %(i2)d
+"""),
+
+
+
+
+
+
+
+
+17: _("""
+ arret sur probleme base modale sans interf_dyna base modale --> %(k1)s
+"""),
+
+18: _("""
+ gamdev(alpha) < 0 gamdev(alpha) = %(r1)f
+"""),
+
+
+
+
+
+
+
+26: _("""
+ conflit de nom de groupe de maille dans le squelette le nom de groupe : %(k1)s
+ provenant de la sous-structure : %(k2)s
+ et du groupe de maille : %(k3)s
+ existe deja. %(k4)s
+"""),
+
+27: _("""
+ nom de groupe non trouvele groupe : %(k1)s n existe pas %(k2)s dans la sous-structure : %(k3)s
+"""),
+
+28: _("""
+ &aucun axe defini
+"""),
+
+29: _("""
+ methode non supportee en sous-structuration methode demandee : %(k1)s
+ methodes supportees: %(k2)s
+"""),
+
+30: _("""
+ conditions initiales non supportees en sous-structuration transitoire
+"""),
+
+31: _("""
+ calcul non lineaire non supporte en sous-structuration transitoire
+"""),
+
+32: _("""
+ rela_effo_dep non supporte en sous-structuration transitoire
+"""),
+
+33: _("""
+ rela_effo_vite non supporte en sous-structuration transitoire
+"""),
+
+34: _("""
+
+ la liste des amortissements modaux est definie au niveau de l'operateur macr_elem_dyna
+"""),
+
+35: _("""
+ numero de mode de votre liste inexistant dans les modes utilises:
+ numero ds votre liste : %(i1)d
+"""),
+
+36: _("""
+ appel errone
+"""),
+
+
+
+
+
+39: _("""
+ choc mal definila maille definissant le choc %(k1)s doit etre de type %(k2)s
+"""),
+
+
+
+
+
+41: _("""
+ trop de noeuds dans le group_no %(k1)s noeud utilise: %(k2)s
+"""),
+
+
+
+
+
+
+44: _("""
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!incompatibilite avec multi appui : %(k1)s
+"""),
+
+
+
+
+
+
+46: _("""
+ il manque les modes statiques
+"""),
+
+47: _("""
+ il manque les modes corriges
+"""),
+
+48: _("""
+ Nombre de modes propres calcules insuffisant.
+ Nombre de modes propres de la base limite a : %(i1)d
+"""),
+
+49: _("""
+ &sous-structure inexistante dans le modele-generalise modele generalise --> %(k1)s
+ sous-structure demandee --> %(k2)s
+"""),
+
+50: _("""
+ &sous-structure inexistante dans le modele-generalise modele generalise --> %(k1)s
+ numero sous-structure demandee --> %(i1)d
+"""),
+
+
+
+
+
+53: _("""
+ champ inexistant mesure %(k1)s nom_cham %(k2)s
+"""),
+
+
+
+
+56: _("""
+ pb.interpolation volumique 3d:evol_char : %(k1)s instant : %(r1)f
+ code_retour: %(i1)d
+"""),
+
+57: _("""
+ pb.interpolation volumique 2d:evol_char : %(k1)s instant : %(r1)f
+ code_retour: %(i1)d
+"""),
+
+58: _("""
+ pb.charge vol2d puis surf3d:evol_char: %(k1)s instant : %(r1)f
+"""),
+
+59: _("""
+ pb.interpolation surfacique 3d:evol_char : %(k1)s instant : %(r1)f
+ code_retour: %(i1)d
+"""),
+
+60: _("""
+ pb.charge vol3d puis surf2d:evol_char: %(k1)s instant : %(r1)f
+"""),
+
+61: _("""
+ pb.interpolation surfacique 2d:evol_char : %(k1)s instant : %(r1)f
+ code_retour: %(i1)d
+"""),
+
+62: _("""
+ pb. interpolation pression:evol_char : %(k1)s instant : %(r1)f
+ on ne sait pas extrapoler le champ %(k2)s
+ de pression par rapport au temps %(k3)s
+ mais seulement l'interpoler %(k4)s
+"""),
+
+63: _("""
+ pb. interpolation pression:evol_char : %(k1)s instant : %(r1)f
+ code_retour: %(i1)d
+ contacter les developpeurs %(k2)s
+"""),
+
+64: _("""
+ interpolation temperature:evol_ther: %(k1)s instant: %(r1)f icoret: %(i1)d
+"""),
+
+
+
+
+
+
+66: _("""
+ Force fluide, grappe bloquee
+ - iteration %(i1)d , z = %(r1)f iteration %(i2)d , z = %(r2)f
+ temps de chute compris entre %(r3)f et %(r4)f
+"""),
+
+
+
+68: _("""
+ pb.interpolation vitesse:evol_char : %(k1)s instant : %(r1)f
+ code_retour: %(i1)d
+"""),
+
+69: _("""
+ le noeud: nomnoe ne peut pas etre typl et typbnomnoe %(k1)s
+"""),
+
+70: _("""
+ impossible de coder le nombre : %(i1)d sur : %(k1)s
+"""),
+
+71: _("""
+ choix impossiblepour initpr : %(i1)d
+"""),
+
+
+
+
+
+
+74: _("""
+ composante non definie dans la numerotation : %(k1)s
+"""),
+
+75: _("""
+ & detection d'une sous-structure non connectesous-structure de nom: %(k1)s
+"""),
+
+76: _("""
+ & arret sur probleme de connexion sous-structure
+"""),
+
+
+
+
+78: _("""
+ les intervalles doivent etre croissants. valeur de la borne precedente : %(i1)d
+ valeur de la borne : %(i2)d
+"""),
+
+79: _("""
+ l'intervalle entre les deux derniers instants ne sera pas egal
+ au pas courant : %(i1)d
+ , pour l'intervalle %(i2)d
+"""),
+
+80: _("""
+ le nombre de pas est trop grand : %(i1)d , pour l'intervalle %(i2)d
+"""),
+
+81: _("""
+ les valeurs doivent etre croissantes. valeur precedente : %(i1)d
+ valeur : %(i2)d
+"""),
+
+82: _("""
+ la distance entre les deux derniers reels ne sera pas egal
+ au pas courant : %(r1)f,
+ pour l'intervalle %(i1)d
+"""),
+
+
+
+
+84: _("""
+ modele amont non defini
+"""),
+
+85: _("""
+ champ inexistant resultat %(k1)s nom_cham %(k2)s nume_ordre %(i1)d
+"""),
+
+86: _("""
+ type de matrice inconnuetype: %(k1)s
+"""),
+
+
+
+
+
+
+91: _("""
+ &probleme de dimension matrice a mutiplier
+"""),
+
+92: _("""
+ &probleme de dimension matrice resultat
+"""),
+
+
+
+
+
+
+99: _("""
+ matrice d'amortissement non creeedans le macro-element : %(k1)s
+"""),
+
+}
--- /dev/null
+#@ MODIF algorith14 Messages DATE 06/04/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3: _("""
+ &type interface non supportee en cyclique type interface --> %(k1)s
+"""),
+
+4: _("""
+ arret sur type de resultat non supporte type donne --> %(k1)s
+ types supportes --> %(k2)s %(k3)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8: _("""
+ manque la deformee modale pour le mode %(i1)d
+"""),
+
+
+
+
+
+
+10: _("""
+ le maille noe n'existe pas dans le maillage mail mail= %(k1)s noe= %(k2)s
+"""),
+
+11: _("""
+ le noeud n'existe pas dans le maillage maillage= %(k1)s noeud= %(k2)s
+"""),
+
+
+
+
+
+
+
+
+13: _("""
+ & arret sur base modale de type illicitebase modale --> %(k1)s type --> %(k2)s
+ type attendu --> %(k3)s
+"""),
+
+14: _("""
+ arret sur matrice raideur non unique
+"""),
+
+15: _("""
+ arret sur matrice masse non unique
+"""),
+
+16: _("""
+ arret sur matrice amortissement non unique en argument
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+21: _("""
+ les matrices assemblees n'ont pas la meme numerotation masse= %(k1)s
+ raideur= %(k2)s
+"""),
+
+22: _("""
+ les matrices assemblees n'ont pas la meme numerotation amortissement= %(k1)s
+ raideur= %(k2)s
+"""),
+
+23: _("""
+
+ les matrices assemblees et la base modalen'ont pas le meme maillage initial
+ maillage matrice: %(k1)s
+ maillage base modale: %(k2)s
+"""),
+
+24: _("""
+ arret sur probleme coherence mode_meca donne --> %(k1)s
+ numerotation associee --> %(k2)s
+ interf_dyna donnee --> %(k3)s
+ numerotation associee --> %(k4)s
+"""),
+
+25: _("""
+ sous-structure inexistante dans le modele generalise modele generalisee %(k1)s
+ sous-structure %(k2)s
+"""),
+
+26: _("""
+ probleme coherence nombre de champs base modale base modale %(k1)s
+ nombre de champs de la base %(i1)d
+ nombre de dgres generalises %(i2)d
+"""),
+
+27: _("""
+ le maillage n'est pas un maillage squelette maillage %(k1)s
+"""),
+
+28: _("""
+ aucun type d'interface defini pour la sous structure : %(i1)d
+ pas de mode rigide d'interface le calcul de masses effectives risque d'etre imprecis %(i2)d
+"""),
+
+
+
+
+
+
+
+
+30: _("""
+ incoherence detectee dans squelette objet non trouve : %(k1)s
+"""),
+
+
+
+
+
+
+32: _("""
+ sd resultat resultle champ n'existe pas %(k1)s
+ pour le nume_ordre %(i1)d
+"""),
+
+33: _("""
+ sd resultat nomresle champ n'a pas ete duplique %(k1)s
+ pour le nume_ordre %(i1)d
+"""),
+
+
+
+
+
+
+35: _("""
+ aucun champ n'est calculedans la structure de donnees %(k1)s
+"""),
+
+36: _("""
+ les numerotations des champs ne coincident pas celui de %(k1)s est : %(k2)s
+ et celui de %(k3)s
+ est : %(k4)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+50: _("""
+ il faut au moins 1 mode !
+"""),
+
+51: _("""
+ il faut un mode_meca a la 1ere occurence de ritz
+"""),
+
+
+
+
+
+
+
+
+
+55: _("""
+ le champ de "temp" n'existe pas pour le numero d'ordre %(i1)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+59: _("""
+ le champ de "meta_elno_temp" n'existe pas
+ pour le numero d'ordre %(i1)d
+"""),
+
+
+
+
+
+
+
+
+61: _("""
+
+ le pas de temps du calcul metallurgique ne correspond pas au pas de temps du calcul thermique
+ numero d'ordre %(i1)d
+ pas de temps thermique %(r1)f
+ pas de temps metallurgique %(r2)f
+"""),
+
+62: _("""
+ manque la deformee modale nom_cham %(k1)s pour le mode %(i1)d
+"""),
+
+63: _("""
+ donnees incompatibles : pour le mode_stat : %(k1)s
+ il manque le champ : %(k2)s
+"""),
+
+64: _("""
+ manque le mode statique nom_cham %(k1)s pour le mode %(i1)d
+"""),
+
+
+
+
+
+
+
+
+66: _("""
+ &taille de bloc insuffisante taille de bloc demandee (kr8): %(r1)f
+ taille de bloc utilisee (kr8): %(r2)f
+"""),
+
+
+
+
+
+
+
+
+68: _("""
+ valeur minimale conseillee : %(r1)f
+"""),
+
+69: _("""
+ non-linearite incompatible avec la definition du modele generalise
+ noeud_1 : %(k1)s
+ sous_struc_1 : %(k2)s
+ noeud_2 : %(k3)s
+ sous_struc_2 : %(k4)s
+"""),
+
+70: _("""
+ &probleme de coherence de nombre de noeuds d'interface
+ sous-structure1: %(k1)s
+ interface1: %(k2)s
+ nombre de noeuds interface1: %(i1)d
+ sous-structure2: %(k3)s
+ interface2: %(k4)s
+ nombre de noeuds interface2: %(i2)d
+"""),
+
+71: _("""
+ &probleme de coherence des interfaces orientees sous-structure1: %(k1)s
+ interface1: %(k2)s
+ presence composante sur 1: %(k3)s
+ sous-structure2: %(k4)s
+ interface2: %(k5)s
+ composante inexistante sur 2 %(k6)s
+"""),
+
+72: _("""
+ &probleme de coherence des interfaces orientees sous-structure2: %(k1)s
+ interface2: %(k2)s
+ presence composante sur 2: %(k3)s
+ sous-structure1: %(k4)s
+ interface1: %(k5)s
+ composante inexistante sur 1 %(k6)s
+"""),
+
+73: _("""
+ &sous-structure incompatibles sous-structure 1:: %(k1)s macr_elem associe: %(k2)s
+ numero grandeur sous-jacente: %(i1)d
+ sous-structure 2:: %(k3)s
+ macr_elem associe: %(k4)s
+ numero grandeur sous-jacente: %(i2)d
+"""),
+
+74: _("""
+ &arret sur incompatibilite de sous-structure
+"""),
+
+75: _("""
+ Erreur développement : code retour 1 dans nmcomp en calculant la matrice tangente
+ """),
+
+76: _("""
+ Objet &FETI.MONITORING.MPI inexistant !
+ """),
+
+}
--- /dev/null
+#@ MODIF algorith2 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+
+3: _("""
+ la liste des cham_no n'existe pas
+"""),
+
+4: _("""
+ il n'y a aucun cham_no dans la liste
+"""),
+
+5: _("""
+ les cham_no n'ont pas tous la meme longueur
+"""),
+
+6: _("""
+ il faut definir nom_cmp
+"""),
+
+7: _("""
+ il faut definir 3 angles nautiques.
+"""),
+
+8: _("""
+ l origine doit etre definie par 3 coordonnees.
+"""),
+
+9: _("""
+ l axe z est obligatoire en 3d.
+"""),
+
+10: _("""
+ pour le 2d on ne prend que 2 coordonnees pour l origine.
+"""),
+
+11: _("""
+ l axe z est n a pas de sens en 2d.
+"""),
+
+12: _("""
+ le noeud se trouve sur l axe du repere cylindrique. on prend le noeud moyen des centres geometriques.
+"""),
+
+13: _("""
+ -> Lors du passage au repère cylindrique, un noeud a été localisé sur l'axe
+ du repère cylindrique. Code_Aster utilise dans ce cas le centre de gravité de
+ l'élément pour le calcul de la matrice de passage en repère cylindrique.
+ -> Risque & Conseil :
+ Si ce centre de gravité se trouve également sur l'axe du repère, le calcul
+ s'arrete en erreur fatale.
+"""),
+
+14: _("""
+ charge non traitee: %(k1)s
+"""),
+
+15: _("""
+ les modelisations autorisees sont 3d et d_plan et axis
+"""),
+
+16: _("""
+ le choix des parametres ne correspond pas a l un des modeles cjs
+"""),
+
+17: _("""
+ non converg.: essai normales
+"""),
+
+18: _("""
+ non converg.: nb iter max atteint
+"""),
+
+19: _("""
+ les modelisations autorisees sont 3d et d-plan et axis
+"""),
+
+20: _("""
+ modelisation inconnue
+"""),
+
+21: _("""
+ nvi > nvimax
+"""),
+
+22: _("""
+ vecteur de norme nulle
+"""),
+
+23: _("""
+ la maille doit etre de type tetra4, tetra10, penta6, penta15, hexa8 ou hexa20. or la maille est de type : %(k1)s .
+"""),
+
+24: _("""
+ la maille doit etre de type tetra4, tetra10, penta6, penta15, hexa8 ou hexa20. ou tria3-6 ou quad4-8 or la maille est de type : %(k1)s .
+"""),
+
+25: _("""
+ mauvaise face
+"""),
+
+26: _("""
+ %(k1)s groupe inexistant
+"""),
+
+27: _("""
+ maille %(k1)s de type %(k2)s invalide pour le contact
+"""),
+
+28: _("""
+ groupe de mailles de contact invalide
+"""),
+
+29: _("""
+ mailles de contact 2d et 3d
+"""),
+
+30: _("""
+ trois elements
+"""),
+
+31: _("""
+ deux elements sur la meme face
+"""),
+
+32: _("""
+ une reorientation a eu lieu pour le deuxieme appui
+"""),
+
+33: _("""
+ pas de maille de reference trouvee
+"""),
+
+34: _("""
+ stop_singulier=decoupe necessite la subdivision automatique du pas de temps (subd_pas)
+"""),
+
+35: _("""
+ la methode %(k1)s est inadequate pour une resolution de type "ldlt"
+"""),
+
+36: _("""
+ la methode %(k1)s est inadequate pour une resolution de type "gcpc"
+"""),
+
+37: _("""
+ la methode %(k1)s etant inadequate pour une resolution de type "mult_front"
+"""),
+
+38: _("""
+ la methode %(k1)s etant inadequate pour une resolution de type "feti"
+"""),
+
+39: _("""
+ le solveur feti requiert un concept produit de type sd_feti en entree du mot-cle partition
+"""),
+
+40: _("""
+ ! nombre de sous-domaines illicite !
+"""),
+
+41: _("""
+ en parallele il faut au moins un sous-domaine par processeur !
+"""),
+
+42: _("""
+ en parallele stogi=oui obligatoire pour limiter les msgs !
+"""),
+
+43: _("""
+ pas de calcul sur le critere de rice disponible
+"""),
+
+44: _("""
+ cette commande doit necessairement avoir le type evol_ther.
+"""),
+
+45: _("""
+ seuls les champs de fonctions aux noeuds sont evaluables: %(k1)s
+"""),
+
+46: _("""
+ nous traitons les champs de reels et de fonctions: . %(k1)s
+"""),
+
+47: _("""
+ le nom symbolique du champ chercher n est pas licite. %(k1)s
+"""),
+
+48: _("""
+ plusieurs instants correspondent a celui specifie sous affe
+"""),
+
+49: _("""
+ nume_fin inferieur a nume_init
+"""),
+
+50: _("""
+ cmp non traitee
+"""),
+
+51: _("""
+ il y a plusieurs charges contenant des liaisons unilaterales
+"""),
+
+52: _("""
+ debordement tableau (dvlp)
+"""),
+
+53: _("""
+ erreur code dans affichage (dvlp)
+"""),
+
+54: _("""
+ increment de deformation cumulee (dp) = - %(k1)s
+"""),
+
+55: _("""
+ erreur d integration- essai d integration numero %(k1)s - convergence vers une solution non conforme - increment de deformation cumulee negative = - %(k2)s - redecoupage du pas de temps
+"""),
+
+56: _("""
+ erreur - non convergence a iteration maxi %(k1)s - convergence reguliere mais trop lente - erreur > %(k2)s - redecoupage du pas de temps
+"""),
+
+57: _("""
+ erreur - non convergence a iteration maxi %(k1)s - convergence irreguliere & erreur > %(k2)s - redecoupage du pas de temps
+"""),
+
+58: _("""
+ erreur - non convergence a iteration maxi %(k1)s - erreur > %(k2)s - redecoupage du pas de temps
+"""),
+
+59: _("""
+ la transformation geometrique est singuliere pour la maille : %(k1)s (jacobien = 0.)
+"""),
+
+60: _("""
+ derivees secondes non etendues au 3d
+"""),
+
+61: _("""
+ les listes des groupes de noeuds a fournir doivent contenir le meme nombre de groupes de noeuds
+"""),
+
+62: _("""
+ les listes des groupes de noeuds doivent contenir le meme nombre de noeuds
+"""),
+
+63: _("""
+ on imprime que des champs reels
+"""),
+
+64: _("""
+ %(k1)s cham_no deja existant
+"""),
+
+65: _("""
+ appel errone a rsexch
+"""),
+
+66: _("""
+ calcul du transitoire : choc en phase transitoire - pas de solution trouvee. utiliser l'option etat_stat = non.
+"""),
+
+67: _("""
+ modele non local : projecteur singulier
+"""),
+
+68: _("""
+ iter_dual_maxi trop eleve (<10000)
+"""),
+
+69: _("""
+ fonction duale non convexe
+"""),
+
+70: _("""
+ probleme recherche lineaire
+"""),
+
+71: _("""
+ pas de geometrie associee au modele delocalise
+"""),
+
+72: _("""
+ erreur transfo cham_elem_s
+"""),
+
+73: _("""
+ mauvaise direction de descente
+"""),
+
+74: _("""
+ pas de borne sup
+"""),
+
+75: _("""
+ probleme recherche lineaire primal
+"""),
+
+76: _("""
+ iterations primales insuffisantes
+"""),
+
+77: _("""
+ mauvais dimensionnement de geomi
+"""),
+
+78: _("""
+ dvp : energie non convexe
+"""),
+
+79: _("""
+ pas de valeurs propres trouvees
+"""),
+
+
+
+
+
+
+
+
+
+
+
+82: _("""
+ nombre maximal de niveau de subdivision atteint
+"""),
+
+83: _("""
+ detection divergence, force la subdivision.
+"""),
+
+84: _("""
+ force la subdivision
+"""),
+
+85: _("""
+ pas minimal de la subdivision atteint.
+"""),
+
+86: _("""
+ il n'y a aucun instant de calcul ('list_inst')
+"""),
+
+87: _("""
+ liste d'instants non croissante
+"""),
+
+88: _("""
+ acces par instant sans evolution ordonnee interdit (increment)
+"""),
+
+89: _("""
+ instant initial introuvable dans la liste d'instants (list_inst)
+"""),
+
+90: _("""
+ instant final introuvable dans la liste d'instants (list_inst)
+"""),
+
+91: _("""
+ nume_inst_init plus petit que nume_fin avec evolution: 'retrograde'
+"""),
+
+92: _("""
+ nume_init plus grand que nume_fin
+"""),
+
+93: _("""
+ nume_inst_init n'appartient pas a la liste d'instants
+"""),
+
+94: _("""
+ -> Le numéro d'ordre correspondant à l'instant final de calcul NUME_INST_FIN
+ n'appartient pas à la liste des numéros d'ordre.
+ Dans ce cas, Aster considère pour numéro d'ordre final, le dernier de
+ la liste fournie.
+ -> Risque & Conseil :
+ Afin d'éviter des pertes de résultats, assurez-vous que le numéro d'ordre
+ associé à l'instant NUME_INST_FIN appartienne bien à la liste des numéros
+ d'ordre.
+"""),
+
+95: _("""
+ acces par instant sans evolution ordonnee interdit (archivage)
+"""),
+
+96: _("""
+ impossible d'archiver l'etat initial : le concept est reentrant (archivage)
+"""),
+
+97: _("""
+ l'archivage va ecraser des instants deja calcules (archivage)
+"""),
+
+98: _("""
+ l'archivage va laisser des trous dans la sd evol_noli (archivage, nume_init)
+"""),
+
+99: _("""
+ le nombre de niveau de subdivisions doit etre plus grand que 1 (subd_niveau)
+"""),
+}
--- /dev/null
+#@ MODIF algorith3 Messages DATE 15/05/2007 AUTEUR GNICOLAS G.NICOLAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ certains pas de temps de la liste (liste_inst) sont plus petits que le pas de temps minimal renseigne (subd_pas_mini)
+"""),
+
+2: _("""
+ il faut donner subd_niveau et/ou subd_pas_mini
+"""),
+
+3: _("""
+ le nombre de subdivisions du pas de temps doit etre plus grand que 1 (subd_pas)
+"""),
+
+4: _("""
+ option inconnue < %(k1)s > incoherence catalogue
+"""),
+
+5: _("""
+ methode de subdivision inconnue < %(k1)s > incoherence catalogue
+"""),
+
+6: _("""
+ valeur de subd_iter_igno incoherent avec iter_glob_maxi. augmentez iter_glob_maxi
+"""),
+
+7: _("""
+ valeur de subd_iter_fin incoherent avec iter_glob_maxi. augmentez iter_glob_maxi
+"""),
+
+8: _("""
+ element non traite
+"""),
+
+9: _("""
+ utiliser la formulation en deplacement avec un schema newmark, hht ou theta_methode,
+ ou la formulation en acceleration avec un schema diff_cent ou tchamwa.
+"""),
+
+10: _("""
+ -> Contact avec DYNA_TRAN_MODAL : Il y a interpénétration d'une valeur supérieure à (DIST_MAIT + DIST_ESCL).
+ -> Risque & Conseil :
+ DIST_MAIT et DIST_ESCL permettent de tenir compte d'une épaisseur de matériau non représentée dans le maillage
+ (rayon d'une poutre, épaisseur d'une coque ou simplement une bosse). Une trop forte interpénétration peut venir
+ d'une erreur dans le fichier de commande : RIGI_NOR trop faible ; noeuds de contact qui ne sont en vis à vis ;
+ OBSTACLE et NORM_OBSTACLE incohérents. Dans le cas de deux poutres aux fibres neutres confondues, elle peut
+ générer des erreurs dans l'orientation des forces de contact.
+"""),
+
+11: _("""
+ methode a pas adaptatif la donnee du pas est obligatoire
+"""),
+
+12: _("""
+ methode a pas adaptatif le pas ne peut pas etre nul
+"""),
+
+13: _("""
+ les matrices de masse elementaires doivent obligatoirement avoir ete calculees avec l'option mass_meca_diag
+"""),
+
+14: _("""
+ on archive au moins un champ.
+"""),
+
+15: _("""
+ champ " %(k1)s " deja existant
+"""),
+
+16: _("""
+A l'instant %(r1)f, l'erreur vaut %(r2)f
+Cette erreur est supérieure à 1.
+Le pas de temps vaut %(r3)f
+On arrete de le réduire, car le nombre de réductions a atteint %(i1)d, qui est le maximum possible.
+"""),
+
+17: _("""
+ methode adapt pas de temps minimal atteint
+"""),
+
+18: _("""
+ methode des differences centrees: la donnee du pas est obligatoire
+"""),
+
+19: _("""
+ methode des differences centrees: le pas ne peut pas etre nul
+"""),
+
+20: _("""
+ le chargement de type dirichlet necessite la resolution par le schema de newmark
+"""),
+
+21: _("""
+Nombre de pas de calcul : %(i1)d
+Nombre d'itérations : %(i2)d
+"""),
+
+23: _("""
+ vous calculez une impedance absorbante
+"""),
+
+24: _("""
+ on n'a pas pu trouve le dernier instant sauve.
+"""),
+
+25: _("""
+ le champ "depl" n'est pas trouve dans le concept dyna_trans %(k1)s
+"""),
+
+26: _("""
+ le champ "vite" n'est pas trouve dans le concept dyna_trans %(k1)s
+"""),
+
+27: _("""
+ le champ "acce" n'est pas trouve dans le concept dyna_trans %(k1)s
+"""),
+
+28: _("""
+ deplacements initiaux nuls.
+"""),
+
+29: _("""
+ vitesses initiales nulles.
+"""),
+
+30: _("""
+ nume_init: on n'a pas trouver le nume_init dans le resultat %(k1)s
+"""),
+
+31: _("""
+ methode de newmark ou wilson: la donnee de list_inst ou fonc_inst est obligatoire
+"""),
+
+32: _("""
+ fonc_inst: on attend une fonction.
+"""),
+
+33: _("""
+ fonc_inst: il faut une fonction a pas constant.
+"""),
+
+34: _("""
+ fonc_inst: temps de reprise superieur a la fonction.
+"""),
+
+35: _("""
+ on n'a pas pu trouver le dernier instant sauve.
+"""),
+
+36: _("""
+ nume_init: on n'a pas trouve le nume_init dans le resultat %(k1)s
+"""),
+
+37: _("""
+ incoherence sur h, alpha, elas
+"""),
+
+40: _("""
+ le nom_cham %(k1)s n'appartient pas a la sd
+"""),
+
+41: _("""
+ erreur(s) dans les donnees
+"""),
+
+42: _("""
+ critere inconnu : %(k1)s
+"""),
+
+45: _("""
+ le champ absolu n'est accessible qu'en presence de modes statiques
+"""),
+
+
+
+
+
+
+
+
+47: _("""
+ debordement tableau
+"""),
+
+48: _("""
+ pas de list_inst dans increment !?!?!
+"""),
+
+49: _("""
+ il faut definir "list_arch" ou "list_inst" ou "inst" ou "pas_obse" au premier mot cle facteur "observation"
+"""),
+
+50: _("""
+ seule la valeur de "list_arch" ou "list_inst" ou "inst" ou "pas_obse" du premier mot cle facteur "observation" est prise en compte
+"""),
+
+51: _("""
+ pas de modeilisation c_plan pour la plasticite a gradient
+"""),
+
+52: _("""
+ pas de modelisation c_plan pour rousselier a gradient
+"""),
+
+53: _("""
+ comportement non prevu pour un algo de lagrangien augmente
+"""),
+
+54: _("""
+ le modele explose - decouper votre pas de temps
+"""),
+
+55: _("""
+ iter_inte_maxi insuffisant
+"""),
+
+56: _("""
+ duree du transitoire limitee par les possibilites de la transformee de fourier rapide
+"""),
+
+57: _("""
+ duree de la simulation temporelle insuffisante pour passage du transitoire
+"""),
+
+58: _("""
+ changement de signe de la vitesse --> on prend vitg0(i)
+"""),
+
+59: _("""
+ la matrice est triangulaire superieur-inversion indice
+"""),
+
+60: _("""
+ pivot nul.
+"""),
+
+61: _("""
+ option non prevue !
+"""),
+
+62: _("""
+ pb 1 test spectre fi par arpack !
+"""),
+
+63: _("""
+ pb 2 test spectre fi par arpack !
+"""),
+
+64: _("""
+ valeur de stogi incoherente !
+"""),
+
+65: _("""
+ en parallele stogi=oui obligatoire pour l'instant !
+"""),
+
+66: _("""
+ option de calcul incoherente !
+"""),
+
+67: _("""
+ pb division par zerodans la construction du beta !
+"""),
+
+68: _("""
+ incoherence 1 .lili et .flin !
+"""),
+
+69: _("""
+ incoherence 2 .lili et .flin !
+"""),
+
+70: _("""
+ incoherence 3 .lili et .flin !
+"""),
+
+71: _("""
+ incoherence .lili et .fel3 !
+"""),
+
+72: _("""
+ donnee erronnee, multiplicite nulle !
+"""),
+
+73: _("""
+ erreur log negatif ou nul
+"""),
+
+74: _("""
+ erreur_gamdev : alpha < 1
+"""),
+
+75: _("""
+ unif < 0
+"""),
+
+76: _("""
+ le type de concept: table_sdaster doit etre associe au mot cle nume_vite_flui
+"""),
+
+77: _("""
+ y a un bug 4
+"""),
+
+78: _("""
+ pas de discretisation de l'interspectre non constant.
+"""),
+
+79: _("""
+ discretisations differentesselon les fonctions de l'interspectre
+"""),
+
+80: _("""
+ "nb_poin" n est pas une puissance de 2,on prend la puissance de 2 superieure
+"""),
+
+81: _("""
+ coefficient de dispersion trop grand, cf. doc. u
+"""),
+
+82: _("""
+ matrice moyenne non definie positive
+"""),
+
+83: _("""
+ le pas tend vers 0 ...
+"""),
+
+84: _("""
+ erreur dans la recuperation du nume.prno .
+"""),
+
+86: _("""
+ pas d'interpolation possible pour les frequences.
+"""),
+
+87: _("""
+ derivee de f nulle
+"""),
+
+88: _("""
+ gm negatif
+"""),
+
+89: _("""
+ valeurs propres non// ordonnees %(k1)s %(k2)s %(k3)s
+"""),
+
+90: _("""
+ coef paraboliques pas compatibles
+"""),
+
+91: _("""
+ coef paraboliques pas compatibles 2
+"""),
+
+92: _("""
+ modelisations c_plan et 1d pas autorisees
+"""),
+
+93: _("""
+ zero elongation for hyperelastic material
+"""),
+
+94: _("""
+ t1*c33-t3*c33 is zero for hyperelastic material
+"""),
+
+95: _("""
+ error of elongation for hyperelastic material
+"""),
+
+96: _("""
+ no material data for hyperelastic
+"""),
+
+97: _("""
+ model not supported for hyperelastic material
+"""),
+
+98: _("""
+ check your poisson ratio
+"""),
+
+99: _("""
+ erreur numero colonne (dvlp)
+"""),
+}
--- /dev/null
+#@ MODIF algorith4 Messages DATE 23/04/2007 AUTEUR FLEJOU J-L.FLEJOU
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ code-colonne inconnu (dvlp)
+"""),
+
+2: _("""
+ trop de colonnes affichees (dvlp)
+"""),
+
+3: _("""
+ trop de colonnes de suivi (limite a quatre)
+"""),
+
+4: _("""
+ mode incorrect (dvlp)
+"""),
+
+5: _("""
+ fichier doit etre defini dans la premiere occurrence
+"""),
+
+6: _("""
+ fichier sans unite
+"""),
+
+7: _("""
+ format d'affichage trop grand
+"""),
+
+8: _("""
+ longueur format excessif (dvlp)
+"""),
+
+9: _("""
+ depassement de capacite affichage (dvlp)
+"""),
+
+10: _("""
+ unite logique invalide (dvlp)
+"""),
+
+11: _("""
+ sd affichage inexistante
+"""),
+
+12: _("""
+ nombre incorrrect de colonnes (erreur interne)
+"""),
+
+13: _("""
+ option inconnue pour info_residu
+"""),
+
+14: _("""
+ trop de colonnes d'affichage (limite a quinze)
+"""),
+
+15: _("""
+ ligne trop large (dvlp)
+"""),
+
+16: _("""
+ info_residu ne correspond pas a un residu
+"""),
+
+17: _("""
+ nombre lignes titre incorrecte (dvlp)
+"""),
+
+18: _("""
+ nombre colonnes incorrecte (dvlp)
+"""),
+
+19: _("""
+ code colonne incorrect (dvlp)
+"""),
+
+20: _("""
+ erreur operation sur sd impression colonnes (dvlp)
+"""),
+
+21: _("""
+ format trop grand pour la largeur max. d'une colonne
+"""),
+
+22: _("""
+ erreur ajou sur sd impression colonnes (dvlp)
+"""),
+
+23: _("""
+ erreur sd impression colonnes pleines (dvlp)
+"""),
+
+24: _("""
+ erreur supp sur sd impression colonnes (dvlp)
+"""),
+
+25: _("""
+ erreur lire sur sd impression colonnes (dvlp)
+"""),
+
+26: _("""
+ erreur ecri sur sd impression colonnes (dvlp)
+"""),
+
+27: _("""
+ ne correspond a aucun type de colonne
+"""),
+
+28: _("""
+ marquage interdit pour des colonnes de type texte
+"""),
+
+29: _("""
+ ne correspond a aucun format de colonne
+"""),
+
+30: _("""
+ ne correspond a aucune colonne
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+35: _("""
+ rang superieur a dimension vecteur
+"""),
+
+36: _("""
+ erreurresistance f_c < 0 ou = 0 !
+"""),
+
+37: _("""
+ erreurf_t < 0 !
+"""),
+
+38: _("""
+ erreur - valeur de crit_e_c superieure a 1
+"""),
+
+39: _("""
+ erreur - valeur de crit_e_c negative !!!!
+"""),
+
+40: _("""
+ erreur - valeur de epsp_p_c negative !!!!
+"""),
+
+41: _("""
+ erreur - valeur de epsp_r_c negative !!!!
+"""),
+
+42: _("""
+ erreur - valeur de epsi_r_t negative !!!!
+"""),
+
+43: _("""
+ erreur - valeur de fac_t_c negative ou > 1 !!!!
+"""),
+
+
+
+
+
+45: _("""
+ la modelisation 1d n est pas autorisee
+"""),
+
+46: _("""
+ element: %(k1)s non implante
+"""),
+
+47: _("""
+ probleme sur le type d option
+"""),
+
+48: _("""
+ matrice h non inversible
+"""),
+
+49: _("""
+ modelisation %(k1)s imcompatible avec la loi beton_double_dp .
+"""),
+
+50: _("""
+ comportement inattendu : %(k1)s
+"""),
+
+51: _("""
+ syt et d_sigm_epsi doivent etre specifies sous l operande beton_ecro_line dans defi_materiau pour utiliser la loi endo_isot_beton
+"""),
+
+52: _("""
+ syc ne doit pas etre valorise pour nu nul dans defi_materiau
+"""),
+
+53: _("""
+ syc doit etre superieur a sqrt((1+nu-2*nu*nu)/(2.d0*nu*nu))*syt dans defi_materiau pour prendre en compte le confinement
+"""),
+
+54: _("""
+ ksi non inversible
+"""),
+
+55: _("""
+ cv approche 0 impossible
+"""),
+
+56: _("""
+ dvp : option %(k1)s non prevue
+"""),
+
+57: _("""
+ erreur: pb de convergence (dgp neg)
+"""),
+
+58: _("""
+ erreur: pas de solution
+"""),
+
+59: _("""
+ erreur: pb de convergence
+"""),
+
+60: _("""
+ erreur: pb de convergence 2 (dgp neg)
+"""),
+
+61: _("""
+ erreur: pb de conv 2
+"""),
+
+62: _("""
+ loi beton_reglement utilisable uniquement en modelisation c_plan ou d_plan
+"""),
+
+63: _("""
+ la methode de localisation %(k1)s est indisponible actuellement
+"""),
+
+64: _("""
+ interaction non disponible
+"""),
+
+65: _("""
+ %(k1)s impossible actuellement
+"""),
+
+66: _("""
+ augmenter nmat
+"""),
+
+67: _("""
+ ecou_plas1 non disponible
+"""),
+
+68: _("""
+ pyramidal1 pas encore disponible
+"""),
+
+69: _("""
+ pyramidal2 pas encore disponible
+"""),
+
+70: _("""
+ joint_grain pas encore disponible
+"""),
+
+71: _("""
+ rl pas encore disponible
+"""),
+
+72: _("""
+ erreur - jacobien du systeme non lineaire a resoudre nul lors de la projection au sommet du cone de traction - les parametres materiaux sont sans doute mal definis.
+"""),
+
+73: _("""
+ non convergence a iteration maxi %(k1)s - erreur calculee %(k2)s > %(k3)s mais tres faibles increments de newton pour la loi beton_double_dp - on accepte la convergence.
+"""),
+
+74: _("""
+ erreur - non convergence a iteration maxi %(k1)s - erreur calculee %(k2)s > %(k3)s - pour la loi beton_double_dp - redecoupage du pas de temps
+"""),
+
+75: _("""
+ etat converge non conforme lors de la projection au sommet du cone de traction
+"""),
+
+76: _("""
+ etat converge non conforme en compression lors de la projection au sommet du cone de traction
+"""),
+
+77: _("""
+ erreur - jacobien du systeme non lineaire a resoudre nul lors de la projection au sommet des cones de compression et traction - les parametres materiaux sont sans doute mal definis.
+"""),
+
+78: _("""
+ etat converge non conforme en traction lors de la projection au sommet des deux cones
+"""),
+
+79: _("""
+ etat converge non conforme en compression lors de la projection au sommet des deux cones
+"""),
+
+80: _("""
+ erreur - jacobien du systeme non lineaire a resoudre nul lors de la projection au sommet du cone de compression - les parametres materiaux sont sans doute mal definis.
+"""),
+
+81: _("""
+ etat converge non conforme lors de la projection au sommet du cone de compression
+"""),
+
+82: _("""
+ etat converge non conforme en traction lors de la projection au sommet du cone de compression
+"""),
+
+83: _("""
+ erreur - jacobien du systeme non lineaire a resoudre nul - les parametres materiaux sont sans doute mal definis.
+"""),
+
+84: _("""
+ integration elastoplastique de loi multi-critere : erreur de programmation
+"""),
+
+85: _("""
+ erreur de programmation : valeur de nseuil incorrecte.
+"""),
+
+86: _("""
+ erreur : etat converge non conforme en traction et en compression pour la loi de comportement beton_double_dp pour les deux criteres en meme temps. il faut un saut elastique plus petit, ou redecouper le pas de temps
+"""),
+
+87: _("""
+ erreur : etat converge non conforme en compression pour la loi de comportement beton_double_dp pour les deux criteres en meme temps. il faut un saut elastique plus petit, ou redecouper le pas de temps
+"""),
+
+88: _("""
+ erreur : etat converge non conforme en traction pour la loi de comportement beton_double_dp pour les deux criteres en meme temps. il faut un saut elastique plus petit, ou redecouper le pas de temps
+"""),
+
+89: _("""
+ etat converge non conforme en traction
+"""),
+
+90: _("""
+ etat converge non conforme en compression
+"""),
+
+91: _("""
+ option %(k1)s non prevue (dvlp)
+"""),
+
+92: _("""
+ valeurs initiales non conformes : il y a probablement une erreur dans la programmation
+"""),
+
+93: _("""
+ cet algorithme ne traite pas encore les options rigi_meca_tang et full_meca
+"""),
+
+94: _("""
+ il faut declarer fonc_desorp sous elas_fo pour le fluage propre avec sech comme parametre
+"""),
+
+95: _("""
+ division par zero dans lcumfs
+"""),
+
+96: _("""
+ erreur dans lcumme : pb de dimension
+"""),
+
+97: _("""
+ on ne traite pas actuellement plusieurs nom_cham simultanement, on ne considere que le premier argument
+"""),
+
+98: _("""
+ nombre de valeurs dans le fichier unv dataset 58 non identique
+"""),
+
+99: _("""
+ nature du champ dans le fichier unv dataset 58 non identique
+"""),
+}
--- /dev/null
+#@ MODIF algorith5 Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ le type de resultat dyna_trans ne supporte pas les donnees complexes
+"""),
+
+2: _("""
+ le type de resultat dyna_harmo ne supporte pas les donnees reelles
+"""),
+
+3: _("""
+ on ne traite pas actuellement les deformations complexes
+"""),
+
+4: _("""
+ nombre de dataset 58 superieur a nbnoeud * nbcmp
+"""),
+
+5: _("""
+ erreur dans la lecture du fichier ideas
+"""),
+
+6: _("""
+ seules les donnees de type deplacement, vitesse, acceleration, deformation ou contrainte sont actuellement traitees
+"""),
+
+7: _("""
+ donnees : complexes, incompatibles avec dyna_trans
+"""),
+
+8: _("""
+ donnees : reelles, incompatibles avec dyna_harmo ou harm_gene
+"""),
+
+9: _("""
+ on ne traite pas actuellement la redefinition des orientations pour les champs de contrainte
+"""),
+
+10: _("""
+ on ne traite pas actuellement la redefinition des orientations pour les champs de deformation
+"""),
+
+11: _("""
+ la condition gamma/ksi <= 1 n est pas respectee
+"""),
+
+12: _("""
+ incoherence des relations sigma_c sigma_p1 m_pic a_pic a_e et m_e
+"""),
+
+13: _("""
+ erreur d integration - essai d integration numero %(k1)s - divergence de l integration locale - redecoupage du pas de temps
+"""),
+
+14: _("""
+ increment de deformation cumulee (dv) = - %(k1)s
+"""),
+
+15: _("""
+ type d'element fini pas traite
+"""),
+
+16: _("""
+ le profil de la matrice n est surement pas plein. on continue mais s'il vous arrive des problemes plus loin...
+"""),
+
+17: _("""
+ le profil de la matrice n est surement pas plein. on continue mais attention ....
+"""),
+
+18: _("""
+ le profil de la matrice n est pas plein. on arrete tout ....
+"""),
+
+19: _("""
+ matrice singuliere
+"""),
+
+20: _("""
+ inversion seulement en dimension 3
+"""),
+
+21: _("""
+ type de maille inconnu (dvlp)
+"""),
+
+22: _("""
+ la matrice masse est singuliere.
+"""),
+
+23: _("""
+ pas de temps minimal atteint
+"""),
+
+24: _("""
+ donnees erronees.
+"""),
+
+25: _("""
+ gamma = 0 : valeur par defaut
+"""),
+
+26: _("""
+ dispositif anti-sismique : la distance des noeuds 1 et 2 est nulle
+"""),
+
+27: _("""
+ le noeud %(k1)s n'est pas un noeud du maillage %(k2)s
+"""),
+
+28: _("""
+ on n'a pas trouve le ddl "dx" pour le noeud %(k1)s
+"""),
+
+29: _("""
+ on n'a pas trouve le ddl "dy" pour le noeud %(k1)s
+"""),
+
+30: _("""
+ on n'a pas trouve le ddl "dz" pour le noeud %(k1)s
+"""),
+
+31: _("""
+ calcul non-lineaire par sous-structuration, le mot-cle sous_struc_1 est obligatoire
+"""),
+
+32: _("""
+ argument du mot-cle "sous_struc_1" n'est pas un nom de sous-structure
+"""),
+
+33: _("""
+ calcul non-lineaire par sous-structuration entre 2 structures mobiles, le mot-cle sous_struc_2 est obligatoire
+"""),
+
+34: _("""
+ argument du mot-cle "sous_struc_2" n'est pas un nom de sous-structure
+"""),
+
+35: _("""
+ obstacle bi_cerc_int : dist_2 doit etre superieure ou egale a dist_1
+"""),
+
+36: _("""
+ calcul non-lineaire par sous-structuration, pas de dispositif anti-sismique ou de flambage possible
+"""),
+
+37: _("""
+ le multi-appui + sous-structuration n'est pas developpe - bon courage
+"""),
+
+38: _("""
+ conflit entre choc et flambage au meme lieu de choc : le calcul sera de type flambage
+"""),
+
+39: _("""
+ argument du mot-cle "repere" inconnu
+"""),
+
+40: _("""
+ les rigidites de chocs doivent etre strictement positives
+"""),
+
+41: _("""
+ incoherence dans les donnees de la loi de flambage : les caracteristiques introduites peuvent induire a un ecrasement residuel negatif
+"""),
+
+42: _("""
+ les bases utilisees pour la projection sont differentes.
+"""),
+
+43: _("""
+ les bases utilisees n'ont pas le meme nombre de vecteurs.
+"""),
+
+44: _("""
+ les numerotations des matrices sont differentes.
+"""),
+
+45: _("""
+ les numerotations des vecteurs d'excitation sont differentes.
+"""),
+
+46: _("""
+ on n'a pas pu trouve les deplacements initiaux
+"""),
+
+47: _("""
+ on n'a pas pu trouve les vitesses initiales
+"""),
+
+48: _("""
+ on n'a pas pu trouve les variables internes initiales : reprise choc avec flambage
+"""),
+
+49: _("""
+ abscence de terme de forcage externe. l'algorithme itmi n'est pas prevu pour calculer la reponse libre d'une structure.
+"""),
+
+50: _("""
+ abscence de non-linearites de choc. pour traiter le regime lineaire, preciser une non-linearites de choc avec un jeu important.
+"""),
+
+51: _("""
+ impossible de traiter le type d obstacle choisi avec methode itmi, (obstacle de type %(k1)s au noeud %(k2)s ).
+"""),
+
+52: _("""
+ duree de la simulation temporelle apres transitoire inferieure a la duree demandee (excitation temporelle trop courte)
+"""),
+
+53: _("""
+ variation du deplacement entre deux instants successifs superieure a la valeur de tolerance proposee
+"""),
+
+54: _("""
+ le calcul de la reponse temporelle n'est pas possible pour le type de structure etudiee.
+"""),
+
+55: _("""
+ le couplage fluide-structure n'a pas ete pris en compte en amont.
+"""),
+
+56: _("""
+ nb_mode est superieur au nombre de modes du concept %(k1)s . on impose donc nb_mode = %(k2)s , i.e. egal au nombre de modes du concept %(k3)s .
+"""),
+
+57: _("""
+ nb_mode_diag est different de nb_mode nombre de modes de la base modale . complete l'option base reduite n'est plus disponible.
+"""),
+
+58: _("""
+ le calcul des parametres du mode no %(k1)s par l'operateur <calc_flui_stru> n'a pas converge pour la vitesse no %(k2)s . le calcul de la reponse dynamique de la sructure n'est donc pas possible.
+"""),
+
+59: _("""
+ pas de mot-cle <nb_mode_flui>. les %(k1)s modes du concept %(k2)s sont pris en compte pour le calcul du saut de force fluidelastique d'amortissement au cours des phases de choc.
+"""),
+
+60: _("""
+ nb_mode_flui est plus grand que le nombre de modes du concept %(k1)s . %(k2)s modes sont pris en compte pour le calcul du saut de force fluidelastique d'amortissement au cours des phases de choc.
+"""),
+
+61: _("""
+ la matrice ktilda est singuliere.
+"""),
+
+62: _("""
+ instant initial non trouve valeur prise : 0
+"""),
+
+63: _("""
+ rela_effo_depl par sous-structuration, le mot-cle sous_struc est obligatoire
+"""),
+
+64: _("""
+ argument du mot-cle "sous_struc" n'est pas un nom de sous-structure
+"""),
+
+65: _("""
+ type de base inconnu.
+"""),
+
+66: _("""
+ le taux de souplesse negligee est superieur au seuil.
+"""),
+
+67: _("""
+ algorithme de devoge: developpement "amor_gene" non implante.
+"""),
+
+68: _("""
+ algorithme itmi : il faut renseigner obligatoirement l'un ou l'autre des mots cles <amor_reduit>, <amor_gene>
+"""),
+
+69: _("""
+ algorithme itmi : il faut renseigner obligatoirement les mots-cles <base_elas_flui> et <nume_vite_flui> pour definir une base modale sous ecoulement
+"""),
+
+70: _("""
+ algorithme itmi : il faut renseigner obligatoirement le mot cle <pas> , i.e. donner la valeur du pas de temps initial
+"""),
+
+71: _("""
+ algorithme itmi : lorsque l on affecte "oui" a <etat_stat>, il faut renseigner <ts_reg_etab>
+"""),
+
+72: _("""
+ calcul non-lineaire par sous-structuration, option <sous_struc_1>, non implante dans la methode itmi.
+"""),
+
+73: _("""
+ l'option <noeud_2> n'est pas implantee dans la la methode itmi.
+"""),
+
+74: _("""
+ calcul non-lineaire par sous-structuration, option <sous_struc_2>, non implante dans la methode itmi.
+"""),
+
+75: _("""
+ algorithme de NEWMARK: developpement %(k1)s non implante.
+"""),
+
+76: _("""
+ NUME_ORDRE plus grand que le nombre de modes de la base
+"""),
+
+78: _("""
+ mauvaise definition de l excitation mot cle : vect_gene non autorise pour itmi .
+"""),
+
+79: _("""
+ ksib non inversible
+"""),
+
+
+
+
+
+
+
+
+82: _("""
+ projection nulle sur la boule unite (dvlp)
+"""),
+
+83: _("""
+ etat de contact inconnu
+"""),
+
+84: _("""
+ champ de geometrie introuvable (dvlp)
+"""),
+
+85: _("""
+ echec dans le traitement du contact, augmenter iter_cont_max
+"""),
+
+86: _("""
+ -> Il y a convergence forcée sur boucle contraintes actives lors du traitement
+ du contact.
+ -> Risque & Conseil :
+ La convergence forcée se déclenche lorsque le problème a du mal à converger. Il y a des risques que le problème
+ soit un peu moins bien traité. Vérifiez bien que vous n'avez pas d'interpénétration entre les mailles. S'il y des
+ interpénétrations intempestives, tentez de découper plus finement en temps votre problème.
+"""),
+
+87: _("""
+ -> Il y a convergence forcée sur boucle seuil frottement lors du traitement du
+ contact.
+ -> Risque & Conseil :
+ La convergence forcée se déclenche lorsque le problème a du mal à converger. Il y a des risques que le problème
+ soit un peu moins bien traité. La condition de frottement de Coulomb est peut etre mal prise en compte. Risque de
+ résultats faux sur les forces d'adhérence. Essayez de découper plus finement en temps votre problème.
+"""),
+
+88: _("""
+ -> Il y a convergence forcée sur boucle de géométrie lors du traitement du
+ contact.
+ -> Risque & Conseil :
+ La convergence forcée se déclenche lorsque le problème a du mal à converger
+ lors de grands glissements relatifs entre deux surfaces de contact.
+ Il y a des risques que le problème soit un peu moins bien traité.
+ Vérifiez bien que vous n'avez pas d'interpénétration entre les mailles.
+ S'il y des interpénétrations intempestives, tentez de découper plus finement en temps votre problème.
+"""),
+
+89: _("""
+ element de contact inconnu (dvlp)
+"""),
+
+90: _("""
+ nom de l'element inconnu
+"""),
+
+91: _("""
+ schema integration non conforme
+"""),
+
+92: _("""
+ element de contact non conforme (dvlp)
+"""),
+
+93: _("""
+ dimension de l'espace incorrecte (dvlp)
+"""),
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF algorith6 Messages DATE 30/05/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+
+
+8: _("""
+ erreur point integration (dvlp)
+"""),
+
+9: _("""
+ question inconnue (dvlp)
+"""),
+
+10: _("""
+ element de contact incorrect (dvlp)
+"""),
+
+11: _("""
+ pas d'elements tardifs ! (dvlp)
+"""),
+
+12: _("""
+ la methode d integration est gauss, le champ vale_cont n est pas cree
+"""),
+
+13: _("""
+ dimension du probleme inconnu
+"""),
+
+14: _("""
+ erreur dans la programmation, cette routine ne doit etre appele que dans le cas de la methode continue du contact
+"""),
+
+15: _("""
+ le vecteur dire_appa est nul !
+"""),
+
+16: _("""
+ le fond de fissure d'un maillage 2d ne peut etre defini par des mailles
+"""),
+
+17: _("""
+ les mailles a modifier doivent etre de type "seg3" ou "poi1"
+"""),
+
+18: _("""
+ le fond de fissure d'un maillage 2d est defini par un noeud unique
+"""),
+
+19: _("""
+ -> Code Aster a détecté des mailles de type différent lors de la
+ correspondance entre les maillages des deux modèles (mesuré/numérique).
+ Ce cas n'est pas prévu, Code Aster initialise la correspondance au noeud
+ le plus proche.
+ -> Risque & Conseil :
+ ???
+
+"""),
+
+20: _("""
+ nb noeuds mesure superieur nb noeuds calcul
+"""),
+
+21: _("""
+ noeu_calcul non trouve
+"""),
+
+22: _("""
+ noeu_mesure non trouve
+"""),
+
+23: _("""
+ nombre de noeuds different
+"""),
+
+24: _("""
+ traitement manuel correspondance : un couple a la fois
+"""),
+
+25: _("""
+ echec projection
+"""),
+
+26: _("""
+ norme vecteur dir. nulle
+"""),
+
+27: _("""
+ le nombre des coefficients de ponderation est superieur au nombre de vecteurs de base
+"""),
+
+28: _("""
+ le nombre des coefficients de ponderation est inferieur au nombre de vecteurs de base , le dernier coefficient est affecte aux autres
+"""),
+
+29: _("""
+ le nombre des fonctions de ponderation est superieur au nombre de vecteurs de base
+"""),
+
+30: _("""
+ le nombre des fonctions de ponderation est inferieur au nombre de vecteurs de base la derniere fonction est affectee aux autres
+"""),
+
+31: _("""
+ le nombre d abscisses d une des fonctions d interpolation n est pas identique au nombre d abscisses du premier point de mesure experimental
+"""),
+
+32: _("""
+ le critere d egalite de la liste d abscisses du premier dataset 58 et de la liste d abscisses d une des fonctions de ponderation n est pas verifie
+"""),
+
+33: _("""
+ incompatibilite nom_para et donnees mesurees
+"""),
+
+34: _("""
+ erreur
+"""),
+
+35: _("""
+ surcharge d'un resultat sans definir d'etat initial : on prend un etat initial nul
+"""),
+
+
+
+
+
+
+
+
+37: _("""
+ pas de numero d'ordre pour le concept %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+41: _("""
+ le champ de depl_r (ou derive) n'est pas trouve dans le concept %(k1)s
+"""),
+
+42: _("""
+ le champ de sief_r (ou derive) n'est pas trouve dans le concept %(k1)s
+"""),
+
+43: _("""
+ le champ de vite n'est pas trouve dans le concept %(k1)s on cree un champ de vitesses nulles
+"""),
+
+44: _("""
+ le champ d'acce n'est pas trouve dans le concept %(k1)s on calcule un champ d'accelerations, ce qui est possible puisque les vitesses sont nulles
+"""),
+
+45: _("""
+ le champ d'acce n'est pas trouve dans le concept %(k1)s on ne peut pas, pour l'instant, calculer le champ des accelerations car les vitesses ne sont pas nulles
+"""),
+
+46: _("""
+ le champ de vari_r (ou derive) n'est pas trouve dans le concept %(k1)s
+"""),
+
+47: _("""
+ le champ de vari_non_local (ou derive) n'est pas trouve dansle concept %(k1)s
+"""),
+
+48: _("""
+ le champ de lanl_elga n'est pas trouve dans le concept %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+52: _("""
+ iterations cycliques : changement de configuration ou variation trop importante du deplacement physique a l'issue de la derniere iteration
+"""),
+
+53: _("""
+ pas de convergence de l'algorithme de newton en %(k1)s iterations a l'instant %(k2)s . il faut reduire la rigidite normale, ou le jeu.
+"""),
+
+54: _("""
+ dvp : trop de noeuds
+"""),
+
+55: _("""
+ theta = 1 ou 0.5
+"""),
+
+56: _("""
+ fluence commandee et flux_phi different de 1
+"""),
+
+57: _("""
+ fluence decroissante (phi<0)
+"""),
+
+58: _("""
+ relation asse_combu 1d sans loi de fluence appropriee
+"""),
+
+59: _("""
+ erreur dir. grandissement
+"""),
+
+60: _("""
+ cam_clay : la porosite donnee dans cam_clay doit etre la meme que dans thm_init
+"""),
+
+61: _("""
+ barcelone : il faut que la contrainte hydrostatique soit superieure a la pression de cohesion -kc*pc
+"""),
+
+62: _("""
+ iter_inte_maxi insuffisant lors du calcul de la borne
+"""),
+
+63: _("""
+ cam_clay : le cas des contraintes planes n est pas traite pour ce modele.
+"""),
+
+64: _("""
+ cam_clay : il faut que la contrainte hydrostatique soit superieure a la pression initiale pa
+"""),
+
+65: _("""
+ type de selection inconnue
+"""),
+
+66: _("""
+ pour l'instant on ne traite pas le cas des contraintes planes dans le modele de chaboche a une variable cinematique.
+"""),
+
+67: _("""
+ n doit etre strictementpositif.
+"""),
+
+68: _("""
+ parametre un_sur_k egal a zero cas incompatible avec visc_cinx_chab
+"""),
+
+69: _("""
+ loi visc_cinx_chab on doit obligatoirement avoir un_sur_m = zero
+"""),
+
+70: _("""
+ macro_element statique et feti incompatibles !
+"""),
+
+71: _("""
+ chargement onde plane et feti incompatibles !
+"""),
+
+72: _("""
+ forces fluides sur les grappes et feti incompatibles !
+"""),
+
+73: _("""
+ forces d'inertie et feti incompatibles !
+"""),
+
+74: _("""
+ forces explicites et feti incompatibles !
+"""),
+
+75: _("""
+ forces d'inertie derivees et feti incompatibles !
+"""),
+
+76: _("""
+ mode %(k1)s non reconnu (dvlp)
+"""),
+
+77: _("""
+ coeff vic_cin1_chab tous nuls ?
+"""),
+
+78: _("""
+ f reste toujours negative.
+"""),
+
+79: _("""
+ f reste toujours positive.
+"""),
+
+80: _("""
+ pb interp vari entiere ??
+"""),
+
+81: _("""
+ utiliser algo_1d="deborst" sous comp_incr pour le comportement %(k1)s
+"""),
+
+82: _("""
+ integration explicite du comportement non programmee
+"""),
+
+83: _("""
+ rousselier à gradient sans simo miehe non programmé : utilisez la modélisation **_INCO
+"""),
+
+84: _("""
+ loi non traitee pour les elemjoin : %(k1)s
+"""),
+
+85: _("""
+ integration explicite impossible
+"""),
+
+86: _("""
+ erreur de programmation 1
+"""),
+
+87: _("""
+ loi de comportement inexistante
+"""),
+
+88: _("""
+ erreur dans le type de comportment
+"""),
+
+89: _("""
+ erreur de programmation 2
+"""),
+
+90: _("""
+ pas de c_plan pour vmis_cineutiliser c_plan_deborst
+"""),
+
+91: _("""
+ pas de c_plan pour vmis_cin1utiliser c_plan_deborst
+"""),
+
+92: _("""
+ pas de contraintes planes
+"""),
+
+93: _("""
+ integration du comportement poly_cfc uniquement explicite
+"""),
+
+94: _("""
+ pas de c_plan pour bazant_fd utiliser c_plan_deborst
+"""),
+
+95: _("""
+ integration implicite du comportement non programmee
+"""),
+
+96: _("""
+ green deformation required for elas_hyper material
+"""),
+
+
+
+
+}
--- /dev/null
+#@ MODIF algorith7 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ couplage fluage/fissuration : il faut definir deux lois de comportement exactement.
+"""),
+
+2: _("""
+ granger et endo_isot_betonou mazars non encore developpe
+"""),
+
+3: _("""
+ loi de comportement non autorisee dans le couplage fluage/fissuration
+"""),
+
+4: _("""
+ umlv_fp et mazars non encore developpe
+"""),
+
+5: _("""
+ pas de c_plan pour eib utiliser c_plan_deborst
+"""),
+
+6: _("""
+ loi de fluage non autorisee dans le couplage fluage/fissuration
+"""),
+
+7: _("""
+ pas d'orthotropie non line
+"""),
+
+8: _("""
+ loi de comportement hyper-elastique non prevue
+"""),
+
+9: _("""
+ c_plan methode de borstet simo_miehe incompatibles
+"""),
+
+10: _("""
+ comp1det simo_miehe incompatibles
+"""),
+
+11: _("""
+ couplage fluage/fissuration : la premiere loi doit etre une loi de fluage de type granger_fp ou granger_fp_v.
+"""),
+
+12: _("""
+ couplage fluage/fissuration : nombre total de variables internes incoherent <--> erreur de programmation.
+"""),
+
+13: _("""
+ f(0)= %(k1)s > 0
+"""),
+
+
+
+
+
+
+15: _("""
+ le concept evol_char : %(k1)s n'en est pas un !
+"""),
+
+16: _("""
+ le concept evol_char : %(k1)s ne contient aucun champ de type evol_char.
+"""),
+
+17: _("""
+ on ne trouve pas le resultat derive associe a %(k1)s et %(k2)s
+"""),
+
+18: _("""
+ le concept evol_ther : %(k1)s ne contient aucun champ.
+"""),
+
+19: _("""
+ erreur de type sur la charge thermique %(k1)s
+"""),
+
+20: _("""
+ le champ de deplacement didi n'est pas trouve dans le concept %(k1)s
+"""),
+
+21: _("""
+ -> Critère de convergence est lache !
+ -> Risque & Conseil : La valeur de RESI_GLOB_RELA est supérieure a 10-4.
+ Cela peut nuire à la qualité de la solution. Vous ne vérifiez pas l'équilibre de manière rigoureuse.
+
+
+
+"""),
+
+22: _("""
+ la charge %(k1)s n'est pas mecanique
+"""),
+
+23: _("""
+ la charge %(k1)s ne peut etre suiveuse
+"""),
+
+24: _("""
+ la charge %(k1)s ne peut etre differentielle
+"""),
+
+25: _("""
+ il y a plusieurs charges thermiques
+"""),
+
+26: _("""
+ le modele contient des elements de structure il faut renseigner le mot-cle cara_elem pour les options forc_noda et reac_noda.
+"""),
+
+27: _("""
+ la charge %(k1)s ne peut etre pilotee
+"""),
+
+28: _("""
+ on ne peut piloter une charge fonction du temps
+"""),
+
+29: _("""
+ la charge thermique %(k1)s ne peut etre pilotee
+"""),
+
+30: _("""
+ il y a plusieurs charges sechage
+"""),
+
+31: _("""
+ la charge de sechage %(k1)s ne peut etre pilotee
+"""),
+
+32: _("""
+ il y a plusieurs charges defo.anelastiques
+"""),
+
+33: _("""
+ la charge defo.anelastiques %(k1)s ne peut etre pilotee
+"""),
+
+34: _("""
+ la charge de type evol_char %(k1)s ne peut etre pilotee
+"""),
+
+35: _("""
+ une meme charge ne peut contenir a la fois le mot-cle "liaison_unil" et le mot-cle "contact"
+"""),
+
+36: _("""
+ la charge de type liaison_unilaterale %(k1)s ne peut etre pilotee
+"""),
+
+37: _("""
+ la charge de type contact %(k1)s ne peut etre pilotee
+"""),
+
+38: _("""
+ la charge %(k1)s ne peut pas utiliser de fonction multiplicative fonc_mult car elle est pilotee
+"""),
+
+39: _("""
+ on ne peut pas faire de pilotage en l'absence de forces de type "fixe_pilo"
+"""),
+
+40: _("""
+ il ne peut pas y avoir de contact (mot-cle "contact") dans plus d'une charge
+"""),
+
+41: _("""
+ il y a au moins une charge non mecanique : verifier le fichier de commandes
+"""),
+
+42: _("""
+ reac_incr negatif
+"""),
+
+43: _("""
+ reac_iter negatif
+"""),
+
+44: _("""
+ reac_iter_elas negatif
+"""),
+
+45: _("""
+ il faut preciser un concept evol_noli en prediction 'depl_calcule'
+"""),
+
+46: _("""
+ -> La définition des paramètres rho_min et rho_excl est contradictoire.
+ On choisit de prendre rho_min à rho_excl.
+ -> Risque & Conseil :
+ RHO_MIN ne doit pas etre compris entre -RHO_EXCL et RHO_EXCL
+
+"""),
+
+47: _("""
+ les valeurs des parametres rho_max et rho_excl sont contradictoires, on prend rho_max a -rho_excl
+"""),
+
+48: _("""
+ eta_pilo_max doit etre inferieur a eta_pilo_r_max
+"""),
+
+49: _("""
+ eta_pilo_min doit etre superieur a eta_pilo_r_min
+"""),
+
+50: _("""
+ il faut au plus 1 noeud pour le pilotage ddl_impo
+"""),
+
+51: _("""
+ il faut au plus 1 groupe de noeud pour le pilotage ddl_impo
+"""),
+
+52: _("""
+ il faut au plus un noeud dans le groupe pour le pilotage ddl_impo
+"""),
+
+53: _("""
+ il faut preciser un groupe de noeuds dans la methode long_arc
+"""),
+
+54: _("""
+ groupe de noeud %(k1)s vide
+"""),
+
+55: _("""
+ liste de composantes vide pour la methode long_arc
+"""),
+
+56: _("""
+ liste relation_kit vide
+"""),
+
+57: _("""
+ liste relation_kit trop longue
+"""),
+
+58: _("""
+ 1d ou c_plan ?
+"""),
+
+59: _("""
+ liste relation_kit trop
+"""),
+
+60: _("""
+ -> Le critère de convergence pour intégrer le comportement 'RESI_INTE_RELA'
+ est lache (très supérieur à la valeur par défaut).
+ -> Risque & Conseil :
+ Cela peut nuire à la qualité de la solution et à la convergence.
+
+
+"""),
+
+61: _("""
+ option %(k1)s non traitee
+"""),
+
+62: _("""
+ matrice non inversible
+"""),
+
+63: _("""
+ pas existance de solution pour le saut
+"""),
+
+64: _("""
+ existance d'un element a discontinuite trop grand non unicite du saut
+"""),
+
+65: _("""
+ non convergence du newton pour le calcul du saut no1
+"""),
+
+66: _("""
+ non convergence du newton pour le calcul du saut no2
+"""),
+
+67: _("""
+ non convergence du newton pour le calcul du saut no3
+"""),
+
+68: _("""
+ erreur dans le calcul du saut
+"""),
+
+69: _("""
+ loi %(k1)s non implantee pour les elemdisc
+"""),
+
+70: _("""
+ elements isoparametriques 2d non disponibles en grandes rotations
+"""),
+
+71: _("""
+ elements isoparametriques 3d non disponibles en grandes rotations
+"""),
+
+72: _("""
+ seule une loi de comportement elastique isotrope est valide pour le calcul de dg !
+"""),
+
+73: _("""
+ le tenseur epseq=0 on a donc une derivee depseq tres grande !
+"""),
+
+74: _("""
+ valeur de d_sigm_epsi non trouvee
+"""),
+
+75: _("""
+ valeur de sy non trouvee
+"""),
+
+76: _("""
+ dvp : non implante
+"""),
+
+
+
+
+
+
+
+
+78: _("""
+ feti et frottement incompatibles !
+"""),
+
+79: _("""
+ n doit etre > 0
+"""),
+
+80: _("""
+ phi_zero < ou = a zero
+"""),
+
+81: _("""
+ 1/k et l doivent etre >=0
+"""),
+
+82: _("""
+ phi/kphi0+l=0 et beta<0
+"""),
+
+83: _("""
+ f(0) > 0 : erreur de conception
+"""),
+
+84: _("""
+ calcul flambement non lineaire hpp
+"""),
+
+85: _("""
+ flambement non lineaire green
+"""),
+
+86: _("""
+ fonctionnalite modifiee (dvlp)
+"""),
+
+87: _("""
+ -> Pour le traitement du contact avec X-FEM, le solveur mumps est vivement
+ recommandé.
+ -> Risque & Conseil :
+ Pour XFEM, la matrice produite est parfois non définie positive. Seul un solveur qui pivote peut alors résoudre
+ le problème. Il est donc préférable d'utiliser MUMPS (mot-clef SOLVEUR) pour ne pas finir en erreur du type
+ "PIVOT NUL" avec le solveur MULT_FRONT ou LDLT.
+"""),
+
+
+
+
+
+
+
+
+89: _("""
+ contact et rech. lin. peuvent poser des problemes de convergence
+"""),
+
+90: _("""
+ la combinaison: contact-frottement et solveur gcpc n'est pas disponible.
+"""),
+
+91: _("""
+ contact continue et rech. lin. sont incompatibles
+"""),
+
+92: _("""
+ contact continue et pilotage sont incompatibles
+"""),
+
+93: _("""
+ la combinaison: methode continue en contact et solveur gcpc n'est pas disponible.
+"""),
+
+94: _("""
+ liaison_unilater et pilotage sont des fonctionnalites incompatibles
+"""),
+
+95: _("""
+ liaison_unilater et rech. lin. peuvent poser des problemes de convergence
+"""),
+
+96: _("""
+ comportement zmat obligatoire
+"""),
+
+97: _("""
+ il faut declarer lam_visc pour le fluage de dessication intrinseque
+"""),
+
+98: _("""
+ il faut declarer fonc_desorp sous elas_fo pour le fluage de dessication intrinseque avec sech comme parametre
+"""),
+
+99: _("""
+ mauvais dimensionnementde geomm et geomp
+"""),
+}
--- /dev/null
+#@ MODIF algorith8 Messages DATE 16/05/2007 AUTEUR BOYERE E.BOYERE
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ contraintes planes en grandes deformations non implantees
+"""),
+
+2: _("""
+ caracteristique fluage incomplet
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+6: _("""
+ message d'erreur inconnu (dvlp)
+"""),
+
+7: _("""
+ incoherence de taille (dvlp)
+"""),
+
+8: _("""
+ format de colonne inconnu (dvlp)
+"""),
+
+
+
+12: _("""
+ f reste toujours negative
+"""),
+
+13: _("""
+ f reste toujours positive
+"""),
+
+14: _("""
+ signe de sigma indetermine
+"""),
+
+15: _("""
+ changement de signe de sigma
+"""),
+
+16: _("""
+ f=0 : pas converge
+"""),
+
+17: _("""
+ dvp : non coherent
+"""),
+
+18: _("""
+ phase inconnue (dvlp)
+"""),
+
+19: _("""
+ trop d'amortissements modaux
+"""),
+
+20: _("""
+ La définition du repère d'orthotropie a été mal faite.
+ Utilisez soit ANGL_REP soit ANGL_AXE de la commande AFFE_CARA_ELEM mot clé facteur MASSIF
+"""),
+
+22: _("""
+ type d element incompatible avec une loi elastique anisotrope
+"""),
+
+23: _("""
+ denominateur nul dans le calcul de eta_pilotage
+"""),
+
+24: _("""
+ cisaillement suiveur non implante
+"""),
+
+25: _("""
+ pression imposee sur l'axe des coordonnees cylindriques
+"""),
+
+26: _("""
+ mode non defini
+"""),
+
+27: _("""
+ lecture du champ depl_calcule impossible
+"""),
+
+28: _("""
+ prediction par extrapolation impossible : pas de temps nul
+"""),
+
+29: _("""
+ iter_line_maxi doit etre inferieur a 1000
+"""),
+
+30: _("""
+ mauvaise estimation de f
+"""),
+
+31: _("""
+ borne superieure pmax incorrecte
+"""),
+
+32: _("""
+ viscosite n egale a zero
+"""),
+
+33: _("""
+ viscosite un_sur_k egale a zero
+"""),
+
+34: _("""
+ g=0 : pas converge
+"""),
+
+35: _("""
+ incompatibilite entre la loi de couplage %(k1)s et la modelisation choisi %(k2)s
+"""),
+
+36: _("""
+ il y a deja une loi de couplage
+"""),
+
+37: _("""
+ il y a deja une loi hydraulique
+"""),
+
+38: _("""
+ il y a deja une loi de mecanique
+"""),
+
+39: _("""
+ il n y a pas de loi de couplage
+"""),
+
+40: _("""
+ il n y a pas de loi hydraulique
+"""),
+
+41: _("""
+ il n y a pas de loi de mecanique
+"""),
+
+42: _("""
+ la loi de couplage est incorrecte pour une modelisation hm
+"""),
+
+43: _("""
+ incompatibilite des comportements mecanique et hydraulique
+"""),
+
+44: _("""
+ loi de mecanique incompatible avec une modelisation hm
+"""),
+
+45: _("""
+ la loi de couplage est incorrecte pour une modelisation hhm
+"""),
+
+46: _("""
+ loi de mecanique incompatible avec une loi hhm
+"""),
+
+47: _("""
+ loi de mecanique incompatible avec une modelisation hhm
+"""),
+
+48: _("""
+ il y a une loi de mecanique dans la relation thh
+"""),
+
+49: _("""
+ la loi de couplage est incorrecte pour une modelisation thh
+"""),
+
+50: _("""
+ loi de mecanique incompatible avec une loi thh
+"""),
+
+51: _("""
+ il y a une loi de mecanique dans la relation thv
+"""),
+
+52: _("""
+ la loi de couplage est incorrecte pour une modelisation thv
+"""),
+
+53: _("""
+ loi de mecanique incompatible avec une loi thv
+"""),
+
+54: _("""
+ la loi de couplage est incorrecte pour une modelisation thm
+"""),
+
+55: _("""
+ loi de mecanique incompatible avec une modelisation thm
+"""),
+
+56: _("""
+ la loi de couplage est incorrecte pour une modelisation thhm
+"""),
+
+57: _("""
+ Loi de mecanique incompatible avec une modelisation THHM
+"""),
+
+58: _("""
+ Methode non implantee
+"""),
+
+59: _("""
+ Champ 'IN' inexistant
+"""),
+
+
+
+
+
+
+61: _("""
+ Il manque le séchage de référence (AFFE_MATERIAU/AFFE_VARC/VALE_REF)
+"""),
+
+
+
+
+65: _("""
+ echec loi de comp dans zerofo
+"""),
+
+66: _("""
+ convergence atteinte surapproximation lineaire tangente de l'evolution plastique- risque d'imprecision
+"""),
+
+67: _("""
+ endommagement maximal atteint au cours des resolutions internes
+"""),
+
+68: _("""
+ erreur recuperation parametres materiau
+"""),
+
+69: _("""
+ type de matrice demande non disponible
+"""),
+
+70: _("""
+ erreur dans nmvecd
+"""),
+
+71: _("""
+ valo >0
+"""),
+
+72: _("""
+ dr negatif
+"""),
+
+73: _("""
+ pb2 seq
+"""),
+
+74: _("""
+ pb4 seq
+"""),
+
+75: _("""
+ pb1 seq
+"""),
+
+76: _("""
+ pb3 seq
+"""),
+
+77: _("""
+ le nombre de composante dans le champ de vent est incorrect. on doit avoir : dx, dy, dz
+"""),
+
+78: _("""
+ f(0)=0
+"""),
+
+
+
+
+
+
+
+
+80: _("""
+ sy >= su. impossible.
+"""),
+
+81: _("""
+ ep >= e. impossible.
+"""),
+
+82: _("""
+ incoherence dans les donnees materiau : mey > mpy impossible.
+"""),
+
+83: _("""
+ incoherence dans les donnees materiau : mez > mpz impossible.
+"""),
+
+84: _("""
+ comportement de fluage sous irradiation inconnu
+"""),
+
+85: _("""
+ definition multiple du comportement pour un element de poutre
+"""),
+
+86: _("""
+ porosite strictement nulle( cas non traite)
+"""),
+
+87: _("""
+ l'increment de temps vaut zero, verifier votre decoupage
+"""),
+
+88: _("""
+ fluence decroissante (flux<0)
+"""),
+
+89: _("""
+ le parametre a doit etre >=0
+"""),
+
+90: _("""
+ la loi lmarc_irran'est compatible qu'avec une modelisation poutre
+"""),
+
+91: _("""
+ stop, rigi_meca_tang non disponible
+"""),
+
+92: _("""
+ la maille doit etre de type tetra10,penta15,hexa20,quad8 ou tria6. or la maille est de type : %(k1)s .
+"""),
+
+93: _("""
+ une maille maitre est de longueur nulle
+"""),
+
+96: _("""
+ le sechage ne peut pas etre melange a un autre comportement
+"""),
+
+97: _("""
+ evol_ther_sech est un mot-cle obligatoire pour le sechage de type sech_granger et sech_nappe
+"""),
+
+98: _("""
+ le concept : %(k1)s n'est pas un champ de temperature
+"""),
+
+99: _("""
+ le concept evol_ther : %(k1)s ne contient aucun champ de temperature
+"""),
+}
--- /dev/null
+#@ MODIF algorith9 Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ le champ de temperature : temp_init(num_init) n'existe pas.
+"""),
+
+2: _("""
+ cham_no invalide
+"""),
+
+3: _("""
+ le mot cle "nume_init" est obligatoire dans ce cas.
+"""),
+
+4: _("""
+ valeur de theta illicite
+"""),
+
+5: _("""
+ la charge %(k1)s n'est pas thermique
+"""),
+
+6: _("""
+ la charge cine %(k1)s n"a pas de .defi
+"""),
+
+7: _("""
+ la charge %(k1)s n'est pas compatible avec fonc_mult
+"""),
+
+9: _("""
+ composante non trouvee dans la numerotation
+"""),
+
+10: _("""
+ nombre de vecteurs demande trop grand on prend tous les modes du concept mode_meca
+"""),
+
+12: _("""
+ borne inf incorrect
+"""),
+
+13: _("""
+ probleme avec courbe de traction
+"""),
+
+14: _("""
+ pente non trouvee
+"""),
+
+15: _("""
+ la norme du vecteur vect_orie est nulle
+"""),
+
+16: _("""
+ le pas est nul
+"""),
+
+17: _("""
+ le nombre de pas est negatif
+"""),
+
+18: _("""
+ les matrices assemblees generalisees doivent avoir un stockage plein (cf. nume_ddl_gene)
+"""),
+
+19: _("""
+ coeff_var_amor non nul et amortissement non present
+"""),
+
+
+
+
+
+24: _("""
+ charge de contact non traitee
+"""),
+
+25: _("""
+ votre chargement contient plus d'une charge repartie. le calcul n'est paspossible pour les modeles de poutre
+"""),
+
+26: _("""
+ le modele est obligatoire
+"""),
+
+27: _("""
+ impossible de combiner les mots cles charge et vect_asse en dehors des ondes planes
+"""),
+
+28: _("""
+ concept reentrant : "resultat" doit porter le meme nom que la sortie
+"""),
+
+29: _("""
+ concept reentrant : "resultat" est d'un type different
+"""),
+
+30: _("""
+ argument en double pour "nom_cham"
+"""),
+
+31: _("""
+ pour l'instant, on ne peut pas deriver sur base modale dans dyna_line_harm
+"""),
+
+34: _("""
+ les matrices ne possedent pas toutes la meme numerotation
+"""),
+
+35: _("""
+ un vect_asse n'est ni a valeurs reelles, ni a valeurs complexes.
+"""),
+
+36: _("""
+ erreur dans decoupe initiale des pas
+"""),
+
+37: _("""
+ attention, arret=non donc poursuite du calcul sans avoir eu convergence
+"""),
+
+39: _("""
+ base modale et matr_asse avec numerotations differentes
+"""),
+
+40: _("""
+ type de matrice inconnu: %(k1)s
+"""),
+
+41: _("""
+ base modale et vect_asse avec numerotations differentes
+"""),
+
+42: _("""
+ la base constituee ne forme pas une famille libre
+"""),
+
+43: _("""
+ le nombre de valeurs doit etre pair.
+"""),
+
+44: _("""
+ trop d'arguments pour "nom_cham"
+"""),
+
+45: _("""
+ pour calculer une acce_absolu, il faut "acce_mono_appui"
+"""),
+
+46: _("""
+ pour restituer sur un squelette, il faut "mode_meca"
+"""),
+
+47: _("""
+ mots-cles'sous_struc' et'squelette'interdits
+"""),
+
+48: _("""
+ mots-cle'mode_meca' doit etre present
+"""),
+
+49: _("""
+ l'instant de recuperation est en dehors du domaine de calcul.
+"""),
+
+50: _("""
+ pas de mailles fournies
+"""),
+
+51: _("""
+ aucune maille enrichie
+"""),
+
+55: _("""
+ mauvaise definition de l'interspectre.
+"""),
+
+56: _("""
+ le "nomb_pts" doit etre une puissance de 2.
+"""),
+
+57: _("""
+ si les mots-cles <nume_ordre> et <amor_reduit> sont utilises, il faut autant d arguments pour l un et l autre
+"""),
+
+58: _("""
+ le concept mode_meca d entree doit etre celui correspondant a la base modale initiale pour le calcul de couplage fluide-structure
+"""),
+
+59: _("""
+ numero de vitesse d ecoulement du fluide non valide
+"""),
+
+60: _("""
+ tous les modes non couples etant retenus, le nombre d arguments valide pour le mot-cle <amor_reduit> est la difference entre le nombre de modes de la base modale initiale et le nombre de modes pris en compte pour le couplage fluide-structure
+"""),
+
+61: _("""
+ les numeros d ordre fournis ne correspondent pas a des modes non perturbes
+"""),
+
+62: _("""
+ option symetrie : la dimension de point et axe_1 doit etre identique.
+"""),
+
+63: _("""
+ option symetrie : axe_2 est inutile en 2d, il est ignore.
+"""),
+
+64: _("""
+ option symetrie : la dimension de point et axe_2 doit etre identique.
+"""),
+
+65: _("""
+ methode: elem autorisee seulement pour les resultats evol_xxx.
+"""),
+
+66: _("""
+ methode: nuage_deg__* autorisee seulement pour les champs.
+"""),
+
+69: _("""
+ on ne sait pas traiter le champ de type: %(k1)s champ : %(k2)s
+"""),
+
+70: _("""
+ le nom du champ de la variable de commande pour decoupage obligatoire
+"""),
+
+71: _("""
+ le nom du cmp de la variable de commande pour decoupage obligatoire
+"""),
+
+72: _("""
+ critere pour decoupage obligatoire
+"""),
+
+73: _("""
+ erreur : itran = 0 ou 1
+"""),
+
+74: _("""
+ attention, mode suramorti
+"""),
+
+75: _("""
+ attention, mode instable
+"""),
+
+
+
+
+
+
+
+
+
+
+80: _("""
+ pour utiliser le comportement "hydr" il faut surcharger le code en "mode developpement" avec les routines "permea" et "satura".
+"""),
+
+81: _("""
+ le vecteur directeur est nul.
+"""),
+
+82: _("""
+ erreur dvp
+"""),
+
+83: _("""
+ nombre max iterations atteint
+"""),
+
+84: _("""
+ precision machine depassee
+"""),
+
+85: _("""
+ probleme pilo : 3 solutions ou plus
+"""),
+
+86: _("""
+ matrice mat non inversible
+"""),
+
+87: _("""
+ probleme pilo
+"""),
+
+88: _("""
+ ldc non dispo pour pilotage
+"""),
+
+89: _("""
+ le pilotage pred_elas necessite eta_pilo_min et eta_pilo_max pour la loi endo_isot_beton
+"""),
+
+90: _("""
+ le pilotage pred_elas necessite eta_pilo_min et eta_pilo_max pour la loi endo_orth_beton
+"""),
+
+91: _("""
+ nb noeuds mesure doit etre inf a nb noeuds modele
+"""),
+
+92: _("""
+ maille seg2 non trouvee
+"""),
+
+93: _("""
+ integration elastoplastique de loi beton_double_dp : pas de convergence lors de la projection au sommet des cones de traction et de compression --> utiliser le redecoupage automatique du pas de temps.
+"""),
+
+94: _("""
+ integration elastoplastique de loi beton_double_dp : pas de convergence lors de la resolution pour nseuil = %(k1)s --> utiliser le redecoupage automatique du pas de temps.
+"""),
+
+95: _("""
+ non convergence a la maille: %(k1)s
+"""),
+
+96: _("""
+ la saturation n'est pas une variable interne pour la loi de couplage %(k1)s
+"""),
+
+97: _("""
+ la pression de vapeur n est pas une variable interne pour la loi de couplage %(k1)s
+"""),
+
+
+99: _("""
+ la variable %(k1)s n existe pas dans la loi cjs en 2d
+"""),
+}
--- /dev/null
+#@ MODIF appelmpi Messages DATE 04/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ &feti.liste.sd.mpi existe deja !
+"""),
+
+2: _("""
+ &feti.liste.sd.mpib existe deja !
+"""),
+
+3: _("""
+ En parallèle, il faut au moins un sous-domaine par processeur !
+"""),
+
+4: _("""
+ Processeur %(i1)d : option FETAM %(i2)d non prevue en compile MPI !
+"""),
+
+5: _("""
+ Erreur MPI: %(k1)s !
+"""),
+}
--- /dev/null
+#@ MODIF arlequin Messages DATE 28/03/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.
+# ======================================================================
+def _(x) : return x
+
+cata_msg={
+
+
+1: _("""
+ Pour Arlequin, la dimension topologique des modelisations de GROUP_MA_1 et GROUP_MA_2 doivent etre les memes:
+ - C_PLAN (2D)
+ - ou D_PLAN (2D)
+ - ou AXIS (2D)
+ - ou 3D/DKT/DST/COQUE_3D/Q4G (3D)
+"""),
+
+2: _("""
+ Le groupe de maille <%(k1)s> n'existe pas dans le maillage
+"""),
+
+3: _("""
+ Il y a plusieurs modelisations dans le meme groupe de maille
+"""),
+
+4: _("""
+ Il y a plusieurs cinematiques (melange elements de structures/elements de milieu continu) dans le meme groupe de maille
+"""),
+
+5: _("""
+ Aucune maille du groupe n'est utilisable dans Arlequin, on rappelle ce qui est utilisable:
+ - elements de deformations planes (D_PLAN)
+ - elements de contraintes planes (C_PLAN)
+ - elements axisymetriques (AXIS)
+ - elements 3D
+ - elements de structure de type coques et plaques (DKT/DST/COQUE_3D/Q4G)
+"""),
+
+6: _("""
+ La normale au noeud <%(k1)s> de la maille <%(k2)s> est nulle.
+ Verifiez votre maillage (pas de mailles aplaties par exemple)
+"""),
+
+7: _("""
+ La normale moyenne sur la maille <%(k1)s> est nulle.
+ Verifiez votre maillage (orientations des mailles par exemple)
+"""),
+
+8: _("""
+ Il faut renseigner le mot-clef CARA_ELEM lorsqu'on utilise des elements coques
+"""),
+
+9: _("""
+ Les deux domaines ne se recouvrent pas. Verifiez vos groupes.
+ """),
+
+10: _("""
+ Le groupe de mailles de collage (GROUP_MA_COLL) doit etre un sous ensemble d'un des deux
+ sous domaines GROUP_MA_1 ou GROUP_MA_2
+ """),
+
+11: _("""
+ La maille <%(k1)s> est de type %(k2)s: elle ne peut etre mise en boite.
+ Ce type de maille n'est pas pris en compte.
+"""),
+
+12: _("""
+ Aucune maille de la zone de collage n'est appariee
+"""),
+
+13: _("""
+ Nombre de couples apparies sous-estime - Erreur avancee: contacter le support
+"""),
+
+14: _("""
+ La gestion des conditions limites redondantes a ete deconnectee dans Arlequin
+"""),
+
+23: _("""
+ Mauvaise intersection
+"""),
+
+24: _("""
+ Nombre de composantes connexes maximal prevu insuffisant
+"""),
+
+25: _("""
+ Polyedre non etoile au centre de gravite
+"""),
+
+}
--- /dev/null
+#@ MODIF assembla Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ le type : %(k1)s de la matrice est incorrect. on attend : "s"pour une resolution par methode iterative
+"""),
+
+2: _("""
+ matrice non symetrique pour l'instant proscrite avec feti
+"""),
+
+3: _("""
+ le parametre : %(k1)s est incorrect. on attend : "cumu" ou "zero"
+"""),
+
+4: _("""
+ on ne peut assembler que des matrices reelles ou complexes
+"""),
+
+5: _("""
+ modeles discordants
+"""),
+
+6: _("""
+ feti: maille positive avec ligrel de charge !
+"""),
+
+7: _("""
+ feti: maille negative avec ligrel de modele !
+"""),
+
+8: _("""
+ le motcle : %(k1)s est incorrect. on attend : "cumu" ou "zero"
+"""),
+
+9: _("""
+ on ne trouve pas le cmp "lagr" dans la grandeur
+"""),
+
+10: _("""
+ il est imprevu d avoir le cmp "lagr" au dela de 30
+"""),
+
+11: _("""
+ on ne peut assembler que des vecteurs reels ou complexes
+"""),
+
+12: _("""
+ le maillage %(k1)s contient des super-mailles pour l'instant, elles sont proscrites avec feti
+"""),
+
+13: _("""
+ ichin = 0
+"""),
+
+14: _("""
+ ichin < -2
+"""),
+
+15: _("""
+ s => ichin=/0
+"""),
+
+16: _("""
+ action:e/l/s
+"""),
+
+17: _("""
+ message vide
+"""),
+
+18: _("""
+ incoherence des matr_elem
+"""),
+
+19: _("""
+ matr_elem sans sss et sans liste_resu
+"""),
+
+20: _("""
+ - aucun ligrel dans les resuelem
+"""),
+
+21: _("""
+ modeles diff.
+"""),
+
+22: _("""
+ les valeurs de la matrice %(k1)s doivent etre reelles, on ne traite pas encore les matrices non-symetriques complexes.
+"""),
+
+23: _("""
+ la matrice %(k1)s a transformer en matrice non-symetrique doit etre symetrique.
+"""),
+
+24: _("""
+ le nombre maxi de composante de la grandeur est nul
+"""),
+
+25: _("""
+ le nombre d"entiers codes est nul
+"""),
+
+26: _("""
+ le noeud: %(k1)s composante: %(k2)s est bloque plusieurs fois.
+"""),
+
+27: _("""
+ l'entier decrivant la postion du premier lagrange ne peut etre egal qu'a +1 ou -1 .
+"""),
+
+28: _("""
+ le nombre de noeuds effectivement numerotes ne correspond pas au nombre de noeuds a numeroter
+"""),
+
+29: _("""
+ - aucun ligrel
+"""),
+
+30: _("""
+ plusieurs "phenomenes" stop
+"""),
+
+31: _("""
+ les ddls du nume_ddl ont bouge.
+"""),
+
+32: _("""
+ phenomene non prevu dans le moloc de numer2 pour dd
+"""),
+
+33: _("""
+ le .prno est construit sur plus que le maillage
+"""),
+
+34: _("""
+ le .prno est de dimension nulle
+"""),
+
+35: _("""
+ il n y a pas de modele dans la liste %(k1)s .nume.lili
+"""),
+
+36: _("""
+ noeud inexistant
+"""),
+
+37: _("""
+ methode : %(k1)s inconnue.
+"""),
+
+38: _("""
+ noeud incorrect
+"""),
+
+39: _("""
+ le phenome %(k1)s n'est pas admis pour la symetrisation des matrices.seuls sont admis les phenomenes "mecanique" et "thermique" .
+"""),
+
+40: _("""
+ erreur programmeur : certains type_element ne savent pas calculer les options syme_m?ns_r
+"""),
+
+41: _("""
+ 1--- le noeud : %(i1)d du resuel : %(k1)s du vect_elem : %(k2)s
+ n''a pas d''adresse dans : %(k3)s
+"""),
+
+42: _("""
+ 2--- le noeud : %(i1)d du resuel : %(k1)s du vect_elem : %(k2)s
+ a 1 adresse : %(i2)d
+ > nequa : %(i3)d
+"""),
+
+43: _("""
+ 3--- nddl : %(i1)d > nddl_max : %(i2)d
+"""),
+
+44: _("""
+ 4--- vect_elem : %(k1)s --- resu : %(k2)s --- nomli : %(k3)s
+ --- grel numero : %(i1)d
+ --- maille numero : %(i2)d
+ --- nnoe par nema : %(i3)d
+ --- nnoe par node : %(i4)d
+"""),
+
+45: _("""
+ 5--- le ligrel : %(k1)s ref. par le noeud supl. : %(i1)d
+ --- de la maille : %(i2)d
+ du resuelem : %(k2)s
+ du vect_elem : %(k3)s
+ --- n"est pas present dans la numerotation : %(k4)s
+"""),
+
+46: _("""
+ 6--- nddl : %(i1)d > nddl_max : %(i2)d
+"""),
+
+47: _("""
+ 7--- nddl : %(i1)d > nddl_max : %(i2)d
+"""),
+
+48: _("""
+ 8--- le noeud : %(i1)d du resuel : %(k1)s du vect_elem : %(k2)s
+ --- n''a pas d''adresse dans la numerotation : %(k3)s
+"""),
+
+49: _("""
+ 9--- le noeud : %(i1)d du resuel : %(k1)s du vect_elem : %(k2)s
+ --- a une adresse : %(i2)d
+ > nequa : %(i3)d
+"""),
+
+50: _("""
+ 11 nddl : %(i1)d > nddl_max : %(i2)d
+"""),
+
+
+
+
+
+
+52: _("""
+ 12 nddl : %(i1)d > nddl_max : %(i2)d
+"""),
+
+53: _("""
+ 13- nddl : %(i1)d > nddl_max : %(i2)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+63: _("""
+ erreur sur le premier lagrange d"une liaison_ddl
+ on a mis 2 fois le premier lagrange : %(i1)d
+ derrire le noeud : %(i2)d
+"""),
+
+64: _("""
+ erreur sur le 2 eme lagrange d"une liaison_ddl
+ on a mis 2 fois le 2eme lagrange : %(i1)d
+ derrire le noeud : %(i2)d
+"""),
+
+65: _("""
+ incoherence dans le denombrement des ddlsnbre de ddl a priori : %(i1)d
+ nbre de ddl a posteriori: %(i2)d
+"""),
+
+}
--- /dev/null
+#@ MODIF calculel Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ trop de parametres.
+"""),
+
+2: _("""
+ stop 1
+"""),
+
+3: _("""
+ la grandeur : %(k1)s n existe pas dans le catalogue des grandeurs.
+"""),
+
+4: _("""
+ incoherence des maillages : %(k1)s et %(k2)s
+"""),
+
+5: _("""
+ stop 1a
+"""),
+
+6: _("""
+ stop 1b
+"""),
+
+7: _("""
+ stop 1c
+"""),
+
+
+9: _("""
+ stop 4
+"""),
+
+10: _("""
+ stop 5
+"""),
+
+11: _("""
+ le mode_local: %(k1)s ne doit pas etre vecteur ou matrice.
+"""),
+
+12: _("""
+ le mode_local: %(k1)s ne doit pas etre "diff__".
+"""),
+
+13: _("""
+ stop
+"""),
+
+14: _("""
+ incompatibilite des type_champ ("elga"/"elno") pour l option : %(k1)s entre les 2 type_elem : %(k2)s et %(k3)s
+"""),
+
+
+
+
+
+
+16: _("""
+ type de maille indisponible
+"""),
+
+17: _("""
+ type de champ inconnu
+"""),
+
+18: _("""
+ la partie reelle et imaginaire du champ a assembler ne sont pas du meme type (l un est un cham_no et l autre un cham_elem
+"""),
+
+19: _("""
+ champ incompatible
+"""),
+
+20: _("""
+ le champ de grandeur %(k1)s ne respecte pas le format xxxx_r
+"""),
+
+21: _("""
+ les champs reel et imaginaire a assembler ne contiennent pas la meme grandeur
+"""),
+
+22: _("""
+ probleme dans le catalogue des grandeurs simples, la grandeur %(k1)s ne possede pas le meme nombre de champ que son homologue complexe %(k2)s
+"""),
+
+23: _("""
+ probleme dans le catalogue des grandeurs simples, la grandeur %(k1)s ne possede pas les memes champs que son homologue complexe %(k2)s
+"""),
+
+24: _("""
+ les champs a assembler n ont pas la meme longueur
+"""),
+
+25: _("""
+ type de champ incorrect
+"""),
+
+26: _("""
+ longueurs des cham_elem incompatibles
+"""),
+
+27: _("""
+ cham_elem a combiner incompatible
+"""),
+
+28: _("""
+ %(k1)s indisponible
+"""),
+
+29: _("""
+ option inconnue au catalogue : %(k1)s
+"""),
+
+30: _("""
+ -> Le TYPE_ELEMENT %(k1)s ne sait pas encore calculer l'OPTION: %(k2)s.
+ On ne calcule donc rien sur les éléments de ce type.
+
+ -> Risque & Conseil :
+ Vérifiez que l'option incomplètement calculée est bien une option de post-traitement
+ et que le déficit de calcul n'entraine pas de résultats faux.
+
+"""),
+
+32: _("""
+ dvp : Valeur interdite
+"""),
+
+34: _("""
+ le calcul de l'option : %(k1)s n'est possible pour aucun des types d'elements du ligrel.
+"""),
+
+35: _("""
+ erreur programmeur : trop de champs "in"
+"""),
+
+36: _("""
+ On ne sait pas faire.
+"""),
+
+37: _("""
+ Erreur dans la lecture des CHAR_CINE ou dans les CHAR_CINE
+"""),
+
+38: _("""
+ la carte concerne aussi des mailles tardives qui sont oubliees.
+"""),
+
+39: _("""
+ type scalaire inconnu
+"""),
+
+40: _("""
+ Erreur Programmeur : type_scalaire: %(k1)s non autorisé (I/R/C),
+"""),
+
+41: _("""
+ Erreur Programmeur : type_scalaire: %(k1)s non autorisé (I/R/C/K8/K16/K24),
+"""),
+
+42: _("""
+ Erreur Programmeur:
+ Incoherence fortran/catalogue type_element: %(k1)s option: %(k2)s
+ La routine texxxx.f correspondant au calcul élémentaire ci-dessus est bugguée :
+ Elle écrit en dehors de la zone allouée au paramètre (OUT) %(k3)s.
+
+"""),
+
+43: _("""
+ Arret du aux erreurs precedentes.
+"""),
+
+44: _("""
+ Code interdit: %(k1)s
+"""),
+
+45: _("""
+ Erreur Programmeur :
+ Transformation non programmée : émettre une fiche d'évolution
+"""),
+
+46: _("""
+ a faire ... : émettre une fiche d'évolution
+"""),
+
+47: _("""
+ le cham_elem: %(k1)s n'existe pas.
+"""),
+
+48: _("""
+ le cham_elem: %(k1)s n'a pas le meme nombre de cmps dynamiques sur tous ses elements.
+"""),
+
+49: _("""
+ le cham_elem : %(k1)s a des sous-points.
+"""),
+
+50: _("""
+ type de verif. inconnu.
+"""),
+
+51: _("""
+ argument prol0 invalide.
+"""),
+
+52: _("""
+ la cmp: %(k1)s n'appartient pas a la grandeur: %(k2)s
+"""),
+
+53: _("""
+ option : %(k1)s inexistante dans les catalogues.
+"""),
+
+54: _("""
+ le parametre: %(k1)s de l'option: %(k2)s n'est pas connu des type_elem du ligrel: %(k3)s
+"""),
+
+55: _("""
+ il manque la cmp: %(k1)s
+"""),
+
+56: _("""
+ le ligrel contient des mailles tardives,
+"""),
+
+57: _("""
+ nombres de points differents pour la maille: %(k1)s cham_elem de: %(k2)s
+"""),
+
+58: _("""
+ il manque la cmp: %(k1)s sur la maille: %(k2)s
+"""),
+
+59: _("""
+ champ 1 inexistant
+"""),
+
+60: _("""
+ Matrice noeud->gauss nécessaire
+"""),
+
+61: _("""
+ Erreur Programmeur :
+ Argument cesmod obligatoire
+"""),
+
+62: _("""
+ champ inexistant
+"""),
+
+63: _("""
+ on ne traite que des champs "ELNO"
+"""),
+
+64: _("""
+ le nombre de sous-points ne peut etre >1
+"""),
+
+65: _("""
+ des reels ou des complexes svp !
+"""),
+
+66: _("""
+ TYPCES invalide
+"""),
+
+67: _("""
+ grandeur: %(k1)s inconnue au catalogue.
+"""),
+
+68: _("""
+ numero de maille invalide: %(k1)s (<1 ou >nbma)
+"""),
+
+69: _("""
+ numero de point invalide: %(k1)s (<1 ou >nbpt) pour la maille: %(k2)s
+"""),
+
+70: _("""
+ numero de sous_point invalide: %(k1)s (<1 ou >nbspt) pour la maille: %(k2)s et pour le point: %(k3)s
+"""),
+
+71: _("""
+ numero de cmp invalide: %(k1)s (<1 ou >nbcmp) pour la maille: %(k2)s pour le point: %(k3)s et pour le sous_point: %(k4)s
+"""),
+
+72: _("""
+ nbchs >0 svp
+"""),
+
+73: _("""
+ maillages differents.
+"""),
+
+74: _("""
+ grandeurs differentes.
+"""),
+
+75: _("""
+ types differents (CART/ELNO/ELGA).
+"""),
+
+76: _("""
+ nombre de points differents.
+"""),
+
+77: _("""
+ nombre de sous-points differents.
+"""),
+
+78: _("""
+ cumul interdit sur ce type non-numerique
+"""),
+
+79: _("""
+ i/r/k8/k16 svp
+"""),
+
+80: _("""
+ trop de cmps (997)
+"""),
+
+81: _("""
+ maillages differents
+"""),
+
+82: _("""
+ nbcmp doit etre >=0
+"""),
+
+83: _("""
+ nbma doit etre >=0
+"""),
+
+84: _("""
+ stop nomgd
+"""),
+
+85: _("""
+ stop nbpt
+"""),
+
+86: _("""
+ stop nbsp
+"""),
+
+87: _("""
+ stop iad2
+"""),
+
+88: _("""
+ caractere illicite.
+"""),
+
+89: _("""
+ on ne sait pas encore traiter les resuelem
+"""),
+
+90: _("""
+ type de champ interdit: %(k1)s
+"""),
+
+91: _("""
+ incoherence des familles de points de gauss pour la maille %(k1)s ( %(k2)s / %(k3)s )
+"""),
+
+92: _("""
+ type scalaire du cham_no : %(k1)s non reel.
+"""),
+
+93: _("""
+ type scalaire du nume_ddl : %(k1)s non reel.
+"""),
+
+94: _("""
+ si ncorr=0, les grandeurs doivent etre identiques : %(k1)s , %(k2)s
+"""),
+
+95: _("""
+ ncorr doit etre pair.
+"""),
+
+96: _("""
+ gauss -> noeud a faire ...
+"""),
+
+97: _("""
+ il faut modele
+"""),
+
+98: _("""
+ non programme: %(k1)s
+"""),
+
+99: _("""
+ melange de cham_elem_s et cham_no_s
+"""),
+}
--- /dev/null
+#@ MODIF calculel2 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+2: _("""
+ le champ_s: %(k1)s est a la fois cham_elem_s et cham_no_s.
+"""),
+
+3: _("""
+ le champ_s: %(k1)s n'existe pas.
+"""),
+
+4: _("""
+ types scalaires(i/r/c/...) differents pour : %(k1)s et %(k2)s
+"""),
+
+5: _("""
+ arret suite a l'alarme precedente.
+"""),
+
+6: _("""
+ on ne sait pas renommer la cmp: %(k1)s
+"""),
+
+7: _("""
+ trop d'antecedents. verifiez si le maillage de l'interface ne contient pas de noeuds coincidents ou diminuez dist_refe.
+"""),
+
+8: _("""
+ %(k1)s valeurs de chamno de deplacement n'ont pas ete recopiees sur %(k2)s noeuds a affecter ce qui peut entrainer des erreurs de calcul sur la masse ajoutee des sous structures deduites par rotation et translation definies dans le modele generalise. augmentez dist_refe ou assurez vous de l' invariance du maillage de structure par la translation et la rotation definies dans le modele generalise.
+"""),
+
+9: _("""
+ plus de 50 pour cent des valeurs de chamno de deplacement n'ont pas ete recopiees ce qui peut entrainer des erreurs graves de calcul sur la masse ajoutee des sous structures deduites par rotation et translation definies dans le modele generalise. augmentez dist_refe!!!.
+"""),
+
+10: _("""
+ trop de noeuds affectes
+"""),
+
+11: _("""
+ seulement reel svp
+"""),
+
+12: _("""
+ le cham_no est de longueur nulle.
+"""),
+
+13: _("""
+ il manque la cmp: %(k1)s sur le noeud: %(k2)s
+"""),
+
+14: _("""
+ ncmp doit etre >0
+"""),
+
+
+
+
+
+
+
+
+16: _("""
+ reel ou k8 svp
+"""),
+
+17: _("""
+ nbno doit etre >=0
+"""),
+
+18: _("""
+ arret suite a l'erreur precedente.
+"""),
+
+
+
+
+
+
+
+
+
+
+
+21: _("""
+ grandeur : %(k1)s inexistante au catalogue
+"""),
+
+22: _("""
+ composante : %(k1)s inexistante au catalogue pour la grandeur : %(k2)s
+"""),
+
+23: _("""
+ la grandeur : %(k1)s n est pas de type reel.
+"""),
+
+24: _("""
+ on traite un superelement et le noeud courant n'est ni un noeud lagrange, ni un noeud physqiue du maillage.
+"""),
+
+25: _("""
+ le ligrel : %(k1)s ne contient pas d elements finis
+"""),
+
+26: _("""
+ l'option %(k1)s n'existe pas.
+"""),
+
+27: _("""
+ le maillage associe au champ: %(k1)s est different de celui associe au ligrel: %(k2)s
+"""),
+
+28: _("""
+ erreur programmeur : appel a calcul, le champ: %(k1)s est un champ "in" et un champ "out".
+"""),
+
+29: _("""
+ la grandeur associee au champ %(k1)s : %(k2)s n est pas celle associee au parametre %(k3)s : %(k4)s (option: %(k5)s
+"""),
+
+30: _("""
+ on n'arrive pas a etendre la carte: %(k1)s
+"""),
+
+31: _("""
+ maille %(k1)s indisponible
+"""),
+
+32: _("""
+ probleme creation champ
+"""),
+
+33: _("""
+ pour le modele %(k1)s on ne peut pas visualiser les champs ensemble %(k2)s ... car les familles de pg sont differentes
+"""),
+
+
+
+
+
+
+
+
+35: _("""
+ aucun element du modele n'est visualisable avec ecla_pg.
+"""),
+
+36: _("""
+ on ne trouve aucun point de gauss.
+"""),
+
+37: _("""
+ le type de resu_init est different de celui du resultat.
+"""),
+
+38: _("""
+ la liste de numeros d ordre est vide.
+"""),
+
+39: _("""
+ les seuls champs autorises pour ecla_pg sont les champs reels.
+"""),
+
+40: _("""
+ le champ: %(k1)s a des elements ayant des sous-points. ces elements ne seront pas traites.
+"""),
+
+41: _("""
+ les seuls champs autorises sont elga.
+"""),
+
+42: _("""
+ le type_elem: %(k1)s n'a pas le nombre de points de gauss declare dans la routine eclau1. nom_cham= %(k2)s
+"""),
+
+43: _("""
+ nombre de noeuds > 27
+"""),
+
+
+
+
+
+
+45: _("""
+ famille de pg "liste" interdite: %(k1)s
+"""),
+
+46: _("""
+ mode ligne %(k1)s /= mode colonne %(k2)s
+"""),
+
+47: _("""
+ le mode %(k1)s de code %(k2)s reference le mode %(k3)s dont le code : %(k4)s > 3
+"""),
+
+48: _("""
+ pour le mode %(k1)s nombre de points %(k2)s < argument k : %(k3)s
+"""),
+
+49: _("""
+ carte inexistante.
+"""),
+
+50: _("""
+ 3
+"""),
+
+51: _("""
+ cham_elem etendu a faire ...
+"""),
+
+52: _("""
+ probleme noeud tardif pour un champ a representation constante
+"""),
+
+53: _("""
+ inutile de comprimer 1 telle carte
+"""),
+
+54: _("""
+ on devrait avoir icode=3 pour des mailles tardives.
+"""),
+
+55: _("""
+ erreur dans l'extraction d'un resuelem pour le grel: %(k1)s le champ n'existe pas
+"""),
+
+56: _("""
+ erreur lors d'une extraction: le champ associe au parametre : %(k1)s n'est pas dans la liste des champs parametres.
+"""),
+
+57: _("""
+ sa21
+"""),
+
+58: _("""
+ sa22
+"""),
+
+59: _("""
+ sa23
+"""),
+
+
+
+
+
+
+61: _("""
+ Erreur développeur :
+ L'option que l'on calcule ne connait pas le paramètre : %(k1)s
+ Erreur probable dans un catalogue(typelem)
+"""),
+
+63: _("""
+ -> La maille %(k1)s porte un élément fini de bord, mais elle ne borde
+ aucun élément ayant une "rigidité".
+
+ -> Risque & Conseil :
+ Cela peut entrainer des problèmes de "pivot nul" lors de la résolution.
+ Si la résolution des systèmes linéaires ne pose pas de problèmes, vous
+ pouvez ignorer ce message.
+ Sinon, vérifier la définition du modèle (AFFE_MODELE) en évitant l'utilisation
+ de l'opérande TOUT='OUI'.
+"""),
+
+64: _("""
+ -> Le modèle %(k1)s n'a pas d'éléments calculant de la rigidité.
+
+ -> Risque & Conseil :
+ Ce modèle ne poura donc pas (en général) etre utilisé pour faire des calculs.
+ Vérifier la définition du modèle (AFFE_MODELE) et assurez-vous que les
+ types de mailles du maillage (SEG2, TRIA3, QUAD4, ...) sont compatibles avec votre
+ modélisation.
+ Exemple d'erreur : affecter une modélisation "3D" sur un maillage formé de facettes.
+
+"""),
+
+65: _("""
+ erreur programmeur 3
+"""),
+
+66: _("""
+ type_scalaire inconnu: %(k1)s
+"""),
+
+67: _("""
+ non programme.
+"""),
+
+68: _("""
+ maille partiellement affectee.
+"""),
+
+69: _("""
+ le parametre: %(k1)s n'est pas un parametre de l'option: %(k2)s
+"""),
+
+70: _("""
+ le parametre: %(k1)s n'est pas un parametre de l'option: %(k2)s pour le type_element: %(k3)s
+"""),
+
+71: _("""
+ erreur :on ne trouve pas dans les arguments de la routine calcul de champ a associer au parametre: %(k1)s (option: %(k2)s type_element: %(k3)s )
+"""),
+
+72: _("""
+ impossible...
+"""),
+
+73: _("""
+ erreur :on n'a pas pu extraire toutes les cmps voulues du champ associe au parametre: %(k1)s (option: %(k2)s type_element: %(k3)s )
+"""),
+
+74: _("""
+ objet: %(k1)s introuvable.
+"""),
+
+75: _("""
+ long=8,16 ou 24
+"""),
+
+76: _("""
+ erreur pgmeur: lk3 pas assez grand.
+"""),
+
+
+
+
+
+
+
+
+
+
+
+79: _("""
+ ce chargement n est pas prevu en lagrange
+"""),
+
+80: _("""
+ le calcul lagrangien avec les temperatures n'est pas encore disponible
+"""),
+
+81: _("""
+ pas de chgeom
+"""),
+
+82: _("""
+ il faut un modele.
+"""),
+
+83: _("""
+ il n'y a pas de rigidite sur le modele.
+"""),
+
+84: _("""
+ il n'y a pas de masse sur le modele.
+"""),
+
+85: _("""
+ g_bili : champ initial impossible
+"""),
+
+86: _("""
+ compor svp!
+"""),
+
+87: _("""
+ impossible lire %(k1)s
+"""),
+
+88: _("""
+ option %(k1)s non disponible sur les elements du modele- pas de champ cree
+"""),
+
+
+
+
+
+
+92: _("""
+ votre chargement contient plus d'une charge repartie. le calcul n'est pas possible pour les modeles de poutre.
+"""),
+
+93: _("""
+ -> Vous avez renseigné un des mots-clés fonc_mult_*, coef_mult_*,
+ phas_deg, puis_puls, or votre charge ne contient pas d'effort réparti
+ sur des poutres. Ces mots-clés seront donc ignorés.
+ -> Risque & Conseil :
+
+"""),
+
+94: _("""
+ pour un modele comportant des elements de plaque ou de coque, il faut le "cara_elem"
+"""),
+
+
+
+
+
+
+98: _("""
+ erreur: la charge doit etre une charge mecanique !
+"""),
+
+99: _("""
+ option %(k1)s non licite pour un calcul non lineaire.
+"""),
+}
--- /dev/null
+#@ MODIF calculel3 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ manque les accelerations
+"""),
+
+2: _("""
+ pour une sd resultat de type dyna_trans, seuls les mots_cles fonc_mult et coef_mult sont autorises
+"""),
+
+3: _("""
+ pour un sd resultat de type evol_elas,seul le mot-cle fonc_mult est autorise
+"""),
+
+4: _("""
+ l'utilisation d mot-cle fonc_mult n'est licite que pour les sd resultats: evol_elas, dyna_trans, dyna_harmo
+"""),
+
+5: _("""
+ pour calculer %(k1)s il faut sief_elno_elga ou efge_elno_depl
+"""),
+
+6: _("""
+ option %(k1)s non traitee pour un resultat de type %(k2)s
+"""),
+
+7: _("""
+ calcul de %(k1)s impossible.
+"""),
+
+8: _("""
+ attention : les champs sief_elga_depl, sief_elga, sigm_elno_coqu etsigm_elno_depl sont absents : on ne peut pas calculer l'option %(k1)s avec la sd de type %(k2)s
+"""),
+
+9: _("""
+ attention : le champ sigm_elno_depl est absent : on ne peut pas calculer l'option %(k1)s avec la sd de type %(k2)s
+"""),
+
+10: _("""
+ attention : le champ sigm_elno_coqu est absent : on ne peut pas calculer l'option %(k1)s avec la sd de type %(k2)s
+"""),
+
+11: _("""
+ le resultat %(k1)s doit comporter un champ de deplacement au numero d'ordre %(k2)s .
+"""),
+
+12: _("""
+ le mot cle prec_err est obligatoire avec l'option sing_elem
+"""),
+
+13: _("""
+ le mot cle prec_err doit etre strictement superieur a zero et inferieur ou egal a 1
+"""),
+
+14: _("""
+ pas d indicateur d erreur- on ne calcule pas l'option sing_elem
+"""),
+
+15: _("""
+ par defaut on utilise erre_elem_sigm
+"""),
+
+16: _("""
+ par defaut on utilise erz2_elem_sigm
+"""),
+
+17: _("""
+ le resultat %(k1)s doit comporter un champ de contraintes au numero d'ordre %(k2)s .
+"""),
+
+18: _("""
+ pas de champ de contraintes pour calculer %(k1)s
+"""),
+
+19: _("""
+ probleme a l'appel de alchml pour %(k1)s
+"""),
+
+20: _("""
+ pas de champ endommagement pour calculer %(k1)s
+"""),
+
+21: _("""
+ le calcul avec l'option endo_elno_elga necessite au prealable un calcul avec l'option endo_elga
+"""),
+
+22: _("""
+ option inexistante: %(k1)s
+"""),
+
+23: _("""
+ option : %(k1)s
+"""),
+
+25: _("""
+ calcul non disponible
+"""),
+
+27: _("""
+ type : %(k1)s incompatible avec l'option : %(k2)s
+"""),
+
+28: _("""
+ type de champ inconnue
+"""),
+
+29: _("""
+ erreur jacot 1
+"""),
+
+30: _("""
+ il faut un modele ou des charges.
+"""),
+
+31: _("""
+ la masse du macr_elem : %(k1)s n'a pas encore ete calculee.
+"""),
+
+32: _("""
+ il manque des masses.
+"""),
+
+33: _("""
+ la rigidite du macr_elem : %(k1)s n'a pas encore ete calculee.
+"""),
+
+34: _("""
+ il manque des rigidites.
+"""),
+
+35: _("""
+ le modele doit contenir des elements finis ou des sous-structures.
+"""),
+
+
+
+
+
+
+
+
+
+
+
+38: _("""
+ on ne traite pas le type_scalaire: %(k1)s
+"""),
+
+39: _("""
+ le modele contient des elements de structure. il faut probablement utiliser le mot-cle cara_elem.
+"""),
+
+40: _("""
+ -> Le modèle a probablement besoin d'un champ de matériau (mot-clé CHAM_MATER).
+
+ -> Risque & Conseil :
+ Ce message peut aider à comprendre un éventuel problème ultérieur lors de calculs élémentaires
+ nécessitant des caractéristiques matérielles.
+ Vérifier si votre modélisation nécessite un CHAM_MATER.
+"""),
+
+41: _("""
+ les charges ne s'appuient pas toutes sur le meme modele.
+"""),
+
+42: _("""
+ les charges ne s'apuient pas sur le modele donne en argument.
+"""),
+
+43: _("""
+ les charges sont de type different.
+"""),
+
+44: _("""
+ les charges ne s'appuient pas toutes sur le meme modele
+"""),
+
+45: _("""
+ donnees incorrectes.
+"""),
+
+46: _("""
+ calc_k_g : champ initial impossible
+"""),
+
+47: _("""
+ le fond de fissure doit contenir un noeud et un seul
+"""),
+
+48: _("""
+ il faut definir la normale au fond de fissure
+"""),
+
+49: _("""
+ on ne trouve pas le .nomo pour: %(k1)s
+"""),
+
+50: _("""
+ il faut un modele
+"""),
+
+51: _("""
+ il manque le modele
+"""),
+
+52: _("""
+ le champ doit etre un cham_elem.
+"""),
+
+53: _("""
+ ne traite qu'un cham_elem reel
+"""),
+
+54: _("""
+ longueurs des modes locaux imcompatibles entre eux.
+"""),
+
+55: _("""
+ la longueur:long est trop petite.
+"""),
+
+56: _("""
+ il n'y a pas autant de composantes
+"""),
+
+57: _("""
+ on ne sait pas moyenner cette composante negative
+"""),
+
+58: _("""
+ champs sur modeles differents
+"""),
+
+59: _("""
+ %(k1)s doit etre un cham_elem.
+"""),
+
+60: _("""
+ longueurs des modes locaux champ1 imcompatibles entre eux.
+"""),
+
+61: _("""
+ longueurs des modes locaux champ2 imcompatibles entre eux.
+"""),
+
+62: _("""
+ composante non definie
+"""),
+
+63: _("""
+ champ de geometrie non trouve
+"""),
+
+64: _("""
+ l'instant du calcul est pris arbitrairement a 0.0
+"""),
+
+65: _("""
+ on n'accepte un instant arbitraire que si le concept deformations anelastiques n'a qu'1 champ.
+"""),
+
+66: _("""
+ le concept evol_noli : %(k1)s ne contient aucun champ de deformations anelastiques.
+"""),
+
+67: _("""
+ pour calculer l'option %(k1)s les parametres suivants sont obligatoires: "pgeomer" et "pcontrr".
+"""),
+
+
+
+
+
+
+
+
+69: _("""
+ il n y a ni elements ni sous-struc
+"""),
+
+
+
+
+
+
+71: _("""
+ il faut 1 chargement de rotation et un seul.
+"""),
+
+72: _("""
+ il ne faut pas definir plus d"un champ de vitesse
+"""),
+
+73: _("""
+ le champ: %(k1)s n'est ni un cham_elem ni un resuelem
+"""),
+
+74: _("""
+ type scalaire interdit : %(k1)s
+"""),
+
+75: _("""
+ on n'accepte un instant arbitraire que si le concept temperature n'a qu'1 champ.
+"""),
+
+76: _("""
+ le concept evol_ther : %(k1)s ne contient aucun champ de temperature.
+"""),
+
+77: _("""
+ le champ de temperature utilise est independant du temps.
+"""),
+
+78: _("""
+ temperature de reference a probleme.
+"""),
+
+79: _("""
+ la matrice a est singuliere
+"""),
+
+81: _("""
+ cette fonction ne marche que pour des modes locaux de type chno, vect, ou mat
+"""),
+
+82: _("""
+ le mode local est de type matrice non_carree
+"""),
+
+83: _("""
+ 4
+"""),
+
+84: _("""
+ il n y a pas de parametre %(k1)s associe a la grandeur: %(k2)s dans l option: %(k3)s
+"""),
+
+85: _("""
+ il y a plusieurs parametres %(k1)s associes a la grandeur: %(k2)s dans l option: %(k3)s
+"""),
+
+86: _("""
+ %(k1)s non prevu
+"""),
+
+87: _("""
+ elrefe inconnu %(k1)s
+"""),
+
+88: _("""
+ les charges sont incoherentes avec le modele.
+"""),
+
+89: _("""
+ erreur: les charges ne s appuient pas toutes sur le meme modele.
+"""),
+
+90: _("""
+ le champ de theta est inexistant dans la structure de donnees %(k1)s de type theta_geom .
+"""),
+
+91: _("""
+ erreur: une des charges n'est pas mecanique
+"""),
+
+92: _("""
+ erreur: une des charges n'est pas thermique
+"""),
+
+93: _("""
+ erreur: une des charges n'est pas acoustique
+"""),
+
+94: _("""
+ erreur: le champ doit etre un cham_elem aux points de gauss
+"""),
+
+95: _("""
+ avec un cham_elem calcule sur une liste de maille, il faut utiliser le mot cle "modele:"
+"""),
+
+96: _("""
+ pour prendre en compte les termes d'inertie il est preferable d'utiliser la commande "calc_elem". le mot cle "acce" n'est pas traite et les resultats risquent d'etre faux.
+"""),
+
+97: _("""
+ le champ de nom symbolique theta existe deja dans la s.d. resultat %(k1)s
+"""),
+
+98: _("""
+ le champ de nom symbolique grad_noeu_theta existe deja dans la s.d. resultat %(k1)s
+"""),
+
+99: _("""
+ il faut donner 3 composantes de la direction
+"""),
+}
--- /dev/null
+#@ MODIF calculel4 Messages DATE 23/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ option non operationnelle: seule l'option couronne est a utiliserdans le cas ou on emploie le mot cle theta_3d .
+"""),
+
+2: _("""
+ il faut donner 3 composantes de la direction,la 3-eme nulle
+"""),
+
+3: _("""
+ il faut donner la direction de propagation en 2d la direction par defaut n'existe plus
+"""),
+
+4: _("""
+ option non operationnelle: seule l'option couronne est a utiliserdans le cas ou on emploie le mot cle theta_2d .
+"""),
+
+5: _("""
+ option inexistante: seule l'option bande est a utiliser dans le cas ou on emploie le mot cle theta_bande .
+"""),
+
+6: _("""
+ la normale n'est pas orthogonale a la tangente a l'origine
+"""),
+
+7: _("""
+ la normale n'est pas orthogonale a la tangente a l'extremite
+"""),
+
+8: _("""
+ le resultat %(k1)s n'existe pas
+"""),
+
+9: _("""
+ creation de la table %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13: _("""
+ probleme a la recuperation d'un champ
+"""),
+
+
+
+
+
+
+
+
+
+
+
+16: _("""
+ dans le cas d'une sd resultat de type dyna_trans, le mot-cle excit est obligatoire.
+"""),
+
+17: _("""
+ pour un resultat de type mode_meca l option de calcul doit etre k_g_moda.
+"""),
+
+
+
+
+
+
+19: _("""
+ le mot cle 'fissure' est obligatoire avec l'option %(k1)s
+"""),
+
+20: _("""
+ le mot cle 'fond_fiss' est obligatoire avec l'option %(k1)s
+"""),
+
+21: _("""
+ mot cle fond_fiss obligatoire pour l option %(k1)s
+"""),
+
+22: _("""
+ champ theta calcule automatiquement
+"""),
+
+23: _("""
+ pour l option %(k1)s (3d local) utiliser le mot cle theta_lagr
+"""),
+
+24: _("""
+ il faut donner 3 composantes de la direction %(k1)s
+"""),
+
+25: _("""
+ mot cle propagation utilise seulement pour le calcul de g avec propagation lagrangienne
+"""),
+
+26: _("""
+ cette combinaison de lissage n'est pas programmee pour l'option : %(k1)s .
+"""),
+
+27: _("""
+ le degre des polynomes de legendre doit etre inferieur ou egal au nombre de noeuds du fond de fissure avec la methode theta-lagrange
+"""),
+
+28: _("""
+ le lissage de g doit etre de type legendre si le lissage de theta est de type legendre
+"""),
+
+29: _("""
+ l'option %(k1)s n'est pas permise avec le lissage 'lagrange_regu'
+"""),
+
+30: _("""
+ si la methode 'lagrange_regu' est utilisee pour le lissage, alors le lissage de g et de theta doivent etre de type 'lagrange_regu'.
+"""),
+
+31: _("""
+ champ theta obligatoire avec %(k1)s . utiliser le mot cle theta_lagr.
+"""),
+
+32: _("""
+ fond obligatoire avec option calc_k_g
+"""),
+
+36: _("""
+ l usage des polynomes de legendre dans le cas d un fond de fissure clos est interdit.
+"""),
+
+37: _("""
+ acces impossible au deplacement
+"""),
+
+38: _("""
+ mot-clef <bornes> obligatoire avec l option %(k1)s !
+"""),
+
+39: _("""
+ acces impossible au mode propre
+"""),
+
+40: _("""
+ option non dispo actuellement
+"""),
+
+41: _("""
+ erreur_01
+"""),
+
+42: _("""
+ erreur_02
+"""),
+
+43: _("""
+ le nom_para n'existe pas
+"""),
+
+44: _("""
+ 0 ligne trouvee pour le nom_para
+"""),
+
+45: _("""
+ plusieurs lignes trouvees
+"""),
+
+46: _("""
+ code retour de "tbliva" inconnu
+"""),
+
+47: _("""
+ type_resu inconnu: %(k1)s
+"""),
+
+48: _("""
+ erreur calcul alpha0 :champ depl elastique non trouve
+"""),
+
+49: _("""
+ erreur : le champ depl elastique n'existe pas
+"""),
+
+50: _("""
+ erreur: le champ sief_elga_depl n'existe pas
+"""),
+
+51: _("""
+ methode zac : accommodation et chargement non radial --> methode non appliquable
+"""),
+
+
+
+
+
+
+53: _("""
+ longueurs des modes locaux incompatibles entre eux.
+"""),
+
+54: _("""
+ aucuns noeuds sur lesquels projeter.
+"""),
+
+55: _("""
+ pas de mailles a projeter.
+"""),
+
+56: _("""
+ %(k1)s pas trouve.
+"""),
+
+57: _("""
+ il n'y a pas de mailles a projeter.
+"""),
+
+58: _("""
+ les maillages a projeter sont ponctuels.
+"""),
+
+59: _("""
+ maillages 1 differents.
+"""),
+
+60: _("""
+ maillages 2 differents.
+"""),
+
+61: _("""
+ probleme dans l'examen de %(k1)s
+"""),
+
+62: _("""
+ aucun numero d'ordre dans %(k1)s
+"""),
+
+63: _("""
+ on ne sait pas encore projeter les champs %(k1)s
+"""),
+
+64: _("""
+ aucun champ projete.
+"""),
+
+65: _("""
+ maillages non identiques : %(k1)s et %(k2)s
+"""),
+
+66: _("""
+ pas de chmate
+"""),
+
+67: _("""
+ erreur dans etanca pour le probleme primal
+"""),
+
+68: _("""
+ erreur dans etenca pour le probleme dual
+"""),
+
+69: _("""
+ On ne trouve pas la variable de commande : %(k1)s pour la maille: %(k2)s
+"""),
+
+
+
+
+
+73: _("""
+ ! ligrel incompatible avec modele !
+"""),
+
+
+
+
+
+
+
+
+75: _("""
+ ! pb acces simultane carth/t !
+"""),
+
+76: _("""
+ ! pb etenca cartf !
+"""),
+
+77: _("""
+ ! pb etenca carth !
+"""),
+
+78: _("""
+ ! pb etenca cartt !
+"""),
+
+79: _("""
+ La grandeur : %(k1)s n'existe pas dans le catalogue des grandeurs.
+"""),
+
+80: _("""
+ le nom de la grandeur %(k1)s ne respecte pas le format xxxx_c
+"""),
+
+81: _("""
+ probleme dans le catalogue des grandeurs simples, la grandeur complexe %(k1)s ne possede pas le
+ meme nombre de composantes que son homologue réelle %(k2)s
+"""),
+
+82: _("""
+ probleme dans le catalogue des grandeurs simples, la grandeur %(k1)s ne possede pas les memes champs que son homologue reelle %(k2)s
+"""),
+
+83: _("""
+ erreur: le calcul des contraintes ne fonctionne que pour le phenomene mecanique
+"""),
+
+84: _("""
+ erreur numeros des noeuds bords
+"""),
+
+85: _("""
+ erreur: les elements supportes sont tria3 ou tria6
+"""),
+
+86: _("""
+ erreur: les elements supportes sont quad4 ou quad8 ou quad9
+"""),
+
+87: _("""
+ maillage mixte tria-quad non supporte pour l estimateur zz2
+"""),
+
+88: _("""
+ erreur: les mailles supportees sont tria ou quad
+"""),
+
+89: _("""
+ erreur: un element du maillage possede tous ses sommets sur une frontiere. il faut au moins un sommet interne.
+Pour pouvoir utiliser ZZ2 il faut remailler le coin de telle facon que tous les trg aient au moins un sommet interieur.
+"""),
+
+90: _("""
+ erreur programmeur
+"""),
+
+91: _("""
+ on ne trouve pas de routine te0npq npq doit etre compris entre 1 et 600 ici : npq = %(k1)s
+"""),
+
+92: _("""
+ relation : %(k1)s non implantee sur les poulies
+"""),
+
+93: _("""
+ deformation : %(k1)s non implantee sur les poulies
+"""),
+
+94: _("""
+ l'attribut: %(k1)s n'existe pas pour le type: %(k2)s
+"""),
+
+95: _("""
+ erreur de programmation :on ne trouve pas dans les arguments de la routine calcul de champ a associer au parametre: %(k1)s (option: %(k2)s type_element: %(k3)s )
+"""),
+
+96: _("""
+ erreur de programmation :on n'a pas pu extraire toutes les cmps voulues du champ global associe au parametre: %(k1)s (option: %(k2)s type_element: %(k3)s )
+"""),
+
+97: _("""
+ ! tout = oui obligatoire avec %(k1)s !
+"""),
+
+98: _("""
+ attention : on n'a pas pu recuperer le parametre theta dans le resultat %(k1)s , valeur prise pour theta: 0.57
+"""),
+
+99: _("""
+ attention : recuperation d'une valeur de theta illicite dans le resultat %(k1)s valeur prise pour theta: 1.
+"""),
+}
--- /dev/null
+#@ MODIF calculel5 Messages DATE 23/04/2007 AUTEUR GNICOLAS G.NICOLAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ ! attention numeros d'ordre non contigus !
+"""),
+
+2: _("""
+ pour les options de thermique, il y a encore a travailler !!
+"""),
+
+4: _("""
+ !! probleme creation cham_elem nul dans alchml !!
+"""),
+
+5: _("""
+ nb_ec trop grand
+"""),
+
+6: _("""
+ cumul impossible avec i
+"""),
+
+7: _("""
+ cumul impossible avec kn
+"""),
+
+8: _("""
+ il faut donner "maille"
+"""),
+
+10: _("""
+ nbnocp est trop grand, contacter l'assistance
+"""),
+
+11: _("""
+ le parametre est a valeurs de type " %(k1)s " et la valeur de reference de type " %(k2)s ".
+"""),
+
+12: _("""
+ "type_test" inconnu
+"""),
+
+13: _("""
+ le champ %(k1)s est a valeurs de type " %(k2)s " et la valeur de reference de type " %(k3)s ".
+"""),
+
+14: _("""
+ le champ %(k1)s est de type inconnu.
+"""),
+
+
+
+
+
+
+16: _("""
+ ! nbnv: typelem inconnu !
+"""),
+
+17: _("""
+ ! jac(ipg): div par zero !
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+20: _("""
+ le group_no %(k1)s contient %(k2)s noeuds
+"""),
+
+21: _("""
+ le group_ma %(k1)s contient %(k2)s mailles
+"""),
+
+22: _("""
+ ! jac(1): div par zero !
+"""),
+
+23: _("""
+ ! jac(2): div par zero !
+"""),
+
+24: _("""
+ ! hf: div par zero !
+"""),
+
+25: _("""
+ ! calcul naret 2d: typelem inconnu !
+"""),
+
+26: _("""
+ ! calcul nsomm 2d: typelem inconnu !
+"""),
+
+27: _("""
+ ! pas de lumpe en 3d p2: hexa20_d --> face8_d !
+"""),
+
+28: _("""
+ ! pas de lumpe en 3d p2: hexa27 --> face9_d !
+"""),
+
+29: _("""
+ ! pas de lumpe en 3d p2: penta15_d --> face6/8_d !
+"""),
+
+30: _("""
+ ! pas de lumpe en 3d p2: tetra10_d --> face6_d !
+"""),
+
+31: _("""
+ ! calcul naret/nsomm 3d: typelem inconnu !
+"""),
+
+32: _("""
+ ! l'objet chval des segments est inexistant !
+"""),
+
+33: _("""
+ ! l'objet chval2 des segments est inexistant !
+"""),
+
+34: _("""
+ ! p2 obligeatoire avec terme source non nul !
+"""),
+
+
+
+
+
+
+
+
+
+
+
+37: _("""
+ programme %(k1)s
+"""),
+
+38: _("""
+ il faut definir un champ de vitesse
+"""),
+
+39: _("""
+ la grandeur pour la variable: %(k1)s doit etre: %(k2)s mais elle est: %(k3)s
+"""),
+
+40: _("""
+ nombre de sous-points incoherent avec etat initial
+"""),
+
+41: _("""
+ pas de variables internes initiales pour la maille %(k1)s
+"""),
+
+42: _("""
+ comportements incompatibles : %(k1)s et %(k2)s pour la maille %(k3)s
+"""),
+
+43: _("""
+ erreur pgmeur dans zechlo : type_scalaire: %(k1)s non autorise(r ou c),
+"""),
+
+44: _("""
+ ! le champ doit etre un cham_elem !
+"""),
+
+45: _("""
+ ! longueurs des modes locaux imcompatibles entre eux !
+"""),
+
+46: _("""
+ ! terme normalisation global nul !
+"""),
+
+
+
+
+
+
+
+
+48: _("""
+ PROJ_CHAMP (ou LAISON_MAIL) :
+ Le noeud : %(k1)s est projeté sur une maille un peu distante (%(k2)s).
+ distance à la maille = %(r1)g
+ diamètre de la maille = %(r2)g
+"""),
+
+49: _("""
+ LIAISON_MAIL :
+ La relation linéaire destinée à éliminer le noeud esclave %(k1)s est une tautologie
+ car la maille maitre en vis à vis de ce noeud possède ce meme noeud dans sa connectivité.
+ On ne l'écrit donc pas.
+"""),
+
+50: _("""
+ Présence de coques orthotropes, les mots clés ANGL_REP ou VECTEUR
+ du mot clé facteur REPE_COQUE ne sont pas traités.
+"""),
+
+51: _("""
+ Le repère de post-traitement a été défini dans la commande AFFE_CARA_ELEM mot clé facteur COQUE.
+ Il est conseillé de définir ce repère à l'aide du mot clé ANGL_REP ou VECTEUR du mot clé
+ facteur REPE_COQUE de la commande CALC_ELEM.
+"""),
+
+52: _("""
+ Présence de GRILLE dans la modélisation, les mots clés ANGL_REP ou VECTEUR
+ du mot clé facteur REPE_COQUE ne sont pas traités.
+"""),
+
+53: _("""
+ La super_maille %(k1)s n'existe pas dans le maillage %(k2)s.
+"""),
+
+54: _("""
+ La maille %(k1)s doit etre une maille de peau de type QUAD ou TRIA
+ car on est en 3D et elle est de type %(k2)s.
+"""),
+
+55: _("""
+ L'un des mots-cles ANGL_REP ou VECTEUR est à fournir pour l'option ARCO_ELNO_SIGM.
+"""),
+
+56: _("""
+ La combinaison 'fonction multiplicatrice' et 'chargement de type fonction' n'est pas autorisée car
+ votre chargement %(k1)s contient une charge exprimée par une formule.
+ Pour réaliser cette combinaison, vous devez transformer votre charge 'formule' en charge 'fonction'
+ (via l'opérateur DEFI_FONCTION ou CALC_FONC_INTERP).
+ On poursuit sans tenir compte de la fonction multiplicatrice.
+"""),
+
+57: _("""
+ La combinaison de chargements de meme type n'est pas autorisée car l'un des chargements
+ contient une charge exprimée par une formule.
+ Pour réaliser cette combinaison, vous devez transformer votre charge 'formule' en charge 'fonction'
+ (via l'opérateur DEFI_FONCTION ou CALC_FONC_INTERP)
+"""),
+
+58: _("""
+ La combinaison de chargements de type 'déformation initiale' n'a aucun sens physique.'
+"""),
+
+59: _("""
+ La combinaison de chargements de type 'pesanteur' n'a aucun sens physique.'
+"""),
+
+60: _("""
+ La combinaison de chargements de type 'rotation' est déconseillée.
+ Veuillez plutot utiliser un chargement de type 'force interne'.
+"""),
+
+63: _("""
+ Il faut au moins 2 numéros d'ordre pour traiter l'option %(k1)s
+"""),
+
+64: _("""
+ les champs ne sont pas de la meme grandeur: type du cham_no %(k1)s
+ type du cham_no_affe %(k2)s
+"""),
+
+65: _("""
+ composante non definie dans la grandeur. composante: %(k1)s
+"""),
+
+66: _("""
+
+ le nombre de composantes affectees n'est pas egal au nombre de composantes a affecter
+ occurence de affe numero %(i1)d
+ nbre de cmp affectees : %(i2)d
+ nbre de cmp a affecter : %(i3)d
+"""),
+
+67: _("""
+ erreurs donneesle group_ma %(k1)s
+ n'a pas le meme nombre de mailles que le group_ma %(k2)s
+"""),
+
+68: _("""
+ erreurs donneesle group_ma %(k1)s
+ n'a pas les memes types de maille que le group_ma %(k2)s
+"""),
+
+69: _("""
+ erreurs donnees : la maille %(k1)s du maillage %(k2)s
+ n'est pas la translation de la maille %(k3)s
+ du maillage %(k4)s
+ vecteur translation : %(r1)f %(r2)f %(r3)f
+"""),
+
+70: _("""
+ l'instant de calcul %(r1)f n'existe pas dans %(k1)s
+"""),
+
+71: _("""
+ plusieurs numeros d'ordre trouves pour l'instant %(r1)f
+"""),
+
+72: _("""
+ cette commande est reentrante : sd resultat en sortie %(k1)s
+ sd resultat "resu_final" %(k2)s
+"""),
+
+73: _("""
+ la sd resultat en sortie %(k1)s
+ doit contenir qu'un seul nume_ordre %(k2)s
+"""),
+
+74: _("""
+ manque le champ %(k1)s dans la sd resultat %(k2)s
+ pour le nume_ordre %(i1)d
+"""),
+
+
+
+
+
+
+
+
+76: _("""
+ on ne sait pas encore decouper le type_element : %(k1)s en sous-elements %(k2)s
+ elrefa : %(k3)s
+ famille : %(k4)s
+"""),
+
+
+
+
+
+
+78: _("""
+ on ne sait pas encore decouper le type_element : %(k1)s en sous-elements %(k2)s
+ elrefa : %(k3)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+83: _("""
+ ecla_pg : champ vide nom_cham: %(k1)s nume_ordre : %(i1)d
+"""),
+
+84: _("""
+ elrefe mal programme nom local cherche (nomte elrefe famille) %(k1)s
+ parmi les existants %(k2)s
+"""),
+
+85: _("""
+ pb liste de mailles carte : %(k1)s numero entite : %(i1)d
+ position ds liste : %(i2)d
+ numero de maille : %(i3)d
+"""),
+
+
+
+
+
+
+
+
+87: _("""
+ famille non disponible maille de reference %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF calculel6 Messages DATE 23/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10: _("""
+ option inconnue %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13: _("""
+ interpolation deformations anelastiques : evol_noli: %(k1)s instant: %(r1)f
+ icoret: %(i1)d
+"""),
+
+
+
+
+
+
+
+
+15: _("""
+ l'element diagonal u( %(i1)d , %(i2)d ) de la factorisation est nul. %(k1)s
+ la solution et les estimations d' erreurs ne peuvent etre calculees. %(k2)s
+"""),
+
+16: _("""
+ interpolation temperature:evol_ther: %(k1)s nom symbolique: %(k2)s
+ instant: %(r1)f
+ icoret: %(i1)d
+"""),
+
+17: _("""
+ recherche nbre de cmp: erreur: %(k1)s grandeur numero %(i1)d de nom %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+20: _("""
+ recherche nbre de cmp: erreur: grandeur ligne numero %(i1)d de nom %(k1)s
+ grandeur colonne numero %(i2)d
+ de nom %(k2)s
+ grandeur mere numero %(i3)d
+ de nom %(k3)s
+"""),
+
+21: _("""
+ recherche nbre de cmp: erreur: grandeur %(i1)d a un code inconnu: %(i2)d
+"""),
+
+22: _("""
+ recherche nbre d entiers codes %(k1)s grandeur numero %(i1)d de nom %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+25: _("""
+ recherche nbre d entiers codes grandeur ligne numero %(i1)d de nom %(k1)s
+ grandeur colonne numero %(i2)d de nom %(k2)s
+ grandeur mere numero %(i3)d de nom %(k3)s
+"""),
+
+26: _("""
+ recherche nbre d entiers codes grandeur %(i1)d a un code inconnu: %(i2)d
+"""),
+
+27: _("""
+ acces impossible champ : %(k1)s , nume_ordre : %(i1)d
+"""),
+
+28: _("""
+ acces impossible au mode propre champ : %(k1)s , nume_ordre : %(i1)d
+"""),
+
+
+
+
+
+
+
+
+34: _("""
+ famille non disponible type de maille %(k1)s
+ famille d'integration %(i1)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+41: _("""
+ famille non disponible type de maille %(k1)s
+"""),
+
+42: _("""
+ ! prise en compte de l'erreur !
+ ! sur cl de type echange_paroi n'a ! %(i1)d
+ ! pas ete encore implantee ! %(i2)d
+"""),
+
+43: _("""
+ ! le mot cle excit contient !! plusieurs occurences de type flux lineaire ! %(i1)d
+ ! seule la derniere sera prise en compte ! %(i2)d
+"""),
+
+44: _("""
+ ! le mot cle excit contient !! plusieurs occurences de type echange ! %(i1)d
+ ! seule la derniere sera prise en compte ! %(i2)d
+"""),
+
+45: _("""
+ ! le mot cle excit contient !! plusieurs occurences de type source ! %(i1)d
+ ! seule la derniere sera prise en compte ! %(i2)d
+"""),
+
+46: _("""
+ ! champ temperature !! vide pour numero ordre ! %(i1)d
+"""),
+
+47: _("""
+ ! champ flux_elno_temp !! vide pour numero ordre ! %(i1)d
+"""),
+
+49: _("""
+ erreurs donnees composante inconnue %(k1)s pour la grandeur %(k2)s
+"""),
+
+50: _("""
+ Préparation des variables de commande :
+ Dans le CHAM_MATER %(k1)s et pour la variable de commande %(k2)s,
+ on ignore la composante %(k3)s
+"""),
+
+51: _("""
+ erreurs donnees composante inconnue %(k1)s
+"""),
+
+52: _("""
+
+ variables internes initiales non coherentes (nb sous-points) avec le comportement pour la maille nomail
+ nb sous-points "k-1" : %(i1)d
+ nb sous-points "k" : %(i2)d
+"""),
+
+53: _("""
+
+ variables internes initiales : pas le nombre de composantes voulu par le comportement pour la maille nomail
+ attendu par le comportement : %(i1)d
+ trouve sur la maille : %(i2)d
+"""),
+
+54: _("""
+ Utilisation d'un mot clé obsolète : AFFE_CHAR_MECA/TEMP_CALCULEE
+
+ L'une des charges contient un chargement thermique (TEMP_CALCULEE).
+ L'utilisation de la température comme variable de commande en mécanique doit
+ maintenant se faire en utilisant AFFE_MATERIAU/AFFE_VARC/NOM_VARC='TEMP'.
+
+ Néanmoins, jusqu'à la version 9.1 (incluse), les 2 syntaxes sont acceptées.
+
+ Conseil :
+ Déplacer le chargement thermique de AFFE_CHAR_MECA/TEMP_CALCULEE vers
+ AFFE_MATERIAU/AFFE_VARC
+"""),
+
+55: _("""
+ Erreur d'utilisation (préparation des variables de commande) :
+ Le CHAM_MATER %(k1)s contient des variables de commandes (AFFE_VARC).
+ Une des charges contient un chargement thermique (TEMP_CALCULEE).
+
+ Conseil :
+ Déplacer le chargement thermique de AFFE_CHAR_MECA/TEMP_CALCULEE vers
+ AFFE_MATERIAU/AFFE_VARC
+"""),
+
+56: _("""
+ Erreur d'utilisation (rcmaco/alfint) :
+ Le CHAM_MATER %(k1)s contient des variables de commandes (AFFE_MATERIAU/AFFE_VARC).
+ Un des matériaux du CHAM_MATER contient un coefficient de dilation ALPHA=f(TEMP).
+ Mais la température n'est pas fournie sous AFFE_MATERIAU/AFFE_VARC
+
+ Conseil :
+ Renseignez le chargement thermique à l'aide de AFFE_MATERIAU/AFFE_VARC/NOM_VARC='TEMP'
+"""),
+
+57: _("""
+ Erreur d'utilisation (préparation des variables de commande) :
+ Pour la variable de commande %(k1)s, il y a une incohérence du
+ nombre de "sous-points" entre le CARA_ELEM %(k2)s
+ et le CHAM_MATER %(k3)s.
+
+ Conseil :
+ N'avez-vous pas défini plusieurs CARA_ELEM conduisant à des nombres de
+ "sous-points" différents (COQUE_NCOU, TUYAU_NCOU, ...) ?
+"""),
+
+58: _("""
+ Erreur de programmation :
+ Pour la variable de commande %(k1)s, on cherche à utiliser la famille
+ de points de Gauss '%(k2)s'.
+ Mais cette famille n'est pas prévue dans la famille "liste" (MATER).
+
+ Contexte de l'erreur :
+ option : %(k3)s
+ type_element : %(k4)s
+
+ Conseil :
+ Emettez une fiche d'anomalie
+"""),
+
+59: _("""
+ Erreur d'utilisation (préparation des variables de commande) :
+ Dans le CHAM_MATER %(k1)s et pour la variable de commande %(k2)s,
+ on a trouvé la composante 'TEMP_INF'.
+ Cela veut sans doute dire que vous avez oublié de "préparer"
+ la variable de commande 'TEMP' avec CREA_RESU / OPERATION='PREP_VRC2'
+"""),
+
+60: _("""
+ Erreur d'utilisation (préparation des variables de commande) :
+ Dans le CHAM_MATER %(k1)s et pour la variable de commande %(k2)s,
+ la liste donnée pour le mot clé VALE_REF n'a pas la bonne longueur.
+"""),
+
+
+61:_("""
+ Erreur de programmation (fointa) :
+ Le type de la fonction est invalide : %(k1)s
+"""),
+
+62: _("""
+ Erreur de programmation (fointa) :
+ Pour l'interpolation de la fonction %(k1)s,
+ il manque le paramètre %(k2)s
+"""),
+
+63: _("""
+ Erreur lors de l'interpolation (fointa) de la fonction %(k1)s :
+ Code retour: %(i1)d
+"""),
+
+64: _("""
+ Variables internes en nombre différent aux instants '+' et '-' pour la maille %(k1)s
+ Instant '-' : %(i1)d
+ Instant '+' : %(i2)d
+"""),
+
+65: _("""
+ Le nombre de charges fourni par l'utilisateur %(i1)d est différent du
+ nombre de charges trouvées dans la SD_resultat %(i2)d
+"""),
+
+66: _("""
+ Le couple (charge-fonction) fourni par l'utilisateur n'est pas présent dans la SD_resultat.
+ On poursuit le calcul avec le chargement fourni par l'utilisateur.
+ Charge (utilisateur) : %(k1)s
+ Fonction (utilisateur) : %(k2)s
+ Charge (SD_resultat) : %(k3)s
+ Fonction (SD_resultat) : %(k4)s
+
+"""),
+
+67: _("""
+ Erreur utilisateur :
+ Un calcul élémentaire nécessite une ou plusieurs variables de commande (CVRC).
+ Sur la maille : %(k1)s, on ne trouve pas le bon nombre de "CVRC" :
+ On attend : %(i2)d "CVRC", mais on n'en trouve que : %(i1)d
+
+ Conseil :
+ Vérifier les occurences de AFFE_MATERIAU/AFFE_VARC pour la maille concernée.
+"""),
+
+
+}
--- /dev/null
+#@ MODIF cataelem Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ l option : %(k1)s est probablement composee (viellot)
+"""),
+
+2: _("""
+ l option : %(k1)s a plusieurs parametres de memes noms.
+"""),
+
+3: _("""
+ mode local incorrect pour le parametre: %(k1)s pour l option: %(k2)s pour le type: %(k3)s
+"""),
+
+4: _("""
+ le parametre : %(k1)s pour l option : %(k2)s existe pour le type : %(k3)s mais n existe pas dans l option.
+"""),
+
+5: _("""
+ le parametre : %(k1)s pour l option : %(k2)s et pour le type_element : %(k3)s n est pas associe a la bonne grandeur.
+"""),
+
+6: _("""
+ le parametre : %(k1)s pour l option : %(k2)s et pour le type_element : %(k3)s n a pas le bon nombre de noeuds.
+"""),
+
+7: _("""
+ le parametre : %(k1)s pour l option : %(k2)s et pour le type_element : %(k3)s n est pas du bon type: %(k4)s
+"""),
+
+8: _("""
+ les grandeurs : %(k1)s et %(k2)s doivent avoir exactement les memes cmps.
+"""),
+
+9: _("""
+ erreurs de coherence dans les catalogues d elements finis.
+"""),
+
+10: _("""
+ nb_ec > 1
+"""),
+
+11: _("""
+ stop 6
+"""),
+
+12: _("""
+ stop 7
+"""),
+
+13: _("""
+ stop 8
+"""),
+
+14: _("""
+ stop 9
+"""),
+
+15: _("""
+ stop a
+"""),
+
+16: _("""
+ stop b
+"""),
+
+17: _("""
+ stop c
+"""),
+
+18: _("""
+ stop d
+"""),
+
+20: _("""
+ Erreur lors de l'accès à la composante %(i1)d dans le champ de nom %(k1)s et de type %(k2)s.
+ Les arguments sont hors bornes ou la composante est déjà affectée (écrasement).
+ Contactez les développeurs.
+"""),
+
+
+}
--- /dev/null
+#@ MODIF champs Messages DATE 24/04/2007 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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1 : _("""
+ On ne trouve pas de valeurs dans le champ.
+"""),
+
+2: _("""
+ Impossible de récupérer le nom du champ.
+"""),
+
+3: _("""
+ La composante %(k1)s du champ n'existe pas.
+"""),
+
+4 : _("""
+ On ne trouve pas de mailles dans les groupes fournis.
+"""),
+
+5 : _("""
+ On ne trouve pas de noeuds dans les groupes fournis.
+"""),
+
+}
--- /dev/null
+#@ MODIF compor1 Messages DATE 24/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ hujpla :: nombre de variables internes incorrect:
+ NVI > NVIMAX
+"""),
+
+2: _("""
+ hujddd :: on ne calcule pas DPSIDS pour K=4.
+ - vérifiez la programmation -
+"""),
+
+3: _("""
+ cam-clay :: le coefficient de poisson est négatif
+ dans la maille %(k1)s
+
+ *** vérifiez la cohérence des données mécaniques suivantes :
+ E, nu, eO (indice des vides), kapa
+ (contrainte volumique initiale)
+
+ il faut notamment vérifier ceci:
+
+ E < 3*PO*(1+e0)/kapa ***
+"""),
+
+4: _("""
+ hujeux :: les modélisations autorisées sont 3D D_PLAN ou AXIS
+"""),
+
+5: _("""
+ hujeux :: K différent de NBMECA pour le mécanisme isotrope
+ - vérifiez la programmation -
+"""),
+
+6: _("""
+ hujeux :: erreur inversion par pivot de Gauss
+"""),
+
+7: _("""
+ hujcri :: epsi_vp est trop grand:
+ !!! l'exponentielle explose !!!
+"""),
+
+8: _("""
+ hujeux :: mécanisme indéterminé
+ - vérifiez la programmation -
+"""),
+
+9 : _("""
+Arret suite à l'échec de l'intégration de la loi de comportement.
+"""),
+
+10: _("""
+ hujksi :: mot-clé inconnu
+"""),
+
+11: _("""
+ hujnvi :: modélisation inconnue
+"""),
+
+14: _("""
+ hujtid :: erreur dans le calcul de la matrice tangente
+"""),
+
+15: _("""
+ nmcomp :: la loi élastique n'est plus disponible directement avec SIMO_MIEHE : utilisez
+VMIS_ISOT_LINE avec un SY grand
+"""),
+
+16 : _("""
+Arret suite à l'échec de l'intégration de la loi de comportement.
+
+Erreur numérique (overflow) : la plasticité cumulée devient très grande.
+"""),
+
+}
--- /dev/null
+#@ MODIF contact Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ La méthode de résolution du contact utilisée suppose la symétrie de la
+ matrice du système à résoudre.
+ Dans le cas où votre modélisation ferait intervenir une matrice
+ non-symétrique, on force sa symétrie. On émet une alarme pour vous
+ en avertir.
+
+ CONSEIL :
+ Vous pouvez supprimer cette alarme en renseignant SYME='OUI' sous le
+ mot-clé facteur SOLVEUR.
+"""),
+
+6: _("""
+ Contact methode GCP. On ne peut utiliser le solveur gcpc avec le contact
+"""),
+
+7: _("""
+ Contact methode GCP. Denom est negatif : contacter les developpeurs
+"""),
+
+8: _("""
+ Contact methode GCP. Le pas d'avancement est negatif : contacter les developpeurs
+"""),
+
+9: _("""
+ Contact liaison glissiere. Des noeuds se decollent plus que la valeur d'ALARME_JEU:
+"""),
+
+10: _("""
+ Contact methodes discretes. Une maille maitre de type SEG a une longueur nulle. Verifiez votre maillage.
+"""),
+
+11: _("""
+ Contact methodes discretes. Le vecteur tangent defini par VECT_Y est colineaire au vecteur normal.
+"""),
+
+12: _("""
+ Contact methodes discretes. Le vecteur normal est colineaire au plan de projection.
+"""),
+
+13: _("""
+ Contact methodes discretes. Il faut reactualiser la projection : contacter les developpeurs
+"""),
+
+14: _("""
+ Contact methodes discretes. La projection quadratique pour les triangles n'est pas disponible
+"""),
+
+15: _("""
+ Contact methodes discretes. Une maille maitre de type TRI a une surface nulle. Verifiez votre maillage.
+"""),
+
+22: _("""
+ Contact methodes discretes. Cette methode d'appariement n'existe pas : contacter les developpeurs.
+"""),
+
+23: _("""
+ Contact methodes discretes. Erreur d'appel par l'option d'appariement n'existe pas : contacter les developpeurs.
+"""),
+
+24: _("""
+ Contact methodes discretes. Erreur de dimensionnement nombre maximal de noeuds esclaves depasse : contacter les developpeurs
+"""),
+
+25: _("""
+ Contact methodes discretes. Erreur de dimensionnement des tableaux apcoef et apddl : contacter les developpeurs
+"""),
+
+27: _("""
+ Contact methodes discretes. On n'a pas trouve de noeud maitre proche du noeud esclave : contacter les developpeurs
+"""),
+
+30: _("""
+ Contact methodes discretes. On ne sait pas traiter ce type de maille
+"""),
+
+31: _("""
+ Contact methodes discretes. Le noeud esclave n'a pas pu s'apparier avec la maille quadrangle : contacter les developpeurs
+"""),
+
+32: _("""
+ Contact methodes discretes. Pas de lissage des normales possible avec l'appariement nodal : contacter les developpeurs
+"""),
+
+38: _("""
+ Contact. Erreur dans la definition symetrique : contacter les developpeurs
+"""),
+
+54: _("""
+ Contact. On ne peut pas utiliser une direction d'appariement fixe VECT_NORM_ESCL si l'appariement n'est pas nodal.
+"""),
+
+55: _("""
+ Contact. La commande VECT_Y n'intervient pas en 2D.
+"""),
+
+56: _("""
+ Contact. La commande VECT_ORIE_POU n'intervient pas en 2D.
+"""),
+
+
+60: _("""
+ Contact methodes discretes. Vous utilisez des mailles de type SEG2/SEG3 en 3D sans definir un repere pour l'appariement. Voir les mots-clefs VECT_Y et VECT_ORIE_POU.
+"""),
+
+74: _("""
+ Contact. Erreur de dimensionnement car le nombre de noeuds est superieur a 9 : contacter les developpeurs
+"""),
+
+75: _("""
+ Contact. Un POI1 ne peut pas etre une maille maitre.
+"""),
+
+76: _("""
+ Contact. On ne peut pas avoir plus de 3 ddls impliques dans la meme relation unilaterale : contacter les developpeurs
+"""),
+
+83: _("""
+ Contact. Il y a plusieurs charges contenant des conditions de contact.
+"""),
+
+84: _("""
+ Contact. Melange 2d et 3d dans le contact.
+"""),
+
+85: _("""
+ Contact. Melange dimensions maillage dans le contact.
+"""),
+
+86: _("""
+ Contact. Code methode contact incorrect : contacter les developpeurs
+"""),
+
+87: _("""
+ Contact. La norme tangentielle de frottement est negative: contacter les developpeurs
+"""),
+
+88: _("""
+ Contact. Ne pas utiliser REAC_INCR=0 avec le frottement.
+"""),
+
+93: _("""
+ Contact methode VERIF.
+ -> Interpénétrations des surfaces.
+ -> Risque & Conseil :
+ Vérifier si le niveau d'interpénétration des surfaces est acceptable dans
+ votre problème.
+"""),
+
+94: _("""
+ Operation d'appariement inconnue : contacter les developpeurs
+"""),
+
+97: _("""
+ Contact methode CONTINUE. Pour l'option SANS_GROUP_NO, l'intégration aux noeuds est obligatoire.
+"""),
+
+
+
+}
--- /dev/null
+#@ MODIF contact2 Messages DATE 24/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1 : _("""
+ Echec lors du traitement du contact.
+"""),
+
+2 : _("""
+ Echec : la matrice de contact est singulière.
+"""),
+
+12 : _("""
+Contact méthode CONTINUE. Une zone de contact contient à la fois des éléments axisymétriques et non axisymétriques !
+"""),
+
+}
+
--- /dev/null
+#@ MODIF contact3 Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+Le mot-clef < %(k1)s > est inconnu dans AFFE_CONTACT. Contactez les développeurs.
+Note DVP: erreur de cohérence fortran/catalogue.
+"""),
+
+2: _("""
+Le mot-clef < %(k1)s > n'est pas renseigné dans AFFE_CONTACT alors qu'il est obligatoire. Contactez les développeurs.
+Note DVP: erreur de cohérence fortran/catalogue.
+"""),
+
+3: _("""
+L'option < %(k1)s > ne correspond a aucune option permise par le mot-clef < %(k2)s > dans AFFE_CONTACT. Contactez les développeurs.
+Note DVP: erreur de cohérence fortran/catalogue.
+"""),
+
+4: _("""
+Les méthodes de contact doivent etre identiques pour toutes les zones de contact.
+"""),
+
+5: _("""
+Le type de formulation du contact doit etre le meme pour toutes les zones de contact.
+"""),
+
+10: _("""
+La matrice est singulière lors du calcul du repère local tangent au noeud maitre %(k1)s sur la maille maitre %(k2)s.
+Une erreur de définition de la maille: les vecteurs tangents sont colinéaires.
+"""),
+
+11: _("""
+La matrice est singulière lors de la projection du point de contact sur la maille maitre %(k1)s.
+Une erreur de définition de la maille: les vecteurs tangents sont colinéaires.
+"""),
+
+12: _("""
+L'algorithme de Newton a échoué lors du calcul du repère local tangent au noeud maitre %(k1)s sur la maille maitre %(k2)s.
+Erreur de définition de la maille ou projection difficile. Contactez l'assistance dans ce dernier cas.
+"""),
+
+13: _("""
+L'algorithme de Newton a échoué lors de la projection du point de contact sur la maille maitre %(k1)s.
+Erreur de définition de la maille ou projection difficile. Contactez l'assistance dans ce dernier cas.
+"""),
+
+14: _("""
+Les vecteurs tangents sont nuls au noeud maitre %(k1)s sur la maille maitre %(k2)s.
+Une erreur de définition de la maille.
+"""),
+
+21: _("""
+Les vecteurs tangents sont nuls lors de la projection du point de contact sur la maille maitre %(k1)s.
+Une erreur de définition de la maille.s
+"""),
+
+22: _("""
+L'élement inconnu sur la maille maitre %(k1)s.
+Cet élément n'est pas programmé pour le contact avec formualtion continue.
+Contactez l'assistance.
+"""),
+
+23: _("""
+Le vecteur normal est nul sur le noeud maitre %(k1)s.
+Si vous avez activé le lissage, essayeé de le désactiver.
+"""),
+
+24: _("""
+Il y a plus de trois noeuds exclus sur la maille esclave %(k1)s par l'option SANS_GROUP_NO ou SANS_NOEUD.
+Supprimer directement la maille esclave de la définition de la surface.
+"""),
+
+25: _("""
+L'élément porté par la maille esclave %(k1)s n'est pas du bon type pour un fond de fissure, elle est de type %(k2)s
+"""),
+
+26: _("""
+Schema d'intégration inconnu sur la maille %(k1)s.
+"""),
+
+27: _("""
+Code erreur introuvable. Contactez les développeurs.
+"""),
+
+28: _("""
+Le statut du contact a changé %(i1)d fois au point de contact numéro %(i2)d sur la maille esclave %(k1)s
+Présence de flip-flop.
+"""),
+
+30: _("""
+Le modèle ne comporte pas de fissure XFEM.
+"""),
+
+31: _("""
+La définition du contact XFEM ne comporte pas autant de zones que de fissures XFEM dans le modèle.
+"""),
+
+
+99: _("""
+La SD contact < %(k1)s > est introuvable. Contactez les développeurs.
+"""),
+
+
+
+}
--- /dev/null
+#@ MODIF contactdebg Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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.
+# ======================================================================
+# RESPONSABLE ABBAS M.ABBAS
+
+def _(x) : return x
+
+cata_msg={
+
+
+1: _("""
+ <CONTACT_2> Reactualisation de l'appariement.
+"""),
+
+2: _("""
+ <CONTACT_2> Reactualisation de la geometrie.
+"""),
+
+3: _("""
+ <CONTACT_2> Appariement des surfaces.
+"""),
+
+4: _("""
+ <CONTACT_2> Pas de reactualisation de l'appariement.
+"""),
+
+5: _("""
+ <CONTACT_2> Sauvegarde des anciennes donnees d'appariement.
+"""),
+
+6: _("""
+ <CONTACT_2> Calcul des normales sur tous les noeuds (maitres et esclaves).
+"""),
+
+7: _("""
+ <CONTACT_2> Zone de contact <%(i1)s> - Pas de reactualisation de l'appariement sur cette zone.
+ <CONTACT_2> Nombre de fois ou l'appariement est reste fixe sur cette zone: <%(i2)s>
+"""),
+
+8: _("""
+ <CONTACT_2> Zone de contact <%(i1)s> - Reactualisation de l'appariement sur cette zone.
+"""),
+
+9: _("""
+ <CONTACT_2> Restitution des anciennes donnees d'appariement.
+"""),
+
+10: _("""
+ <CONTACT_2> Zone de contact <%(i1)s> - Appariement de type nodal.
+"""),
+
+11: _("""
+ <CONTACT_2> Le noeud <%(k1)s> n'est pas apparie car il aurait ete projete hors de la zone de tolerance de la maille <%(k2)s> qui etait la plus proche.
+ <CONTACT_2> Vous pouvez eventuellement modifier TOLE_PROJ_EXT ou revoir la definition de vos zones esclaves et maitres.
+"""),
+
+12: _("""
+ <CONTACT_2> Le noeud <%(k1)s> n'est pas apparie car il risque de provoquer des pivots nuls (appariement MAIT_ESCL_SYME).
+"""),
+
+13: _("""
+ <CONTACT_2> Le noeud <%(k1)s> n'est pas apparie car il appartient a SANS_NOEUD ou SANS_GROUP_NO.
+"""),
+
+14: _("""
+ <CONTACT_2> Zone de contact <%(i1)s> - Appariement de type maitre/esclave.
+"""),
+
+15: _("""
+ <CONTACT_2> Appariement de type maitre/esclave - Recherche du noeud maitre le plus proche du noeud esclave.
+"""),
+
+16: _("""
+ <CONTACT_2> Appariement de type maitre/esclave - Recherche de la maille maitre la plus proche du noeud esclave.
+"""),
+
+17: _("""
+ <CONTACT_2> Appariement de type maitre/esclave - Projection.
+"""),
+
+18: _("""
+ <CONTACT_2> Debut du traitement des conditions de contact.
+"""),
+
+19: _("""
+ <CONTACT_2> Fin du traitement des conditions de contact.
+"""),
+
+20: _("""
+ <CONTACT_2> Temps CPU passe dans la geometrie : %(r1)g secondes.
+"""),
+
+21: _("""
+ <CONTACT_2> Temps CPU passe dans l'algorithme : %(r1)g secondes.
+"""),
+
+22: _("""
+ <CONTACT_2> Creation de la structure de donnees pour le contact.
+"""),
+
+23: _("""
+ <CONTACT_2> Appariement de type maitre/esclave - Creation de l'objet pour appariement symetrique.
+"""),
+
+98: _("""
+ <CONTACT> Erreur fatale <%(i1)s> dans <%(k1)s>: contacter les developpeurs
+"""),
+
+99: _("""
+ <CONTACT_2> Message inconnu lors du debuggage : contacter les developpeurs
+"""),
+
+
+}
--- /dev/null
+#@ MODIF context_info Messages DATE 17/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.
+# ======================================================================
+# RESPONSABLE COURTOIS M.COURTOIS
+
+"""
+ Ensemble de fonctions permettant de récupérer des infos sur le contexte
+ dans lequel se produit une erreur.
+ L'objectif est :
+ - d'aider à la compréhension du message,
+ - de fournir, si possible, des pistes de solution.
+"""
+
+__all__ = ['context_concept', 'message_context_concept']
+
+# -----------------------------------------------------------------------------
+def context_concept(nom_concept):
+ """Retourne le nom de la commande ayant produit le concept `nom_concept`
+ et la liste des (commande, [mot-clé facteur,] mot-clé) où il est utilisé.
+ """
+ dico = { 'concept' : nom_concept, 'cmde_prod' : '', 'cmde_use' : [] }
+ jdc = CONTEXT.get_current_step()
+ co = jdc.sds_dict.get(nom_concept)
+ if co == None:
+ return dico
+ dico['cmde_prod'] = co.etape
+ # étape utilisant `nom_concept`
+ l_etape = jdc.get_liste_etapes()
+ l_cmde = []
+ for etape in l_etape:
+ pass
+ if len(l_cmde) == 0:
+ l_cmde.append('?')
+ dico['cmde_use'] = ', '.join(l_cmde)
+ return dico
+
+# -----------------------------------------------------------------------------
+def message_context_concept(*args, **kwargs):
+ """Appel context_concept et formatte le message.
+ """
+ fmt_concept = """Le concept '%(nom_concept)s' a été produit par %(nom_cmde_prod)s."""
+ dico = context_concept(*args, **kwargs)
+ d = {
+ 'nom_concept' : dico['concept'],
+ 'nom_cmde_prod' : dico['cmde_prod'].nom,
+ }
+ return fmt_concept % d
+
+# -----------------------------------------------------------------------------
+if __name__ == '__main__':
+ pass
--- /dev/null
+#@ MODIF discrets Messages DATE 28/03/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+# Messages pour les éléments discrets non-linéaires
+cata_msg={
+
+1: _("""
+element discret %(k1)s . Il n'y a pas de rotation non-lineaire possible.
+"""),
+
+2: _("""
+element discret %(k1)s . Il n'y a pas de comportement\n
+non-lineaire possible suivant z ou en rotation autour de x,y en 2d.
+"""),
+
+3: _("""
+element discret %(k1)s . Il n'y a pas de comportement\n
+non-lineaire possible en rotation ou suivant z en 2d.
+"""),
+
+4: _("""
+element discret. Le pas de temps est devenu trop petit : %(r1)12.5E .
+"""),
+
+5: _("""
+element discret %(k1)s . Les caracteristiques sont obligatoirement\n
+donnees dans le repere local du discret..
+"""),
+
+6: _("""
+pour les elements discrets il faut definir un repere dans affe_cara_elem\n
+maille : %(k1)s
+"""),
+
+}
+
+
+
+
--- /dev/null
+#@ MODIF dvp Messages DATE 20/02/2007 AUTEUR LEBOUVIER F.LEBOUVIER
+# -*- 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 _(x) : return x
+
+"""
+ Messages à l'attention des développeurs, type "assert"
+ Lorsque l'utilisateur tombe sur un tel message, tout ce qu'il a à faire,
+ c'est de rapporter le bug, le texte du message devant aider le
+ développeur à faire le diagnostic.
+
+ "UTPRIN" ajoute automatiquement ces deux lignes :
+ Il y a probablement une erreur dans la programmation.
+ Veuillez contacter votre assistance technique.
+"""
+
+cata_msg={
+
+1 : _("""
+ Erreur de programmation : condition non respectée.
+"""),
+
+2 : _("""
+ Erreur numérique (floating point exception).
+"""),
+
+}
--- /dev/null
+#@ MODIF dynamique Messages DATE 15/05/2007 AUTEUR GNICOLAS G.NICOLAS
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ schema inconnu
+"""),
+
+2: _("""
+ la liste d'instants fournie ne respecte pas la condition de stabilite.
+"""),
+
+3: _("""
+ la condition de stabilite n'a pas pu etre calculee pour tous les elements. elle peut etre trop grande.
+"""),
+
+4: _("""
+ -> La condition de stabilité n'a pu etre calculée pour aucun élément.
+ -> Risque & Conseil :
+ Vous prenez le risque de sortir du cadre de la stabilité conditionnelle du schéma de temps explicite. Vérifiez bien
+ que vos éléments finis ont une taille et un matériau (module de Young) compatibles avec le respect de la condition
+ de Courant vis-à-vis du pas de temps que vous avez imposé (temps de propagation des ondes dans la maille, voir
+ documentation). Si c'est le cas, lever l'arret fatal en utilisant l'option "STOP_CFL", à vos risques et périls
+ (risques de résultats faux).
+"""),
+
+5: _("""
+ Pas de temps maximal (condition CFL) pour le schéma des différences centrées : %(r1)g s, sur la maille : %(k1)s
+"""),
+
+6: _("""
+ Pas de temps maximal (condition CFL) pour le schéma de Tchamwa-Wilgosz : %(r1)g s, sur la maille : %(k1)s
+"""),
+
+7: _("""
+ Pas de temps maximal (condition CFL) pour le schéma des différences centrées : %(r1)g s
+"""),
+
+8: _("""
+ Pas de temps maximal (condition CFL) pour le schéma de Tchamwa-Wilgosz : %(r1)g s
+"""),
+
+9: _("""
+ Arret par manque de temps CPU au numéro d'instant : %(i1)d
+ - Temps moyen par pas de temps : %(r1)f
+ - Temps cpu restant : %(r2)f
+
+ La base globale est sauvegardée. Elle contient les pas archivés avant l'arret.
+"""),
+
+10: _("""
+ Arret par manque de temps CPU au groupe de pas de temps : %(i1)d
+ au "petit" pas de temps : %(i2)d
+ - Temps moyen par "petit" pas : %(r1)f
+ - Temps cpu restant : %(r2)f
+
+ La base globale est sauvegardée. Elle contient les pas archivés avant l'arret.
+"""),
+
+11: _("""
+ Arret par manque de temps CPU après le calcul de %(i1)d pas.
+ - Dernier instant archivé : %(r1)f
+ - Numéro d'ordre correspondant : %(i2)d
+ - Temps moyen pour les %(i3)d pas de temps : %(r2)f
+ - Temps cpu restant : %(r3)f
+
+ La base globale est sauvegardée. Elle contient les pas archivés avant l'arret.
+"""),
+
+12: _("""
+ Le pas de temps est trop grand : %(r1)f
+ le pas de temps maximal est : %(r2)f
+
+ Avec le pas de temps maximal, le nombre de pas de calcul est %(i1)d
+"""),
+
+}
--- /dev/null
+#@ MODIF elements Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ arret du code
+"""),
+
+2: _("""
+ abs(rayon2-rayon1).gt.epsi
+"""),
+
+3: _("""
+ abs(theta2-theta1).gt.epsi
+"""),
+
+4: _("""
+ abs(omega2-omega1).gt.epsi
+"""),
+
+5: _("""
+ probleme de maillage tuyau : pour une maille definie par les noeuds n1 n2 n3 le noeud n3 doit etre le noeud milieu
+"""),
+
+6: _("""
+ gene_tuyau il faut donner un vecteur non colineaire au tuyau
+"""),
+
+7: _("""
+ angle du coude trop grand
+"""),
+
+8: _("""
+ mailler plus fin
+"""),
+
+9: _("""
+ il faut renseigner le coefficient e_n dans les cas des deformations planes et de l'axisymetrie, on ne regarde donc que le cas des contraintes planes.
+"""),
+
+10: _("""
+ Subroutine chpver :
+ le champ %(k1)s n'a pas le bon type :
+ type autorisé :%(k2)s
+ type du champ :%(k3)s
+"""),
+
+11: _("""
+ la modelisation : %(k1)s n'est pas traitee.
+"""),
+
+12: _("""
+ nombre de couches obligatoirement superieur a 0
+"""),
+
+13: _("""
+ nombre de couches limite a 10 pour les coques 3d
+"""),
+
+14: _("""
+ le type d'element : %(k1)s n'est pas prevu.
+"""),
+
+15: _("""
+ la nature du materiau %(k1)s n'est pas traitee, seules sont considerees les natures : elas, elas_istr, elas_orth .
+"""),
+
+16: _("""
+ type de maille inconnu
+"""),
+
+17: _("""
+ noeuds confondus pour un element
+"""),
+
+18: _("""
+ nno invalide
+"""),
+
+19: _("""
+ pb1
+"""),
+
+20: _("""
+ aucun type d elements necorrespond au type demande
+"""),
+
+21: _("""
+ predicteur elas hors champs
+"""),
+
+22: _("""
+ irep (indicateur de changement de repere) doit etre egal a 0 ou 1
+"""),
+
+23: _("""
+ piles saturees
+"""),
+
+24: _("""
+ derivatives of "mp" not defined
+"""),
+
+25: _("""
+ on passe en mecanisme 2
+"""),
+
+26: _("""
+ chargement en meca 2 trop important a verifier
+"""),
+
+27: _("""
+ on poursuit en mecanisme 2
+"""),
+
+28: _("""
+ decharge negative sans passer par meca 1 diminuer le pas de temps
+"""),
+
+29: _("""
+ on revient en mecanisme 1
+"""),
+
+30: _("""
+ pas de retour dans meca 1 trop important diminuer le pas de temps
+"""),
+
+31: _("""
+ type element %(k1)s incompatible avec %(k2)s
+"""),
+
+32: _("""
+ comportement inattendu
+"""),
+
+33: _("""
+ nombre d iterations > 1000 .
+"""),
+
+34: _("""
+ element non traite %(k1)s
+"""),
+
+35: _("""
+ pas d excentrement avec stat_non_line maille %(k1)s
+"""),
+
+36: _("""
+ nombre de couches negatif ou nul : %(k1)s
+"""),
+
+37: _("""
+ Subroutine chpver :
+ le champ %(k1)s n'a pas la bonne grandeur :
+ grandeur autorisée :%(k2)s
+ grandeur du champ :%(k3)s
+"""),
+
+38: _("""
+ ! pb phesen.ne.phenom !
+"""),
+
+39: _("""
+ l'axe de reference est normal a un element de plaque anisotrope
+"""),
+
+40: _("""
+ -> L'axe de référence pour le calcul du repère local est normal à un
+ au moins un élément de plaque.
+ -> Risque & Conseil :
+ Il faut modifier l'axe de référence (axe X par défaut) en utilisant
+ ANGL_REP ou VECTEUR.
+
+"""),
+
+41: _("""
+ impossibilite : vous avez un materiau de type "elas_coque" et vous n'avez pas defini la raideur de membrane, ni sous la forme "memb_l", ni sous la forme "m_llll".
+"""),
+
+42: _("""
+ comportement materiau non admis
+"""),
+
+43: _("""
+ impossibilite : vous avez un materiau de type "elas_coque" et le determinant de la sous-matrice de hooke relative au cisaillement est nul.
+"""),
+
+44: _("""
+ unknown option demanded
+"""),
+
+45: _("""
+ n < 0
+"""),
+
+46: _("""
+ nombre de couches negatif ou nul
+"""),
+
+47: _("""
+ pas d excentrement avec forc_noda maille %(k1)s
+"""),
+
+48: _("""
+ impossibilite, la surface de l'element est nulle.
+"""),
+
+49: _("""
+ l'axe de reference est normal a un element de plaque - calcul option impossible - orienter ces mailles
+"""),
+
+50: _("""
+ comportement elastique inexistant
+"""),
+
+51: _("""
+ -> Le type de comportement %(k1)s n'est pas prévu pour le calcul de
+ SIGM_ELNO_DEPL. Les seuls comportements autorisés sont :
+ ELAS, ELAS_COQUE, ou ELAS_ORTH
+ -> Risque & Conseil :
+ Pour les autres comportements, utiliser SIEF_ELNO_ELGA (efforts)
+ ou SIGM_ELNO_COQU (contraintes en un point de l'épaisseur).
+"""),
+
+52: _("""
+ lorsqu'il y a variation de temperature dans l'epaisseur, utiliser "stat_non_line"
+"""),
+
+53: _("""
+ probleme: temperature sur la maille: %(k1)s : il manque la composante "temp"
+"""),
+
+54: _("""
+ element non prevu
+"""),
+
+55: _("""
+ elrefa inconnu: %(k1)s
+"""),
+
+56: _("""
+ erreur programmeur ecrasement de dff, dimf est inferieur au nb de noeuds * nb cmps
+"""),
+
+57: _("""
+ erreur programmeur: ecrasement de ff, dimf est inferieur au nb de noeuds
+"""),
+
+58: _("""
+ la nature du materiau %(k1)s necessite la definition du coefficient b_endoge dans defi_materiau.
+"""),
+
+59: _("""
+ bizarre : %(k1)s
+"""),
+
+60: _("""
+ on ne sait pas traiter : %(k1)s
+"""),
+
+61: _("""
+ axi : r=0
+"""),
+
+62: _("""
+ group_ma : %(k1)s inconnu dans le maillage
+"""),
+
+63: _("""
+ erreurs group_ma
+"""),
+
+64: _("""
+ le liaison_*** de %(k1)s implique les noeuds physiques %(k2)s et %(k3)s et traverse l'interface
+"""),
+
+65: _("""
+ le liaison_*** de %(k1)s implique le noeud physique %(k2)s et touche l'interface
+"""),
+
+66: _("""
+ si noeud_orig : donner un group_ma ou une liste de mailles. on ne reordonne pas les group_no et les listes de noeuds.
+"""),
+
+67: _("""
+ le group_no : %(k1)s n'existe pas.
+"""),
+
+68: _("""
+ le noeud origine %(k1)s ne fait pas parti du chemin
+"""),
+
+69: _("""
+ le noeud origine %(k1)s n'est pas une extremite
+"""),
+
+70: _("""
+ pas d'origine definie par noeud_orig ou group_no_orig
+"""),
+
+71: _("""
+ echec dans la recherche du noeud origine
+"""),
+
+72: _("""
+ group_no oriente : noeud origine = %(k1)s
+"""),
+
+73: _("""
+ le group_ma : %(k1)s n'existe pas.
+"""),
+
+74: _("""
+ si le fond est une courbe fermee maille_orig ou group_ma_orig doit accompagner noeud_orig
+"""),
+
+75: _("""
+ le noeud_orig n'appartient pas a la maille_orig
+"""),
+
+76: _("""
+ la maille_orig %(k1)s n'appartient pas au fond de fissure
+"""),
+
+77: _("""
+ le noeud extremite %(k1)s n'est pas le dernier noeud
+"""),
+
+78: _("""
+ group_no oriente : noeud extremite = %(k1)s
+"""),
+
+79: _("""
+ il y a a la fois des elements volumiques de degre 1 et de degre 2 dans le modele. on a besoin de savoir si on est en lineaire ou en quadratique pour choisir la methode de lissage.
+"""),
+
+80: _("""
+ le concept fond_fiss est mal cree
+"""),
+
+81: _("""
+ le .vale du cham_no dire_theta n'a pas la bonne taille
+"""),
+
+82: _("""
+ l'option de lissage 'lagrang2' n'a pas ete developpee lorsque le nombre de noeuds d'un fond de fissure ferme est pair.
+"""),
+
+83: _("""
+ le type des mailles des levres doit etre quadrangle ou triangle
+"""),
+
+84: _("""
+ %(k1)s cham_no inexistant
+"""),
+
+85: _("""
+ initial point nm out of domain
+"""),
+
+86: _("""
+ ndicho .gt. 10000
+"""),
+
+87: _("""
+ bad definition of mp1 and mp2
+"""),
+
+88: _("""
+ le fond de fissure ne doit etre defini que par un noeud ( revoir le group_no )
+"""),
+
+89: _("""
+ le fond de fissure ne doit etre defini que par un noeud
+"""),
+
+
+
+
+
+
+
+
+91: _("""
+ mot cle fond_fiss obligatoire
+"""),
+
+92: _("""
+ le fond de fissure ne doit etre defini que par un noeud ( revoir fond_fiss )
+"""),
+
+93: _("""
+ %(k1)s n'est pas un group_no ou un group_ma
+"""),
+
+94: _("""
+ arret sur erreur(s) utilisateur.
+"""),
+
+95: _("""
+ les mailles des levres doivent etre lineiques
+"""),
+
+96: _("""
+ erreur : la levre superieure possede une maille repetee 2 fois : maille %(k1)s . revoir les donnees
+"""),
+
+97: _("""
+ erreur : la levre inferieure possede une maille repetee 2 fois : maille %(k1)s . revoir les donnees
+"""),
+
+98: _("""
+ erreur : la levre inferieure et la levre superieure ont une maille surfacique en commun. revoir les donnees
+"""),
+
+99: _("""
+ probleme dans le calcul de la normale a la fissure
+"""),
+}
--- /dev/null
+#@ MODIF elements2 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+2: _("""
+ le mot cle normale doit comporter 3 composantes
+"""),
+
+3: _("""
+ le degre du polynome doit etre au plus egal a 7
+"""),
+
+4: _("""
+ probleme dans rinf et rsup
+"""),
+
+5: _("""
+ le mot cle dtan_orig doit comporter 3 composantes
+"""),
+
+6: _("""
+ le mot cle dtan_extr doit comporter 3 composantes
+"""),
+
+7: _("""
+ le mot cle vect_grno_orig doit comporter 2 groupes de points
+"""),
+
+8: _("""
+ le mot cle vect_grno_extr doit comporter 2 groupes de points
+"""),
+
+9: _("""
+ melang1 seg2 et seg3 : les mailles du fond de fissure doivent etre du meme type
+"""),
+
+10: _("""
+ le groupe de noeuds %(k1)s definissant la fissure n'est pas ordonne
+"""),
+
+11: _("""
+ arret sur erreur utilisateur: deux group_no consecutifs incoherents
+"""),
+
+12: _("""
+ les mailles du fond de fissure doivent etre du type segment
+"""),
+
+13: _("""
+ melang2 seg2 et seg3 : les mailles du fond de fissure doivent etre du meme type
+"""),
+
+14: _("""
+ arret sur erreur utilisateur: deux mailles dufond de fissure sont non consecutives dans la numerotation des noeuds
+"""),
+
+15: _("""
+ arret sur erreur utilisateur: 2 group_ma du fond de fissure sontnon consecutifs dans la numerotation des noeuds
+"""),
+
+16: _("""
+ les mailles des levres doivent etre du type quadrangle ou triangle
+"""),
+
+17: _("""
+ melang3 seg2 et seg3 : les mailles du fond de fissure doivent etre du meme type
+"""),
+
+18: _("""
+ la liste de noeuds definissant la fissure n'est pas ordonnee
+"""),
+
+19: _("""
+ melang4 seg2 et seg3 : les mailles du fond de fissure doivent etre du meme type
+"""),
+
+20: _("""
+ arret sur erreur(s) utilisateur: deux mailles du fond de fissure sont non consecutives dans la numerotation des noeuds
+"""),
+
+21: _("""
+ erreur : le fond de fissure possede un noeud repete 2 fois : noeud %(k1)s . revoir les donnees
+"""),
+
+22: _("""
+ les mailles du fond_inf et du fond_sup sont de type different
+"""),
+
+
+
+
+
+
+
+
+24: _("""
+ le noeud %(k1)s n appartient pas au fond de fissure
+"""),
+
+25: _("""
+ le fond de fissure n est pas complet
+"""),
+
+26: _("""
+ pb prgm
+"""),
+
+27: _("""
+ no intersection found
+"""),
+
+28: _("""
+ indc = 1 (complet : translation et rotation) ou indc = 0 (incomplet : translation seulement ) obligatoirement.
+"""),
+
+29: _("""
+ element faisceau homogeneise non prevu
+"""),
+
+
+
+
+
+
+31: _("""
+ elrefe non prevu
+"""),
+
+32: _("""
+ comportement non trouve: %(k1)s
+"""),
+
+33: _("""
+ pas de dilatation thermique orthotrope pour coque_3d
+"""),
+
+34: _("""
+ les vecteurs sont au nombre de 1 ou 2
+"""),
+
+35: _("""
+ normale nulle !
+"""),
+
+36: _("""
+ le type d'element : %(k1)s n'est pas traite.
+"""),
+
+37: _("""
+ pas de zero, convergence impossible
+"""),
+
+38: _("""
+ -> L'option ANGL_AXE n'est pas prise en compte en 2D mais seulement
+ en 3D.
+ -> Risque & Conseil :
+ Ce mot clé utilisé dans l'opérateur AFFE_CARA_ELEM (MASSIF), permet
+ de définir des axes locaux pour lesquels on utilise une propriété de
+ symétrie de révolution, ou d'isotropie transverse. En 2D, on peut définir
+ un repère d'orthotropie via ANGL_REP.
+"""),
+
+39: _("""
+ loi lema_seuil non implemente avec les poutres multi fibres
+"""),
+
+40: _("""
+ on ne sait pas integrer avec %(k1)s caracteristiques par fibre
+"""),
+
+41: _("""
+ cas avec inerties des fibres non programme
+"""),
+
+42: _("""
+ " %(k1)s " nom d'element inconnu.
+"""),
+
+43: _("""
+ noeuds confondus pour un element: %(k1)s
+"""),
+
+44: _("""
+ option de matrice de masse %(k1)s inconnue
+"""),
+
+45: _("""
+ on n'a pas trouver de variable interne correspondante a la deformation plastiqueequivalente cumulee
+"""),
+
+46: _("""
+ on ne traite pas les moments
+"""),
+
+47: _("""
+ l'option " %(k1)s " est inconnue
+"""),
+
+48: _("""
+ type de poutre inconnu
+"""),
+
+49: _("""
+ charge repartie variable non admise sur un element courbe.
+"""),
+
+50: _("""
+ charge repartie variable non admise sur un element variable.
+"""),
+
+51: _("""
+ on ne peut pas imposer de charges reparties suiveuses de type vitesse de vent sur les poutres courbes.
+"""),
+
+52: _("""
+ on ne peut pas imposer de charges reparties suiveuses sur les poutres courbes.
+"""),
+
+53: _("""
+ un champ de vitesse de vent est impose sans donner un cx dependant de la vitesse sur une des poutres.
+"""),
+
+54: _("""
+ g est nul mais pas e
+"""),
+
+55: _("""
+ section circulaire uniquement
+"""),
+
+56: _("""
+ pour l'instant on ne fait pas le calcul de la matrice de masse d'un element de plaque q4g excentre.
+"""),
+
+57: _("""
+ pour l'instant on ne peut pas excentrer les elements q4g .
+"""),
+
+58: _("""
+ echec de convergence dans l'inversion du systeme par newton-raphson.
+"""),
+
+59: _("""
+ pb
+"""),
+
+60: _("""
+ mauvaise orientation de l element !
+"""),
+
+61: _("""
+ " %(k1)s " nom d'option non reconnue
+"""),
+
+62: _("""
+ ! pb rcvala rhocp !
+"""),
+
+63: _("""
+ ! comportement non trouve !
+"""),
+
+64: _("""
+ ! pb rccoma rhocp !
+"""),
+
+65: _("""
+ ! deltat: div par zero !
+"""),
+
+66: _("""
+ ! r axi: div par zero !
+"""),
+
+67: _("""
+ option non traitee
+"""),
+
+68: _("""
+ une deformation initiale est presente dans la charge : incompatible avec la contrainte initiale sigma_init
+"""),
+
+69: _("""
+ relation de comportement non traite
+"""),
+
+70: _("""
+ option non valide
+"""),
+
+71: _("""
+ comp_elas non programme pour les modelisations dkt. il faut utiliser comp_incr.
+"""),
+
+72: _("""
+ -> La réactualisation de la géométrie (DEFORMATION='PETIT_REAC' sous
+ le mot clé COMP_INCR) est déconseillée pour les éléments de type plaque. Les
+ grandes rotations ne sont pas modélisées correctement.
+ -> Risque & Conseil :
+ En présence de grands déplacements et grandes rotations, il est préférable
+ d'utiliser la modélisation COQUE_3D, avec DEFORMATION='GREEN_GR'
+"""),
+
+73: _("""
+ comportement non traite: %(k1)s
+"""),
+
+74: _("""
+ %(k1)s non implante.
+"""),
+
+75: _("""
+ option "sief_elno_elga" non implantee pour la deformation "green_gr"
+"""),
+
+76: _("""
+ la nature du materiau %(k1)s n'est pas traitee.
+"""),
+
+77: _("""
+ option : %(k1)s interdite
+"""),
+
+78: _("""
+ element de bord pas encore programme
+"""),
+
+79: _("""
+ probleme eventuel dans le calcul des pressions sur les faces x-fem
+"""),
+
+80: _("""
+ elements de poutre noeuds confondus pour un element: %(k1)s
+"""),
+
+81: _("""
+ elements de poutre section variable affine :seul rectangle plein disponible.
+"""),
+
+82: _("""
+ elements de poutre section variable homothetique : l'aire initiale est nulle.
+"""),
+
+83: _("""
+ poutre section variable/constante passage par section homothetique avec a1 = a2
+"""),
+
+84: _("""
+ elements de poutre l'option " %(k1)s " est inconnue
+"""),
+
+85: _("""
+ non prevu pour les sections rectangulaires
+"""),
+
+86: _("""
+ non prevu pour les sections generales
+"""),
+
+87: _("""
+ " %(k1)s " : option non traitee
+"""),
+
+88: _("""
+ element discret " %(k1)s " inconnu.
+"""),
+
+89: _("""
+ element discret (te0044): l'option " %(k1)s " est inconnue pour le type " %(k2)s "
+"""),
+
+90: _("""
+ comp_elas non valide
+"""),
+
+91: _("""
+ " %(k1)s " matrice de decharge non developpee
+"""),
+
+92: _("""
+ la loi dis_gricra doit etre utilisee avec deselements du type meca_dis_tr_l: element seg2 + modelisation dis_tr
+"""),
+
+93: _("""
+ longueurs diff. pour rigi et amor
+"""),
+
+94: _("""
+ longueurs diff. pour mass et amor
+"""),
+
+95: _("""
+ option de calcul invalide
+"""),
+
+96: _("""
+ erreur calcul de texnp1
+"""),
+
+97: _("""
+ erreur calcul de texn
+"""),
+
+98: _("""
+ erreur calcul de echnp1
+"""),
+
+99: _("""
+ erreur calcul de echn
+"""),
+}
--- /dev/null
+#@ MODIF elements3 Messages DATE 22/05/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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ erreur calcul de sigm1
+"""),
+
+2: _("""
+ erreur calcul de sigmn
+"""),
+
+3: _("""
+ erreur calcul de eps1
+"""),
+
+4: _("""
+ erreur calcul de epsn
+"""),
+
+5: _("""
+ erreur calcul de tpf1
+"""),
+
+6: _("""
+ erreur calcul de tpfn
+"""),
+
+8: _("""
+ erreur calcul de coenp1
+"""),
+
+9: _("""
+ erreur calcul de coen
+"""),
+
+10: _("""
+ on ne peut pas affecter la modelisation "axis_diag" aux elements de l'axe
+"""),
+
+11: _("""
+ -> Attention vous avez une loi de comportement inélastique et vous etes
+ en contraintes planes, la composante du tenseur de déformations EPZZ que
+ vous allez calculer n'est valable que tant que vous restez dans le
+ domaine élastique. Les autres composantes EPXX, EPYY, EPXY sont correctes.
+ -> Risque & Conseil :
+ Si le comportement est effectivement non linéaire, il ne faut pas utiliser
+ la valeur de EPZZ calculée par cette option.
+"""),
+
+12: _("""
+ e, nu, alpha dependent de la temperature, tgu differente de tgv
+"""),
+
+13: _("""
+ le calcul de dg n'a pas ete etendu a la plasticite !
+"""),
+
+
+
+
+
+
+
+
+15: _("""
+ nom d'element illicite
+"""),
+
+16: _("""
+ comportement: %(k1)s non implante
+"""),
+
+17: _("""
+ le materiau %(k1)s n'est pas connu. seuls sont admis les materiaux 'ther', 'ther_coqmu' et 'ther_coque' pour les coques thermiques .
+"""),
+
+18: _("""
+ le materiau %(k1)s n'est pas connu. seuls sont admis les materiaux 'ther' et 'ther_coqmu' pour le calcul des flux pour les coques thermiques .
+"""),
+
+19: _("""
+ l'option %(k1)s n'est disponible qu'avec des elements tetra ou hexa. or, la maille %(k2)s est de type %(k3)s .
+"""),
+
+20: _("""
+ la maille %(k1)s ne repond pas au critere geometrique sur les mailles hexa : les cotes opposes doivent etre paralleles
+"""),
+
+21: _("""
+ erreur lors de l appel a fointe
+"""),
+
+22: _("""
+ erreur dans le calcul de coef_f
+"""),
+
+
+
+
+
+
+
+
+24: _("""
+ matns mal dimensionnee
+"""),
+
+26: _("""
+ mauvaise definition des caracteristiques de la section
+"""),
+
+27: _("""
+ l'option " %(k1)s " n'est pas programmee
+"""),
+
+28: _("""
+ rigidite geometrique non definie pour les elements courbes.
+"""),
+
+29: _("""
+ force elementaire electrique non definie pourles elements courbes.
+"""),
+
+30: _("""
+ section non tubulaire pour mass_flui_stru
+"""),
+
+31: _("""
+ pas de valeur utilisateur pour rho
+"""),
+
+32: _("""
+ " %(k1)s " nom d'option inconnu.
+"""),
+
+33: _("""
+ option non disponible
+"""),
+
+34: _("""
+ seules les forces suiveuses de type vent definies par un evol_char sont autorisees
+"""),
+
+35: _("""
+ un champ de vitesse de vent est impose sans donner un cx dependant de la vitesse sur une des barres.
+"""),
+
+36: _("""
+ comp_incr non valide
+"""),
+
+37: _("""
+ relation : %(k1)s non implantee sur les cables
+"""),
+
+38: _("""
+ deformation : %(k1)s non implantee sur les cables
+"""),
+
+39: _("""
+ un champ de vitesse de vent est impose sans donner un cx dependant de la vitesse sur un des cables.
+"""),
+
+46: _("""
+ le parametre "pnosym" n'existe pas dans le catalogue de l'element %(k1)s .
+"""),
+
+47: _("""
+ la taille de la matrice non-symetrique en entree est fausse.
+"""),
+
+48: _("""
+ la taille de la matrice symetrique en sortie est fausse.
+"""),
+
+49: _("""
+ anisotropie non prevue pour coque1d
+"""),
+
+50: _("""
+ nombre de couches limite a 30 pour les coques 1d
+"""),
+
+
+
+
+
+
+54: _("""
+ la reactualisation de la geometrie (deformation : petit_reac sous le mot cle comp_incr) est deconseillee pour les elements de coque_1d.
+"""),
+
+55: _("""
+ nombre de couches limite a 10 pour les coques 1d
+"""),
+
+56: _("""
+ valeurs utilisateurs de rho ou de rof nulles
+"""),
+
+57: _("""
+ pas d elements lumpes pourhydratation
+"""),
+
+58: _("""
+ -> La réactualisation de la géométrie (DEFORMATION='PETIT_REAC' sous
+ le mot clé COMP_INCR) est déconseillée pour les éléments POU_D_T et POU_D_E.
+ -> Risque & Conseil :
+ En présence de grands déplacements et grandes rotations, avec une loi de comportement
+ non linéaire, il est préférable d'utiliser la modélisation POU_D_TGM
+ (poutre multi-fibres) avec DEFORMATION=REAC_GEOM. Si le comportement reste
+ élastique, il est également possible d'utiliser la modélisation POU_D_T_GD avec
+ DEFORMATION='GREEN_GR'.
+"""),
+
+59: _("""
+ le coefficient de poisson est non constant. la programmation actuelle n en tient pas compte.
+"""),
+
+60: _("""
+ noeuds confondus pour un element de poutre
+"""),
+
+61: _("""
+ loi %(k1)s indisponible pour les pou_d_e/d_t
+"""),
+
+62: _("""
+ noeuds confondus pour un element de barre
+"""),
+
+63: _("""
+ ne pas utiliser ther_lineaire avec des elements de fourier mais les cmdes developpees
+"""),
+
+64: _("""
+ erreur dans le calcul de coeh_f
+"""),
+
+65: _("""
+ chargements non nuls sur l'axe
+"""),
+
+66: _("""
+ option %(k1)s inattendue
+"""),
+
+67: _("""
+ element degenere:revoir le maillage
+"""),
+
+68: _("""
+ L'option CALC_K_G est incompatible avec les comportements incrémentaux, avec les comportement non
+ linéaires et avec la deformation GREEN.
+"""),
+
+69: _("""
+ on a pas pu calculer les derivees des fonctions singulieres car on se trouve sur le fond de fissure
+"""),
+
+70: _("""
+ il faut affecter les elements de bord (e et nu) pour le calcul des fic
+"""),
+
+
+
+
+
+
+
+
+
+
+
+73: _("""
+ option de calcul non valide
+"""),
+
+74: _("""
+ pour l'option "rice_tracey", la relation " %(k1)s " n'est pas admise
+"""),
+
+75: _("""
+ le materiau %(k1)s n'est pas autorise pour calculer les deformations plastiques : seuls les materiaux isotropes sont traites en plasticite.
+"""),
+
+76: _("""
+ couplage fluage/fissuration : la loi beton_double_dp ne peut etre couplee qu avec une loi de fluage de granger.
+"""),
+
+77: _("""
+ -> Attention vous etes en contraintes planes, et vous utilisez la loi
+ de comportement %(k1)s. La composante du tenseur des déformations
+ plastiques EPZZ est calculée en supposant l'incompressibilité des
+ déformations plastiques : EPZZ = -(EPXX + EPYY).
+ -> Risque & Conseil :
+ Vérifiez que cette expression est valide avec votre loi de comportement.
+
+"""),
+
+78: _("""
+ la reactualisation de la geometrie (deformation : petit_reac sous le mot cle comp_incr) est deconseillee pour les elements pou_d_tg .
+"""),
+
+79: _("""
+ tableau sous dimensionne (dvlp)
+"""),
+
+80: _("""
+ situation de contact impossible
+"""),
+
+81: _("""
+ option inconnue
+"""),
+
+82: _("""
+ vecteur sous dimensionne (dvlp)
+"""),
+
+83: _("""
+ dimension incorrecte (dvlp)
+"""),
+
+84: _("""
+ type maille inconnu
+"""),
+
+85: _("""
+ relation : %(k1)s non implantee sur les elements "pou_d_t_gd"
+"""),
+
+86: _("""
+ deformation : %(k1)s non implantee sur les elements "pou_d_t_gd"
+"""),
+
+87: _("""
+ rcvala ne trouve pas rho, qui est necessaire en dynamique
+"""),
+
+88: _("""
+ la masse volumique rho n'a pas ete definie
+"""),
+
+89: _("""
+ developpement non realise
+"""),
+
+90: _("""
+ option: %(k1)s non implante
+"""),
+
+91: _("""
+ calcul de la masse non implante pour les elements coque_3d en grandes rotations, deformation : green_gr
+"""),
+
+92: _("""
+ les comportements elastiques de type comp_elas ne sont pas disponibles pour la modelisation dktg.
+"""),
+
+93: _("""
+ deformation : %(k1)s non implantee sur les elements coque_3d en grandes rotations. deformation : green_gr obligatoirement
+"""),
+
+94: _("""
+ -> La réactualisation de la géométrie (DEFORMATION='PETIT_REAC' sous
+ le mot clé COMP_INCR) est déconseillée pour les éléments COQUE_3D.
+ -> Risque & Conseil :
+ Le calcul des déformations à l'aide de PETIT_REAC n'est qu'une
+ approximation des hypothèses des grands déplacements. Elle nécessite
+ d'effectuer de très petits incréments de chargement. Pour prendre en
+ compte correctement les grands déplacements et surtout les grandes
+ rotations, il est recommandé d'utiliser DEFORMATION='GREEN_GR'.
+
+"""),
+
+95: _("""
+ nume_couche incorrect
+"""),
+
+96: _("""
+ l'option est incompatible avec les comportements incrementaux ainsi que la deformation green
+"""),
+
+
+
+
+
+
+98: _("""
+ comportement coeur homogeneise inexistant
+"""),
+
+99: _("""
+ : seule les poutres a sections constantes sont admises !
+"""),
+}
--- /dev/null
+#@ MODIF elements4 Messages DATE 04/06/2007 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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ erreur dans le calcul de pres_f
+"""),
+
+2: _("""
+ pour l'option "indic_ener", les seules relations admises sont "vmis_isot_line" et "vmis_isot_trac" .
+"""),
+
+3: _("""
+ pour l'option "indic_seuil", les seules relations admises sont "vmis_isot_line", "vmis_isot_trac" et "vmis_cine_line" .
+"""),
+
+4: _("""
+ ! pb rcvala biot_coef %(k1)s
+"""),
+
+6: _("""
+ le type du champ de contraintes est incompatible avec l'option : %(k1)s
+"""),
+
+7: _("""
+ pas de contraintes dans pcontgp
+"""),
+
+8: _("""
+ pas de champ endo_elga dans ptriagp
+"""),
+
+9: _("""
+ pas de champ vari_elga dans pvarimr
+"""),
+
+10: _("""
+ pas de champ vari_elga dans pvaripr
+"""),
+
+11: _("""
+ option non traitée %(k1)s
+ """),
+
+12: _("""
+ nombre total de sous-éléments limité a 32.
+"""),
+
+13: _("""
+ nombre total de points d'intersection limité a 11.
+"""),
+
+14: _("""
+ type de maille non valide pour le post-traitement des éléments xfem
+"""),
+
+15: _("""
+ deformation : %(k1)s non implantée sur les éléments "pou_d_tgm" : utiliser PETIT ou REAC_GEOM
+"""),
+
+16: _("""
+ option "vari_elno_elga" impossible actuellement
+"""),
+
+17: _("""
+ seuls comportements autorises :"elas" et "vmis_isot_trac"
+"""),
+
+18: _("""
+ pb de statut de contact
+"""),
+
+19: _("""
+ lsn non nul sur la surface.
+"""),
+
+20: _("""
+ pour l'élément de poutre " %(k1)s " l'option " %(k2)s " est invalide
+"""),
+
+21: _("""
+ pour un élément de poutre noeuds confondus : %(k1)s
+"""),
+
+22: _("""
+ les poutres à section variable ne sont pas traitées.
+"""),
+
+23: _("""
+ comp_incr non disponible pour les elements enrichis avec x-fem.
+"""),
+
+30: _("""
+ option refe_forc_noda plus tard...
+"""),
+
+31: _("""
+ dfdi mal dimensionnée
+"""),
+
+32: _("""
+ vous utilisez le mot clé liaison_elem avec l'option coq_pou: l'épaisseur des éléments de bord de coque n'a pas été affectée.
+"""),
+
+33: _("""
+ l'epaisseur des éléments de bord de coque est negative ou nulle.
+"""),
+
+34: _("""
+ le jacobien est nul.
+"""),
+
+35: _("""
+ matns() sous-dimensionné
+"""),
+
+36: _("""
+ pr() sous-dimensionne
+"""),
+
+37: _("""
+ nive_couche ne peut etre que "moy"
+"""),
+
+38: _("""
+ option %(k1)s non active pour un élément de type %(k2)s
+"""),
+
+39: _("""
+ option %(k1)s : incompatibilité des deux champs d entrée
+"""),
+
+40: _("""
+ le nombre de ddl est trop grand
+"""),
+
+41: _("""
+ le nombre de ddl est faux
+"""),
+
+42: _("""
+ nom de type élément inattendu
+"""),
+
+43: _("""
+ comp. elastique inexistant
+"""),
+
+44: _("""
+ l'option " %(k1)s " est interdite pour les tuyaux
+"""),
+
+45: _("""
+ l'option " %(k1)s " en repère local est interdite pour les tuyaux : utiliser le repère global
+"""),
+
+46: _("""
+ le nombre de couches et de secteurs doivent etre supérieurs a 0
+"""),
+
+47: _("""
+ composante %(k1)s non traitée, on abandonne
+"""),
+
+48: _("""
+ champ %(k1)s non traité, on abandonne
+"""),
+
+49: _("""
+ l'option " %(k1)s " est non prévue
+"""),
+
+50: _("""
+ angle compris entre 0 et deuxpi
+"""),
+
+51: _("""
+ nume_sect incorrect
+"""),
+
+52: _("""
+ mauvaise option
+"""),
+
+53: _("""
+ ep/r > 0.2 modi_metrique pas adapté
+"""),
+
+54: _("""
+ ep/r > 0.2 modi_metrique=non pas adapté
+"""),
+
+55: _("""
+ alpha est pris egal a 0
+"""),
+
+56: _("""
+ famille inexistante %(k1)s
+"""),
+
+57: _("""
+ indn = 1 (intégration normale) ou indn = 0 (integration réduite) obligatoirement.
+"""),
+
+58: _("""
+ le code " %(k1)s " est non prévu. code doit etre = "gl" ou "lg"
+"""),
+
+59: _("""
+ nom d'élément fini incompatible
+"""),
+
+60: _("""
+ pb calcul des derivées des fonctions singulières sur le fond de fissure
+"""),
+
+61: _("""
+ préconditions non remplies
+"""),
+
+62: _("""
+ erreur: élément non 2d
+"""),
+
+63: _("""
+ l'option %(k1)s n'est pas disponible pour le comportement %(k2)s
+"""),
+
+64: _("""
+ Il est impossible de calculer la normale au noeud %(k1)s de la maille %(k2)s.
+ Des aretes doivent etre confondues.
+"""),
+
+65: _("""
+ Comportement inattendu : %(k1)s.
+"""),
+
+66: _("""
+ Il est impossible de calculer la contrainte d'arc.
+ La normale à l'élément et le vecteur obtenu à partir du mot-clé ANGL_REP sont colinéaires.
+"""),
+
+68: _("""
+ Nombre d'itérations internes insuffisant.
+"""),
+
+69: _("""
+ ! pb récuperation donnée matériau dans thm_liqu %(k1)s !
+"""),
+
+72: _("""
+ rcvala ne trouve pas nu, qui est nécessaire pour l'élément MECA_HEXS8
+"""),
+
+73: _("""
+ élément MECA_HEXS8:COMP_ELAS non implanté, utiliser COMP_INCR RELATION='ELAS'
+"""),
+
+74: _("""
+ Attention l'élément MECA_HEXS8 ne fonctionne correctement que sur les parallélépipèdes.
+ Sur les elements quelconques on peut obtenir des résultats faux.
+"""),
+
+75: _("""
+ la maille de numero: %(i1)d appartient à plusieurs sous-domaines! %(i2)d
+"""),
+
+76: _("""
+ la maille du modèle de numéro: %(i1)d n appartient à aucun sous-domaine ! %(i2)d
+"""),
+
+77: _("""
+ numero de couche %(i1)d
+ trop grand par rapport au nombre de couches autorisé pour la maille %(k1)s
+"""),
+
+78: _("""
+ ! pb recuperation donnée matériau dans thm_diffu %(k1)s !
+"""),
+
+79: _("""
+ la loi de comportement n'existe pas pour la modélisation dktg : %(k1)s
+"""),
+
+80: _("""
+
+ attention : l élément de plaque quad4 défini sur la maille : %(k1)s n est pas plan et peut conduire a des résultats faux.
+ distance au plan : %(r1)f
+"""),
+
+81: _("""
+ manque le paramètre %(k1)s pour la maille %(k2)s
+"""),
+
+83: _("""
+ utiliser "stat_non_line" température inf: %(r1)f température moy: %(r2)f
+ température sup: %(r3)f
+"""),
+
+84: _("""
+ famille non disponible élément de référence %(k1)s
+ famille %(k2)s
+"""),
+
+88: _("""
+ elrefe non disponible élément de référence %(k1)s
+"""),
+
+90: _("""
+ elrefe mal programme maille %(k1)s type %(k2)s nb noeuds %(i1)d
+ nb noeuds pour le gano %(i2)d
+"""),
+
+91: _("""
+ ! le calcul de cet estimateur !! ne tient pas compte d'éventuelles ! %(i1)d
+ ! conditions limites non linéaires ! %(i2)d
+"""),
+
+92: _("""
+ la pression doit etre nulle pour la maille %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+98: _("""
+ la contrainte equivalente est nulle pour la maille %(k1)s
+"""),
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF elements5 Messages DATE 06/04/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+
+
+2: _("""
+ tuyau : le nombre de couches est limite a %(i1)d
+"""),
+
+3: _("""
+ tuyau : le nombre de secteurs est limite a %(i1)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8: _("""
+ Vous voulez utiliser l'indicateur de convergence RESI_REFE_RELA mais vous n'avez pas
+ renseigné le mot-clé %(k1)s .
+"""),
+
+9: _("""
+ Employez la modélisation spécifique aux grandes déformations XX_INCO_GD
+"""),
+
+10: _("""
+ La modélisation GRAD_VARI n'est plus disponible en grandes déformations. Pour Rousselier
+ version SIMO_MIEHE, vous pouvez faire du non-local en utilisant la modélisation XX_INCO_GD
+ et en définissant C_GONF<>0 sous l'opérande NON_LOCAL de DEFI_MATERIAU
+"""),
+
+11: _("""
+ Le rayon R_SUP (ou R_SUP_FO) doit obligatoirement etre supérieur au rayon R_INF
+ (resp. R_INF_FO).
+"""),
+
+12: _("""
+ Le noeud %(k1)s du fond de fissure n est rattaché à aucune maille surfacique
+ de la lèvre supérieure : vérifier les groupes de mailles.
+"""),
+
+13: _("""
+ Le noeud %(k1)s du fond de fissure n est rattaché à aucune maille surfacique
+ de la lèvre inférieure : vérifier les groupes de mailles.
+"""),
+
+14: _("""
+ Les noeuds %(k1)s de FOND_INF et %(k2)s de FOND_SUP ne sont pas en vis à vis.
+"""),
+
+15: _("""
+ FONFIS - occurence %(i1)s : les objets précédemment évoqués sont inexistants
+ ou de type incompatible.
+"""),
+
+16: _("""
+ FONFIS - occurence %(i1)s : les mailles spécifiées ne permettent pas de définir
+ une ligne continue.
+ Conseil (si opérateur DEFI_FOND_FISS) : vérifier le groupe de maille du fond de fissure.
+"""),
+
+17: _("""
+ FONFIS - Trop de noeuds dans le groupe de noeuds %(k1)s.
+ --> Noeud utilisé : %(k2)s
+"""),
+
+18: _("""
+ FONFIS - Trop de mailles dans le groupe de mailles GROUP_MA_ORIG.
+ --> Maille utilisée : %(k1)s
+"""),
+
+19: _("""
+ FONFIS - Occurence %(i1)s : maille %(k1)s inexistante.
+"""),
+
+20: _("""
+ FONFIS - Occurence %(i1)s : maille %(k1)s non linéique.
+"""),
+
+21: _("""
+ FONFIS - Occurence %(i1)s : mélange de SEG2 et de SEG3 (maille %(k1)s).
+"""),
+
+22: _("""
+ Erreur, le nombre de noeuds d'un element de joint 3D n'est pas correct
+"""),
+
+
+23: _("""
+ Erreur, le nombre de points de Gauss d'un element de joint 3D n'est pas correct
+"""),
+
+24: _("""
+ le nombre de mailles du modele %(i1)d est différent de la somme des mailles des sous-domaines %(i2)d
+"""),
+25: _("""
+ le sous-domaine n %(i1)d n'est pas renseigné ou vide dans DEFI_PART_OPS
+"""),
+
+
+
+
+
+
+
+
+28: _("""
+ le modele comporte %(i1)d mailles de plus que l'ensemble des sous-domaines
+"""),
+29: _("""
+ le modele comporte %(i1)d mailles de moins que l'ensemble des sous-domaines
+"""),
+}
--- /dev/null
+#@ MODIF factor Messages DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+#-----------------------------------------------------------------------------------------------
+10: _("""
+Matrice non factorisable :
+ pivot presque nul à la ligne : %(i1)d
+ nombre de décimales perdues : %(i2)d
+"""),
+
+#-----------------------------------------------------------------------------------------------
+11: _("""
+Matrice non factorisable :
+ pivot vraiment nul à la ligne : %(i1)d
+"""),
+
+#-----------------------------------------------------------------------------------------------
+20: _("""
+ -> Matrice non factorisable :
+ Le pivot est presque nul à la ligne %(i1)d pour le noeud %(k1)s et
+ la composante %(k2)s.
+ Pour information, le nombre de décimales perdues est de %(i2)d.
+
+ -> Conseil & Risque :
+ Il s'agit peut etre d'un mouvement de corps rigide mal bloqué.
+ Vérifiez les conditions aux limites.
+ Si vous faites du contact, il ne faut pas que la
+ structure ne "tienne" que par le contact.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+21: _("""
+Matrice non factorisable :
+ pivot vraiment nul à la ligne : %(i1)d
+ pour le noeud %(k1)s et la composante %(k2)s
+"""),
+
+
+#-----------------------------------------------------------------------------------------------
+30: _("""
+Matrice non factorisable :
+ pivot presque nul à la ligne : %(i1)d
+ nombre de décimales perdues : %(i2)d
+ Il s'agit sans doute d'une relation linéaire entre ddls surabondante.
+ La liste des noeuds concernés par cette relation est imprimée ci-dessus dans le fichier MESSAGE.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+31: _("""
+Matrice non factorisable :
+ pivot vraiment nul à la ligne : %(i1)d
+ Il s'agit sans doute d'une relation linéaire entre ddls surabondante.
+ La liste des noeuds concernés par cette relation est imprimée ci-dessus dans le fichier MESSAGE.
+"""),
+
+
+#-----------------------------------------------------------------------------------------------
+40: _("""
+Matrice non factorisable :
+ pivot presque nul à la ligne : %(i1)d
+ nombre de décimales perdues : %(i2)d
+ Il s'agit sans doute d'une relation de blocage surabondante.
+ blocage concerné : %(k4)s
+"""),
+
+#-----------------------------------------------------------------------------------------------
+41: _("""
+Matrice non factorisable :
+ pivot vraiment nul à la ligne : %(i1)d
+ Il s'agit sans doute d'une relation de blocage surabondante.
+ blocage concerné : %(k4)s
+"""),
+
+#-----------------------------------------------------------------------------------------------
+42: _("""
+Matrice non factorisable :
+ Le solveur MUMPS considère la matrice comme numériquement singulière.
+ (Mais il n'en dit pas plus)
+
+Conseil :
+ Il s'agit peut-etre d'un manque de conditions aux limites,
+ ou au contraire, de redondances entre de trop nombreuses conditions.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+51: _("""
+Solveur MUMPS interdit ici.
+Causes possibles :
+ - contact/frottement discret
+ - STAT_NON_LINE / FLAMBEMENT
+"""),
+
+#-----------------------------------------------------------------------------------------------
+52: _("""
+Solveurs LDLT et MULT_FRONT seuls permis ici.
+Causes possibles :
+ - contact/frottement discret
+ - STAT_NON_LINE / FLAMBEMENT
+"""),
+
+#-----------------------------------------------------------------------------------------------
+53: _("""
+Solveur MUMPS :
+ Mumps manque de mémoire lors de la factorisation de la matrice.
+Solution :
+ Il faut augmenter la valeur du mot clé SOLVEUR/PCENT_PIVOT.
+Remarque : on a le droit de dépasser la valeur 100.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+54: _("""
+Solveur MUMPS :
+ Mumps manque de mémoire lors de la factorisation de la matrice.
+Solution :
+ Il faut augmenter la mémoire donnée à Mumps.
+ Pour cela, il faut diminuer le pourcentage de mémoire donné à JEVEUX.
+ C'est à dire diminuer la valeur du paramètre "mem_aster" du menu "Options" d'ASTK.
+Remarque :
+ On peut par exemple choisir mem_aster=50 ce qui correspond à un partage
+ équitable (50/50) de la mémoire entre JEVEUX et Mumps.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+55: _("""
+Solveur MUMPS :
+ Problème dans le solveur MUMPS.
+ Le code retour de mumps (INFOG(1)) est : %(i1)d
+Solution :
+ Consulter le manuel d'utilisation de Mumps.
+ Prévenir l'équipe de développement de Code_Aster.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+56: _("""
+Solveur MUMPS :
+ Il ne faut pas utiliser TYPE_RESOL = '%(k1)s'
+ Pour une matrice non-symétrique.
+Solution :
+ Il faut utiliser TYPE_RESOL = 'NONSYM' (ou 'AUTO').
+"""),
+
+#-----------------------------------------------------------------------------------------------
+57: _("""
+Solveur MUMPS :
+ La solution du système linéaire est trop imprécise :
+ Erreur calculée : %(r1)g
+ Erreur acceptable : %(r2)g (RESI_RELA)
+Solution :
+ On peut augmenter la valeur du mot clé SOLVEUR/RESI_RELA.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+58: _("""
+Solveur MUMPS :
+ La matrice est singulière.
+Solution :
+ On peut essayer d'aller plus loin en précisant : STOP_SINGULIER='NON'
+"""),
+
+#-----------------------------------------------------------------------------------------------
+59: _("""
+Solveur MUMPS :
+ La matrice est déjà factorisée. On ne fait rien.
+Solution :
+ Il y a sans doute une erreur de programmation.
+ Contactez l'assistance.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+60: _("""
+Solveur MUMPS :
+ Limite atteinte : le solveur Mumps est utilisé par plus de 5 matrices simultanément.
+Solution :
+ Il faut corriger le programme (PARAMETER (NMXINS=5) dans amumps.f)
+ Contactez l'assistance.
+"""),
+
+#-----------------------------------------------------------------------------------------------
+61: _("""
+Erreur Programmeur lors de la résolution d'un système linéaire :
+ La numérotation des inconnues est incohérente entre la matrice et le second membre.
+ Matrice : %(k1)s
+ Second membre : %(k2)s
+
+ Si solveur : 'Feti' : numéro du sous-domaine (ou domaine global) : %(i1)d
+"""),
+
+#-----------------------------------------------------------------------------------------------
+#-----------------------------------------------------------------------------------------------
+}
--- /dev/null
+#@ MODIF fermetur Messages DATE 07/06/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.
+# ======================================================================
+def _(x) : return x
+
+cata_msg={
+
+
+1: _("""
+ Erreur :
+ le solveur "MUMPS" n'est pas installé sur cette machine.
+"""),
+
+2: _("""
+ Erreur :
+ la bibliothèque "MED" n'est pas installée sur cette machine.
+"""),
+
+3: _("""
+ Erreur :
+ la bibliothèque "HDF5" n'est pas installée sur cette machine.
+"""),
+
+4: _("""
+ Erreur :
+ la bibliothèque "ZMAT" n'est pas installée sur cette machine.
+"""),
+
+5: _("""
+ Erreur de programmation :
+ On essaye d'utiliser un operateur (op0xxx) qui n'est pas encore programmé.
+"""),
+
+6: _("""
+ Erreur de programmation :
+ On essaye d'utiliser un operateur (ops0xx) qui n'est pas encore programmé.
+"""),
+
+
+7: _("""
+ Erreur :
+ le logiciel "SCOTCH" n'est pas installé sur cette machine.
+"""),
+
+8: _("""
+ Erreur de programmation :
+ On essaye d'utiliser une routine de calcul élémentaire (te0xxx)
+ qui n'est pas encore programmée.
+"""),
+
+9: _("""
+ Erreur de programmation :
+ On essaye d'utiliser une routine d'initialisation élémentaire (ini0xx)
+ qui n'est pas encore programmée.
+"""),
+
+
+}
--- /dev/null
+#@ MODIF fonct0 Messages DATE 30/05/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1 : _("""
+Le fichier %(k1)s existe déjà, on écrit à la suite.
+"""),
+
+2 : _("""
+Il n'y a pas de règles d'interpolation pour LIST_PARA/LIST_RESU,
+LIST_PARA/LIST_RESU ne peut donc apparaitre qu'une seule fois
+et à la première occurence de COURBE.
+"""),
+
+3 : _("""
+LIST_PARA et LIST_RESU n'ont pas la meme taille.
+"""),
+
+4 : _("""
+FONC_X/FONC_Y ne peuvent pas etre des nappes !
+"""),
+
+5 : _("""
+Au format 'TABLEAU', FONC_X/FONC_Y ne peut apparaitre qu'une seule fois
+et à la première occurence de COURBE
+"""),
+
+6 : _("""
+Il n'y a pas de règles d'interpolation pour ABSCISSE/ORDONNEE,
+ABSCISSE/ORDONNEE ne peut donc apparaitre qu'une seule fois
+et à la première occurence de COURBE.
+"""),
+
+7 : _("""
+ABSCISSE et ORDONNEE n'ont pas la meme taille.
+"""),
+
+8 : _("""
+Format inconnu : %(k1)s
+"""),
+
+# le message 9 est parfois suivi du message 10
+9 : {
+ 'message' : _("""
+Erreur lors de l'interpolation de la fonction '%(k1)s'.
+"""),
+ 'context' : { 'CONCEPT' : 'k1' },
+},
+
+10: _("""
+ sur la maille '%(k1)s'
+"""),
+
+11: _("""
+L'interpolation de la fonction '%(k1)s' n'est pas autorisée.
+Le type d'interpolation de la fonction vaut 'NON'
+
+ -> Risque & Conseil :
+ Voir le mot-clé INTERPOL des commandes qui créent des fonctions.
+"""),
+
+12: _("""
+Une erreur s'est produite dans la recherche de l'intervalle des abscisses contenant la valeur %(r1)s.
+
+ -> Risque & Conseil :
+ Vérifiez que le type d'interpolation de la fonction ne vaut pas 'NON'
+ (mot-clé INTERPOL des commandes qui créent des fonctions).
+"""),
+
+13: _("""
+Le type de la fonction '%(k1)s' est inconnu.
+Seules les fonctions, nappes, fonctions constantes peuvent etre traitées par FOINTE.
+
+ -> Debug :
+ le type est '%(k2)s'
+"""),
+
+14: _("""
+Il n'y a pas assez de paramètres pour évaluer la fonction.
+Seulement %(i1)d paramètre(s) sont fourni(s) alors que la fonction en réclame %(i2)d.
+"""),
+
+15: _("""
+Il y a des doublons dans la liste des paramètres fournis :
+ %(ktout)s
+"""),
+
+16: _("""
+Les paramètres nécessaires sont :
+ %(ktout)s
+"""),
+
+17: _("""
+Les paramètres fournis sont :
+ %(ktout)s
+"""),
+
+18: _("""
+La fonction n'a meme pas un point !
+"""),
+
+19: _("""
+On est hors du domaine de définition de la fonction.
+On ne peut pas interpoler la fonction pour cette abscisse car le prolongement à gauche est exclus.
+ abscisse demandée : %(r1)f
+ borne inférieure des abscisses : %(r2)f
+
+ -> Risque & Conseil :
+ Voir le mot-clé PROL_GAUCHE des commandes qui créent des fonctions.
+"""),
+
+20: _("""
+On est hors du domaine de définition de la fonction.
+On ne peut pas interpoler la fonction pour cette abscisse car le prolongement à droite est exclus.
+ abscisse demandée : %(r1)f
+ borne supérieure des abscisses : %(r2)f
+
+ -> Risque & Conseil :
+ Voir le mot-clé PROL_DROITE des commandes qui créent des fonctions.
+"""),
+
+21: _("""
+Erreur de programmation : type d'extrapolation inconnu.
+
+ -> Debug :
+ le type d'extrapolation est '%(k1)s'
+"""),
+
+22: _("""
+La fonction n'est définie qu'en un point. On ne peut pas l'interpoler en
+plus d'un point si le prolongement n'est pas constant des deux cotés.
+
+ -> Risque & Conseil :
+ Voir les mot-clés PROL_GAUCHE/PROL_DROITE des commandes qui créent des fonctions.
+"""),
+
+23: _("""
+La fonction n'est définie qu'en un point. On ne peut pas l'interpoler ailleurs
+qu'en ce point si le prolongement n'est pas constant des deux cotés.
+
+ -> Risque & Conseil :
+ Voir les mot-clés PROL_GAUCHE/PROL_DROITE des commandes qui créent des fonctions.
+"""),
+
+24: _("""
+On attend une fonction d'un seul paramètre.
+La fonction '%(k1)s' est une fonction de %(i1)d paramètres.
+"""),
+
+25: _("""
+Le type de la fonction '%(k1)s' est inconnu.
+Seules les fonctions, nappes, fonctions constantes et formules sont
+traitées par FOINTR.
+
+ -> Debug :
+ le type est '%(k2)s'
+"""),
+
+26: _("""
+ abscisse demandée : %(r1)f
+ intervalle trouvé : [%(r2)f, %(r3)f]
+"""),
+
+27: _("""
+Un problème d'interpolation a été rencontré.
+%(k1)s
+
+ -> Risque & Conseil :
+ Vérifier les valeurs fournies derrière le mot-clé 'INTERPOL' lors
+ de la création de cette(ces) fonction(s).
+
+ -> Debug :
+ %(k2)s
+"""),
+
+28: _("""
+Un problème concernant le nom des abscisses ou ordonnées a été rencontré.
+%(k1)s
+
+ -> Risque & Conseil :
+ Vérifier la valeur fournie derrière les mots-clés 'NOM_PARA'/'NOM_RESU' lors
+ de la création de cette(ces) fonction(s).
+
+ -> Debug :
+ %(k2)s
+"""),
+
+29: _("""
+Un problème concernant le prolongement de la (des) fonction(s) a été rencontré.
+%(k1)s
+
+ -> Risque & Conseil :
+ Vérifier la valeur fournie derrière les mots-clés 'PROL_GAUCHE'/'PROL_DROITE'
+ lors de la création de cette(ces) fonction(s).
+
+ -> Debug :
+ %(k2)s
+"""),
+
+30: _("""
+Une erreur s'est produite lors de l'opération.
+%(k1)s
+
+ -> Debug :
+ %(k2)s
+
+Remontée d'erreur (pour aider à l'analyse) :
+
+%(k3)s
+
+"""),
+
+}
--- /dev/null
+#@ MODIF grappefluide Messages DATE 16/05/2007 AUTEUR BOYERE E.BOYERE
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# ======================================================================
+
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ Carter/Mécanisme de levée : LAMEQI ou LAMML n'ont pas convergé à l'itération %(i1)d (altitude %(r1)f m).
+"""),
+
+2: _("""
+ Manche thermique adaptateur : LAMEQM ou LAMA n'ont pas convergé à l'itération %(i1)d (altitude %(r1)f m).
+"""),
+
+3: _("""
+ Mécanisme - erreur résiduelle dans le calcul du mécanisme de commande %(r1)f > %(k1)s (altitude %(r2)f).
+"""),
+
+4: _("""
+ résolution mal terminée - code retour %(i1)d pour l'itération %(i2)d (altitude %(r1)f m)
+"""),
+
+5: _("""
+ erreur résiduelle dans la résolution du modèle du dashpot
+ somme(f) > 1.0d-3 , somme(f) = %(r1)f (altitude %(r8)% m)
+ f = %(r2)f + %(r3)f + %(r4)f + %(r5)f + %(r6)f + %(r7)f
+"""),
+
+6: _("""
+ erreur résiduelle dans la résolution du modèle du tube guide
+ somme(f) > 1.0d-3 , somme(f) = %(r1)f (altitude %(r7)% m)
+ f = %(r2)f + %(r3)f + %(r4)f + %(r5)f + %(r6)f
+"""),
+
+7: _("""
+ lameq n'a pas convergé (altitude %(r1)f m)
+"""),
+
+8: _("""
+ aucun noeud n'est present dans la zone consideree 2 (altitude %(r1)f m)
+"""),
+
+9: _("""
+ aucun noeud n'est présent dans la zone considérée 1 (altitude %(r1)f m)
+"""),
+
+10: _("""
+ aucun noeud n'est présent dans la zone considérée 3 (altitude %(r1)f m)
+"""),
+
+11: _("""
+ Force fluide, grappe bloquée
+ - iteration %(i1)d , z = %(r1)f itération %(i2)d , z = %(r2)f
+ temps de chute compris entre %(r3)f et %(r4)f
+"""),
+
+12: _("""
+ Résidu dans la manchette : %(r1)f (altitude %(r2)f m)
+"""),
+
+13: _("""
+ CALCUL GRAPPE FLUIDE : C1 nul (altitude %(r1)f m)
+"""),
+}
--- /dev/null
+#@ MODIF indicateur Messages DATE 23/04/2007 AUTEUR GNICOLAS G.NICOLAS
+# -*- 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.
+# ======================================================================
+# RESPONSABLE GNICOLAS G.NICOLAS
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+Le choix TOUT = 'OUI' est obligatoire avec l'option %(k1)s.
+On ne peut pas faire de calcul de champ d'indicateur d'erreur sur des mailles
+ou des groupes de mailles car on doit connaitre tous les voisins.
+"""),
+
+2: _("""
+Le champ de contraintes n'a pas été calculé sur tout le modèle.
+On ne peut pas calculer l'option %(k1)s pour le numéro d'ordre %(k2)s.
+"""),
+
+3: _("""
+On ne peut pas calculer un indicateur d'erreur spatial à l'instant initial.
+Revoyez votre liste d'instants de calcul.
+Conseil : Faites-la démarrer au premier instant suivant l'instant initial.
+"""),
+
+4: _("""
+Attention : on n'a pas pu récupérer le parametre theta dans le resultat %(k1)s.
+La valeur prise par défaut pour theta est 0.57
+"""),
+
+5: _("""
+Attention : récupération d'une valeur de theta illicite dans le resultat %(k1)s.
+La valeur prise par défaut pour theta est 1.
+"""),
+
+6: _("""
+Le calcul de l'indicateur d erreur ne sait pas traiter les charges du type de %(k1)s.
+"""),
+
+7: _("""
+Le choix %(k1)s apparait au moins dans 2 charges.
+"""),
+
+8: _("""
+Probleme sur les charges. Consulter la documentation
+"""),
+
+11: _("""
+Impossible de récupérer les paramètres temporels.
+"""),
+
+20: _("""
+perm_in: division par zéro
+"""),
+
+21: _("""
+La %(k1)s caractéristique est nulle. On risque la division par zéro.
+"""),
+
+31: _("""
+deltat: division par zéro
+"""),
+
+38: _("""
+type d'element %(k1)s inconnu
+"""),
+
+39: _("""
+rho liquide: division par zéro
+"""),
+
+41: _("""
+Il faut renseigner le mot-clef comp_incr avec elas et liqu_satu
+pour calculer l'indicateur d'erreur temporelle.
+"""),
+
+42: _("""
+Vous n'utilisez pas une modélisation hm saturée élastique.
+"""),
+
+43: _("""
+pression caractéristique : division par zéro
+"""),
+
+44: _("""
+module de Young non défini : division par zéro
+"""),
+
+48: _("""
+Vous utilisez une modélisation THM et vous n'avez pas renseigné
+correctement le mot-clé ERRE_THM.
+Conseil : Donner une longueur et une pression caractéristique
+"""),
+
+90: _("""
+La condition %(k1)s est bizarre.
+"""),
+
+91: _("""
+On ne sait pas traiter la condition %(k1)s.
+"""),
+
+98: _("""
+L'option %(k1)s est invalide.
+"""),
+
+99: _("""
+Erreur de programmation dans %(k1)s
+L'option %(k2)s ne correspond pas à une option de calcul d'indicateur d'erreur.
+"""),
+
+}
--- /dev/null
+#@ MODIF intemail Messages DATE 03/04/2007 AUTEUR VIVAN L.VIVAN
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ on a un arc ouvert et le "NOEUD_ORIG" n'est pas une extrémité
+"""),
+
+2: _("""
+ le "NOEUD_ORIG" ne fait pas parti du chemin
+"""),
+
+3: _("""
+ il faut que les angles soient croissants
+"""),
+
+4: _("""
+ il faut que les angles soient dans l'intervalle [-180,180]
+"""),
+
+5: _("""
+ il faut un rayon strictement positif !
+"""),
+
+6: _("""
+ face illégale pour une maille de type %(k1)s
+"""),
+
+7: _("""
+ type de maille non traitée
+"""),
+
+8: _("""
+ type d'intersection non traité: %(k1)s
+"""),
+
+9: _("""
+ détection de deux sommets confondus dans une meme face
+"""),
+
+10: _("""
+ la commande "INTE_MAIL_2D" suppose que le maillage est plan (z=cste) ce qui n'est pas le cas ici.
+ utilisez la commande "INTE_MAIL_3D".
+"""),
+
+11: _("""
+ aucun segment ne coupe le maillage
+"""),
+
+12: _("""
+ mot clé facteur: %(k1)s, occurence numéro: %(i1)d
+ maille inexistante: %(k2)s
+"""),
+
+13: _("""
+ mot clé facteur: %(k1)s, occurence numéro: %(i1)d
+ présence de maille(s) surfacique(s), groupe: %(k2)s
+"""),
+
+14: _("""
+ arret sur erreur(s) de données
+"""),
+
+15: _("""
+ mot clé facteur: %(k1)s, occurence numéro: %(i1)d
+ présence de maille surfacique: %(k2)s
+"""),
+
+16: _("""
+ mot clé facteur: %(k1)s, occurence numéro: %(i1)d
+ groupe de mailles inexistant: %(k2)s
+"""),
+
+17: _("""
+ au noeud %(k1)s on ne peut avoir plus de 2 mailles, nombre de mailles: %(i1)d
+"""),
+
+18: _("""
+ trop de noeuds dans le GROUP_NO: %(k1)s, noeud utilisé: %(k2)s
+"""),
+
+19: _("""
+ mot clé facteur: %(k1)s, occurence numéro: %(i1)d
+ le mot clé %(k2)s admet pour argument une liste de 2 réels (a1,a2)
+ telle que -180. < a1 <= a2 < 180.
+"""),
+
+20: _("""
+ mot clé facteur: %(k1)s, occurence numéro: %(i1)d
+ le centre n'est pas vraiment le centre du cercle
+"""),
+
+21: _("""
+ la partie %(i1)d de la courbe de nom: %(k1)s ne coupe pas le domaine maille
+ non production du concept
+"""),
+
+22: _("""
+ face inconnue, maille numéro: %(i1)d face: %(i2)d
+"""),
+
+23: _("""
+ probleme pour trouver l'intersection pour la face %(i1)d de la maille %(i2)d
+"""),
+
+24: _("""
+ face dégénérée pour la maille numéro: %(i1)d face: %(i2)d
+"""),
+
+25: _("""
+ segment et face coplanaire, nombre de points: %(i3)d
+ probleme pour trouver l'intersection pour la maille numéro: %(i1)d face: %(i2)d
+"""),
+
+26: _("""
+ face dégénérée pour la maille numéro: %(i1)d face: %(i2)d arete: %(i3)d
+"""),
+
+27: _("""
+ mot clé facteur: %(k1)s, occurence numéro: %(i1)d
+ origine et extrémité confondues à la précision: %(r1)f
+"""),
+
+28: _("""
+ l'intersection segment %(k1)s avec le maillage %(k2)s est vide
+ origine : %(r1)f %(r2)f %(r3)f
+ extrémité : %(r4)f %(r5)f %(r6)f
+"""),
+
+29: _("""
+ il y chevauchement entre les mailles %(k1)s et %(k2)s
+"""),
+
+30: _("""
+ il y a un saut d'abscisse entre les mailles %(k1)s et %(k2)s
+"""),
+
+31: _("""
+ le GROUP_NO_ORIG %(k1)s n'existe pas.
+"""),
+
+32: _("""
+ probleme pour récupérer la grandeur %(k1)s dans la table "CARA_GEOM"
+"""),
+
+}
--- /dev/null
+#@ MODIF irrad3m Messages DATE 23/04/2007 AUTEUR FLEJOU J-L.FLEJOU
+# -*- 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.
+# ======================================================================
+# RESPONSABLE FLEJOU J-L.FLEJOU
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+La <%(k1)s> dichotomie pour la loi IRRAD3M n'a pas trouvée de solution pour
+le nombre d'itération donné <%(i1)d>.\n
+Info pour le debug
+ Borne 0 : <%(r1)E>
+ Borne 1 : <%(r2)E>
+ Puissance N : <%(r3)E>
+ Pas pour la recherche : <%(r4)E>
+ RM : <%(r5)E>
+ EU : <%(r6)E>
+ R02 : <%(r7)E>
+ Précision demandée : <%(r8)E>
+Valeurs initiales
+ N0 : <%(r9)E>
+ Borne 0 : <%(r10)E>
+ Borne 1 : <%(r11)E>
+"""),
+
+2: _("""
+L'irradiation diminue au cours du temps. C'EST PHYSIQUEMENT IMPOSSIBLE.
+Grandeurs au point de Gauss qui pose problème :
+ Irradiation a t- : <%(r1)E>
+ Irradiation a t+ : <%(r2)E>
+"""),
+
+3: _("""
+Pour info
+ Température a t- : <%(r1)E>
+ Température a t+ : <%(r2)E>
+"""),
+
+4: _("""
+Le franchissement du seuil de fluage ne se fait pas dans la tolérence donnée dans DEFI_MATERIAU
+pour la loi IRRAD3M, par le mot clef TOLER_ET.
+ Tolérence sur le franchissement du seuil : <%(r1)E>
+ Erreur sur le franchissement du seuil : <%(r2)E>
+La subdivision du pas de temps au niveau global est déclanchée.
+Il faut pour cela l'autoriser avec le mot clef SUBD_METHODE de la commande STAT_NON_LINE.
+""")
+}
--- /dev/null
+#@ MODIF jeveux Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7: _("""
+ destruction de %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+10: _("""
+ le nom demande existe deja dans la base %(k1)s
+"""),
+
+11: _("""
+ erreur lors de la fermeture de la base %(k1)s
+"""),
+
+12: _("""
+ fichier associe a la base %(k1)s inexistant
+"""),
+
+13: _("""
+ erreur de lecture du 1er bloc de %(k1)s
+"""),
+
+14: _("""
+ erreur lors de la fermeture de %(k1)s
+"""),
+
+15: _("""
+ Ecrasement amont, l'objet :< %(k1)s > est peut etre écrasé
+"""),
+
+16: _("""
+ Ecrasement aval, l'objet :< %(k1)s > est peut etre écrasé
+"""),
+
+17: _("""
+ Chainage casse apres l'objet : %(k1)s
+"""),
+
+
+
+
+
+
+19: _("""
+ Le nom d'un objet JEVEUX ne doit pas commencer par un blanc.
+"""),
+
+21: _("""
+ REOUVERTURE DE LA BASE : %(k1)s
+ CREEE AVEC LA VERSION : %(k2)s
+ NOMBRE D'ENREGISTREMENTS UTILISES : %(i1)d
+ NOMBRE D'ENREGISTREMENTS MAXIMUM : %(i2)d
+ LONGUEUR D'ENREGISTREMENT (OCTETS) : %(i3)d
+ NOMBRE D'IDENTIFICATEURS UTILISES : %(i4)d
+ TAILLE MAXIMUM DU REPERTOIRE : %(i5)d
+ POURCENTAGE D'UTILISATION DU REPERTOIRE : %(i6)d %%
+"""),
+
+22: _("""
+ NOM DE LA BASE : %(k1)s
+ NOMBRE D'ENREGISTREMENTS UTILISES : %(i1)d
+ NOMBRE D'ENREGISTREMENTS MAXIMUM : %(i2)d
+ LONGUEUR D'ENREGISTREMENT (OCTETS) : %(i3)d
+ NOMBRE TOTAL D'ENTREES/SORTIES : %(i4)d
+ NOMBRE D'IDENTIFICATEURS UTILISES : %(i5)d
+ TAILLE MAXIMUM DU REPERTOIRE : %(i6)d
+ POURCENTAGE D'UTILISATION DU REPERTOIRE : %(i7)d %%
+"""),
+
+23: _("""
+ Nom de Collection ou de Répertoire de noms inexistant : %(k1)s
+"""),
+
+24: _("""
+ JENONU : Collection ou Répertoire de noms : %(k1)s
+ Il faut passer par JEXNOM,JEXNUM.
+"""),
+
+25: _("""
+ Nom de collection ou de répertoire inexistant : >%(k1)s<
+"""),
+
+26: _("""
+ Objet JEVEUX inexistant dans les bases ouvertes : >%(k1)s<
+ l'objet n'a pas été créé ou il a été détruit
+"""),
+
+27: _("""
+ Objet simple JEVEUX inexistant en mémoire et sur disque : >%(k1)s<
+ le segment de valeurs est introuvable
+"""),
+
+28: _("""
+ Collection JEVEUX inexistant en mémoire et sur disque : >%(k1)s<
+ le segment de valeurs est introuvable
+"""),
+
+29: _("""
+ Objet %(i1)d de collection JEVEUX inexistant en mémoire et sur disque : >%(k1)s<
+"""),
+
+30: _("""
+ Objet de collection JEVEUX inexistant : >%(k1)s<
+ l'objet n'a pas été créé ou il a été détruit
+"""),
+
+31: _("""
+ Erreur programmeur :
+ La routine JUVECA n'a pas prévu de redimensionner l'objet :%(k1)s
+ de type :%(k2)s
+"""),
+
+32: _("""
+ Erreur allocation de segment de memoire de longueur %(i1)d (entiers).
+ Memoire allouee insuffisante. Fermeture des bases (glob.*) sur erreur
+ Il faut relancer le calcul en augmentant la limite memoire.
+"""),
+
+33: _("""
+ Modification de l'environnement JEVEUX.
+ Allocation dynamique des segments de valeurs de taille superieure
+ a %(i1)d (entiers)
+"""),
+
+34: _("""
+ Modification de l'environnement JEVEUX.
+ Mode debug positionne a %(i1)d
+"""),
+
+35: _("""
+ Le nombre de bases gerables est limite a %(i1)d
+"""),
+
+36: _("""
+ Le nombre d'enregistrements maximum de la base %(k1)s sera modifie,
+ de %(i1)d a %(i2)d
+"""),
+
+37: _("""
+ La valeur du rapport entre partitions ne convient pas,
+ la longueur de la partition 1 doit etre au minimum de %(i1)d mots
+ soit environ %(i2)d %%
+"""),
+
+
+38: _("""
+ Numero d'objet invalide %(i1)d
+"""),
+
+
+39: _("""
+ Taille de repertoire demandee trop grande.
+ Le maximun est de %(i1)d
+ La valeur reclamee est de %(i2)d
+
+"""),
+
+
+40: _("""
+ Erreur ecriture de l'enregistrement %(i1)s sur la base : %(k1)s %(i2)d
+ code retour WRITDR : %(i3)d
+ Erreur probablement provoquee par une taille trop faible du repertoire de travail.
+
+"""),
+
+
+41: _("""
+ Erreur lecture de l'enregistrement %(i1)d sur la base : %(k1)s %(i2)d
+ code retour READDR : %(i3)d
+
+"""),
+
+
+42: _("""
+ Fichier sature, le nombre maximum d'enregistrement %(i1)d de la base %(k1)s
+ est atteint, il faut relancer le calcul en modifiant le parametre NMAX_ENRE dans DEBUT
+ ou en passant une taille maximum de base sur la ligne de commande
+ argument "-max_base" suivi de la valeur en Mo.
+
+"""),
+
+
+43: _("""
+ Erreur d'ouverture du fichier %(k1)s , code retour OPENDR = %(i1)d
+
+
+"""),
+
+44: _("""
+ Taille des segments de valeurs %(i1)d
+"""),
+
+45: _("""
+ Taille de la partition principale %(r1)g
+"""),
+
+}
+
--- /dev/null
+#@ MODIF maillage Messages DATE 30/05/2007 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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ Le nom de groupe numéro %(i1)d de la famille %(k1)s
+ est trop long. Il sera tronqué à 8 caractères.
+ Le groupe "%(k2)s" est renommé en "%(k3)s".
+"""),
+
+2: _("""
+Le nom de groupe numéro %(i1)d de la famille %(k1)s
+est vide.
+"""),
+
+3: _("""
+Famille %(k1)s :
+ Incohérence sur les nombres de %(k2)s, il y en a %(i1)d alors
+ que la fonction MED en annonce %(i2)d.
+
+Impossible de lire ce fichier. On peut utiliser mdump (utilitaire med)
+pour voir si le problème vient du fichier MED ou de la lecture dans
+Code_Aster.
+"""),
+
+4: _("""
+La famille %(k1)s n'a ni groupe, ni attribut.
+"""),
+
+5: _("""
+ Lecture de la famille numéro %(i1)4d de nom %(k1)s.
+"""),
+
+6: _("""
+ Groupe numéro %(i1)6d : %(k1)s
+"""),
+
+7: _("""
+ Groupe numéro %(i1)6d : %(k1)s
+ renommé en : %(k2)s
+"""),
+
+8: _("""
+Vous ne pouvez pas renommer le groupe "%(k1)s" en "%(k2)s"
+car "%(k2)s" existe déjà dans le fichier MED.
+"""),
+
+9: _("""
+Arret en raison des conflits sur les noms de groupe.
+"""),
+
+10: _("""
+ Le nom de groupe numéro %(i1)d de la famille %(k1)s
+ est contient des caractères interdits.
+ Le groupe "%(k2)s" est renommé en "%(k3)s".
+"""),
+
+}
+
--- /dev/null
+#@ MODIF mecanonline Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+
+1: _("""
+ Le champ absolu n'est accessible pour OBSERVATION qu'en presence de modes statiques
+"""),
+
+2: _("""
+ Melange de champs de nature differente dans le meme mot-clef facteur OBSERVATION
+"""),
+
+3: _("""
+ Il y a trop de colonnes d'affichage (on est limite a quinze)
+"""),
+
+4: _("""
+ Option non prevue pour la matrice de rigidite
+"""),
+
+5: _("""
+ Le type de selection du coefficient de pilotage est inconnu
+"""),
+
+6: _("""
+ Les variables de commandes initiales induisent des contraintes incompatibles
+"""),
+
+7: _("""
+ Le champ de deplacement Dirichlet differentiel n'est pas trouve dans le concept EVOL_NOLI %(k1)s
+"""),
+
+8: _("""
+ Le critere de convergence choisi est lache, risque de resultats faux
+"""),
+
+9: _("""
+ On surcharge un resultat sans definir d'etat initial (pas d'ETAT_INIT) : on suppose un etat initial nul
+"""),
+
+10: _("""
+ Le concept dans ETAT_INIT n'est du type EVOL_NOLI
+"""),
+
+11: _("""
+ Pas de numero d'ordre trouve dans le concept EVOL_NOLI nomme %(k1)s
+"""),
+
+12: _("""
+ L'instant specifie sous ETAT_INIT n'est pas trouve
+"""),
+
+13: _("""
+ Plusieurs instants correspondent a celui specifie sous ETAT_INIT
+"""),
+
+14: _("""
+ La derivee de %(k1)s par rapport a %(k2)s est introuvable
+"""),
+
+15: _("""
+ Le champ de deplacement DEPL_R (ou sa derivee) n'est pas trouve dans le concept EVOL_NOLI nomme %(k1)s
+"""),
+
+16: _("""
+ Pour faire une reprise avec un calcul de sensibilite, il faut obligatoirement renseigner EVOL_NOLI dans ETAT_INIT
+"""),
+
+17: _("""
+ Le champ de contraintes SIEF_R (ou sa derivee) n'est pas trouve dans le concept EVOL_NOLI nomme %(k1)s
+"""),
+
+18: _("""
+ Le champ de variables internes VARI_R (ou sa derivee) n'est pas trouve dans le concept EVOL_NOLI nomme %(k1)s
+"""),
+
+19: _("""
+ Le champ de variables non locales VARI_NONL (ou sa derive) n'est pas trouve dans le concept EVOL_NOLI nomme %(k1)s
+"""),
+
+20: _("""
+ Le champ de Lagrangiens non locaux LANL_ELGA n'est pas trouve dans le concept EVOL_NOLI nomme %(k1)s
+"""),
+
+21: _("""
+ Le champ de vitesses VITE n'est pas trouve dans le concept EVOL_NOLI nomme %(k1)s , on cree un champ de vitesses nulles
+"""),
+
+22: _("""
+ L'etat initial n'appartient pas a un EVOL_NOLI : on suppose qu'on part d'un etat a vitesses nulles
+"""),
+
+23: _("""
+ Le champ d'accelerations ACCE n'est pas trouve dans le concept EVOL_NOLI nomme %(k1)s on calcule un champ d'accelerations, ce qui est possible puisque les vitesses sont nulles
+"""),
+
+24: _("""
+ Le champ d'accelerations ACCE n'est pas trouve dans le concept EVOL_NOLI nomme %(k1)s on ne peut pas, pour l'instant, calculer le champ des accelerations car les vitesses ne sont pas nulles
+"""),
+
+25: _("""
+ Le parametre REAC_INCR est negatif
+"""),
+
+26: _("""
+ Le parametre REAC_ITER est negatif
+"""),
+
+27: _("""
+ Le parametre REAC_ITER_ELAS est negatif
+"""),
+
+28: _("""
+ Il faut preciser un concept de type EVOL_NOLI dans le mot-clef facteur ETAT_INIT lorsque l'on fait une prediction de type DEPL_CALCULE
+"""),
+
+29: _("""
+ La definition des parametres de recherche lineaire RHO_MIN et RHO_EXCL est contradictoire, on prend l'intervalle [RHO_MIN,RHO_EXCL]
+"""),
+
+30: _("""
+ La definition des parametres de recherche lineaire RHO_MAX et RHO_EXCL est contradictoire, on prend l'intervalle [-RHO_EXCL,RHO_MAX]
+"""),
+
+31: _("""
+ Le parametre de pilotage ETA_PILO_MAX doit etre inferieur a ETA_PILO_R_MAX
+"""),
+
+32: _("""
+ Le parametre de pilotage ETA_PILO_MIN doit etre superieur a ETA_PILO_R_MIN
+"""),
+
+33: _("""
+ Il faut _au plus_ UN noeud pour le pilotage de type DDL_IMPO
+"""),
+
+34: _("""
+ Il faut _au plus_ UN groupe de noeuds pour le pilotage de type DDL_IMPO
+"""),
+
+35: _("""
+ Il y a plus d'un noeud dans le groupe de noeuds definissant le pilotage de type DDL_IMPO
+"""),
+
+36: _("""
+ Il faut preciser un groupe de noeuds dans la methode de pilotage de type LONG_ARC
+"""),
+
+37: _("""
+ Le groupe de noeud nomme %(k1)s que l'on utilise pour le pilotage de type LONG_ARC est vide
+"""),
+
+38: _("""
+ La liste de composantes NOM_CMP que l'on utilise pour le pilotage de type LONG_ARC est vide
+"""),
+
+39: _("""
+ On fait un calcul de flambement non lineaire avec l'hypothese des petites perturbations (HPP)
+"""),
+
+40: _("""
+ On fait un calcul de flambement non lineaire avec l'hypothese des deformations de type GREEN
+"""),
+
+41: _("""
+ Les deformations de type %(k1)s sont incompatibles avec le calcul du flambement
+"""),
+
+42: _("""
+ Pour le traitement du contact avec X-FEM, le solveur MUMPS est vivement recommande
+"""),
+
+43: _("""
+ Contact et pilotage sont des fonctionnalites incompatibles
+"""),
+
+44: _("""
+ Contact et recherche lineaire peuvent poser des problemes de convergence
+"""),
+
+45: _("""
+ Contact methode continue et recherche lineaire sont incompatibles
+"""),
+
+46: _("""
+ Le contact avec le solveur GCPC n'est pas disponible.
+"""),
+
+47: _("""
+ Liaison unilaterale et pilotage sont des fonctionnalites incompatibles
+"""),
+
+48: _("""
+ Liaison unilaterale et recherche lineaire peuvent poser des problemes de convergence
+"""),
+
+49: _("""
+ Le denominateur est nul lors du calcul du parametre de pilotage
+"""),
+
+50: _("""
+ La lecture du champ DEPL_CALCULE est impossible
+"""),
+
+51: _("""
+ La prediction par extrapolation est impossible : l'increment de temps initial est nul
+"""),
+
+52: _("""
+ Le parametre de recherche lineaire ITER_LINE_MAXI doit etre inferieur a 1000
+"""),
+
+53: _("""
+ Le champ de temperature est une grandeur inconnue (ni reelle, ni fonction)
+"""),
+
+54: _("""
+ Erreur dans la decoupe initiale des pas
+"""),
+
+55: _("""
+ Attention, ARRET=NON donc poursuite du calcul sans avoir eu convergence, risque de resultats faux
+"""),
+
+56: _("""
+ Le nom du champ NOM_CHAMP de la variable de commande est obligatoire pour le decoupage
+"""),
+
+57: _("""
+ Le nom de la composante NOM_CMP du champ NOM_CHAMP de la variable de commande est obligatoire
+"""),
+
+58: _("""
+ La valeur VALE du critere est obligatoire pour le decoupage
+"""),
+
+59: _("""
+ Cette loi de comportement n'est pas disponible pour le pilotage de type PRED_ELAS
+"""),
+
+60: _("""
+ Le pilotage de type PRED_ELAS necessite ETA_PILO_MIN et ETA_PILO_MAX pour la loi ENDO_ISOT_BETON
+"""),
+
+61: _("""
+ Le pilotage de type PRED_ELAS necessite ETA_PILO_MIN et ETA_PILO_MAX pour la loi ENDO_ORTH_BETON
+"""),
+
+62: _("""
+ La valeur de NUME_SUIVI est incorrecte dans SUIVI_DDL
+"""),
+
+63: _("""
+ Le ddl est inconnu sur le noeud ou la maille specifiee pour SUIVI_DDL
+"""),
+
+64: _("""
+ Le parametre ITER_DUAL_MAXI est trop eleve (il doit etre inferieur a 10000)
+"""),
+
+65: _("""
+ La fonction duale dans le lagrangien non local est non convexe
+"""),
+
+66: _("""
+ Probleme lors de la recherche lineaire dans le lagrangien non local
+"""),
+
+67: _("""
+ Il y a plusieurs charges contenant un chargement de type FORCE_FLUIDE
+"""),
+
+68: _("""
+ Impossible de faire du pilotage en contraintes planes
+"""),
+
+69: _("""
+ Problème rencontré :
+ la matrice de masse est non inversible.
+ On ne peut donc pas s'en servir pour calculer l'accélération initiale.
+ => on initialise l'accélération à zéro.
+
+ Conseils :
+ Avez-vous bien affecté une masse sur tous les éléments ?
+"""),
+
+70: _("""
+ On detecte une divergence, on force la subdivision du pas de temps
+"""),
+
+71: _("""
+ Nombre maximum d'iterations atteint sans convergence, on force la subdivision du pas de temps
+"""),
+
+72: _("""
+ Le pas minimal de la subdivision est atteint. On ne peut diviser plus.
+"""),
+
+73: _("""
+ Le contact avec le solveur MUMPS n'est pas disponible.
+"""),
+
+74: _("""
+ Liaison unilaterale avec le solveur GCPC n'est pas disponible.
+"""),
+
+75: _("""
+ Liaison unilaterale avec le solveur MUMPS n'est pas disponible.
+"""),
+
+76: _("""
+ L'etat initial n'appartient pas a un EVOL_NOLI : on suppose qu'on part d'un etat a deplacements nuls
+"""),
+
+77: _("""
+ Vous faites une reprise de calcul avec PILOTAGE en longueur d'arc et avec l'option ANGL_INCR_DEPL mais il n'y pas assez d'informations dans
+ la structure de donnees resultats. Il vous faut en effet au moins les deux derniers champs deplacements solutions.
+ Changer l'option de PILOTAGE (utilisez NORM_INCR_DEPL) ou refaites le premier calcul pour enrichir la SD resultat (modifiez vos options d'ARCHIVAGE).
+"""),
+
+78: _("""
+ Problème rencontré :
+ la matrice de masse est quasi-singulière.
+ On se sert de cette matrice pour calculer l'accélération initiale.
+ => l'accélération initiale calculée est peut etre excessive en quelques noeuds.
+
+ Conseils :
+ Ces éventuelles perturbations initiales sont en général sans influence sur
+ la suite du calcul car elles sont localisées.
+ Néanmoins, il peut etre bénéfique de laisser ces perturbations s'amortir au
+ début du calcul en faisant plusieurs pas avec chargement transitoire nul,
+ avec, eventuellement, un schéma d'integration choisi volontairement très
+ dissipatif (par exemple HHT avec alpha=-0.3).
+ On peut ensuite reprendre en poursuite avec un schéma moins dissipatif si besoin est.
+"""),
+
+79: _("""
+ Arret par manque de temps CPU au numéro d'instant : %(i1)d
+ lors de l'itération : %(i2)d
+ - Temps moyen par itération : %(r1)f
+ - Temps cpu restant : %(r2)f
+
+ La base globale est sauvegardée. Elle contient les pas archivés avant l'arret.
+"""),
+
+80: _("""
+ Arret par manque de temps CPU au numéro d'instant : %(i1)d
+ - Temps moyen par %(k1)s : %(r1)f
+ - Temps cpu restant : %(r2)f
+
+ La base globale est sauvegardée. Elle contient les pas archivés avant l'arret.
+"""),
+
+81: _("""
+ Echec dans la recherche linéaire. Contactez les développeurs.
+"""),
+
+82: _("""
+ Arret pour cause de matrice non inversible.
+"""),
+
+83: _("""
+ Arret : absence de convergence avec le nombre d'itérations requis.
+"""),
+
+84: _("""
+ Arret par échec dans le pilotage.
+"""),
+
+85: _("""
+ Arret : absence de convergence au numéro d'instant : %(i1)d
+ lors de l'itération : %(i2)d
+"""),
+
+86: _("""
+ Erreur dans la gestion des erreurs. Contactez les développeurs.
+"""),
+
+}
--- /dev/null
+#@ MODIF mecanonline2 Messages DATE 30/05/2007 AUTEUR ABBAS M.ABBAS
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+67: _("""
+ Le code %(i1)d retourné lors de l'intégration de la loi de comportement n'est
+ pas traité.
+"""),
+
+96: _("""
+ -> Les surfaces en contact relatif ont bougé de plus de 5%.
+ Or vous n'avez pas activé la réactualisation géométrique (REAC_GEOM) automatique ou
+ vous utiliser le mode "CONTROLE"
+ -> Risque & Conseil : Vos résultats risquent d'etre faux, les mailles ne
+ seront peut-etre pas correctement appariées et donc la condition de contact sera peut
+ etre fausse.
+ Si vous avez volontairement négligé la non-linéarité géoémtrique de contact (pour des raisons
+ de performance), nous vous invitons à vérifier visuellement qu'il n'y a effectivement
+ pas interpénétration.
+"""),
+
+97: _("""
+ -> Les variables de commandes initiales induisent des contraintes
+ incompatibles.
+ -> Risque & Conseil : Ce message apparait si l'état initial
+ (avant le premier instant de calcul) est tel que les variables de commande
+ (température, hydratation, séchage...) conduisent à des contraintes
+ non équilibrées. Dans le cas de la température, vérifiez que la valeur
+ TEMP_REF correspond à la température de l'état initial.
+
+"""),
+
+98: _("""
+ -> Le chargement extérieur est nul (à la précision près).
+ Or vous avez demandé une convergence avec le critère relatif (RESI_GLOB_RELA).
+ Pour éviter une division par zéro, le code est passé automatiquement en mode de convergence
+ de type absolu (RESI_GLOB_MAXI)
+ -> Risque & Conseil : Vérifier bien que votre chargement doit etre nul à cet instant
+ Dans le cas des problèmes de type THM, penser à utiliser éventuellement un
+ critère de type référence (RESI_REFE_RELA).
+ La valeur automatique prise pour RESI_GLOB_MAXI est égale à 1E-6 fois la dernière valeur
+ de résidu maximum à l'instant précédent.
+"""),
+
+99: _("""
+ -> Le chargement extérieur est nul (à la précision près).
+ Or vous avez demandé une convergence avec le critère relatif (RESI_GLOB_RELA).
+ -> Risque & Conseil : Vérifier bien que votre chargement doit etre nul à cet instant
+ Le chargement est "nul" dans le cas de l'utilisation d'AFFE_CHAR_CINE en particulier.
+ Il vous faut changer votre critère de convergence: RESI_GLOB_MAXI ou RESI_REFE_RELA
+"""),
+
+
+}
--- /dev/null
+#@ MODIF modal Messages DATE 24/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+Arret du calcul des modes : pas de mode propre dans la bande de fréquence demandée.
+"""),
+
+}
--- /dev/null
+#@ MODIF modelisa Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ l option de calcul d une abscisse curviligne sur un groupe de mailles n est pas implantee
+"""),
+
+2: _("""
+ il est possible de definir une abscisse curviligne uniquement pour des mailles de type: poi1 ou seg2
+"""),
+
+3: _("""
+ point non trouve parmi les seg2
+"""),
+
+4: _("""
+ mauvaise definition pour l abs_curv. detection de plusieurs chemins.
+"""),
+
+5: _("""
+ le groupe de maille que vous donnez ne correspond pas au modele de structure que vous etudiez
+"""),
+
+6: _("""
+ methode au-yang : la geometrie doit etre cylindrique
+"""),
+
+7: _("""
+ barre : une erreur a ete detectee lors de l affectation des valeurs dans le tampon
+"""),
+
+8: _("""
+ on interdit d'avoir sur un maillage 2d des elements discrets 2d et 3d .
+"""),
+
+9: _("""
+ on interdit d'avoir sur un maillage 3d des elements discrets 2d .
+"""),
+
+10: _("""
+ axe_z nul
+"""),
+
+11: _("""
+ noeud confondu avec l'origine
+"""),
+
+12: _("""
+ orientation : une erreur a ete detectee lors de l affectation des orientations
+"""),
+
+13: _("""
+ erreur(s) dans les donnees.
+"""),
+
+14: _("""
+ poutre : une erreur a ete detectee lors de l affectation des valeurs dans le tampon
+"""),
+
+15: _("""
+ poutre : une erreur a ete detectee lors des verifications des valeurs entrees
+"""),
+
+16: _("""
+ si 2 caracteristiques 1 amor et 1 rigi obligatoires
+"""),
+
+17: _("""
+ caracteristique %(k1)s non admise actuellement
+"""),
+
+18: _("""
+ le noeud %(k1)s non modelise par un discret
+"""),
+
+19: _("""
+ pas de noeuds du radier modelises par des discrets
+"""),
+
+20: _("""
+ le discret %(k1)s n a pas le bon nombre de noeuds.
+"""),
+
+21: _("""
+ le noeud %(k1)s extremite d un des discrets n existe pas dans la surface donnee par group_ma.
+"""),
+
+22: _("""
+ nbext1.ne.nbext2
+"""),
+
+23: _("""
+ nbext1.ne.nbpart
+"""),
+
+24: _("""
+ gene_tuyau preciser un seul noeud par tuyau
+"""),
+
+25: _("""
+ orientation : gene_tuyau le noeud doit etre une des extremites
+"""),
+
+26: _("""
+ pb nmmt
+"""),
+
+27: _("""
+ on ne peut pas melanger des tuyaux a 3 et 4 noeuds pour le moment
+"""),
+
+28: _("""
+ orientation : gene_tuyau un seul noeud doit etre efecte
+"""),
+
+29: _("""
+ vous ne pouvez affecter des valeurs de type "poutre" au modele %(k1)s qui ne contient pas un seul element poutre !
+"""),
+
+30: _("""
+ vous ne pouvez affecter des valeurs de type "coque" au modele %(k1)s qui ne contient pas un seul element coque !
+"""),
+
+31: _("""
+ vous ne pouvez affectee des valeurs de type "discret" au modele %(k1)s qui ne contient pas un seul element discret !
+"""),
+
+32: _("""
+ vous ne pouvez affecter des valeurs de type "orientation" au modele %(k1)s qui ne contient ni element poutre ni element discret ni element barre !
+"""),
+
+33: _("""
+ vous ne pouvez affecter des valeurs de type "cable" au modele %(k1)s qui ne contient pas un seul element cable !
+"""),
+
+34: _("""
+ vous ne pouvez affecter des valeurs de type "barre" au modele %(k1)s qui ne contient pas un seul element barre !
+"""),
+
+35: _("""
+ vous ne pouvez affecter des valeurs de type "massif" au modele %(k1)s qui ne contient pas un seul element thermique ou mecanique !
+"""),
+
+36: _("""
+ vous ne pouvez affecter des valeurs de type "grille" au modele %(k1)s qui ne contient pas un seul element grille
+"""),
+
+37: _("""
+ impossible d"affecter des caracteristiques a des noeuds de ce modele car aucun noeud ne supporte un element
+"""),
+
+38: _("""
+ la maille %(k1)s n'a pas ete affectee par des caracteristiques de poutre.
+"""),
+
+39: _("""
+ la maille %(k1)s n'a pas ete affectee par une matrice (discret).
+"""),
+
+40: _("""
+ la maille %(k1)s n'a pas ete affectee par des caracteristiques de cable.
+"""),
+
+41: _("""
+ la maille %(k1)s n'a pas ete affectee par des caracteristiques de barre.
+"""),
+
+42: _("""
+ la maille %(k1)s n'a pas ete affectee par des caracteristiques de grille.
+"""),
+
+43: _("""
+ le noeud %(k1)s n'a pas ete affecte par une matrice.
+"""),
+
+44: _("""
+ barre : occurence %(k1)s : "cara" : %(k2)s arguments maxi pour une section " %(k3)s "
+"""),
+
+45: _("""
+ barre : occurence %(k1)s : "cara" : 4 arguments maxi pour une section " %(k2)s "
+"""),
+
+46: _("""
+ barre : occurence %(k1)s : section " %(k2)s argument "h" incompatible avec "hy" ou "hz"
+"""),
+
+47: _("""
+ barre : occurence %(k1)s : section " %(k2)s argument "hy" ou "hz" incompatible avec "h"
+"""),
+
+48: _("""
+ barre : occurence %(k1)s : section " %(k2)s argument "ep" incompatible avec "epy" ou "epz"
+"""),
+
+49: _("""
+ barre : occurence %(k1)s : section " %(k2)s argument "epy" ou "epz" incompatible avec "ep"
+"""),
+
+50: _("""
+ barre : occurence %(k1)s : "cara" : nombre de valeurs entrees incorrect : il en faut %(k2)s
+"""),
+
+51: _("""
+ barre : occurence %(k1)s : section " %(k2)s : valeur %(k3)s de "vale" non admise (valeur test interne)
+"""),
+
+52: _("""
+ cable : occurence 1 : le mot cle "section" est obligatoire.
+"""),
+
+53: _("""
+ coque : occurence 1 : le mot cle "epais" est obligatoire.
+"""),
+
+54: _("""
+ coque : avec un excentrement, la prise en compte des termes d'inertie de rotation est obligatoire.
+"""),
+
+55: _("""
+ absence d elements discrets dans le modele
+"""),
+
+56: _("""
+ impossibilite, la maille %(k1)s doit etre une maille de type %(k2)s , et elle est de type : %(k3)s pour la caracteristique %(k4)s
+"""),
+
+57: _("""
+ orientation : occurence 1 : le mot cle "vale" est obligatoire
+"""),
+
+58: _("""
+ orientation : occurence 1 : le mot cle "cara" est obligatoire
+"""),
+
+59: _("""
+ orientation : occurence %(k1)s : presence de "vale" obligatoire si "cara" est present
+"""),
+
+60: _("""
+ orientation : occurence %(k1)s : val : %(k2)s : nombre de valeurs entrees incorrect
+"""),
+
+61: _("""
+ defi_arc: le rayon de courbure doit etre positif.
+"""),
+
+62: _("""
+ defi_arc: il faut 3 reels pour definir le centre de courbure.
+"""),
+
+63: _("""
+ defi_arc: il faut 3 reels pour definir le point de concours des tangentes.
+"""),
+
+64: _("""
+ defi_arc: le coefficient de flexibilite doit etre positif.
+"""),
+
+65: _("""
+ defi_arc: l'indice de contrainte doit etre positif.
+"""),
+
+66: _("""
+ poutre : occurence %(k1)s : section "cercle", vari_sect "constant" la caracteristique "r" est obligatoire
+"""),
+
+67: _("""
+ erreur de programmation
+"""),
+
+68: _("""
+ mauvais calcul de nbgrel
+"""),
+
+69: _("""
+ occurence %(k1)s de "barre" (maille %(k2)s ) ecrasement d un type de geometrie de section par un autre
+"""),
+
+70: _("""
+ barre : maille %(k1)s : section generale : il manque la caracteristique %(k2)s
+"""),
+
+71: _("""
+ barre : maille %(k1)s : section generale : la valeur de %(k2)s doit etre strictement positive.
+"""),
+
+72: _("""
+ barre : maille %(k1)s : section rectangle : il manque la caracteristique %(k2)s
+"""),
+
+73: _("""
+ barre : maille %(k1)s : section rectangle : la valeur de %(k2)s doit etre strictement positive.
+"""),
+
+74: _("""
+ barre : maille %(k1)s : section cercle : il manque la caracteristique %(k2)s
+"""),
+
+75: _("""
+ barre : maille %(k1)s : section cercle : la valeur de %(k2)s doit etre strictement positive.
+"""),
+
+76: _("""
+ barre : maille %(k1)s : section cercle : la valeur de %(k2)s doit etre positive.
+"""),
+
+77: _("""
+ poutre : maille %(k1)s : section generale : il manque la caracteristique %(k2)s
+"""),
+
+78: _("""
+ poutre : maille %(k1)s : section generale : element poutre de timoshenko : il manque la caracteristique %(k2)s
+"""),
+
+79: _("""
+ poutre : maille %(k1)s : section rectangle : il manque la caracteristique %(k2)s
+"""),
+
+80: _("""
+ poutre : maille %(k1)s : section cercle : il manque la caracteristique %(k2)s
+"""),
+
+81: _("""
+ poutre : maille %(k1)s : section generale : la valeur de %(k2)s doit etre strictement positive
+"""),
+
+82: _("""
+ poutre : maille %(k1)s : section rectangle : la valeur de %(k2)s doit etre strictement positive
+"""),
+
+83: _("""
+ poutre : maille %(k1)s : section cercle : la valeur de %(k2)s doit etre strictement positive
+"""),
+
+84: _("""
+ poutre : maille %(k1)s : section rectangle : la valeur de %(k2)s ne doit pas depasser %(k3)s /2 !!! m enfin quoi !
+"""),
+
+85: _("""
+ poutre : maille %(k1)s : section cercle : la valeur de %(k2)s ne doit pas depasser celle de %(k3)s !!! aarg !!
+"""),
+
+86: _("""
+ section circulaire/rectangulaire non supportee par poutre/tuyau/faisceau
+"""),
+
+87: _("""
+ orientation : pas d affectation d orientation du type %(k1)s sur la maille %(k2)s qui n est pas un seg2
+"""),
+
+88: _("""
+ orientation : pas d affectation d orientation du type %(k1)s sur la maille %(k2)s de longueur nulle
+"""),
+
+89: _("""
+ orientation : pas d affectation d orientation du type %(k1)s sur le noeud %(k2)s
+"""),
+
+90: _("""
+ orientation : pas d affectation d orientation du type %(k1)s sur la maille %(k2)s de longueur non nulle
+"""),
+
+91: _("""
+ orientation : pas d affectation d orientation du type %(k1)s sur la maille %(k2)s qui n est pas seg2
+"""),
+
+92: _("""
+ occurence %(k1)s de "poutre" (maille %(k2)s ) ecrasement d un type de variation de section par un autre
+"""),
+
+93: _("""
+ occurence %(k1)s de "poutre" (maille %(k2)s ) ecrasement d un type de geometrie de section par un autre
+"""),
+
+94: _("""
+ le descripteur_grandeur des deplacements ne tient pas sur dix entiers codes
+"""),
+
+95: _("""
+ la carte : %(k1)s n'existe pas
+"""),
+
+
+
+
+
+
+
+
+97: _("""
+ tous les coef. sont nuls
+"""),
+
+98: _("""
+ type de coef. inconnu: %(k1)s
+"""),
+
+99: _("""
+ les coef. de l equation sont tres petits ou tres grands et on ne peut la normaliser.
+"""),
+}
--- /dev/null
+#@ MODIF modelisa2 Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+2: _("""
+ resserrer le mot cle precision pour le materiau elas_fo
+"""),
+
+3: _("""
+ calcul de la tension le long du cable no %(k1)s : la longueur sur laquelle on devrait prendre en compte les pertes de tension par recul de l ancrage est superieure a la longueur du cable
+"""),
+
+4: _("""
+ calcul de la tension le long du cable no %(k1)s : la longueur sur laquelle on doit prendre en compte les pertes de tension par recul de l ancrage est egale a la longueur du cable
+"""),
+
+
+9: _("""
+ %(k1)s n'existe pas
+"""),
+
+
+
+13: _("""
+ probleme pour recuperer une grandeur dans la table "cara_geom"
+"""),
+
+14: _("""
+ plus petite taille de maille negative ou nulle
+"""),
+
+15: _("""
+ groupe de maille group_ma_1= %(k1)s inexistant dans le maillage %(k2)s
+"""),
+
+16: _("""
+ groupe de maille group_ma_2= %(k1)s inexistant dans le maillage %(k2)s
+"""),
+
+17: _("""
+ les groupes de mailles group_ma_1= %(k1)s et group_ma_2= %(k2)s ont des cardinaux differents
+"""),
+
+18: _("""
+ nombre de noeuds incoherent sous les 2 group_ma a coller
+"""),
+
+19: _("""
+ un noeud de group_ma_2 n est geometriquement appariable avec aucun de group_ma_1
+"""),
+
+20: _("""
+ les 2 maillages doivent etre du meme type : 2d (ou 3d).
+"""),
+
+21: _("""
+ -> Le group_ma %(k1)s est présent dans les 2 maillages que l'on assemble.
+ Il y a conflit de noms. Le group_ma du 2eme maillage est renommé.
+ -> Risque & Conseil :
+ Vérifiez que le nom du group_ma retenu est bien celui souhaité.
+"""),
+
+22: _("""
+ -> Le group_no %(k1)s est présent dans les 2 maillages que l'on assemble.
+ Il y a conflit de noms. Le group_no du 2eme maillage est renommé.
+ -> Risque & Conseil :
+ Vérifiez que le nom du group_no retenu est bien celui souhaité.
+"""),
+
+23: _("""
+ traitement non prevu pour un modele avec mailles tardives.
+"""),
+
+24: _("""
+ abscence de carte d'orientation des elements. la structure etudiee n'est pas une poutre.
+"""),
+
+25: _("""
+ probleme pour determiner les rangs des composantes <alpha> , <beta> , <gamma> de la grandeur <caorie>
+"""),
+
+26: _("""
+ erreur a l'appel de la routine etenca pour extension de la carte %(k1)s .
+"""),
+
+27: _("""
+ detection d'un element d'un type non admissible. la structure etudiee n'est pas une poutre droite.
+"""),
+
+28: _("""
+ l'element supporte par la maille no %(k1)s n'a pas ete oriente.
+"""),
+
+29: _("""
+ carte d'orientation incomplete pour l'element supporte par la maille no %(k1)s .
+"""),
+
+30: _("""
+ les elements de la structure ne sont pas d'un type attendu. la structure etudiee n'est pas une poutre droite.
+"""),
+
+31: _("""
+ l'axe directeur de la poutre doit etre parallele avec l'un des axes du repere global.
+"""),
+
+32: _("""
+ la structure etudiee n'est pas une poutre droite.
+"""),
+
+
+37: _("""
+ valeur inattendue: %(k1)s
+"""),
+
+38: _("""
+ les courbures ky et kz ne sont pas prises en compte pour les poutres courbes
+"""),
+
+39: _("""
+ pb pour recuperer "epais" pour la maille %(k1)s
+"""),
+
+40: _("""
+ excentricite non traitee
+"""),
+
+41: _("""
+ pb pour recuperer "excent" pour la maille %(k1)s
+"""),
+
+42: _("""
+ melange mailles quadratiques avec quad8: liaison supprimee sur noeud milieu quad8
+"""),
+
+43: _("""
+ deux mailles poi1 interdit
+"""),
+
+44: _("""
+ le mot clef evol_ther est incompatible avec: %(k1)s
+"""),
+
+45: _("""
+ aucun noeud ne connait le ddl: %(k1)s
+"""),
+
+46: _("""
+ le descripteur_grandeur associe au modele ne tient pas sur dix entiers codes
+"""),
+
+47: _("""
+ fonree non traite %(k1)s
+"""),
+
+48: _("""
+ recuperation des caracteristiques elementaires du cable no %(k1)s : detection d un element different du type <meca_barre>
+"""),
+
+49: _("""
+ les caracteristiques materielles n ont pas ete affectees a la maille no %(k1)s appartenant au cable no %(k2)s
+"""),
+
+50: _("""
+ des materiaux differents ont ete affectes aux mailles appartenant au cable no %(k1)s
+"""),
+
+51: _("""
+ recuperation des caracteristiques du materiau acier associe au cable no %(k1)s : absence de relation de comportement de type <elas>
+"""),
+
+52: _("""
+ recuperation des caracteristiques du materiau acier associe au cable no %(k1)s , relation de comportement <elas> : module d young indefini
+"""),
+
+53: _("""
+ recuperation des caracteristiques du materiau acier associe au cable no %(k1)s , relation de comportement <elas> : valeur invalide pour le module d young
+"""),
+
+54: _("""
+ recuperation des caracteristiques du materiau acier associe au cable no %(k1)s : absence de relation de comportement de type <bpel_acier>
+"""),
+
+55: _("""
+ recuperation des caracteristiques du materiau acier associe au cable no %(k1)s , relation de comportement <bpel_acier> : au moins un parametre indefini
+"""),
+
+56: _("""
+ recuperation des caracteristiques du materiau acier associe au cable no %(k1)s , relation de comportement <bpel_acier> : au moins une valeur de parametre invalide
+"""),
+
+57: _("""
+ les caracteristiques geometriques n ont pas ete affectees a la maille no %(k1)s appartenant au cable no %(k2)s
+"""),
+
+58: _("""
+ l aire de la section droite n a pas ete affectee a la maille no %(k1)s appartenant au cable no %(k2)s
+"""),
+
+59: _("""
+ valeur invalide pour l aire de la section droite affectee a la maille no %(k1)s appartenant au cable no %(k2)s
+"""),
+
+60: _("""
+ des aires de section droite differentes ont ete affectees aux mailles appartenant au cable no %(k1)s
+"""),
+
+61: _("""
+Le mot-clef facteur < %(k1)s > est inconnu. Contactez les développeurs.
+Note DVP: erreur de cohérence fortran/catalogue.
+"""),
+
+62: _("""
+ numero d"occurence negatif
+"""),
+
+63: _("""
+ pas de blocage de deplacement tangent sur des faces d'elements 3d. rentrer la condition aux limites par ddl_impo ou liaison_ddl
+"""),
+
+64: _("""
+ il faut choisir entre : flux_x , flux_y , flux_zet flun , flun_inf , flun_sup.
+"""),
+
+65: _("""
+ le descripteur_grandeur des forces ne tient pas sur dix entiers codes
+"""),
+
+66: _("""
+ trop de valeurs d'angles, on ne garde que les 3 premiers.
+"""),
+
+67: _("""
+ le mot cle "group_ma" doit etre present a la premiere occurence
+"""),
+
+68: _("""
+ un des mots cles "group_no_orig" ou "noeud_orig" doit etre present a la premiere occurence
+"""),
+
+69: _("""
+ un des mots cles "group_no_extr" ou "noeud_extr" doit etre present a la premiere occurence
+"""),
+
+70: _("""
+ le mot cle "z0" doit etre present a la premiere occurence
+"""),
+
+71: _("""
+ nombre cara_hydr different de vale_hydr
+"""),
+
+72: _("""
+ nombre cara_grappe different de vale_grappe
+"""),
+
+73: _("""
+ nombre cara_commande different de vale_commande
+"""),
+
+74: _("""
+ nombre cara_manchette different de vale_manchette
+"""),
+
+75: _("""
+ nombre cara_guide different de vale_guide
+"""),
+
+76: _("""
+ nombre cara_assemblage different de vale_assemblage
+"""),
+
+77: _("""
+ nombre cara_pdc different de vale_pdc
+"""),
+
+78: _("""
+ erreur: oubli de la table "mass_iner" dans fichier de commandes.
+"""),
+
+79: _("""
+ probleme pour recuperer le "cdg_x" dans %(k1)s
+"""),
+
+80: _("""
+ probleme pour recuperer le "cdg_y" dans %(k1)s
+"""),
+
+81: _("""
+ probleme pour recuperer le "cdg_z" dans %(k1)s
+"""),
+
+82: _("""
+ pour liaison_unif entrer plus de un noeud
+"""),
+
+83: _("""
+ on doit utiliser le mot cle cham_no pour donner le cham_no dont les composantes seront les seconds membres de la relation lineaire.
+"""),
+
+84: _("""
+ il faut que le cham_no dont les termes servent de seconds membres a la relation lineaire a ecrire ait ete defini.
+"""),
+
+85: _("""
+ on doit donner un cham_no apres le mot cle cham_no derriere le mot facteur chamno_impo .
+"""),
+
+86: _("""
+ il faut definir la valeur du coefficient de la relation lineaire apres le mot cle coef_mult derriere le mot facteur chamno_impo .
+"""),
+
+87: _("""
+ le descripteur_grandeur de la grandeur de nom %(k1)s ne tient pas sur dix entiers codes
+"""),
+
+89: _("""
+ Le contenu de la table n'est pas celui attendu !
+"""),
+
+90: _("""
+ Le calcul par l'opérateur <CALC_FLUI_STRU> des paramètres du mode no %(i1)d
+ n'a pas convergé pour la vitesse no %(i2)d. On ne calcule donc pas
+ d'interspectres de réponse modale pour cette vitesse.
+"""),
+
+91: _("""
+La fonction n'a pas été trouvée dans la colonne %(k1)s de la table %(k2)s
+(ou bien le paramètre %(k1)s n'existe pas dans la table).
+"""),
+
+92: _("""
+Les mots-cles admissibles pour definir la premiere liste de noeuds sous le mot-facteur %(k1)s sont :
+"GROUP_NO_1" ou "NOEUD_1" ou "GROUP_MA_1" ou "MAILLE_1".
+"""),
+
+93: _("""
+Les mots-cles admissibles pour definir la seconde liste de noeuds sous le mot-facteur %(k1)s sont :
+"GROUP_NO_2" ou "NOEUD_2" ou "GROUP_MA_2" ou "MAILLE_2".
+"""),
+
+94: _("""
+ LIAISON_GROUP : on ne sait pas calculer la normale a un noeud il faut passer par les mailles
+"""),
+
+95: _("""
+ le groupe %(k1)s ne fait pas partie du maillage : %(k2)s
+"""),
+
+96: _("""
+ %(k1)s %(k2)s ne fait pas partie du maillage : %(k3)s
+"""),
+
+98: _("""
+ on doit utiliser le mot cle cham_no pour donner le cham_no dont les composantes seront les coefficients de la relation lineaire.
+"""),
+
+99: _("""
+ il faut que le cham_no dont les termes servent de coefficients a la relation lineaire a ecrire ait ete defini.
+"""),
+}
--- /dev/null
+#@ MODIF modelisa3 Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ on doit donner un cham_no apres le mot cle cham_no derriere le mot facteur liaison_chamno .
+"""),
+
+2: _("""
+ il faut definir la valeur du second membre de la relation lineaire apres le mot cle coef_impo derriere le mot facteur liaison_chamno .
+"""),
+
+3: _("""
+ la premiere liste de noeuds dont on doit faire le vis a vis n'existe pas.
+"""),
+
+4: _("""
+ la seconde liste de noeuds dont on doit faire le vis a vis n'existe pas.
+"""),
+
+5: _("""
+ la premiere liste de noeuds dont on doit faire le vis a vis est vide.
+"""),
+
+6: _("""
+ la seconde liste de noeuds dont on doit faire le vis a vis est vide.
+"""),
+
+7: _("""
+ impossibilite de faire le vis a vis des 2 listes de noeuds, elles n'ont pas le meme nombre de noeuds apres elimination des doublons.
+"""),
+
+
+
+
+
+
+
+
+9: _("""
+ le mot cle "tran" sous le mot cle facteur %(k1)s n"admet que 3 valeurs
+"""),
+
+10: _("""
+ le mot cle "angl_naut" sous le mot cle facteur %(k1)s n"admet que 3 valeurs
+"""),
+
+11: _("""
+ le mot cle "centre" sous le mot cle facteur %(k1)s n"admet que 3 valeurs
+"""),
+
+12: _("""
+ les listes de noeuds a mettre de vis-a-vis n'ont pas le meme nombre de noeuds
+"""),
+
+13: _("""
+ il n'y a aucun groupe de noeuds ni aucun noeud defini apres le mot facteur %(k1)s
+"""),
+
+14: _("""
+ le mot cle "tran" sous le mot cle facteur %(k1)s n'admet que %(k2)s valeurs
+"""),
+
+15: _("""
+ le mot cle "angl_naut" sous le mot cle facteur %(k1)s n'admet que %(k2)s valeurs
+"""),
+
+16: _("""
+ le mot cle "centre" sous le mot cle facteur %(k1)s n'admet que %(k2)s valeurs
+"""),
+
+17: _("""
+ attention, la liste des noeuds est reduite a un seul terme et l'on ne fait aucun traitement
+"""),
+
+18: _("""
+ la table "cara_geom" n'existe pas dans le maillage
+"""),
+
+19: _("""
+ mailles mal orientees
+"""),
+
+20: _("""
+ pour les seg en 3d, il faut renseigner vect_orie_pou
+"""),
+
+21: _("""
+ pas de normale pour les tria en 2d
+"""),
+
+22: _("""
+ pas de normale pour les quad en 2d
+"""),
+
+23: _("""
+ il est impossible de calculer la tangente de la maille %(k1)s . des noeuds doivent etre confondus.
+"""),
+
+24: _("""
+ il est impossible de calculer la normale de la maille %(k1)s . des noeuds doivent etre confondus.
+"""),
+
+25: _("""
+ impossible de calculer la normale d un segment en 3d
+"""),
+
+26: _("""
+ il est impossible de calculer la normale de la maille %(k1)s . des aretes doivent etre confondues.
+"""),
+
+27: _("""
+ type d element inconnu
+"""),
+
+28: _("""
+ la norme du vecteur normal ( ou tangentiel) moyenne est presque nulle. les facettes concourantes au noeud %(k1)s ne definissent pas une normale moyenne fiable . il y a un probleme dans la definition de vos mailles de bord .
+"""),
+
+29: _("""
+ L'angle forme par le vecteur normal courant a 1 face et le vecteur normal moyen, au noeud %(k1)s , est superieur a 10 degres et vaut %(k2)s degres.
+"""),
+
+30: _("""
+Erreur d'utilisation :
+ La norme du vecteur normal (moyenne des normales des éléments concourants) est presque nulle.
+ Les facettes concourantes au noeud %(k1)s ne definissent pas une normale fiable.
+ Il y a un probleme dans la definition des mailles de bord .
+
+Suggestion :
+ Avez-vous pensé à réorienter les mailles de bord avec l'operateur MODI_MAILLAGE
+"""),
+
+31: _("""
+ l'angle forme par le vecteur normal courant a 1 face et le vecteur normal moyenne, au noeud %(k1)s , est superieur a 10 degres et vaut %(k2)s degres.
+"""),
+
+32: _("""
+ que des sections circulaires !
+"""),
+
+33: _("""
+ pb pour recuperer "r1" pour la maille %(k1)s
+"""),
+
+34: _("""
+ pb pour recuperer "r2" pour la maille %(k1)s
+"""),
+
+35: _("""
+ probleme pour determiner le rang de la composante <n> de la grandeur <sief_r>
+"""),
+
+36: _("""
+ le concept %(k1)s n est pas un concept de type cabl_precont
+"""),
+
+37: _("""
+ erreur a l appel de la routine etenca pour extension de la carte %(k1)s
+"""),
+
+
+39: _("""
+ liaison unilaterale ni reelle, ni fonction
+"""),
+
+40: _("""
+ ne correspond a aucune methode de liaison_unilaterale
+"""),
+
+41: _("""
+ une seule methode pour toutes les liaisons unilaterales
+"""),
+
+42: _("""
+ le nombre de coef_mult n est pas egal au nombre de grandeurs
+"""),
+
+43: _("""
+ trop de grandeurs dans la liaison unilaterale
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+60: _("""
+ on ne donne le mot facteur "convection" qu"une fois au maximum
+"""),
+
+61: _("""
+ le type s est interdit en 3d
+"""),
+
+62: _("""
+ les types sv ou sh sont interdits en 2d
+"""),
+
+63: _("""
+ donner un vecteur non nul
+"""),
+
+64: _("""
+ nombre d occurence du mot cle "sour_calculee" superieur a 1
+"""),
+
+
+
+
+
+
+66: _("""
+ la dimension du maillage ne correspond pas a la dimension des elements
+"""),
+
+67: _("""
+ on doit utiliser obligatoirement le mot-cle dist pour definir la demi-largeur de bande.
+"""),
+
+68: _("""
+ on doit donner une distance strictement positive pour definir la bande.
+"""),
+
+69: _("""
+ on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option bande de crea_group_ma. ce mot-cle permet de definir la direction perpendiculaire au plan milieu de la bande.
+"""),
+
+70: _("""
+ pour l'option bande de crea_group_ma, il faut definir les 3 composantes du vecteur perpendiculaire au plan milieu de la bande quand on est en 3d.
+"""),
+
+71: _("""
+ pour l'option bande de crea_group_ma, il faut definir les 2 composantes du vecteur perpendiculaire au plan milieu de la bande quand on est en 2d.
+"""),
+
+72: _("""
+ erreur dans la donnee du vecteur normal au plan milieu de la bande : ce vecteur est nul.
+"""),
+
+73: _("""
+ l'option cylindre de crea_group_ma n'est utilisable qu'en 3d.
+"""),
+
+74: _("""
+ on doit utiliser obligatoirement le mot-cle rayon pour definir le rayon du cylindre.
+"""),
+
+75: _("""
+ on doit donner un rayon strictement positif pour definir la cylindre.
+"""),
+
+76: _("""
+ on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option cylindre de crea_group_ma
+"""),
+
+77: _("""
+ pour l'option cylindre de crea_group_ma, il faut definir les 3 composantes du vecteur orientant l'axe du cylindre quand on utilise le mot cle vect_normale.
+"""),
+
+78: _("""
+ pour l'option cylindre de crea_group_ma, il faut definir les 2 angles nautiques quand on utilise le mot cle "angl_naut".
+"""),
+
+79: _("""
+ erreur dans la donnee du vecteur orientant l'axe du cylindre,ce vecteur est nul.
+"""),
+
+80: _("""
+ on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option face_normale de crea_group_ma
+"""),
+
+81: _("""
+ erreur dans la donnee du vecteur normal selon lequel on veut selectionner des mailles : ce vecteur est nul.
+"""),
+
+82: _("""
+ on doit utiliser obligatoirement le mot-cle rayon pour definir le rayon de la sphere.
+"""),
+
+83: _("""
+ on doit donner un rayon strictement positif pour definir la sphere.
+"""),
+
+84: _("""
+ l'option env_cylindre de crea_group_no n'est utilisable qu'en 3d.
+"""),
+
+85: _("""
+ on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option env_cylindre de crea_group_no
+"""),
+
+86: _("""
+ pour l'option env_cylindre de crea_group_no, il faut definir les 3 composantes du vecteur orientant l'axe du cylindre quand on utilise le mot cle "vect_normale".
+"""),
+
+87: _("""
+ pour l'option env_cylindre de crea_group_no, il faut definir les 2 angles nautiques quand on utilise le mot cle "angl_naut".
+"""),
+
+88: _("""
+ le mot-cle precision est obligatoire apres le mot-cle env_cyli pour definir la tolerance (i.e. la distance du point a l'enveloppe du cylindre) acceptee pour declarer l'appartenance du point a cette enveloppe.
+"""),
+
+89: _("""
+ on doit donner une demi-epaisseur strictement positive definir l'enveloppe du cylindre.
+"""),
+
+90: _("""
+ le mot-cle precision est obligatoire apres le mot-cle env_sphe pour definir la tolerance (i.e. la distance du point a l'enveloppe de la sphere) acceptee pour declarer l'appartenance du point a cette enveloppe.
+"""),
+
+91: _("""
+ on doit donner une demi-epaisseur strictement positive definir l'enveloppe de la sphere.
+"""),
+
+92: _("""
+ erreur dans la donnee du vecteur orientant l'axe d'un segment ,ce vecteur est nul.
+"""),
+
+93: _("""
+ on doit utiliser obligatoirement le mot-cle angl_naut ou le mot-cle vect_normale pour l'option plan de crea_group_no. ce mot-cle permet de definir la direction perpendiculaire au plan ou a la droite.
+"""),
+
+94: _("""
+ pour l'option plan de crea_group_no, il faut definir les 3 composantes du vecteur perpendiculaire au plan.
+"""),
+
+95: _("""
+ pour l'option plan de crea_group_no, il faut definir les 2 composantes du vecteur perpendiculaire a la droite.
+"""),
+
+96: _("""
+ erreur dans la donnee du vecteur normal au plan ou a la droite : ce vecteur est nul.
+"""),
+
+97: _("""
+ le mot-cle precision est obligatoire apres le mot-cle plan pour definir la tolerance (i.e. la distance du point au plan ou a la droite) acceptee pour declarer l'appartenance du point a ce plan ou a cette droite.
+"""),
+
+98: _("""
+ on doit donner une tolerance strictement positive pour verifier l'appartenance d'un noeud au plan ou a la droite.
+"""),
+
+99: _("""
+ il manque l'ensemble des noeuds que l'on veut ordonner, mots cles "noeud" et/ou "group_no"
+"""),
+}
--- /dev/null
+#@ MODIF modelisa4 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ arret sur erreurs
+"""),
+
+2: _("""
+ type inconnu verifier le call a charci
+"""),
+
+3: _("""
+ ddl inconnu
+"""),
+
+4: _("""
+ -> Le modèle contient un mélange de modélisations planes et volumiques
+ ou bien il contient des sous-structures statiques.
+
+ -> Risque & Conseil :
+ Sur ce genre de modèle, on ne sait pas déterminer s'il est 2D ou 3D.
+ Parfois, cela empeche de faire le "bon choix".
+"""),
+
+5: _("""
+ mot-cle %(k1)s interdit en 2d
+"""),
+
+6: _("""
+ -> Phase de vérification du maillage : présence de noeuds orphelins.
+ Les noeuds orphelins sont des noeuds qui n'appartiennent à aucune maille.
+"""),
+
+7: _("""
+ certains noeuds connectent plus de 200 mailles. ces mailles ne sont pas verifiees.
+"""),
+
+8: _("""
+ -> Phase de vérification du maillage : présence de mailles doubles (ou triples, ...)
+ Les mailles multiples sont des mailles de noms différents qui ont la meme connectivité
+ (elles s'appuient sur les memes noeuds).
+
+ -> Risque & Conseil :
+ Le risque est de modéliser 2 fois (ou plus) l'espace. On peut par exemple avoir
+ un modèle 2 fois trop lourd ou 2 fois trop rigide.
+ Remarque : les mailles concernées sont imprimées dans le fichier "message".
+ Sur ce maillage, il est imprudent d'affecter des quantités avec le mot clé TOUT='OUI'.
+"""),
+
+9: _("""
+ -> Phase de vérification du maillage : présence de mailles aplaties.
+
+ -> Risque & Conseil :
+ Vérifiez votre maillage. La présence de telles mailles peut conduire à des
+ problèmes de convergence et nuire à la qualité des résultats.
+"""),
+
+10: _("""
+ - chckma phase de verification du maillage - mailles degenerees
+"""),
+
+
+
+
+
+
+12: _("""
+ type de chgt de repere non prevu.
+"""),
+
+13: _("""
+ seule la grandeur neut_f est traitee actuellement.
+"""),
+
+14: _("""
+ les champs de cham_f et cham_para n'ont pas la meme discretisation noeu/cart/elga/elno/elem.
+"""),
+
+15: _("""
+ eval. carte: pas encore
+"""),
+
+16: _("""
+ avec "noeud_cmp", il faut donner un nom et une composante.
+"""),
+
+17: _("""
+ pour recuperer le champ de geometrie, il faut utiliser le mot cle maillage
+"""),
+
+18: _("""
+ le mot-cle type_champ = %(k1)s n'est pas coherent avec le type du champ extrait : %(k2)s _ %(k3)s
+"""),
+
+19: _("""
+ on ne peut extraire qu'1 numero d'ordre. vous en avez specifie plusieurs.
+"""),
+
+20: _("""
+ on est dans le cas d'un contact point-point et le vecteur vect_norm_escl n'a pas ete renseigne
+"""),
+
+21: _("""
+ impossibilite, la maille %(k1)s doit etre une maille de peau de type "quad" ou "tria" car on est en 3d et elle est de type : %(k2)s
+"""),
+
+22: _("""
+ impossibilite, soit la maille %(k1)s doit etre une maille de peau de type "seg" car on est en 2d et elle est de type : %(k2)s , soit il faut renseigner "vect_pou_z" en 3d
+"""),
+
+23: _("""
+ impossibilite, la maille %(k1)s doit etre une maille de peau de type "seg" car on est en 2d et elle est de type : %(k2)s
+"""),
+
+24: _("""
+ arret sur erreur(s), normale non sortante
+"""),
+
+25: _("""
+ la liste : %(k1)s a concatener avec la liste %(k2)s doit exister
+"""),
+
+26: _("""
+ on ne peut pas affecter la liste de longueur nulle %(k1)s a la liste %(k2)s qui n'existe pas
+"""),
+
+27: _("""
+ la concatenation de listes de type %(k1)s n'est pas encore prevue.
+"""),
+
+28: _("""
+ <coefal> le numero de correlation et/ou le type de reseau passes dans le fichier de commande ne sont pas coherents avec le fichier .70
+"""),
+
+29: _("""
+ <coefam> le numero de correlation et/ou le type de reseau passes dans le fichier de commande ne sont pas coherents avec le fichier .70
+"""),
+
+30: _("""
+ <coefam> ce type de reseau n est pas encore implante dans le code
+"""),
+
+31: _("""
+ <coefra> le numero de correlation et/ou le type de reseau passes dans le fichier de commande ne sont pas coherents avec le fichier .71
+"""),
+
+32: _("""
+ <coefra> ce type de reseau n est pas encore implante dans le code
+"""),
+
+33: _("""
+ <coefrl> le numero de correlation et/ou le type de reseau passes dans le fichier de commande ne sont pas coherents avec le fichier .71
+"""),
+
+34: _("""
+ les ligrels a concatener ne referencent pas le meme maillage.
+"""),
+
+35: _("""
+ jacobien negatif
+"""),
+
+36: _("""
+ scal nul
+"""),
+
+37: _("""
+ on essaie de creer ou d'agrandir le ligrel de charge avec un nombre de termes negatif ou nul
+"""),
+
+38: _("""
+ depassement tableau (dvlp)
+"""),
+
+39: _("""
+ probleme rencontre lors de l interpolation d une des deformees modales
+"""),
+
+40: _("""
+ probleme rencontre lors de l interpolation d une des fonctions
+"""),
+
+41: _("""
+ probleme dans le cas 3d ou les noeuds sont alignes, la distance separant 2 noeuds non-identiques de la liste est trop petite
+"""),
+
+42: _("""
+ -> Mélange de mailles quadratiques avec des QUAD8. Aster supprime la liaison
+ sur le noeud milieu des QUAD8
+ -> Risque & Conseil :
+ Le problème de contact avec des mailles quadratiques est mal traité dans Aster, vous risquez d'obtenir des
+ pressions de contact oscillantes entre noeuds milieux et noeuds sommets. Essayez, dans la mesure du possible,
+ d'utiliser des éléments linéaires.
+"""),
+
+43: _("""
+ incoherence car aucun noeud n'a de ddl drz et la routine traite le cas 2d ou il y a au-moins un ddl drz
+"""),
+
+44: _("""
+ incoherence car aucun noeud n'a de ddl derotation drx et dry et drz et la routine traite le cas 3d ou il y a au-moins un noeud ayant ces 3 ddls
+"""),
+
+45: _("""
+ erreur sur nmaco
+"""),
+
+46: _("""
+ erreur sur nnoco
+"""),
+
+47: _("""
+ erreur sur nnoqua
+"""),
+
+48: _("""
+ aucun noeud n est affecte par liaison_unilaterale
+"""),
+
+49: _("""
+ depassement capacite (dvlp)
+"""),
+
+50: _("""
+ la maille : %(k1)s n'est pas affectee par un element fini.
+"""),
+
+51: _("""
+ incoherence .flii pour ligrel %(k1)s
+"""),
+
+52: _("""
+ mot cle inconnu (ni maille, ni group_ma
+"""),
+
+53: _("""
+ le noeud d application de l excitation n est pas un noeud du maillage.
+"""),
+
+54: _("""
+ le noeud d application de l excitation ne doit pas etre situe au bord du domaine de definition du maillage.
+"""),
+
+55: _("""
+ la fenetre excitee deborde du domaine de definition du maillage.
+"""),
+
+56: _("""
+ la demi-fenetre excitee en amont du noeud central d application n est pas definie.
+"""),
+
+57: _("""
+ la demi-fenetre excitee en amont du noeud central d application deborde du domaine de definition du maillage.
+"""),
+
+58: _("""
+ les demi-fenetres excitees en aval et en amont du noeud central d application ne sont pas raccordees.
+"""),
+
+59: _("""
+ la demi-fenetre excitee en aval du noeud central d application n est pas definie.
+"""),
+
+60: _("""
+ la demi-fenetre excitee en aval du noeud central d application deborde du domaine de definition du maillage.
+"""),
+
+61: _("""
+ les fonctions interpretees doivent etre tabulees auparavant
+"""),
+
+62: _("""
+ nappe interdite pour definir le flux
+"""),
+
+63: _("""
+ on deborde a gauche
+"""),
+
+64: _("""
+ prolongement gauche inconnu
+"""),
+
+65: _("""
+ on deborde a droite
+"""),
+
+66: _("""
+ prolongement droite inconnu
+"""),
+
+67: _("""
+ on est en dehors des bornes
+"""),
+
+68: _("""
+ les mailles de type %(k1)s ne sont pas traitees pour la selection des noeuds
+"""),
+
+69: _("""
+ on ne sait plus trouver de noms.
+"""),
+
+70: _("""
+ erreur : deux noeuds du cable sont confondus on ne peut pas definir le cylindre.
+"""),
+
+71: _("""
+ immersion du cable no %(k1)s dans la structure beton : le noeud %(k2)s se trouve a l'exterieur de la structure
+"""),
+
+72: _("""
+ maille degeneree
+"""),
+
+73: _("""
+ .nommai du maillage inexistant : %(k1)s
+"""),
+
+74: _("""
+ .groupema du maillage inexistant : %(k1)s
+"""),
+
+75: _("""
+ le determinant de la matrice a inverser est nul
+"""),
+
+76: _("""
+ le vecteur normal est dans le plan tangent
+"""),
+
+77: _("""
+ %(k1)s mot cle lu " %(k2)s " incompatible avec " %(k3)s "
+"""),
+
+78: _("""
+ lecture 1 :erreur de lecture pour %(k1)s
+"""),
+
+79: _("""
+ lecture 1 :item > 24 car %(k1)s
+"""),
+
+80: _("""
+ %(k1)s le groupe %(k2)s est vide
+"""),
+
+81: _("""
+ %(k1)s erreur de syntaxe : mot cle " %(k2)s " non reconnu
+"""),
+
+82: _("""
+ %(k1)s mot cle " %(k2)s " ignore
+"""),
+
+83: _("""
+ le ligret %(k1)s n"existe pas.
+"""),
+
+84: _("""
+ erreur sur ipma
+"""),
+
+85: _("""
+ erreur sur ipno
+"""),
+
+86: _("""
+ erreur sur ipnoqu
+"""),
+
+87: _("""
+ mauvaise sortie de palima
+"""),
+
+88: _("""
+ pb lecture courbe de wohler
+"""),
+
+89: _("""
+ mot cle wohler non trouve
+"""),
+
+90: _("""
+ pb lecture courbe de manson_coffin
+"""),
+
+91: _("""
+ mot cle manson_coffin non trouve
+"""),
+
+92: _("""
+ lecture 1 : ligne lue trop longue : %(k1)s
+"""),
+
+93: _("""
+ %(k1)s il manque le mot fin !??!
+"""),
+
+94: _("""
+ lecture 1 : erreur de syntaxe detectee
+"""),
+
+95: _("""
+ inom a une valeur inattendue : %(k1)s
+"""),
+
+96: _("""
+ "nblige=" nb lignes entete
+"""),
+
+97: _("""
+ le nom du groupe %(k1)s est tronque a 8 caracteres
+"""),
+
+98: _("""
+ il faut un nom apres "nom="
+"""),
+
+99: _("""
+ lirtet: sortie anormale
+"""),
+}
--- /dev/null
+#@ MODIF modelisa5 Messages DATE 30/05/2007 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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ erreur fortran de dimensionnement de tableau (nbmmai>nbmmax)
+"""),
+
+2: _("""
+ lecture 1 : il manque les coordonnees !
+"""),
+
+3: _("""
+ lecture 1 : il manque les mailles !
+"""),
+
+4: _("""
+ transcodage : le noeud %(k1)s declare dans la connectivite de la maille %(k2)s n existe pas dans les coordonnees
+"""),
+
+5: _("""
+ transcodage : le noeud %(k1)s declare dans le group_no: %(k2)s n'existe pas dans les coordonnees
+"""),
+
+6: _("""
+ le noeud : %(k1)s est en double dans le group_no: %(k2)s . on elimine les doublons
+"""),
+
+7: _("""
+ transcodage : la maille %(k1)s declare dans le group_ma: %(k2)s n'existe pas dans les connectivitees
+"""),
+
+8: _("""
+ la maille : %(k1)s est en double dans le group_ma: %(k2)s . on elimine les doublons
+"""),
+
+9: _("""
+ transcodage : une incoherence a ete detectee entre les declarations de noms de noeuds ou de mailles lors du transcodage des objets groupes et connectivitees
+"""),
+
+10: _("""
+ med: erreur eflfde numero %(k1)s
+"""),
+
+11: _("""
+ med: erreur effien numero %(k1)s
+"""),
+
+12: _("""
+ probleme a la lecture de la description
+"""),
+
+13: _("""
+ impossible de retrouver l'adresse associee au groupe %(k1)s
+"""),
+
+14: _("""
+ MED : Erreur lors de l'appel à EFNEMA, code retour = %(k1)s
+
+ -> Risque & Conseil :
+ Vérifier l'intégrité du fichier MED avec medconforme/mdump.
+ Si le maillage a été produit par un code externe, vérifier que les
+ noms de maillage, de groupes, de familles ne contiennent pas de
+ blancs à la fin.
+ Dans Salomé, on peut renommer ces entités et supprimer les espaces
+ invalides.
+"""),
+
+15: _("""
+ il manque les coordonnees !
+"""),
+
+16: _("""
+ mailles %(k1)s
+"""),
+
+17: _("""
+ il manque les mailles !
+"""),
+
+18: _("""
+ med: erreur efngro numero %(k1)s
+"""),
+
+19: _("""
+ med: erreur efnatt numero %(k1)s
+"""),
+
+20: _("""
+ med: erreur effami numero %(k1)s
+"""),
+
+23: _("""
+ erreur numero de groupe = 0
+"""),
+
+24: _("""
+ med: erreur efnfam numero %(k1)s
+"""),
+
+25: _("""
+ aucune famille dans ce fichier med
+"""),
+
+26: _("""
+ med: erreur effaml numero %(k1)s
+"""),
+
+27: _("""
+ les mailles %(k1)s ne sont pas nommees dans le fichier med
+"""),
+
+28: _("""
+ med: erreur efconl numero %(k1)s
+"""),
+
+29: _("""
+ med: erreur efcool numero %(k1)s
+"""),
+
+30: _("""
+ incoherence catalogue - fortran (nbtyp fortran different de nbtyp catalogue)
+"""),
+
+31: _("""
+ incoherence catalogue - fortran (nomtyp fortran different de nomtyp catalogue)
+"""),
+
+32: _("""
+ il faut fournir des mailles
+"""),
+
+33: _("""
+ on attend 1 et 1 seule maille
+"""),
+
+34: _("""
+ on n'a pas trouve la maille
+"""),
+
+35: _("""
+ que des mailles de type "seg"
+"""),
+
+36: _("""
+ un group_ma n'a pas de nom, suppression de ce groupe.
+"""),
+
+37: _("""
+ un group_no n'a pas de nom, suppression de ce groupe.
+"""),
+
+38: _("""
+ type d extraction interdit (dvlp)
+"""),
+
+39: _("""
+ projection quadratique interdite avec mailles linearisees
+"""),
+
+40: _("""
+ absence de convergence j
+"""),
+
+41: _("""
+ absence de convergence i
+"""),
+
+42: _("""
+ pas de convergence
+"""),
+
+43: _("""
+ erreur programmeur. type de maille inconnu
+"""),
+
+44: _("""
+ parametre beta non trouve
+"""),
+
+45: _("""
+ parametre lambda non trouve
+"""),
+
+
+
+
+
+
+
+
+47: _("""
+ parametre affinite non trouve
+"""),
+
+48: _("""
+ option calcul de l absc_curv sur un group_ma non implantee.
+"""),
+
+49: _("""
+ -> La phase de vérification du maillage a été volontairement désactivée.
+
+ -> Risque & Conseil :
+ Soyez sur de votre maillage. Si des mailles dégénérées sont présentes elles
+ ne seront pas détectées. Cela pourra nuire à la qualité des résultats.
+"""),
+
+50: _("""
+ la grandeur associee au mot cle: %(k1)s doit etre: %(k2)s mais elle est: %(k3)s
+"""),
+
+51: _("""
+ pour affecter une liste de modelisations, il faut qu'elles soient de meme dimension topologique.
+"""),
+
+52: _("""
+ aucune maille n a ete affectee par des elements finis pour le maillage %(k1)s
+"""),
+
+53: _("""
+ -> Le maillage est 3D mais les éléments du modèle sont 2D.
+
+ -> Risque & Conseil :
+ Si les facettes supportant les éléments ne sont pas dans un plan Z = cste,
+ les résultats seront faux.
+ Assurez-vous de la cohérence entre les mailles à affecter et la
+ modélisation souhaitée dans la commande AFFE_MODELE.
+"""),
+
+54: _("""
+ il est interdit d'avoir ,pour un modele donne, a la fois des elements discrets 2d et 3d .
+"""),
+
+55: _("""
+ verif : 2 arguments maxi
+"""),
+
+56: _("""
+ il manque le mot cle facteurpoutre.
+"""),
+
+57: _("""
+ erreur(s) rencontree(s) lors de la verification des affectations.
+"""),
+
+#_VIDE 58
+
+59: _("""
+ une erreur d affectation a ete detectee : certaines mailles demandees possedent un type element incompatible avec les donnees a affecter
+"""),
+
+60: _("""
+ des poutres ne sont pas affectees
+"""),
+
+61: _("""
+ des barres ne sont pas affectees
+"""),
+
+62: _("""
+ des cables ne sont pas affectes
+"""),
+
+63: _("""
+ le parametre "rho" n'est pas defini pour toutes les couches.
+"""),
+
+64: _("""
+ un seul elas svp
+"""),
+
+65: _("""
+ <faisceau_trans> deux zones d excitation du fluide ont meme nom
+"""),
+
+66: _("""
+ spec_exci_point : si inte_spec alors autant d arguments pour nature, angl et noeud
+"""),
+
+67: _("""
+ spec_exci_point : si grappe_2 alors un seul noeud
+"""),
+
+68: _("""
+ spec_fonc_forme : le nombre de fonctions fournies doit etre egal a la dimension de la matrice interspectrale
+"""),
+
+69: _("""
+ spec_exci_point : le nombre d arguments pour nature, angl et noeud doit etre egal a la dimension de la matrice interspectrale
+"""),
+
+70: _("""
+ mauvaise definition de la plage de frequence.
+"""),
+
+71: _("""
+ mauvaise definition de la plage de frequence. les modeles ne tolerent pas des valeurs negatives ou nulles.
+"""),
+
+72: _("""
+ le nombre de points pour la discr. freq. doit etre une puissance de 2.
+"""),
+
+73: _("""
+ les spectres de type "longueur de correlation" ne peuvent etre combines avec des spectres d un autre type.
+"""),
+
+74: _("""
+ le spectre de nom %(k1)s est associe a la zone %(k2)s qui n existe pas dans le concept %(k3)s
+"""),
+
+75: _("""
+ le spectre de nom %(k1)s est associe a la zone de nom %(k2)s
+"""),
+
+76: _("""
+ deux spectres sont identiques
+"""),
+
+77: _("""
+ les spectres de noms %(k1)s et %(k2)s sont associes au meme profil de vitesse, de nom %(k3)s
+"""),
+
+78: _("""
+ pas le bon numero de mode
+"""),
+
+79: _("""
+ le calcul de tous les interspectres de reponse modale n est pas possible car seuls les autospectres d excitation ont ete calcules.
+"""),
+
+80: _("""
+ la composante selectionnee pour la restitution en base physique des interspectres est differente de celle choisie pour le couplage fluide-structure.
+"""),
+
+81: _("""
+ la tabl_intsp de reponse modale ne contient que des autospectres. le calcul demande n est donc pas realisable.
+"""),
+
+82: _("""
+ le champ des contraintes modales doit etre calcule par <calc_elem> option <sipo_elno_depl>.
+"""),
+
+83: _("""
+ mot-cle <defi_cable>, occurence no %(k1)s , operande <noeud_ancrage> : il faut definir 2 noeuds d'ancrage
+"""),
+
+84: _("""
+ mot-cle <defi_cable>, occurence no %(k1)s , operande <group_no_ancrage> : il faut definir 2 group_no d'ancrage
+"""),
+
+85: _("""
+ mot-cle <defi_cable>, occurence no %(k1)s , operande <noeud_ancrage> : les 2 noeuds d'ancrage doivent etre distincts
+"""),
+
+86: _("""
+ mot-cle <defi_cable>, occurence no %(k1)s , operande <group_no_ancrage> : les 2 group_no d'ancrage doivent etre distincts
+"""),
+
+87: _("""
+ mot-cle <defi_cable>, occurence no %(k1)s , operande type ancrage : les 2 extremites sont passives -> armature passive
+"""),
+
+88: _("""
+ mot-cle <defi_cable>, occurence no %(k1)s , operande type ancrage : les 2 extremites sont passives et la tension que vous voulezimposer est non-nulle : impossible !
+"""),
+
+89: _("""
+ la carte des caracteristiques materielles des elements n existe pas. il faut prealablement affecter ces caracteristiques en utilisant la commande <affe_materiau>
+"""),
+
+90: _("""
+ la carte des caracteristiques geometriques des elements de barre de section generale n existe pas. il faut prealablement affecter ces caracteristiques en utilisant la commande <affe_cara_elem>
+"""),
+
+91: _("""
+ probleme pour determiner le rang de la composante <a1> de la grandeur <cagnba>
+"""),
+
+92: _("""
+ probleme sur une relation : les coefficients sont trop petits
+"""),
+
+
+
+
+
+
+94: _("""
+ impossibilite, la maille %(k1)s doit etre une maille de peau, i.e. de type "quad" ou "tria" en 3d ou de type "seg" en 2d, et elle est de type : %(k2)s
+"""),
+
+95: _("""
+ vous avez utilise le mot cle orie_peau_2d alors que le probleme est 3d. utilisez orie_peau_3d
+"""),
+
+96: _("""
+ vous avez utilise le mot cle orie_peau_3d alors que le probleme est 2d. utilisez orie_peau_2d
+"""),
+
+97: _("""
+ erreur donnees : le noeud %(k1)s n'existe pas
+"""),
+
+98: _("""
+ impossibilite de melanger des "seg" et des "tria" ou "quad" !
+"""),
+
+99: _("""
+ impossibilité de vérifier l'orientation des mailles de bord : on trouve des groupes de mailles disjoints dans la liste de mailles de bords fournie.
+ vérifier que les groupes de mailles de bord définis forment un ensemble connexe.
+"""),
+}
--- /dev/null
+#@ MODIF modelisa6 Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ probleme d'orientation: aucune maille ne touche le noeud indique.
+"""),
+
+2: _("""
+ certaines mailles n'ont pas pu etre reorientees. l'ensemble des mailles n'est pas connexe.
+"""),
+
+3: _("""
+ on ne trouve pas de noeud assez pres du noeud %(k1)s
+"""),
+
+4: _("""
+ erreurs dans les donnees
+"""),
+
+5: _("""
+ extraction de plus de noeuds que n"en contient la maille
+"""),
+
+6: _("""
+ nombre de noeuds negatif
+"""),
+
+7: _("""
+ nombre de noeuds sommets non prevu
+"""),
+
+8: _("""
+ on est sur 2 mailles orthgonales
+"""),
+
+9: _("""
+ type de maille inconnue
+"""),
+
+10: _("""
+ la maille %(k1)s ne fait pas partie du maillage %(k2)s
+"""),
+
+11: _("""
+ pref_maille est trop long, pref_nume est trop grand.
+"""),
+
+12: _("""
+ pref_maille est trop long
+"""),
+
+13: _("""
+ sous %(k1)s : ( %(k2)s le groupe %(k3)s ne fait pas partie du maillage : %(k4)s
+"""),
+
+14: _("""
+ sous %(k1)s : ( %(k2)s arret sur erreur(s) utilisateur.
+"""),
+
+15: _("""
+ sous %(k1)s : ( %(k2)s : la maille %(k3)s ne fait pas partie du maillage : %(k4)s
+"""),
+
+16: _("""
+ le noeuds : %(k1)s ne fait pas partie du maillage
+"""),
+
+17: _("""
+ la maille %(k1)s du group_ma %(k2)s donne apres le mot cle %(k3)s n'a pas un type geometrique autorise.
+"""),
+
+18: _("""
+ la maille %(k1)s donne apres le mot cle %(k2)s n'a pas un type geometrique autorise.
+"""),
+
+19: _("""
+ mot cle non admis : %(k1)s les mots-cles admissibles sont : %(k2)s ou %(k3)s ou %(k4)s ou %(k5)s ou %(k6)s ou %(k7)s ou %(k8)s ou %(k9)s
+"""),
+
+20: _("""
+ ce type de maille n"est pas encore traite : %(k1)s
+"""),
+
+21: _("""
+ le nombre toal de noeuds est /= de la somme des noeuds sommets,arretes et interieurs
+"""),
+
+22: _("""
+ les 2 listes %(k1)s et %(k2)s ne sont pas de meme longueur
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+26: _("""
+ affe_fibre pour " %(k1)s ": il y a %(k2)s valeurs pour "vale", ce devrait etre un multiple de 3
+"""),
+
+27: _("""
+ dans le maillage " %(k1)s " la maille " %(k2)s " est de type " %(k3)s " (ni tria3 ni quad4)
+"""),
+
+28: _("""
+ erreur nbzoco/symetrique
+"""),
+
+29: _("""
+ erreur nbsuco/symetrique
+"""),
+
+30: _("""
+ l'indicateur : %(k1)s de position des multiplicateurs de lagrange associes a une relation lineaire n'est pas correct.
+"""),
+
+
+33: _("""
+ il faut coef_group ou fonc_group
+"""),
+
+34: _("""
+ un element n'est ni tria3 ni tria6 ni quad4 ni quad8
+"""),
+
+35: _("""
+ un element n'est ni tria3 ni tria6 ni tria7 niquad4 ni quad8 ni quad9
+"""),
+
+36: _("""
+ le noeud %(k1)s doit appartenir a une seule maille
+"""),
+
+37: _("""
+ la maille a laquelle appartient le noeud %(k1)s doit etre de type seg3
+"""),
+
+38: _("""
+ on ne trouve pas les angles nautiques pour le tuyau
+"""),
+
+39: _("""
+ option %(k1)s invalide
+"""),
+
+40: _("""
+ il faut indiquer le mot-cle 'noeud_2' ou 'group_no_2' apres le mot-facteur %(k1)s pour l'option '3d_pou'.
+"""),
+
+41: _("""
+ il ne faut donner qu'un seul noeud de poutre a raccorder au massif.
+"""),
+
+42: _("""
+ il ne faut donner qu'un un seul group_no a un noeud a raccorder au massif.
+"""),
+
+43: _("""
+ il ne faut donner q"un seul noeud dans le group_no : %(k1)s
+"""),
+
+44: _("""
+ impossibilite,le noeud %(k1)s porte le ddl de rotation %(k2)s
+"""),
+
+45: _("""
+ impossibilite,le noeud poutre %(k1)s devrait porter le ddl %(k2)s
+"""),
+
+46: _("""
+ impossibilite, la surface de raccord du massif est nulle
+"""),
+
+47: _("""
+ il faut donner un cara_elem pour recuperer les caracteristiques de tuyau.
+"""),
+
+48: _("""
+ il faut indiquer le mot-cle 'noeud_2' ou 'group_no_2' apres le mot-facteur %(k1)s pour l'option %(k2)s
+"""),
+
+49: _("""
+ il ne faut donner qu'un seul noeud de poutre a raccorder a la coque.
+"""),
+
+50: _("""
+ il ne faut donner qu'un un seul group_no a un noeud a raccorder a la coque.
+"""),
+
+51: _("""
+ il faut donner un vecteur orientant l'axe de la poutre sous le mot-cle "axe_poutre".
+"""),
+
+52: _("""
+ il faut donner un vecteur non nul orientant l'axe de la poutre sous le mot-cle "axe_poutre".
+"""),
+
+53: _("""
+ il faut donner un cara_elem pour recuperer l'epaisseur des elements de bord.
+"""),
+
+54: _("""
+ impossibilite,le noeud %(k1)s ne porte pas le ddl de rotation %(k2)s
+"""),
+
+55: _("""
+ impossibilite, la surface de raccord de la coque est nulle
+"""),
+
+56: _("""
+ plusieurs comportements de type %(k1)s ont ete trouves
+"""),
+
+57: _("""
+ comportement de type %(k1)s non trouve
+"""),
+
+58: _("""
+ nappe interdite pour les caracteristiques materiau
+"""),
+
+59: _("""
+ deformation plastique cumulee p < 0
+"""),
+
+60: _("""
+ prolongement a droite exclu pour la fonction r(p)
+"""),
+
+61: _("""
+ on deborde a droite redefinissez vos nappes alpha - moment
+"""),
+
+62: _("""
+ la limite d elasticite est deja renseignee dans elas_meta
+"""),
+
+63: _("""
+ objet %(k1)s .materiau.nomrc non trouve
+"""),
+
+64: _("""
+ type sd non traite: %(k1)s
+"""),
+
+
+
+
+
+
+66: _("""
+ fonction constante interdite pour la courbe mz=f(drz)
+"""),
+
+67: _("""
+ fonction nappe interdite pour la courbe mz=f(drz)
+"""),
+
+68: _("""
+ concept de type : %(k1)s interdit pour la courbe de traction
+"""),
+
+69: _("""
+ le mot cle: %(k1)s est identique (sur ses 8 1ers caracteres) a un autre.
+"""),
+
+70: _("""
+ erreur lors de la definition de la courbe de traction, il manque le parametre : %(k1)s
+"""),
+
+71: _("""
+ erreur lors de la definition de la courbe de traction : %(k1)s nb de points < 2 !
+"""),
+
+72: _("""
+ erreur lors de la definition de la courbe de traction : %(k1)s nb de points < 1 !
+"""),
+
+73: _("""
+ erreurs rencontrees.
+"""),
+
+74: _("""
+ erreur lors de la definition de la nappe des courbes de traction: nb de points < 2 !
+"""),
+
+75: _("""
+ erreur lors de la definition de la nappe des courbes de traction: %(k1)s nb de points < 1 !
+"""),
+
+76: _("""
+ erreur lors de la definition dela courbe de traction: fonction ou nappe !
+"""),
+
+77: _("""
+ erreur lors de la definition de la courbe rela_mz : nb de points < 2 !
+"""),
+
+78: _("""
+ abscisses non croissants.
+"""),
+
+79: _("""
+ erreur lors de la definition dela courbe rela_mz: fonction !
+"""),
+
+80: _("""
+ comportement traction non trouve
+"""),
+
+81: _("""
+ fonction sigm non trouvee
+"""),
+
+82: _("""
+ comportement meta_traction non trouve
+"""),
+
+83: _("""
+ fonction sigm_f1 non trouvee
+"""),
+
+84: _("""
+ fonction sigm_f2 non trouvee
+"""),
+
+85: _("""
+ fonction sigm_f3 non trouvee
+"""),
+
+86: _("""
+ fonction sigm_f4 non trouvee
+"""),
+
+87: _("""
+ fonction sigm_c non trouvee
+"""),
+
+88: _("""
+ fonction constante interdite pour la courbe de traction %(k1)s
+"""),
+
+89: _("""
+ prolongement a gauche exclu pour la courbe %(k1)s
+"""),
+
+90: _("""
+ prolongement a droite exclu pour la courbe %(k1)s
+"""),
+
+91: _("""
+ concept de type : %(k1)s interdit pour la courbe de traction %(k2)s
+"""),
+
+92: _("""
+ materiau : %(k1)s non trouve
+"""),
+
+93: _("""
+ les fonctions complexes ne sont pas implementees
+"""),
+
+94: _("""
+ nb param. > 30 materiau %(k1)s
+"""),
+
+95: _("""
+ mauvaise definition de la plage de frequence, aucun mode pris en compte
+"""),
+
+96: _("""
+ les mailles imprimees ci-dessus n'appartiennent pas au modele et pourtant elles ont ete affectees dans le mot-cle facteur : %(k1)s
+"""),
+
+97: _("""
+ freq init plus grande que freq fin
+"""),
+
+98: _("""
+ freq init necessaire avec chamno
+"""),
+
+99: _("""
+ freq fin necessaire avec chamno
+"""),
+}
--- /dev/null
+#@ MODIF modelisa7 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ pas frequentiel negatif ou nul
+"""),
+
+2: _("""
+ la method est de corcos. on a besoin des vecteurs directeurs vect_x et vect_y de la plaque
+"""),
+
+3: _("""
+ la method est de au-yang. on a besoin du vecteur de l axe vect_x et de l origine orig_axe du cylindre
+"""),
+
+4: _("""
+ le type de spectre est incompatible avec la configuration etudiee
+"""),
+
+5: _("""
+ probleme rencontre lors de l interpolation d un interspectre
+"""),
+
+6: _("""
+ nombre de noeuds insuffisant sur le maillage
+"""),
+
+7: _("""
+ l integrale double pour le calcul de la longueur de correlation ne converge pas.
+"""),
+
+8: _("""
+ la liste de noms doit etre de meme longueur que la liste de group_ma
+"""),
+
+9: _("""
+ le group_no : %(k1)s existe deja, on ne le cree donc pas.
+"""),
+
+10: _("""
+ le nom %(k1)s existe deja
+"""),
+
+11: _("""
+ le groupe %(k1)s existe deja
+"""),
+
+12: _("""
+ erreur programmeur sur dimension de manoco
+"""),
+
+13: _("""
+ erreur programmeur sur dimension de nomaco
+"""),
+
+14: _("""
+ erreur programmeur sur dimension de mamaco
+"""),
+
+15: _("""
+ faisceau_axial : il y a plus de types de grilles que de grilles
+"""),
+
+16: _("""
+ faisceau_axial : il faut autant d'arguments pour les operandes <type_grille> et <coor_grille>
+"""),
+
+17: _("""
+ faisceau_axial, operande <type_grille> : detection d'une valeur illicite
+"""),
+
+18: _("""
+ faisceau_axial : il faut autant d'arguments pour les operandes <long_typg>, <larg_typg>, <epai_typg>, <rugo_typg>, <coef_trai_typg> et <coef_dpor_typg>
+"""),
+
+19: _("""
+ <faisceau_trans> le mot cle <couplage> doit etre renseigne au moins une fois sous l une des occurence du mot-cle facteur <faisceau_trans>
+"""),
+
+20: _("""
+ <faisceau_trans> : si couplage <type_pas> , <type_reseau> et <pas> mots-cles obligatoires dans au moins l une des occurences du mot-cle facteur
+"""),
+
+21: _("""
+ faisceau_trans : si pas de couplage <coef_mass_ajou> mot-cle obligatoire dans au moins l une des occurences du mot cle facteur <faisceau_trans>
+"""),
+
+22: _("""
+ <faisceau_trans> : le mot-cle <cara_elem> doit etre renseigne au moins une fois dans l une des occurences du mot-cle facteur <faisceau_trans>
+"""),
+
+23: _("""
+ <faisceau_trans> : le mot-cle <prof_rho_f_int> doit etre renseigne au moins une fois dans l une des occurences du mot-cle facteur <faisceau_trans>
+"""),
+
+24: _("""
+ <faisceau_trans> : le mot-cle <prof_rho_f_ext> doit etre renseigne au moins une fois dans l une des occurences du mot-cle facteur <faisceau_trans>
+"""),
+
+25: _("""
+ <faisceau_trans> : le mot-cle <nom_cmp> doit etre renseigne au moins une fois dans l une des occurences du mot-cle facteur <faisceau_trans>
+"""),
+
+26: _("""
+ grappe : si prise en compte du couplage, les mots-cles <grappe_2>, <noeud>, <cara_elem>, <modele> et <rho_flui> doivent etre renseignes
+"""),
+
+27: _("""
+ faisceau_axial : plusieurs occurences pour le mot-cle facteur => faisceau equivalent => mots-cles <rayon_tube> et <coor_tube> obligatoires a chaque occurence
+"""),
+
+28: _("""
+ faisceau_axial : on attend un nombre pair d arguments pour le mot-cle <coor_tube>. il faut fournir deux coordonnees pour definir la position de chacun des tubes du faisceau reel
+"""),
+
+29: _("""
+ faisceau_axial : il faut trois composantes pour <vect_x>
+"""),
+
+30: _("""
+ faisceau_axial : le vecteur directeur du faisceau doit etre l un des vecteurs unitaires de la base liee au repere global
+"""),
+
+31: _("""
+ faisceau_axial : il faut 4 donnees pour le mot-cle <pesanteur> : la norme du vecteur et ses composantes dans le repere global, dans cet ordre
+"""),
+
+32: _("""
+ faisceau_axial : il faut 3 ou 4 donnees pour le mot-cle <cara_paroi> : 3 pour une enceinte circulaire : <yc>,<zc>,<r>. 4 pour une enceinte rectangulaire : <yc>,<zc>,<hy>,<hz>
+"""),
+
+33: _("""
+ faisceau_axial : pour definir une enceinte, il faut autant d arguments pour les mots-cles <cara_paroi> et <vale_paroi>
+"""),
+
+34: _("""
+ faisceau_axial : mot-cle <cara_paroi>. donnees incoherentes pour une enceinte circulaire
+"""),
+
+35: _("""
+ faisceau_axial : valeur inacceptable pour le rayon de l enceinte circulaire
+"""),
+
+36: _("""
+ faisceau_axial : mot-cle <cara_paroi>. donnees incoherentes pour une enceinte rectangulaire
+"""),
+
+37: _("""
+ faisceau_axial : valeur(s) inacceptable(s) pour l une ou(et) l autre des dimensions de l enceinte rectangulaire
+"""),
+
+38: _("""
+ faisceau_axial : le mot-cle <angl_vril> est obligatoire quand on definit une enceinte rectangulaire
+"""),
+
+39: _("""
+ faisceau_axial : le mot-cle <vect_x> est obligatoire si il n y a qu une seule occurence pour le mot-cle facteur. sinon, il doit apparaitre dans au moins une des occurences
+"""),
+
+40: _("""
+ faisceau_axial : le mot-cle <prof_rho_flui> est obligatoire si il n y a qu une seule occurence pour le mot-cle facteur. sinon, il doit apparaitre dans au moins une des occurences
+"""),
+
+41: _("""
+ faisceau_axial : le mot-cle <prof_visc_cine> est obligatoire si il n y a qu une seule occurence pour le mot-cle facteur. sinon, il doit apparaitre dans au moins une des occurences
+"""),
+
+42: _("""
+ faisceau_axial : le mot-cle <rugo_tube> est obligatoire si il n y a qu une seule occurence pour le mot-cle facteur. sinon, il doit apparaitre dans au moins une des occurences
+"""),
+
+43: _("""
+ faisceau_axial : les mots-cles <cara_paroi> et <vale_paroi> sont obligatoires si il n y a qu une seule occurence pour le mot-cle facteur. sinon, ils doivent apparaitre ensemble dans au moins une des occurences. le mot-cle <angl_vril> doit egalement etre present si l on definit une enceinte rectangulaire
+"""),
+
+44: _("""
+ coque_coax : il faut trois composantes pour <vect_x>
+"""),
+
+45: _("""
+ coque_coax : l axe de revolution des coques doit avoir pour vecteur directeur l un des vecteurs unitaires de la base liee au repere global
+"""),
+
+46: _("""
+ caracterisation de la topologie de la structure beton : le groupe de mailles associe ne doit contenir que des mailles 2d ou que des mailles 3d
+"""),
+
+47: _("""
+ recuperation du materiau beton : les caracteristiques materielles n ont pas ete affectees a la maille no %(k1)s appartenant au groupe de mailles associe a la structure beton
+"""),
+
+48: _("""
+ recuperation des caracteristiques du materiau beton : absence de relation de comportement de type <bpel_beton>
+"""),
+
+49: _("""
+ le calcul de la tension est fait selon bpel. il ne peut y avoir qu un seule jeu de donnees. verifiez la coherence du parametre pert_flua dans les defi_materiau
+"""),
+
+50: _("""
+ le calcul de la tension est fait selon bpel. il ne peut y avoir qu un seul jeu de donnees. verifiez la coherence du parametre pert_flua dans les defi_materiau
+"""),
+
+51: _("""
+ le calcul de la tension est fait selon bpel. il ne peut y avoir qu un seule jeu de donnees. verifiez la coherence du parametre pert_retr dans les defi_materiau
+"""),
+
+52: _("""
+ recuperation des caracteristiques du materiau beton, relation de comportement <bpel_beton> : au moins un parametre indefini
+"""),
+
+53: _("""
+ recuperation des caracteristiques du materiau beton, relation de comportement <bpel_beton> : au moins une valeur de parametre invalide
+"""),
+
+54: _("""
+ caracterisation de la topologie du cable no %(k1)s : on a trouve une maille d un type non acceptable
+"""),
+
+55: _("""
+ caracterisation de la topologie du cable no %(k1)s : il existe plus de deux chemins possibles au depart du noeud %(k2)s
+"""),
+
+56: _("""
+ caracterisation de la topologie du cable no %(k1)s : il n existe aucun chemin possible au depart du noeud %(k2)s
+"""),
+
+57: _("""
+ caracterisation de la topologie du cable no %(k1)s : deux chemins continus possibles de %(k2)s a %(k3)s : ambiguite
+"""),
+
+58: _("""
+ caracterisation de la topologie du cable no %(k1)s : aucun chemin continu valide
+"""),
+
+59: _("""
+ interpolation de la trajectoire du cable no %(k1)s : deux noeuds sont geometriquement confondus
+"""),
+
+60: _("""
+ interpolation de la trajectoire du cable no %(k1)s : detection d un point de rebroussement
+"""),
+
+61: _("""
+ vous devez fournir le mot cle maillage pour un champ aux noeuds
+"""),
+
+62: _("""
+ vous devez fournir les mots cles modele et option pour un champ elementaire
+"""),
+
+63: _("""
+ occurence %(k1)s de %(k2)s : impossible d affecter les valeurs demandees sur le(la) %(k3)s qui n a pas ete affecte(e) par un element
+"""),
+
+64: _("""
+ occurence %(k1)s de %(k2)s : impossible d affecter les valeurs demandees sur le(la) %(k3)s qui ne supporte pas un element du bon type
+"""),
+
+65: _("""
+ occurence %(k1)s de %(k2)s : le(la) %(k3)s ne supporte pas un element compatible avec la caracteristique %(k4)s
+"""),
+
+66: _("""
+ %(k1)s item attendu en debut de ligne
+"""),
+
+67: _("""
+ dicretisation insuffisante pour une des fonctions
+"""),
+
+68: _("""
+ les fonctions de forme doivent etre definies sur un intervalle commun 0,2l ou l est la longueur excitee. la discretisation doit etre strictement croissante avec une exception pour le parametre l qui doit etre repete.
+"""),
+
+69: _("""
+ discretisation des fonctions de forme : un seul parametre doit etre repete, correspondant a la longueur excitee l
+"""),
+
+70: _("""
+ discretisation des fonctions de forme : le parametre correspondant a la longueur excitee l doit etre repete.
+"""),
+
+71: _("""
+ absence de discretisation sur 0,l ou l,2l pour une des fonctions.
+"""),
+
+72: _("""
+ discretisation des fonctions de forme : le parametre repete doit correspondre a la longueur excitee l
+"""),
+
+73: _("""
+ les discretisations des fonctions de forme ne sont pas coherentes. le domaine de definition 0,2l et la longueur excitee l qui en est deduite doivent etre communs a toutes les fonctions.
+"""),
+
+74: _("""
+ les discretisations des fonctions de forme ne sont pas coherentes. les nombres de points sur 0,l et sur l,2l doivent etre communs a toutes les fonctions.
+"""),
+
+75: _("""
+ le group_no %(k1)s ne fait pas partie du maillage : %(k2)s
+"""),
+
+76: _("""
+ le noeud %(k1)s ne fait pas partie du maillage : %(k2)s
+"""),
+
+77: _("""
+ le group_ma %(k1)s ne fait pas partie du maillage : %(k2)s
+"""),
+
+
+
+
+
+
+
+
+79: _("""
+ le type %(k1)s d'objets a verifier n'est pas correct : il ne peut etre egal qu'a group_no ou noeud ou group_ma ou maille
+"""),
+
+80: _("""
+ defaut de planeite.l angle entre les normales aux mailles: %(k1)s et %(k2)s est superieur a angl_max.
+"""),
+
+81: _("""
+ %(k1)s un identificateur est attendu : " %(k2)s " n en est pas un
+"""),
+
+82: _("""
+ %(k1)s un identificateur depasse 8 caracteres
+"""),
+
+83: _("""
+ %(k1)s le mot cle fin n est pas attendu
+"""),
+
+84: _("""
+ %(k1)s le mot cle finsf n est pas attendu
+"""),
+
+85: _("""
+ %(k1)s un nombre est attendu
+"""),
+
+86: _("""
+ la maille de nom : %(k1)s n'est pas de type segment, elle ne sera pas affectee par %(k2)s
+"""),
+
+87: _("""
+ la maille de nom : %(k1)s n'est pas de type tria ou quad, elle ne sera pas affectee par %(k2)s
+"""),
+
+88: _("""
+ -> Erreur dans les mailles du mot-clé facteur %(k1)s :
+ aucune maille n'est du bon type. Elles sont toutes ignorées.
+"""),
+
+89: _("""
+ la maille de numero : %(k1)s n'est pas de type segment, elle ne sera pas affectee par %(k2)s
+"""),
+
+90: _("""
+ la maille de numero : %(k1)s n'est pas de type tria ou quad, elle ne sera pas affectee par %(k2)s
+"""),
+
+91: _("""
+ erreur dans les noms de maille du group_ma: %(k1)s du mot-cle facteur %(k2)s : aucune n'est du bon type
+"""),
+
+92: _("""
+ la maille de nom : %(k1)s n'est pas une maille 3d, elle ne sera pas affectee par %(k2)s
+"""),
+
+93: _("""
+ la maille de numero : %(k1)s n'est pas une maille 3d, elle ne sera pas affectee par %(k2)s
+"""),
+
+94: _("""
+ pb de statut des noeuds enrichis
+"""),
+
+95: _("""
+ pb de groupe mailles enrichies
+"""),
+
+
+
+
+
+
+98: _("""
+ Erreur lors de la vérification des noms de groupes.
+"""),
+
+99: _("""
+ Aucun groupe de fibres n'a de comportement.
+"""),
+
+}
--- /dev/null
+#@ MODIF modelisa8 Messages DATE 29/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ la section de la poutre est nulle
+"""),
+2: _("""
+ l'inertie de la poutre suivant OY est nulle
+"""),
+3: _("""
+ l'inertie de la poutre suivant OZ est nulle
+"""),
+4: _("""
+ La somme des aires des fibres est differente de l'aire de la section de la poutre.\n
+ L'erreur relative est superieure a la precision definie par le mot cle PREC_AIRE :\n
+ - occurence de multifire : %(r1)d \n
+ - aire de la poutre : %(r2)12.5E \n
+ - aire des fibres : %(r3)12.5E \n
+ - erreur relative : %(r4)12.5E
+"""),
+5: _("""
+ La somme des moments d'inertie des fibres par rapport a l'axe 0Y est differente du moment de la poutre.\n
+ L'erreur relative est superieure a la precision definie par le mot cle PREC_INERTIE :\n
+ - occurence de multifire : %(r1)d \n
+ - moment d'inertie de la poutre : %(r2)12.5E \n
+ - aire d'inertie des fibres : %(r3)12.5E \n
+ - erreur relative : %(r4)12.5E
+"""),
+6: _("""
+ La somme des moments d'inertie des fibres par rapport a l'axe 0Z est differente du moment de la poutre.\n
+ L'erreur relative est superieure a la precision definie par le mot cle PREC_INERTIE :\n
+ - occurence de multifire : %(r1)d \n
+ - moment d'inertie de la poutre : %(r2)12.5E \n
+ - aire d'inertie des fibres : %(r3)12.5E \n
+ - erreur relative : %(r4)12.5E
+"""),
+
+7: _("""
+ actuellemnt on ne peut mettre que %(k1)s groupes de fibres sur un element
+"""),
+
+8: _("""
+ Le groupe de fibre %(k1)s n'a pas ete defini dans DEFI_GEOM_FIBRE
+"""),
+
+9: _("""
+ mot cle facteur "defi_arc", occurence %(i1)d , group_ma : %(k1)s
+ le centre n'est pas vraiment le centre du cercle %(k2)s
+"""),
+
+10: _("""
+ mot cle facteur "defi_arc", occurence %(i1)d , group_ma : %(k1)s
+ le point de tangence n est pas equidistant des points extremites %(k2)s
+"""),
+
+11: _("""
+ mot cle facteur "defi_arc", occurence %(i1)d , maille : %(k1)s
+ le centre n'est pas vraiment le centre du cercle %(k2)s
+"""),
+
+
+
+
+
+
+13: _("""
+ , maille : %(i1)d la maille n'est pas situee sur le cercle %(k1)s
+"""),
+
+14: _("""
+ , maille : %(i1)d
+ la maille n'est pas orientee dans le meme sens que les autres sur le cercle %(k1)s
+"""),
+
+
+
+
+
+
+16: _("""
+ , maille : %(i1)d pb produit scalaire %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+25: _("""
+ l'ensemble des mailles comporte plus de 2 extremites %(k1)s
+"""),
+
+26: _("""
+ defi_arcl'ensemble des mailles forme un cercle : a subdiviser %(k1)s
+"""),
+
+27: _("""
+ le ddl %(k1)s est interdit pour le noeud %(k2)s
+"""),
+
+28: _("""
+ affectation deja effectuee du ddl %(k1)s du noeud %(k2)s %(k3)s
+"""),
+
+29: _("""
+ nombre de cmps superieur au max nmaxcmp= %(i1)d ncmp = %(i2)d
+"""),
+
+30: _("""
+ Erreur utilisateur:
+ On cherche à imposer une condition aux limites sur le ddl %(k1)s
+ du noeud %(k2)s.
+ Mais ce noeud ne porte pas ce ddl.
+
+ Conseils :
+ - vérifier le modèle et les conditions aux limites :
+ - le noeud incriminé fait-il partie du modèle ?
+ - le noeud porte-t-il le ddl que l'on cherche à contraindre ?
+"""),
+
+
+31: _("""
+ nombre de motcles superieur au max nmaxocl= %(i1)d nmocl = %(i2)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+34: _("""
+ erreur dans les donneesle parametre %(k1)s n existe pas dans la table %(k2)s
+"""),
+
+35: _("""
+ erreur dans les donneespas de valeur pour le parametre %(k1)s
+"""),
+
+36: _("""
+ erreur dans les donneesplusieurs valeurs pour le group_ma %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+40: _("""
+ la maille de nom : %(k1)s n'est pas de type %(k2)s ou %(k3)s
+ elle ne sera pas affectee par %(k4)s
+"""),
+
+41: _("""
+ mgrappmasse de la tige calculee: %(r1)f
+ masse de l'araignee calculee: %(r2)f
+ masse du crayon calculee: %(r3)f
+ masse grappe=tige+araignee+crayon: %(r4)f
+"""),
+
+42: _("""
+ erreurs dans les donneeslongueur modelisee: %(r1)f longueur donnee : %(r2)f
+"""),
+
+43: _("""
+
+ le nombre de ddl_1 figurant dans la liaison n'est pas egal au nombre de coef_mult_1 :
+ %(i1)d
+ %(i2)d
+"""),
+
+44: _("""
+
+ le nombre de ddl_2 figurant dans la liaison n'est pas egal au nombre de coef_mult_2 :
+ %(i1)d
+ %(i2)d
+"""),
+
+
+
+
+
+
+
+
+46: _("""
+
+ le nombre de ddls figurant dans la liaison n'est pas egal au nombre de coef_mult/coef_mult_fonc :
+ %(i1)d
+ %(i2)d
+"""),
+
+47: _("""
+
+ le nombre de ddls figurant dans la liaison n'est pas egal au nombre de noeuds :
+ %(i1)d
+ %(i2)d
+"""),
+
+
+
+
+
+
+
+
+49: _("""
+
+ la direction normale est calculee sur la face esclave. il faut donner des mailles
+ de facettes, mots cles : %(k1)s %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+52: _("""
+ les noeuds n1 et n2 sont confondus coor(n1): %(r1)f %(r2)f coor(n2): %(r3)f
+ %(r4)f
+ norme : %(r5)f
+"""),
+
+53: _("""
+ n3 colineaires coor(n1): %(r1)f %(r2)f %(r3)f coor(n2): %(r4)f %(r5)f
+ %(r6)f
+ coor(n3): %(r7)f
+ %(r8)f
+ %(r9)f
+ norme : %(r10)f
+"""),
+
+
+
+
+
+
+
+
+55: _("""
+ interpolation interditepour un resultat de type : %(k1)s
+"""),
+
+56: _("""
+ group_ma %(k1)s mailles mal orientees %(i1)d
+"""),
+
+57: _("""
+ maille mal orientee: %(k1)s
+"""),
+
+58: _("""
+ composante existante sur le noeud: %(k1)s composante: %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+66: _("""
+ le nom de groupe numero %(i1)d est en double. %(k1)s
+ premier nom med : %(k2)s
+ second nom med : %(k3)s
+ nom aster retenu : %(k4)s
+"""),
+
+67: _("""
+
+ le numero de la maille de type nomtyp(ityp) est superieur au nombre total de mailles :
+ numero de la maille : %(i1)d
+ nombre de mailles : %(i2)d
+"""),
+
+68: _("""
+ la maille de num %(i1)d de nom %(k1)s
+"""),
+
+69: _("""
+ le code: %(i1)d %(k1)s
+"""),
+
+70: _("""
+ pour l'occurence de affe numero %(i1)d
+ on n'a pas pu affecter %(i2)d
+ mailles de dimension %(i3)d
+ (info=2 pour details) %(i4)d
+"""),
+
+71: _("""
+ materiau non valide materiau : %(k1)s
+"""),
+
+72: _("""
+ materiaux non valideson ne peut avoir a la fois %(k1)s et %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+75: _("""
+ erreur donneesle group_no n'existe pas %(k1)s
+"""),
+
+
+
+
+
+
+
+
+77: _("""
+ conflit dans les vis_a_vis des noeuds le noeud %(k1)s
+ est le vis-a-vis des noeuds %(k2)s
+ et %(k3)s
+"""),
+
+
+
+
+
+
+
+
+79: _("""
+ conflit dans les vis-a-vis generes successivement le noeud %(k1)s
+ a pour vis-a-vis le noeud %(k2)s
+ et le noeud %(k3)s
+"""),
+
+80: _("""
+ conflit dans les vis-a-vis generes successivement
+ le noeud de la premiere liste %(k1)s
+ n"est l"image d"aucun %(k2)s
+ noeud par la correspondance inverse %(k3)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+87: _("""
+ conflit dans les vis-a-vis generes successivement a partir des listes %(k1)s
+ et %(k2)s
+ le noeud %(k3)s
+ a pour vis-a-vis le noeud %(k4)s
+ et le noeud %(k5)s
+"""),
+
+88: _("""
+ conflit dans les vis-a-vis generes successivement a partir des listes %(k1)s
+ et %(k2)s
+ le noeud de la premiere liste %(k3)s
+ n"est l"image d"aucun %(k4)s
+ noeud par la correspondance inverse %(k5)s
+"""),
+
+89: _("""
+ on ne trouve pas dans la paroi 2 de maille de type : %(i1)d
+"""),
+
+90: _("""
+ conflit dans les vis_a_vis les mailles %(k1)s et %(k2)s
+ ont toutes les 2 comme vis_a_vis la maille %(k3)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+93: _("""
+
+ evaluation impossible d une fonction materiau - on deborde a gauche pour la temperature
+ temp : %(r1)f
+"""),
+
+94: _("""
+
+ evaluation impossible d une fonction materiau - on deborde a droite pour la temperature
+ temp : %(r1)f
+"""),
+
+95: _("""
+ erreur dans les parametres valeur de typem : %(k1)s
+ les valeurs possibles sont no_maille, no_noeud, nu_maille et nu_noeud %(k2)s
+"""),
+
+96: _("""
+ erreur dans les parametres pour l'indice : %(i1)d
+ la valeur de tymocl est : %(k1)s
+ les valeurs possibles sont maille et group_ma %(k2)s
+ car type2 vaut %(k3)s
+"""),
+
+97: _("""
+ erreur dans les parametres pour l'indice : %(i1)d
+ la valeur de tymocl est : %(k1)s
+ les valeurs possibles sont maille, noeud, %(k2)s
+ group_ma,group_no et tout %(k3)s
+"""),
+
+98: _("""
+ il manque le parametre %(k1)s dans la table %(k2)s
+ .sa presence est indispensable a la creation du champ nodal. %(k3)s
+"""),
+
+99: _("""
+ le parametre %(k1)s ne doit pas apparaitre dans la table %(k2)s
+ pour la creation d'un champ nodal. %(k3)s
+"""),
+
+}
--- /dev/null
+#@ MODIF modelisa9 Messages DATE 04/06/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+1: _("""
+ il manque le parametre %(k1)s dans la table %(k2)s
+ .sa presence est indispensable a la creation d'un champ elementaire. %(k3)s
+"""),
+
+2: _("""
+ le parametre %(k1)s de la table %(k2)s
+ est incompatible a la creation d'un champ elementaire constant. %(k3)s
+"""),
+
+3: _("""
+ il manque le parametre %(k1)s dans la table %(k2)s
+ .sa presence est indispensable a la creation d'un champ %(k3)s
+"""),
+
+4: _("""
+ le parametre %(k1)s de la table %(k2)s
+ n'est valable que pour la creation d'un champ %(k3)s
+"""),
+
+5: _("""
+ incoherence entre maille et point dans la table %(k1)s maille : %(k2)s
+ point : %(i1)d
+ nombre de points de la maille: %(i2)d
+"""),
+
+6: _("""
+ plusieurs affectations pour le meme point d'une maille
+ dans la table %(k1)s
+ maille: %(k2)s
+ point : %(i1)d
+"""),
+
+7: _("""
+ plusieurs affectations pour le meme sous-point dans la table %(k1)s
+ maille: %(k2)s
+ point : %(i1)d
+ sous-point : %(i2)d
+"""),
+
+8: _("""
+ plusieurs affectations pour la meme maille dans la table %(k1)s
+ maille: %(k2)s
+"""),
+
+
+9: _("""
+Erreur utilisateur :
+ Pour le materiau : %(k1), on cherche à redéfinir un mot clé déjà défini : %(k2)
+"""),
+
+
+10: _("""
+Erreur utilisateur :
+ Comportement 'HUJEUX'
+ Non convergence pour le calcul de la loi de comportement (NB_ITER_MAX atteint).
+
+Conseil :
+ Augmenter NB_ITER_MAX (ou diminuer la taille des incréments de charge)
+
+"""),
+
+11: _("""
+ mocle facteur non traite :mclf %(k1)s
+"""),
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF postrccm Messages DATE 06/04/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ le parametre %(k2)s n'existe pas dans la table %(k1)s
+"""),
+
+2: _("""
+ probleme pour récupérer dans la table %(k1)s la valeur du parametre %(k2)s
+ pour le parametre %(k3)s de valeur %(r1)12.5E et
+ pour le parametre %(k4)s de valeur %(r2)12.5E
+"""),
+
+3: _("""
+ l'option "AMORCAGE" est traitée seule
+"""),
+
+4: _("""
+ il manque la donnée de la limite d'élasticité (SY_02 ou SY_MAX) pour le calcul du rochet thermique
+"""),
+
+5: _("""
+ le calcul du critere du rochet thermique pour une variation de température linéaire est impossible
+ X = SIGM / SYMAX = %(r1)12.5E
+ SIGM = %(r2)12.5E
+ SYMAX = %(r3)12.5E
+ on doit avoir 0. < X < 1.
+"""),
+
+6: _("""
+ le calcul du critere du rochet thermique pour une variation de température parabolique est impossible
+ X = SIGM / SYMAX = %(r1)12.5E
+ SIGM = %(r2)12.5E
+ SYMAX = %(r3)12.5E
+ on doit avoir 0.3 < X < 1.
+"""),
+
+7: _("""
+ il faut définir le comportement %(k1)s dans "DEFI_MATERIAU"
+"""),
+
+8: _("""
+ erreur données, pour le noeud %(k1)s de la maille %(k2)s
+ il manque les caractéristiques élémentaires (le CARA_ELEM)
+"""),
+
+9: _("""
+ erreur données, pour le noeud %(k1)s de la maille %(k2)s
+ il manque l'indice de contraintes %(k3)s
+"""),
+
+10: _("""
+ materiau non défini, maille %(k1)s
+"""),
+
+11: _("""
+ un seul "NB_CYCL_SEISME"
+"""),
+
+12: _("""
+ "NUME_GROUPE" doit etre strictement positif
+"""),
+
+13: _("""
+ Probleme lors du passage du CH_MATER en CARTE
+ Contactez l'assistance téléphonique.
+"""),
+
+14: _("""
+ Probleme lors du passage du TEMPE_REF en CARTE
+ Contactez l'assistance téléphonique.
+"""),
+
+15: _("""
+ erreur données, pour la situation numéro %(i1)d sur la maille numéro %(i2)d
+ il manque le %(k1)s
+"""),
+
+16: _("""
+ probleme pour récupérer dans la table %(k1)s la valeur du parametre %(k2)s
+ pour le parametre %(k3)s de valeur %(k5)s et
+ pour le parametre %(k4)s de valeur %(r1)12.5E
+"""),
+
+17: _("""
+ probleme pour récupérer dans la table %(k1)s les valeurs du parametre %(k4)s
+ pour le parametre %(k2)s de valeur %(k3)s
+"""),
+
+18: _("""
+ erreur données, il manque le %(k1)s
+ pour la maille numéro %(i1)d et le noeud numéro %(i2)d
+"""),
+
+19: _("""
+ si on est la, y a un bug!
+ Contactez l'assistance téléphonique.
+"""),
+
+20: _("""
+ champ de nom symbolique %(k1)s inexistant pour le RESULTAT %(k2)s
+ défini sous l'occurence numéro %(i1)d
+"""),
+
+21: _("""
+ il ne faut qu'un seul champ de nom symbolique %(k1)s pour le RESULTAT %(k2)s
+ défini sous l'occurence numéro %(i1)d
+"""),
+
+22: _("""
+ probleme pour récupérer le champ de nom symbolique %(k1)s pour le RESULTAT %(k2)s
+ défini sous l'occurence numéro %(i1)d
+"""),
+
+23: _("""
+ on n'a pas pu récupérer le résultat thermique correspondant au numero %(i2)d
+ défini par le mot clé "NUME_RESU_THER" sous le mot clé facteur "RESU_THER"
+ occurence numéro %(i1)d
+"""),
+
+24: _("""
+ erreur données, pour la situation numéro %(i1)d sur la maille numéro %(i2)d
+ probleme sur le résultat thermique
+"""),
+
+25: _("""
+ erreur données, pour la situation numéro %(i1)d sur la maille numéro %(i2)d et le noeud numéro %(i3)d
+ probleme sur le résultat thermique
+"""),
+
+26: _("""
+ il faut définir qu'un seul séisme dans un groupe
+ groupe numéro %(i1)d
+ occurence situation %(i2)d et %(i3)d
+"""),
+
+
+
+
+
+
+28: _("""
+ erreur données, pour la situation numero %(i1)d
+ on n'a pas pu récupérer le "RESU_MECA" correspondant au numéro du cas de charge %(i2)d
+"""),
+
+29: _("""
+ erreur données, pour la situation numero %(i1)d
+ on ne peut pas avoir des charges de type "seisme" et "autre".
+"""),
+
+30: _("""
+ probleme pour recuperer ioc seisme.
+ Contactez l'assistance téléphonique.
+"""),
+
+31: _("""
+ probleme avec TYPEKE.
+ Contactez l'assistance téléphonique.
+"""),
+
+32: _("""
+ le nombre de cycles admissibles est négatif, vérifiez la courbe de WOHLER
+ contrainte calculée: %(r1)12.5E
+ Nadm: %(r2)12.5E
+"""),
+
+33: _("""
+ la distance calculée à partir des ABSC_CURV de la table fournie %(k1)s
+ est supérieure à 1 pour cent à la distance récupérée dans le matériau. Vérifiez vos données.
+ distance calculée: %(r1)12.5E
+ D_AMORC : %(r2)12.5E
+"""),
+
+}
--- /dev/null
+#@ MODIF postrele Messages DATE 03/04/2007 AUTEUR VIVAN L.VIVAN
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ création/extension de la table %(k1)s
+"""),
+
+2: _("""
+ *****************************************
+ * post_traitement numéro : %(i1)d
+ * inexistence de champ-gd
+ * pas de post-traitement
+ *****************************************
+ """),
+
+3: _("""
+ **********************************************************
+ * post_traitement numéro : %(i1)d
+ * aucunes mailles ne correspondent aux criteres demandés
+ * pas de post-traitement
+ **********************************************************
+"""),
+
+4: _("""
+ on ne traite pas les multicouches
+"""),
+
+5: _("""
+ il manque le vecteur des composantes "NOCP".
+ Contactez l'assistance téléphonique.
+"""),
+
+6: _("""
+ chemin nul ou défini en un noeud
+"""),
+
+7: _("""
+ le nombre de composantes à traiter est limité à 6 pour operation "MOYENNE".
+ utiliser "NOM_CMP" avec au plus 6 composantes.
+"""),
+
+8: _("""
+ initialisation de la table %(k1)s
+"""),
+
+9: _("""
+ pas de champ trouvé pour l'option %(k1)s
+"""),
+
+10: _("""
+ parametre %(k1)s de type %(k2)s
+"""),
+
+11: _("""
+ on ne traite que les champs complexes
+"""),
+
+12: _("""
+ tableau de travail limité, reduire le nombre de composantes à traiter
+"""),
+
+13: _("""
+ + de 3000 cmps!
+ Contactez l'assistance téléphonique.
+"""),
+
+14: _("""
+ en repere local, on ne traite pas le champ %(k1)s
+"""),
+
+15: _("""
+ icoef trop grand
+ Contactez l'assistance téléphonique.
+"""),
+
+16: _("""
+ probleme maillage
+ Contactez l'assistance téléphonique.
+"""),
+
+17: _("""
+ on ne traite que des champs de type "DEPL_R" pour un changement de repere
+"""),
+
+18: _("""
+ le type de maille %(k1)s n'est pas traité
+"""),
+
+19: _("""
+ mauvaise définition du chemin, probleme de continuité du chemin sur une maille
+ diminuer la précision dans l'opérateur INTE_MAIL_(2D/3D)
+"""),
+
+20: _("""
+ on ne traite pas ce cas
+ Contactez l'assistance téléphonique.
+"""),
+
+21: _("""
+ avec VECT_Y, le groupe de noeuds doit contenir au moins 2 noeuds
+"""),
+
+22: _("""
+ avec VECT_Y, il faut préciser
+ soit un seul groupe de noeuds
+ soit plusieurs noeuds
+"""),
+
+23: _("""
+ on ne peut pas mélanger des arcs et des segments.
+"""),
+
+24: _("""
+ chemin de maille vide
+"""),
+
+25: _("""
+ contradiction avec INTE_MAIL_2D
+"""),
+
+26: _("""
+ changement de repere:
+ champ non traité %(k1)s option de calcul %(k2)s
+"""),
+
+27: _("""
+ noeud sur l'AXE_Z
+ maille: %(k1)s, noeud: %(k2)s, coordonnées: %(r1)f
+"""),
+
+28: _("""
+ les noeuds du maillage ne sont pas tous dans un meme plan z = cst
+ changement de repere non traité
+"""),
+
+29: _("""
+ on ne sait pas faire ce post-traitement pour le chemin %(k1)s en repere %(k2)s
+"""),
+
+30: _("""
+ le noeud %(k1)s est confondu avec l'origine
+"""),
+
+31: _("""
+ le noeud %(k1)s est sur l'AXE_Z
+"""),
+
+32: _("""
+ les noeuds du maillage ne sont pas tous dans un meme plan z = cst
+ option TRAC_NOR non traitée
+ utiliser l'option TRAC_DIR
+"""),
+
+33: _("""
+ option non traitée: %(k1)s, post-traitement: %(i1)d
+ les invariants tensoriels sont calculés
+ pour les options : %(k2)s
+ %(k3)s
+ %(k4)s
+ %(k5)s
+ %(k6)s
+ %(k7)s
+ %(k8)s
+ %(k9)s
+ %(k10)s
+ %(k11)s
+ %(k12)s
+ %(k13)s
+ %(k14)s
+ %(k15)s
+ %(k16)s
+ %(k17)s
+ %(k18)s
+ %(k19)s
+ %(k20)s
+"""),
+
+34: _("""
+ option non traitée: %(k1)s, post-traitement: %(i1)d
+ les traces normales sont calculées
+ pour les options : %(k2)s
+ %(k3)s
+ %(k4)s
+ %(k5)s
+ %(k6)s
+ %(k7)s
+ %(k8)s
+ %(k9)s
+ %(k10)s
+ %(k11)s
+ %(k12)s
+ %(k13)s
+ %(k14)s
+ %(k15)s
+ %(k16)s
+ %(k17)s
+ %(k18)s
+ ou pour les grandeurs %(k19)s
+ %(k20)s
+"""),
+
+35: _("""
+ option non traitée: %(k1)s, post-traitement: %(i1)d
+ les traces directionnelles sont calculées
+ pour les options : %(k2)s
+ %(k3)s
+ %(k4)s
+ %(k5)s
+ %(k6)s
+ %(k7)s
+ %(k8)s
+ %(k9)s
+ %(k10)s
+ %(k11)s
+ %(k12)s
+ %(k13)s
+ %(k14)s
+ %(k15)s
+ %(k16)s
+ %(k17)s
+ %(k18)s
+ %(k19)s
+ %(k20)s
+ ou pour les grandeurs %(k21)s
+ %(k22)s
+ %(k23)s
+"""),
+
+36: _("""
+ trace directionnelle, post-traitement: %(i1)d
+ direction nulle, pas de calul
+"""),
+
+37: _("""
+ attention post-traitement %(i1)d
+ seules les composantes du tenseur des contraintes sont traitées
+"""),
+
+38: _("""
+ post-traitement %(i1)d
+ composante non traitée dans un changement de repere
+ Contactez l'assistance téléphonique.
+"""),
+
+39: _("""
+ post-traitement %(i1)d
+ grandeur %(k1)s non traitée dans un changement de repere
+ les changements de repere sont possibles
+ pour la grandeur %(k2)s option: %(k3)s
+ pour la grandeur %(k4)s options: %(k5)s %(k6)s
+ pour les grandeurs %(k7)s %(k8)s
+"""),
+
+40: _("""
+ le noeud numéro %(i1)d n'est pas connecté à la maille de nom %(k1)s
+"""),
+
+41: _("""
+ champ inexistant nom_cham: %(k1)s nume_ordre: %(i1)d
+"""),
+
+42: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ les listes arguments des mots clés RESULTANTE et MOMENT doivent etre de meme longueur
+ cette longueur doit etre de 2 ou 3
+"""),
+
+43: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ la liste arguments du mot clé POINT doit etre de longueur 2 ou 3
+"""),
+
+44: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ on ne peut accéder au RESULTAT de nom %(k1)s et de type %(k2)s par %(k3)s ou par %(k4)s
+"""),
+
+45: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ on ne peut accéder au RESULTAT de nom %(k1)s et de type %(k2)s par %(k3)s
+"""),
+
+46: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ le NOM_CHAM %(k1)s n'est pas autorisé pour le RESULTAT %(k2)s de type %(k3)s
+ ou le NOM_CHAM est autorisé mais aucun champ effectif n'existe.
+"""),
+
+47: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ le ou les champs élémentaires mis en jeu est ou sont donnés aux pointe de gauss
+ ce ou ces champs ne sont pas traités.
+"""),
+
+48: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ la composante %(k1)s n'est pas présente au catalogue des grandeurs.
+"""),
+
+49: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ le maillage de la courbe %(k1)s est différent du maillage du champ à traiter %(k2)s
+"""),
+
+50: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ le groupe de noeuds %(k1)s ne fait pas parti du maillage sous jacent au champ à traiter.
+"""),
+
+51: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ le noeud %(k1)s ne fait pas parti du maillage sous jacent au champ à traiter.
+"""),
+
+52: _("""
+ on ne traite pas le FORMAT_C %(k1)s
+"""),
+
+53: _("""
+ NEC trop grand
+ Contactez l'assistance téléphonique.
+"""),
+
+54: _("""
+ occurence %(i1)d du mot clé facteur ACTION
+ Impossible de récupérer les composantes du champ.
+"""),
+
+55: _("""
+ la composante %(k1)s est en double.
+"""),
+
+56: _("""
+ la composante %(k1)s n'est pas une composante de %(k2)s
+"""),
+
+57: _("""
+ la grandeur %(k1)s est inconnue au catalogue.
+"""),
+
+58: _("""
+ erreur de programmation
+ Contactez l'assistance téléphonique.
+"""),
+
+59: _("""
+ Le contenu de la table n'est pas celui attendu !
+ Contactez l'assistance téléphonique.
+"""),
+
+60: _("""
+ arret sur erreurs
+ Contactez l'assistance téléphonique.
+"""),
+
+}
--- /dev/null
+#@ MODIF precalcul Messages DATE 30/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+Le type du parametre CARA_ELEM nomme <%(k1)s> est inconnu. Contactez les developpeurs.
+"""),
+
+2: _("""
+Le type du parametre XFEM nomme <%(k1)s> est inconnu. Contactez les developpeurs.
+"""),
+
+11: _("""
+Le type de parametre pour le champ IN de temperature est inconnu (ni scalaire, ni fonction mais <%(k1)s>). Contactez les developpeurs.
+"""),
+
+20: _("""
+Le type de calcul du chargement est invalide : %(k1)s. Contactez les developpeurs.
+"""),
+
+50: _("""
+Depassement de la capacite pour les tableaux de champs d'entree de CALCUL. Contactez les developpeurs.
+"""),
+
+51: _("""
+On tente d'ecraser le parametre de champ d'entree de CALCUL deja existant nomme <%(k1)s> par un autre parametre d'entree nomme <%(k2)s>. Contactez les developpeurs.
+"""),
+
+52: _("""
+On tente d'ecraser le champ d'entree de CALCUL deja existant nomme <%(k1)s> par un autre champ d'entree nomme <%(k2)s>. Contactez les developpeurs.
+"""),
+
+60: _("""
+Appel à CALCUL. Le nom du paramètre de champ d'entree numéro %(i1)d est vide.
+"""),
+
+61: _("""
+Appel à CALCUL. Le champ d'entree numéro %(i1)d est vide.
+"""),
+
+62: _("""
+Appel à CALCUL. Le nom du paramètre de champ de sortie numéro %(i1)d est vide.
+"""),
+
+63: _("""
+Appel à CALCUL. Le champ de sortie numéro %(i1)d est vide.
+"""),
+
+
+}
--- /dev/null
+#@ MODIF prepost Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ group_no : %(k1)s inconnu dans le maillage
+"""),
+
+2: _("""
+ pour calculer le dommage il faut definir le comportement "fatigue" dans defi_materiau
+"""),
+
+3: _("""
+ hors bornes definies dans cescre.
+"""),
+
+4: _("""
+ methode %(k1)s illicite
+"""),
+
+5: _("""
+ la longueur du defaut n est pas en accord avec les tables definies cote revetement et cote metal de base
+"""),
+
+6: _("""
+ incoherence catalogue - fortran
+"""),
+
+7: _("""
+ erreur_dvp
+"""),
+
+8: _("""
+ prolongement a gauche exclu
+"""),
+
+9: _("""
+ prolongement a droite exclu
+"""),
+
+10: _("""
+ phenomene non valide
+"""),
+
+11: _("""
+ nous ne pouvons pas recuperer la valeur du module d'young : e.
+"""),
+
+12: _("""
+ nous ne pouvons pas recuperer la valeur du coefficient de poisson : nu.
+"""),
+
+13: _("""
+ le type d entite %(k1)s est inconnu.
+"""),
+
+14: _("""
+ ipoi1 et ipoi4 non traite
+"""),
+
+15: _("""
+ sprim negative bizarre
+"""),
+
+16: _("""
+ airtot ou ener nul
+"""),
+
+17: _("""
+ do102=0
+"""),
+
+18: _("""
+ probleme intersection cylindre tetraedre
+"""),
+
+19: _("""
+ voli negative bizarre
+"""),
+
+20: _("""
+ voltot ou ener nul
+"""),
+
+21: _("""
+ pas inters
+"""),
+
+22: _("""
+ delta negatif pb lors de recherche intersection
+"""),
+
+23: _("""
+ pb n2+n3
+"""),
+
+24: _("""
+ cas idiot
+"""),
+
+25: _("""
+ pb en dehors des 2 points
+"""),
+
+26: _("""
+ probleme n2+n3
+"""),
+
+27: _("""
+ volume negatif
+"""),
+
+28: _("""
+ volume superieur a 1.d6
+"""),
+
+29: _("""
+ tbelzo depassement
+"""),
+
+30: _("""
+ tbnozo depassement
+"""),
+
+31: _("""
+ sd resultat inconnue %(k1)s
+"""),
+
+32: _("""
+ l'impression de la sd_resultat %(k1)s a deja ete effectuee avec une liste de numeros d'ordre dont le premier numero etait le meme que celui de la liste actuelle. on arrete l'impression afin d'eviter l'ecrasement des fichiers ecrits.
+"""),
+
+33: _("""
+ probleme a l'ouverture du fichier resultat ensight %(k1)s pour l'impression du cham_gd %(k2)s
+"""),
+
+34: _("""
+ probleme a l'ouverture du fichier resultat ensight %(k1)s pour l'impression du concept %(k2)s
+"""),
+
+35: _("""
+ code %(k1)s inconnu
+"""),
+
+36: _("""
+ le champ de: %(k1)s a des elements ayant des sous-points. ces elements ne seront pas traites.
+"""),
+
+37: _("""
+ vraiment desole
+"""),
+
+38: _("""
+ le vecteur est "axe_z" nul.
+"""),
+
+39: _("""
+ le coefficient de goodman n'est pas calculable
+"""),
+
+40: _("""
+ le coefficient de gerber n'est pas calculable
+"""),
+
+41: _("""
+ pour calculer le dommage de lemaitre-sermage il faut definir le comportement domma_lemaitre dans defi_materiau
+"""),
+
+42: _("""
+ pour calculer le dommage de lemaitre_sermage il faut definir le comportement elas_fo dans defi_materiau
+"""),
+
+43: _("""
+ le materiau est obligatoire pour le calcul du dommage par taheri_manson
+"""),
+
+44: _("""
+ une fonction doit etre introduite sous le mot cle taheri_fonc
+"""),
+
+45: _("""
+ une nappe doit etre introduite sous le mot cle taheri_nappe
+"""),
+
+
+
+
+
+
+
+
+47: _("""
+ la courbe de manson_coffin est necessaire pour le calcul du dommage taheri_manson_coffin
+"""),
+
+48: _("""
+ le materiau est obligatoire pour le calcul du dommage par taheri_mixte
+"""),
+
+49: _("""
+ la courbe de manson_coffin est necessaire pour le calcul du dommage taheri_mixte
+"""),
+
+50: _("""
+ la courbe de wohler est necessaire pour le calcul du dommage taheri_mixte
+"""),
+
+51: _("""
+ l'option de calcul " %(k1)s " n'existe pas dans la structure de donnees %(k2)s
+"""),
+
+52: _("""
+ le champ " %(k1)s " pour l'option de calcul " %(k2)s ", n'a pas ete notee dans la structure de donnees %(k3)s
+"""),
+
+53: _("""
+ la dimension du probleme est invalide : il faut : 1d,2d ou 3d.
+"""),
+
+54: _("""
+ nombre de noeuds superieur au maxi autorise : 27.
+"""),
+
+55: _("""
+ objet &&gilire.indirect inexistant. probleme a la lecture des points
+"""),
+
+56: _("""
+ type de maille : %(k1)s inconnu de pre_gibi.
+"""),
+
+57: _("""
+ nombre d objets superieur au maximum autorise : 99999.
+"""),
+
+58: _("""
+ bug !!!
+"""),
+
+59: _("""
+ le maillage gibi est peut etre errone : il est ecrit : "niveau rreur n_err" ou n_err est >0 .on continue quand meme, mais si vous avez des problemes plus loin ...
+"""),
+
+60: _("""
+ arret sur erreur(s)
+"""),
+
+61: _("""
+ erreur dans la recuperation du nume.prno
+"""),
+
+62: _("""
+ probleme dans la recuperation du numero de bloc auquel appartient la ligne courante.
+"""),
+
+63: _("""
+ les seuls types de valeurs acceptes pour les resu_elem sont les reels et les complexes, le descripteur de type %(k1)s est inadequat.
+"""),
+
+64: _("""
+ les seuls types de s.d. autorises sont "matr_asse" , "matr_elem" "vect_elem" et "resu_elem", le type donne %(k1)s n'est pas reconnu .
+"""),
+
+65: _("""
+ la valeur du grain d'impression est %(k1)s alors que les seules valeurs possibles sont "noeud" ou "valeur" ou "maille".
+"""),
+
+66: _("""
+ la valeur du grain d'impression est %(k1)s alors que les seules valeurs possibles sont "noeud" et "valeur" .
+"""),
+
+67: _("""
+ probleme dans le descripteur de la matrice: l'indicateur de symetrie ne correspond ni a une matrice symetrique, ni a une matrice non-symetrique .
+"""),
+
+68: _("""
+ probleme dans le descripteur de la matrice: l'indicateur type de valeur de la matrice ne correspond ni a une matrice reelle, ni a une matrice complexe .
+"""),
+
+69: _("""
+ probleme a l ouverture du fichier
+"""),
+
+70: _("""
+ probleme a la fermeture du fichier
+"""),
+
+71: _("""
+ maillage introuvable ?
+"""),
+
+72: _("""
+ med:erreur mdnoma numero %(k1)s
+"""),
+
+73: _("""
+ le champ est ecrit dans le fichier !
+"""),
+
+74: _("""
+ la variable %(k1)s n'existe pas
+"""),
+
+75: _("""
+ pas d'impression du champ
+"""),
+
+76: _("""
+ -> Il y a des groupes de noeuds dans le maillage %(k1)s.
+ Ils n'apparaitront pas dans le fichier géométrie ENSIGHT.
+ Seuls des groupes de mailles peuvent y etre intégrés.
+"""),
+
+77: _("""
+ incompatibilite entre les grels
+"""),
+
+78: _("""
+ nec trop grand
+"""),
+
+79: _("""
+ nombre de couches > 1
+"""),
+
+80: _("""
+ on traite les tria7 quad9 en oubliant le noeud centre
+"""),
+
+81: _("""
+ : inoa=0
+"""),
+
+82: _("""
+ ecriture impossible pour %(k1)s au format med
+"""),
+
+83: _("""
+ certaines composantes selectionnees ne font pas parties du ligrel
+"""),
+
+84: _("""
+ element pyran5 non disponible dans ideas
+"""),
+
+85: _("""
+ element pyran13 non disponible dans ideas
+"""),
+
+86: _("""
+ on traite les tria7 quad9 hexa27 en oubliant le noeud centre
+"""),
+
+87: _("""
+ on ne sait pas imprimer le champ de type: %(k1)s champ : %(k2)s
+"""),
+
+88: _("""
+ on ne sait pas imprimer au format ensight le champ %(k1)s correspondant a la grandeur : %(k2)s . il faut imprimer des champs aux noeuds a ce format.
+"""),
+
+89: _("""
+ 1 %(k1)s
+"""),
+
+90: _("""
+ on ne sait pas imprimer le champ %(k1)s au format %(k2)s
+"""),
+
+91: _("""
+ debut de l'ecriture med de %(k1)s
+"""),
+
+92: _("""
+ impossible de determiner un nom de champ med.
+"""),
+
+93: _("""
+ pas d ecriture pour %(k1)s
+"""),
+
+94: _("""
+ issu de %(k1)s
+"""),
+
+95: _("""
+ type %(k1)s inconnu pour med.
+"""),
+
+96: _("""
+ fin de l'ecriture med de %(k1)s
+"""),
+
+97: _("""
+ on ne sait pas imprimer les champs de type " %(k1)s " on est vraiment desole.
+"""),
+
+98: _("""
+ le champ: %(k1)s a des elements ayant des sous-points. il est ecrit avec un format different.
+"""),
+
+99: _("""
+ le champ: %(k1)s a des elements ayant des sous-points. ces elements ne seront pas ecrits.
+"""),
+}
--- /dev/null
+#@ MODIF prepost2 Messages DATE 30/05/2007 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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+2: _("""
+Modele inconnu, pas d'impression du champ %(k1)s
+"""),
+
+3: _("""
+On ne sait pas ecrire des champs par element aux points de gauss au format CASTEM
+"""),
+
+4: _("""
+ erreur programmation
+"""),
+
+5: _("""
+Ce champ existe déjà dans le fichier MED. On ne peut pas le créer de nouveau.
+
+Nom MED du champ : "%(k1)s"
+
+ -> Risque & Conseil :
+ Si vous essayez d'imprimer les différentes composantes d'un champ,
+ ne faites qu'un seul IMPR_RESU avec la liste des composantes à
+ retenir derrière le mot-clé NOM_CMP.
+ Pour la visualisation dans Salomé (Scalar Map par exemple),
+ sélectionner la composante dans Scalar Range/Scalar Mode.
+"""),
+
+6: _("""
+ med: erreur efchac numero %(k1)s
+"""),
+
+7: _("""
+ veritable ecriture des tableaux de valeurs
+"""),
+
+8: _("""
+ med: erreur efchre numero %(k1)s
+"""),
+
+9: _("""
+ med: erreur efouvr numero %(k1)s
+"""),
+
+10: _("""
+ med: erreur efnpro numero %(k1)s
+"""),
+
+11: _("""
+ probleme dans la lecture du nom du profil.
+"""),
+
+12: _("""
+ probleme dans la lecture des valeurs du profil.
+"""),
+
+13: _("""
+ med: erreur efferm numero %(k1)s
+"""),
+
+14: _("""
+ med: erreur efpfle numero %(k1)s
+"""),
+
+15: _("""
+ 1.3. type de champ inconnu : %(k1)s
+"""),
+
+16: _("""
+ creation des tableaux de valeurs a ecrire avec :
+"""),
+
+17: _("""
+ renumerotation impossible avec plus d'un sous-point
+"""),
+
+18: _("""
+ la programmation ne permet pas plus de 150 cmps.
+"""),
+
+19: _("""
+ le le nombre de cmps de la grandeur du champ depasse 500 augmenter la dimension de 4 tableaux statiques
+"""),
+
+20: _("""
+ impr_resu format ensight : la composante %(k1)s du cham_gd %(k2)s n'est portee par aucun noeud du maillage et ne sera pas imprimee
+"""),
+
+21: _("""
+ impr_resu format ensight : la composante %(k1)s du champ %(k2)s du concept %(k3)s n'est portee par aucun noeud du maillage et ne sera pas imprimee
+"""),
+
+22: _("""
+ impr_resu format ensight : les trois composantes %(k1)s %(k2)s %(k3)s du cham_gd %(k4)s ne sont portees par aucun noeud du maillage et le vecteur ensight correspondant ne sera pas imprime
+"""),
+
+23: _("""
+ impr_resu format ensight : les trois composantes %(k1)s %(k2)s %(k3)s du champ %(k4)s du concept %(k5)s ne sont portees par aucun noeud du maillage et le vecteur ensight correspondant ne sera pas imprime
+"""),
+
+24: _("""
+ impression de la composante %(k1)s du champ %(k2)s sous forme d'une variable scalaire ensight %(k3)s . la composante %(k4)s n'est pas portee par certains noeuds du maillage et des valeurs nulles sont affectees a ces noeuds dans les fichiers %(k5)s
+"""),
+
+25: _("""
+ impression des 3 composantes %(k1)s %(k2)s et %(k3)s du champ %(k4)s sous forme d'une variable vectorielle ensight %(k5)s . une ou plusieurs de ces composantes ne sont pas portees par certains noeuds du maillage et des valeurs nulles sont affectees a ces noeuds pour ces composantes dans les fichiers %(k6)s
+"""),
+
+26: _("""
+ probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression de la partie reelle du cham_gd %(k2)s
+"""),
+
+27: _("""
+ probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression de la partie relle du champ %(k2)s du concept %(k3)s
+"""),
+
+28: _("""
+ probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression de la partie imaginaire du cham_gd %(k2)s
+"""),
+
+29: _("""
+ probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression de la partie imaginaire du champ %(k2)s du concept %(k3)s
+"""),
+
+30: _("""
+ probleme a l'ouverture du fichier de valeurs ensight %(k1)s .r : ce fichier existe deja !! l'impression du meme champ ouconcept resultat est demandee deux fois ou une meme composante est selectionnee 2 fois sous le mot-cle nom_cmp
+"""),
+
+31: _("""
+ probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression du cham_gd %(k2)s
+"""),
+
+32: _("""
+ probleme a l'ouverture du fichier de valeurs ensight %(k1)s pour l'impression du champ %(k2)s du concept %(k3)s
+"""),
+
+33: _("""
+ probleme a l'ouverture du fichier de valeurs ensight %(k1)s : ce fichier existe deja !! l'impression du meme champ ouconcept resultat est demandee deux fois ou une meme composante est selectionnee 2 fois sous le mot-cle nom_cmp
+"""),
+
+
+
+
+
+
+
+
+35: _("""
+ desole on ne sait pas ecrire les champs aux noeuds de representation constante et a valeurs complexes au format %(k1)s
+"""),
+
+36: _("""
+ desole on ne sait pas ecrire le champ aux noeuds %(k1)s au format %(k2)s
+"""),
+
+37: _("""
+ le maillage %(k1)s associe au cham_gd %(k2)s est different du maillage %(k3)s en operande de la commande !!!! attention !!!!
+"""),
+
+38: _("""
+ le maillage %(k1)s associe au champ %(k2)s du concept %(k3)s est different du maillage %(k4)s en operande de la commande !!!! attention !!!!
+"""),
+
+39: _("""
+ probleme a l'ouverture du fichier d'avertissement %(k1)s
+"""),
+
+40: _("""
+ aucune des composantes demandees sous le mot-cle nom_cmp pour l'impression du cham_gd %(k1)s n'est presente dans la grandeur %(k2)s
+"""),
+
+41: _("""
+ aucune des composantes demandees sous le mot-cle nom_cmp pour l'impression du champ %(k1)s du concept %(k2)s n'est presente dans la grandeur %(k3)s
+"""),
+
+42: _("""
+ impr_resu format ensight : la composante %(k1)s du cham_gd %(k2)s n'est pas portee par les noeuds du maillage et ne sera pas imprimee
+"""),
+
+43: _("""
+ impr_resu format ensight : la composante %(k1)s du champ %(k2)s du concept %(k3)s n'est pas portee par les noeuds du maillage et ne sera pas imprimee
+"""),
+
+44: _("""
+ impr_resu format ensight : aucune des trois composantes %(k1)s %(k2)s %(k3)s du cham_gd %(k4)s n'est portee par les noeuds du maillage et le vecteur ensight correspondant ne sera pas imprime
+"""),
+
+45: _("""
+ impr_resu format ensight : aucune des trois composantes %(k1)s %(k2)s %(k3)s du champ %(k4)s du concept %(k5)s n'est portee par les noeuds du maillage et le vecteur ensight correspondant ne sera pas imprime
+"""),
+
+46: _("""
+ numero d'ordre %(k1)s non licite
+"""),
+
+47: _("""
+ le numero d'ordre suivant est desormais considere comme le premier numero d'ordre demande
+"""),
+
+48: _("""
+ pour certains numeros d'ordre le champ %(k1)s n'est pas present dans la sd_resultat %(k2)s ==> des fichiers de valeurs vides seront generes afin de respecter le format ensight.
+"""),
+
+49: _("""
+ le nombre de cmps de la grandeur du champ depasse 500 augmenter la dimension du tableau ivari
+"""),
+
+50: _("""
+ une meme composante est donnee 2 fois sous le mot-cle nom_cmp lors de l'impression au format ensight par impr_resu
+"""),
+
+51: _("""
+ type de structure non traite: %(k1)s
+"""),
+
+52: _("""
+ on imprime que des champs elno
+"""),
+
+53: _("""
+ nbcmp different
+"""),
+
+54: _("""
+ composante inconnue %(k1)s
+"""),
+
+55: _("""
+ attention, il faut specifier les noms des composantes du tenseur pour pouvoir les visualiser separement avec gmsh
+"""),
+
+56: _("""
+ on imprime que des champs "elga" ou "elem"
+"""),
+
+57: _("""
+ nbsp different de 1
+"""),
+
+58: _("""
+ pas de correspondance
+"""),
+
+59: _("""
+ aucun champ trouve, pas d'impression au format "gmsh"
+"""),
+
+60: _("""
+ on ne sait pas imprimer au format "gmsh" ce type de champ: %(k1)s
+"""),
+
+61: _("""
+ erreur de programmation : nbcmp different de 1 ou 3.
+"""),
+
+62: _("""
+ on ne peut pas traiter des elements a plus de 99 noeuds !
+"""),
+
+63: _("""
+ erreur de programation
+"""),
+
+64: _("""
+ seg4 element inexistant dans castem, converti en seg2
+"""),
+
+65: _("""
+ tria7 element inexistant dans castem, converti en tria6
+"""),
+
+66: _("""
+ quad9 element inexistant dans castem, converti en quad8
+"""),
+
+67: _("""
+ les champs n'ont pas la meme grandeur
+"""),
+
+68: _("""
+ les champs n'ont pas la meme numerotation
+"""),
+
+69: _("""
+ les champs n'ont pas le meme type de valeurs
+"""),
+
+70: _("""
+ desole on ne sait pas ecrire les champs aux noeuds de representation constante au format ideas
+"""),
+
+71: _("""
+ element noeud non disponible dans ensight
+"""),
+
+72: _("""
+ element %(k1)s non disponible dans ensight
+"""),
+
+73: _("""
+ les elements tria7 seront reduits a des tria6
+"""),
+
+74: _("""
+ les elements quad9 seront reduits a des quad8
+"""),
+
+75: _("""
+ les elements penta15 seront reduits a des penta6
+"""),
+
+76: _("""
+ il y a des groupes de noeuds dans le maillage %(k1)s qui n'apparaitront pas dans le fichier geometrie ensight: seuls des groupes de mailles peuvent y etre integres
+"""),
+
+77: _("""
+ la dimension du probleme est invalide : il faut : 1d, 2d, 3d.
+"""),
+
+78: _("""
+ hexa27 element inexistant dans ideas, converti en hexa20
+"""),
+
+79: _("""
+ tria7 element inexistant dans ideas, converti en tria6
+"""),
+
+80: _("""
+ quad9 element inexistant dans ideas, converti en quad8
+"""),
+
+81: _("""
+ seg4 element inexistant dans ideas, converti en seg2
+"""),
+
+82: _("""
+ element pyram5 non disponible dans ideas
+"""),
+
+83: _("""
+ element pyram13 non disponible dans ideas
+"""),
+
+84: _("""
+ code invalide : icod2
+"""),
+
+85: _("""
+ description du fichier med : %(k1)s
+"""),
+
+86: _("""
+ med: erreur effide numero %(k1)s
+"""),
+
+87: _("""
+ ce maillage est deja present dans le fichier.
+"""),
+
+88: _("""
+ ouverture du fichier med en mode %(k1)s %(k2)s
+"""),
+
+89: _("""
+ med: erreur efmaac numero %(k1)s
+"""),
+
+90: _("""
+ med: erreur effamc numero %(k1)s
+"""),
+
+91: _("""
+ med: erreur effame numero %(k1)s
+"""),
+
+92: _("""
+ med: famille de %(k1)s , erreur effame numero %(k2)s
+"""),
+
+93: _("""
+ on ne sait pas ecrire les mailles de type %(k1)s
+"""),
+
+94: _("""
+ med: erreur efcone numero %(k1)s
+"""),
+
+95: _("""
+ med: erreur efnome numero %(k1)s
+"""),
+
+96: _("""
+ med: erreur efnume numero %(k1)s
+"""),
+
+97: _("""
+ med: erreur efcooe numero %(k1)s
+"""),
+
+98: _("""
+ med: erreur efngau numero %(k1)s
+"""),
+
+99: _("""
+ med: erreur efgaui numero %(k1)s
+"""),
+}
--- /dev/null
+#@ MODIF prepost3 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ med: erreur efgaul numero %(k1)s
+"""),
+
+2: _("""
+ med: erreur efgaue numero %(k1)s
+"""),
+
+3: _("""
+ ecriture des localisations des points de gauss
+"""),
+
+4: _("""
+ le nombre de noeuds selectionnes est superieur au nombre de noeuds du maillage. on va tronquer la liste.
+"""),
+
+5: _("""
+ chaine de caracteres trop longues : imprimer moins de champs
+"""),
+
+6: _("""
+ type inconnu" %(k1)s "
+"""),
+
+7: _("""
+ le maillage %(k1)s a deja ete ecrit au format ensight: le contenu du fichier %(k2)s sera ecrase.
+"""),
+
+8: _("""
+ probleme a l'ouverture du fichier " %(k1)s " pour impression du maillage %(k2)s au format ensight
+"""),
+
+9: _("""
+ type de base inconnu: %(k1)s
+"""),
+
+10: _("""
+ soit le fichier n'existe pas, soit c'est une mauvaise version de hdf (utilise par med).
+"""),
+
+11: _("""
+ pas de maillage dans %(k1)s
+"""),
+
+12: _("""
+ maillage %(k1)s inconnu dans %(k2)s
+"""),
+
+13: _("""
+ instant inconnu pour ce champ et ces supports dans le fichier.
+"""),
+
+14: _("""
+ champ inconnu.
+"""),
+
+15: _("""
+ il manque des composantes.
+"""),
+
+16: _("""
+ aucune valeur a cet instant.
+"""),
+
+17: _("""
+ aucune valeur a ce nro d ordre.
+"""),
+
+18: _("""
+ mauvais nombre de valeurs.
+"""),
+
+19: _("""
+ lecture impossible.
+"""),
+
+20: _("""
+ absence de numerotation des mailles %(k1)s dans le fichier med
+"""),
+
+21: _("""
+ grandeur inconnue
+"""),
+
+22: _("""
+ composante inconnue pour la grandeur
+"""),
+
+23: _("""
+ trop de composantes pour la grandeur
+"""),
+
+24: _("""
+ lecture impossible pour %(k1)s au format med
+"""),
+
+25: _("""
+ modele obligatoire pour lire un cham_elem
+"""),
+
+26: _("""
+ med: erreur efchrl numero %(k1)s
+"""),
+
+27: _("""
+ nom de composante tronquee a 8 caracteres ( %(k1)s >>> %(k2)s )
+"""),
+
+28: _("""
+ impossible de trouver la composante aster associee a %(k1)s
+"""),
+
+29: _("""
+ pour lire_resu / format=ideas le maillage doit normalement avoir ete lu au format ideas.
+"""),
+
+30: _("""
+ on a trouve plusieurs champs pour le meme dataset
+"""),
+
+31: _("""
+ on n'a pas trouve le numero d'ordre a l'adresse indiquee
+"""),
+
+32: _("""
+ on n'a pas trouve l'instant a l'adresse indiquee
+"""),
+
+33: _("""
+ on n'a pas trouve la frequence a l'adresse indiquee
+"""),
+
+34: _("""
+ on n'a pas trouve dans le fichier unv le type de champ
+"""),
+
+35: _("""
+ on n'pas trouve dans le fichier unv le nombre de composantes a lire
+"""),
+
+36: _("""
+ on n'pas trouve dans le fichier unv la nature du champ (reel ou complexe)
+"""),
+
+37: _("""
+ le type de champ demande est different du type de champ a lire
+"""),
+
+38: _("""
+ le champ demande n'est pas dememe nature que le champ a lire (reel/complexe)
+"""),
+
+39: _("""
+ le mot cle modele est obligatoire pour un cham_elem
+"""),
+
+40: _("""
+ pb correspondance noeud ideas
+"""),
+
+41: _("""
+ le champ de type elga n'est pas supporte
+"""),
+
+42: _("""
+ probleme dans la lecture du nombre de champs
+"""),
+
+43: _("""
+ probleme dans la lecture du nombre de composantes
+"""),
+
+44: _("""
+ probleme dans la lecture du nom du champ et des ses composantes
+"""),
+
+45: _("""
+ le champ %(k1)s n existe pas dans le fichier med
+"""),
+
+46: _("""
+ med: erreur efnpdt numero %(k1)s
+"""),
+
+47: _("""
+ med: erreur efpdti numero %(k1)s
+"""),
+
+48: _("""
+ med: on ne traite pas les maillages distants
+"""),
+
+49: _("""
+ probleme a la fermeture
+"""),
+
+50: _("""
+ probleme dans le diagnostic.
+"""),
+
+51: _("""
+ med: erreur efnval numero %(k1)s
+"""),
+
+52: _("""
+ probleme dans la lecture du nombre de maillages
+"""),
+
+53: _("""
+ probleme dans la lecture du nom du maillage.
+"""),
+
+54: _("""
+ attention le maillage n'est pas de type non structure
+"""),
+
+55: _("""
+ le maillage ' %(k1)s ' est inconnu dans le fichier.
+"""),
+
+56: _("""
+ attention il s'agit d'un maillage structure
+"""),
+
+57: _("""
+ ==> transfert impossible.
+"""),
+
+58: _("""
+ mauvaise definition de noresu.
+"""),
+
+59: _("""
+ mauvaise definition de nomsym.
+"""),
+
+60: _("""
+ mauvaise definition de nopase.
+"""),
+
+61: _("""
+ mauvais dimensionnement de nomast.
+"""),
+
+62: _("""
+ impossible de determiner un nom de maillage med
+"""),
+
+63: _("""
+ on attend 10 ou 12 secteurs
+"""),
+
+64: _("""
+ ******* percement tube *******
+"""),
+
+65: _("""
+ pour la variable d'acces "noeud_cmp", il faut un nombre pair de valeurs.
+"""),
+
+66: _("""
+ le modele et le maillage introduits ne sont pas coherents
+"""),
+
+67: _("""
+ il faut donner le maillage pour une impression au format "castem".
+"""),
+
+68: _("""
+ vous voulez imprimer sur un meme fichier le maillage et un champ ce qui est incompatible avec le format gmsh
+"""),
+
+69: _("""
+ le mot cle 'partie' est obligatoire.
+"""),
+
+70: _("""
+ le mot cle "info_maillage" est reserve au format med
+"""),
+
+71: _("""
+ le mot cle "info_resu" est reserve au format resultat
+"""),
+
+72: _("""
+ l'impression avec selection sur des entites topologiques n'a pas de sens au format ensight : les valeurs de tous les noeuds du maillage seront donc imprimees.
+"""),
+
+73: _("""
+ l'impression avec selection sur des entites topologiques n'a pas de sens au format castem : toutes les valeurs sur tout le maillage seront donc imprimees.
+"""),
+
+
+
+
+
+
+75: _("""
+ fichier gibi cree par sort format non supporte dans cette version
+"""),
+
+76: _("""
+ version de gibi non supporte, la lecture peut echouer !
+"""),
+
+77: _("""
+ fichier gibi errone
+"""),
+
+78: _("""
+ le fichier maillage gibi est vide
+"""),
+
+79: _("""
+ cette commande ne fait que completer un resultat_compose deja existant. il faut donc que le resultat de la commande : %(k1)s soit identique a l'argument "resultat" : %(k2)s
+"""),
+
+80: _("""
+ pour un resultat de type " %(k1)s ", on ne traite que l'option ..._noeu_...
+"""),
+
+81: _("""
+ lmat =0
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+84: _("""
+ il faut autant de cmp en i et j
+"""),
+
+85: _("""
+ il faut autant de cmp que de noeud
+"""),
+
+
+
+
+
+
+87: _("""
+ y a un bug 5
+"""),
+
+88: _("""
+ y a un bug 6
+"""),
+
+89: _("""
+ y a un bug 7
+"""),
+
+90: _("""
+ y a un bug 8
+"""),
+
+91: _("""
+ y a un bug 9
+"""),
+
+92: _("""
+ mot cle "test_nook" non valide avec le mot cle facteur "inte_spec".
+"""),
+
+93: _("""
+ la fonction n'existe pas.
+"""),
+
+94: _("""
+ il faut definir deux parametres pour une nappe.
+"""),
+
+95: _("""
+ pour le parametre donne on n'a pas trouve la fonction.
+"""),
+
+96: _("""
+ la methode 'wohler' ne peut pas etre utilisee avec l'option %(k1)s
+"""),
+
+97: _("""
+ une courbe de wohler doit etre definie dans defi_materiau
+"""),
+
+98: _("""
+ la methode 'manson_coffin' ne peut pas etre utilisee avec l'option %(k1)s
+"""),
+
+99: _("""
+ une courbe de manson_coffin doit etre definie dans defi_materiau
+"""),
+}
--- /dev/null
+#@ MODIF prepost4 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ la methode 'taheri_manson' ne peut pas etre utilisee avec l'option %(k1)s
+"""),
+
+2: _("""
+ le nom de la fonction nappe dsigm(depsi,depsimax) doit etre present sous le mot cle 'taheri_nappe'
+"""),
+
+3: _("""
+ le nom de la fonctiondsigm(depsi) doit etre present sous le mot cle 'taheri_fonc'
+"""),
+
+4: _("""
+ la methode 'taheri_mixte' ne peut pas etre utilisee avec l'option %(k1)s
+"""),
+
+5: _("""
+ l'option %(k1)s n'a pas ete calculee dans la sd %(k2)s
+"""),
+
+6: _("""
+ le champ " %(k1)s " ( %(k2)s ) n'a pas ete note dans la sd %(k3)s
+"""),
+
+7: _("""
+ "tube_neuf" n'a de sens que pour une table d'usure existante
+"""),
+
+8: _("""
+ angle initial different de -180. degres.
+"""),
+
+9: _("""
+ les angles ne sont pas croissants.
+"""),
+
+10: _("""
+ angle final different de 180. degres.
+"""),
+
+11: _("""
+ rayon mobile obligatoire avec secteur.
+"""),
+
+12: _("""
+ rayon obstacle obligatoire avec secteur.
+"""),
+
+13: _("""
+ la table usure en sortie est differente de celle en entree
+"""),
+
+14: _("""
+ le nombre de secteurs en sortie est different de celui en entree
+"""),
+
+15: _("""
+ probleme extraction pour la table %(k1)s
+"""),
+
+16: _("""
+ attention : le calcul du dommage n'a de sens que pour des dsp en contraintes
+"""),
+
+17: _("""
+ aucune valeur de moment presente
+"""),
+
+18: _("""
+ y a un bug: recup frequences
+"""),
+
+19: _("""
+ il faut au moins un group_ma_radier
+"""),
+
+20: _("""
+ rigidite de translation non nulle
+"""),
+
+21: _("""
+ rigidite de rotation non nulle
+"""),
+
+22: _("""
+ nombres de composantes raideurs et mode differents
+"""),
+
+23: _("""
+ nombres de group_ma et amor_interne differents
+"""),
+
+24: _("""
+ nombres de composantes amortissements et mode differents
+"""),
+
+25: _("""
+ option sief_elga non developpee
+"""),
+
+26: _("""
+ le type du concept resultat n'est ni evol_elas, ni evol_noli.
+"""),
+
+27: _("""
+ vous avez probablement archive l etat initial dans la commande stat_non_line. cela correspond au numero d ordre 0. nous ne tenons pas compte du resultat a ce numero d ordre pour le calcul de de la fatigue.
+"""),
+
+28: _("""
+ les champs de contraintes aux points de gauss sigm_noeu_depl ou sief_noeu_elga sief_noeu_elga n'ont pas ete calcules.
+"""),
+
+29: _("""
+ les champs de contraintes aux points de gauss n'existent pas.
+"""),
+
+30: _("""
+ le champ simple qui contient les valeurs des contraintes n existe pas.
+"""),
+
+31: _("""
+ le critere de fatemi et socie est prevu pour fonctionner apres un calcul elastoplastique, son utilisation apres meca_statique n'est pas prevue.
+"""),
+
+32: _("""
+ le champ de contraintes aux points de gauss sief_elga ou sief_elga_depl n'a pas ete calcule.
+"""),
+
+33: _("""
+ le champ de deformations aux points de gauss epsi_elga_depl n'a pas ete calcule.
+"""),
+
+34: _("""
+ les champs de deformations aux points de gauss n'existent pas.
+"""),
+
+35: _("""
+ le champ simple qui contient les valeurs des deformations n existe pas.
+"""),
+
+36: _("""
+ les champs de contraintes aux noeuds sigm_noeu_depl ou sief_noeu_elga n'ont pas ete calcules.
+"""),
+
+37: _("""
+ les champs de contraintes aux noeuds n'existent pas.
+"""),
+
+38: _("""
+ le champ de contraintes aux noeuds sief_noeu_elga n'a pas ete calcule.
+"""),
+
+39: _("""
+ le champ de deformations aux noeuds epsi_noeu_depl n'a pas ete calcule.
+"""),
+
+40: _("""
+ le champ de contraintes aux noeuds n'existe pas.
+"""),
+
+41: _("""
+ le champ de deformations aux noeuds n'existe pas.
+"""),
+
+42: _("""
+ la donnee d'une courbe de wohler est obligatoire
+"""),
+
+43: _("""
+ la donnee du moment spectral d'ordre 4 est obligatoire pour le comptage des pics de contraintes
+"""),
+
+44: _("""
+ la valeur du moment spectral d'ordre 0 (lambda_0) est certainement nulle
+"""),
+
+45: _("""
+ la valeur du moment spectral d'ordre 2 (lambda_2) est nulle
+"""),
+
+46: _("""
+ la valeur du moment spectral d'ordre 4 (lambda_4) est nulle
+"""),
+
+47: _("""
+ inst_init plus grand que inst_fin
+"""),
+
+48: _("""
+ l'histoire de chargement doit avoir meme discretisation pour toutes les composantes
+"""),
+
+49: _("""
+ loi de dommage non compatible
+"""),
+
+50: _("""
+ l'histoire de la deformation plastique cumulee doit avoir meme discretisation que l'histoire des contraintes
+"""),
+
+51: _("""
+ l'histoire de la temperature doit avoir meme discretisation que l'histoire des contraintes
+"""),
+
+52: _("""
+ methode de comptage inconnue
+"""),
+
+53: _("""
+ nombre de cycles nul
+"""),
+
+54: _("""
+ l'utilisation de manson_coffin est reserve a des histoires de chargements en deformations
+"""),
+
+55: _("""
+ la courbe de manson_coffin doit etre donnee dans defi_materiau
+"""),
+
+56: _("""
+ les lois de taheri sont reservees pour des chargements en deformations
+"""),
+
+57: _("""
+ erreur donnees.
+"""),
+
+58: _("""
+ presence de point(s) que dans un secteur.
+"""),
+
+59: _("""
+ aucun cercle n'est circonscrit aux quatre points.
+"""),
+
+60: _("""
+ le decalage se trouve necessairement cote revetement. le decalage doit etre negatif
+"""),
+
+61: _("""
+ hors bornes definies dans cesmat ou cmp non affectee.
+"""),
+
+62: _("""
+ les mailles attachees au noeud traite ne sont pas affectees du meme materiau.
+"""),
+
+63: _("""
+ pour calculer le dommage max il faut renseigner cisa_plan_crit dans la commande defi_materiau
+"""),
+
+64: _("""
+ nous ne pouvons pas recuperer la valeur du parametre a du critere de matake, cf. commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+65: _("""
+ nous ne pouvons pas recuperer la valeur du parametre b du critere de matake, cf. commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+66: _("""
+ nous ne pouvons pas recuperer la valeur du coefficient de passage flexion-torsion, cf. commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+67: _("""
+ nous ne pouvons pas recuperer la valeur du parametre a du critere de dang_van_modi_ac, cf. commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+68: _("""
+ nous ne pouvons pas recuperer la valeur du parametre b du critere de dang_van_modi_ac, cf. commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+69: _("""
+ nous ne pouvons pas recuperer la valeur du coefficient de passage cisaillement-traction, cf. commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+70: _("""
+ nous ne pouvons pas recuperer la valeur du parametre a du critere domm_maxi, de la commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+71: _("""
+ nous ne pouvons pas recuperer la valeur du parametre b du critere domm_maxi, de la commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+72: _("""
+ nous ne pouvons pas recuperer la valeur du coefficient de passage cisaillement-traction, de la commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+73: _("""
+ nous ne pouvons pas recuperer la valeur du parametre a du critere dang_van_modi_av, de la commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+74: _("""
+ nous ne pouvons pas recuperer la valeur du parametre b du critere dang_van_modi_av, de la commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+75: _("""
+ nous ne pouvons pas recuperer la valeur du parametre a du critere fatemi_socie, de la commande: defi_materiau, operande: cisa_plan_crit.
+"""),
+
+76: _("""
+ le champ demande n'est pas prevu
+"""),
+
+77: _("""
+ nom_cham: %(k1)s interdit.
+"""),
+
+78: _("""
+ methode non programmee pour les hexa, penta et pyram
+"""),
+
+79: _("""
+ probleme de convergence pour calculer la nouvelle carte de taille
+"""),
+
+
+
+
+
+
+
+
+81: _("""
+ lunule, bug !
+"""),
+
+82: _("""
+ type %(k1)s non implante.
+"""),
+
+83: _("""
+ profondeur > rayon du tube
+"""),
+
+84: _("""
+ pas d'informations dans le "resu_gene" sur l'option "choc".
+"""),
+
+85: _("""
+ modele non valide.
+"""),
+
+86: _("""
+ seuil / v0 > 1
+"""),
+
+87: _("""
+ ***** arret du calcul *****
+"""),
+
+88: _("""
+ nno > 27
+"""),
+
+89: _("""
+ type non traite %(k1)s
+"""),
+
+90: _("""
+ les tables tabl_meca_rev et tabl_meca_mdb n ont pas les memes dimensions
+"""),
+
+91: _("""
+ les tables n ont pas les memes instants de calculs
+"""),
+
+92: _("""
+ les tables n ont pas les memes dimensions
+"""),
+
+93: _("""
+ volume use trop grand pour la modelisation
+"""),
+
+94: _("""
+Elément inconnu.
+ Type d'élément Gibi : %(i1)d
+ Nombre de sous-objet : %(i2)d
+ Nombre de sous-référence : %(i3)d
+ Nombre de noeuds par élément : %(i4)d
+ Nombre d'éléments : %(i5)d
+
+La ligne lue dans le fichier doit ressembler à ceci :
+%(i1)8d%(i2)8d%(i3)8d%(i4)8d%(i5)8d
+"""),
+
+95: _("""
+On a lu un objet dit composé (car type d'élément = 0) qui serait
+composé de 0 sous-objet !
+"""),
+
+96: _("""
+ Type de concept invalide.
+"""),
+
+97: _("""
+ Erreur Utilisateur :
+ La maille de peau : %(k1)s ne peut pas etre réorientée.
+ Car elle est inserrée entre 2 mailles "support" placées de part et d'autre : %(k2)s et %(k3)s.
+
+"""),
+
+
+
+
+
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF prepost5 Messages DATE 23/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ L'option %(k1)s est deja calculee pour le numero d'ordre %(k2)s.
+ On la recalcule car les donnees peuvent etre differentes.
+"""),
+
+2: _("""
+Champ inexistant SIEF_ELGA ou SIEF_ELGA_DEPL numero d'ordre %(k2)s pour le calcul de l'option %(k3)s
+"""),
+
+3: _("""
+Champ inexistant DEPL numero d'ordre %(k2)s pour le calcul de l'option %(k3)s
+"""),
+
+4: _("""
+Champ inexistant %(k1)s numero d'ordre %(k2)s pour le calcul de l'option %(k3)s
+"""),
+
+5: _("""
+Option illicite pour le resultat %(k1)s numero d'ordre %(k2)s pour le calcul de l'option %(k3)s
+"""),
+
+6: _("""
+Numero d'ordre trop grand %(k1)s pour le calcul de l'option %(k2)s
+"""),
+
+7: _("""
+Option illicite pour le resultat %(k1)s numero d'ordre trop grand %(k2)s pour le calcul de l'option %(k3)s
+"""),
+
+8: _("""
+
+ la taille memoire necessaire au vecteur de travail dans lequel nous stockons les composantes u et v du vecteur tau est trop importante par rapport a la place disponible.
+ taille disponible : %(i1)d
+ taille necessaire : %(i2)d
+"""),
+
+9: _("""
+
+ La commande POST_ZAC ne tolère comme variable de commande que la température.
+ """),
+
+10: _("""
+ le noeud traite n'est associe a aucune maille volumique.
+ numero du noeud = %(i1)d
+ nombre de mailles attachees au noeud = %(i2)d
+"""),
+
+11: _("""
+ Vous utilisez le mot clé TEMP_CALCULEE de la commande AFFE_CHAR_MECA
+ avec POST_ZAC. Utilisez AFFE_VARC dans la commande AFFE_MATERIAU à la place.
+"""),
+
+12: _("""
+ le noeud milieu : %(k1)s
+ n'est pas supprime car il appartient a une maille qui reste quadratique.
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+16: _("""
+ appel erronenumero d'ordre %(i1)d code retour de rsexch : %(i2)d
+ pb cham_no %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+19: _("""
+ nombre de noeud(s) elimine(s) du maillage %(i1)d
+"""),
+
+20: _("""
+ nombre de maille(s) eliminee(s) du maillage %(i1)d
+"""),
+
+21: _("""
+ le numero du groupe de mailles est trop grand: %(i1)d
+ le numero du groupe doit etre inferieur a %(i2)d
+"""),
+
+22: _("""
+ fichier med : %(k1)s maillage : %(k2)s erreur efouvr numero %(i1)d
+"""),
+
+23: _("""
+ fichier med : %(k1)s champ : %(k2)s erreur efferm numero %(i1)d
+"""),
+
+24: _("""
+ fichier med : %(k1)s champ : %(k2)s retour de mdexch : existc = %(i1)d
+"""),
+
+25: _("""
+ on ne trouve pas la composante %(k1)s dans la grandeur %(k2)s
+"""),
+
+
+
+
+
+
+
+
+27: _("""
+ l objet %(k1)s n existe pas. %(k2)s veuillez renseigner le modele. %(k3)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+30: _("""
+ on ne trouve pas la maille %(k1)s
+"""),
+
+31: _("""
+ on ne trouve pas le groupe %(k1)s
+"""),
+
+32: _("""
+ le groupe %(k1)s ne contient aucune maille %(k2)s
+"""),
+
+33: _("""
+ fichier med : %(k1)s maillage : %(k2)s
+"""),
+
+
+
+
+
+
+
+
+35: _("""
+ fichier med : %(k1)s maillage : %(k2)s erreur efferm numero %(i1)d
+"""),
+
+36: _("""
+ fichier med : %(k1)s erreur efouvr numero %(i1)d
+"""),
+
+37: _("""
+ fichier med : %(k1)s erreur efferm numero %(i1)d
+"""),
+
+38: _("""
+ on ne trouve pas le noeud : %(k1)s
+"""),
+
+
+
+
+
+
+
+
+40: _("""
+ le groupe %(k1)s ne contient aucun noeud %(k2)s
+"""),
+
+41: _("""
+ le parametre %(k1)s n'existe pas %(k2)s
+"""),
+
+42: _("""
+ valeurs lues dans le fichier : %(i1)d
+ valeurs non affectees dans le champ : %(i2)d
+"""),
+
+43: _("""
+ profil med : %(k1)s erreur efnpfl numero %(i1)d
+"""),
+
+44: _("""
+ profil med : %(k1)s erreur efpfll numero %(i1)d
+"""),
+
+45: _("""
+ noeud inconnu dans le fichier ideas noeud numero : %(i1)d
+"""),
+
+46: _("""
+ element inconnu dans le fichier ideas element numero : %(i1)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+50: _("""
+ fichier med : %(k1)s erreur efnmaa numero %(i1)d
+"""),
+
+51: _("""
+ fichier med : %(k1)s maillage numero %(i1)d erreur efmaai numero %(i2)d
+"""),
+
+52: _("""
+ fichier med : %(k1)s maillage numero %(i1)d nomamd est declare a %(i2)d
+ le nom de maillage est : %(k2)s
+ de longueur %(i3)d
+"""),
+
+
+
+
+
+
+
+
+54: _("""
+ probleme dans nomta traitement de l'instant %(r1)f
+ recuperation de %(k1)s
+ pour le secteur %(i1)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+57: _("""
+ probleme dans nomta traitement de l'instant %(r1)f
+ recuperation de %(k1)s
+"""),
+
+58: _("""
+ probleme dans nomta traitement de l'instant %(r1)f
+ recuperation "numeli" pour %(k1)s
+"""),
+
+59: _("""
+ probleme dans nomta traitement de l'instant %(r1)f
+ recuperation "numeli" pour le secteur %(i1)d
+"""),
+
+
+
+
+
+
+
+
+61: _("""
+ la composante %(k1)s n'existe dans aucun des champs %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+64: _("""
+ la valeur d'amortissement reduit est trop grande
+ la valeur d'amortissement : %(r1)f
+ du mode propre %(i1)d
+ est tronquee au seuil : %(r2)f
+"""),
+
+
+
+
+
+
+
+
+
+
+67: _("""
+
+ la taille memoire necessaire au vecteur de travail est trop importante par rapport a la place disponible.
+ taille disponible : %(i1)d
+ taille necessaire : %(i2)d
+"""),
+
+68: _("""
+
+ la taille du vecteur contenant les caracteristiques des paquets de mailles est trop petite.
+ nb de paquets maxi : %(i1)d
+ nb de paquets reels: %(i2)d
+"""),
+
+
+
+
+
+
+
+
+70: _("""
+
+ la taille du vecteur contenant les caracteristiques des paquets de noeuds est trop petite.
+ nb de paquets maxi : %(i1)d
+ nb de paquets reels: %(i2)d
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+73: _("""
+ appel errone resultat : %(k1)s archivage numero : %(i1)d
+ code retour de rsexch : %(i2)d
+ probleme champ : %(k2)s
+"""),
+
+74: _("""
+ on ne trouve pas l'instant %(r1)f dans la table %(k1)s
+"""),
+
+75: _("""
+ on trouve plusieurs instants %(r1)f dans la table %(k1)s
+"""),
+
+76: _("""
+ noeud non contenu dans une maille sachant calculer l" option
+ noeud numero : %(i1)d
+"""),
+
+77: _("""
+ *** banque de donnees *** pour le type de geometrie %(k1)s
+ le couple de materiaux %(k2)s
+ ne se trouve pas dans la banque. %(k3)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF sdveri Messages DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+ 1: _("""
+ Impossible d'importer le catalogue de la structure de données '%(k1)s'
+"""),
+
+
+17: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ L'objet JEVEUX '%(k1)s' a un LONMAX incorrect.
+ LONMAX attendu : %(i1)d
+ LONMAX trouvé : %(i2)d
+"""),
+
+18: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ La collection JEVEUX '%(k1)s' n'a pas le bon nombre d'objets (NUTIOC)
+"""),
+
+19: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ Le pointeur de noms JEVEUX '%(k1)s' n'a pas la bonne longueur (NOMUTI)
+"""),
+
+20: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ L'objet JEVEUX '%(k1)s' devrait etre de type entier
+"""),
+
+21: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ L'objet JEVEUX '%(k1)s' devrait etre de type réel
+"""),
+
+22: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ L'objet JEVEUX '%(k1)s' devrait etre de type complexe
+"""),
+
+
+
+
+
+
+24: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ L'objet JEVEUX '%(k1)s' devrait etre de type '%(k2)s'.
+"""),
+
+25: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ La vérification '%(k1)s' n'est pas programmée.
+"""),
+
+26: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ L'objet '%(k1)s' est obligatoire dans la SD mais il n'existe pas.
+"""),
+
+27: _("""
+ Erreur de programmation :
+ Vérification d'une structure de donnée :
+ L'objet JEVEUX '%(k1)s' a un champ DOCU incorrect.
+ Le champ DOCU attendu est : '%(k2)s'
+ Le champ DOCU trouvé est : '%(k3)s'
+"""),
+
+
+
+
+30: _("""
+ Erreur de programmation (catalogue des SD) :
+ Vérification d'une structure de donnée :
+ certains objets JEVEUX sont incorrects :
+"""),
+
+31: _("""
+ Objet : '%(k1)s' Message : %(k2)s
+"""),
+
+32: _("""
+ Fin Message 30
+"""),
+
+
+
+40: _("""
+ Erreur de programmation (catalogue des SD) :
+ Vérification d'une structure de donnée :
+ Les objets suivants sont interdits dans les SD de type : %(k1)s
+"""),
+
+41: _("""
+ Objet '%(k1)s' INTERDIT
+"""),
+
+42: _("""
+ Fin Message 40
+"""),
+
+45: _("""
+ Erreur dans le Python : voir traceback ci-dessous
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF sensibilite Messages DATE 16/05/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.
+# ======================================================================
+# RESPONSABLE ABBAS M.ABBAS
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ Type de dérivation voulu : %(i1)d
+ Ce type n'est pas implanté.
+"""),
+
+2: _("""
+ On veut dériver %(k1)s par rapport à %(k2)s.
+ Cela n'est pas disponible.
+"""),
+
+3: _("""
+ La dérivée de %(k1)s par rapport à %(k2)s est introuvable.
+"""),
+
+4: _("""
+ Le champ de theta sensibilité est inexistant dans la sd %(k1)s
+"""),
+
+5: _("""
+ On ne sait pas dériver ce type de structures : %(k1)s.
+"""),
+
+6: _("""
+ Le paramètre de sensibilité doit etre un champ theta.
+"""),
+
+7: _("""
+ Cette option est indisponible en sensibilité lagrangienne.
+"""),
+
+8: _("""
+ Pour l'occurrence numéro %(i1)d ,
+ la dérivée du champ %(k1)s de %(k2)s par rapport à %(k3)s est introuvable.
+"""),
+
+9: _("""
+ On ne sait pas trouver le type de la dérivation par rapport à %(k1)s.
+"""),
+
+10: _("""
+ Initialisation de la table associée à la table %(k1)s et au paramètre sensible %(k2)s
+ connue sous le nom de concept %(k3)s
+"""),
+
+11: _("""
+ Le calcul de sensibilité n'est pas encore disponible pour les chargements de type epsi_init
+"""),
+
+12: _("""
+ Il y a vraisemblablement %(i1)d modes propres multiples.
+ Le calcul des sensibilités se limite actuellement aux modes propres simples
+"""),
+
+13: _("""
+ On ne peut pas dériver avec une charge complexe en entrée de dyna_line_harm.
+"""),
+
+14: _("""
+ La sensibilité en mécanique ne fonctionne pas encore avec un chargement thermique
+"""),
+
+15: _("""
+ Le comportement %(k1)s n'est pas autorisé en sensibilité
+"""),
+
+16: _("""
+ EXICHA différent de 0 et 1
+"""),
+
+22: _("""
+ L'option sensibilité lagrangienne non opérationnelle en non lineaire
+"""),
+
+21: _("""
+ Pour faire une reprise avec un calcul de sensibilité, il faut renseigner "evol_noli" dans "etat_init"
+"""),
+
+31: _("""
+ L'option sensibilité n'est pas opérationnelle en séchage
+"""),
+
+32: _("""
+ L'option sensibilité n'est pas opérationnelle en hydratation
+"""),
+
+35: _("""
+ L'option sensibilité n'est pas opérationnelle pour le comportement %(k1)s
+"""),
+
+36: _("""
+ L'option sensibilité n'est pas opérationnelle pour le type d'élément %(k1)s
+"""),
+
+37: _("""
+ L'option sensibilité n'est pas opérationnelle pour la modélisation %(k1)s
+"""),
+
+38: _("""
+ pb determination sensibilité de rayonnement
+"""),
+
+39: _("""
+ pb determination sensibilité materiau ther_nl
+"""),
+
+41: _("""
+ Déplacements initiaux imposés nuls pour les calculs de sensibilité
+"""),
+
+42: _("""
+ Vitesses initiales imposées nulles pour les calculs de sensibilité
+"""),
+
+51: _("""
+ Dérivation de g : un seul paramètre sensible par appel à CALC_G.
+"""),
+
+52: _("""
+ Actuellement, on ne sait dériver que les 'POU_D_E'.
+"""),
+
+53: _("""
+ En thermoélasticité, le calcul des dérivées de g est pour le moment incorrect.
+"""),
+
+54: _("""
+ Avec un chargement en déformations (ou contraintes) initiales, le calcul
+ des dérivées de g est pour le moment incorrect.
+"""),
+
+55: _("""
+ Le calcul de derivée n'a pas été étendu à la plasticité.
+"""),
+
+56: _("""
+ Pas de calcul de sensibilité accessible.
+"""),
+
+57: _("""
+ Valeur incorrecte pour le nom du concept ou du paramètre sensible.
+ Ils doivent etre de type chaines de caractères de moins de 8 caractères.
+ Nom du concept : '%(k1)s'
+ Nom du paramètre sensible : '%(k2)s'
+"""),
+
+58: _("""
+ Nom du concept : '%(k1)s'
+ Nom du paramètre sensible : '%(k2)s'
+
+ Nom composé (dérivé) : '%(k3)s'
+
+"""),
+
+59: _("""
+ Liste des mots-clés : %(k1)s
+ Liste des valeurs : %(k2)s
+ Liste des mots-clés facteurs : %(k3)s
+
+"""),
+
+
+
+
+71: _("""
+ Dérivation par rapport au paramètre sensible : %(k1)s
+"""),
+
+72: _("""
+ Le résultat est insensible au paramètre %(k1)s.
+"""),
+
+73: _("""
+ Le type de la dérivation est %(k1)s
+"""),
+
+80: _("""
+ mauvaise valeur pour %(k1)s : il doit etre positif ou nul mais on a donné %(i1)d
+"""),
+
+81: _("""
+ la structure nosimp est introuvable dans la memorisation inpsco
+"""),
+
+82: _("""
+ choix=/prefixe/e/renc/remc/s svp et non pas %(k1)s.
+"""),
+
+83: _("""
+ la chaine pref passe en argument est trop courte pour mettre la chaine prefix = %(k1)s
+"""),
+
+84: _("""
+ mauvaise valeur pour %(k1)s : il faut entre %(i1)d et %(i2)d mais on a donné %(i3)d
+"""),
+
+85: _("""
+ probleme de declaration : la chaine %(k1)s est de longueur %(i1)d
+ on veut y mettre %(k2)s de longueur %(i2)d
+"""),
+
+86: _("""
+ choix=/e/l svp et non pas %(k1)s.
+"""),
+
+87: _("""
+ La fonction numéro %(i1)d est deja memorisee sous le nom %(k1)s
+"""),
+
+88: _("""
+ La chaine %(k1)s est de longueur %(i1)d
+ Pour un concept, pas plus de 8 caractères svp.
+"""),
+
+89: _("""
+ Mauvaise valeur pour choix ; il faut 1,2 ou 3, mais pas %(i1)d
+"""),
+
+90: _("""
+ La dérivée de %(k1)s par rapport à %(k2)s est déja nommée.
+"""),
+
+91: _("""
+ Le pas de temps adaptatif n'est pas approprié pour le calcul de sensibilité
+ par rapport au paramètre materiau
+"""),
+
+92: _("""
+ On ne peut pas dériver les concepts de type %(k1)s
+"""),
+
+93: _("""
+ On ne peut pas dériver avec un vect_asse en entree de dyna_line_harm.
+"""),
+
+94: _("""
+ La structure %(k1)s apparait plusieurs fois en tant que derivée.
+"""),
+
+95: _("""
+ Seuls sont possibles :
+"""),
+
+96: _("""
+ Les sous-types de sensibilité pour l'influence de %(k1)s sont %(k2)s et %(k3)s
+ C'est incohérent.
+"""),
+
+97: _("""
+Mémorisation des données de la sensibilité :
+
+ Les listes des mots-clés, des valeurs et mots-clés facteurs doivent etre de meme longueur.
+"""),
+
+98: _("""
+ Dans le programme %(k1)s, le paramètre de sensibilité %(k2)s est introuvable.
+"""),
+
+99: _("""
+ Impossible de trouver un sous-type de sensibilité pour l'influence de %(k1)s
+"""),
+
+}
--- /dev/null
+#@ MODIF soustruc Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ les 2 maillages ne sont pas du meme type : 2d (ou 3d).
+"""),
+
+2: _("""
+ la (super)maille : %(k1)s est en double.
+"""),
+
+3: _("""
+ la maille : %(k1)s est en double.
+"""),
+
+4: _("""
+ le group_ma : %(k1)s est en double. on ignore le second.
+"""),
+
+5: _("""
+ le group_no : %(k1)s est en double. on ignore le second.
+"""),
+
+6: _("""
+ le noeud: %(k1)s n'a pas les memes coordonnees dans les maillages: %(k2)s et %(k3)s
+"""),
+
+7: _("""
+ matrice de rigidite non inversible (modes rigides ???) - attention : criteres de choc non calcules
+"""),
+
+8: _("""
+ matrice de rigidite : pivot quasi-nul (modes rigides ???) - attention : criteres de choc non calcules
+"""),
+
+9: _("""
+ mot-clef "definition" interdit :le macr_elem: %(k1)s est deja defini.
+"""),
+
+10: _("""
+ mot-clef "rigi_meca" interdit :il est deja calcule.
+"""),
+
+11: _("""
+ mot-clef "rigi_meca" interdit :le resultat : %(k1)s existe deja.
+"""),
+
+12: _("""
+ mot-clef "mass_meca" interdit :il faut avoir fait "definition" et "rigi_meca".
+"""),
+
+13: _("""
+ mot-clef "mass_meca" interdit :il est deja calcule.
+"""),
+
+14: _("""
+ mot-clef "cas_charge" interdit :il faut avoir fait "definition" et "rigi_meca".
+"""),
+
+15: _("""
+ cet operateur modifie un maillage existant. le resultat doit etre identique au concept donne dans l'argument maillage.
+"""),
+
+16: _("""
+ maillages avec super mailles : utiliser operation : sous-stru
+"""),
+
+17: _("""
+ groupe de noeuds inexistant
+"""),
+
+18: _("""
+ groupes incompatibles
+"""),
+
+19: _("""
+ il ne faut que des points
+"""),
+
+20: _("""
+ vecteur nul pour l'orientation
+"""),
+
+21: _("""
+ critere inconnu
+"""),
+
+22: _("""
+ noeud eloignes a la normale au segment
+"""),
+
+23: _("""
+ On cherche à classer une liste de noeuds par abscisses croissantes
+ de leur projection sur un segment de droite.
+ 2 noeuds ont la meme projection sur la droite.
+ Le classement est donc arbitraire.
+
+ -> Risque & Conseil :
+ Vérifiez votre maillage.
+"""),
+
+24: _("""
+ mot clef "sous_struc" interdit pour ce modele sans sous_structures.
+"""),
+
+25: _("""
+ liste de mailles plus longue que la liste des sous_structures du modele.
+"""),
+
+26: _("""
+ la maille : %(k1)s n existe pas dans le maillage : %(k2)s
+"""),
+
+27: _("""
+ la maille : %(k1)s n'est pas active dans le modele
+"""),
+
+28: _("""
+ la maille : %(k1)s ne connait pas le chargement : %(k2)s
+"""),
+
+29: _("""
+ arret suite aux erreurs detectees.
+"""),
+
+30: _("""
+ mot clef "affe_sous_struc" interdit pour ce maillage sans (super)mailles.
+"""),
+
+31: _("""
+ la maille : %(k1)s n'appartient pas au maillage
+"""),
+
+32: _("""
+ maille en double : %(k1)s dans le group_ma: %(k2)s
+"""),
+
+33: _("""
+ l'indice final est inferieur a l'indice initial
+"""),
+
+34: _("""
+ l'indice final est superieur a la taille du groupe
+"""),
+
+35: _("""
+ le group_ma : %(k1)s n'appartient pas au maillage
+"""),
+
+36: _("""
+ le group_ma : %(k1)s est vide. on ne le cree pas.
+"""),
+
+37: _("""
+ le group_no : %(k1)s existe deja, on ne le modifie pas.
+"""),
+
+38: _("""
+ le group_no : %(k1)s est vide, on ne le cree pas.
+"""),
+
+39: _("""
+ noeud en double : %(k1)s dans le group_no: %(k2)s
+"""),
+
+40: _("""
+ liste de charges trop longue
+"""),
+
+41: _("""
+ l'exterieur du macr_elem_stat contient des noeuds qui ne portent aucun ddl, ces noeuds sont elimines.
+"""),
+
+42: _("""
+ l'exterieur du macr_elem_stat contient des noeuds en double. ils sont elimines.
+"""),
+
+43: _("""
+ grandeur: %(k1)s interdite. (seule autorisee: depl_r)
+"""),
+
+44: _("""
+ la maille : %(k1)s n existe pas dans le maillage : //mag
+"""),
+
+45: _("""
+ num. equation incorrect
+"""),
+
+46: _("""
+ cas de charge : %(k1)s inexistant sur le macr_elem_stat : %(k2)s
+"""),
+
+47: _("""
+ erreur programmeur 1
+"""),
+
+48: _("""
+ noeud : %(k1)s inexistant dans le maillage : %(k2)s
+"""),
+
+49: _("""
+ group_no : %(k1)s inexistant dans le maillage : %(k2)s
+"""),
+
+50: _("""
+ liste de mailles trop longue.
+"""),
+
+51: _("""
+ la liste des mailles est plus longue que la liste des macr_elem_stat.
+"""),
+
+52: _("""
+ trop de reels pour le mot clef "tran"
+"""),
+
+53: _("""
+ trop de reels pour le mot clef "angl_naut"
+"""),
+
+54: _("""
+ trop de reels pour le mot clef "centre"
+"""),
+
+55: _("""
+ melange de maillages 2d et 3d
+"""),
+
+56: _("""
+ le macr_elem_stat : %(k1)s n'existe pas.
+"""),
+
+57: _("""
+ les arguments "prefixe" et "index" conduisent a des noms de noeuds trop longs (8 caracteres maxi).
+"""),
+
+58: _("""
+ il faut : "tout" ou "maille" pour "defi_noeud".
+"""),
+
+59: _("""
+ le noeud : %(k1)s n'appartient pas a la maille : %(k2)s
+"""),
+
+60: _("""
+ le noeud : %(k1)s de la maille : %(k2)s a ete elimine (recollement). on ne peut donc le renommer.
+"""),
+
+61: _("""
+ les arguments "prefixe" et "index" conduisent a des noms de group_no trop longs (8 caracteres maxi).
+"""),
+
+62: _("""
+ le group_no : %(k1)s est vide. on ne le cree pas.
+"""),
+
+63: _("""
+ liste trop longue
+"""),
+
+64: _("""
+ la liste de mailles est plus longue que le nombre total de mailles.
+"""),
+
+65: _("""
+ la liste de mailles n'a pas la meme longueur que la liste de group_no.
+"""),
+
+66: _("""
+ la liste de mailles doit etre de dimension au moins 2 pour le recollement
+"""),
+
+67: _("""
+ les group_no a recoller : %(k1)s et %(k2)s n'ont pas le meme nombre de noeuds.
+"""),
+
+68: _("""
+ pour le recollement geometrique des group_no : %(k1)s et %(k2)s certains noeuds ne sont pas apparies
+"""),
+
+69: _("""
+ amor_meca non implante.
+"""),
+
+70: _("""
+ la sous-structuration n'est possible qu'en mecanique
+"""),
+
+71: _("""
+ nombre de noeuds internes : 0
+"""),
+
+72: _("""
+ erreur programmeur 2
+"""),
+
+73: _("""
+ la grandeur "depl_r" doit avoir lescomposantes (1 a 6) : dx,dy, ..., drz
+"""),
+
+74: _("""
+ la grandeur "depl_r" doit avoir lacomposante "lagr".
+"""),
+
+75: _("""
+ autorise : "lg" ou "gl" pas: %(k1)s
+"""),
+
+76: _("""
+ ddl non prevu. on attend: dx
+"""),
+
+77: _("""
+ ddls non prevus
+"""),
+
+78: _("""
+ erreur dans le maillage
+"""),
+
+79: _("""
+ le calcul de reponse pour ce type de resultat n'est disponible que sur les macr_elem_stat obtenus a partir de la mesure
+"""),
+
+80: _("""
+ la matrice de rigidite condensee n'a pas ete calculee
+"""),
+
+81: _("""
+ la matrice de masse condensee n'a pas ete calculee
+"""),
+
+82: _("""
+ nb de ddl capteur insuffisant ou nb vecteurs de base trop eleve, nb ddl capteur : %(i1)d ,nb vecteurs de base : %(i2)d
+"""),
+
+83: _("""
+ nb ddl interface insuffisant ou nb modes identifies trop eleve, nb ddl interface : %(i1)d ,nb modes identifies : %(i2)d
+"""),
+
+84: _("""
+ champ inexistant base %(k1)s nom_cham %(k2)s nume_ordre %(i1)d
+"""),
+
+
+
+
+
+
+
+
+86: _("""
+ noeud %(k1)s en dehors du segment %(k2)s abscisse curviligne %(r1)f
+"""),
+
+87: _("""
+ trop de noeuds dans le group_no noeud utilise: %(k1)s
+"""),
+
+}
--- /dev/null
+#@ MODIF stbtrias Messages DATE 20/02/2007 AUTEUR LEBOUVIER F.LEBOUVIER
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ le fichier ideas est vide, ou ne contient pas de datatset traite par l'interface
+"""),
+
+2: _("""
+ couleur inconnu
+"""),
+
+3: _("""
+ attention le dataset 2420 apparait plusieurs fois.
+"""),
+
+4: _("""
+ attention le dataset 18 apparait plusieurs fois.
+"""),
+
+5: _("""
+ groupe %(k1)s de longueur superieure a 8 (troncature du nom)
+"""),
+
+6: _("""
+ le nom du groupe est invalide: %(k1)s : non traite
+"""),
+
+7: _("""
+ le nom du groupe %(k1)s est tronque : %(k2)s
+"""),
+
+8: _("""
+ le nom du groupe ne peut commencer par coul_ : non traite
+"""),
+
+9: _("""
+ aucun systeme de coordonnes n'est defini
+"""),
+
+10: _("""
+ attention systeme de coordonnes autre que cartesien non relu dans aster.
+"""),
+
+11: _("""
+ attention votre maillage utiliseplusieurs systemes de coordonnees.verifier qu'ils sont tous identiques car asterne gere qu'un systeme de coordonne cartesien unique.
+"""),
+}
--- /dev/null
+#@ MODIF supervis Messages DATE 07/06/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+
+2: _("""
+ Arret sur erreur(s) utilisateur
+"""),
+
+3: _("""
+ Erreur programmeur : JEMARQ/JEDEMA non apparies.
+"""),
+
+4: _("""
+ Commande n %(k1)s : "%(k2)s" : %(k3)s erreur(s) detectee(s)
+"""),
+
+5: _("""
+ Erreur(s) à l'exécution de "%(k1)s" : arret immediat du programme.
+"""),
+
+6: _("""
+ Fin à la suite de message(s) <E>
+"""),
+
+7: _("""
+ Le concept " %(k1)s " est inconnu. Il n'est ni parmi les créés, ni parmi ceux à créer.
+"""),
+
+8: _("""
+ Un nom de concept intermediaire doit commencer par '.' ou '_' et non : %(k1)s
+"""),
+
+9: _("""
+ Longueur nulle
+"""),
+
+10: _("""
+ - le concept "%(k1)s" est detruit des bases de donnees.
+"""),
+
+11: _("""
+ Impossible d'allouer la mémoire jeveux demandée
+"""),
+
+12: _("""
+ Exécution de jeveux en mode debug
+"""),
+
+13: _("""
+ %(k1)s nom de base déjà définie
+"""),
+
+14: _("""
+ %(k1)s statut impossible pour la base globale
+"""),
+
+15: _("""
+ Problème d'allocation des bases de données
+"""),
+
+16: _("""
+ Ecriture des catalogues dans ELEMBASE faite.
+"""),
+
+17: _("""
+ Relecture des catalogues dans ELEMBASE faite.
+"""),
+
+18: _("""
+ Trop de catalogues (maximum = 10)
+"""),
+
+19: _("""
+ Debut de lecture
+"""),
+
+20: _("""
+ "%(k1)s" argument invalide du mot clé "FICHIER" du mot clé facteur "CATALOGUE"
+"""),
+
+21: _("""
+ Erreur(s) fatale(s) lors de la lecture des catalogues
+"""),
+
+22: _("""
+L'argument du mot cle "NOM" sous le mot clé facteur "CODE" est tronqué à 8 caractères. Le nom de code est donc "%(k1)s".
+"""),
+
+23: _("""
+ Debug JXVERI demandé
+"""),
+
+24: _("""
+ Debug SDVERI demandé
+"""),
+
+25: _("""
+ Mémoire gestion : "COMPACTE"
+"""),
+
+26: _("""
+ Type allocation memoire 2
+"""),
+
+27: _("""
+ Type allocation memoire 3
+"""),
+
+28: _("""
+ Type allocation memoire 4
+"""),
+
+29: _("""
+ Trop de noms definis dans la liste argument de "FICHIER"
+"""),
+
+30: _("""
+ %(k1)s est déjà (re-) défini
+"""),
+
+31: _("""
+ Valeur invalide pour le mot clé RESERVE_CPU
+"""),
+
+32: _("""
+ La procédure "%(k1)s" ne peut etre appelée en cours d'exécution des commandes
+"""),
+
+33: _("""
+ Erreur fatale **** appel a commande "superviseur".
+"""),
+
+34: _("""
+ Arret de la lecture des commandes.
+"""),
+
+35: _("""
+ La procédure "RETOUR" ne peut etre utilisée dans le fichier principal de commandes.
+"""),
+
+36: _("""
+ Le concept de nom '%(k1)s' n'existe pas
+"""),
+
+
+
+
+
+
+38: _("""
+ Il n'y a plus de temps pour continuer
+"""),
+
+39: _("""
+ Arret de l'exécution et fermeture des bases jeveux
+"""),
+
+40: _("""
+ Vous utilisez une version dont les routines suivantes ont été surchargées :
+ %(ktout)s
+"""),
+
+41 : _("""
+Le message d'alarme '%(k1)s' a été émis %(i1)d fois, il ne sera plus affiché.
+"""),
+
+
+
+43: _("""
+ Debug SDVERI suspendu
+"""),
+
+44: _("""
+ Debug JEVEUX demandé
+"""),
+
+45: _("""
+ Debug JEVEUX suspendu
+"""),
+
+
+
+47: _("""
+ Debug JXVERI suspendu
+"""),
+
+48: _("""
+ Debug IMPR_MACRO demandé
+"""),
+
+49: _("""
+ Debug IMPR_MACRO suspendu
+"""),
+
+50: _("""
+ la commande a un numero non appelable dans cette version.
+ le numero errone est %(i1)d
+"""),
+
+
+
+
+
+
+
+
+52: _("""
+ fin de lecture (duree %(r1)f s.) %(k1)s
+"""),
+
+53: _("""
+ vous ne pouvez utiliser plus de %(i1)d
+ niveaux de profondeur pour des appels par la procedure %(k1)s
+"""),
+
+
+
+
+
+
+55 : _("""
+ Appels récursifs de messages d'erreur ou d'alarme.
+"""),
+
+56 : _("""
+ Incohérence entre le catalogue et le corps de la macro.
+"""),
+
+57 : _("""
+ Impossible d'importer '%(k1)s' dans Messages.
+ Le fichier %(k1)s.py n'existe pas dans le répertoire 'Messages'
+ ou bien la syntaxe du fichier est incorrecte.
+
+ Merci de signaler cette anomalie.
+
+ Traceback :
+ %(k2)s
+"""),
+
+}
--- /dev/null
+#@ MODIF table0 Messages DATE 20/02/2007 AUTEUR LEBOUVIER F.LEBOUVIER
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+Erreur dans les données. Le paramètre %(k1)s n'existe pas dans la table.
+"""),
+
+}
--- /dev/null
+#@ MODIF utilifor Messages DATE 20/02/2007 AUTEUR LEBOUVIER F.LEBOUVIER
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+1: _("""
+ number of terms .le. 0
+"""),
+
+2: _("""
+ nombre de termes .gt. 1000
+"""),
+
+3: _("""
+ x en dehors de l'intervalle (-1,+1)
+"""),
+
+4: _("""
+ x trop grand
+"""),
+
+5: _("""
+ nombre de coefficients inferieur a 1
+"""),
+
+6: _("""
+ serie de chebyshev trop courte pour la precision
+"""),
+
+7: _("""
+ probleme dans la resolution du systeme sous contraint vsrsrr
+"""),
+
+8: _("""
+ la programmation prevoit que les entiers sont codes sur plus de 32 bits. ce qui n'est pas le cas sur votre machine
+"""),
+
+9: _("""
+ Erreur lexicale (01) %(k1)s %(k2)s
+"""),
+
+}
--- /dev/null
+#@ MODIF utilitai Messages DATE 29/09/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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ le nombre de grels du ligrel du modele est nul.
+"""),
+
+2: _("""
+ il ne faut pas demander 'tr' derriere cara si le type d'element discret ne prend pas en compte la rotation
+"""),
+
+3: _("""
+ "*" est illicite dans une liste.
+"""),
+
+4: _("""
+ %(k1)s n'est pas une option reconnu.
+"""),
+
+5: _("""
+ vecteur axe de norme nulle
+"""),
+
+6: _("""
+ axe non colineaire a v1v2
+"""),
+
+7: _("""
+ pb norme de axe
+"""),
+
+8: _("""
+ erreur dans fointc
+"""),
+
+9: _("""
+ dimension %(k1)s inconnue.
+"""),
+
+10: _("""
+ maillage obligatoire.
+"""),
+
+11: _("""
+ on ne peut pas creer un champ de vari_r avec le mot cle facteur affe (voir u2.01.09)
+"""),
+
+12: _("""
+ mot cle affe/noeud interdit ici.
+"""),
+
+13: _("""
+ mot cle affe/group_no interdit ici.
+"""),
+
+14: _("""
+ type scalaire non traite : %(k1)s
+"""),
+
+15: _("""
+ incoherence entre nombre de composantes et nombre de valeurs
+"""),
+
+16: _("""
+ il faut champ de fonctions svp
+"""),
+
+17: _("""
+ les parametres doivent etre reels
+"""),
+
+18: _("""
+ maillages diff.
+"""),
+
+19: _("""
+ erreur pgmeur: augmenter nbpumx.
+"""),
+
+20: _("""
+ le champ %(k1)s n'est pas de type reel
+"""),
+
+21: _("""
+ on ne traite que des "cham_no" ou des "cham_elem".
+"""),
+
+22: _("""
+ unknown parameter (dvlp)
+"""),
+
+23: _("""
+ on ne trouve aucun champ.
+"""),
+
+24: _("""
+ le nom symbolique: %(k1)s est illicite pour ce resultat
+"""),
+
+25: _("""
+ le champ cherche n'a pas encore ete calcule.
+"""),
+
+26: _("""
+ pas la meme numerotation sur les cham_nos.
+"""),
+
+27: _("""
+ il faut donner un maillage.
+"""),
+
+28: _("""
+ champ non-assemblable en cham_no: %(k1)s
+"""),
+
+29: _("""
+ champ non-assemblable en cham_elem (elga): %(k1)s
+"""),
+
+30: _("""
+ a faire ??
+"""),
+
+31: _("""
+ nom_cmp2 et nom_cmp de longueur differentes.
+"""),
+
+32: _("""
+ grandeur incorrecte pour: %(k1)s
+"""),
+
+33: _("""
+ le mot-cle 'coef_c' n'est applicable que pour un champ de type complexe
+"""),
+
+34: _("""
+ developpement non realise pour les champs aux elements. vraiment desole !
+"""),
+
+35: _("""
+ le champ %(k1)s n'est pas de type complexe
+"""),
+
+36: _("""
+ on ne traite que des cham_no reels ou complexes. vraiment desole !
+"""),
+
+37: _("""
+ acces "r8" interdit ici.
+"""),
+
+38: _("""
+ acces interdit
+"""),
+
+39: _("""
+ genre : %(k1)s non prevu.
+"""),
+
+40: _("""
+ structure de donnees inexistante : %(k1)s
+"""),
+
+41: _("""
+ duplcation "maillage" du .ltnt, objet inconnu: %(k1)s
+"""),
+
+42: _("""
+ type de sd. inconnu : %(k1)s
+"""),
+
+43: _("""
+ numerotation absente probleme dans la matrice %(k1)s
+"""),
+
+44: _("""
+ erreur dans la recuperation du nombre de noeuds !
+"""),
+
+45: _("""
+ type non connu.
+"""),
+
+46: _("""
+ la fonction doit s appuyee sur un maillage pour lequel une abscisse curviligne a ete definie.
+"""),
+
+47: _("""
+ le mot cle : %(k1)s n est pas autorise.
+"""),
+
+48: _("""
+ erreur dans la dimension du vecteur .erre. cf diinit
+"""),
+
+49: _("""
+ la question : " %(k1)s " est inconnue
+"""),
+
+50: _("""
+ cham_elem inexistant: %(k1)s
+"""),
+
+51: _("""
+ il n y a pas de nume_ddl pour ce cham_no
+"""),
+
+52: _("""
+ type de charge inconnu
+"""),
+
+53: _("""
+ suffixe inconu: %(k1)s
+"""),
+
+54: _("""
+ trop d objets
+"""),
+
+55: _("""
+ champ inexistant: %(k1)s
+"""),
+
+56: _("""
+ le champ : " %(k1)s " n est pas un champ
+"""),
+
+57: _("""
+ la question n'a pas de reponse sur une grandeur de type matrice gd_1 x gd_2
+"""),
+
+58: _("""
+ situation imprevue.
+"""),
+
+59: _("""
+ la question n'a pas de sens sur une grandeur de type matrice gd_1 x gd_2
+"""),
+
+60: _("""
+ la question n'a pas de sens sur une grandeur de type composee
+"""),
+
+61: _("""
+ imprevu
+"""),
+
+62: _("""
+ on ne sait pas associer de phenomene a ce ligrel : %(k1)s
+"""),
+
+63: _("""
+ phenomene inconnu : %(k1)s
+"""),
+
+64: _("""
+ probleme dismoi.
+"""),
+
+65: _("""
+ le type de concept : " %(k1)s " est inconnu
+"""),
+
+66: _("""
+ le phenomene : %(k1)s est inconnu.
+"""),
+
+67: _("""
+ 2
+"""),
+
+68: _("""
+ type de resultat inconnu: %(k1)s pour l'objet : %(k2)s
+"""),
+
+69: _("""
+ le resulat compose ne contient aucun champ
+"""),
+
+70: _("""
+ type_maille inconnu.
+"""),
+
+71: _("""
+ mauvaise recuperation de nema
+"""),
+
+72: _("""
+ on ne traite pas les noeuds tardifs
+"""),
+
+73: _("""
+ grandeur inexistante
+"""),
+
+74: _("""
+ composante de grandeur inexistante
+"""),
+
+75: _("""
+ probleme avec la reponse %(k1)s
+"""),
+
+76: _("""
+ les conditions aux limites autres que des ddls bloques ne sont pas admises
+"""),
+
+77: _("""
+ unite logique %(k1)s , probleme lors du close
+"""),
+
+78: _("""
+ erreur dans la recuperation du maillage!
+"""),
+
+79: _("""
+ erreur dans la recuperation du nombre de mailles !
+"""),
+
+80: _("""
+ gruopage : groupe_ma non present !
+"""),
+
+81: _("""
+ erreur a l'appel de metis plus aucune unite logique libre !
+"""),
+
+82: _("""
+ methode d'integration inexistante.
+"""),
+
+83: _("""
+ interpolation par defaut "lineaire"
+"""),
+
+84: _("""
+ interpolation %(k1)s non implantee
+"""),
+
+85: _("""
+ recherche " %(k1)s " inconnue
+"""),
+
+86: _("""
+ l'intitule " %(k1)s " n'est pas correct.
+"""),
+
+87: _("""
+ le noeud " %(k1)s " n'est pas un noeud de choc.
+"""),
+
+88: _("""
+ nom de sous-structure et d'intitule incompatible
+"""),
+
+89: _("""
+ le noeud " %(k1)s " n'est pas un noeud de choc de l'intitule.
+"""),
+
+90: _("""
+ le noeud " %(k1)s " n'est pas compatible avec le nom de la sous-structure.
+"""),
+
+91: _("""
+ le parametre " %(k1)s " n'est pas un parametre de choc.
+"""),
+
+92: _("""
+ le noeud " %(k1)s " n'existe pas.
+"""),
+
+93: _("""
+ la composante " %(k1)s " du noeud " %(k2)s " n'existe pas.
+"""),
+
+94: _("""
+ type de champ inconnu %(k1)s
+"""),
+
+95: _("""
+ "interp_nume" et ("inst" ou "list_inst") non compatibles
+"""),
+
+96: _("""
+ "interp_nume" et ("freq" ou "list_freq") non compatibles
+"""),
+
+97: _("""
+ erreur 0
+"""),
+
+98: _("""
+ 1bis
+"""),
+
+99: _("""
+ erreur 1
+"""),
+}
--- /dev/null
+#@ MODIF utilitai2 Messages DATE 17/04/2007 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.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+2: _("""
+ erreur 2
+"""),
+
+3: _("""
+ erreur 3
+"""),
+
+4: _("""
+ probleme pour recuperer les variables d'acces
+"""),
+
+5: _("""
+ on ne traite que des variables d'acces reelles
+"""),
+
+6: _("""
+ on ne traite que des parametres reels
+"""),
+
+7: _("""
+ unite logique inexistante
+"""),
+
+8: _("""
+ fonction a une seule variable admis
+"""),
+
+9: _("""
+ developpement non implante.
+"""),
+
+10: _("""
+ on n'imprime pas encore de fonction de type " %(k1)s " desole.
+"""),
+
+11: _("""
+ on ne sait pas imprimer une fonction de type " %(k1)s " desole.
+"""),
+
+12: _("""
+ interpolation sur parametres non permise
+"""),
+
+13: _("""
+ interpolation " %(k1)s " inconnue
+"""),
+
+14: _("""
+ " %(k1)s " type de fonction inconnu
+"""),
+
+15: _("""
+ pour l'instant, on ne traite pas les formules complexes
+"""),
+
+16: _("""
+ interpolation non permise
+"""),
+
+17: _("""
+ on ne connait pas ce type d'interpolation: %(k1)s
+"""),
+
+
+
+
+
+29: _("""
+ a faire 1 ...
+"""),
+
+30: _("""
+ a faire 2 ...
+"""),
+
+31: _("""
+ on ne trouve pas l'equation %(k1)s dans le "prof_chno"
+"""),
+
+
+
+
+
+
+
+
+33: _("""
+ le champ nuro cree par nurota comporte d'autres valeurs que 0 ou 1
+"""),
+
+34: _("""
+ il y a un bug angles nautiques
+"""),
+
+35: _("""
+ il y a un bug
+"""),
+
+36: _("""
+ group_ma_interf: un element n'est ni tria3 ni tria6 ni quad4 ni quad8
+"""),
+
+37: _("""
+ group_ma_flu_str: un element n'est ni tria3 ni tria6 ni quad4 ni quad8
+"""),
+
+38: _("""
+ group_ma_flu_sol: un element n'est ni tria3 ni tria6 ni quad4 ni quad8
+"""),
+
+39: _("""
+ group_ma_sol_sol: un element n'est ni tria3 ni tria6 ni quad4 ni quad8
+"""),
+
+40: _("""
+ erreur : lmat est nul.
+"""),
+
+41: _("""
+ on ne traite que les matrices symetriques.
+"""),
+
+42: _("""
+ on ne traite que les matrices reelles.
+"""),
+
+43: _("""
+ option inconnue.
+"""),
+
+44: _("""
+ il y un bug.
+"""),
+
+45: _("""
+ manque une maille tardive
+"""),
+
+46: _("""
+ developpement non realise.
+"""),
+
+47: _("""
+ le fichier " %(k1)s " n'est relie a aucune unite logique.
+"""),
+
+48: _("""
+ type base inconnu : %(k1)s
+"""),
+
+49: _("""
+ la l_table n'existe pas
+"""),
+
+50: _("""
+ nombre de bornes errone : on doit en avoir autant que de numeros d'ordre
+"""),
+
+51: _("""
+ mot-clef <signes> obligatoire avec option calc_k_max !
+"""),
+
+52: _("""
+ ajout de l'option "sief_elga_depl", les charges sont-elles correctes ?
+"""),
+
+53: _("""
+ nombre max d'iterations atteint
+"""),
+
+54: _("""
+ la dimension d'espace doit etre <= 3
+"""),
+
+55: _("""
+ les points du nuage de depart sont tous en (0.,0.,0.).
+"""),
+
+56: _("""
+ le nuage de depart est vide.
+"""),
+
+57: _("""
+ les points du nuage de depart sont tous confondus.
+"""),
+
+58: _("""
+ les points du nuage de depart sont tous alignes.
+"""),
+
+59: _("""
+ les points du nuage de depart sont tous coplanaires.
+"""),
+
+60: _("""
+ methode inconnue : %(k1)s
+"""),
+
+61: _("""
+ le descripteur_grandeur de compor ne tient pas sur un seul entier_code
+"""),
+
+62: _("""
+ erreur dans etenca
+"""),
+
+63: _("""
+ la composante relcom n'a pas ete affectee pour la grandeur compor
+"""),
+
+64: _("""
+ le ddl : %(k1)s n'existe pas dans la grandeur : %(k2)s
+"""),
+
+65: _("""
+ incompatibilite sur la description des ddls de la grandeur
+"""),
+
+66: _("""
+ pas assez de valeurs dans la liste.
+"""),
+
+67: _("""
+ il faut des triplets de valeurs.
+"""),
+
+68: _("""
+ il n'y a pas un nombre pair de valeurs.
+"""),
+
+69: _("""
+ nombre de valeurs different pour "noeud_para" et "vale_y"
+"""),
+
+70: _("""
+ il manque des valeurs dans %(k1)s ,liste plus petite que %(k2)s
+"""),
+
+71: _("""
+ interpolation "log" et valeurs negatives sont incompatibles !
+"""),
+
+72: _("""
+ parametres non croissants
+"""),
+
+73: _("""
+ deux fonctions differentes affectee a la meme valeur de parametre.
+"""),
+
+74: _("""
+ deux listes de valeurs differentes affectee a la meme valeur de parametre.
+"""),
+
+75: _("""
+ les listes nume_lign et liste_x doivent contenir le meme nombre de termes
+"""),
+
+76: _("""
+ les noms des paramètres doivent etre différents
+"""),
+
+78: _("""
+ fonction incompatible avec %(k1)s
+"""),
+
+79: _("""
+ les noms de chaque parametre doivent etre differents
+"""),
+
+80: _("""
+ un seul nume_ordre !!!
+"""),
+
+81: _("""
+ il faut le meme nombre.
+"""),
+
+82: _("""
+ la fonction ne doit avoir qu'une ou deux variables
+"""),
+
+83: _("""
+ les noeuds debut et fin n appartiennent pas au maillage.
+"""),
+
+84: _("""
+ la fonction doit s appuyee sur un maillage pour lequel une abscisse curviligne est definie.
+"""),
+
+85: _("""
+ mauvaise definition des noeuds debut et fin
+"""),
+
+86: _("""
+ le nombre de champs a lire est superieur a 100
+"""),
+
+87: _("""
+ -> Le maillage doit etre issu d'IDEAS pour garantir la cohérence entre
+ le maillage et les résultats lus.
+
+ -> Risque & Conseil :
+ Vous récupérez des résultats au format IDEAS, ces résultats sont donnés
+ aux noeuds par leur nom, et/ou aux mailles par leurs noms. Il faut
+ vérifier que les résultats lus ont été obtenus avec le meme maillage
+ que celui lu par aster (LIRE_MAILLAGE).
+"""),
+
+88: _("""
+ le mot cle modele est obligatoire pour un champ de type cham_elem
+"""),
+
+89: _("""
+ le format ensight n'accepte que le champ pres
+"""),
+
+90: _("""
+ nflag etant egal a 0, on ne peut pas avoir plus d'un instant.
+"""),
+
+91: _("""
+ element non prevu %(k1)s
+"""),
+
+92: _("""
+ nom_cham_med ? (svp)
+"""),
+
+93: _("""
+ evol_ther - champ temp uniqmt
+"""),
+
+94: _("""
+ champ non prevu : %(k1)s
+"""),
+
+95: _("""
+ %(k1)s et %(k2)s : nombre de composantes incompatible.
+"""),
+
+96: _("""
+ champ med introuvable : %(k1)s
+"""),
+
+97: _("""
+ aucun champ lu.
+"""),
+
+98: _("""
+ on n'a pas lu tous les champs.
+"""),
+
+99: _("""
+ erreur dans la donnee de la s.d. %(k1)s a imprimer, il ne s'agit ni d'un matr_elem, ni d'un vect_elem car le .liste_resu n'existe pas.
+"""),
+}
--- /dev/null
+#@ MODIF utilitai3 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ erreur dans la donnee de la s.d. %(k1)s a imprimer, il ne s'agit ni d'un matr_elem, ni d'un vect_elem.
+"""),
+
+2: _("""
+ l utilisation de cette commande n est legitime que si la configuration etudiee est du type "faisceau_trans"
+"""),
+
+3: _("""
+ erreur dvp_1
+"""),
+
+4: _("""
+ le nom d'un parametre ne peut pas depasser 16 caracteres
+"""),
+
+5: _("""
+ le parametre %(k1)s n 'existe pas
+"""),
+
+6: _("""
+ seuls les parametres de types reel, entier ou complexe sont traites
+"""),
+
+7: _("""
+ erreur dvp_2
+"""),
+
+8: _("""
+ code retour non nul detecte
+"""),
+
+9: _("""
+ maillage autre que seg2 ou poi1
+"""),
+
+10: _("""
+ mailles ponctuelles plexus poi1 ignorees
+"""),
+
+11: _("""
+ le format doit etre ideas
+"""),
+
+12: _("""
+ le maillage doit etre issu d'ideas
+"""),
+
+13: _("""
+ maillage non issu d'ideas
+"""),
+
+14: _("""
+ avec le 2414, on ne traite pas les nume_ordre
+"""),
+
+15: _("""
+ pb lecture du fichier ideas
+"""),
+
+16: _("""
+ nom_med ? (svp)
+"""),
+
+17: _("""
+ format %(k1)s inconnu.
+"""),
+
+18: _("""
+ nom_cmp_idem est curieux : %(k1)s
+"""),
+
+19: _("""
+ probleme maillage <-> modele
+"""),
+
+20: _("""
+ le champ de meta_elno_temp:etat_init(num_init) n'existe pas.
+"""),
+
+21: _("""
+ maillage et modele incoherents.
+"""),
+
+22: _("""
+ pour type_resu:'el..' il faut renseigner le mot cle modele.
+"""),
+
+23: _("""
+ option: %(k1)s non prevue pour les elements du modele.
+"""),
+
+24: _("""
+ option= %(k1)s incompatible avec type_cham= %(k2)s
+"""),
+
+25: _("""
+ operation= %(k1)s seulement type_cham= 'noeu_geom_r'
+"""),
+
+26: _("""
+ operation= %(k1)s incompatible avec type_cham= %(k2)s
+"""),
+
+27: _("""
+ grandeurs differentes pour : %(k1)s et : %(k2)s
+"""),
+
+28: _("""
+ il existe des doublons dans la liste d'instants de rupture
+"""),
+
+29: _("""
+ il faut donner plus d'un instant de rupture
+"""),
+
+30: _("""
+ il manque des temperatures associees aux bases de resultats (mot-cle tempe)
+"""),
+
+31: _("""
+ le parametre m de weibull doit etre le meme pour toutes les bases resultats !
+"""),
+
+32: _("""
+ le parametre sigm_refe de weibull doit etre le meme pour toutes les bases resultats !
+"""),
+
+33: _("""
+ aucun numero d'unite logique n'est associe a %(k1)s
+"""),
+
+34: _("""
+ aucun numero d'unite logique n'est disponible
+"""),
+
+35: _("""
+ action inconnue: %(k1)s
+"""),
+
+36: _("""
+ arret de la procedure de recalage : le parametre m est devenu trop petit (m<1) , verifiez vos listes d'instants de rupture
+"""),
+
+37: _("""
+ les parametres de la nappe ont ete reordonnees.
+"""),
+
+38: _("""
+ type de fonction non connu (ordonn)
+"""),
+
+39: _("""
+ points confondus.
+"""),
+
+40: _("""
+ impossibilite, la maille %(k1)s doit etre de type "seg2" ou "seg3"et elle est de type : %(k2)s
+"""),
+
+41: _("""
+ nbma different de nbel
+"""),
+
+42: _("""
+ le contour n est pas ferme
+"""),
+
+
+
+
+
+
+
+
+44: _("""
+ nbma different de nbe
+"""),
+
+45: _("""
+ nj2 different de nj0
+"""),
+
+46: _("""
+ le groupe de mailles " %(k1)s " n'existe pas.
+"""),
+
+47: _("""
+ le groupe %(k1)s ne contient aucune maille.
+"""),
+
+48: _("""
+ on ne traite que des problemes 2d.
+"""),
+
+49: _("""
+ la maille " %(k1)s " n'existe pas.
+"""),
+
+50: _("""
+ on doit donner un resultat de type "evol_ther" apres le mot-cle "lapl_phi" du mot-facteur "cara_poutre" dans la commande post_elem pour calculer la constante de torsion.
+"""),
+
+51: _("""
+ le nombre d'ordres du resultat %(k1)s necessaire pour calculer la constante de torsion doit etre egal a 1.
+"""),
+
+52: _("""
+ on n'arrive pas a recuperer le champ de temperatures du resultat %(k1)s
+"""),
+
+53: _("""
+ la table "cara_geom" n'existe pas.
+"""),
+
+54: _("""
+ on doit donner un resultat de type "evol_ther" apres le mot-cle "lapl_phi_y" du mot-facteur "cara_poutre" dans la commande post_elem pour calculer les coefficients de cisaillement et les coordonnees du centre de torsion.
+"""),
+
+55: _("""
+ on doit donner un resultat de type "evol_ther" apres le mot-cle "lapl_phi_z" du mot-facteur "cara_poutre" dans la commande post_elem pour calculer les coefficients de cisaillement et les coordonnees du centre de torsion.
+"""),
+
+56: _("""
+ le nombre d'ordres du resultat %(k1)s necessaire pour calculer les coefficients de cisaillement et les coordonnees du centre de torsion doit etre egal a 1.
+"""),
+
+57: _("""
+ on doit donner un resultat de type "evol_ther" apres le mot-cle "lapl_phi" du mot-facteur "cara_poutre" dans la commande post_elem pour calculer la constante de gauchissement.
+"""),
+
+58: _("""
+ le nombre d'ordres du resultat %(k1)s necessaire pour calculer la constante de gauchissement doit etre egal a 1.
+"""),
+
+59: _("""
+ il faut donner le nom d'une table issue d'un premier calcul avec l'option "cara_geom" de post_elem apres le mot-cle "cara_geom" du mot-facteur "cara_poutre".
+"""),
+
+60: _("""
+ il faut obligatoirement definir l'option de calcul des caracteristiques de poutre apres le mot-cle "option" du mot-facteur "cara_poutre" de la commande post_elem.
+"""),
+
+61: _("""
+ l'option %(k1)s n'est pas admise apres le mot-facteur "cara_poutre".
+"""),
+
+62: _("""
+ il faut donner le nom d'un resultat de type evol_ther apres le mot-cle lapl_phi du mot-facteur "cara_poutre".
+"""),
+
+63: _("""
+ il faut donner le nom d'un resultat de type evol_ther apres le mot-cle lapl_phi_y du mot-facteur "cara_poutre".
+"""),
+
+64: _("""
+ il faut donner le nom d'un resultat de type evol_ther apres le mot-cle lapl_phi_z du mot-facteur "cara_poutre".
+"""),
+
+65: _("""
+ y a un bug 12
+"""),
+
+66: _("""
+ y a un bug 13
+"""),
+
+67: _("""
+ y a un bug 14
+"""),
+
+68: _("""
+ on attend un concept "mode_meca" ou "evol_elas" ou "evol_ther" ou "dyna_trans" ou "evol_noli"
+"""),
+
+69: _("""
+ champ de vitesse donne.
+"""),
+
+70: _("""
+ champ de deplacement donne.
+"""),
+
+71: _("""
+ option masse coherente.
+"""),
+
+72: _("""
+ calcul avec masse diagonale
+"""),
+
+73: _("""
+ type de champ inconnu.
+"""),
+
+
+
+
+
+
+
+
+75: _("""
+ on attend un concept "mode_meca" ou "evol_elas" ou "mult_elas" ou "evol_ther" ou "dyna_trans" ou "evol_noli"
+"""),
+
+76: _("""
+ pour calculer les indicateurs globaux d'energie, il faut donner un resultat issu de stat_non_line .
+"""),
+
+77: _("""
+ on attend un resultat de type "evol_noli" .
+"""),
+
+78: _("""
+ le resultat %(k1)s doit comporter la relation de comportement au numero d'ordre %(k2)s .
+"""),
+
+79: _("""
+ le resultat %(k1)s doit comporter un champ de variables internes au numero d'ordre %(k2)s .
+"""),
+
+80: _("""
+ impossibilite : le volume du modele traite est nul.
+"""),
+
+81: _("""
+ impossibilite : le volume du group_ma %(k1)s est nul.
+"""),
+
+82: _("""
+ impossibilite : le volume de la maille %(k1)s est nul.
+"""),
+
+83: _("""
+ erreur: les options de calcul doivent etre identiques pour toutes les occurrences du mot clef facteur
+"""),
+
+84: _("""
+ on attend un concept "evol_noli"
+"""),
+
+85: _("""
+ erreur: le champ sief_elga n'existe pas
+"""),
+
+86: _("""
+ erreur: le champ vari_elga n'existe pas
+"""),
+
+87: _("""
+ erreur: le champ depl_elno n'existe pas
+"""),
+
+88: _("""
+ erreur: le champ epsg_elga_depl n'existe pas
+"""),
+
+89: _("""
+ les 2 nuages : %(k1)s et %(k2)s doivent avoir le meme nombre de coordonnees.
+"""),
+
+90: _("""
+ les 2 nuages : %(k1)s et %(k2)s doivent avoir la meme grandeur associee.
+"""),
+
+91: _("""
+ il manque des cmps sur : %(k1)s
+"""),
+
+92: _("""
+ l'interpolation n'est pas encore faite en complexe.
+"""),
+
+93: _("""
+ seuls les types "reel" et "complexe" sont autorises.
+"""),
+
+}
--- /dev/null
+#@ MODIF utilitai4 Messages DATE 04/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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 _(x) : return x
+
+cata_msg={
+
+6: _("""
+ incompatibilite de nombre equations
+"""),
+
+7: _("""
+ nombre de composantes de la grandeur superieure a 30.
+"""),
+
+8: _("""
+ la composante %(k1)s n existe pas dans le champ de la grandeur.
+"""),
+
+9: _("""
+ les numeros d'ordre des vitesses donnes sous le mot-cle "nume_ordre" ne sont pas valides.
+"""),
+
+10: _("""
+ le mode demande n'est pas un mode couple.
+"""),
+
+11: _("""
+ probleme(s) rencontre(s) lors de l'acces au resu_gene
+"""),
+
+12: _("""
+ pb lors de l'extraction du champ
+"""),
+
+13: _("""
+ on ne traite que le type complexe
+"""),
+
+14: _("""
+ composante generalisee non trouvee
+"""),
+
+15: _("""
+ probleme(s) rencontre(s) lors de la lecture des frequences.
+"""),
+
+16: _("""
+ on ne traite pas le type de modes " %(k1)s ".
+"""),
+
+17: _("""
+ on ne traite que le type reel
+"""),
+
+18: _("""
+ fonctionnalite non developpee
+"""),
+
+19: _("""
+ on ne traite que les champs par elements de type reel.
+"""),
+
+20: _("""
+ on ne traite pas ce type de champ: %(k1)s
+"""),
+
+21: _("""
+ "interp_nume" interdit pour recuperer un parametre en fonction d'une variable d'acces.
+"""),
+
+22: _("""
+ aucun champ trouve pour l'acces %(k1)s
+"""),
+
+23: _("""
+ le champ %(k1)s n'existe pas dans le resu_gene.
+"""),
+
+24: _("""
+ probleme(s) rencontre(s) lors de la lecture des instants.
+"""),
+
+25: _("""
+ probleme recup de ptem uniquement pour methode adapt
+"""),
+
+26: _("""
+ acce_mono_appui est compatible uniquement avec un champ de type : acce
+"""),
+
+27: _("""
+ manque la definition d'un mot cle
+"""),
+
+28: _("""
+ dvlp
+"""),
+
+29: _("""
+ nouvelle longueur invalide, < 0
+"""),
+
+30: _("""
+ probleme dans le decodage de ( %(k1)s , %(k2)s )
+"""),
+
+31: _("""
+ type_resultat inconnu : %(k1)s
+"""),
+
+32: _("""
+ pas de liste de frequences dans le resu_gene.
+"""),
+
+33: _("""
+ type scalaire inconnu : %(k1)s
+"""),
+
+34: _("""
+ sd %(k1)s inexistante
+"""),
+
+35: _("""
+ pas de numero d'ordre pour %(k1)s
+"""),
+
+36: _("""
+ longt trop grand
+"""),
+
+37: _("""
+ le modele fourni par l'utilisateur est different de celui present dans la sd resultat.
+"""),
+
+38: _("""
+ le cara_elem fourni par l'utilisateur est different de celui present dans la sd resultat, on poursuit les calculs avec le cara_elem fourni par l'utilisateur.
+"""),
+
+39: _("""
+ -> Le matériau fourni par l'utilisateur est différent de celui présent dans
+ la Structure de Données Résultat. On poursuit les calculs avec le matériau
+ fourni par l'utilisateur.
+ -> Risque & Conseil : Vérifiez si le matériau fourni dans la commande est
+ bien celui que vous souhaitez. Si oui vous allez poursuivre les calculs
+ (ex: calcul des contraintes: CALC_ELEM) avec un matériau différent de
+ celui utilisé pour calculer les déplacements, températures,...
+
+"""),
+
+40: _("""
+ le chargement (mot cle: charge) fourni par l'utilisateur est different de celui present dans la sd resultat,on poursuit les calculs avec le chargement fourni par l'utilisateur.
+"""),
+
+41: _("""
+ les fonctions multiplicatrices du chargement (mot cle: fonc_mult) fourni par l'utilisateur sont differentes de celles presentes dans la sd resultat, on poursuit les calculs avec les fonctions multiplicatrices fournies par l'utilisateur.
+"""),
+
+42: _("""
+ numero d'ordre trop grand.
+"""),
+
+43: _("""
+ nom de champ interdit : %(k1)s pour le resultat : %(k2)s
+"""),
+
+44: _("""
+ pas de variables d'acces
+"""),
+
+45: _("""
+ pas de parametres
+"""),
+
+46: _("""
+ cet acces est interdit pour un resultat de type "champ_gd".
+"""),
+
+47: _("""
+ cet acces est interdit : %(k1)s
+"""),
+
+48: _("""
+ pas de liste d'instants dans le resu_gene.
+"""),
+
+49: _("""
+ probleme pour recuperer les numeros d'ordre dans la structure "resultat" %(k1)s
+"""),
+
+50: _("""
+ probleme pour recuperer les parametres
+"""),
+
+51: _("""
+ aucun numero d'ordre ne correspond au parametre demande %(k1)s
+"""),
+
+52: _("""
+ aucun numero d'ordre ne correspond au champ demande %(k1)s
+"""),
+
+53: _("""
+ aucun numero d'ordre trouve. stop.
+"""),
+
+63: _("""
+ acces inconnu %(k1)s
+"""),
+
+64: _("""
+ la table n'existe pas
+"""),
+
+65: _("""
+ pas de parametres definis
+"""),
+
+66: _("""
+ pas de lignes definis
+"""),
+
+67: _("""
+ mauvais numero de ligne
+"""),
+
+68: _("""
+ nom de table incorrect
+"""),
+
+69: _("""
+ nombre de valeur a ajoute superieur au nombre de ligne de la table
+"""),
+
+70: _("""
+ numero de ligne negatif
+"""),
+
+71: _("""
+ numero de ligne superieur aunombre de ligne de la table
+"""),
+
+72: _("""
+ le parametre n existe pas
+"""),
+
+73: _("""
+ les types du parametre ne correspondent pas entre eux.
+"""),
+
+74: _("""
+ numero de ligne trop grand
+"""),
+
+75: _("""
+ erreur pgmation le nom d'une table ne doit pas depasser 17 caracteres.
+"""),
+
+76: _("""
+ pas de lignes definies
+"""),
+
+77: _("""
+ types de parametres differents
+"""),
+
+78: _("""
+ on n a pas trouve de ligne contenant les deux parametres.
+"""),
+
+79: _("""
+ table %(k1)s : n'existe pas
+"""),
+
+80: _("""
+ table %(k1)s : aucun parametre n'est defini
+"""),
+
+81: _("""
+ pas de parametres de type i et r
+"""),
+
+82: _("""
+ pas de lignes selectionnees
+"""),
+
+83: _("""
+ table non diagonalisable
+"""),
+
+84: _("""
+ impression de la table superieure a 2000 colonnes, selectionnez vos parametres.
+"""),
+
+85: _("""
+ pagination supprimee, utiliser impr_table
+"""),
+
+86: _("""
+ il faut 3 parametres pour une impression au format "tableau"
+"""),
+
+87: _("""
+ on ne trie que 1 ou 2 parametres
+"""),
+
+88: _("""
+ le tableau %(k1)s .vale" est de type %(k2)s
+"""),
+
+89: _("""
+ seules les 50 premieres lignes du titre sont conservees.
+"""),
+
+90: _("""
+ votre demon c'est n'importe quoi
+"""),
+
+91: _("""
+ demon non actif desole.
+"""),
+
+92: _("""
+ on ne sait pas ecrire les complexes. na !!
+"""),
+
+93: _("""
+ on ne sait pas ecrire n'importe quoi desole.
+"""),
+
+94: _("""
+ concept %(k1)s non existant
+"""),
+
+95: _("""
+ l'objet de nom " %(k1)s " est inconnu.
+"""),
+
+96: _("""
+ expression incorrecte
+"""),
+
+97: _("""
+ nombre d'argument incorrect pour le demon
+"""),
+
+98: _("""
+ votre parametre c'est n'importe quoi
+"""),
+
+99: _("""
+ et alors typesd = %(k1)s
+"""),
+}
--- /dev/null
+#@ MODIF utilitai5 Messages DATE 06/04/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+ nombre en dehors de (-1,1)
+"""),
+
+2: _("""
+ asin/acos svp
+"""),
+
+3: _("""
+ selection de ddl : choix < %(k1)s > inconnu
+"""),
+
+4: _("""
+ argument d'appel invalide : typf = %(k1)s
+"""),
+
+5: _("""
+ argument d'appel invalide : acces = %(k1)s
+"""),
+
+6: _("""
+ argument d'appel invalide : autor = %(k1)s
+"""),
+
+7: _("""
+ redefinition de l'unite logique %(k1)s non autorisee
+"""),
+
+8: _("""
+ nombre maximum d'unites logiques ouvertes atteint %(k1)s
+"""),
+
+9: _("""
+ argument d'appel invalide : unit = %(k1)s
+"""),
+
+10: _("""
+ aucun numero d'unite logiquedisponible
+"""),
+
+11: _("""
+ unite logique %(k1)s associee au nom %(k2)s et au fichier %(k3)s
+"""),
+
+12: _("""
+ vous devez d'abord le fermer pour l'associer au nom %(k1)s
+"""),
+
+13: _("""
+ unite logique %(k1)s deja utilisee en acces %(k2)s par le fichier %(k3)s
+"""),
+
+14: _("""
+ vous devez d'abord le fermer
+"""),
+
+15: _("""
+ unite logique %(k1)s deja utilisee en mode binaire par le fichier %(k2)s
+"""),
+
+16: _("""
+ vous devez d'abord fermer le fichier associe
+"""),
+
+17: _("""
+ unite logique %(k1)s deja utilisee par le fichier %(k2)s associee au nom %(k3)s
+"""),
+
+18: _("""
+ unite logique %(k1)s , probleme lors de l'open %(k2)s
+"""),
+
+19: _("""
+ unite logique %(k1)s , probleme lors du positionnement
+"""),
+
+20: _("""
+ unite logique %(k1)s , probleme lors de l'inquire
+"""),
+
+21: _("""
+ nombre d'unites logiques ouvertes superieur a //k4b
+"""),
+
+22: _("""
+ unite logique %(k1)s , probleme lors du close de la reservation.
+"""),
+
+23: _("""
+ la redefinition de l'unite logique %(k1)s n'est pas autorisee
+"""),
+
+24: _("""
+ type d'acces inconnu " %(k1)s ", unite %(k2)s
+"""),
+
+25: _("""
+ fichier non nomme, unite %(k1)s
+"""),
+
+26: _("""
+ fichier non ouvert, unite %(k1)s
+"""),
+
+27: _("""
+ rewind impossible, unite %(k1)s
+"""),
+
+28: _("""
+ positionnement inconnu " %(k1)s ", unite %(k2)s
+"""),
+
+29: _("""
+ les champs de type " %(k1)s " sont interdits.(a faire ...)
+"""),
+
+30: _("""
+ composante %(k1)s inexistante pour la grandeur %(k2)s
+"""),
+
+31: _("""
+ la maille: %(k1)s n'appartient pas au maillage: %(k2)s
+"""),
+
+32: _("""
+ le champ: %(k1)s n'est pas un champ par elements aux noeuds.
+"""),
+
+
+
+
+
+
+
+
+34: _("""
+ la maille: %(k1)s n'est pas affectee dans le ligrel: %(k2)s
+"""),
+
+35: _("""
+ la maille: %(k1)s possede un type d'element ignorant le cham_elem teste.
+"""),
+
+36: _("""
+ num. de sous-point > max
+"""),
+
+37: _("""
+ num. de point > max
+"""),
+
+38: _("""
+ l'element n'admet pas la composante %(k1)s
+"""),
+
+39: _("""
+ determination de la localisation des points de gauss
+"""),
+
+40: _("""
+ type de donnees inconnu : %(k1)s
+"""),
+
+41: _("""
+ xous : %(k1)s non prevu.
+"""),
+
+42: _("""
+ chaine sch1 trop longue >24
+"""),
+
+43: _("""
+ ipos hors de l intervalle (0 24)
+"""),
+
+44: _("""
+ longueur totale > 24
+"""),
+
+45: _("""
+ on demande un nombre de composantes negatif pour %(k1)s
+"""),
+
+46: _("""
+ on demande des composantes inconnues pour %(k1)s
+"""),
+
+47: _("""
+ mot-clef : %(k1)s inconnu.
+"""),
+
+48: _("""
+ composante inexistante dans le champ: %(k1)s
+"""),
+
+49: _("""
+ type de champ non traite: %(k1)s
+"""),
+
+
+
+
+
+
+
+
+52: _("""
+ mauvaise valeur pour fonree
+"""),
+
+53: _("""
+ pas de composantes
+"""),
+
+54: _("""
+ l"argument "indi" est non valide
+"""),
+
+55: _("""
+ l"appel a uttcpu ne peut etre effectue avec la valeur "debut" pour l"argument para
+"""),
+
+56: _("""
+ l"appel a uttcpu ne peut etre effectue avec la valeur "fin" pour l"argument para
+"""),
+
+57: _("""
+ l"appel a uttcpu ne peut etre effectue avec la valeur %(k1)s pour l"argument para
+"""),
+
+58: _("""
+ (uttrif) type de fonction non connu.
+"""),
+
+59: _("""
+ il existe au moins un noeud qui n appartient pas au groupe de mailles.
+"""),
+
+60: _("""
+ un sous-domaine est non-connexe
+"""),
+
+
+
+
+
+
+
+88: _("""
+ L'option " %(k1)s " est à recalculer
+"""),
+
+89: _("""
+ Erreur de programmation : contacter l'assistance
+"""),
+
+90: _("""
+ On ne trouve pas le VALE_PARA_FONC exact dans la liste de la nappe
+"""),
+
+91: _("""
+ %(k1)s n'est pas un champ de résultat.
+"""),
+
+92: _("""
+ Interpolation LOG et complexe en ordonnées sont incompatibles !
+"""),
+
+93: _("""
+ Le stockage dans la SD résultat du modèle, du champ materiau
+ et des caractéristiques élémentaires n'est pas possible
+ pour une SD résultat de type %(k1)s.
+"""),
+
+94: _("""
+ Le stockage de la SD charge dans la SD résultat n'est pas
+ possible pour une SD résultat de type %(k1)s.
+"""),
+
+95: _("""
+ le noeud %(k1)s ne supporte pas la composante %(k2)s
+"""),
+
+96: _("""
+ le noeud %(k1)s le noeud %(k2)s ne supporte pas la composante %(k3)s
+"""),
+
+97: _("""
+ le type de champ %(k1)s n''est pas accepte. %(k2)s
+ veuillez consulter la %(k3)s
+ doc u correspondante %(k4)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+}
--- /dev/null
+#@ MODIF utilitai6 Messages DATE 15/05/2007 AUTEUR GNICOLAS G.NICOLAS
+# -*- coding: iso-8859-1 -*-
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+1: _("""
+
+ la grandeur introduite en operande ne figure pas dans le catalogue des grandeurs
+ grandeur %(k1)s
+"""),
+
+2: _("""
+
+ incoherence dans les donnees: on cherche a creer un champ de valeurs fonctions alors que la grandeur n''est pas de type fonction
+ grandeur de la commande : %(k1)s
+"""),
+
+3: _("""
+
+ la liste de composantes et la liste des valeurs n''ont pas la meme dimension
+ occurence de affe numero %(i1)d
+"""),
+
+4: _("""
+ une composante n''appartient pas a la grandeur
+ occurence de affe numero %(i1)d
+ grandeur : %(k1)s
+ composante : %(k2)s
+"""),
+
+5: _("""
+
+ le nume_ddl en entree ne s''appuie pas sur la meme grandeur que celle de la commande
+ grandeur associee au nume_ddl %(k1)s
+ grandeur de la commande : %(k2)s
+"""),
+
+6: _("""
+ on a affecte la fonction %(k1)s pour la composante %(k2)s
+"""),
+
+7: _("""
+ on a affecte la valeur %(r1)f pour la composante %(k1)s
+"""),
+
+8: _("""
+
+ on cherche a affecter sur un noeud une composante qui n''est pas dans le profil noeud d''entree
+ noeud : %(k1)s
+ composante : %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+11: _("""
+ une composante n''appartient pas a la grandeurgrandeur : %(k1)s
+ composante : %(k2)s
+"""),
+
+12: _("""
+ variable inconnue: variable : %(k1)s pour le resultat : %(k2)s
+"""),
+
+13: _("""
+ probleme rencontre lors de la recherche de la variable : %(k1)s
+ debut : %(k2)s
+ fin : %(k3)s
+"""),
+
+14: _("""
+ interpolation non permise. valeur a interpoler: %(r1)f
+ borne inferieure: %(r2)f
+ borne superieure: %(r3)f
+"""),
+
+15: _("""
+ il faut donner : - une maille ou un group_ma %(k1)s
+ - un noeud ou un group_no ou un point. %(k2)s
+"""),
+
+16: _("""
+ interpolation impossible instant a interpoler: %(r1)f
+"""),
+
+17: _("""
+ interpolation impossible instant a interpoler: %(r1)f
+ borne inferieure: %(r2)f
+"""),
+
+18: _("""
+ interpolation impossible instant a interpoler: %(r1)f borne superieure: %(r2)f
+"""),
+
+19: _("""
+ cham_no inexistant pour l''acces %(k1)s sur le resultat %(k2)s
+ pour le nume_ordre %(i1)d
+ instant a interpoler %(r1)f
+"""),
+
+
+
+
+
+
+25: _("""
+ cham_elem inexistant pour l''acces %(k1)s sur le resultat %(k2)s
+ pour le nume_ordre %(i1)d
+ instant a interpoler %(r1)f
+"""),
+
+
+
+
+
+
+
+
+27: _("""
+ il sera tronque: %(k1)s
+"""),
+
+
+36: _("""
+ erreur de programmationtype de fonction inconnu %(k1)s
+"""),
+
+37: _("""
+ erreur la fonction %(k1)s a %(i1)d
+ arguments, le maximum exploitable est %(i2)d
+"""),
+
+38: _("""
+ il y a %(i1)d parametre(s) identique(s) dans la %(k1)s
+ definition de la nappe. %(k2)s
+"""),
+
+39: _("""
+ erreur dans les donnees interface de type : %(k1)s non valable %(k2)s
+"""),
+
+40: _("""
+ erreur dans les donneeson ne retrouve pas le noeud %(k1)s
+ dans la numerotation %(k2)s
+"""),
+
+41: _("""
+ erreur dans les donnees le noeud : %(k1)s
+ n''appartient pas au maillage %(k2)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+44: _("""
+ trop d''amortissements modaux nombre d''amortissements : %(i1)d
+ nombre de modes : %(i2)d
+"""),
+
+
+
+
+
+
+
+
+47: _("""
+ erreur dans la recherche du noeud nom du noeud : %(k1)s
+ nom du maillage : %(k2)s
+"""),
+
+48: _("""
+ methode de newtonexposant de la loi = %(r1)f
+ nombre d''iterations = %(i1)d
+ residu fonction = %(r2)f
+ residu f/df = %(r3)f
+ precision = %(r4)f
+"""),
+
+49: _("""
+ erreurs sur les donneesnombre de mots-cles : %(i1)d
+ nombre de valeurs : %(i2)d
+"""),
+
+50: _("""
+ erreurs sur les donneesnombre de mots-cles : %(i1)d
+ nombre de mots-cles facteurs : %(i2)d
+"""),
+
+51: _("""
+ pas de champ correspondant a l''instant demande.resultat %(k1)s
+ , acces "inst_init" : %(r1)f
+"""),
+
+52: _("""
+ plusieurs champs correspondant a l''instant demande.resultat %(k1)s
+ , acces "inst_init" : %(r1)f
+ , nombre : %(i1)d
+"""),
+
+53: _("""
+
+ le premier instant de rupture n''est pas dans la liste des instants de calcul
+ premier instant de rupture = %(r1)f
+ premier instant de calcul = %(r2)f
+"""),
+
+54: _("""
+
+ le dernier instant de rupture n''est pas dans la liste des instants de calcul
+ dernier instant de rupture = %(r1)f
+ dernier instant de calcul = %(r2)f
+"""),
+
+55: _("""
+ parametres initiaux de weibullexposant de la loi = %(r1)f
+ volume de reference = %(r2)f
+ contrainte de reference = %(r3)f
+"""),
+
+56: _("""
+ statistiques recalage :nombre d''iterations = %(i1)d
+ convergence atteinte = %(r1)f
+"""),
+
+57: _("""
+ les abscisses %(k1)s %(k2)s ne sont pas monotones. %(k3)s
+"""),
+
+58: _("""
+ les abscisses %(k1)s %(k2)s ont ete reordonnees. %(k3)s
+"""),
+
+59: _("""
+ l'ordre des abscisses %(k1)s %(k2)s a ete inverse. %(k3)s
+"""),
+
+60: _("""
+ homogeneite du champ de materiaux pour weibull
+ nombre de rc weibull trouvees = %(i1)d
+ les calculs sont valables pour un seul comportement weibull %(k1)s
+ on choisit la premiere relation du type weibull %(k2)s
+"""),
+
+61: _("""
+ parametres de la rc weibull_foexposant de la loi = %(r1)f
+ volume de reference = %(r2)f
+ &contrainte de reference conventionnelle
+ &= %(r3)f
+"""),
+
+62: _("""
+ parametres de la rc weibullexposant de la loi = %(r1)f
+ volume de reference = %(r2)f
+ contrainte de reference = %(r3)f
+"""),
+
+68: _("""
+ type de numerotation non connue numerotation: %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+71: _("""
+ il faut donner : - une maille ou un group_ma %(k1)s
+ - un noeud ou un group_noou un point %(k2)s
+"""),
+
+72: _("""
+ trop de mailles dans le group_ma maille utilisee: %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+77: _("""
+Concept résultat %(k1)s : le numéro d'ordre %(i1)d est inconnu.
+"""),
+
+78: _("""
+Concept résultat %(k1)s : le numéro d'archivage %(i1)d est supérieur au max %(i2)d.
+"""),
+
+79: _("""
+Concept résultat %(k1)s : le numéro de rangement %(i1)d est supérieur au max %(i2)d.
+"""),
+
+80: _("""
+Concept résultat %(k1)s : la variable %(k2)s est inconnue pour le type %(k3)s.
+"""),
+
+81: _("""
+ parametre inconnu: parametre : %(k1)s pour le resultat : %(k2)s
+"""),
+
+82: _("""
+ pas de champs trouve pour la frequence %(r1)f
+"""),
+
+83: _("""
+ plusieurs champs trouves pour la frequence %(r1)f
+ nombre de champs trouves %(i1)d
+"""),
+
+84: _("""
+ le "nom_para_resu" %(k1)s n''est pas un parametre du resultat %(k2)s
+"""),
+
+89: _("""
+ erreur dans les donneesparametre n''existe pas: %(k1)s
+"""),
+
+90: _("""
+ erreur dans les donneesparametre non trouve: %(k1)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+93: _("""
+ le parametre %(k1)s n''existe pas dans la table %(k2)s
+ .il est necessaire. %(k3)s
+ veuillez consulter la documentaion de la commande. %(k4)s
+"""),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+99: _("""
+ erreur dans les donneesparametre : %(k1)s plusieurs valeurs trouvees %(k2)s
+ pour le parametre %(k3)s
+ et le parametre %(k4)s
+"""),
+
+}
--- /dev/null
+#@ MODIF utilitai7 Messages DATE 14/05/2007 AUTEUR BODEL C.BODEL
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def _(x) : return x
+
+cata_msg={
+
+
+
+
+
+
+
+2: _("""
+ erreur dans les donneespas de tri sur les complexes, parametre: %(k1)s
+"""),
+
+
+
+
+
+
+
+
+4: _("""
+ numero d''occurrence invalide %(i1)d pour le mot cle facteur %(k1)s
+"""),
+
+5: _("""
+ le numero de la composante (pour vari_r) est trop grand.maille: %(k1)s
+ num. cmp maxi: %(i1)d
+ num. cmp demandee: %(i2)d
+"""),
+
+6: _("""
+ Le schéma d'intégration temporelle %(k1)s et le paramètre %(k2)s sont incompatibles.
+"""),
+
+7: _("""
+ Le paramètre %(k1)s ne fait pas partie des choix possibles.
+"""),
+
+8: _("""
+ L'utilisation de la macro pour un concept de type dyna_harmo n'est pas encore prevue
+ """),
+
+9: _("""
+ Si on utilise l'option normale pour les changements de repere, il faut donner
+ une equation supplementaire avec le mot-cle VECT_X ou VECT_Y
+ """),
+
+99: _("""
+ Arret dans le programme %(k1)s.
+"""),
+
+}
--- /dev/null
+#@ MODIF xfem Messages DATE 15/05/2007 AUTEUR GENIAUT S.GENIAUT
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+Pour le DVP : écrasement des valeurs nodales dans xconno.f
+Pour l'utilisateur : les fissures X-FEM sont surement trop proches.
+ il faut au minimum 2 mailles entre les fissures.
+ veuillez raffiner le maillage entre les fissures (ou écarter les fissures).
+"""),
+
+2: _("""
+ Le nombre de fissures autorisées avec X-FEM est limité à (i1)i
+"""),
+
+3: _("""
+ Le modele %(k1)s est incompatible avec la methode X-FEM.
+ Vérifier qu'il a bien été créé par l'opérateur MODI_MODELE_XFEM.
+"""),
+
+4: _("""
+ Il est interdit de melanger dans un modèle les fissures X-FEM avec et sans
+ contact. Veuillez rajouter les mots clé CONTACT manquants
+ dans DEFI_FISS_XFEM.
+"""),
+
+5: _("""
+La valeur du parametre %(k1)s (%(i1)d) de la fissure %(k2)s
+a été changé à
+%(i2)d (valeur maximale de toutes les fissures du modèle)
+"""),
+
+6: _("""
+DDL_IMPO sur un noeud X-FEM : %(k1)s = %(r1)f au noeud %(k2)s
+"""),
+
+7: _("""
+Il y a %(i1)s mailles %(k1)s
+"""),
+
+8: _("""
+Le nombre de %(k1)s X-FEM est limité à 10E6. Veuillez reduire la taille du maillage.
+"""),
+
+9: _("""
+erreur de dvt dans %(k2)s : on a trouvé trop de nouveaux %(k1)s à ajouter.
+"""),
+
+10: _("""
+On ne peut pas post-traiter de champs aux points de Gauss avec X-FEM sur des éléments
+dont le nombre de points de Gauss est différent de 1.
+"""),
+
+11: _("""
+On a trouvé plus de 2 points de fond de fissure, ce qui est impossible en 2d.
+Veuillez revoir la définition des level sets.
+"""),
+
+12: _("""
+La prise en compte du contact sur les lèvres des fissures X-FEM n'est possible qu'avec une
+approximation du champ de déplacement linéaire.
+Deux solutions :
+- soit passer en approximation linéaire (mot-clé DEGRE_DEPL de MODI_MODELE_XFEM)
+- soit ne pas prendre en compte le contact (enlever le mot-clé CONTACT de MODI_MODELE_XFEM)
+"""),
+
+13: _("""
+pb fissure elliptique
+"""),
+
+18: _("""
+Dimension de l'espace incorrecte. Le modèle doit etre 2D ou 3D et ne pas comporter
+de sous-structures.
+"""),
+
+19: _("""
+Caractéristique de la SD inconnue. Contactez les développeurs.
+"""),
+
+20: _("""
+Le mot-clef ORIE_FOND est indispensable en 3D.
+"""),
+
+21: _("""
+Le mot-clef ORIE_FOND n'est pas nécessaire en 2D.
+"""),
+
+22: _("""
+Plus d'une occurrence du mot-clef ORIE_FOND.
+"""),
+
+23: _("""
+Erreur dans le choix de la methode de calcul des level-sets: renseignez FONC_LT/LN ou GROUP_MA_FISS/FOND.
+"""),
+
+50: _("""
+Le nombre d'aretes coupees par la fissure est superieur au critere de dimensionnement initialement prevu. Contactez les développeurs.
+Note DVP: Il faut augmenter le parametre mxar dans la routine xlagsp.
+"""),
+
+57: _("""
+Aucune maille de fissure n'a été trouvée. Suite des calculs risquée.
+"""),
+
+58: _("""
+ -> Aucun point du fond de fissure n'a été trouvé !
+ -> Risque & Conseil :
+ Ce message est normal si vous souhaitiez définir une interface (et non une fissure).
+ Si vous souhaitiez définir une fissure, la définition des level sets (Méthode XFEM)
+ ne permet pas de trouver de points du fond de fissure à l'intèrieur de la structure.
+ Il doit y avoir une erreur lors de la définition de la level set tangente.
+ Vérifier la définition des level sets.
+"""),
+
+59: _("""
+Ne pas utiliser le mot-clef RAYON_ENRI lorsque le fond de fissure est en dehors de la structure.
+"""),
+
+60: _("""
+Le point initial de fissure n'est pas un point de bord de fissure, bien que la fissure soit débouchante. assurez-vous de la bonne définition de PFON_INI.
+"""),
+
+
+}
--- /dev/null
+#@ MODIF xfem2 Messages DATE 15/05/2007 AUTEUR GENIAUT S.GENIAUT
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+
+
+def _(x) : return x
+
+cata_msg={
+
+1: _("""
+Erreur (i1)i dvt dans la récupération de la topologie des sous-éléments pour la visu.
+"""),
+
+5: _("""
+Le vecteur TAU1 correspondant la première direction du frottement dans l'élément XFEM est nul.
+Ceci signifie que les gradients des level sets sont surement colinéaires en ce point.
+"""),
+
+6: _("""
+Multifissuration interdite avec l'opérateur PROPA_XFEM.
+"""),
+
+7: _("""
+La structure de données du contact liée à MODI_MODELE_XFEM n'est pas
+celle transmise en argument de MECA_NON_LINE.
+"""),
+
+44: _("""
+Le champ de nom %(k1)s n'a pas été créé car aucun TYPE_ELEM du LIGREL de nom %(k2)s
+ne connait le paramètre de l'option %(k3)s.
+Contactez les développeurs.
+"""),
+
+51: _("""
+Il n'y a aucune maille enrichie.
+"""),
+
+
+}
--- /dev/null
+#@ MODIF __init__ SD DATE 16/05/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.
+# ======================================================================
+
+from Accas import ASSD
+
+# pour utilisation du catalogue hors aster
+try:
+ import aster
+except:
+ pass
+
+from Noyau.asnom import SDNom
+from Noyau.ascheckers import Parmi
+from Noyau.asojb import AsBase, AsVK8, AsVK16, AsVK24, AsVK32, AsVK80, \
+ AsVI, AsVR, AsVC, AsColl, AsObject, Facultatif, OJBVect
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
+
--- /dev/null
+#@ MODIF co_cham_elem SD DATE 16/05/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.
+# ======================================================================
+
+import Accas
+from SD import *
+from sd_cham_elem import sd_cham_elem
+from co_champ import cham_gd_sdaster
+
+import Numeric
+
+# -----------------------------------------------------------------------------
+# 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)
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ MODIF co_cham_no SD DATE 16/05/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.
+# ======================================================================
+
+import Accas
+from SD import *
+from sd_cham_no import sd_cham_no
+from co_champ import cham_gd_sdaster
+
+import Numeric
+
+# -----------------------------------------------------------------------------
+# 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)
+
+
+
+
+
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ MODIF co_fonction SD DATE 30/05/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.
+# ======================================================================
+
+import Accas
+from SD import *
+from sd_fonction import sd_fonction
+
+import Numeric
+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(),
+ nom=self.nom)
+ elif arg=='complex' :
+ return t_fonction_c(self.Absc(),
+ self.Ordo(),
+ self.Parametres(),
+ nom=self.nom)
+ 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 isinstance(val, ASSD):
+ 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(),
+ nom=self.nom)
+ elif arg=='imag' :
+ return t_fonction(self.Absc(),
+ self.OrdoImg(),
+ self.Parametres(),
+ nom=self.nom)
+ elif arg=='modul' :
+ modul=Numeric.sqrt(Numeric.array(self.Ordo())**2+Numeric.array(self.OrdoImg())**2)
+ return t_fonction(self.Absc(),
+ modul,
+ self.Parametres(),
+ nom=self.nom)
+ 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(),
+ nom=self.nom)
+ elif arg=='complex' :
+ return t_fonction_c(self.Absc(),
+ map(complex,self.Ordo(),self.OrdoImg()),
+ self.Parametres(),
+ nom=self.nom)
+ 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],
+ nom=self.nom)
+ 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)
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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'")
+
--- /dev/null
+#@ MODIF co_macr_elem_dyna SD DATE 16/05/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.
+# ======================================================================
+
+import Accas
+from SD import *
+from sd_macr_elem_dyna import sd_macr_elem_dyna
+
+import Numeric
+
+# -----------------------------------------------------------------------------
+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
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
+
--- /dev/null
+#@ 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)
+
+
--- /dev/null
+#@ 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
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ MODIF co_matr_asse_gene SD DATE 16/05/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.
+# ======================================================================
+
+import Accas
+from SD import *
+from sd_matr_asse_gene import sd_matr_asse_gene
+
+import Numeric
+
+# -----------------------------------------------------------------------------
+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
--- /dev/null
+#@ 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
+
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
+
--- /dev/null
+#@ 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
+
--- /dev/null
+#@ 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]
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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)
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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)
--- /dev/null
+#@ 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.
+ """
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ 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
--- /dev/null
+#@ MODIF co_vect_asse_gene SD DATE 16/05/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.
+# ======================================================================
+
+import Accas
+from SD import *
+from sd_cham_gene import sd_cham_gene
+
+import Numeric
+
+# -----------------------------------------------------------------------------
+
+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
+
--- /dev/null
+#@ 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
--- /dev/null
+#@ MODIF sd_amor_modal SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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_amor_modal(AsBase):
+#------------------------------------
+ nomj = SDNom(fin=19)
+
+ VALM=AsVR()
+ BASM=AsVR()
+
--- /dev/null
+#@ 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
+
+
--- /dev/null
+#@ 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=''))
+
+
--- /dev/null
+#@ MODIF sd_cara_elem SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+from SD.sd_cham_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())
+ CAFIBR = Facultatif(sd_cham_elem())
+ CARMASSI = Facultatif(sd_carte())
+ CARCABLE = Facultatif(sd_carte())
+ CARCOQUE = Facultatif(sd_carte())
+ CARGEOBA = Facultatif(sd_carte())
+ CANBSP = Facultatif(sd_cham_elem())
+ CARDISCK = Facultatif(sd_carte())
+ CARARCPO = Facultatif(sd_carte())
+ CARGENPO = Facultatif(sd_carte())
+ CARDISCM = Facultatif(sd_carte())
+ CARORIEN = Facultatif(sd_carte())
+ CARDISCA = Facultatif(sd_carte())
+ CVENTCXF = Facultatif(sd_carte())
+ CARPOUFL = Facultatif(sd_carte())
+ CARGEOPO = Facultatif(sd_carte())
+
+
--- /dev/null
+#@ 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', )
+
+
--- /dev/null
+#@ 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)
+
--- /dev/null
+#@ 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', )
+
+
--- /dev/null
+#@ MODIF sd_cham_mater SD DATE 23/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+from SD.sd_carte import sd_carte
+from SD.sd_util import *
+
+
+class sd_cham_mater_varc(AsBase):
+#----------------------------------
+ nomj = SDNom(fin=8)
+ CVRCNOM = AsVK8()
+ CVRCGD = AsVK8()
+ CVRCDEF = AsVR()
+ CVRCVARC = AsVK8()
+ CVRCCMP = AsVK8()
+
+ def exists(self):
+ return self.CVRCVARC.get()
+
+ # indirection via CVRCVARC:
+ def check_cham_mater_i_CVRCVARC(self, checker):
+ if not self.exists() : return
+ lnom=self.CVRCVARC.get()
+ for nom in lnom :
+ 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)
+
+ # vérification des objets .CVRC* :
+ def check_CVRC(self, checker):
+ if not self.exists() : return
+ xcmp=self.CVRCCMP.get()
+ xnom=self.CVRCNOM.get()
+ xgd=self.CVRCGD.get()
+ xvarc=self.CVRCVARC.get()
+ xdef=self.CVRCDEF.get()
+
+ # Les 5 objets ont la meme longueur > 0 :
+ nbcvrc=len(xnom)
+ assert nbcvrc > 0, (self)
+ assert len(xcmp) == nbcvrc , (xcmp,xnom,self)
+ assert len(xgd) == nbcvrc , (xgd,xnom,self)
+ assert len(xvarc) == nbcvrc , (xvarc,xnom,self)
+ assert len(xdef) == nbcvrc , (xdef,xnom,self)
+
+ # Les 4 objets sont "non blancs" :
+ sdu_tous_non_blancs(self.CVRCCMP,checker)
+ sdu_tous_non_blancs(self.CVRCNOM,checker)
+ sdu_tous_non_blancs(self.CVRCGD,checker)
+ sdu_tous_non_blancs(self.CVRCVARC,checker)
+
+ # les noms des CRVC doievent etre differents:
+ sdu_tous_differents(self.CVRCNOM,checker)
+
+
+class sd_cham_mater(AsBase):
+#----------------------------------
+ nomj = SDNom(fin=8)
+ champ_mat = sd_carte(SDNom(nomj='.CHAMP_MAT', fin=19))
+
+ # La carte TEMPE_REF n'existe pas si AFFE_VARC/NOM_VARC='TEMP' :
+ # (voir routine cmtref.f)
+ TEMPE_REF = Facultatif(sd_carte())
+
+ # si AFFE_VARC :
+ varc = Facultatif(sd_cham_mater_varc(SDNom(nomj='')))
+
+
+
--- /dev/null
+#@ MODIF sd_cham_no SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_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', )
+
+
+ def exists(self):
+ # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée)
+ return self.REFE.exists
+
+ # indirection vers PROF_CHNO/NUME_EQUA :
+ def check_cham_no_i_REFE(self, checker):
+ if not self.exists() : return
+ lnom = self.REFE.get()
+
+ # 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)
+
+
--- /dev/null
+#@ 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)
--- /dev/null
+#@ 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, )
+
+
--- /dev/null
+#@ 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, )
+
+
--- /dev/null
+#@ MODIF sd_char_contact SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+class sd_char_contact(AsBase):
+ nomj =SDNom(fin=16)
+
+ BAMACO = Facultatif(AsVI())
+ BANOCO = Facultatif(AsVI())
+ CARACF = Facultatif(AsVR())
+ COMAFO = Facultatif(AsVR())
+ CONVCO = Facultatif(AsVI())
+ DIRCO = Facultatif(AsVR())
+ ECPDON = Facultatif(AsVI())
+ FORMCO = Facultatif(AsVI())
+ FROTE = Facultatif(AsVR())
+ JEUCON = Facultatif(AsVR())
+ JEUCOQ = Facultatif(AsVR())
+ JEUPOU = Facultatif(AsVR())
+ JFO1CO = Facultatif(AsVK8())
+ JFO2CO = Facultatif(AsVK8())
+ JFO3CO = Facultatif(AsVK8())
+ JSUPCO = Facultatif(AsVR())
+ MAESCL = Facultatif(AsVI())
+ MAILCO = Facultatif(AsVI())
+ MAMACO = Facultatif(AsVI())
+ MANOCO = Facultatif(AsVI())
+ METHCO = Facultatif(AsVI())
+ NDIMCO = Facultatif(AsVI())
+ NOESCL = Facultatif(AsVR())
+ NOEUCO = Facultatif(AsVI())
+ NOEUQU = Facultatif(AsVI())
+ NOMACO = Facultatif(AsVI())
+ NORLIS = Facultatif(AsVI())
+ NOZOCO = Facultatif(AsVI())
+ PBAMACO = Facultatif(AsVI())
+ PBANOCO = Facultatif(AsVI())
+ PENAL = Facultatif(AsVR())
+ PMAMACO = Facultatif(AsVI())
+ PMANOCO = Facultatif(AsVI())
+ PNOEUQU = Facultatif(AsVI())
+ PNOMACO = Facultatif(AsVI())
+ PRANOCO = Facultatif(AsVI())
+ PSSNOCO = Facultatif(AsVI())
+ PSUMACO = Facultatif(AsVI())
+ PSUNOCO = Facultatif(AsVI())
+ PZONECO = Facultatif(AsVI())
+ RANOCO = Facultatif(AsVI())
+ SANSNQ = Facultatif(AsVI())
+ SSNOCO = Facultatif(AsVI())
+ SYMECO = Facultatif(AsVI())
+ TABFIN = Facultatif(AsVR())
+ TANDEF = Facultatif(AsVR())
+ TANPOU = Facultatif(AsVR())
+ TOLECO = Facultatif(AsVR())
+ XFEM = Facultatif(AsVI())
+ XFIMAI = Facultatif(AsVK8())
--- /dev/null
+#@ 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())
+
+
+
--- /dev/null
+#@ 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')))
+
+
--- /dev/null
+#@ 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()
+
+
--- /dev/null
+#@ MODIF sd_compor SD DATE 23/04/2007 AUTEUR PROIX J-M.PROIX
+# -*- 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()
+ CPRR = Facultatif(AsVR())
+
+
--- /dev/null
+#@ MODIF sd_compor1 SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_fonction import sd_fonction
+
+
+class sd_compor1(AsBase):
+#-----------------------
+ nomj = SDNom(fin=19)
+ VALC = AsVC(SDNom(debut=19), )
+ VALK = AsVK8(SDNom(debut=19), )
+ VALR = AsVR(SDNom(debut=19), )
+
+
+ # parfois, THER_NL crée une sd_fonction pour BETA
+ def check_compor1_i_VALK(self, checker):
+ nom= self.nomj().strip()
+ valk=list(self.VALK.get())
+ if not valk : return
+ if nom[8:16]=='.THER_NL' :
+ k=valk.index('BETA ')
+ nomfon=valk[2*k+1]
+ sd2=sd_fonction(nomfon) ; sd2.check(checker)
--- /dev/null
+#@ MODIF sd_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='')))
+
+
--- /dev/null
+#@ 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', )
+
+
--- /dev/null
+#@ 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, )
+
+
--- /dev/null
+#@ MODIF sd_feti SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+# 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()
+ FETI = AsVI()
+ FETH = AsVI(lonmax=4, )
+
+
+class sd_feti(AsBase):
+ nomj = SDNom(fin=19)
+ sd1 = Facultatif(sd_feti1(SDNom('')))
+
--- /dev/null
+#@ MODIF sd_fiss_xfem SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+from SD.sd_cham_no import sd_cham_no
+from SD.sd_cham_elem import sd_cham_elem
+
+
+class sd_mailfiss_xfem(AsBase):
+#-------------------------------
+ nomj = SDNom(fin=19)
+ CTIP = AsVI(SDNom(nomj='.CTIP'))
+ HEAV = AsVI(SDNom(nomj='.HEAV'))
+ HECT = AsVI(SDNom(nomj='.HECT'))
+
+
+class sd_contact_xfem(AsBase):
+#-------------------------------
+ nomj = SDNom(fin=16)
+ CARACF = AsVR(SDNom(nomj='.CARACF'))
+ ECPDON = AsVI(SDNom(nomj='.ECPDON'))
+ LISCO = AsVR(SDNom(nomj='.LISCO'))
+ LISEQ = AsVI(SDNom(nomj='.LISEQ'))
+ LISRL = AsVI(SDNom(nomj='.LISRL'))
+ METHCO = AsVI(SDNom(nomj='.METHCO'))
+ XFEM = AsVI(SDNom(nomj='.XFEM'))
+
+
+
+class sd_xfem_com1(AsBase):
+#-------------------------------
+# champs communs aux sd_fiss_xfem et sd_modele :
+
+ nomj = SDNom(fin=8)
+
+ # cham_no :
+ BASLOC = sd_cham_no()
+ LNNO = sd_cham_no()
+ LTNO = sd_cham_no()
+ STNO = sd_cham_no()
+
+ # cham_elem :
+ topose_pin = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.PIN')))
+ topose_cns = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.CNS')))
+ topose_hea = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.HEA')))
+ topose_lon = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.LON')))
+ topofac_pi = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.PI')))
+ topofac_ai = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.AI')))
+ topofac_cf = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.CF')))
+ topofac_lo = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.LO')))
+ topofac_ba = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.BA')))
+
+
+
+class sd_fiss_xfem(AsBase):
+#-------------------------------
+ nomj = SDNom(fin=8)
+
+ CARAFOND = AsVR()
+ FONDFISS = AsVR()
+ GROUP_MA_ENRI = AsVI()
+ GROUP_NO_ENRI = AsVI()
+
+ FONDMULT = Facultatif(AsVI())
+
+ CONTACT = Facultatif(sd_contact_xfem())
+
+ mailfiss_indic = AsVI(SDNom(nomj='.MAILFISS .INDIC'), lonmax=6, )
+ MAILFISS = Facultatif(sd_mailfiss_xfem())
+
+
+ # sd_xfem_com1 (idem sd_modele) :
+ com1 = sd_xfem_com1(SDNom(nomj=''))
+
+ # cham_no :
+ BASCO = Facultatif(sd_cham_no())
+ GRLNNO = sd_cham_no()
+ GRLTNO = sd_cham_no()
+ STNOR = sd_cham_no()
+
+ # cham_elem :
+ topose_cri = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.CRI')))
+ pro_mes_el = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.MES_EL')))
+ pro_normal = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.NORMAL')))
--- /dev/null
+#@ MODIF sd_fonction SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_titre import sd_titre
+from SD.sd_util import *
+
+
+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())
+
+ # existence possible de la SD :
+ def exists(self):
+ return self.PROL.exists
+
+
+ def check_PROL(self,checker) :
+ #-------------------------------
+ if not self.exists() : return
+
+ prol=self.PROL.get()
+ assert prol , self
+ typfon= prol[0].strip()
+ assert typfon in ('CONSTANT', 'FONCTION', 'FONCT_C', 'NAPPE', 'INTERPRE') ,prol
+
+ #ltabul = True : la fonction est tabulée (et non interpretée)
+ ltabul = typfon != 'INTERPRE'
+
+ if typfon == 'NAPPE' :
+ assert len(prol) > 6 , (prol,self)
+ else :
+ assert len(prol) == 5 , (prol,self)
+
+ if ltabul : # type d'interpolation
+ interp= prol[1].strip()
+ assert interp[:3] in ('NON', 'LIN', 'LOG') , prol
+ assert interp[4:] in ('NON', 'LIN', 'LOG') , prol
+
+ if ltabul : # nom d'un paramètre
+ para=prol[2].strip()
+ assert para != '', prol
+
+ assert prol[3].strip() != '' , prol # type du résultat
+
+ if ltabul : # prolongement à droite et à gauche
+ prolgd=prol[4].strip()
+ assert len(prolgd)==2, prol
+ assert prolgd[0] in ('E', 'C', 'L', 'I'), prol
+ assert prolgd[1] in ('E', 'C', 'L', 'I'), prol
+
+ if typfon == 'NAPPE' :
+ nf= (len(prol) - 6)/2
+ assert len(prol)==6+2*nf, prol
+ # 1er paramètre de la nappe
+ assert prol[5].strip() != '' , prol
+
+ for kf in range(nf):
+ interp= prol[5+2*kf+1].strip()
+ prolgd= prol[5+2*kf+2].strip()
+ assert interp[:3] in ('NON', 'LIN', 'LOG') , prol
+ assert interp[4:] in ('NON', 'LIN', 'LOG') , prol
+ assert prolgd[0] in ('E', 'C', 'L', 'I'), prol
+ assert prolgd[1] in ('E', 'C', 'L', 'I'), prol
+
+
+ def check_VALE(self,checker) :
+ #-------------------------------
+ if not self.exists() : return
+
+ prol=self.PROL.get()
+ vale=self.VALE.get()
+ typfon= prol[0].strip()
+
+ if typfon=='CONSTANT' :
+ assert len(vale)==2, (vale,self)
+
+ elif typfon=='FONCTION' :
+ nbpt=len(vale)/2
+ assert len(vale)==2*nbpt, (vale,self)
+ if nbpt > 1 :
+ assert sdu_monotone(vale[:nbpt]) in (1,),(nbpt,vale,self)
+
+ elif typfon=='FONCT_C' :
+ nbpt=len(vale)/3
+ assert len(vale)==3*nbpt, (vale,self)
+ if nbpt > 1 :
+ # print "AJACOT fonction=",self
+ assert sdu_monotone(vale[:nbpt]) in (1,),(nbpt,vale,self)
+
+ elif typfon=='NAPPE' :
+ nbfonc=len(vale.keys())
+ for k in range(nbfonc):
+ val1=vale[k+1]
+ nbpt=len(val1)/2
+ assert len(val1)==2*nbpt, (val1,self)
+ if nbpt > 1 :
+ assert sdu_monotone(val1[:nbpt]) in (1,),(nbpt,val1,self)
+
+
+ def check_NAPPE(self,checker) :
+ #-------------------------------
+ if not self.exists() : return
+
+ prol=self.PROL.get()
+ typfon= prol[0].strip()
+ if typfon != 'NAPPE' : return
+
+ para=self.PARA.get()
+ if len(para) > 1 :
+ assert sdu_monotone(para) in (1,),(para,self)
+ vale=self.VALE.get()
+ assert len(para)==len(vale.keys()),self
--- /dev/null
+#@ 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'), ))
+
+
--- /dev/null
+#@ MODIF sd_formule SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+class sd_formule(AsBase):
+ nomj = SDNom(fin=19)
+ PROL = AsVK16(lonmax=6, )
+ NOVA = AsVK8()
+
+
--- /dev/null
+#@ 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()
+
--- /dev/null
+#@ MODIF sd_interf_dyna_clas SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_maillage import sd_maillage
+from SD.sd_nume_ddl import sd_nume_ddl
+from SD.sd_util import *
+
+
+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(checker)
+ sd2=sd_nume_ddl(refe[1]) ; sd2.check(checker)
+ 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
--- /dev/null
+#@ 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), )
+
+
--- /dev/null
+#@ MODIF sd_l_table SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_table import sd_table
+from SD.sd_util import *
+
+
+class sd_l_table(AsBase):
+#------------------------
+ nomj = SDNom(fin=19)
+
+ # la SD l_table (liste de tables) est une SD destinée à stocker un ensemble de tables
+ # les tables stockées dans la l_table sont identifiées par un "petit nom" (K16)
+
+ LTNT = AsVK16()
+ LTNS = AsVK24()
+
+
+ # existence possible de la SD :
+ def exists(self):
+ return self.LTNT.exists or self.LTNS.exists
+
+ # indirection vers les tables :
+ def check_l_table_i_LTNS(self, checker):
+ if not self.exists() : return
+ ltnt = self.LTNT.get()
+ ltns = self.LTNS.get()
+ nbtable=self.LTNT.lonuti
+ sdu_compare(self.LTNT,checker,nbtable,'>',0,'NBUTI(LTNT)>0')
+ sdu_compare(self.LTNS,checker,self.LTNS.lonuti,'==',nbtable,'NBUTI(LTNS)==NBUTI(LTNT)')
+ for k in range(nbtable) :
+ petinom=ltnt[k].strip()
+ nomtabl=ltns[k].strip()
+ sdu_compare(self.LTNT,checker,petinom,'!=','',"LTNT[k]!=''")
+ sdu_compare(self.LTNS,checker,nomtabl,'!=','',"LTNS[k]!=''")
+ sd2 = sd_table(nomtabl) ; sd2.check(checker)
+
--- /dev/null
+#@ 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), ))
+
+
--- /dev/null
+#@ 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), )
+
+
--- /dev/null
+#@ 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()
+
--- /dev/null
+#@ 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()
+
+
--- /dev/null
+#@ MODIF sd_macr_elem_dyna SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_util import *
+from SD.sd_nume_ddl_gd import sd_nume_ddl_gd
+
+
+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()
+
+ sdu_tous_compris(self.DESC,checker,vmin=1)
+ nbdef=self.DESC.get()[1]
+ sdu_compare(self.VALE,checker,len(vale),'==',(nbdef*(nbdef+1))/2,'LONMAX(VALE)')
+
+
+class sd_macr_elem_dyna(AsBase):
+#-------------------------------
+ nomj = SDNom(fin=8)
+
+ # description géométrique et topolique :
+ DESM = AsVI(lonmax=10)
+ REFM = AsVK8()
+ LINO = AsVI()
+ CONX = Facultatif(AsVI())
+
+ # rigidité, masse, amortissement condensés :
+ nume = sd_nume_ddl_gd(SDNom(nomj=''))
+ KP_EE = Facultatif(AsVR())
+ MP_EE = Facultatif(AsVR())
+ AP_EE = Facultatif(AsVR())
+
+ 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,'LONMAX(MAEL_INER_VALE)')
+
--- /dev/null
+#@ 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))
+
+
+
+
--- /dev/null
+#@ 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, ))
+
--- /dev/null
+#@ MODIF sd_mater SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+from SD.sd_fonction import sd_fonction
+from SD.sd_compor1 import sd_compor1
+
+class sd_mater_RDEP(AsBase):
+#---------------------------
+ # on dirait une fonction, mais c'est plutot la concaténation de plusieurs fonctions
+ nomj = SDNom(fin=8)
+ PROL = AsVK16()
+ VALE = AsVR()
+
+
+class sd_mater(AsBase):
+#----------------------
+ nomj = SDNom(fin=8)
+ NOMRC = AsVK16(SDNom(nomj='.MATERIAU.NOMRC'), )
+ rdep = Facultatif(sd_mater_RDEP(SDNom(nomj='.&&RDEP')))
+
+ # existence possible de la SD :
+ def exists(self):
+ return self.NOMRC.exists
+
+ # 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)
+
--- /dev/null
+#@ 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)
+
+
--- /dev/null
+#@ MODIF sd_matr_asse_com SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_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(OJBVect(type=Parmi('C', 'R')))
+ LIME = Facultatif(AsVK8(lonmax=1, ))
+ cine = Facultatif(sd_matr_cine(SDNom(nomj='')))
+
+
--- /dev/null
+#@ 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)
+
--- /dev/null
+#@ MODIF sd_matr_asse_gene SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+from SD.sd_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(lonmax=3,)) # PB_JACOT : n'existe pas toujours : exemple : fdlv105a
+
+ def exists(self):
+ return self.REFA.exists
+
+
+ # 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):
+ if not self.exists : return
+ nom=self.REFA.get()[1]
+ sd2=sd_nume_ddl_gene(nom) ; sd2.check(checker)
+
--- /dev/null
+#@ 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())
+
+
--- /dev/null
+#@ 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)
+
+
--- /dev/null
+#@ MODIF sd_melasflu SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+from SD.sd_l_table import sd_l_table
+from SD.sd_table import sd_table
+from SD.sd_cham_no import sd_cham_no
+from SD.sd_matr_asse_gene import sd_matr_asse_gene
+from SD.sd_type_flui_stru import sd_type_flui_stru
+from SD.sd_resultat_dyn import sd_resultat_dyn
+from SD.sd_util import *
+
+
+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, )
+
+ # Critère présence VCN et VEN ????
+ VCN = Facultatif(AsVR())
+ VEN = Facultatif(AsVR())
+
+ sd_l_table = Facultatif(sd_l_table(SDNom(nomj=''))) # Si faisceau axial
+ sd_table = sd_table(SDNom(nomj=''))
+
+
+ # indirections via .REMF :
+ #----------------------------------
+ def check_melasflu_i_REMF(self, checker):
+ lnom=self.REMF.get()
+ sd2 = sd_type_flui_stru(lnom[0]) ; sd2.check(checker)
+ sd2 = sd_resultat_dyn(lnom[1]) ; sd2.check(checker)
+
+
+ # Vérifications supplémentaires :
+ #----------------------------------
+ def check_veri1(self, checker):
+ desc=self.DESC.get()
+ numo=self.NUMO.get()
+ fact=self.FACT.get()
+ freq=self.FREQ.get()
+ masg=self.MASG.get()
+ vite=self.VITE.get()
+ vcn=self.VCN.get()
+ ven=self.VEN.get()
+ l_table = sd_l_table(self.nomj) # Si faisceau axial
+
+ # calcul de itypfl (type d'interaction fluide / structure) :
+ typfl = sd_type_flui_stru(self.REMF.get()[0])
+ itypfl=typfl.FSIC.get()[0]
+
+ # calcul de nbmode (nombre de modes) :
+ nbmode=len(numo)
+
+ # calcul de nbvite (nombre de vitesses) :
+ nbvite=len(vite)
+
+ # vérification de l'objet .DESC :
+ #--------------------------------
+ sdu_compare(self.DESC,checker,desc[0].strip(),'==','DEPL','DESC[1]=="DEPL"')
+
+ # vérification de l'objet .NUMO :
+ #--------------------------------
+ sdu_tous_compris(self.NUMO,checker,vmin=1)
+
+ # vérification de l'objet .FACT :
+ #--------------------------------
+ if itypfl==3 : # faisceau axial
+ sdu_compare(self.FACT,checker,len(fact),'==',3*nbmode*nbvite,'LONMAX(FACT)==3*nbmode*nbvite')
+ else :
+ sdu_compare(self.FACT,checker,len(fact),'==',3*nbmode,'LONMAX(FACT)==3*nbmode')
+
+ # vérification de l'objet .MASG :
+ #--------------------------------
+ if itypfl==3 : # faisceau axial
+ sdu_compare(self.MASG,checker,len(masg),'==',nbmode*nbvite,'LONMAX(MASG)==nbmode*nbvite')
+ else :
+ sdu_compare(self.MASG,checker,len(masg),'==',nbmode,'LONMAX(MASG)==nbmode')
+
+ # vérification de l'objet .FREQ :
+ #--------------------------------
+ sdu_compare(self.FREQ,checker,len(freq),'==',2*nbmode*nbvite,'LONMAX(FREQ)==2*nbmode*nbvite')
+
+ # vérification de l'objet .VCN :
+ #--------------------------------
+ if vcn :
+ fsvi=typfl.FSVI.get()
+ nbzex=len(fsvi)
+ nbval=1
+ for i in range(nbzex) :
+ nbval=nbval+fsvi[nbzex+i]
+ sdu_compare(self.VCN,checker,len(vcn),'==',nbmode,'LONMAX(VCN)==nbmode*nbval')
+
+ # vérification de l'objet .VEN :
+ #--------------------------------
+ if ven :
+ sdu_compare(self.VEN,checker,len(ven),'==',nbmode,'LONMAX(VEN)==nbmode')
+
+
+ # vérification de la SD table contenant les cham_no :
+ #----------------------------------------------------
+ tcham=sd_table(self.nomj)
+ sdu_compare(None,checker,tcham.nb_column(),'==',1,"1 seule colonne dans la table")
+ col1=tcham.get_column_name('NOM_CHAM')
+ sdu_assert(None, checker, col1, "Manque colonne NOM_CHAM")
+
+ data=col1.data.get()
+ mask=col1.mask.get()
+ profchno=''
+ for k in range(len(mask)):
+ if not mask[k] : continue
+ ch1=sd_cham_no(data[k])
+ ch1.check(checker)
+
+ # Tous les cham_no doivent avoir le meme prof_chno :
+ profchn1=ch1.REFE.get()[1]
+ if profchno == '':
+ profchno=profchn1
+ else:
+ sdu_compare(None,checker,profchn1,'==',profchno,"Tous PROFCHNO identiques")
+
+
+ # vérification de la SD l_table :
+ #--------------------------------
+ if itypfl==3 : # faisceau axial
+ l_table.check(checker)
+
+ # la l_table ne contient qu'une seule table nommée 'MATR_GENE'
+ sdu_compare(l_table.LTNT,checker,l_table.LTNT.lonuti,'==',1,"LONUTI(LTNT)==1")
+ sdu_compare(l_table.LTNT,checker,l_table.LTNT.get()[0].strip(),'==','MATR_GENE',"LTNT[0]==MATR_GENE")
+
+ # vérification de la table 'MATR_GENE' :
+ tmatgen=sd_table(l_table.LTNS.get()[0])
+ col1=tmatgen.get_column_name('NUME_VITE')
+ sdu_assert(None, checker, col1, "Manque colonne NUME_VITE")
+ col1=tmatgen.get_column_name('VITE_FLUI')
+ sdu_assert(None, checker, col1, "Manque colonne VITE_FLUI")
+
+ for x in 'MATR_RIGI', 'MATR_MASS', 'MATR_AMOR' :
+ col1=tmatgen.get_column_name(x)
+ sdu_assert(None, checker, col1, "Manque colonne : "+x)
+ data=col1.data.get()
+ mask=col1.mask.get()
+ for k in range(len(mask)):
+ if not mask[k] : continue
+ matgen=sd_matr_asse_gene(data[k])
+ matgen.check(checker)
+
+
--- /dev/null
+#@ 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, )
+
+
--- /dev/null
+#@ MODIF sd_modele SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+from SD.sd_ligrel import sd_ligrel
+from SD.sd_fiss_xfem import sd_fiss_xfem, sd_xfem_com1
+from SD.sd_prof_chno import sd_prof_chno
+
+
+class sd_modele_XFEM(AsBase):
+#-----------------------------
+ nomj = SDNom(fin=8)
+ # Questions aux responsables XFEM :
+ # - faut-il garder FISS et NFIS ?
+ # - Est-il normal de modifier les sd_fiss_xfem dans MODI_MODELE_XFEM ?
+
+ CONT = AsVI()
+ SDCONT = AsVK24()
+ FISS = AsVK8()
+ NFIS = AsVI(lonmax=1,) # nombre de fissures
+ com1 = sd_xfem_com1(SDNom(nomj=''))
+
+ glute_XFEM = Facultatif(sd_prof_chno(SDNom(nomj='.PRCHN00000'))) # fiche 10833
+
+
+ if 0 :
+ # Questions aux responsables XFEM :
+ # - faut-il garder FISS et NFIS ?
+ # - Est-il normal de modifier les sd_fiss_xfem dans MODI_MODELE_XFEM ?
+ # indirection vers FISS_XFEM car MODI_MODELE_XFEM modifie FISS_XFEM
+ # (Damijan va corriger cela avec la multi-fissuration)
+ # ATTENTION : Ce bout de programme suppose que FISS est de longueur 1 ce qui contradictoire 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)
+
+
+
+class sd_modele(AsBase):
+#-----------------------------
+ nomj = SDNom(fin=8)
+
+ MODELE = sd_ligrel()
+ NOEUD_UTIL = AsVI()
+ NOEUD = Facultatif(AsVI())
+ MAILLE = Facultatif(AsVI())
+
+ # Si modèle avec sous-structures statiques :
+ SSSA = Facultatif(AsVI())
+
+ # Si modèle "XFEM" :
+ xfem = Facultatif(sd_modele_XFEM(SDNom(nomj='')))
+
--- /dev/null
+#@ 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, )
+
+
--- /dev/null
+#@ MODIF sd_multi_appui SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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_multi_appui(AsBase):
+#------------------------------------
+ nomj = SDNom(fin=19)
+
+ FDEP=AsVK8()
+ FVIT=AsVK8()
+ FACC=AsVK8()
+ MULA=AsVI()
+ PSID=AsVR()
--- /dev/null
+#@ 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)
+
--- /dev/null
+#@ 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)
+
+
--- /dev/null
+#@ 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())
--- /dev/null
+#@ 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
+
+
+
--- /dev/null
+#@ 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', )
+
+
--- /dev/null
+#@ 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), ))
+
+
--- /dev/null
+#@ MODIF sd_obstacle SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+class sd_obstacle(AsBase):
+ nomj = SDNom(fin=19)
+ VALR = Facultatif(AsVR(lonmax=19, ))
+ REFO = AsVK24(lonmax=1, )
+ VALT = Facultatif(AsVR(lonmax=19, ))
+
+
--- /dev/null
+#@ 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)
+
+
--- /dev/null
+#@ 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), )
+
+
--- /dev/null
+#@ 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), )
+
+
--- /dev/null
+#@ MODIF sd_proj_modal SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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_proj_modal(AsBase):
+#------------------------------------
+ nomj = SDNom(fin=19)
+
+ MASG=AsVR()
+
+ AGEM=AsVR()
+ AGEP=AsVR()
+ VGEM=AsVR()
+ VGEP=AsVR()
+ DGEM=AsVR()
+ DGEP=AsVR()
+ RIGG=AsVR()
+ AMOG=AsVR()
+ BASM=AsVR()
+ FONG=Facultatif(AsVK24())
+ FORG=Facultatif(AsVR())
+
--- /dev/null
+#@ 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), )
+
+
--- /dev/null
+#@ 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), )
+
+
--- /dev/null
+#@ 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', )
+
+
--- /dev/null
+#@ MODIF sd_resultat SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_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 SD.sd_char_contact import sd_char_contact
+from sets import Set
+from SD.sd_util import *
+import aster
+
+
+class sd_resultat(sd_titre):
+#---------------------------------------
+ nomj = SDNom(fin=8)
+ TAVA = 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 fonction check_resultat_i_char
+ CHAR = Facultatif(AsVK24(SDNom(debut=19),))
+
+ sd_l_table = Facultatif(sd_l_table(SDNom(nomj='')))
+
+
+ # existence de la SD :
+ def exists(self):
+ return self.ORDR.exists
+
+
+ # glute XFEM :
+ def check_glute_XFEM(self, checker):
+ sd2 = sd_char_contact('&&OP0070.DEFIC')
+ sd2.check(checker)
+
+
+ # indirection vers les champs de .TACH :
+ def check_resultat_i_TACH(self, checker):
+ tach = self.TACH.get()
+ for nosym in tach.keys():
+ for nom in tach[nosym] :
+ 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):
+ tava = self.TAVA.get()
+ S1=Set()
+ for knova in tava.keys():
+ suffix=tava[knova][0][:5]
+ if not suffix.strip(): continue # JP : est-ce possible ?
+ 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)
+
+
+ # vérification de .ORDR :
+ def check_ORDR(self, checker):
+ V = self.ORDR
+ nuti=V.lonuti
+ nmax=V.lonmax
+ sdu_compare(V, checker, nuti, '> ', 0 , comment='nuti > 0')
+ sdu_compare(V, checker, nuti, '<=', nmax, comment='nuti <= nmax')
+
+ # les numeros d'ordre doivent etre tous différents :
+ sdu_tous_differents(V,checker,V.get()[:nuti],'1:NUTI')
+
+
+ # vérification des longueurs des différents objets :
+ def check_LONGUEURS(self, checker):
+ ordr = self.ORDR.get()
+ tach = self.TACH.get()
+ nova = self.NOVA.get()
+ tava = self.TAVA.get()
+ desc = self.DESC.get()
+
+ nbmax_ordr=len(ordr) # la SD est concue pour stocker jusqu'à nbmax_ordr nume_ordre
+ nbmax_para=len(nova) # la SD est concue pour stocker jusqu'à nbmax_para paramètres
+ nbmax_nosym=len(desc) # la SD est concue pour stocker jusqu'à nbmax_nosym nom_cham
+
+ sdu_compare(self.TACH,checker,len(tach),'==',nbmax_nosym,'Incohérence TACH/DESC')
+ sdu_compare(self.TAVA,checker,len(tava),'==',nbmax_para, 'Incohérence TAVA/NOVA')
+
+ # .TACH
+ for ksym in tach.keys():
+ nosym=desc[ksym-1].strip()
+ sdu_compare(self.TACH,checker,len(tach[ksym]),'==',nbmax_ordr,nosym+' LONMAX(.TACH) != LONMAX(.ORDR)')
+
+
+ # objets trouvés dans .TAVA
+ for knova in tava.keys():
+ sdu_compare(tava,checker,len(tava[knova]),'==',4,'LONMAX(TAVA[ksym]==4')
+ suffix=tava[knova][0][:5]
+ npara=int(tava[knova][2])
+ if not suffix.strip(): continue
+ 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),)
+ sdu_compare(sd2,checker,len(sd2.get()),'==',npara*nbmax_ordr,'Incohérence LONMAX / LONMAX(.ORDR)')
+
+
+ # vérification que les variables d'accès sont bien différentes :
+ def check_ACCES(self, checker):
+ ordr = self.ORDR.get()
+ nova = self.NOVA.get()
+ tava = self.TAVA.get()
+
+ nbmax_ordr=len(ordr) # la SD est concue pour stocker jusqu'à nbmax_ordr nume_ordre
+ nbuti_ordr=self.ORDR.lonuti # la SD contient réellement nbuti_ordr nume_ordre
+
+
+ # objets trouvés dans .TAVA
+ for knova in tava.keys():
+ nova1=nova[knova-1]
+ suffix=tava[knova][0][:5]
+ if not suffix.strip(): continue
+
+ nupara=int(tava[knova][1])
+ nbpara=int(tava[knova][2])
+ acces=tava[knova][3].strip()
+ assert acces in ('PARA','ACCES') , acces
+ if acces == 'ACCES' :
+ # pour l'instant, on ne vérifie que 'INST' car 'FREQ', 'NUME_MODE', 'NOEUD_CMP' ne semblent pas tous différents ...
+ if nova1.strip() != 'INST' : continue
+ sdu_compare(tava,checker,nupara,'<=',nbpara,'nupara <= nbpara')
+
+ nom=self.nomj()[:19]+suffix
+ sd2 = AsObject(SDNom(nomj=nom,debut=0),)
+ vect=sd2.get()
+ seq=[]
+ for k in range(nbuti_ordr) :
+ seq.append(vect[k*nbpara+nupara-1])
+
+ sdu_tous_differents(sd2,checker,seq,nova1)
+
+
--- /dev/null
+#@ 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)
+
--- /dev/null
+#@ MODIF sd_sddyna SD DATE 04/04/2007 AUTEUR ABBAS M.ABBAS
+# -*- 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_sddyna(AsBase):
+#------------------------------------
+ nomj = SDNom(fin=15)
+
+ TYPE_SCH=AsVK16(SDNom(nomj='.TYPE_SCH'),lonmax=8)
+ PARA_SCH=Facultatif(AsVR( SDNom(nomj='.PARA_SCH'),lonmax=4))
+ INI_CONT=Facultatif(AsVR( SDNom(nomj='.INI_CONT'),lonmax=4))
+ NOM_SD =Facultatif(AsVK24(SDNom(nomj='.NOM_SD' ),lonmax=3))
+ TYPE_FOR=Facultatif(AsVI( SDNom(nomj='.TYPE_FOR'),lonmax=2))
+ COEF_SCH=Facultatif(AsVR( SDNom(nomj='.COEF_SCH'),lonmax=4))
+ INFO_SD =Facultatif(AsVL( SDNom(nomj='.INFO_SD' ),lonmax=5))
+
--- /dev/null
+#@ 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, )
+
+
--- /dev/null
+#@ 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())
+
+
+
--- /dev/null
+#@ 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), ))
+
+
--- /dev/null
+#@ 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)
+
+
--- /dev/null
+#@ 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()
--- /dev/null
+#@ 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()
+
+
--- /dev/null
+#@ 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'))
+
+
--- /dev/null
+#@ 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)
+
+
--- /dev/null
+#@ 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, )
+
+
--- /dev/null
+#@ MODIF sd_table SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_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 exists(self):
+ # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée)
+ return self.TBNP.exists
+
+ def nb_column(self):
+ # retourne le nombre de colonnes de la table :
+ shape = self.TBNP.get()
+ return shape[0]
+
+ def get_column(self, i):
+ # retourne la colonne de numéro i
+ nom = self.nomj()[:19]+".%04d"%i
+ return Colonne( nom )
+
+ def get_column_name(self, name):
+ # retourne la colonne de nom name
+ shape = self.TBNP.get()
+ desc = self.TBLP.get()
+ for n in range(shape[0]):
+ nom = desc[4*n]
+ nom2= desc[4*n+2]
+ if nom.strip()==name.strip() :
+ return Colonne(nom2)
+ return None
+
+ def check_table_1(self, checker):
+ if not self.exists() : return
+ shape = self.TBNP.get()
+ 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))
--- /dev/null
+#@ 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)
--- /dev/null
+#@ 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)
+
--- /dev/null
+#@ 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)))
+
+
+
--- /dev/null
+#@ MODIF sd_type_flui_stru SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_cara_elem import sd_cara_elem
+from SD.sd_modele import sd_modele
+from SD.sd_fonction import sd_fonction
+from SD.sd_mater import sd_mater
+from SD.sd_util import *
+
+
+class sd_type_flui_stru(AsBase):
+#===============================================================
+ nomj = SDNom(fin=8)
+ FSIC = AsVI(SDNom(debut=19),lonmax=2,)
+
+ 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)))
+ FSGR = Facultatif(AsVR(SDNom(debut=19)))
+ UNIT_FAISCEAU = Facultatif(AsVI(lonmax=2,))
+ UNIT_GRAPPES = Facultatif(AsVI(lonmax=2,))
+
+
+ def exists(self):
+ # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée)
+ return self.FSIC.exists
+
+
+ def u_veri1(self):
+ #-----------------------
+ # retourne 2 variables utiles pour les routines chech_xxxx
+ # type_faisceau : type de faisceau (configuration)
+ # couplage : indicateur de couplage
+ fsic=self.FSIC.get()
+ type_faisceau=fsic[0]
+ couplage=fsic[1]
+ return type_faisceau, couplage
+
+
+
+ def check_FSIC(self,checker): # objet .FSIC
+ #===============================================================
+ fsic=self.FSIC.get()
+ type_faisceau, couplage= self.u_veri1()
+ assert type_faisceau in (1,2,3,4), (type_faisceau, fsic)
+ assert couplage in (0,1), (couplage,fsic)
+
+
+
+ def check_FSVI(self,checker): # objet .FSVI
+ #===============================================================
+ fsvi=self.FSVI.get()
+ type_faisceau, couplage= self.u_veri1()
+
+ if type_faisceau == 1 : # FAISCEAU_TRANS
+ #-----------------------------------------
+ nbzone=fsvi[1]
+ sdu_compare(self.FSVI,checker,nbzone,'>',0,"nbzone > 0")
+ if couplage :
+ assert len(fsvi)==2+2*nbzone, fsvi
+ assert fsvi[0] in (1,2), fsvi
+ for indic in fsvi[2:2+nbzone] :
+ assert indic > 0 , (nbzone,fsvi,self)
+ for nbpt in fsvi[2+nbzone:2+2*nbzone] :
+ assert nbpt >= 0 , (nbzone,fsvi,self) # =0 possible : sdll136a
+ else :
+ assert len(fsvi)==2
+
+ if type_faisceau == 2 : # GRAPPE
+ #-----------------------------------------
+ sdu_assert(self.FSVI, checker, not fsvi, "type_faisceau == GRAPPE => FSVI ne doit pas exister")
+
+ if type_faisceau == 3 : # FAISCEAU_AXIAL
+ #-----------------------------------------
+ lsimplif=fsvi[0]
+ # lsimplif=1 : faisceau simplifié
+ # lsimplif=0 : faisceau complet
+
+ nbtype=fsvi[4] # nombre de types de grille
+ lgrille=nbtype > 0
+ # lgrille=1 : on utilise des grilles
+ # lgrille=0 : on n'utilise pas de grille
+
+ assert fsvi[0] in (0,1), fsvi
+ assert fsvi[1] in (1,2,3), fsvi
+ assert fsvi[2] in (1,2), fsvi
+
+ if not lsimplif : # faisceau complet
+ if lgrille :
+ assert len(fsvi)==6+nbtype, fsvi
+ assert min(fsvi[3:]) > 0, fsvi
+ else:
+ assert len(fsvi)==5, fsvi
+ assert fsvi[3] >= 0, fsvi
+
+ else : # faisceau simplifié
+ nbzone=fsvi[3]
+ if lgrille :
+ assert len(fsvi)==6+nbtype+nbzone, fsvi
+ assert min(fsvi[3:]) > 0, fsvi
+ else:
+ assert len(fsvi)==6+nbzone, fsvi
+ assert fsvi[3] > 0, fsvi
+
+ if type_faisceau == 4 : # COQUE_COAX
+ #-----------------------------------------
+ assert len(fsvi)==2, fsvi
+ assert fsvi[0] in (0,1), fsvi
+ assert fsvi[1] in (1,2,3), fsvi
+
+
+
+ def check_FSVK(self,checker): # objet .FSVK
+ #===============================================================
+ fsvk=self.FSVK.get()
+ fsvi=self.FSVI.get()
+ type_faisceau, couplage= self.u_veri1()
+
+ if type_faisceau == 1 : # FAISCEAU_TRANS
+ #-----------------------------------------
+ nbzone=fsvi[1]
+ assert len(fsvk)==4+nbzone, fsvk
+ carel=fsvk[0].strip()
+ assert carel != '', fsvk
+ sd2=sd_cara_elem(carel); sd2.check(checker)
+ assert fsvk[1].strip() in ('DX', 'DY', 'DZ'), fsvk
+ for k in range(2,4+nbzone) :
+ sd2=sd_fonction(fsvk[k]); sd2.check(checker)
+
+ elif type_faisceau == 2 : # GRAPPE
+ #-----------------------------------------
+ if couplage :
+ assert len(fsvk)==4,(fsvk,self)
+ assert fsvk[0] != '',(fsvk,self)
+ # on pourrait vérifier que fsvk[1] est un nom de noeud
+ assert fsvk[1] != '',(fsvk,self)
+ sd2=sd_cara_elem(fsvk[2].strip()); sd2.check(checker)
+ sd2=sd_modele(fsvk[3].strip()); sd2.check(checker)
+ else:
+ assert not fsvk,(fsvk,self)
+
+ elif type_faisceau == 3 : # FAISCEAU_AXIAL
+ #-----------------------------------------
+ lsimplif=fsvi[0]
+ if not lsimplif :
+ assert len(fsvk)==3,(fsvk,self)
+ sd2=sd_fonction(fsvk[0].strip()); sd2.check(checker)
+ sd2=sd_fonction(fsvk[1].strip()); sd2.check(checker)
+ sd2=sd_cara_elem(fsvk[2].strip()); sd2.check(checker)
+ else:
+ assert len(fsvk)==2,(fsvk,self)
+ sd2=sd_fonction(fsvk[0].strip()); sd2.check(checker)
+ sd2=sd_fonction(fsvk[1].strip()); sd2.check(checker)
+
+ elif type_faisceau == 4 : # COQUE_COAX
+ #-----------------------------------------
+ assert len(fsvk)==3,(fsvk,self)
+ sd2=sd_cara_elem(fsvk[0].strip()); sd2.check(checker)
+ sd2=sd_mater(fsvk[1].strip()); sd2.check(checker)
+ sd2=sd_mater(fsvk[2].strip()); sd2.check(checker)
+
+
+
+ def check_FSVR(self,checker): # objet .FSVR
+ #===============================================================
+ fsvr=self.FSVR.get()
+ fsvi=self.FSVI.get()
+ type_faisceau, couplage= self.u_veri1()
+
+ if type_faisceau == 1 : # FAISCEAU_TRANS
+ #-----------------------------------------
+ nbzone=fsvi[1]
+ if couplage :
+ assert len(fsvr)==3+2*nbzone,(fsvr,self)
+ else :
+ assert len(fsvr)==1,(fsvr,self)
+ sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0")
+
+ elif type_faisceau == 2 : # GRAPPE
+ #-----------------------------------------
+ if couplage :
+ assert len(fsvr)==2,(fsvr,self)
+ sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0")
+ else :
+ assert not fsvr,(fsvr,self)
+
+ elif type_faisceau == 3 : # FAISCEAU_AXIAL
+ #-----------------------------------------
+ lsimplif=fsvi[0]
+ if not lsimplif :
+ if fsvi[2]==1 : # enceinte circulaire
+ assert len(fsvr)==8,(fsvr,self)
+ else: # enceinte rectangulaire
+ assert len(fsvr)==10,(fsvr,self)
+ else :
+ nbzone=fsvi[3]
+ if fsvi[2]==1 : # enceinte circulaire
+ assert len(fsvr)==8+nbzone,(fsvr,self)
+ sdu_tous_compris(self.FSVR,checker,fsvi[8:],vmin=0.,comment="FSVR > 0")
+ else: # enceinte rectangulaire
+ assert len(fsvr)==10+nbzone,(fsvr,self)
+ sdu_tous_compris(self.FSVR,checker,fsvi[10:],vmin=0.,comment="FSVR > 0")
+
+ elif type_faisceau == 4 : # COQUE_COAX
+ #-----------------------------------------
+ assert len(fsvr)==7,(fsvr,self)
+ sdu_tous_compris(self.FSVR,checker,vmin=0.,comment="FSVR > 0")
+
+
+
+ def check_FSGM(self,checker): # objet .FSGM
+ #===============================================================
+ fsgm=self.FSGM.get()
+ fsvi=self.FSVI.get()
+ type_faisceau, couplage= self.u_veri1()
+
+ if type_faisceau in (1,2) :
+ #-----------------------------------------
+ assert not fsgm,(fsvi,self)
+
+ elif type_faisceau == 3 : # FAISCEAU_AXIAL
+ #-----------------------------------------
+ nb1=fsvi[3] # nbgrma ou nbzone
+ if nb1==0 :
+ assert len(fsgm)==1,(fsgm,self)
+ else :
+ assert len(fsgm)==nb1,(fsgm,self)
+ sdu_tous_differents(self.FSGM,checker,comment='FAISCEAU_AXIAL')
+
+ elif type_faisceau == 4 : # COQUE_COAX
+ #-----------------------------------------
+ assert len(fsgm)==2,(fsgm,self)
+ sdu_tous_differents(self.FSGM,checker,comment='COQUE_COAX')
+
+
+
+ def check_FSGR(self,checker): # objet .FSGR
+ #===============================================================
+ fsgr=self.FSGR.get()
+ fsvi=self.FSVI.get()
+ type_faisceau, couplage= self.u_veri1()
+
+ if type_faisceau in (1,2,4) :
+ #-----------------------------------------
+ assert not fsgr,(fsvi,self)
+
+ elif type_faisceau ==3 :
+ #-----------------------------------------
+ nbzone=fsvi[3]
+ nbtype=fsvi[4] # nombre de types de grille
+ if nbtype==0 :
+ assert not fsgr,(fsvi,self)
+ else : # il y a des grilles
+ lsimplif=fsvi[0]
+ if lsimplif :
+ nbgrille=fsvi[6+nbzone]
+ else :
+ nbgrille=fsvi[5]
+ assert len(fsgr)==nbgrille+6*nbtype,(fsgr,self)
+
+
+
+ def check_FSCR(self,checker): # objet .FSCR
+ #===============================================
+ fscr=self.FSCR.get()
+ fsvi=self.FSVI.get()
+ type_faisceau, couplage= self.u_veri1()
+
+ if type_faisceau in (1,2,4) :
+ #-----------------------------------------
+ assert not fscr,(fsgm,self)
+
+ elif type_faisceau ==3 :
+ #-----------------------------------------
+ lsimplif=fsvi[0]
+ if lsimplif :
+ nbtube=fsvi[5]
+ assert len(fscr)==2*nbtube,(fscr,self)
+ else :
+ assert not fscr,(fsvi,self)
+
+
+
+ def check_UNIT_FAISCEAU(self,checker): # objet .UNIT.FAISCEAU
+ #===============================================================
+ unite=self.UNIT_FAISCEAU.get()
+ fsvi=self.FSVI.get()
+ type_faisceau, couplage= self.u_veri1()
+
+ if type_faisceau in (2,3,4) :
+ #-----------------------------------------
+ assert not unite,(fsvi,self)
+
+ elif type_faisceau == 1 :
+ #-----------------------------------------
+ assert len(unite)==2,(unite,self)
+ assert unite[0] > 0 ,(unite,self)
+ assert unite[1] > 0 ,(unite,self)
+
+
+
+ def check_UNIT_GRAPPES(self,checker): # objet .UNIT.GRAPPES
+ #===============================================================
+ unite=self.UNIT_GRAPPES.get()
+ fsvi=self.FSVI.get()
+ type_faisceau, couplage= self.u_veri1()
+
+ if type_faisceau in (1,3,4) :
+ #-----------------------------------------
+ assert not unite,(fsvi,self)
+
+ elif type_faisceau == 2 :
+ #-----------------------------------------
+ if couplage :
+ assert len(unite)==2,(unite,self)
+ assert unite[0] > 0 ,(unite,self)
+ assert unite[1] > 0 ,(unite,self)
+ else :
+ assert not unite, (fsic,self)
--- /dev/null
+#@ MODIF sd_util SD DATE 23/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+"""
+ Utilitaires pour la vérification des SD
+"""
+
+# pour utilisation dans eficas
+try:
+ import aster
+except:
+ pass
+
+from sets import Set
+import copy
+
+
+# 1) Utilitaires pour vérifier certaines propriétés.
+# Ces utilitaires ne provoquent pas d'arret mais écrivent des messages dans un "checker"
+# -----------------------------------------------------------------------------------------
+
+
+# 1.1 Utilitaires pour des scalaires :
+# ------------------------------------
+
+def sdu_assert(ojb, checker, bool,comment=''):
+ # Vérifie que le booléen (bool) est vrai
+ if not bool :
+ checker.err(ojb, "condition non respectée : (%s)" % (comment,))
+
+def sdu_compare(ojb, checker, val1, comp, val2, comment=''):
+ # Vérifie que la relation de comparaison entre val1 et val2 est respectée :
+ # comp= '==' / '!=' / '>=' / '>' / '<=' / '<'
+ comp=comp.strip()
+ ok = 0
+ 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 :
+ sdu_assert(ojb, checker, 0, 'sdu_compare: opérateur de comparaison interdit: '+comp)
+
+ if not ok :
+ checker.err(ojb, "condition non respectée : %s %s %s (%s)" % (val1,comp,val2,comment))
+
+
+# 1.2 Utilitaires pour des séquences :
+# ------------------------------------
+
+def sdu_tous_differents(ojb,checker,sequence=None,comment=''):
+ # Vérifie que les éléments de la séquence sont tous différents.
+ # Si l'argument sequence est None, on prend l'ensemble de l'ojb.
+
+ if sequence :
+ seq=sequence
+ else :
+ seq=ojb.get()
+
+ sdu_compare(ojb, checker, len(seq), '==', len(Set(seq)), comment='Tous différents: '+comment)
+
+
+def sdu_tous_non_blancs(ojb,checker,sequence=None,comment=''):
+ # Vérifie que les éléments (chaines) de la séquence sont tous "non blancs".
+ # Si l'argument sequence est None, on prend l'ensemble de l'ojb.
+
+ if sequence :
+ seq=sequence
+ else :
+ seq=ojb.get()
+
+ for elem in seq :
+ assert len(elem.strip()) > 0 , (seq,self, 'tous "non blancs" '+comment)
+
+
+def sdu_tous_compris(ojb,checker,sequence=None,vmin=None,vmax=None,comment=''):
+ # Vérifie que toutes les valeurs de la sequence sont comprises entre vmin et vmax
+ # Les bornes vmin et vmax sont autorisées
+ # Si l'argument sequence est None, on prend l'ensemble de l'ojb.
+
+ assert (not vmin is None) or (not vmax is None),'Il faut fournir au moins une des valeurs vmin ou vmax'
+ if sequence :
+ seq=sequence
+ else:
+ seq=ojb.get()
+
+ ier = 0
+ for v in seq :
+ if vmin and v < vmin : ier = 1
+ if vmax and v > vmax : ier = 1
+ if ier == 1 : checker.err( ojb, "L'objet doit contenir des valeurs dans l'intervalle : [%s, %s] " % (vmin,vmax))
+
+
+
+def sdu_monotone(seqini) :
+ #-------------------------------
+ # vérifie qu'une séquence est triée par ordre croissant (ou décroissant)
+ # retourne :
+ # 3 : ni croissant ni décroissant (désordre)
+ # 1 : croissant
+ # -1 : décroissant
+ # 0 : constant
+
+ n=len(seqini)
+ if isinstance(seqini,tuple) :
+ seq=list(seqini)
+ else :
+ seq=seqini
+
+ seq2=copy.deepcopy(seq)
+ seq2.sort()
+ seq3=copy.deepcopy(seq)
+ seq3.sort()
+ seq3.reverse()
+
+ croiss=1
+ decroiss=1
+ for k in range(n) :
+ if seq[k] != seq2[k] :
+ if 0 : print "AJACOT non croissant ",k,seq[k],seq2[k]
+ croiss=0
+ if seq[k] != seq3[k] :
+ if 0 : print "AJACOT non décroissant ",k,seq[k],seq2[k]
+ decroiss=0
+
+ if croiss==1 and decroiss==1 :
+ return 0
+ elif croiss==1 and decroiss==0 :
+ return 1
+ elif croiss==0 and decroiss==1 :
+ return -1
+ elif croiss==0 and decroiss==0 :
+ return 3
+
+
+
+# 2) Utilitaires de questionnement :
+# -----------------------------------------------------------------------------------------
+
+def sdu_nom_gd(numgd) :
+ # retourne le nom de la grandeur de numéro (numgd)
+ ptn=aster.getvectjev('&CATA.GD.NOMGD')
+ return ptn[numgd-1].strip()
--- /dev/null
+#@ 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', ))
+
+
--- /dev/null
+#@ MODIF utilsd SD 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.
+# ======================================================================
+# RESPONSABLE COURTOIS M.COURTOIS
+
+"""
+ Utilitaire sur le catalogue des structures de données.
+"""
+
+__revision__ = "$Id: utilsd.py,v 1.1.2.2 2007-06-08 09:15:34 pnoyret Exp $"
+
+import sys
+import os
+from glob import glob
+from optparse import OptionParser
+
+# ----- get bibpyt location
+main = sys.argv[0]
+if os.path.islink(main):
+ main = os.path.realpath(main)
+bibpyt = os.path.normpath(os.path.join(
+ os.path.dirname(os.path.abspath(main)), os.pardir))
+sys.path.append(bibpyt)
+
+# -----------------------------------------------------------------------------
+def import_sd(nomsd):
+ """Import une SD.
+ """
+ try:
+ mod = __import__('SD.%s' % nomsd, globals(), locals(), [nomsd])
+ klass = getattr(mod, nomsd)
+ except (ImportError, AttributeError), msg:
+ raise ImportError, "impossible d'importer la SD '%s'" % nomsd
+ return klass
+
+# -----------------------------------------------------------------------------
+def tree(nom, *args):
+ """Retourne l'arbre des sd en arguments
+ """
+ l = []
+ for i, sd in enumerate(args):
+ if len(args) > 1 and i > 0:
+ l.append('-'*80)
+ sd_class = import_sd(sd)
+ tmpobj = sd_class(nomj=nom)
+ l.append(tmpobj.info())
+ return os.linesep.join(l)
+
+# -----------------------------------------------------------------------------
+# -----------------------------------------------------------------------------
+if __name__ == '__main__':
+ # command arguments parser
+ parser = OptionParser(usage=__doc__)
+ parser.add_option('-t', '--tree', dest='tree',
+ action='store_true', default=False,
+ help="affiche une SD sous forme d'arbre")
+ parser.add_option('--nom', dest='nom',
+ action='store', default='^'*8,
+ help="nom du concept dans les représentations")
+ parser.add_option('-a', '--all', dest='all',
+ action='store_true', default=False,
+ help="construit la liste des SD à partir des fichiers 'sd_*.py' trouvés")
+
+ opts, l_sd = parser.parse_args()
+ if opts.all:
+ l_fich = glob(os.path.join(bibpyt, 'SD', 'sd_*.py'))
+ l_sd = [os.path.splitext(os.path.basename(f))[0] for f in l_fich]
+
+ if len(l_sd) == 0:
+ parser.error('quelle(s) structure(s) de données ?')
+
+ if opts.tree:
+ print tree(opts.nom, *l_sd)
+
--- /dev/null
+import os,sys
+sys.modules["Cata"]=sys.modules[__name__]
+rep_macro = os.path.dirname(__file__)
+sys.path.insert(0,rep_macro)
+rep_macro=os.path.join(rep_macro,'Macro')
+sys.path.insert(0,rep_macro)
+
+from cata import *
+from math import ceil
+from Extensions import param2
+pi=param2.Variable('pi',pi)
--- /dev/null
+#& 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: V1_12a2 $"
+__Id__ = "$Id: cata.py,v 1.1.2.4 2007-06-14 16:18:46 pnoyret 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 21/05/2007 AUTEUR FERNANDES R.FERNANDES
+# 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_HH",
+ "KIT_HM",
+ "KIT_HHM",
+ "KIT_THH",
+ "KIT_THV",
+ "KIT_THM",
+ "KIT_THHM",
+ "VMIS_ASYM_LINE",
+ "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=7,into=(7,)),
+ 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_HH =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_THV =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_THM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_THHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
+ BETON_UMLV_FP =SIMP(statut='c',typ='I',defaut=21,into=(21,)),
+ GLRC_DAMAGE =SIMP(statut='c',typ='I',defaut=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",
+ "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",
+ ),),
+
+
+ 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 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 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 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 COMMANDE DATE 23/04/2007 AUTEUR FLEJOU 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 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' ),
+ EXCLUS('ANGL_REP','VECTEUR'),),
+ 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 21/05/2007 AUTEUR FERNANDES R.FERNANDES
+# 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','V11','V12','V13','V21','V22',
+ 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21',
+ 'PRES22','PRES23','PRES31','PRES32','PRES33'),),
+ 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' ),
+ V11 =SIMP(statut='f',typ='R' ),
+ V12 =SIMP(statut='f',typ='R' ),
+ V13 =SIMP(statut='f',typ='R' ),
+ V21 =SIMP(statut='f',typ='R' ),
+ V22 =SIMP(statut='f',typ='R' ),
+ V23 =SIMP(statut='f',typ='R' ),
+ V31 =SIMP(statut='f',typ='R' ),
+ V32 =SIMP(statut='f',typ='R' ),
+ V33 =SIMP(statut='f',typ='R' ),
+ PRES11 =SIMP(statut='f',typ='R' ),
+ PRES12 =SIMP(statut='f',typ='R' ),
+ PRES13 =SIMP(statut='f',typ='R' ),
+ PRES21 =SIMP(statut='f',typ='R' ),
+ PRES22 =SIMP(statut='f',typ='R' ),
+ PRES23 =SIMP(statut='f',typ='R' ),
+ PRES31 =SIMP(statut='f',typ='R' ),
+ PRES32 =SIMP(statut='f',typ='R' ),
+ PRES33 =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 21/05/2007 AUTEUR FERNANDES R.FERNANDES
+# 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','V11','V12','V13','V21','V22',
+ 'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
+ 'PRES31','PRES32','PRES33',),),
+ 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' ),
+ V11 =SIMP(statut='f',typ='R' ),
+ V12 =SIMP(statut='f',typ='R' ),
+ V13 =SIMP(statut='f',typ='R' ),
+ V21 =SIMP(statut='f',typ='R' ),
+ V22 =SIMP(statut='f',typ='R' ),
+ V23 =SIMP(statut='f',typ='R' ),
+ V31 =SIMP(statut='f',typ='R' ),
+ V32 =SIMP(statut='f',typ='R' ),
+ V33 =SIMP(statut='f',typ='R' ),
+ PRES11 =SIMP(statut='f',typ='R' ),
+ PRES12 =SIMP(statut='f',typ='R' ),
+ PRES13 =SIMP(statut='f',typ='R' ),
+ PRES21 =SIMP(statut='f',typ='R' ),
+ PRES22 =SIMP(statut='f',typ='R' ),
+ PRES23 =SIMP(statut='f',typ='R' ),
+ PRES31 =SIMP(statut='f',typ='R' ),
+ PRES32 =SIMP(statut='f',typ='R' ),
+ PRES33 =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" ),
+
+ CONTACT_XFEM =SIMP(statut='f',typ='TXM',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",
+
+
+ METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
+ into=("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP","XFEM") ),
+
+ 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")),
+
+ PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",
+ into=("LINEAIRE","QUADRATIQUE") ),
+
+
+ b_xfem =BLOC(condition = "METHODE == 'XFEM' ",
+ FISS_MAIT = SIMP(statut='o',typ=fiss_xfem,max=1),
+ FISS_ESCL = SIMP(statut='f',typ=fiss_xfem,max=1),
+ SIGN_MAIT = SIMP(statut='f',typ='TXM',into=("+","-",) ),
+ SIGN_ESCL = SIMP(statut='f',typ='TXM',into=("+","-",) ),
+ INTEGRATION = SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ),
+ COEF_REGU_CONT = SIMP(statut='f',typ='R',defaut=100.E+0),
+ 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),
+ FROTTEMENT = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
+ GLISSIERE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ b_frotxfem =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
+ COULOMB = SIMP(statut='o',typ='R',),
+ ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=2),
+ COEF_REGU_FROT = SIMP(statut='f',typ='R',defaut=100.E+0),
+ SEUIL_INIT = SIMP(statut='f',typ='R',defaut=0.E+0),
+ ),
+ ),
+
+ b_notxfem =BLOC(condition = "METHODE != 'XFEM' ",
+ regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
+ GROUP_MA_MAIT =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
+ MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA_ESCL =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
+ MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ ),
+
+ b_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_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
+ fr="Paramètre de la réactualisation géométrique",
+ NB_REAC_GEOM =SIMP(statut='o',typ='I'),
+ ),
+
+ SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ 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_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
+ NB_REAC_GEOM =SIMP(statut='o',typ='I'),
+
+ ),
+
+
+ SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ 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_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
+ NB_REAC_GEOM =SIMP(statut='o',typ='I'),
+ ),
+
+ SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ 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")),
+ 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 30/04/2007 AUTEUR ABBAS 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_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_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
+ fr="Parametre de la reactualisation geometrique",
+ NB_REAC_GEOM =SIMP(statut='o',typ='I'),
+
+ ),
+
+ SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ 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_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Parametre de la reactualisation geometrique",
+ NB_REAC_GEOM =SIMP(statut='o',typ='I'),
+
+ ),
+
+ SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ 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_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
+ NB_REAC_GEOM =SIMP(statut='o',typ='I'),
+ ),
+
+ SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ 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")),
+ 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 21/05/2007 AUTEUR FERNANDES R.FERNANDES
+# 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",
+ "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",
+ "D_PLAN_HHD",
+ "D_PLAN_HHS",
+ "D_PLAN_HH2D",
+ "D_PLAN_HH2S",
+ "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",
+ "AXIS_HHD",
+ "AXIS_HHS",
+ "AXIS_HH2D",
+ "AXIS_HH2S",
+ "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",
+ "3D_HHD",
+ "3D_HHS",
+ "3D_HH2D",
+ "3D_HH2S",
+ "D_PLAN_2DG",
+ "D_PLAN_DIL",
+ ) ) ),
+
+ 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.
+# ======================================================================
+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 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.
+# ======================================================================
+# 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 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 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 09/05/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.
+# ======================================================================
+# 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=resultat_sdaster,
+ 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 mecaniques non lineaires",
+ TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques non lineaires",
+ 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_erreur_re=BLOC(condition ="OPTION in ('ERRE_ELEM_SIGM','ERRE_ELNO_ELEM') or \
+ (type(OPTION)==type(()) and 'ERRE_ELEM_SIGM' in OPTION) or \
+ (type(OPTION)==type(()) and 'ERRE_ELNO_ELEM' in OPTION)",
+ ERRE_THM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
+ fr="Indicateur d'erreur spatiale pour les modélisations THM",
+ ang="Spatial error indicators for THM models"),
+ b_ERRE_THM=BLOC(condition = "ERRE_THM == 'OUI'",
+ regles=(ENSEMBLE('LONGUEUR','PRESSION'),),
+ LONGUEUR=SIMP(statut='o',typ='R',val_min=0.0,fr="Longueur caractéristique du problème"),
+ PRESSION=SIMP(statut='o',typ='R',val_min=0.0,fr="Pression caractéristique du problème"),
+ TEMPERATURE=SIMP(statut='f',typ='R',val_min=0.0,fr="Température caractéristique du problème"),),),
+
+ 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_erreur_re=BLOC(condition ="OPTION in ('ERRE_ELEM_SIGM','ERRE_ELNO_ELEM') or \
+ (type(OPTION)==type(()) and 'ERRE_ELEM_SIGM' in OPTION) or \
+ (type(OPTION)==type(()) and 'ERRE_ELNO_ELEM' in OPTION)",
+ ERRE_THM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
+ fr="Indicateur d'erreur spatiale pour les modélisations THM",
+ ang="Spatial error indicators for THM models"),
+ b_ERRE_THM=BLOC(condition = "ERRE_THM == 'OUI'",
+ regles=(ENSEMBLE('LONGUEUR','PRESSION'),),
+ LONGUEUR=SIMP(statut='o',typ='R',val_min=0.0,fr="Longueur caractéristique du problème"),
+ PRESSION=SIMP(statut='o',typ='R',val_min=0.0,fr="Pression caractéristique du problème"),
+ TEMPERATURE=SIMP(statut='f',typ='R',val_min=0.0,fr="Température caractéristique du problème"),),),
+
+ 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.
+# ======================================================================
+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.
+# ======================================================================
+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 09/05/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.
+# ======================================================================
+# 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=resultat_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"),
+
+ 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 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 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 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 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 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 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 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 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 - 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 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 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 - 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 15/05/2007 AUTEUR GENIAUT S.GENIAUT
+# 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','FORM_FISS'),
+ 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),
+ FORM_FISS =SIMP(statut='f',typ='TXM',into=("ELLIPSE",) ),
+ b_ellipse =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramères de la fissure elliptique",
+ DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
+ DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
+ CENTRE =SIMP(statut='o',typ='R',min=3,max=3),
+ VECT_X =SIMP(statut='o',typ='R',min=3,max=3),
+ VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),
+ COTE_FISS =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ), ),
+ ),
+ 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),
+ ),
+ INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,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.
+# ======================================================================
+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 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),
+ ),
+
+
+) ;
+#& 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 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 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 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 21/05/2007 AUTEUR FERNANDES R.FERNANDES
+# 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','ELAS_2NDG',),
+ 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") ),
+ ),
+ ELAS_2NDG =FACT(statut='f',
+ A1 =SIMP(statut='o',typ='R'),
+ A2 =SIMP(statut='f',typ='R'),
+ A3 =SIMP(statut='f',typ='R'),
+ A4 =SIMP(statut='f',typ='R'),
+ A5 =SIMP(statut='f',typ='R'),
+ ),
+ 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_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ ETAI_S =SIMP(statut='o',typ='R',val_min=0.0),
+ RG0 =SIMP(statut='o',typ='R',val_min=0.0),
+ 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),
+ ZETA_G =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ TOLER_ET =SIMP(statut='c',typ='R',val_min=0.1E-2,val_max=10.0E-02,defaut=1.0E-02 ),
+ 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','PENA_LAGR',),),
+ LONG_CARA =SIMP(statut='f',typ='R'),
+ PENA_LAGR =SIMP(statut='f',typ='R',defaut= 1.0E3),
+ 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 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 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 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 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 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 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 30/05/2007 AUTEUR ABBAS 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.
+# ======================================================================
+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',),
+ 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),
+ 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,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='**'),
+ ),
+ 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='**' ),
+ ),
+ 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") ),
+ ),
+ 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),
+ ),
+ 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'),
+ ),
+#-------------------------------------------------------------------
+ SCHEMA_TEMPS =FACT(statut='o',
+ SCHEMA =SIMP(statut='o',min=1,max=1,typ='TXM',
+ into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE"),),
+ b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'",
+ PHI =SIMP(statut='f',typ='R',defaut= 1.05),),
+ b_newmark = BLOC(condition="SCHEMA=='NEWMARK'",
+ ALPHA =SIMP(statut='f',typ='R',defaut= 0.25),
+ DELTA =SIMP(statut='f',typ='R',defaut= 0.5),),
+ b_hht = BLOC(condition="SCHEMA=='HHT'",
+ ALPHA =SIMP(statut='f',typ='R',defaut= -0.3 ),
+ MODI_EQUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),),
+ b_theta = BLOC(condition="SCHEMA=='THETA_METHODE'",
+ THETA =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=1. ),),
+ b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'",
+ STOP_CFL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
+ FORMULATION =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),),
+ b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'",
+ FORMULATION =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE",),),),
+ ),
+ 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',
+ METHODE =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE") ),
+ RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
+ ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3),
+ ITER_LINE_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'),),
+ b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None",
+ regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
+ 'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE'),),
+ 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'),
+ VARI_REFE =SIMP(statut='f',typ='R'),
+ ),
+ RESI_REFE_RELA =SIMP(statut='f',typ='R'),
+ RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
+ RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
+ ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
+ ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25),
+ 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 09/05/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.
+# ======================================================================
+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 - 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 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 - 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 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 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 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 24/04/2007 AUTEUR COURTOIS 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.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"),
+ ),
+
+ # mots-clés utilisant uniquement aux formats autres que TABLEAU
+ # mais ce serait trop pénible de devoir les supprimer quand on change de format
+ # donc on ne les met pas dans un bloc
+ # "pseudo" bloc mise en forme :
+ 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 mise en 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 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 29/05/2007 AUTEUR VOLDOIRE F.VOLDOIRE
+# 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='**'),
+ FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5",into=("1PE12.5","1PE16.9") ),
+ 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 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 09/05/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.
+# ======================================================================
+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)),
+ CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster),
+ RESULTAT =SIMP(statut='f',typ=resultat_sdaster),
+
+ b_info_med =BLOC(condition="FORMAT=='MED'",
+ INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ ),
+
+ 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 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 30/05/2007 AUTEUR COURTOIS 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.
+# ======================================================================
+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_red =BLOC(condition="""OPTION in ("TOUT", "INTE_SPEC") """,
+ AMOR_REDUIT =SIMP(statut='o',typ='R'),),
+ b_pesanteur =BLOC(condition="""OPTION in ("TOUT", "INTE_ARIAS", "POUV_DEST", "DUREE_PHAS_FORT") """,
+ PESANTEUR =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 ),
+ 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 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 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 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 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 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 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 15/05/2007 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 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_7",
+ into=("V8_7", "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 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 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 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 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 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 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 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 15/05/2007 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 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_7",
+ into=("V8_7", "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 22/05/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",
+ regles=(UN_PARMI("RESULTAT","CHAM_GD"),),
+
+ RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ),
+ CHAM_GD =SIMP(statut='f',typ=(cham_gd_sdaster)),
+
+ b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
+ regles=(EXCLUS('NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',), ),
+ 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-6),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ ),
+
+# 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' ),
+ ),
+ b_cham =BLOC(condition = "CHAM_GD!=None",
+ NOM_CHAM =SIMP(statut='f',typ='TXM',),),
+
+ UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25),
+ MODELE =SIMP(statut='f',typ=modele_sdaster ),
+
+ VIS_A_VIS =FACT(statut='f',max='**',
+ regles=(EXCLUS('GROUP_MA_1','MAILLE_1'),),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),),
+
+ LIGN_COUPE =FACT(statut='o',max='**',
+ regles=(EXCLUS("NOM_CMP","INVARIANT","ELEM_PRINCIPAUX","RESULTANTE"),
+ PRESENT_PRESENT("TRAC_DIR","DIRECTION"),
+ EXCLUS("TRAC_DIR","TRAC_NOR"),
+ PRESENT_PRESENT("TRAC_DIR","NOM_CMP"),
+ PRESENT_PRESENT("TRAC_NOR","NOM_CMP"),),
+
+ INTITULE =SIMP(statut='f',typ='TXM',),
+ TYPE =SIMP(statut='o',typ='TXM',max=1,
+ into=("GROUP_NO","SEGMENT","ARC","GROUP_MA"),defaut="SEGMENT"),
+ REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
+ into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
+ OPERATION =SIMP(statut='f',typ='TXM',into=("EXTRACTION","MOYENNE",),defaut="EXTRACTION",),
+
+ 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='**'),
+ 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='**'),
+
+
+ b_local =BLOC(condition = "REPERE=='LOCAL' ",
+ VECT_Y =SIMP(statut='o',typ='R',min=2,max=3),),
+
+ b_utili =BLOC(condition = "REPERE=='UTILISATEUR'",
+ ANGL_NAUT =SIMP(statut='o',typ='R',min=3,max=3),),
+
+ b_grno =BLOC(condition = "TYPE=='GROUP_NO'",
+ GROUP_NO =SIMP(statut='o',typ=grno, max=1),),
+
+ b_grma =BLOC(condition = "TYPE=='GROUP_MA'",
+ GROUP_MA =SIMP(statut='o',typ=grma, max=1),
+ MAILLAGE =SIMP(statut='o',typ=maillage_sdaster),),
+
+ 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),),
+
+ 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),),
+
+ b_cylind =BLOC(condition = ("REPERE=='CYLINDRIQUE' and TYPE!='ARC'"),
+ ORIGINE =SIMP(statut='f',typ='R',min=2,max=3),
+ AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),),
+
+ ),
+) ;
+
+
+#& 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/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 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 29/05/2007 AUTEUR VOLDOIRE F.VOLDOIRE
+# 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_3","V1_4",),defaut="V1_3"),
+ 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 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 15/05/2007 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='f',
+ FORMAT =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")),
+ 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"),
+ ),
+
+ 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 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 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 04/04/2007 AUTEUR ABBAS 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 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),
+ REAC_RESI =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 16/05/2007 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 GNICOLAS G.NICOLAS
+from Macro.Sensibilite import memo_nom_sensi_ops
+
+MEMO_NOM_SENSI=MACRO(nom="MEMO_NOM_SENSI",op=memo_nom_sensi_ops,
+ UIinfo={"groupes":("Fonction",)},
+ fr="Mémorisation des noms des concepts dérivés.",
+ ang="Memorisation of the names of the sensitive concepts.",
+
+ NOM=FACT(statut='o',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"),
+
+ ),
+)
+#& 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 30/04/2007 AUTEUR ABBAS M.ABBAS
+# 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,)),
+ CONTACT =SIMP(statut='f',typ=char_meca,min=1,max=1,),
+) ;
+#& 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 09/05/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.
+# ======================================================================
+# RESPONSABLE JMBHH01 J.M.PROIX
+def modi_repere_prod(RESULTAT,**args):
+ if AsType(RESULTAT) != None : return AsType(RESULTAT)
+
+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=resultat_sdaster),
+
+ 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 22/05/2007 AUTEUR BODEL C.BODEL
+# 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 Macro.observation_ops import observation_ops
+
+
+def observation_prod(self, RESULTAT, **args):
+ if AsType(RESULTAT) == base_modale or AsType(RESULTAT) == mode_meca :
+ return base_modale
+ elif AsType(RESULTAT) == evol_elas :
+ return evol_elas
+ elif AsType(RESULTAT) == dyna_harmo :
+ return dyna_harmo
+ else :
+ return None
+
+OBSERVATION=MACRO(nom="OBSERVATION",op=observation_ops,
+ UIinfo={"groupes":("Matrices/vecteurs",)},
+ sd_prod=observation_prod,
+ fr="Calcul de l'observabilite d'un champ aux noeuds ",
+#
+ MODELE_1 =SIMP(statut='o',typ=modele_sdaster),
+ MODELE_2 =SIMP(statut='o',typ=modele_sdaster),
+ RESULTAT =SIMP(statut='o',typ=(mode_meca,base_modale) ),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1),
+
+# ------------------------------------------------------------------
+
+ regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','FREQ','LIST_FREQ','NUME_MODE' ),),
+ TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
+ FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster),
+ NUME_MODE =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),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+
+# ------------------------------------------------------------------
+# OPTIONS DE PROJ_CHAMP (SANS MC FACTEUR PARTICULIER)
+# ------------------------------------------------------------------
+ PROJECTION =SIMP(statut='f',max=1,typ='TXM',into=("OUI","NON"),defaut="NON"),
+ 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."),
+ 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."),
+
+ NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
+ 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",) ),
+ ),
+
+# ------------------------------------------------------------------
+# MODI_REPERE
+# ------------------------------------------------------------------
+ MODI_REPERE =FACT(statut='f',max='**',
+ regles=(UN_PARMI('REPERE'),
+ AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
+ 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='**'),
+ TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+#
+ TYPE_CHAM =SIMP(statut='f',typ='TXM',
+ into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),
+ defaut="VECT_3D"),
+ 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='f',typ='TXM',min=3,max=3,defaut=('DX','DY','DZ') ),),
+ 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 ),),
+
+ REPERE =SIMP(statut='o',typ='TXM',
+ into=("UTILISATEUR","CYLINDRIQUE","NORMALE"),),
+ b_normale =BLOC(condition = "REPERE=='NORMALE'",
+ regles=(UN_PARMI('VECT_X','VECT_Y')),
+ VECT_X =SIMP(statut='f',typ='R',min=3,max=3),
+ VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), ),
+ b_utilisateur =BLOC(condition = "REPERE=='UTILISATEUR'",
+ ANGL_NAUT =SIMP(statut='o',typ='R',max=3)),
+ b_cylindrique =BLOC(condition = "REPERE=='CYLINDRIQUE'",
+ ORIGINE =SIMP(statut='o',typ='R',min=2,max=3),
+ AXE_Z =SIMP(statut='o',typ='R',min=3,max=3)),
+ ),
+
+# ------------------------------------------------------------------
+# FILTRE DES DDL
+# ------------------------------------------------------------------
+ FILTRE =FACT(statut='f',max='**',
+ regles=(UN_PARMI('DDL_ACTIF'),
+# 'MASQUE'),
+ AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
+ 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='**'),
+ TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+#
+ DDL_ACTIF =SIMP(statut='f',typ='TXM',max=6),
+# TODO : mettre en place le systeme de masques
+# MASQUE =SIMP(statut='f',typ='TXM',max=6),
+ ),
+# ------------------------------------------------------------------
+
+ TITRE =SIMP(statut='f',typ='TXM',max='**' ),
+ INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+ ) ;
+#& MODIF COMMANDE DATE 15/05/2007 AUTEUR GENIAUT S.GENIAUT
+# 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=evol_noli,
+ reentrant='n',UIinfo={"groupes":("Post traitements",)},
+ fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré",
+ MAILLAGE_SAIN = SIMP(statut='o',typ=maillage_sdaster),
+ MAILLAGE_FISS = SIMP(statut='o',typ=maillage_sdaster),
+ NOM_CHAM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA"),),
+ MODELE = SIMP(statut='o',typ=modele_sdaster,),
+ RESULTAT = SIMP(statut='o',typ=resultat_sdaster),
+ b_elga = BLOC(condition = "NOM_CHAM == 'SIEF_ELGA' or \
+ (type(NOM_CHAM)==type(()) and 'SIEF_ELGA' in NOM_CHAM)",
+ MODELE_VISU = SIMP(statut='o',typ=modele_sdaster,),
+ ),
+ 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.
+# ======================================================================
+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 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 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 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 15/05/2007 AUTEUR GENIAUT S.GENIAUT
+# 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),
+ MAILLAGE_SAIN = SIMP(statut='o',typ=maillage_sdaster),
+ TITRE = SIMP(statut='f',typ='TXM',max='**'),
+ INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
+
+);
+#& 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 09/05/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.
+# ======================================================================
+# 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=resultat_sdaster),
+#
+# 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/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 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 09/05/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.
+# ======================================================================
+# RESPONSABLE VABHHTS J.PELLET
+def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
+ if AsType(RESULTAT) != None : return AsType(RESULTAT)
+ 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=resultat_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",),
+ 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 30/05/2007 AUTEUR ADOBES A.ADOBES
+# 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'),),
+ 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='o',typ='R',val_min=0.E+0 ),
+ FREQ_FIN =SIMP(statut='o',typ='R',val_min=0.E+0 ),
+ NB_POIN =SIMP(statut='o',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 30/04/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.
+# ======================================================================
+
+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=1,
+ 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="SIMPLEXE"),
+
+# 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.
+# ======================================================================
+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 09/05/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.
+# ======================================================================
+# 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=resultat_sdaster),
+ 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 23/04/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(),
+ 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 ),
+ RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS",
+ into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
+ "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
+ ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+ ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+ ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+ ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+ DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
+ ),
+ MATER =SIMP(statut='o',typ=mater_sdaster,max=30),
+ INCREMENT =FACT(statut='o',
+ LIST_INST =SIMP(statut='o',typ=listr8_sdaster),
+ 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
+ ),
+ 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),
+ ),
+ 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.),
+ ),
+ 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",)),
+ CHAM_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 chargement 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 chargement 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) ),
+ ),
+ ),
+
+ b_3Dini = BLOC(condition="MODELISATION == '3D'",
+ fr="Etat initial en 3D",
+ SIGM_INIT=FACT(statut='f',
+ SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ ),
+ EPSI_INIT=FACT(statut='f',
+ EPXX = SIMP(statut='o',typ='R',max=1),
+ EPYY = SIMP(statut='o',typ='R',max=1),
+ EPZZ = SIMP(statut='o',typ='R',max=1),
+ EPXY = SIMP(statut='o',typ='R',max=1),
+ EPXZ = SIMP(statut='o',typ='R',max=1),
+ EPYZ = SIMP(statut='o',typ='R',max=1),
+ ),
+ VARI_INIT=FACT(statut='f',
+ VALE = SIMP(statut='o',typ='R',max='**'),
+ ),
+ ),
+
+ b_2Dini = BLOC(condition="MODELISATION != '3D'",
+ fr="Etat initial en 2D",
+
+ SIGM_INIT=FACT(statut='f',
+ SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
+ ),
+ EPSI_INIT=FACT(statut='f',
+ EPXX = SIMP(statut='o',typ='R',max=1),
+ EPYY = SIMP(statut='o',typ='R',max=1),
+ EPXY = SIMP(statut='o',typ='R',max=1),
+ ),
+ VARI_INIT=FACT(statut='f',
+ VALE = SIMP(statut='o',typ='R',max='**'),
+ ),
+ ),
+ INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+)
+
+#& 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 30/05/2007 AUTEUR ABBAS 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 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',
+ METHODE =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE") ),
+ RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
+ ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3),
+ ITER_LINE_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'),),
+ b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None",
+ regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
+ 'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE'),),
+ 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'),
+ VARI_REFE =SIMP(statut='f',typ='R'),
+ ),
+
+
+
+ RESI_REFE_RELA =SIMP(statut='f',typ='R'),
+ RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
+ RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
+ ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
+ ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25),
+ 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),
+ REAC_RESI =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 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 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 17/04/2007 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
+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.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' ),
+ 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) ),
+) ;
+
+
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,37.7 *coef0,
+ 50. ,38.6 *coef0,
+ 100. ,39.9 *coef0,
+ 150. ,40.5 *coef0,
+ 200. ,40.5 *coef0,
+ 250. ,40.2 *coef0,
+ 300. ,39.5 *coef0,
+ 350. ,38.7 *coef0,
+ 400. ,37.7 *coef0,
+ 450. ,36.6 *coef0,
+ 500. ,35.5 *coef0,
+ 550. ,34.3 *coef0,
+ 600. ,33.0 *coef0,
+ 650. ,31.8 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.49E+6 *coef1,
+ 50. ,3.59E+6 *coef1,
+ 100. ,3.77E+6 *coef1,
+ 150. ,3.93E+6 *coef1,
+ 200. ,4.09E+6 *coef1,
+ 250. ,4.27E+6 *coef1,
+ 300. ,4.42E+6 *coef1,
+ 350. ,4.60E+6 *coef1,
+ 400. ,4.80E+6 *coef1,
+ 450. ,5.04E+6 *coef1,
+ 500. ,5.35E+6 *coef1,
+ 550. ,5.69E+6 *coef1,
+ 600. ,6.10E+6 *coef1,
+ 650. ,6.65E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,205.E+9 *coef2,
+ 20. ,204.E+9 *coef2,
+ 50. ,203.E+9 *coef2,
+ 100. ,200.E+9 *coef2,
+ 150. ,197.E+9 *coef2,
+ 200. ,193.E+9 *coef2,
+ 250. ,189.E+9 *coef2,
+ 300. ,185.E+9 *coef2,
+ 350. ,180.E+9 *coef2,
+ 400. ,176.E+9 *coef2,
+ 450. ,171.E+9 *coef2,
+ 500. ,166.E+9 *coef2,
+ 550. ,160.E+9 *coef2,
+ 600. ,155.E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 11.22E-6, 50., 11.45E-6,
+ 100., 11.79E-6, 150., 12.14E-6,
+ 200., 12.47E-6, 250., 12.78E-6,
+ 300., 13.08E-6, 350., 13.40E-6,
+ 400., 13.72E-6, 450., 14.02E-6,
+ ))
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ )
+ )
+
+#
+
--- /dev/null
+indispensable pour ne pas avoir une directory vide
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,22.7 *coef0,
+ 50. ,23.1 *coef0,
+ 100. ,23.9 *coef0,
+ 150. ,24.7 *coef0,
+ 200. ,25.5 *coef0,
+ 250. ,26.3 *coef0,
+ 300. ,27.1 *coef0,
+ 350. ,27.9 *coef0,
+ 400. ,28.7 *coef0,
+ 450. ,29.5 *coef0,
+ 500. ,30.3 *coef0,
+ 550. ,31.1 *coef0,
+ 600. ,31.9 *coef0,
+ 650. ,32.7 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.64E+6 *coef1,
+ 50. ,3.73E+6 *coef1,
+ 100. ,3.90E+6 *coef1,
+ 150. ,4.06E+6 *coef1,
+ 200. ,4.22E+6 *coef1,
+ 250. ,4.39E+6 *coef1,
+ 300. ,4.55E+6 *coef1,
+ 350. ,4.70E+6 *coef1,
+ 400. ,4.86E+6 *coef1,
+ 450. ,5.04E+6 *coef1,
+ 500. ,5.21E+6 *coef1,
+ 550. ,5.32E+6 *coef1,
+ 600. ,5.39E+6 *coef1,
+ 650. ,5.37E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,216.5E+9 *coef2,
+ 20. ,215.4E+9 *coef2,
+ 50. ,213.0E+9 *coef2,
+ 100. ,209.4E+9 *coef2,
+ 150. ,206.0E+9 *coef2,
+ 200. ,201.8E+9 *coef2,
+ 250. ,197.5E+9 *coef2,
+ 300. ,193.5E+9 *coef2,
+ 350. ,189.0E+9 *coef2,
+ 400. ,184.5E+9 *coef2,
+ 450. ,179.0E+9 *coef2,
+ 500. ,173.5E+9 *coef2,
+ 550. ,167.0E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 9.42E-6, 50., 9.60E-6,
+ 100., 9.96E-6, 150., 10.20E-6,
+ 200., 10.44E-6, 250., 10.69E-6,
+ 300., 10.95E-6, 350., 11.19E-6,
+ 400., 11.40E-6, 450., 11.59E-6,
+ ))
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ )
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -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,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.60E+6 *coef1,
+ 50. ,3.74E+6 *coef1,
+ 100. ,3.90E+6 *coef1,
+ 150. ,4.10E+6 *coef1,
+ 200. ,4.16E+6 *coef1,
+ 250. ,4.27E+6 *coef1,
+ 300. ,4.30E+6 *coef1,
+ 350. ,4.35E+6 *coef1,
+ 400. ,4.39E+6 *coef1,
+ 450. ,4.39E+6 *coef1,
+ 500. ,4.44E+6 *coef1,
+ 550. ,4.47E+6 *coef1,
+ 600. ,4.49E+6 *coef1,
+ 650. ,4.53E+6 *coef1,
+ 700. ,4.58E+6 *coef1,
+ 750. ,4.61E+6 *coef1,
+ 800. ,4.72E+6 *coef1,
+ 1000. ,4.99E+6 *coef1,
+ 1200. ,5.04E+6 *coef1,
+ 1500. ,5.04E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198.5E+9 *coef2,
+ 20. ,197.E+9 *coef2,
+ 50. ,195.E+9 *coef2,
+ 100. ,191.5E+9 *coef2,
+ 150. ,187.5E+9 *coef2,
+ 200. ,184.E+9 *coef2,
+ 250. ,180.E+9 *coef2,
+ 300. ,176.5E+9 *coef2,
+ 350. ,172.E+9 *coef2,
+ 400. ,168.E+9 *coef2,
+ 450. ,164.E+9 *coef2,
+ 500. ,160.E+9 *coef2,
+ 550. ,155.5E+9 *coef2,
+ 600. ,151.5E+9 *coef2,
+ 700. ,142.5E+9 *coef2,
+ 800. ,130.E+9 *coef2,
+ 1000. ,81.5E+9 *coef2,
+ 1200. ,7.4E+9 *coef2,
+ 1400. ,0. *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+_A3=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 16.4E-6,
+ 50., 16.54E-6, 100., 16.8E-6,
+ 150., 17.04E-6, 200., 17.2E-6,
+ 250., 17.5E-6, 300., 17.7E-6,
+ 350., 17.9E-6, 400., 18.1E-6,
+ 450., 18.24E-6, 500., 18.4E-6,
+ 600., 18.7E-6, 700., 18.9E-6,
+ 800., 19.1E-6, 900., 19.3E-6,
+ 1000., 19.5E-6, 1400., 20.E-6,
+ 1600., 20.2E-6,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 20°C
+#
+
+coef5=1.E ## UNIT -6
+_A5=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 9.39E-4, 185.E+6 *coef5,
+ 1.07E-3, 190.53E+6 *coef5,
+ 1.64E-3, 225.E+6 *coef5,
+ 3.32E-3, 261.E+6 *coef5,
+ 7.45E-3, 287.E+6 *coef5,
+ 0.011, 300.E+6 *coef5,
+ 0.032, 360.E+6 *coef5,
+ 0.05, 404.E+6 *coef5,
+ 0.1, 491.E+6 *coef5,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 200°C
+#
+coef6=1.E ## UNIT -6
+_A6=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.61E-4 ,140.E+6 *coef6,
+ 1.E-3 ,150.E+6 *coef6,
+ 2.9E-3 ,168.E+6 *coef6,
+ 4.E-3 ,181.E+6 *coef6,
+ 7.E-3 ,195.E+6 *coef6,
+ 1.E-2 ,205.E+6 *coef6,
+ 0.034 ,276.E+6 *coef6,
+ 0.05 ,303.E+6 *coef6,
+ 0.15 ,450.E+6 *coef6,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 350°C
+#
+coef7=1.E ## UNIT -6
+_A7=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.56E-4 ,130.E+6 *coef7,
+ 8.9E-4 ,136.E+6 *coef7,
+ 1.84E-3 ,145.E+6 *coef7,
+ 2.9E-3 ,151.E+6 *coef7,
+ 4.9E-3 ,160.E+6 *coef7,
+ 8.9E-3 ,174.E+6 *coef7,
+ 0.011 ,180.E+6 *coef7,
+ 0.051 ,261.E+6 *coef7,
+ #0.01 ,353.E+6 *coef7,
+ 0.1 ,353.E+6 *coef7,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 400°C
+#
+coef8=1.E ## UNIT -6
+_A8=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 7.14E-4 ,120.E+6 *coef8,
+ 1.E-3 ,125.E+6 *coef8,
+ 2.E-3 ,134.E+6 *coef8,
+ 3.E-3 ,141.E+6 *coef8,
+ 8.E-3 ,157.E+6 *coef8,
+ 19.E-3 ,185.E+6 *coef8,
+ 25.E-3 ,200.E+6 *coef8,
+ 0.05 ,240.E+6 *coef8,
+ 0.1 ,320.E+6 *coef8,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 600°C
+#
+coef9=1.E ## UNIT -6
+_A9=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 5.94E-4 ,90.E+6 *coef9,
+ 1.E-3 ,104.E+6 *coef9,
+ 2.E-3 ,112.E+6 *coef9,
+ 3.E-3 ,119.E+6 *coef9,
+ 6.5E-3 ,131.E+6 *coef9,
+ 1.E-2 ,141.E+6 *coef9,
+ 2.14E-2 ,174.E+6 *coef9,
+ 0.05 ,224.E+6 *coef9,
+ 0.15 ,350.E+6 *coef9,
+ ))
+
+#
+# COURBE DE TRACTION à LA TEMPéRATURE 800°C
+#
+coefA=1.E ## UNIT -6
+_AA=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 5.77E-4 ,75.E+6 *coefA,
+ 1.5E-3 ,81.E+6 *coefA,
+ 3.E-3 ,92.5E+6 *coefA,
+ 4.E-3 ,95.5E+6 *coefA,
+ 6.E-3 ,104.E+6 *coefA,
+ 0.01 ,115.E+6 *coefA,
+ 0.0278 ,141.E+6 *coefA,
+ 0.05 ,159.E+6 *coefA,
+ 0.1 ,170.E+6 *coefA,
+ ))
+
+#
+# COURBE DE TRACTION
+#
+
+_AB=DEFI_NAPPE(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ PARA=(20.,200.,350.,400.,600.,800., ),
+ FONCTION=(_A5,_A6,_A7,_A8,_A9,_AA, ))
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+
+# SM EN FONCTION DE LA TEMPERATURE
+
+_BD=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='CONSTANT',
+ VALE=(
+ 20.0,115.0E6,
+ 50.0,115.0E6,
+ 100.0,115.0E6,
+ 150.0,115.0E6,
+ 200.0,109.0E6,
+ 250.0,103.0E6,
+ 300.0,96.0E6,
+ 340.0,94.0E6,
+ 350.0,94.0E6,
+ ))
+_AD=CALC_FONCTION(COMB=_F(FONCTION = _BD,
+ COEF = 1.E ## UNIT -6
+ ),);
+
+# N_KE CONSTANTE EN FAIT
+_AE=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',VALE=(20.,0.3,100.,0.3),)
+
+# M_KE CONSTANTE EN FAIT
+_AF=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',VALE=(20.,1.7,100.,1.7),)
+
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+ TRACTION=_F( SIGM = _AB, ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=1.79E11*1.E ## UNIT -6
+ ),
+
+ RCCM_FO=_F( ## SUBST RCCM
+ SM=_AD, ## EVAL _AD
+ N_KE=_AE, ## EVAL _AE
+ M_KE=_AF, ## EVAL _AF
+ )
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#
+# Catalogue MATERIAU de l'acier inoxydable austenitique 316L
+# - Denomination AFNOR : Z2CND1712
+# - Denomination usuelle : A316L
+#
+# LAMBDA EN FONCTION DE LA TEMPERATURE
+#
+coef0=1.E ## UNIT -3
+
+_A0=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,14.0 *coef0,
+ 50. ,14.4 *coef0,
+ 100. ,15.2 *coef0,
+ 150. ,15.8 *coef0,
+ 200. ,16.6 *coef0,
+ 250. ,17.3 *coef0,
+ 300. ,17.9 *coef0,
+ 350. ,18.6 *coef0,
+ 400. ,19.2 *coef0,
+ 450. ,19.9 *coef0,
+ 500. ,20.6 *coef0,
+ 550. ,21.2 *coef0,
+ 600. ,21.8 *coef0,
+ 650. ,22.4 *coef0,
+ 700. ,23.1 *coef0,
+ 750. ,23.7 *coef0,
+ 800. ,24.3 *coef0,
+ 900. ,26.0 *coef0,
+ 1000. ,27.3 *coef0,
+ 1200. ,29.9 *coef0,
+ 1500. ,34.0 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPERATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3598972. *coef1,
+ 50. ,3701799. *coef1,
+ 100. ,3907455. *coef1,
+ 150. ,4010152. *coef1,
+ 200. ,4160401. *coef1,
+ 250. ,4261084. *coef1,
+ 300. ,4292566. *coef1,
+ 350. ,4366197. *coef1,
+ 400. ,4393593. *coef1,
+ 450. ,4422222. *coef1,
+ 500. ,4439655. *coef1,
+ 550. ,4463158. *coef1,
+ 600. ,4494845. *coef1,
+ 650. ,4525252. *coef1,
+ 700. ,4583333. *coef1,
+ 750. ,4637965. *coef1,
+ 800. ,4700193. *coef1,
+ 900. ,4946500. *coef1,
+ 1000. ,4989600. *coef1,
+ 1200. ,5043650. *coef1,
+ 1500. ,5037000. *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPERATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198500.E+6 *coef2,
+ 20. ,197000.E+6 *coef2,
+ 50. ,195000.E+6 *coef2,
+ 100. ,191500.E+6 *coef2,
+ 150. ,187500.E+6 *coef2,
+ 200. ,184000.E+6 *coef2,
+ 250. ,180000.E+6 *coef2,
+ 300. ,176500.E+6 *coef2,
+ 350. ,172000.E+6 *coef2,
+ 400. ,168000.E+6 *coef2,
+ 450. ,164000.E+6 *coef2,
+ 500. ,160000.E+6 *coef2,
+ 550. ,155500.E+6 *coef2,
+ 600. ,151500.E+6 *coef2,
+ 700. ,142500.E+6 *coef2,
+ 800. ,130000.E+6 *coef2,
+ 900. ,108000.E+6 *coef2,
+ 1000. ,81500.E+6 *coef2,
+ 1100. ,32000.E+6 *coef2,
+ 1200. ,7400.E+6 *coef2,
+ 1300. ,3000.E+6 *coef2,
+ 1400. ,5.E+6 *coef2,
+ ))
+#
+# NU EN FONCTION DE LA TEMPERATURE
+#
+_A3=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPERATURE
+#
+
+_A4=DEFI_FONCTION( NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.0 ,15.4E-6 ,
+ 20.0 ,15.54E-6 ,
+ 50.0 ,15.72E-6 ,
+ 100.0 ,16.0E-6 ,
+ 150.0 ,16.3E-6 ,
+ 200.0 ,16.6E-6 ,
+ 250.0 ,16.86E-6 ,
+ 300.0 ,17.1E-6 ,
+ 350.0 ,17.36E-6 ,
+ 400.0 ,17.6E-6 ,
+ 450.0 ,17.82E-6 ,
+ 500.0 ,18.0E-6 ,
+ 600.0 ,18.4E-6 ,
+ 700.0 ,18.7E-6 ,
+ 800.0 ,19.0E-6 ,
+ 900.0 ,19.2E-6 ,
+ 1000.0 ,19.4E-6 ,
+ 1400.0 ,19.6E-6 ,
+ 1600.0 ,19.7E-6 ,
+ ))
+
+
+#
+# COURBE DE TRACTION A LA TEMPERATURE 20C
+#
+
+coef5=1.E ## UNIT -6
+_TR20=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.08446701E-2 ,166.4E+6 *coef5,
+ 0.09221476E-2 ,177.72307E+6 *coef5,
+ 0.09675755E-2 ,184.702374E+6 *coef5,
+ 0.10035526E-2 ,189.819863E+6 *coef5,
+ 0.10341966E-2 ,193.88674E+6 *coef5,
+ 0.10613920E-2 ,197.274216E+6 *coef5,
+ 0.11091372E-2 ,202.74003E+6 *coef5,
+ 0.11294416E-2 ,202.8E+6 *coef5,
+ 0.13218274E-2 ,221.E+6 *coef5,
+ 0.17010152E-2 ,236.6E+6 *coef5,
+ 0.22670051E-2 ,249.6E+6 *coef5,
+ 0.33197970E-2 ,260.E+6 *coef5,
+ 0.53857868E-2 ,273.E+6 *coef5,
+ 0.74253807E-2 ,280.8E+6 *coef5,
+ 0.94517766E-2 ,286.E+6 *coef5,
+ 1.14913706E-2 ,293.8E+6 *coef5,
+ 1.65573604E-2 ,306.8E+6 *coef5,
+ 2.16101523E-2 ,317.2E+6 *coef5,
+ 3.17289340E-2 ,340.6E+6 *coef5,
+ ))
+
+#
+# COURBE DE TRACTION A LA TEMPERATURE 100C
+#
+coef6=1.E ## UNIT -6
+_TR100=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.07268930E-2 ,139.2E+6 *coef6,
+ 0.10049608E-2 ,173.3E+6 *coef6,
+ 0.20003864E-2 ,200.E+6 *coef6,
+ 0.30757180E-2 ,206.E+6 *coef6,
+ 1.11994778E-2 ,229.7E+6 *coef6,
+ 2.13211488E-2 ,253.E+6 *coef6,
+ 4.15456919E-2 ,296.E+6 *coef6,
+ 6.17545692E-2 ,336.E+6 *coef6,
+ 8.19582245E-2 ,375.E+6 *coef6,
+ 10.2151436E-2 ,412.E+6 *coef6,
+ 15.2647520E-2 ,507.E+6 *coef6,
+ 20.3143603E-2 ,602.E+6 *coef6,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 200C
+#
+coef7=1.E ## UNIT -6
+_TR200=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.06271740E-2 ,115.4E+6 *coef7,
+ 0.10631555E-2 ,153.4E+6 *coef7,
+ 0.19565609E-2 ,170.E+6 *coef7,
+ 0.29734414E-2 ,173.E+6 *coef7,
+ 1.11084853E-2 ,197.E+6 *coef7,
+ 2.12435291E-2 ,221.E+6 *coef7,
+ 4.14854828E-2 ,264.E+6 *coef7,
+ 6.17133693E-2 ,304.5E+6 *coef7,
+ 8.19300023E-2 ,343.E+6 *coef7,
+ 10.2149449E-2 ,382.E+6 *coef7,
+ 15.2689624E-2 ,478.E+6 *coef7,
+ 20.3224173E-2 ,573.E+6 *coef7,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 300C
+#
+coef8=1.E ## UNIT -6
+_TR300=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.05694051E-2 ,100.5E+6 *coef8,
+ 0.09563739E-2 ,133.5E+6 *coef8,
+ 0.19998584E-2 ,150.E+6 *coef8,
+ 0.28781870E-2 ,155.E+6 *coef8,
+ 1.10254958E-2 ,181.E+6 *coef8,
+ 2.11614731E-2 ,205.E+6 *coef8,
+ 4.14164306E-2 ,250.E+6 *coef8,
+ 6.16430595E-2 ,290.E+6 *coef8,
+ 8.18696884E-2 ,330.E+6 *coef8,
+ 10.2096317E-2 ,370.E+6 *coef8,
+ 15.2623229E-2 ,463.E+6 *coef8,
+ 20.3161473E-2 ,558.E+6 *coef8,
+ ))
+#
+# COURBE DE TRACTION A LA TEMPERATURE 350C
+#
+coef9=1.E ## UNIT -6
+_TR350=DEFI_FONCTION( NOM_PARA='EPSI',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0.05558140E-2 ,95.6E+6 *coef9,
+ 0.06134823E-2 ,102.078952E+6 *coef9,
+ 0.06467887E-2 ,106.087661E+6 *coef9,
+ 0.06738779E-2 ,109.026998E+6 *coef9,
+ 0.06974587E-2 ,111.362893E+6 *coef9,
+ 0.07187707E-2 ,113.308561E+6 *coef9,
+ 0.07570231E-2 ,116.447965E+6 *coef9,
+ 0.08008140E-2 ,120.54E+6 *coef9,
+ 0.09520930E-2 ,129.36E+6 *coef9,
+ 0.12862791E-2 ,135.24E+6 *coef9,
+ 0.18204651E-2 ,141.12E+6 *coef9,
+ 0.28546512E-2 ,147.E+6 *coef9,
+ 0.48973837E-2 ,154.35E+6 *coef9,
+ 0.69315698E-2 ,160.23E+6 *coef9,
+ 0.89657558E-2 ,166.11E+6 *coef9,
+ 1.09913953E-2 ,170.52E+6 *coef9,
+ 1.60597674E-2 ,182.28E+6 *coef9,
+ 2.11195930E-2 ,192.57E+6 *coef9,
+ 3.12477907E-2 ,214.62E+6 *coef9,
+ ))
+#
+# COURBE DE TRACTION
+#
+
+_A5=DEFI_NAPPE(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ PARA=(20.,100.,200.,300.,350., ),
+ FONCTION=(_TR20,_TR100,_TR200,_TR300,_TR350))
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+ TRACTION=_F( SIGM = _A5, ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=2.07E11*1.E ## UNIT -6
+ ),
+ )
+
+#
+
--- /dev/null
+# MODIF DATE 24/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.
+# ======================================================================
+#------------------------------------------------------
+# LAMBDA EN FONCTION DE LA TEMPéRATURE
+#
+coef0=1.E ## UNIT -3
+_A0=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,14.0 *coef0,
+ 50. ,14.4 *coef0,
+ 100. ,15.2 *coef0,
+ 150. ,15.8 *coef0,
+ 200. ,16.6 *coef0,
+ 250. ,17.3 *coef0,
+ 300. ,17.9 *coef0,
+ 350. ,18.6 *coef0,
+ 400. ,19.2 *coef0,
+ 450. ,19.9 *coef0,
+ 500. ,20.6 *coef0,
+ 550. ,21.2 *coef0,
+ 600. ,21.8 *coef0,
+ 650. ,22.4 *coef0,
+ 700. ,23.1 *coef0,
+ 750. ,23.7 *coef0,
+ 800. ,24.3 *coef0,
+ ))
+
+#
+# RHO_CP EN FONCTION DE LA TEMPéRATURE
+#
+coef1=1.E ## UNIT -9
+_A1=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 20. ,3.60E+6 *coef1,
+ 50. ,3.70E+6 *coef1,
+ 100. ,3.91E+6 *coef1,
+ 150. ,4.01E+6 *coef1,
+ 200. ,4.16E+6 *coef1,
+ 250. ,4.26E+6 *coef1,
+ 300. ,4.29E+6 *coef1,
+ 350. ,4.37E+6 *coef1,
+ 400. ,4.39E+6 *coef1,
+ 450. ,4.42E+6 *coef1,
+ 500. ,4.44E+6 *coef1,
+ 550. ,4.46E+6 *coef1,
+ 600. ,4.49E+6 *coef1,
+ 650. ,4.53E+6 *coef1,
+ 700. ,4.58E+6 *coef1,
+ 750. ,4.64E+6 *coef1,
+ 800. ,4.70E+6 *coef1,
+ ))
+
+#
+# E EN FONCTION DE LA TEMPéRATURE
+#
+coef2=1.E ## UNIT -6
+_A2=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=(
+ 0. ,198.5E+9 *coef2,
+ 20. ,197.0E+9 *coef2,
+ 50. ,195.0E+9 *coef2,
+ 100. ,191.5E+9 *coef2,
+ 150. ,187.5E+9 *coef2,
+ 200. ,184.0E+9 *coef2,
+ 250. ,180.0E+9 *coef2,
+ 300. ,176.5E+9 *coef2,
+ 350. ,172.0E+9 *coef2,
+ 400. ,168.0E+9 *coef2,
+ 450. ,164.0E+9 *coef2,
+ 500. ,160.0E+9 *coef2,
+ 550. ,155.5E+9 *coef2,
+ 600. ,151.5E+9 *coef2,
+ ))
+
+#
+# NU EN FONCTION DE LA TEMPéRATURE
+#
+
+_A3=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',
+ VALE=( 0., 0.3,
+ ))
+
+#
+# ALPHA EN FONCTION DE LA TEMPéRATURE
+#
+
+_A4=DEFI_FONCTION(
+ NOM_PARA='TEMP',
+ PROL_DROITE='EXCLU',
+ PROL_GAUCHE='EXCLU',
+ VALE=( 20., 15.54E-6, 50., 15.72E-6,
+ 100., 16.00E-6, 150., 16.30E-6,
+ 200., 16.60E-6, 250., 16.86E-6,
+ 300., 17.10E-6, 350., 17.36E-6,
+ 400., 17.60E-6, 450., 17.82E-6,
+ ))
+
+
+# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2
+
+_AZ=DEFI_FONCTION(NOM_PARA='SIGM',
+ INTERPOL='LOG',
+ VALE=(
+ 180.0E6, 1000000.0 ,
+ 200.0E6, 500000.0 ,
+ 230.0E6, 200000.0 ,
+ 260.0E6, 100000.0 ,
+ 295.0E6, 50000.0 ,
+ 350.0E6, 20000.0 ,
+ 405.0E6, 10000.0 ,
+ 485.0E6, 5000.0 ,
+ 615.0E6, 2000.0 ,
+ 750.0E6, 1000.0 ,
+ 940.0E6, 500.0 ,
+ 1275.0E6, 200.0 ,
+ 1655.0E6, 100.0 ,
+ 2190.0E6, 50.0 ,
+ 3240.0E6, 20.0 ,
+ 4480.0E6, 10.0,
+ ),);
+_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),);
+_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ,
+ COEF = 1.E ## UNIT -6
+ ),);
+DETRUIRE( CONCEPT =_F( NOM=_AZ), )
+_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),);
+
+
+
+
+MAT=DEFI_MATERIAU(
+ THER_NL=_F( ## SUBST THER
+ RHO_CP = _A1, ## EVAL _A1
+ LAMBDA = _A0, ## EVAL _A0
+ ),
+ ELAS_FO=_F( ## SUBST ELAS
+ E = _A2, ## EVAL _A2
+ NU = _A3, ## EVAL _A3
+ ALPHA = _A4, ## EVAL _A4
+ TEMP_DEF_ALPHA = 20., ## SUPPR
+ ),
+
+ FATIGUE=_F(WOHLER=_AZ,
+ E_REFE=1.79E11*1.E ## UNIT -6
+ ),
+
+ )
+
+#
+
--- /dev/null
+#@ MODIF ops Cata DATE 16/05/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 Noyau.ascheckers import CheckLog
+
+try:
+ import aster
+ aster_exists = True
+ # Si le module aster est présent, on le connecte
+ # au JDC
+ import Build.B_CODE
+ Build.B_CODE.CODE.codex=aster
+
+ from Utilitai.Utmess import UTMESS
+ from Utilitai.as_timer import ASTER_TIMER
+ from Macro.Sensibilite import MEMORISATION_SENSIBILITE
+except:
+ aster_exists = False
+
+
+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']
+ if aster_exists:
+ jdc.timer = ASTER_TIMER(format='aster')
+ # en POURSUITE, ne pas écraser la mémorisation existante.
+ if not hasattr(jdc, 'memo_sensi'):
+ jdc.memo_sensi = MEMORISATION_SENSIBILITE()
+
+
+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()
+ self.jdc.restore_pickled_attrs(pickle_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
+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
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',),);
# '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
rep_mat=os.path.join(rep_cata,'..','materiau')
catalogues = (
-# ('ASTER','v5.9',os.path.join(rep_cata,'cataSTA5'),'asterv5'),
-# ('ASTER','v6.8',os.path.join(rep_cata,'cataSTA6'),'python6'),
- ('ASTER','v7.7',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','v7.8',os.path.join(rep_cata,'cataSTA7'),'python'),
+ ('ASTER','v8.5',os.path.join(rep_cata,'cataSTA8'),'python'),
+ ('ASTER','v9.1',os.path.join(rep_cata,'cataSTA9'),'python','defaut'),
)
-#@ 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
# ======================================================================
# 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.30"
+date = "08/06/2007"
exploit = False
# ==========Path du noyau fourni par Aster====================
path_Noyau="../../AccasAster"
# ============================================================
-nom_distrib="Eficas"+version+"AsterSTA8"
+nom_distrib="Eficas"+version+"AsterSTA9"
path_distrib=os.path.join("dist",nom_distrib)
path_TextTools="/home/eficas/pkg/mxTools/egenix2.0.2pourWindows/mx/TextTools"
dir_download= "/home/eficas/WWW/telechargement/eficas"
'test_eficas.py',
'style.py'
])
- copyfiles('Cata/Utilitai',os.path.join(path_distrib,'Aster','Cata','Utilitai'),['*.py'])
- copyfiles('Cata/pre74',os.path.join(path_distrib,'Aster','Cata','pre74'),['*.py'])
- #copyfiles('Cata/cataSTA5',os.path.join(path_distrib,'Aster','Cata','cataSTA5'),['*.py'])
+
+ # Les Catalogues, Macros, Materiaux et SD
+ # copyfiles('Cata/Utilitai',os.path.join(path_distrib,'Aster','Cata','Utilitai'),['*.py'])
+ # copyfiles('Cata/pre74',os.path.join(path_distrib,'Aster','Cata','pre74'),['*.py'])
+
copyfiles('Cata/cataSTA6',os.path.join(path_distrib,'Aster','Cata','cataSTA6'),['*.py'])
copyfiles('Cata/cataSTA6/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA6','Macro'),['*.py'])
- #copyfiles('Cata/cataSTA73',os.path.join(path_distrib,'Aster','Cata','cataSTA73'),['*.py'])
- #copyfiles('Cata/cataSTA73/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA73','Macro'),['*.py'])
+
copyfiles('Cata/cataSTA7',os.path.join(path_distrib,'Aster','Cata','cataSTA7'),['*.py'])
copyfiles('Cata/cataSTA7/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA7','Macro'),['*.py'])
+ copyfiles('Cata/cataSTA7/materiau',os.path.join(path_distrib,'Aster','Cata','cataSTA7/materiau'),['README.py'])
+
copyfiles('Cata/cataSTA8',os.path.join(path_distrib,'Aster','Cata','cataSTA8'),['*.py'])
+ copyfiles('Cata/cataSTA8/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA8/Macro'),['*.py'])
+ copyfiles('Cata/cataSTA8/materiau',os.path.join(path_distrib,'Aster','Cata','cataSTA8/materiau'),['README.py'])
+
+ copyfiles('Cata/cataSTA9',os.path.join(path_distrib,'Aster','Cata','cataSTA9'),['*.py'])
+ copyfiles('Cata/cataSTA9/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA9/Macro'),['*.py'])
+ #copyfiles('Cata/cataSTA9/Messages',os.path.join(path_distrib,'Aster','Cata','cataSTA9/Messages'),['*.py'])
+ copyfiles('Cata/cataSTA9/materiau',os.path.join(path_distrib,'Aster','Cata','cataSTA9/materiau'),['README.py'])
+ copyfiles('Cata/cataSTA9/SD',os.path.join(path_distrib,'Aster','Cata','cataSTA9/SD'),['*.py'])
+
copyfiles('Cata',os.path.join(path_distrib,'Aster','Cata'),['*c_clefs_docu'])
copyfiles('../Aster/Cata',os.path.join(path_distrib,'Aster'),['aster.py',])
+ # ______________________
+
copyfiles('../convert',os.path.join(path_distrib,'convert'),['*.py'])
copyfiles('../convert/Parserv5',os.path.join(path_distrib,'convert','Parserv5'),['*.py'])
copyfiles('../generator',os.path.join(path_distrib,'generator'),['*.py'])
copyfiles(os.path.join(path_Noyau,'Validation'),os.path.join(path_distrib,'Validation'),['*.py'])
copyfiles(os.path.join(path_Noyau,'Accas'),os.path.join(path_distrib,'Aster'),['properties.py'])
copyfiles(os.path.join(path_Noyau,'Cata'),os.path.join(path_distrib,'Aster','Cata'),['__init__.py',])
- copyfiles(os.path.join(path_Noyau,'Macro'),os.path.join(path_distrib,'Aster','Cata','cataSTA8','Macro'),['*.py'])
- os.system("mv "+path_distrib+"/Aster/Cata/cata_STA8.py "+path_distrib+"/Aster/Cata/cataSTA8/cata.py")
+ copyfiles(os.path.join(path_Noyau,'Macro'),os.path.join(path_distrib,'Aster','Cata','cataSTA9','Macro'),['.py'])
+ #os.system("mv "+path_distrib+"/Aster/Cata/cata_STA9.py "+path_distrib+"/Aster/Cata/cataSTA9/cata.py")
copyfiles('../Tools',os.path.join(path_distrib,'Tools'),['*.py'])
copyfiles('../Tools/foztools',os.path.join(path_distrib,'Tools','foztools'),['*.py'])
copyfiles('../Pmw',os.path.join(path_distrib,'Pmw'),['*.py'])
copyfiles('../Pmw/Pmw_1_2',os.path.join(path_distrib,'Pmw','Pmw_1_2'),['*.py'])
copyfiles('../Pmw/Pmw_1_2/lib',os.path.join(path_distrib,'Pmw','Pmw_1_2','lib'),['*.py','Pmw.def'])
- #copyfiles('Cata',os.path.join(path_distrib,'Aster','Cata'),['ops.py'])
tarball= maketarball('dist',nom_distrib,nom_distrib)
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)
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)/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/ \
+ )
+pdf:
+ (export PYTHONPATH=$(EFICAS):$(EFICAS)/Aster;\
+ epydoc -n EFICAS --show-imports --pdf -o api_pdf -u http://eficas.der.edf.fr \
+ $(EFICAS)/Noyau/ \
+ $(EFICAS)/Validation/ \
+ $(EFICAS)/Ihm/ \
+ $(EFICAS)/Extensions/ \
+ $(EFICAS)/Accas/ \
+ $(EFICAS)/Editeur/ \
+ $(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 \
)
+
debug: # options -v --debug pour debugger
(export PYTHONPATH=$(EFICAS)/Aster;\
epydoc -n EFICAS --show-imports -v --debug -o api_debug -u http://eficas.der.edf.fr \
from Noyau.N_CR import CR
#
-__Id__="$Id: analyse_catalogue.py,v 1.4.8.1 2006/03/10 14:38:20 eficas Exp $"
+__Id__="$Id: analyse_catalogue.py,v 1.5.12.1 2007-04-26 07:56:07 cchris Exp $"
__version__="$Name: $"
#
l_noms_commandes = ['OPER','PROC','MACRO','FORM']
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):
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")
+
+ #dimensionnement de la fenetre principale
+ #aspect ratio de l'ecran
+ aspect=float(self.top.winfo_screenwidth())/float(self.top.winfo_screenheight())
+ #resolution (pixels par point). On utilise le fait qu'on a "normalement" 72 points par inch
+ resolution= self.top.winfo_screenwidth()/(self.top.winfo_screenmmwidth()/25.4*72)
+ DDY=max(20,resolution*(fontes.standard[1]+4)) #largeur d'un caractere fonte standard en pixel
+ x=int(45*DDY) #largeur d'ouverture de 45 caracteres de fonte standard
+ y=int(25*DDY) #hauteur d'ouverture de 25 caracteres de fonte standard
+ minx=x*8/10 #largeur min (80 pour cent de largeur)
+ miny=y*8/10 #hauteur min (80 pour cent de hauteur)
+ self.top.minsize(minx,miny)
+ self.top.geometry('%dx%d' % (x,y))
+
self.top.title(VERSION + ' pour '+self.code)
self.titre=VERSION + ' pour '+self.code
self.top.withdraw()
"""
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
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')
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
i=FichieraTraduire.rfind(".")
Feuille=FichieraTraduire[0:i]
FichierTraduit=Feuille+"v8.comm"
- os.system("rm -rf /tmp/convert.log")
+ log=self.initialdir+"/convert.log"
+ os.system("rm -rf "+log)
+ os.system("rm -rf "+FichierTraduit)
Pmw.showbusycursor()
- traduitV7V8.traduc(FichieraTraduire,FichierTraduit)
+ traduitV7V8.traduc(FichieraTraduire,FichierTraduit,log)
Pmw.hidebusycursor()
Entete="Fichier Traduit : "+FichierTraduit +"\n\n"
titre = "conversion de "+ FichieraTraduire
- if os.stat("/tmp/convert.log")[6] != 0L :
- f=open('/tmp/convert.log')
+ if os.stat(log)[6] != 0L :
+ f=open(log)
texte_cr= f.read()
f.close()
else :
- texte_cr = Entete + "Pas d information de conversion \n"
+ texte_cr = Entete
commande="diff "+FichieraTraduire+" "+FichierTraduit+" >/dev/null"
try :
if os.system(commande) == 0 :
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
"""
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):
"""
"""
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):
"""
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
self.entry_exp.bind("<Return>",self.verif_corps)
self.entry_exp.bind("<KP_Enter>",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()
"""
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):
"""
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("<Return>",lambda e,s=self : s.entry_val.focus())
self.entry_nom.bind("<KP_Enter>",lambda e,s=self : s.entry_val.focus())
self.entry_val.bind("<KP_Enter>",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
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()
"""
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):
"""
"""
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("<Return>",lambda e,s=self : s.bouton_val.invoke())
self.bouton_val.bind("<KP_Enter>",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):
"""
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():
# class CONFIGStyle(CONFIGbase):
self.appli = appli
+ self.dRepMat={}
if self.appli:
self.parent=appli.top
else:
self.parent=None
self.rep_user = utils.get_rep_user()
self.lecture_fichier_ini_standard()
+ self.lecture_catalogues_standard()
self.lecture_fichier_ini_utilisateur()
self.init_liste_param()
for k in d.keys() :
if k in self.labels.keys() :
setattr(self,k,d[k])
+ # Glut horrible pour les repertoires materiau...
+ elif k[0:9]=="rep_mat_v" :
+ setattr(self,k,d[k])
for k in d['style'].__dict__.keys() :
setattr(self,k,d['style'].__dict__[k])
-
+
#--------------------------------------
def lecture_fichier_ini_utilisateur(self):
#--------------------------------------
return
self.lecture_fichier(self.fic_ini_utilisateur)
+ #--------------------------------------
+ def lecture_catalogues_standard(self):
+ #--------------------------------------
+ # repertoires Materiau
+ if hasattr(self,"catalogues") :
+ for ligne in self.catalogues :
+ version=ligne[1]
+ cata=ligne[2]
+ self.dRepMat[version]=os.path.join(cata,'materiau')
#--------------------------------------
def affichage_fichier_ini(self):
self.rep_user = utils.get_rep_user()
self.initialdir=self.rep_user
self.rep_travail=os.path.join(self.rep_user,'uaster','tmp_eficas')
- self.rep_mat='/aster/v7/materiau'
+ self.rep_mat=""
self.path_doc=self.rep_user
self.exec_acrobat=self.rep_user
self.catalogues= os.path.join(self.rep_ini,'..','Cata/cata.py')
(à 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:
for valeur in atraiter :
encorevalide=self.node.item.valide_item(valeur)
- # qdsjfkllllllllllllllllll
if encorevalide :
listecourante=self.Liste_valeurs.get_liste()
encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
- 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é"
#import catabrowser
import autre_analyse_cata
import uiinfo
+import re
class READERCATA:
print "Pas de catalogue pour code %s, version %s" %(self.code,self.version_code)
sys.exit(0)
+ # Determinination du repertoire materiau
+ v_codeSansPoint=self.version_code
+ v_codeSansPoint=re.sub("\.","",v_codeSansPoint)
+ chaine="rep_mat_"+v_codeSansPoint
+ if hasattr(self.appli.CONFIGURATION,chaine):
+ a=getattr(self.appli.CONFIGURATION,chaine)
+ else :
+ try :
+ a=self.appli.CONFIGURATION.dRepMat[self.version_code]
+ except :
+ print "Probleme avec le repertoire materiau"
+ a='.'
+ self.appli.CONFIGURATION.rep_mat=a
+
# détermination de fic_cata_c et fic_cata_p
self.fic_cata_c = self.fic_cata + 'c'
self.fic_cata_p = os.path.splitext(self.fic_cata)[0]+'_pickled.py'
self.appli.top.title(titre)
self.appli.titre=titre
+
def import_cata(self,cata):
"""
Réalise l'import du catalogue dont le chemin d'accès est donné par cata
import os,traceback
import ConfigParser
import prefs
+import re
# Les valeurs decodees par optparse sont mises dans un objet dictionnaire-like.
# On l'utilise comme environnement de session.
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
if os.path.isfile(file):
options.comm.append(file)
options.studies.append({"comm":file})
+ elif len(args)==1 and re.search('.comm',file):
+ try :
+ f=open(file,'w')
+ f.close()
+ except :
+ parser.error("incorrect number of arguments")
+ options.comm.append(file)
+ options.studies.append({"comm":file})
else:
parser.error("incorrect number of arguments")
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)
"""
#
__version__="$Name: $"
-__Id__="$Id: treewidget.py,v 1.30.6.3 2006/05/29 07:12:38 cchris Exp $"
+__Id__="$Id: treewidget.py,v 1.31.12.1 2007-04-26 07:56:07 cchris Exp $"
#
Fonte_Standard = fontes.standard
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("<F11>", self.page_up)
self.id_down=self.canvas.bind("<F12>", self.page_down)
self.id_um=self.canvas.bind("<Key-Left>", self.mot_up)
#def __del__(self):
# print "__del__",self
-
+
class Node :
def __init__(self,parent,item,command=None,rmenu=None):
self.parent = parent
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=[]
#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()
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')
#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 """
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):
""" 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)
self.frame_valeur.bind("<Button-3>",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
self.frame_valeur.bind("<ButtonRelease-3>",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("<Return>",lambda e,c=self.valid_valeur:c())
self.entry.bind("<KP_Enter>",lambda e,c=self.valid_valeur:c())
# aide associée au panneau
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()
wraplength=int(self.frame_valeur.winfo_width()*0.8),
justify='center')
self.aide.place(relx=0.5,rely=0.85,anchor='n')
+
+ self.but_val = Button(self.fr_but,text = "Valider",command= self.valid_nom_concept_co)
+ self.but_val.pack(side='right',padx=5, pady=5)
+
# affichage de la valeur courante
self.display_valeur()
if liste_noms_sd == [] :
ligne=ligne+1
l=l+"\n"
self.zone_texte.insert(END,l)
- if l.find("INFO") < 0 :
+ if (l.find("WARNING") > -1) or (l.find("ERROR") > -1) :
self.zone_texte.tag_add( "Rouge", str(ligne)+".0", "end-1c" )
self.zone_texte.tag_config("Rouge", foreground='red')
try:
self.page = page
self.liste = liste
self.dico_labels={}
+ self.dico_mots={}
self.nBlabel = 0
self.dico_place={}
+ self.dico_mots={}
self.selection = None
self.liste_commandes = liste_commandes
self.liste_marques = liste_marques
fg = 'black',bg = 'gray95',justify = 'left')
self.dico_labels[mot]=label
self.dico_place[mot]=self.nBlabel
+ self.dico_mots[label]=mot
self.nBlabel=self.nBlabel+1
liste_labels.append(label)
self.MCbox.window_create(END,
if commande and mot : commande(mot)
def cherche_selected_item(self):
- index=self.MCbox.index(self.selection[1])
- lign,col=map(int,string.split(index,'.'))
+ try :
+ index=self.MCbox.index(self.selection[1])
+ lign,col=map(int,string.split(index,'.'))
+ except :
+ label=self.dico_labels[self.arg_selected]
+ mot=self.dico_mots[label]
+ lign=self.dico_place[mot]+1
return lign
def remove_selected_item(self):
try :
index=self.MCbox.index(self.selection[1])
+ lign,col=map(int,string.split(index,'.'))
except :
- index=self.MCbox.index(self.dico_labels[self.arg_selected] )
- lign,col=map(int,string.split(index,'.'))
+ label=self.dico_labels[self.arg_selected]
+ mot=self.dico_mots[label]
+ lign=self.dico_place[mot]+1
del self.liste[lign-1]
self.affiche_liste()
def affiche_liste(self):
""" Affiche la liste dans la fenêtre"""
liste_labels=[]
+ self.dico_mots={}
self.MCbox.config(state=NORMAL)
self.MCbox.delete(1.0,END)
for grp in self.liste_groupes:
fg = 'black',bg = 'gray95',justify = 'left')
# On stocke la relation entre le nom de la commande et le label
self.dico_labels[cmd]=label
+ self.dico_mots[label]=cmd
self.MCbox.window_create(END,
window=label,
stretch = 1)
"""
import sys
-sys.path[:0]=['../..','../../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import SIMP,FACT,BLOC
from Accas import AU_MOINS_UN
"""
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
self.mc_globaux={}
self.cata_ordonne_dico=None
self.par_lot="OUI"
+ self.UserError="UserError"
def register(self,etape):
self.etapes.append(etape)
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):
"""
import sys
-sys.path[:0]=['../..','../../..']
+sys.path[:0]=['../..','../../Aster']
import cata
from cata import JdC
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,
from Accas import AU_MOINS_UN,UN_PARMI,PRESENT_PRESENT,EXCLUS,ENSEMBLE,PRESENT_ABSENT
from Accas import EVAL
+#compatibilite avec V9
+import Noyau
+class ASSD(ASSD,Noyau.AsBase):pass
+class GEOM(GEOM,Noyau.AsBase):pass
+#fin compatibilite
+
# Type le plus general
class entier (ASSD):pass
class reel (ASSD):pass
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 ),
),
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
import cata
from cata import JdC
print j.cr
sys.exit()
-j.Build()
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
import Accas
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()
print cr
o=a(None,'mcs1')
print o.report()
+assert o.isvalid() == 0
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import SIMP,FACT
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
else:
print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
print cr
+ assert o.isvalid() == valid, d
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):
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)
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
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)
print "L'objet ETAPE n'est pas valide "
print cr
+assert e.isvalid()==0
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):
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
import cata
from cata import JdC
cr=j.report()
print cr
+assert j.isvalid() == 0
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):
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
import cata
from cata import JdC
sys.exit()
cr=j.report()
+assert j.isvalid() == 0
if not j.cr.estvide():
print j.cr
sys.exit()
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
import cata
from cata import JdC
sys.exit()
cr=j.report()
+assert j.isvalid() == 0
if not j.cr.estvide():
print j.cr
sys.exit()
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
import cata
import cata1
sys.exit()
cr=j.report()
+assert j.isvalid() == 0
if not j.cr.estvide():
print j.cr
sys.exit()
# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES
#
-DEBUT(CODE=_F( NOM = 'AHLV100A') )
+DEBUT(CODE=_F( NOM = 'AHLV100A',NIV_PUB_WEB='INTRANET') )
F=500.
"""
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
-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:<maillage(42380aec,
+ '?&?&?&?& ')>,,
+ AFFE:(MATER:<mater(42380c8c,
+ '?&?&?&?& ')>,,
+ TOUT:'OUI'));
-GUIDE=AFFE_MODELE(MAILLAGE:MAIL
+GUIDE=AFFE_MODELE(MAILLAGE:<maillage(42380aec,
+ '?&?&?&?& ')>,,
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:<modele(4231930c,
+ '?&?&?&?& ')>,,
+ VITE_FACE:(GROUP_MA:'ENTREE'
+ VNOR:('RI',0.014,0.0)));
+
+IMPEACOU=AFFE_CHAR_ACOU(MODELE:<modele(4231930c,
+ '?&?&?&?& ')>,,
+ IMPE_FACE:(GROUP_MA:'SORTIE'
+ IMPE:('RI',445.9,0.0)));
+
+MACRO_MATR_ASSE(CHARGE:<char_acou(42319aec,'?&?&?&?& ')>
+ MODELE:<modele(4231930c,'?&?&?&?& ')>
+ NUME_DDL:
+ <nume_ddl(42319a6c,
+ 'NUM ')>,,
+ CHAM_MATER:
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ MATR_ASSE:(OPTION:'RIGI_ACOU'
+ MATRICE:
+
+ <matr_asse_pres_c(42319d4c,
+ 'MATASK ')>,,)
+ MATR_ASSE:(OPTION:'MASS_ACOU'
+ MATRICE:
+
+ <matr_asse_pres_c(42319e4c,
+ 'MATASM ')>,,)
+ MATR_ASSE:(OPTION:'AMOR_ACOU'
+ MATRICE:
+
+ <matr_asse_pres_c(42319eec,
+ 'MATASI ')>,,));
VECTELEM=CALC_VECT_ELEM(OPTION:'CHAR_ACOU'
- CHAM_MATER:CHAMPMAT
- CHARGE:CHARACOU);
-
-IMPR_MATRICE(MATR_ELEM:(GRAIN:'MAILLE'
- MATRICE:VECTELEM
+ CHARGE:
+
+ <char_acou(423197cc,
+ '?&?&?&?& ')>,,
+ CHAM_MATER:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,);
+
+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:
+
+ <vect_elem_pres_c(423200ac,
+ '?&?&?&?& ')>,,
+ GRAIN:'MAILLE'));
+
+VECTASS=ASSE_VECTEUR(NUME_DDL:<nume_ddl(42319a6c,
+ 'NUM ')>,,
+ VECT_ELEM:
+
+ <vect_elem_pres_c(423200ac,
+ '?&?&?&?& ')>,,);
+
+MATASKR=COMB_MATR_ASSE(COMB_R:(MATR_ASSE:<matr_asse_pres_c(42319d4c,
+ 'MATASK ')>,,
+ COEF_R:1.0
+ PARTIE:'REEL'));
+
+MATASMR=COMB_MATR_ASSE(COMB_R:(MATR_ASSE:<matr_asse_pres_c(42319e4c,
+ 'MATASM ')>,,
+ COEF_R:1.0
+ PARTIE:'REEL'));
+
+MODES=MODE_ITER_SIMULT(MATR_B:<matr_asse_pres_r(4232638c,
+ '?&?&?&?& ')>,,
+ MATR_A:
+
+ <matr_asse_pres_r(42320fec,
+ '?&?&?&?& ')>,,
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:
+ <mode_acou(42326aec,
+ '?&?&?&?& ')>,,
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:
+ <mode_acou(42326aec,
+ '?&?&?&?& ')>,,
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:
+ <mode_acou(42326aec,
+ '?&?&?&?& ')>,,
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:
+ <mode_acou(42326aec,
+ '?&?&?&?& ')>,,
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:
+ <mode_acou(42326aec,
+ '?&?&?&?& ')>,,
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:
+ <mode_acou(42326aec,
+ '?&?&?&?& ')>,,
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:
+ <mode_acou(42326aec,
+ '?&?&?&?& ')>,,
+ VALE:874.482
+ CRITERE:'RELATIF'
+ PRECISION:0.005)
+ RESU:(NUME_ORDRE:8
+ PARA:'FREQ'
+ RESULTAT:
+ <mode_acou(42326aec,
+ '?&?&?&?& ')>,,
+ 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:<matr_asse_pres_c(42319d4c,
+ 'MATASK ')>,,
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:<matr_asse_pres_c(42319e4c,
+ 'MATASM ')>,,
+ COEF_R:-9869604.4)
+ COMB_C:(MATR_ASSE:<matr_asse_pres_c(42319eec,
+ 'MATASI ')>,,
+ 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:
+
+ <matr_asse_pres_c(423348ac,
+ '?&?&?&?& ')>,,
+ 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:
+
+ <matr_asse_pres_c(423348ac,
+ '?&?&?&?& ')>,,
+ GRAIN:'VALEUR'));
+
+VECRES=COMB_CHAM_NO(COMB_C:(CHAM_NO:<cham_no_pres_c(42320dcc,
+ '?&?&?&?& ')>,,
+ COEF_C:('RI',0.0,-3141.5926)));
+
+&MATRES=FACT_LDLT(MATR_ASSE:<matr_asse_pres_c(423348ac,
+ '?&?&?&?& ')>,,);
+
+&VECRES=RESO_LDLT(CHAM_NO:<cham_no_pres_c(4233c5cc,
+ '?&?&?&?& ')>,,
+ MATR_FACT:
+
+ <matr_asse_pres_c(423348ac,
+ '?&?&?&?& ')>,,);
+
+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_pres_c(4233c5cc,
+ '?&?&?&?& ')>,,)
+ 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_pres_c(4233c5cc,
+ '?&?&?&?& ')>,,)
+ 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_pres_c(4233c5cc,
+ '?&?&?&?& ')>,,)
+ 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:
+ <cham_no_pres_c(4233c5cc,
+ '?&?&?&?& ')>,,));
+
+CHNODBEL=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_DBEL'
+ CHAM_MATER:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ MODELE:
+
+ <modele(4231930c,
+ '?&?&?&?& ')>,,
+ PRES:
+
+ <cham_no_pres_c(4233c5cc,
+ '?&?&?&?& ')>,,);
+
+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_dbel_r(4234860c,
+ '?&?&?&?& ')>,,)
+ 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_dbel_r(4234860c,
+ '?&?&?&?& ')>,,)
+ 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_dbel_r(4234860c,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <cham_elem_dbel_r(4234860c,
+ '?&?&?&?& ')>,,));
+
+PREEL=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_REEL'
+ CHAM_MATER:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ MODELE:
+ <modele(4231930c,
+ '?&?&?&?& ')>,,
+ PRES:
+
+ <cham_no_pres_c(4233c5cc,
+ '?&?&?&?& ')>,,);
+
+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_pres_r(423535ec,
+ '?&?&?&?& ')>,,)
+ 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_pres_r(423535ec,
+ '?&?&?&?& ')>,,)
+ 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_pres_r(423535ec,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <cham_elem_pres_r(423535ec,
+ '?&?&?&?& ')>,,));
+
+PIMAG=CALC_CHAM_ELEM(OPTION:'PRES_ELNO_IMAG'
+ CHAM_MATER:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ MODELE:
+ <modele(4231930c,
+ '?&?&?&?& ')>,,
+ PRES:
+
+ <cham_no_pres_c(4233c5cc,
+ '?&?&?&?& ')>,,);
+
+TEST_RESU(CHAM_ELEM:(NOEUD:'NO1'
+ CRITERE:'ABSOLU'
NOM_CMP:'PRES'
+ VALE:0.0
+ MAILLE:'MA1'
+ CHAM_GD:
+
+ <cham_elem_pres_r(4235e5ec,
+ '?&?&?&?& ')>,,)
+ 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_pres_r(4235e5ec,
+ '?&?&?&?& ')>,,)
+ 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_pres_r(4235e5ec,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <cham_elem_pres_r(4235e5ec,
+ '?&?&?&?& ')>,,));
+
+PRESHARM=DYNA_LINE_HARM(MATR_RIGI:<matr_asse_pres_c(42319d4c,
+ 'MATASK ')>,,
+ MATR_MASS:
+
+ <matr_asse_pres_c(42319e4c,
+ 'MATASM ')>,,
+ MATR_AMOR:
+
+ <matr_asse_pres_c(42319eec,
+ 'MATASI ')>,,
FREQ:500.0
- MATR_RIGI:MATASK
- EXCIT:(PUIS_PULS:1
- VECT_ASSE:VECTASS
+ EXCIT:(VECT_ASSE:<cham_no_pres_c(42320dcc,
+ '?&?&?&?& ')>,,
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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ NOM_CHAM:'PRES'
+ NOEUD:'NO1'
+ NOM_CMP:'PRES')
+ RESU:(NUME_ORDRE:1
+ VALE_C:('RI',-6.2426,0.0)
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ NOM_CHAM:'PRES'
+ NOEUD:'NO780'
+ NOM_CMP:'PRES')
+ RESU:(NUME_ORDRE:1
+ VALE_C:('RI',6.02368,1.6387)
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ NOM_CHAM:'PRES'
+ NOEUD:'NO751'
+ NOM_CMP:'PRES')
+ RESU:(NUME_ORDRE:1
+ VALE_C:('RI',6.02368,1.6387)
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ NOM_CHAM:'PRES'
+ NOEUD:'NO763'
+ NOM_CMP:'PRES'));
+
+&PRESHARM=CALC_ELEM(OPTION:'INTE_ELNO_ACTI'
+ CHAM_MATER:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ TOUT_ORDRE:'OUI'
+ MODELE:
+ <modele(4231930c,
+ '?&?&?&?& ')>,,);
+
+TEST_RESU(RESU:(NUME_ORDRE:1
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ TOUT_ORDRE:'OUI'
+ MODELE:
+ <modele(4231930c,
+ '?&?&?&?& ')>,,);
+
+TEST_RESU(RESU:(NUME_ORDRE:1
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ TOUT_ORDRE:'OUI'
+ MODELE:
+ <modele(4231930c,
+ '?&?&?&?& ')>,,);
+
+TEST_RESU(RESU:(NUME_ORDRE:1
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ TOUT_ORDRE:'OUI'
+ MODELE:
+ <modele(4231930c,
+ '?&?&?&?& ')>,,);
+
+TEST_RESU(RESU:(NUME_ORDRE:1
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+
+ <cham_mater(42380f8c,
+ '?&?&?&?& ')>,,
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ TOUT_ORDRE:'OUI'
+ MODELE:
+ <modele(4231930c,
+ '?&?&?&?& ')>,,);
+
+TEST_RESU(RESU:(NUME_ORDRE:1
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ NOM_CHAM:'PRES_ELNO_IMAG'
+ NOEUD:'NO780'
+ NOM_CMP:'PRES'
VALE:0.0
+ CRITERE:'ABSOLU'
+ MAILLE:'MA1')
+ RESU:(NUME_ORDRE:1
+ RESULTAT:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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:
+ <acou_harmo(4236084c,
+ '?&?&?&?& ')>,,
+ 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();
- sa vérification (report)
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
import Accas
from Accas import SIMP,FACT
o=a({'b':1},'mcf1',None)
print o
print o.report()
+assert o.isvalid() ==1
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-------------------------------
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
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()
# -*- coding: utf-8 -*-
import Tkinter
import Pmw
+from Editeur import comploader
class CONFIG:
isdeveloppeur='NON'
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):
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():
print j.cr
sys.exit()
-a=Appli()
d=jdcdisplay.JDCDISPLAY(j,"ahlv100a",appli=a,parent=a.root)
"""
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']()
"""
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']()
"""
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']()
% 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:<cataSTA5.cata.maillage object at 0x420d3e6c>
+ 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:<cataSTA5.cata.maillage object at 0x420d3e6c>
+ 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:<cataSTA5.cata.modele object at 0x41f6838c>
+ 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:
+ <cataSTA5.cata.maillage object at 0x420d3e6c>
+ 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:
+
+ <fonction(41f8444c,
+ '?&?&?&?& ')>,,)
+ AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')
+ GROUP_NO:('EMBO_SUP','EMBO_INF')
+ FONCTION:
+
+ (<fonction(41f8444c,
+ '?&?&?&?& ')>,
+ <fonction(41f8444c,
+ '?&?&?&?& ')>,
+ <fonction(41f8444c,
+ '?&?&?&?& ')>),));
+
+CHTEM2_1=AFFE_CHAM_NO(MAILLAGE:
+ <cataSTA5.cata.maillage object at 0x420d3e6c>
+ 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:
+
+ <fonction(41f847ac,
+ '?&?&?&?& ')>,,)
+ AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')
+ GROUP_NO:('EMBO_SUP','EMBO_INF')
+ FONCTION:
+
+ (<fonction(41f847ac,
+ '?&?&?&?& ')>,
+ <fonction(41f847ac,
+ '?&?&?&?& ')>,
+ <fonction(41f847ac,
+ '?&?&?&?& ')>),));
+
+CHTEM3_1=AFFE_CHAM_NO(MAILLAGE:
+ <cataSTA5.cata.maillage object at 0x420d3e6c>
+ GRANDEUR:'TEMP_F'
+ AFFE:(NOM_CMP:'TEMP'
+ GROUP_NO:
+
+ ('MAINTIEN','PIEDS',
+ 'TUB_GUID','GRILLES'),
+ FONCTION:
+
+ <fonction(41f84b2c,
+ '?&?&?&?& ')>,,)
+ AFFE:(NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP')
+ GROUP_NO:('EMBO_SUP','EMBO_INF')
+ FONCTION:
+
+ (<fonction(41f84b2c,
+ '?&?&?&?& ')>,
+ <fonction(41f84b2c,
+ '?&?&?&?& ')>,
+ <fonction(41f84b2c,
+ '?&?&?&?& ')>),)
+ AFFE:(NOM_CMP:'TEMP'
+ GROUP_NO:'CRAYONS'
+ FONCTION:
+
+ <fonction(41f84b2c,
+ '?&?&?&?& ')>,,));
+
+CHTH_1=CREA_RESU(TYPE_RESU:'EVOL_THER'
+ NOM_CHAM:'TEMP'
+ CHAM_GD:(CHAM_NO:
+ <cataSTA5.cata.cham_no_temp_f object at 0x41f84f2c>
+ INST:0.0)
+ CHAM_GD:(CHAM_NO:
+ <cataSTA5.cata.cham_no_temp_f object at 0x41f84f2c>
+ INST:1000.0)
+ CHAM_GD:(CHAM_NO:
+ <cataSTA5.cata.cham_no_temp_f object at 0x41f9c52c>
+ INST:2000.0)
+ CHAM_GD:(CHAM_NO:
+ <cataSTA5.cata.cham_no_temp_f object at 0x41f9cb4c>
+ INST:3000.0)
+ CHAM_GD:(CHAM_NO:
+ <cataSTA5.cata.cham_no_temp_f object at 0x41f9cb4c>
+ INST:4000.0)
+ CHAM_GD:(CHAM_NO:
+ <cataSTA5.cata.cham_no_temp_f object at 0x41f9c52c>
+ INST:5000.0)
+ CHAM_GD:(CHAM_NO:
+ <cataSTA5.cata.cham_no_temp_f object at 0x41f84f2c>
+ INST:6000.0)
+ CHAM_GD:(CHAM_NO:
+ <cataSTA5.cata.cham_no_temp_f object at 0x41f84f2c>
+ 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:
+ <cataSTA5.cata.evol_ther object at 0x41fa344c>
+ MODELE:
+ <cataSTA5.cata.modele object at 0x41f6838c> );
% 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:
+ <cataSTA5.cata.modele object at 0x41f6838c> );
%
% 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:
+ <cataSTA5.cata.modele object at 0x41f6838c>
+ 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:<cataSTA5.cata.modele object at 0x41f6838c>
+ 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:
+ <cataSTA5.cata.modele object at 0x41f6838c>
+ 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:<cataSTA5.cata.modele object at 0x41f6838c>
+ 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:
+ <cataSTA5.cata.modele object at 0x41f6838c>
+ FORCE_POUTRE:(GROUP_MA:('GUID')
+ FX:
+
+ <fonction(41fd5e0c,
+ '?&?&?&?& ')>,,)
+ FORCE_POUTRE:(GROUP_MA:'CRAY'
+ FX:
+
+ <fonction(41fd5e0c,
+ '?&?&?&?& ')>,,));
%
% 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:<cataSTA5.cata.modele object at 0x41f6838c>
+ 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:
+ <cataSTA5.cata.modele object at 0x41f6838c>
+ FORCE_POUTRE:(GROUP_MA:'GUID'
+ FX:
+
+ <fonction(41fe9c4c,
+ '?&?&?&?& ')>,,)
+ FORCE_POUTRE:(GROUP_MA:'CRAY'
+ FX:
+
+ <fonction(41fe9c4c,
+ '?&?&?&?& ')>,,));
%
%
% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON
%
% 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:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(41ffcccc,
+ '?&?&?&?& ')>,,);
-FRIG2=CALC_FONC_INTERP(FONCTION:F2
+FRIG2=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(41ffcfcc,
+ '?&?&?&?& ')>,,);
-FRIG3=CALC_FONC_INTERP(FONCTION:F3
+FRIG3=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(420cf2ec,
+ '?&?&?&?& ')>,,);
-FRIG4=CALC_FONC_INTERP(FONCTION:F4
+FRIG4=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(420cf5ec,
+ '?&?&?&?& ')>,,);
-FRIG5=CALC_FONC_INTERP(FONCTION:F5
+FRIG5=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(420cf8ec,
+ '?&?&?&?& ')>,,);
-FRIG6=CALC_FONC_INTERP(FONCTION:F6
+FRIG6=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(420cfbec,
+ '?&?&?&?& ')>,,);
-FRIG7=CALC_FONC_INTERP(FONCTION:F7
+FRIG7=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(420cfeec,
+ '?&?&?&?& ')>,,);
-FRIG8=CALC_FONC_INTERP(FONCTION:F8
+FRIG8=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(4200a20c,
+ '?&?&?&?& ')>,,);
-FRIG9=CALC_FONC_INTERP(FONCTION:F9
+FRIG9=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(4200a50c,
+ '?&?&?&?& ')>,,);
-FRIG10=CALC_FONC_INTERP(FONCTION:F10
+FRIG10=CALC_FONC_INTERP(LIST_PARA:
+ <cataSTA5.cata.listr8 object at 0x41ffc9ec>
PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
+ INTERPOL:'LIN'
+ FONCTION:
+
+ <fonction(4200a80c,
+ '?&?&?&?& ')>,,);
%
% 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:
+ (<fonction(4202040c,
+ '?&?&?&?& ')>,
+ <fonction(4202070c,
+ '?&?&?&?& ')>,
+ <fonction(42020a0c,
+ '?&?&?&?& ')>,
+ <fonction(42020d0c,
+ '?&?&?&?& ')>,
+ <fonction(42020fcc,
+ '?&?&?&?& ')>,
+ <fonction(4202932c,
+ '?&?&?&?& ')>,
+ <fonction(4202962c,
+ '?&?&?&?& ')>,
+ <fonction(4202992c,
+ '?&?&?&?& ')>,
+ <fonction(42029c2c,
+ '?&?&?&?& ')>,
+ <fonction(42029f2c,
+ '?&?&?&?& ')>,
+ <fonction(4203224c,
+ '?&?&?&?& ')>,
+ <fonction(4203254c,
+ '?&?&?&?& ')>,
+ <fonction(4203284c,
+ '?&?&?&?& ')>,
+ <fonction(42032b4c,
+ '?&?&?&?& ')>,
+ <fonction(42032e4c,
+ '?&?&?&?& ')>,
+ <fonction(4203916c,
+ '?&?&?&?& ')>,
+ <fonction(4203946c,
+ '?&?&?&?& ')>),);
%
% DEFINITION DES MATERIAUX ET AFFECTATIONS
%
% 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:<fonction(42039b8c,
+ '?&?&?&?& ')>,,
RHO:7800.0
- E:E_ES));
+ ALPHA:
+
+ <fonction(420401ac,
+ '?&?&?&?& ')>,,
+ NU:
+
+ <fonction(42039e8c,
+ '?&?&?&?& ')>,,));
% 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:<fonction(4204086c,
+ '?&?&?&?& ')>,,
RHO:12.0
- E:E_EI));
-
-MT_RIG=DEFI_MATERIAU(ELAS:(NU:0.0
- ALPHA:0.0
+ ALPHA:
+
+ <fonction(42040e6c,
+ '?&?&?&?& ')>,,
+ NU:
+
+ <fonction(42040b6c,
+ '?&?&?&?& ')>,,));
+
+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:
+
+ <fonction(4200ab4c,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(4200aeac,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(4201124c,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(420115cc,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(4201194c,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(42011ccc,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(42011fec,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(420183ec,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(4201876c,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:
+
+ <fonction(42018aec,
+ '?&?&?&?& ')>,,
+ COULOMB:1.0
+ RELA_MZ:
+
+ <fonction(420488ac,
+ '?&?&?&?& ')>,,)
+ 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:<fonction(42065acc,
+ '?&?&?&?& ')>,,
RHO:7800.0
- E:E_MA));
+ ALPHA:
+
+ <fonction(4206e12c,
+ '?&?&?&?& ')>,,
+ NU:
+
+ <fonction(42065dcc,
+ '?&?&?&?& ')>,,)
+ ECRO_LINE_FO:(SY:<fonction(4206e28c,
+ '?&?&?&?& ')>,,
+ D_SIGM_EPSI:
+
+ <fonction(4206e58c,
+ '?&?&?&?& ')>,,)
+ VMIS_POUTRE_FO:(CAZ:<fonction(4207692c,
+ '?&?&?&?& ')>,,
+ CAY:
+
+ <fonction(4207662c,
+ '?&?&?&?& ')>,,
+ MEY:
+
+ <fonction(4206ea0c,
+ '?&?&?&?& ')>,,
+ NP:
+
+ <fonction(4206e70c,
+ '?&?&?&?& ')>,,
+ CBZ:
+
+ <fonction(42076aac,
+ '?&?&?&?& ')>,,
+ CBY:
+
+ <fonction(420767ac,
+ '?&?&?&?& ')>,,
+ MPZ:
+
+ <fonction(4207632c,
+ '?&?&?&?& ')>,,
+ MPY:
+
+ <fonction(4206ed0c,
+ '?&?&?&?& ')>,,
+ MPX:
+
+ <fonction(42076c2c,
+ '?&?&?&?& ')>,,
+ MEZ:
+
+ <fonction(4206efcc,
+ '?&?&?&?& ')>,,));
%
% **** 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:<fonction(4207ca6c,
+ '?&?&?&?& ')>,,
RHO:7800.0
- E:E_GRE));
+ ALPHA:
+
+ <fonction(4208468c,
+ '?&?&?&?& ')>,,
+ NU:
+
+ <fonction(4207cf4c,
+ '?&?&?&?& ')>,,)
+ GRAN_IRRA:(A:0.0
+ FLUX_L:
+
+ <fonction(4202020c,
+ '?&?&?&?& ')>,,
+ FONC_MULT:
+
+ <fonction(42018e8c,
+ '?&?&?&?& ')>,,
+ S:1.0
+ FLUX_TN:
+
+ <fonction(420397cc,
+ '?&?&?&?& ')>,,));
% 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:<fonction(4207cd6c,
+ '?&?&?&?& ')>,,
RHO:7800.0
- E:E_GRM));
+ ALPHA:
+
+ <fonction(4208498c,
+ '?&?&?&?& ')>,,
+ NU:
+
+ <fonction(4208438c,
+ '?&?&?&?& ')>,,)
+ GRAN_IRRA:(A:0.0
+ FLUX_L:
+
+ <fonction(4202020c,
+ '?&?&?&?& ')>,,
+ FONC_MULT:
+
+ <fonction(42018e8c,
+ '?&?&?&?& ')>,,
+ S:1.0
+ FLUX_TN:
+
+ <fonction(420397cc,
+ '?&?&?&?& ')>,,));
% 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:<fonction(42084cac,
+ '?&?&?&?& ')>,,
RHO:7800.0
- E:E_TU));
-
-MT_CR1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
+ ALPHA:
+
+ <fonction(4208c2cc,
+ '?&?&?&?& ')>,,
+ NU:
+
+ <fonction(42084fac,
+ '?&?&?&?& ')>,,)
+ GRAN_IRRA:(A:0.0
+ FLUX_L:
+
+ <fonction(4202020c,
+ '?&?&?&?& ')>,,
+ FONC_MULT:
+
+ <fonction(42018e8c,
+ '?&?&?&?& ')>,,
S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
+ FLUX_TN:
+
+ <fonction(420397cc,
+ '?&?&?&?& ')>,,));
+
+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:<fonction(4208c5ec,
+ '?&?&?&?& ')>,,
RHO:7800.0
- E:E_CR));
+ ALPHA:
+
+ <fonction(4208cbec,
+ '?&?&?&?& ')>,,
+ NU:
+
+ <fonction(4208c8ec,
+ '?&?&?&?& ')>,,)
+ GRAN_IRRA:(A:0.0
+ FLUX_L:
+
+ <fonction(4202020c,
+ '?&?&?&?& ')>,,
+ FONC_MULT:
+
+ <fonction(42018e8c,
+ '?&?&?&?& ')>,,
+ S:1.0
+ FLUX_TN:
+
+ <fonction(420397cc,
+ '?&?&?&?& ')>,,));
%
% 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:
+ <cataSTA5.cata.maillage object at 0x420d3e6c>
+ AFFE:(GROUP_MA:('MAINTI_Y','MAINTI_Z')
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x42076f8c> )
+ AFFE:(GROUP_MA:'GRIL_I'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4209392c> )
+ AFFE:(GROUP_MA:'GRIL_E'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4208cf6c> )
+ AFFE:(GROUP_MA:'CRAY'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4209ac6c> )
+ AFFE:(GROUP_MA:'GUID'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4209a2ec> )
+ AFFE:(GROUP_MA:'EBOINF'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x420481ac> )
+ AFFE:(GROUP_MA:('PI_PLE','PI_TRO')
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x420481ac> )
+ AFFE:(GROUP_MA:'EBOSUP'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4204050c> )
+ AFFE:(GROUP_MA:'RIGID'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4204852c> )
+ AFFE:(GROUP_MA:'ELA1'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x42048bec> )
+ AFFE:(GROUP_MA:'ELA2'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4204f24c> )
+ AFFE:(GROUP_MA:'ELA3'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4204f88c> )
+ AFFE:(GROUP_MA:'ELA4'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4204fecc> )
+ AFFE:(GROUP_MA:'ELA5'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4205652c> )
+ AFFE:(GROUP_MA:'ELA6'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x42056b6c> )
+ AFFE:(GROUP_MA:'ELA7'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4205e1cc> )
+ AFFE:(GROUP_MA:'ELA8'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4205e80c> )
+ AFFE:(GROUP_MA:'ELA9'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x4205ee4c> )
+ AFFE:(GROUP_MA:'ELA10'
+ TEMP_REF:100.0
+ MATER:
+ <cataSTA5.cata.mater object at 0x420654ac> ));
+%
+%
+
+
+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:
+ <cataSTA5.cata.cara_elem object at 0x41f6c98c>
+ MODELE:<cataSTA5.cata.modele object at 0x41f6838c>
+ CHAM_MATER:
+ <cataSTA5.cata.cham_mater object at 0x420a486c>
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41ff412c>
+ FONC_MULT:
+
+ <fonction(41fe9c4c,
+ '?&?&?&?& ')>,,)
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41ffc52c>
+ FONC_MULT:
+
+ <fonction(41fe9c4c,
+ '?&?&?&?& ')>,,)
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41fc4bac>
+ FONC_MULT:
+
+ <fonction(41fc40cc,
+ '?&?&?&?& ')>,,)
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41fe91cc>
+ FONC_MULT:
+
+ <fonction(41fc40cc,
+ '?&?&?&?& ')>,,)
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41fbbdac>
+ FONC_MULT:
+
+ <fonction(41fbba8c,
+ '?&?&?&?& ')>,,)
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41fab66c> )
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41fbb60c> )
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41fab36c> )
+ EXCIT:(CHARGE:
+ <cataSTA5.cata.char_meca object at 0x41fab1ac> )
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:
+ <cataSTA5.cata.listr8 object at 0x420b3eec>
+ 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:
+ <cataSTA5.cata.listr8 object at 0x420bce0c> ));
FIN();
#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',
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,),
_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,),
_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
#
#
# 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
#
#
# 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();
#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',
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,),
_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,),
_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
#
#
# 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
#
#
# 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();
"""
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()
"""
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()
-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();
-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();
-# -*- 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,
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,
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(),
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
+# -*- 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;
_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
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import SIMP,FACT
from parse import MyConfParser
o=cata(p.getdict(),'mcf1',None)
print o
print o.report()
+assert o.isvalid() == 0
# -*- coding: utf-8 -*-
import sys
-sys.path[:0]=['../..','../../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import SIMP,FACT
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')
o=cata(d,'mcf3',None)
print o
print o.report()
+assert o.isvalid() == 0
# -*- coding: utf-8 -*-
import sys
-sys.path[:0]=['../..','../../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import SIMP,FACT
o=cata(d,'mcf3',None)
print o
print o.report()
+assert o.isvalid() == 0
-[sect1]
-b = 25
-a = 1
-
[sect2]
c = 3
d = 6
+
+[sect1]
+a = 1
+b = 25
-sect1 = {'b' : 25,
-'a' : 1,
-}
sect2 = {'c' : 3,
'd' : 6,
}
+sect1 = {'a' : 1,
+'b' : 25,
+}
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import AU_MOINS_UN
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)
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
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import SIMP,FACT
from Accas import AU_MOINS_UN
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)
else:
print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
print cr
+assert o.isvalid() == 1
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import SIMP,FACT,BLOC
else:
print "L'objet MCBLOC basé sur le dictionnaire %s n'est pas valide " % d
print cr
+ assert o.isvalid() == 1
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
from Accas import SIMP,FACT,BLOC
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
else:
print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
print cr
+ assert o.isvalid() == valid,d
"""
import sys
-sys.path[:0]=['../..']
+sys.path[:0]=['../..','../../Aster']
def main():
from Accas import SIMP,FACT,BLOC
# 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'),
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)
+ """
+
+
+
def __float__(self): return float(self.eval())
def __pos__(self): return self # positive
def __neg__(self): return Unop('-', self)
+ def __abs__(self): return Unop('abs', self)
def __add__(self, other): return Binop('+', self, other)
def __radd__(self, other): return Binop('+', other, self)
def __sub__(self, other): return Binop('-', self, other)
class Unop(Formula):
opmap = { '-': lambda x: -x,
+ 'abs': lambda x: abs(x),
}
def __init__(self, op, arg):
self._op = op
texte_commande = g.gener(self,format='beautifie')
# Il faut enlever la première ligne vide de texte_commande que
# rajoute le generator
- rebut,texte_commande = string.split(texte_commande,'\n',1)
+ #rebut,texte_commande = string.split(texte_commande,'\n',1)
# on construit l'objet COMMANDE_COMM repésentatif de self mais non
# enregistré dans le jdc (pas ajouté dans jdc.etapes)
parent=self.parent
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)
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
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
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
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
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
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)
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
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'),
)
+# -*- coding: utf-8 -*-
+
# --------------------------------------------------
# debut entete
# --------------------------------------------------
# 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
--- /dev/null
+# -*- 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)
-#@ 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
# ======================================================================
"""
"""
-import string
-class ASSD:
+class ASSD(object):
"""
Classe de base pour definir des types de structures de donnees ASTER
equivalent d un concept ASTER
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):
-#@ MODIF N_BLOC Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF N_BLOC Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
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
"""
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
-#@ MODIF N_CO Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND
+#@ MODIF N_CO Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from N_VALIDATOR import ValError
import N_utils
-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
+from asojb import AsBase
- 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__)
+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__)
-#@ MODIF N_CR Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF N_CR Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
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
-#@ MODIF N_ETAPE Noyau DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF N_ETAPE Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
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
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)
"""
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)
"""
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)
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)
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
-#@ MODIF N_FACT Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND
+#@ MODIF N_FACT Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
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
"""
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
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:
-#@ MODIF N_FONCTION Noyau DATE 19/09/2005 AUTEUR DURAND C.DURAND
+#@ MODIF N_FONCTION Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from N_ASSD import ASSD
import string
+from asojb import AsBase
+
class FONCTION(ASSD):pass
-class formule(ASSD):
+class formule(ASSD,AsBase):
def __init__(self,**args):
ASSD.__init__(self,**args)
self.nompar =None
return self.nom
def __convert__(cls,valeur):
- return valeur
+ if isinstance(valeur, (str,unicode)):
+ return valeur
+ raise ValueError, 'On attend une chaine de caractères'
__convert__=classmethod(__convert__)
class geom(GEOM):pass
-#@ MODIF N_JDC Noyau DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF N_JDC Noyau DATE 30/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
except self.UserError,exc_val:
self.traiter_user_exception(exc_val)
CONTEXT.unset_current_step()
+ self.affiche_fin_exec()
self.traiter_fin_exec('commande')
except :
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) :
# 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':
-#@ MODIF N_MACRO Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF N_MACRO Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
Construit l'objet MACRO_ETAPE a partir de sa definition (self),
puis demande la construction de ses sous-objets et du concept produit.
"""
- nomsd=self.nommage.GetNomConceptResultat(self.nom)
+ # Glut MC (2007-05) / Sensibilité
+ # Précaution nécessaire pour la sensibilité (on fait 'exec' du texte d'une commande)
+ # car on n'a pas de "ligne" à décoder pour trouver le nom du résultat (à gauche
+ # du signe égal). Cà tombe bien, dans ce cas, sd_prod=None : pas de résultat !
+ if self.sd_prod != None:
+ nomsd=self.nommage.GetNomConceptResultat(self.nom)
+ else:
+ nomsd = None
etape= self.class_instance(oper=self,reuse=reuse,args=args)
etape.McBuild()
return etape.Build_sd(nomsd)
-#@ MODIF N_MACRO_ETAPE Noyau DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF N_MACRO_ETAPE Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
"""
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
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
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()
"""
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
"""
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
"""
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
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:
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
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)
-#@ MODIF N_MCCOMPO Noyau DATE 21/03/2005 AUTEUR DURAND C.DURAND
+#@ MODIF N_MCCOMPO Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
des OBJECT composites
"""
-import types
from copy import copy
import N_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
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': [ <Cata.cata.para_sensi instance at 0x9419854>,
- <Cata.cata.para_sensi instance at 0x941a204> ],
- 'MODELE': [<Cata.cata.modele instance at 0x941550c>] }
+ - 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': [ <Cata.cata.para_sensi instance at 0x9419854>,
+ <Cata.cata.para_sensi instance at 0x941a204> ],
+ 'MODELE': [<Cata.cata.modele instance at 0x941550c>] }
"""
dico = {}
for child in self.mc_liste:
-#@ MODIF N_MCLIST Noyau DATE 25/09/2006 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF N_MCLIST Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
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': [ <Cata.cata.para_sensi instance at 0x9419854>,
- <Cata.cata.para_sensi instance at 0x941a204> ],
- 'MODELE': [<Cata.cata.modele instance at 0x941550c>] }
+ - 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': [ <Cata.cata.para_sensi instance at 0x9419854>,
+ <Cata.cata.para_sensi instance at 0x941a204> ],
+ 'MODELE': [<Cata.cata.modele instance at 0x941550c>] }
"""
dico = {}
for child in self.data:
-#@ MODIF N_MCSIMP Noyau DATE 22/02/2005 AUTEUR DURAND C.DURAND
+#@ MODIF N_MCSIMP Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
de type ENTITE
"""
-import types
from copy import copy
from Noyau.N_ASSD import ASSD,assd
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
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': [ <Cata.cata.para_sensi instance at 0x9419854>,
+ - 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': [ <Cata.cata.para_sensi instance at 0x9419854>,
<Cata.cata.para_sensi instance at 0x941a204> ] }
"""
l=self.get_sd_utilisees()
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 []
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:
-#@ MODIF N_SENSIBILITE Noyau DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF N_SENSIBILITE Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
"""
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)
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'):
-#@ MODIF N_VALIDATOR Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND
+#@ MODIF N_VALIDATOR Noyau DATE 16/05/2007 AUTEUR COURTOIS 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.
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 string
import traceback
+from N_ASSD import ASSD
class ValError(Exception):pass
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:
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',))
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
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.
@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
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.
"""
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:
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
"""
"""
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
"""
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):
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
return 1
ImpairVal.info="valeur impaire"
-
+
class F1Val(Valid):
"""
Exemple de validateur
def verif(self,valeur):
return self.function(valeur)
+#MC ca ne devrait plus servir !
CoercableFuncs = { types.IntType: int,
types.LongType: long,
types.FloatType: float,
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
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):
-#@ 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
# ======================================================================
"""
# Modules Python
-import sys,types
-import string
+import sys
# Modules EFICAS
from N_Exception import AsException
+from N_ASSD import ASSD
SEP='_'
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")
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
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]+'.'
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
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
-#@ MODIF __init__ Noyau DATE 27/09/2004 AUTEUR CIBHHLV L.VIVAN
+#@ MODIF __init__ Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# Classes de base
from N_SIMP import SIMP
from N_FACT import FACT
+
+# structures de données
+import asojb
+from asojb import AsBase
--- /dev/null
+#@ MODIF ascheckers Noyau DATE 23/05/2007 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+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 ):
+ if obj :
+ self.msg.append( (level, obj.nomj(), msg) )
+ else :
+ self.msg.append( (level, 'None', 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) )
--- /dev/null
+#@ MODIF asnom Noyau DATE 16/05/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.
+# ======================================================================
+
+"""
+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 "<SDNom(%r,%s,%s)>" % (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
+
+
--- /dev/null
+#@ MODIF asojb Noyau DATE 04/06/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.
+# ======================================================================
+
+"""
+ Description des OJB jeveux
+"""
+from basetype import Type, MetaType
+from asnom import SDNom
+from ascheckers import CheckLog
+import traceback,sys
+
+# pour utilisation dans eficas
+try:
+ import aster
+ from Utilitai.Utmess import U2MESS as UTMESS
+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):
+ try :
+ v( checker )
+ except :
+ UTMESS("E", 'SDVERI_45')
+ print 40*'-'
+ traceback.print_exc(file=sys.stdout)
+
+ 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 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 AsVL(OJBVect):
+ _type = "L"
+
+# -----------------------------------------------------------------------------
+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
--- /dev/null
+#@ MODIF basetype Noyau DATE 16/05/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.
+# ======================================================================
+
+"""
+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
+
-#@ MODIF nommage Noyau DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF nommage Noyau DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
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):
"""
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
#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 ""
"""
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
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",
+ }
('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'),
)
from config import ASTERDIR
+version="v8"
+
def cdiff(text1,text2):
return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1)))
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()
--- /dev/null
+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
--- /dev/null
+Compilation impossible : File "erreu01a.comm", line 44
+ UELAS=MECA_STATIQUE(MODELE=MOD,
+ ^
+ SyntaxError: invalid syntax
--- /dev/null
+import basetest
+
+files="[a-l]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
--- /dev/null
+import basetest
+
+files="z*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
--- /dev/null
+import basetest
+
+files="[m-r]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
+
--- /dev/null
+import basetest
+
+files="s[a-d]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
--- /dev/null
+import basetest
+
+files="s[e-r]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
--- /dev/null
+import basetest
+
+files="ssl[a-l]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
--- /dev/null
+import basetest
+
+files="ssl[m-z]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
--- /dev/null
+import basetest
+
+files="ss[m-z]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
+
--- /dev/null
+import basetest
+
+files="s[t-z]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
--- /dev/null
+import basetest
+
+files="[t-y]*.comm"
+TestCase=basetest.make_tests(files)
+class TestCase(TestCase):pass
CONTEXT.unset_current_step()
i=0
- files="Tests/testcomm/*.comm"
- for f in glob.glob(os.path.join(prefs.INSTALLDIR,files)):
+ files= os.path.join(os.path.dirname(__file__),"*.comm")
+ for f in glob.glob(files):
for o in ('3','2','1','0','m'):
f=f[:-1]+o
if os.path.isfile(f):break
--- /dev/null
+MM=LIRE_MAILLAGE()
--- /dev/null
+POURSUITE()
+MA=LIRE_MAILLAGE(INFO=inf)
+FIN()
--- /dev/null
+DEBUT()
+inf=1
+p2=inf+1
+p3=sin(p2)
+FIN()
--- /dev/null
+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()
--- /dev/null
+DEBUT()
+a=1
+fmt_raison='-'*80+"""
+
+ Exception erreur_Fatale interceptee
+ Raison : %s
+
+"""+'-'*80+'\n'
+FIN()
--- /dev/null
+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()
--- /dev/null
+DEBUT()
+a=1
+MA=LIRE_MAILLAGE()
+FIN()
--- /dev/null
+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()
--- /dev/null
+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)
+ )
+
--- /dev/null
+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()
--- /dev/null
+# 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()
--- /dev/null
+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)
+ )
+
--- /dev/null
+# 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()
--- /dev/null
+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()
--- /dev/null
+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',);
+
+
+
+
--- /dev/null
+# 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()
+
+
+
+
+
+
--- /dev/null
+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()
--- /dev/null
+# 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()
+
--- /dev/null
+DEBUT()
+MA=LIRE_MAILLAGE()
+INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF',
+ VARIANTE='A', TYPE_VALE='NOMI',
+ NOM_MATER='MAT3', INFO=1 )
+
+FIN()
--- /dev/null
+
+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()
--- /dev/null
+POURSUITE();
+l1=DEFI_LIST_ENTI(DEBUT=mon_param,);
+FIN();
+
--- /dev/null
+DEBUT();
+mon_param = 2;
+m=LIRE_MAILLAGE()
+FIN();
--- /dev/null
+x=45
+y=77
--- /dev/null
+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();
+
--- /dev/null
+DEBUT();
+mon_param = 2;
+m=LIRE_MAILLAGE()
+a=[1,2,3,4];b=2
+FIN();
--- /dev/null
+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()
--- /dev/null
+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()
--- /dev/null
+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(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)
--- /dev/null
+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()
--- /dev/null
+MM=LIRE_MAILLAGE()
--- /dev/null
+POURSUITE()
+MA=LIRE_MAILLAGE(INFO=inf)
+FIN()
--- /dev/null
+DEBUT()
+inf=1
+p2=inf+1
+p3=sin(p2)
+FIN()
--- /dev/null
+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()
--- /dev/null
+DEBUT()
+a=1
+fmt_raison='-'*80+"""
+
+ Exception erreur_Fatale interceptee
+ Raison : %s
+
+"""+'-'*80+'\n'
+FIN()
--- /dev/null
+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()
--- /dev/null
+# 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();
--- /dev/null
+DEBUT()
+a=1
+MA=LIRE_MAILLAGE()
+FIN()
--- /dev/null
+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()
--- /dev/null
+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)
+ )
+
--- /dev/null
+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()
--- /dev/null
+# 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()
--- /dev/null
+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)
+ )
+
--- /dev/null
+# 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()
--- /dev/null
+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()
--- /dev/null
+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',);
+
+
+
+
--- /dev/null
+# 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()
+
+
+
+
+
+
--- /dev/null
+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()
--- /dev/null
+# 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()
+
--- /dev/null
+# 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()
--- /dev/null
+DEBUT()
+MA=LIRE_MAILLAGE()
+INCLUDE_MATERIAU( NOM_AFNOR='18MND5', TYPE_MODELE='REF',
+ VARIANTE='A', TYPE_VALE='NOMI',
+ NOM_MATER='MAT3', INFO=1 )
+
+FIN()
--- /dev/null
+
+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()
--- /dev/null
+POURSUITE();
+l1=DEFI_LIST_ENTI(DEBUT=mon_param,);
+FIN();
+
--- /dev/null
+DEBUT();
+mon_param = 2;
+m=LIRE_MAILLAGE()
+FIN();
--- /dev/null
+x=45
+y=77
--- /dev/null
+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();
+
--- /dev/null
+DEBUT();
+mon_param = 2;
+m=LIRE_MAILLAGE()
+a=[1,2,3,4];b=2
+FIN();
--- /dev/null
+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()
--- /dev/null
+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()
--- /dev/null
+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)
--- /dev/null
+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()
--- /dev/null
+DEBUT()
+
+MA=LIRE_MAILLAGE(UNITE=20,
+#cocococo=LIRE_MAILLAGE(UNITE=20,
+ VERI_MAIL=_F(VERIF='OUI',),
+ INFO=1,);
+FIN()
-
DEBUT();
P1 = 9.8;
P4 = [2, 3, 4];
+
#Pas trouve shellpanel
MAILLA2=LIRE_MAILLAGE(UNITE=P4[1],);
NOM_PARA=('a','z',),);
MAIL=LIRE_MAILLAGE(UNITE=P3,);
+
# 'LIRE_MAILLAGE', 'UNITE' --> uniquebasepanel
az = FORMULE(VALE='aaaaa',
SECTION='CERCLE',
CARA='R',
VALE=(3.0,P6,),),);
+
# 'AFFE_MODELE', 'MAILLAGE' --> uniqueassdpanel
# AFFE_MODELE', 'AFFE', 'GROUP_MA' --> plusieursbasepanel
# 'AFFE_MODELE', 'AFFE', 'PHENOMENE' --> uniqueintopanel
F3=DEFI_FONCTION(NOM_PARA='DRX',VALE_C=(5.0,7.0,9.0,
9.0,8.0,7.0,
),);
+
# 'DEFI_FONCTION', 'VALE' --> fonctionpanel
MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0,
CHAM_MATER=CHMAT2,
EXCIT=_F(CHARGE=AAAZ,),
SENSIBILITE=(PS1,PS2,),);
+
# 'THER_LINEAIRE', 'SENSIBILITE' --> plusieursassdpanel
ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1,
PRES_IMPO=_F(TOUT='OUI',
PRES=('RI',3.0,3.0,),),);
+
# 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel
MACRO_MATR_ASSE(MODELE=AFFE1,
NUME_DDL=CO('DDL1'),
MATR_ASSE=_F(MATRICE=CO('MAT1'),
OPTION='RIGI_THER',),);
+
# 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE' --> uniquesdcopanel
FIN();
-
DEBUT();
P1 = 9.8;
P4 = [2, 3, 4];
+
#Pas trouve shellpanel
MAILLA2=LIRE_MAILLAGE(UNITE=P4[1],);
aaa = FORMULE(REEL='(a+z) = (a,z)',);
MAIL=LIRE_MAILLAGE(UNITE=P3,);
+
# 'LIRE_MAILLAGE', 'UNITE' --> uniquebasepanel
az = FORMULE(REEL='(aaaaa) = (ae,inst)',);
SECTION='CERCLE',
CARA='R',
VALE=(3.0,P6,),),);
+
# 'AFFE_MODELE', 'MAILLAGE' --> uniqueassdpanel
# AFFE_MODELE', 'AFFE', 'GROUP_MA' --> plusieursbasepanel
# 'AFFE_MODELE', 'AFFE', 'PHENOMENE' --> uniqueintopanel
F3=DEFI_FONCTION(NOM_PARA='DRX',VALE_C=(5.0,7.0,9.0,
9.0,8.0,7.0,
),);
+
# 'DEFI_FONCTION', 'VALE' --> fonctionpanel
MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0,
CHAM_MATER=CHMAT2,
EXCIT=_F(CHARGE=AAAZ,),
SENSIBILITE=(PS1,PS2,),);
+
# 'THER_LINEAIRE', 'SENSIBILITE' --> plusieursassdpanel
ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1,
PRES_IMPO=_F(TOUT='OUI',
PRES=('RI',3.0,3.0,),),);
+
# 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel
MACRO_MATR_ASSE(MODELE=AFFE1,
NUME_DDL=CO('DDL1'),
MATR_ASSE=_F(MATRICE=CO('MAT1'),
OPTION='RIGI_THER',),);
+
# 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE' --> uniquesdcopanel
FIN();
from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType
+import Noyau
class CATA:
def __init__(self):
cata=CATA()
-class concept(ASSD):pass
+class concept(ASSD,Noyau.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,Noyau.AsBase):pass
+class concept3(ASSD,Noyau.AsBase):pass
def op2_prod(TYPE_RESU,**args):
if TYPE_RESU == "TRANS" : return concept2
from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType,CO,MACRO
+import Noyau
class CATA:
cata=CATA()
-class concept(ASSD):pass
+class concept(ASSD,Noyau.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,Noyau.AsBase):pass
+class concept3(ASSD,Noyau.AsBase):pass
def op2_prod(self,MATR,**args):
self.type_sdprod(MATR,concept2)
# -*- coding: iso-8859-15 -*-
from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType,CO,MACRO,JDC_CATA
+import Noyau
JdC=JDC_CATA(code="ASTER")
-class concept(ASSD):pass
-class concept2(ASSD):pass
-class concept3(ASSD):pass
+class concept(ASSD,Noyau.AsBase):pass
+class concept2(ASSD,Noyau.AsBase):pass
+class concept3(ASSD,Noyau.AsBase):pass
class concept4(concept2):pass
def OP_ops(self,MATR,**args):
# coding=utf-8
from Accas import SIMP,FACT,BLOC,UN_PARMI,OPER,ASSD,MACRO,_F
+import Noyau
+
+class concept(ASSD,Noyau.AsBase):pass
import unittest
cata=CATA()
-class concept(ASSD):pass
OP1 = OPER(nom='OP1',op=1, sd_prod=concept,
WWWW=SIMP(statut='o',typ='TXM', position='global'),
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 """
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):
cr=app.get_text_JDC(j,'python')
expected="""
-
DEBUT();
MA=LIRE_MAILLAGE(INFO=1,);
cr=app.get_text_JDC(j,'python')
expected="""
-
DEBUT();
MA=LIRE_MAILLAGE(INFO=1,);
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):
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):
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 Noyau
+
+class concept(ASSD,Noyau.AsBase):pass
import unittest
import cata3
from Accas import AsException,ASSD,OPER,SIMP,FACT,BLOC,_F
-class concept(ASSD):pass
+import Noyau
+
+class concept(ASSD,Noyau.AsBase):pass
import unittest
def test014(self):
cata=SIMP(typ=geom,statut='o')
- liste=((1,1),
+ liste=((1,0),
("aaaa",1),
)
for valeur,valid in liste:
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)
--- /dev/null
+# coding=utf-8
+
+import os
+import unittest
+import difflib
+import compare
+
+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):
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ CONTEXT.unset_current_step()
+
+ def test000(self):
+ """ Test de construction du fichier de commandes az.comm de zero"""
+
+ app=appli.STANDALONE(version='v7')
+ j=app.newJDC()
+# commande DEBUT
+ co=j.addentite("DEBUT",0)
+# commande FIN
+ co=j.addentite("FIN",1)
+# parametres
+ pos=0
+ pos=pos+1
+ co=add_param(j,pos,"P1","9.8")
+ pos=pos+1
+ co=add_param(j,pos,"P2","8.8")
+ pos=pos+1
+ co=add_param(j,pos,"P3","7")
+ pos=pos+1
+ co=add_param(j,pos,"P5","P3*P1")
+ pos=pos+1
+ co=add_param(j,pos,"P6","P1-3")
+ pos=pos+1
+ co=add_param(j,pos,"P4","[2,3,4]")
+# commentaire
+ pos=pos+1
+ co=j.addentite("COMMENTAIRE",pos)
+ co.set_valeur("Pas trouve shellpanel")
+# commande LIRE_MAILLAGE
+ pos=pos+1
+ co=j.addentite("LIRE_MAILLAGE",pos)
+ test,mess=co.nomme_sd("MAILLA2")
+ mcs=co.addentite("UNITE")
+ valeur=mcs.eval_val("P4[1]")
+ test=mcs.set_valeur(valeur)
+# formule
+ pos=pos+1
+ co=j.addentite("FORMULE",pos)
+ co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
+# commande LIRE_MAILLAGE
+ pos=pos+1
+ ma=co=j.addentite("LIRE_MAILLAGE",pos)
+ test,mess=co.nomme_sd("MAIL")
+ mcs=co.addentite("UNITE")
+ valeur,validite=mcs.eval_valeur("P3")
+ test=mcs.set_valeur(valeur)
+#
+ pos=pos+1
+ co=j.addentite("COMMENTAIRE",pos)
+ co.set_valeur(" 'LIRE_MAILLAGE', 'UNITE' --> uniquebasepanel")
+# formule
+ pos=pos+1
+ co=j.addentite("FORMULE",pos)
+ co.update_formule_python(("az","REEL","aaaaa","(ae,inst)"))
+# commande AFFE_MODELE
+ pos=pos+1
+ co=j.addentite("AFFE_MODELE",pos)
+ mcs=co.get_child("MAILLAGE")
+ valeur,validite=mcs.eval_valeur("MAIL")
+ assert valeur == ma.sd
+ test=mcs.set_valeur(valeur)
+ assert valeur == co["MAILLAGE"]
+ mcf=co.addentite("AFFE")
+ mcs=mcf[0].get_child("PHENOMENE")
+ valeur=mcs.eval_val_item('MECANIQUE')
+ assert valeur=='MECANIQUE',str(valeur)
+ test=mcs.set_valeur(valeur)
+ assert mcf["PHENOMENE"] == 'MECANIQUE'
+ mcs=mcf[0].get_child("b_mecanique").get_child("MODELISATION")
+ mcs.set_valeur(mcs.eval_val_item('DIS_T'))
+ assert mcf["MODELISATION"] == 'DIS_T'
+ mcs=add_mcsimp(mcf[0],"GROUP_MA",('RESSORT','eee',))
+
+ mcf=co.addentite("AFFE")
+ mcs=mcf[1].get_child("PHENOMENE")
+ mcs.set_valeur(mcs.eval_val_item('MECANIQUE'))
+ mcs=mcf[1].get_child("b_mecanique").get_child("MODELISATION")
+ mcs.set_valeur(mcs.eval_val_item('DIS_T'))
+ mcs=add_mcsimp(mcf[1],"GROUP_MA",'MASSES')
+
+ mcf=co.addentite("AFFE")
+ mcs=mcf[2].get_child("PHENOMENE")
+ mcs.set_valeur(mcs.eval_val_item('ACOUSTIQUE'))
+ mcs=mcf[2].get_child("b_acoustique").get_child("MODELISATION")
+ mcs.set_valeur(mcs.eval_val_item('PLAN'))
+ #mcs=add_mcsimp(mcf[2],"GROUP_NO",'GNP3,GNP5,GNP6,GNP7,GNP8,GNP9,GNP10,GNP11,GNP12')
+ mcs=add_mcsimp(mcf[2],"GROUP_NO","'GNP3','GNP5','GNP6','GNP7','GNP8','GNP9','GNP10','GNP11','GNP12'")
+
+ co.nomme_sd("AFFE1")
+# commande AFFE_MODELE
+ pos=pos+1
+ co=j.addentite("AFFE_MODELE",pos)
+ mcs=co.get_child("MAILLAGE")
+ mcs.set_valeur(mcs.eval_val("MAIL"))
+
+ mcf=co.addentite("AFFE")
+ mcs=mcf[0].get_child("PHENOMENE")
+ valeur=mcs.eval_val_item('MECANIQUE')
+ test=mcs.set_valeur(valeur)
+ mcs=mcf[0].get_child("b_mecanique").get_child("MODELISATION")
+ mcs.set_valeur(mcs.eval_val_item('DIS_T'))
+ mcs=add_mcsimp(mcf[0],"GROUP_MA",'RESSORT')
+
+ mcf=co.addentite("AFFE")
+ mcs=mcf[1].get_child("PHENOMENE")
+ mcs.set_valeur(mcs.eval_val_item('MECANIQUE'))
+ mcs=mcf[1].get_child("b_mecanique").get_child("MODELISATION")
+ mcs.set_valeur(mcs.eval_val_item('DIS_T'))
+ mcs=add_mcsimp(mcf[1],"GROUP_MA",'MASSES')
+
+ mcf=co.addentite("AFFE")
+ mcs=mcf[2].get_child("PHENOMENE")
+ mcs.set_valeur(mcs.eval_val_item('THERMIQUE'))
+ mcs=mcf[2].get_child("b_thermique").get_child("MODELISATION")
+ mcs.set_valeur(mcs.eval_val_item('COQUE'))
+ mcs=add_mcsimp(mcf[2],"TOUT",'OUI')
+
+ co.nomme_sd("MOD")
+#CARA=AFFE_CARA_ELEM(MODELE=MOD,
+# POUTRE=_F(GROUP_MA='MA',
+# SECTION='CERCLE',
+# CARA='R',
+# VALE=(3.0,P6,),),);
+ pos=pos+1
+ co=j.addentite("AFFE_CARA_ELEM",pos)
+ mcs=co.get_child("MODELE")
+ mcs.set_valeur(mcs.eval_val("MOD"))
+ mcf=co.addentite("POUTRE")
+ mcs=mcf[0].get_child("SECTION")
+ mcs.set_valeur(mcs.eval_val('CERCLE'))
+ assert mcf[0]["SECTION"] == 'CERCLE'
+ mcs=add_mcsimp(mcf[0],"GROUP_MA",'MA')
+ mcs=mcf[0].get_child("b_cercle").get_child("b_constant").get_child("CARA")
+ mcs.set_valeur(mcs.eval_val('R'))
+ mcs=mcf[0].get_child("b_cercle").get_child("b_constant").get_child("VALE")
+ mcs.set_valeur(mcs.eval_val('3.0,P6'))
+ co.nomme_sd("CARA")
+# commentaire
+ pos=pos+1
+ co=j.addentite("COMMENTAIRE",pos)
+ text=""" 'AFFE_MODELE', 'MAILLAGE' --> uniqueassdpanel
+ AFFE_MODELE', 'AFFE', 'GROUP_MA' --> plusieursbasepanel
+ 'AFFE_MODELE', 'AFFE', 'PHENOMENE' --> uniqueintopanel
+ 'AFFE_MODELE', 'AFFE', 'b_mecanique'--> plusieursintopanel"""
+ co.set_valeur(text)
+#F1=DEFI_FONCTION(NOM_PARA='DX',
+# VALE=(5.0,3.0,P4[1],P3,),);
+ pos=pos+1
+ co=j.addentite("DEFI_FONCTION",pos)
+ mcs=co.get_child("NOM_PARA")
+ mcs.set_valeur(mcs.eval_val("DX"))
+ mcs=co.addentite("VALE")
+ mcs.set_valeur(mcs.eval_val("5.0,3.0,P4[1],P3"))
+ co.nomme_sd("F1")
+#F3=DEFI_FONCTION(NOM_PARA='DRX',
+# VALE_C=(5.0,7.0,9.0,9.0,8.0,7.0,),);
+ pos=pos+1
+ co=j.addentite("DEFI_FONCTION",pos)
+ mcs=co.get_child("NOM_PARA")
+ mcs.set_valeur(mcs.eval_val("DRX"))
+ mcs=co.addentite("VALE_C")
+ mcs.set_valeur(mcs.eval_val("5.0,7.0,9.0,9.0,8.0,7.0"))
+ co.nomme_sd("F3")
+# commentaire
+ pos=pos+1
+ co=j.addentite("COMMENTAIRE",pos)
+ co.set_valeur(" 'DEFI_FONCTION', 'VALE' --> fonctionpanel ")
+#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,),);
+ pos=pos+1
+ co=j.addentite("DEFI_MATERIAU",pos)
+ mcf=co.addentite("ELAS")
+ mcs=mcf[0].get_child("E")
+ mcs.set_valeur(mcs.eval_val("100000000000.0"))
+ mcs=mcf[0].get_child("NU")
+ mcs.set_valeur(mcs.eval_val("0.0"))
+ mcf=co.addentite("ECRO_ASYM_LINE")
+ mcs=mcf[0].get_child("DC_SIGM_EPSI")
+ mcs.set_valeur(mcs.eval_val("0.0"))
+ mcs=mcf[0].get_child("DT_SIGM_EPSI")
+ mcs.set_valeur(mcs.eval_val("0.0"))
+ mcs=mcf[0].get_child("SY_C")
+ mcs.set_valeur(mcs.eval_val("200000000.0"))
+ mcs=mcf[0].get_child("SY_T")
+ mcs.set_valeur(mcs.eval_val("50000000.0"))
+ co.nomme_sd("MATER2")
+#PS1=DEFI_PARA_SENSI(VALE=1.0,);
+#PS2=DEFI_PARA_SENSI(VALE=1.0,);
+#PS3=DEFI_PARA_SENSI(VALE=1.0,);
+ pos=pos+1
+ co=j.addentite("DEFI_PARA_SENSI",pos)
+ mcs=co.get_child("VALE")
+ mcs.set_valeur(mcs.eval_val("1.0"))
+ co.nomme_sd("PS1")
+ pos=pos+1
+ co=j.addentite("DEFI_PARA_SENSI",pos)
+ mcs=co.get_child("VALE")
+ mcs.set_valeur(mcs.eval_val("1.0"))
+ co.nomme_sd("PS2")
+ pos=pos+1
+ co=j.addentite("DEFI_PARA_SENSI",pos)
+ mcs=co.get_child("VALE")
+ mcs.set_valeur(mcs.eval_val("1.0"))
+ co.nomme_sd("PS3")
+#CHMAT2=AFFE_MATERIAU(MAILLAGE=MAIL,
+# AFFE=_F(TOUT='OUI',
+# MATER=MATER2,),);
+ pos=pos+1
+ co=j.addentite("AFFE_MATERIAU",pos)
+ add_mcsimp(co,"MAILLAGE","MAIL")
+ mcf=co.get_child("AFFE")
+ add_mcsimp(mcf[0],"TOUT","OUI")
+ add_mcsimp(mcf[0],"MATER","MATER2")
+ co.nomme_sd("CHMAT2")
+#AAAZ=AFFE_CHAR_THER(MODELE=AFFE1,
+# TEMP_IMPO=_F(TOUT='OUI',
+# TEMP=0.0,),);
+ pos=pos+1
+ co=j.addentite("AFFE_CHAR_THER",pos)
+ add_mcsimp(co,"MODELE","AFFE1")
+ mcf=co.addentite("TEMP_IMPO")
+ add_mcsimp(mcf[0],"TOUT","OUI")
+ add_mcsimp(mcf[0],"TEMP","0.0")
+ co.nomme_sd("AAAZ")
+#TH1=THER_LINEAIRE(MODELE=AFFE1,
+# CHAM_MATER=CHMAT2,
+# EXCIT=_F(CHARGE=AAAZ,),
+# SENSIBILITE=(PS1,PS2,),);
+ pos=pos+1
+ co=j.addentite("THER_LINEAIRE",pos)
+ add_mcsimp(co,"MODELE","AFFE1")
+ add_mcsimp(co,"CHAM_MATER","CHMAT2")
+ mcf=co.get_child("EXCIT")
+ add_mcsimp(mcf[0],"CHARGE","AAAZ")
+ add_mcsimp(co,"SENSIBILITE","PS1,PS2")
+ co.nomme_sd("TH1")
+# commentaire
+ pos=pos+1
+ co=j.addentite("COMMENTAIRE",pos)
+ co.set_valeur(" 'THER_LINEAIRE', 'SENSIBILITE' --> plusieursassdpanel")
+#ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1,
+# PRES_IMPO=_F(TOUT='OUI',
+# PRES=('RI',3.0,3.0,),),);
+ pos=pos+1
+ co=j.addentite("AFFE_CHAR_ACOU",pos)
+ add_mcsimp(co,"MODELE","AFFE1")
+ mcf=co.addentite("PRES_IMPO")
+ add_mcsimp(mcf[0],"TOUT","OUI")
+ add_mcsimp(mcf[0],"PRES","'RI',3.0,3.0")
+ co.nomme_sd("ACA1")
+# commentaire
+ pos=pos+1
+ co=j.addentite("COMMENTAIRE",pos)
+ co.set_valeur(" 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel")
+
+# 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel
+
+#MACRO_MATR_ASSE(MODELE=AFFE1,
+# NUME_DDL=CO('DDL1'),
+# MATR_ASSE=_F(MATRICE=CO('MAT1'),
+# OPTION='RIGI_THER',),);
+ pos=pos+1
+ co=j.addentite("MACRO_MATR_ASSE",pos)
+ add_mcsimp(co,"MODELE","AFFE1")
+ mcs=co.get_child("NUME_DDL")
+ mcs.set_valeur_co('DDL1')
+ mcf=co.get_child("MATR_ASSE")
+ add_mcsimp(mcf[0],"OPTION","RIGI_THER")
+ mcs=mcf[0].get_child("MATRICE")
+ mcs.set_valeur_co('MAT1')
+# commentaire
+ pos=pos+1
+ co=j.addentite("COMMENTAIRE",pos)
+ co.set_valeur(" 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE' --> uniquesdcopanel")
+
+ assert j.isvalid(),j.report()
+
+ text1=app.get_text_JDC(j,'python')
+ file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm")
+ f=open(file)
+ text2=f.read()
+ f.close()
+ assert text1 == text2 , cdiff(text1,text2)
+
+ def test001(self):
+ """ Test de construction d'un fichier de commandes avec DEFI_LIST_REEL, fonction et parametre de zero"""
+
+ app=appli.STANDALONE(version='v7')
+ j=app.newJDC()
+# commande DEBUT
+ co=j.addentite("DEBUT",0)
+# commande FIN
+ co=j.addentite("FIN",1)
+#parametre
+ pos=0
+ pos=pos+1
+ co=add_param(j,pos,"P1","9.8")
+ pos=pos+1
+ co=add_param(j,pos,"P2","sin(P1)")
+# formule
+ pos=pos+1
+ co=j.addentite("FORMULE",pos)
+ co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
+#parametre de formule
+ pos=pos+1
+ co=add_param(j,pos,"P3","aaa(P1,2.)")
+#commande defi_list_reel
+ pos=pos+1
+ co=j.addentite("DEFI_LIST_REEL",pos)
+ add_mcsimp(co,"VALE","1.,2.,3.")
+ co.nomme_sd("LI1")
+#commande defi_list_reel
+ pos=pos+1
+ co=j.addentite("DEFI_LIST_REEL",pos)
+ add_mcsimp(co,"VALE","sin(1.)")
+ co.nomme_sd("LI2")
+#commande defi_list_reel
+ pos=pos+1
+ co=j.addentite("DEFI_LIST_REEL",pos)
+ add_mcsimp(co,"VALE","aaa(1.,2.)")
+ co.nomme_sd("LI3")
+#commande defi_list_reel
+ pos=pos+1
+ co=j.addentite("DEFI_LIST_REEL",pos)
+ add_mcsimp(co,"VALE","sin(1.,2)")
+ co.nomme_sd("LI4")
+#commande defi_list_reel
+ pos=pos+1
+ co=j.addentite("DEFI_LIST_REEL",pos)
+ add_mcsimp(co,"VALE","aaa(1.)")
+ co.nomme_sd("LI5")
+#commande defi_list_reel
+ pos=pos+1
+ co=j.addentite("DEFI_LIST_REEL",pos)
+ add_mcsimp(co,"VALE","1,sin(1.),2")
+ co.nomme_sd("LI6")
+
+ expected="""DEBUT CR validation : SansNom
+ Etape : DEFI_LIST_REEL ligne : ...
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! Concept retourné non défini !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ Mot-clé simple : VALE
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! 'sin(1.,2)' n'est pas d'un type autorisé: ('R',) !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ Fin Mot-clé simple : VALE
+ Fin Etape : DEFI_LIST_REEL
+ Etape : DEFI_LIST_REEL ligne : ...
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! Concept retourné non défini !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ Mot-clé simple : VALE
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! 'aaa(1.)' n'est pas d'un type autorisé: ('R',) !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ Fin Mot-clé simple : VALE
+ Fin Etape : DEFI_LIST_REEL
+FIN CR validation :SansNom
+"""
+ msg=str( j.report())
+ assert compare.check(expected,msg),cdiff(expected,msg)
--- /dev/null
+# -*- 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("<Return>")
+ 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("<Enter>")
+ root.event_generate("<KeyPress-Return>")
+ 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("<Return>")
+ root.update()
+ label=panel.liste_command.dico_labels[nom]
+ label.event_generate("<Enter>")
+ label.event_generate("<Return>")
+ #root.event_generate("<Return>")
+ 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("<Return>")
+ panel.entry_val.delete(0,"end")
+ panel.entry_val.insert(0,valeur)
+ panel.entry_val.event_generate("<Return>")
+ 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("<Return>")
+ panel.entry_arg.delete(0,"end")
+ panel.entry_arg.insert(0,args)
+ panel.entry_arg.event_generate("<Return>")
+ panel.entry_exp.delete(0,"end")
+ panel.entry_exp.insert(0,expr)
+ panel.entry_exp.event_generate("<Return>")
+ 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("<Button-1>")
+ label.event_generate("<Return>")
+ 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("<Return>")
+ 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("<Return>")
+ 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("<Return>")
+ root.update()
+
+def set_complexe(valeur,panel):
+ panel.entry3.setentry(valeur)
+ panel.entry3.component('entry').focus_set()
+ panel.entry3.event_generate("<Return>")
+ 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("<Return>")
+ root.update()
+
+def valider_valeur(panel):
+ panel.bouton_accepter.invoke()
+ root.update()
+
+def copier_coller():
+ root.event_generate("<Control-c>")
+ root.event_generate("<Control-v>")
+ root.update()
+ return jdcdisplay.panel_courant
+
--- /dev/null
+# -*- 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()
--- /dev/null
+# -*- 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()
--- /dev/null
+# -*- 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()
--- /dev/null
+# -*- 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("<Return>")
+ 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("<Enter>")
+ root.event_generate("<KeyPress-Return>")
+ 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("<Return>")
+ root.update()
+ label=panel.liste_command.dico_labels[nom]
+ label.event_generate("<Enter>")
+ label.event_generate("<Return>")
+ #root.event_generate("<Return>")
+ 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("<Return>")
+ panel.entry_val.delete(0,"end")
+ panel.entry_val.insert(0,valeur)
+ panel.entry_val.event_generate("<Return>")
+ 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("<Return>")
+ panel.entry_arg.delete(0,"end")
+ panel.entry_arg.insert(0,args)
+ panel.entry_arg.event_generate("<Return>")
+ panel.entry_exp.delete(0,"end")
+ panel.entry_exp.insert(0,expr)
+ panel.entry_exp.event_generate("<Return>")
+ 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("<Button-1>")
+ label.event_generate("<Return>")
+ 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("<Return>")
+ 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("<Return>")
+ 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("<Return>")
+ root.update()
+
+def set_complexe(valeur,panel):
+ panel.entry3.setentry(valeur)
+ panel.entry3.component('entry').focus_set()
+ panel.entry3.event_generate("<Return>")
+ 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("<Return>")
+ root.update()
+
+def valider_valeur(panel):
+ panel.bouton_accepter.invoke()
+ root.update()
+
+def copier_coller():
+ root.event_generate("<Control-c>")
+ root.event_generate("<Control-v>")
+ root.update()
+ return jdcdisplay.panel_courant
+
--- /dev/null
+# -*- 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()
--- /dev/null
+# -*- 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()
--- /dev/null
+# -*- 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()
--- /dev/null
+# -*- 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()
"DEFI_MATERIAU_COMP_THM_LIQU_SATU_GAT" : "le materiau LIQU_SATU_GAT a ete supprime",
"DEFI_MATERIAU_COMP_THM_LIQU_NSAT_GAT" : "le materiau LIQU_NSAT_GAT a ete supprime",
"DEFI_MATERIAU_GLRC" : "le materiau GLRC a ete remplace par GLRC_DAMAGE",
+ "DEFI_MATERIAU_GLRC_FO" : "le materiau GLRC_FO a ete remplace par GLRC_DAMAGE",
"DEFI_MATERIAU_OHNO" : "le materiau OHNO a ete remplace par TAHERI",
"DEFI_MATERIAU_OHNO_FO" : "le materiau OHNO a ete remplace par TAHERI",
"CALC_CHAM_ELEM":"reecrire la partie SOUR_ELGA_ELEC",
"DYNA_NON_LINE_INCREMENT_SUBD_PAS":"Si SUBD_PAS=1 il n'y a pas subdivision : le mot est clef est ote du DYNA_NON_LINE",
"CALC_PRECONT_SUBD_PAS":"Si SUBD_PAS=1 il n'y a pas subdivision : le mot est clef est ote du CALC_PRECONT",
"TEST_RESU_UNITE":"suppression du mot clef UNITE dans TEST_RESU",
- "AFFE_MODELE_AFFE":"suppression de AFFE (ancien mot clef APPUI_REP)",
"POST_SIMPLIFIE":"commande POST_SIMPLIFIE supprimee",
"POST_DYNA_ALEA_GAUSS":"la methode GAUSS a ete supprimee de POST_DYNA_ALEA",
"POST_DYNA_ALEA_VANMARCKE":"la methode VANMARCKE a ete supprimee de POST_DYNA_ALEA",
"CREA_RESU_NOM_CHAM_VALEUR":"HYDR_ELGA est remplace par HYDR_ELNO_ELGA et HYDR_NOEU_ELGA",
"COMB_CHAM_NO":"COMB_CHAM_NO est remplace par CREA_CHAMP",
"COMB_CHAM_ELEM":"COMB_CHAM_ELEM est remplace par CREA_CHAMP",
- "IMPR_OAR":"IMPR_OAR doit etre traduit manuellement",
+ "IMPR_OAR":"IMPR_OAR demande un traitement manuel",
"IMPR_FICO_HOMARD":"IMPR_FICO_HOMARD a ete integre dans MACR_ADPA_MAIL",
}
indice = -1
while texte[indice] == " " :
indice = indice -1
- if texte[indice] != "," : texte=texte+","
+ if texte[indice] != "," :
+ texte=texte+","
+ if (texte.find("#") > -1) and (texte.find("#") < texte.find(",")) :
+ texte=texte+"\n,"
+
texteinfo=texte
texte=texte+"\n"
# -*- coding: utf-8 -*-
import logging
+import os
logger=logging.getLogger()
-def initialise() :
- hdlr=logging.FileHandler('/tmp/convert.log','w')
+def initialise(flog=None):
+ if flog == None :
+ MonHome=os.environ['HOME']
+ MaDir=MonHome+"/Eficas_install"
+ try :
+ os.mkdir(MaDir)
+ except :
+ pass
+ try :
+ os.listdir(MaDir)
+ flog=MaDir+"/convert.log"
+ except :
+ flog='/tmp/convert.log'
+
+ hdlr=logging.FileHandler(flog,'w')
formatter = logging.Formatter('%(levelname)s: %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
-DEBUT()
-
-MAIL=LIRE_MAILLAGE( )
-
-#
-# DEFINITION DES GROUPES DE NOEUDS
-MAIL=DEFI_GROUP( reuse=MAIL, MAILLAGE=MAIL,CREA_GROUP_NO=(
- _F( GROUP_MA = 'ENCAST'),
- _F( GROUP_MA = 'CONT_PR'),
- _F( GROUP_MA = ( 'B', 'SECT_MED', )))
- )
-
-MAIL=DEFI_GROUP( CREA_GROUP_NO=[
- _F( GROUP_MA = 'ENCAST',INFO=2),
- _F( GROUP_MA = 'CONT_PR'),
- _F( GROUP_MA = ( 'B', 'SECT_MED', ))]
- )
-#
-# DEFINITION DU MODELE
-MODELE=AFFE_MODELE( MAILLAGE=MAIL,
- AFFE=_F( TOUT = 'OUI',
- PHENOMENE = 'MECANIQUE',
- MODELISATION = 'AXIS_FOURIER') )
-
-#
-# DEFINITION DU MATERIAU
-ACIER=DEFI_MATERIAU( ELAS= _F( E = 2.1E11, NU = 0.3,
- ALPHA = 1.E-5, RHO = 7800.) #comment
- #comment
- )
-
-#
-# ATTRIBUTION DU MATERIAU
-CHMAT=AFFE_MATERIAU( MAILLAGE =MAIL,
- AFFE=_F( TOUT = 'OUI',
- MATER = ACIER) )
-CHMAT2=AFFE_MATERIAU( MAILLAGE =MAIL,
- AFFE=(_F( TOUT = 'OUI', MATER = ACIER),
- _F( TOUT = 'OUI', MATER = ACIER),
- _F( TOUT = 'OUI', MATER = ACIER),
- )
- )
-STAT_NONLINE(SOLVEUR=_F(METHOD="FRONT",
- PREC=1.E-3))
-STAT_NONLINE(SOLV=_F(METHOD="FRONT",
- PREC=1.E-3),
- AFFE=(_F( TOUT = 'OUI', MATER = ACIER),
- _F( TOUT = 'OUI', MATER = ACIER),
- _F( TOUT = 'OUI', MATER = ACIER),
- )
- )
-
-MA=LIRE_MAILLAGE(UNITE=20,INFO=2,TEXT="""aaaa(
-bbb""")
-"""
-MOO=AFFE_MODELE()
-"""
-MO=AFFE_MODELE(MAILLAGE=MA,
- INFO=2,
- )
-#LIRE_MAILLAGE()
-MA2=LIRE_MAILLAGE(UNITE=21)
-MA3 = LIRE_MAILLAGE ( #comment ( ]
- UNITE=23,
+# MODIF DATE 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA
+# TITRE MODIFICATION STRUCTURALE D UNE POUTRE
+# 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 = 'SDLL137A',NIV_PUB_WEB='INTERNET'),);
+
+#**********************************
+# CREATION DU MODELE EXPERIMENTAL
+#**********************************
+
+MAILEXP=LIRE_MAILLAGE(UNITE=22);
+
+MODLEXP=AFFE_MODELE(MAILLAGE=MAILEXP,
+ AFFE=_F(TOUT='OUI',
+ PHENOMENE='MECANIQUE',
+ MODELISATION='DIS_TR',),);
+
+CHCAREXP=AFFE_CARA_ELEM(MODELE=MODLEXP,
+ DISCRET=_F(GROUP_MA='POUTRE',
+ REPERE='GLOBAL',
+ CARA='K_TR_D_L',
+ VALE=(1.e+12,1.e+12,1.e+12,1.e+12,1.e+12,1.e+12,),
+ ),);
+
+KELEXP=CALC_MATR_ELEM(OPTION='RIGI_MECA',
+ MODELE=MODLEXP,
+ CARA_ELEM=CHCAREXP,
+ );
+
+MELEXP=CALC_MATR_ELEM(OPTION='MASS_MECA',
+ MODELE=MODLEXP,
+ CARA_ELEM=CHCAREXP,
+ );
+
+NUMEXP=NUME_DDL( MATR_RIGI=KELEXP,
+ );
+
+KASSEXP=ASSE_MATRICE(MATR_ELEM=KELEXP,
+ NUME_DDL=NUMEXP,);
+
+MASSEXP=ASSE_MATRICE(MATR_ELEM=MELEXP,
+ NUME_DDL=NUMEXP,);
+
+# LECTURE DES MODES IDENTIFIES
+
+MODMESU=LIRE_RESU(TYPE_RESU='MODE_MECA',
+ FORMAT='IDEAS',
+ MODELE=MODLEXP,
+ UNITE=21,
+ NOM_CHAM='DEPL',
+ MATR_A =KASSEXP,
+ MATR_B =MASSEXP,
+ FORMAT_IDEAS=_F(NOM_CHAM='DEPL',
+ NUME_DATASET=55,
+ RECORD_6=(1,2,3,8,2,6,),
+ POSI_ORDRE=(7,4,),
+ POSI_NUME_MODE=(7,4),
+ POSI_FREQ=(8,1,),
+ POSI_MASS_GENE=(8,2),
+ POSI_AMOR_GENE=(8,3),
+ NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'),),
+ TOUT_ORDRE='OUI',);
+
+# TRI EVENTUEL
+
+MODEIDE=EXTR_MODE(FILTRE_MODE=_F(MODE=MODMESU,
+ NUME_MODE=(1,2,3,4,5,),
+ ),);
+
+#********************************
+# CREATION MODELE SUPPORT
+#********************************
+
+MAILSUP=LIRE_MAILLAGE(UNITE=20);
+
+MODLSUP=AFFE_MODELE(MAILLAGE=MAILSUP,
+ AFFE=(_F(GROUP_MA=('POUTRE','VISUAL',),
+ PHENOMENE='MECANIQUE',
+ MODELISATION='POU_D_E',),),)
+
+MATSUP=DEFI_MATERIAU(ELAS=_F(E=2.1E11,
+ NU=0.3,
+ RHO=7800.,),);
+
+CHMATSUP=AFFE_MATERIAU(MAILLAGE=MAILSUP,
+ MODELE=MODLSUP,
+ AFFE=(_F(GROUP_MA='POUTRE',
+ MATER=MATSUP,),),);
+
+CHCARSUP=AFFE_CARA_ELEM(MODELE=MODLSUP,
+ POUTRE=(_F(GROUP_MA='POUTRE',
+ SECTION='RECTANGLE',
+ CARA=('HY','HZ',),
+ VALE=(9.E-3,38.E-3,),),),
+ ORIENTATION=(_F(GROUP_MA='POUTRE',
+ CARA='VECT_Y',
+ VALE=(0.,0.,1.),),),
+ )
+
+CONDLSUP=AFFE_CHAR_MECA(MODELE=MODLSUP,
+ DDL_IMPO=( _F(GROUP_NO=('FIXE',),
+ DX=0.0,
+ DY=0.0,
+ DZ=0.0,
+ DRX=0.0,
+ DRY=0.0,
+ DRZ=0.0,),
+ ),);
+
+KELSUP=CALC_MATR_ELEM(OPTION='RIGI_MECA',
+ MODELE=MODLSUP,
+ CHAM_MATER=CHMATSUP,
+ CARA_ELEM=CHCARSUP,
+ CHARGE=CONDLSUP,);
+
+MELSUP=CALC_MATR_ELEM(OPTION='MASS_MECA',
+ MODELE=MODLSUP,
+ CHAM_MATER=CHMATSUP,
+ CARA_ELEM=CHCARSUP,
+ CHARGE=CONDLSUP,);
+
+NUMSUP=NUME_DDL(MATR_RIGI=KELSUP,);
+
+KASSUP=ASSE_MATRICE(MATR_ELEM=KELSUP,
+ NUME_DDL=NUMSUP,);
+
+MASSUP=ASSE_MATRICE(MATR_ELEM=MELSUP,
+ NUME_DDL=NUMSUP,);
+
+MODESUP=MODE_ITER_SIMULT(MATR_A=KASSUP,
+ MATR_B=MASSUP,
+ VERI_MODE=_F(SEUIL=1.E-05,STOP_ERREUR='OUI',),
+ CALC_FREQ=_F(OPTION='PLUS_PETITE',
+ NMAX_FREQ=20,
+ SEUIL_FREQ=1.E-4,),);
+
+MODSTSUP=MODE_STATIQUE(MATR_RIGI=KASSUP,
+ FORCE_NODALE=(
+ _F(GROUP_NO='CAPTEUR',AVEC_CMP=('DY','DZ',),),
+ ),);
+
+BASEMO=DEFI_BASE_MODALE(RITZ=(
+ _F(MODE_MECA=MODESUP,NMAX_MODE=0,),
+ _F(MODE_STAT=MODSTSUP,NMAX_MODE=8,),
+ ),
+ NUME_REF=NUMSUP,);
+
+#********************************
+# CORRESPONDANCE MESURE - SUPPORT
+#********************************
+
+PROJ=PROJ_MESU_MODAL(MODELE_CALCUL=_F(MODELE=MODLSUP,
+ BASE=BASEMO,),
+ MODELE_MESURE=_F(MODELE=MODLEXP,
+ MESURE=MODEIDE,
+ NOM_CHAM='DEPL',),
+ RESOLUTION=_F(METHODE='SVD',
+ EPS=1.E-5),
+ );
+
+# CONDENSATION DE LA MESURE SUR DDL INTERFACES
+
+SSEXP = MACR_ELEM_STAT(
+ DEFINITION=_F(MODELE=MODLSUP,
+ PROJ_MESU=PROJ,MODE_MESURE=MODEIDE,
+ CARA_ELEM =CHCARSUP,CHAM_MATER=CHMATSUP,
+ ),
+ EXTERIEUR=_F(GROUP_NO = ('EXTERNE',),),
+ RIGI_MECA=_F(),
+ MASS_MECA=_F(),
+ )
+
+MAILCOND=DEFI_MAILLAGE(
+ DEFI_SUPER_MAILLE=_F( MACR_ELEM_STAT = SSEXP,SUPER_MAILLE='SUMAIL',),
+ DEFI_NOEUD=_F( TOUT = 'OUI', INDEX = (1,0,1,8,))
+ )
+
+#**********************************
+# CREATION DU MODELE COUPLE (MESURE + MODIFICATION)
+#**********************************
+
+MAILX=LIRE_MAILLAGE(UNITE=24);
+
+MAILCPL=ASSE_MAILLAGE(
+ MAILLAGE_1=MAILCOND,
+ MAILLAGE_2=MAILX,
+ OPERATION='SOUS_STR'
+ )
+
+MODLCPL=AFFE_MODELE(
+ MAILLAGE=MAILCPL,
+ AFFE=(_F(GROUP_MA=('POUTRE',),
+ PHENOMENE='MECANIQUE',
+ MODELISATION='POU_D_E',),),
+ AFFE_SOUS_STRUC=_F( SUPER_MAILLE = 'SUMAIL',
+ PHENOMENE='MECANIQUE',),
+ )
+
+CHCARCPL=AFFE_CARA_ELEM(MODELE=MODLCPL,
+ POUTRE=(_F(GROUP_MA='POUTRE',
+ SECTION='RECTANGLE',
+ CARA=('HY','HZ',),
+ VALE=(9.E-3,38.E-3,),),),
+ ORIENTATION=(_F(GROUP_MA='POUTRE',
+ CARA='VECT_Y',
+ VALE=(0.,0.,1.),),),
+ )
+
+MATERX=DEFI_MATERIAU(ELAS=_F(E=2.1E11,
+ NU=0.3,
+ RHO=7800.,),);
+
+CHMATCPL=AFFE_MATERIAU( MAILLAGE=MAILCPL,
+ AFFE=(_F(GROUP_MA=('POUTRE',),
+ MATER=MATERX,),),);
+
+CONDLCPL=AFFE_CHAR_MECA(MODELE=MODLCPL,
+ DDL_IMPO=( _F(GROUP_NO=('EXTERNE',),
+ DX=0.0,
+ DRX=0.0,
+ ),),);
+
+KELCPL=CALC_MATR_ELEM(MODELE=MODLCPL,OPTION='RIGI_MECA',
+ CARA_ELEM=CHCARCPL,CHAM_MATER=CHMATCPL,
+ CHARGE=CONDLCPL,
)
-MA4 = LIRE_MAILLAGE ( #commentaire commande
- UNITE
- =
- 24
- ,INFO=2 #commentaire mocle INFO
- ) #commentaire fin commande
-M5=LIRE_MAILLAGE ( #comment commande
-)
-a[2*(i+1)]=LIRE_MAILLAGE(UNITE=21)
+
+MELCPL=CALC_MATR_ELEM(MODELE=MODLCPL,OPTION='MASS_MECA',
+ CARA_ELEM=CHCARCPL,CHAM_MATER=CHMATCPL,
+ CHARGE=CONDLCPL,
+ )
+
+NUMCPL=NUME_DDL(MATR_RIGI=KELCPL,)
+
+KASCPL=ASSE_MATRICE(MATR_ELEM=KELCPL,NUME_DDL=NUMCPL)
+
+MASCPL=ASSE_MATRICE(MATR_ELEM=MELCPL,NUME_DDL=NUMCPL)
+
+# CALCUL MODAL SUR LE MODELE COUPLE
+
+MODECPL=MODE_ITER_SIMULT(MATR_A=KASCPL,MATR_B=MASCPL,
+ VERI_MODE=_F(SEUIL=1.E-05,STOP_ERREUR='OUI',),
+ CALC_FREQ=_F(OPTION='PLUS_PETITE',
+ NMAX_FREQ=2,
+ SEUIL_FREQ=1.E-4,),);
+
+# RETROPROJECTION SUR LE MODELE EXPERIMENTAL (INTERFACE -> DDL MESURE)
+
+MODERETR=DEPL_INTERNE(DEPL_GLOBAL=MODECPL,SUPER_MAILLE='SUMAIL')
+
+#**********************************
+# INDICATEUR SUR CHOIX DE BASE DE PROJECTION
+# COMPARAISON CHAMP INTERFACE <> CHAMP OBTENU PAR EXPANSION STATIQUE AUX INTERFACES
+#**********************************
+
+# CREATION MODELE FICTIF DE L INTERFACE
+
+MAILINT=LIRE_MAILLAGE(UNITE=26);
+
+MODLINT=AFFE_MODELE(MAILLAGE=MAILINT,
+ AFFE=_F(GROUP_MA='VISUAL',
+ PHENOMENE='MECANIQUE',
+ MODELISATION='DIS_TR',),);
+
+CHCARINT=AFFE_CARA_ELEM(MODELE=MODLINT,
+ DISCRET=_F(GROUP_MA='VISUAL',
+ REPERE='GLOBAL',
+ CARA='K_TR_D_L',
+ VALE=(1e+12,1e+12,1e+12,1e+12,1e+12,1e+12,),
+ ),);
+
+KELINT=CALC_MATR_ELEM(OPTION='RIGI_MECA',
+ MODELE=MODLINT,
+ CARA_ELEM=CHCARINT,
+ );
+
+NUMINT=NUME_DDL( MATR_RIGI=KELINT,);
+
+# EXPANSION STATIQUE DU CHAMP DE DEPL AUX INTERFACES
+
+MODSTINT=MODE_STATIQUE(MATR_RIGI=KASSUP,
+ FORCE_NODALE=( _F(GROUP_NO='CAPTEUR',AVEC_CMP=('DY','DZ',),),
+ ),);
+
+BASEINT=DEFI_BASE_MODALE(RITZ=(
+ _F(MODE_MECA=MODESUP,NMAX_MODE=0,),
+ _F(MODE_STAT=MODSTINT,NMAX_MODE=4,),
+ ),
+ NUME_REF=NUMSUP,);
+
+PROJMS=PROJ_MESU_MODAL(MODELE_CALCUL=_F(MODELE=MODLSUP,
+ BASE=BASEINT,),
+ MODELE_MESURE=_F(MODELE=MODLEXP,
+ MESURE=MODERETR,
+ NOM_CHAM='DEPL',),
+ RESOLUTION=_F(METHODE='SVD',
+ EPS=1.E-5),
+ );
+
+DEPLPR=REST_BASE_PHYS(RESU_GENE=PROJMS,
+ TOUT_ORDRE='OUI',
+ NOM_CHAM ='DEPL');
+
+DEPLINT=PROJ_CHAMP(METHODE='ELEM',
+ RESULTAT=DEPLPR,
+ MODELE_1=MODLSUP,
+ MODELE_2=MODLINT,
+ NOM_CHAM='DEPL',
+ TOUT_ORDRE='OUI',
+ NUME_DDL=NUMINT,
+ VIS_A_VIS=_F(GROUP_MA_1='VISUAL',
+ GROUP_MA_2='VISUAL',),
+ );
+
+# CHAMP DE DEPL AUX INTERFACES SUR LE MODELE COUPLE
+
+DEPLXINT=PROJ_CHAMP(METHODE='ELEM',
+ RESULTAT=MODECPL,
+ MODELE_1=MODLCPL,
+ MODELE_2=MODLINT,
+ NOM_CHAM='DEPL',
+ TOUT_ORDRE='OUI',
+ NUME_DDL=NUMINT,
+ VIS_A_VIS=_F(GROUP_MA_1='VISUAL',
+ GROUP_MA_2='VISUAL',),
+ );
+
+# INDICATEUR DE PROXIMITE DES MODES
+# LA BASE DE PROJECTION EST CORRECT SI DEPLINT = DEPLXINT
+
+# LES MODES SONT PROCHES SI LES TERMES DIAG DU MAC PROCHE DE 1
+
+MACINT=MAC_MODES(BASE_1=DEPLINT,
+ BASE_2=DEPLXINT,
+ INFO =2,
+ );
+
+TEST_TABLE(TABLE=MACINT, REFERENCE='ANALYTIQUE',
+ NOM_PARA = 'MAC',
+ TYPE_TEST='SOMM',
+ CRITERE='ABSOLU',
+ VALE = 2,
+ PRECISION = 0.02)
+
+#**********************************
+# COMPARAISON AVEC CALCUL DIRECT
+#**********************************
+
+MODLDIR=AFFE_MODELE(MAILLAGE=MAILSUP,
+ AFFE=(_F(GROUP_MA=('SIMPLE','VISUAL',),
+ PHENOMENE='MECANIQUE',
+ MODELISATION='POU_D_E',),),)
+
+MATDBL=DEFI_MATERIAU(ELAS=_F(E=4.2E11,
+ NU=0.3,
+ RHO=15600.,),);
+
+CHMATDIR=AFFE_MATERIAU(MAILLAGE=MAILSUP,
+ MODELE=MODLDIR,
+ AFFE=(_F(GROUP_MA='SIMPLE',
+ MATER=MATSUP,),
+ _F(GROUP_MA='VISUAL',
+ MATER=MATDBL,),),);
+
+CHCARDIR=AFFE_CARA_ELEM(MODELE=MODLDIR,
+ POUTRE=(_F(GROUP_MA='POUTRE',
+ SECTION='RECTANGLE',
+ CARA=('HY','HZ',),
+ VALE=(9.E-3,38.E-3,),),),
+ ORIENTATION=(_F(GROUP_MA='POUTRE',
+ CARA='VECT_Y',
+ VALE=(0.,0.,1.),),),
+ )
+
+CONDLDIR=AFFE_CHAR_MECA(MODELE=MODLDIR,
+ DDL_IMPO=( _F(GROUP_NO=('FIXE',),
+ DX=0.0,
+ DY=0.0,
+ DZ=0.0,
+ DRX=0.0,
+ DRY=0.0,
+ DRZ=0.0,),
+ ),);
+
+KELDIR=CALC_MATR_ELEM(OPTION='RIGI_MECA',
+ MODELE=MODLDIR,
+ CHAM_MATER=CHMATDIR,
+ CARA_ELEM=CHCARDIR,
+ CHARGE=CONDLDIR,);
+
+MELDIR=CALC_MATR_ELEM(OPTION='MASS_MECA',
+ MODELE=MODLDIR,
+ CHAM_MATER=CHMATDIR,
+ CARA_ELEM=CHCARDIR,
+ CHARGE=CONDLDIR,);
+
+NUMDIR=NUME_DDL(MATR_RIGI=KELDIR,);
+
+KASDIR=ASSE_MATRICE(MATR_ELEM=KELDIR,
+ NUME_DDL=NUMDIR,);
+
+MASDIR=ASSE_MATRICE(MATR_ELEM=MELDIR,
+ NUME_DDL=NUMDIR,);
+
+MODEDIR=MODE_ITER_SIMULT(MATR_A=KASDIR,
+ MATR_B=MASDIR,
+ VERI_MODE=_F(SEUIL=1.E-05,STOP_ERREUR='OUI',),
+ CALC_FREQ=_F(OPTION='PLUS_PETITE',
+ NMAX_FREQ=2,
+ SEUIL_FREQ=1.E-4,),);
+
+#tmodes = aster.getvectjev("MODEDIR .FREQ ")
+#tmodes[0] = 7.7807E+0
+#tmodes[1] = 3.2852E+1
+
+TEST_RESU(RESU=(
+ _F(RESULTAT=MODECPL, NUME_ORDRE=1, PARA='FREQ',
+ VALE=7.7807E+0, CRITERE='RELATIF', PRECISION=1.E-2,
+ REFERENCE='AUTRE_ASTER',),
+ _F(RESULTAT=MODECPL, NUME_ORDRE=2, PARA='FREQ',
+ VALE=3.2852E+1, CRITERE='RELATIF', PRECISION=1.E-2,
+ REFERENCE='AUTRE_ASTER',),
+ ),);
+
+
+FIN();
+
from movemocle import *
from dictErreurs import GenereErreurPourCommande
-# Demander a emmanuel pour affe_char_ther et test_resu
import calcG
atraiter=( "IMPR_GENE","CALC_FONCTION", "DEFI_MATERIAU","STAT_NON_LINE",
"POST_SIMPLIFIE","AFFE_MATERIAU","DEFI_MAILLAGE","DEPL_INTERNE",
"POST_DYNA_ALEA","RECU_FONCTION","DYNA_TRAN_MODAL","DEFI_INTERF_DYNA",
"CALC_PRECONT","DEFI_TEXTURE","TEST_RESU","COMB_CHAM_NO","COMB_CHAM_ELEM",
- "CALC_FATIGUE","IMPR_OAR",
+ "CALC_FATIGUE","IMPR_OAR", "AFFE_CHAR_MECA_F",
"MACR_ASCOUF_CALC","MACR_ASPIC_CALC","MACR_CABRI_CALC",
- "MACR_ADAP_MAIL","IMPR_FICO_HOMARD"
+ "MACR_ADAP_MAIL","IMPR_FICO_HOMARD","DEFI_PART_FETI",
)
#atraiter=( "MACR_ADAP_MAIL",)
-def traduc(infile,outfile):
+def traduc(infile,outfile,flog=None):
- hdlr=log.initialise()
+ hdlr=log.initialise(flog)
jdc=getJDC(infile,atraiter)
root=jdc.root
####################### traitement CALC_FONCTION #######################
removeMotCleSiRegle(jdc,"CALC_FONCTION","NOM_PARA",((("MAX"),"existeMCFParmi"),))
renameCommandeSiRegle(jdc,"CALC_FONCTION","INFO_FONCTION", ((("RMS","MAX","NOCI_SEISME","NORME","ECART-TYPE"),"existeMCFParmi"),))
+ renameMotCleInFact(jdc,"CALC_FONCTION","LISS_ENVELOP","FONCTION","NAPPE")
####################### traitement IMPR_GENE #######################
moveMotCleFromFactToFather(jdc,"IMPR_GENE","GENE","UNITE")
renameMotCleAvecErreur(jdc,"DEFI_MATERIAU","OHNO","TAHERI")
renameMotCleAvecErreur(jdc,"DEFI_MATERIAU","OHNO_FO","TAHERI_FO")
renameMotCleAvecErreur(jdc,"DEFI_MATERIAU","GLRC","GLRC_DAMAGE")
+ renameMotCleAvecErreur(jdc,"DEFI_MATERIAU","GLRC_FO","GLRC_DAMAGE")
renameMotCleInFact(jdc,"DEFI_MATERIAU","GRAN_IRRA","A","GRAN_A")
renameMotCleInFact(jdc,"DEFI_MATERIAU","GRAN_IRRA","B","GRAN_B")
####################### traitement AFFE_CHAR_MECA (CONTACT) #######################
renameMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","COEF_MULT_ESCL","COEF_MULT")
renameMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","NOM_CHAM","NOM_CMP")
- renameMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","NOM_CHAM","NOM_CMP")
- renameMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","GROUP_MA_ESCL","GROUP_MA")
+ renameMotCleInFactSiRegle(jdc,"AFFE_CHAR_MECA","CONTACT","GROUP_MA_ESCL","GROUP_MA",((("CONTACT","NOM_CMP"),"existeMCsousMCF"),))
renameMotCleSiRegle(jdc,"AFFE_CHAR_MECA","CONTACT","LIAISON_UNILATER",((("CONTACT","NOM_CMP"),"existeMCsousMCF"),))
removeMotCleInFact(jdc,"AFFE_CHAR_MECA","LIAISON_UNILATER","APPARIEMENT")
+ ####################### traitement AFFE_CHAR_MECA_F (CONTACT) #######################
+ renameMotCleInFact(jdc,"AFFE_CHAR_MECA_F","CONTACT","COEF_MULT_ESCL","COEF_MULT")
+ renameMotCleInFact(jdc,"AFFE_CHAR_MECA_F","CONTACT","NOM_CHAM","NOM_CMP")
+ renameMotCleInFactSiRegle(jdc,"AFFE_CHAR_MECA_F","CONTACT","GROUP_MA_ESCL","GROUP_MA",((("CONTACT","NOM_CMP"),"existeMCsousMCF"),))
+ renameMotCleSiRegle(jdc,"AFFE_CHAR_MECA_F","CONTACT","LIAISON_UNILATER",((("CONTACT","NOM_CMP"),"existeMCsousMCF"),))
+ removeMotCleInFact(jdc,"AFFE_CHAR_MECA_F","LIAISON_UNILATER","APPARIEMENT")
+
####################### traitement CALC_G #######################
chercheOperInsereFacteurSiRegle(jdc,"CALC_G_LOCAL_T","LISSAGE",((("LISSAGE_G","LISSAGE_THETA","DEGRE"),"existeMCFParmi"),))
moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","LISSAGE_THETA","LISSAGE")
####################### traitement COMB_CHAM_NO #######################
renameMotCleInFact(jdc,"COMB_CHAM_NO","COMB_C","CHAM_NO","CHAM_GD")
chercheOperInsereFacteur(jdc,"COMB_CHAM_NO","TYPE_CHAM='xxx',",estunFacteur=0,erreur=1)
- chercheOperInsereFacteur(jdc,"COMB_CHAM_NO","MODELE='xxx',",estunFacteur=0,erreur=1)
+ chercheOperInsereFacteur(jdc,"COMB_CHAM_NO","MODELE=xxx,",estunFacteur=0,erreur=1)
chercheOperInsereFacteur(jdc,"COMB_CHAM_NO","OPERATION='ASSE',",estunFacteur=0,erreur=1)
renameMotCle(jdc,"COMB_CHAM_NO","COMB_C","ASSE")
AjouteMotClefDansFacteur(jdc,"COMB_CHAM_NO","ASSE","CUMUL='NON',")
dfatigue={"MATAKE":"MATAKE_MODI_AC", "DOMM_MAXI":"MATAKE_MODI_AV", "FATEMI_SOCIE":"FATESOCI_MODI_AV"}
ChangementValeur(jdc,"CALC_FATIGUE","CRITERE",dfatigue)
+ ####################### traitement DEFI_PART_FETI #######################
+ removeMotCleSiRegle(jdc,"DEFI_PART_FETI","MAILLAGE", ((("MODELE",),"existeMCFParmi"),(("MAILLAGE",),"existeMCFParmi")))
####################### traitement MACR_ADAP_MAIL #######################
moveMotCleFromFactToFather(jdc,"MACR_ADAP_MAIL","ADAPTATION","MAILLAGE_N")
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+"""
+usage="""usage: %prog [options]
+Typical use is:
+ python traduitV7V8.py --infile=xxxx --outfile=yyyy
+"""
+
+import log
+import optparse
+
+from load import getJDC
+from mocles import parseKeywords
+from removemocle import *
+from renamemocle import *
+from renamemocle import *
+from inseremocle import *
+from changeValeur import *
+from movemocle import *
+from dictErreurs import GenereErreurPourCommande
+
+import calcG
+
+
+atraiter=( "DEFI_MAILLAGE",)
+
+def traduc(infile,outfile,flog=None):
+
+ hdlr=log.initialise(flog)
+ jdc=getJDC(infile,atraiter)
+ root=jdc.root
+
+ #Parse les mocles des commandes
+ parseKeywords(root)
+
+ ####################### traitement erreurs ########################
+ #GenereErreurPourCommande(jdc,("POST_RCCM","DIST_LIGN_3D","IMPR_OAR","COMB_CHAM_NO","COMB_CHAM_ELEM"))
+ GenereErreurPourCommande(jdc,())
+
+ ####################### traitement CALC_META #######################
+ renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_SUPER_MAILLE","MACR_ELEM_STAT","MACR_ELEM")
+
+ #########################################################################
+
+
+ f=open(outfile,'w')
+ f.write(jdc.getSource())
+ f.close()
+
+ log.ferme(hdlr)
+
+def main():
+ parser = optparse.OptionParser(usage=usage)
+
+ parser.add_option('-i','--infile', dest="infile", default='toto.comm',
+ help="Le fichier à traduire")
+ parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
+ help="Le fichier traduit")
+
+ options, args = parser.parse_args()
+ traduc(options.infile,options.outfile)
+
+if __name__ == '__main__':
+ main()
+
-#@ MODIF V_ETAPE Validation DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF V_ETAPE Validation DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
"""
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
"""
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")
-#@ MODIF V_MACRO_ETAPE Validation DATE 22/02/2005 AUTEUR DURAND C.DURAND
+#@ MODIF V_MACRO_ETAPE Validation DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
"""
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
"""
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
-#@ MODIF V_MCSIMP Validation DATE 16/05/2006 AUTEUR DURAND C.DURAND
+#@ MODIF V_MCSIMP Validation DATE 16/05/2007 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
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
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
""",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=""
#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
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={}
liste de chaines de caractères dans une syntaxe représentative d'un
jeu de commandes en un texte présentable
"""
-import types,string
+import types,string,re
class Formatage :
"""
self.l_max = 72
def formate_jdc(self):
+ comment=re.compile("\n#")
+ commentaireavant=0
for etape in self.l_jdc:
self.count = self.count+1
self.texte_etape = ''
# L'etape est deja sous forme de chaine de caracteres
self.indent=[]
self.texte_etape = etape
- self.jdc_fini = self.jdc_fini + '\n' + self.texte_etape
- #on enleve la premiere ligne si elle est blanche :
+
+ m=comment.match(self.texte_etape)
+ # si ce n est pas la premiere ligne
+ if self.jdc_fini != "" :
+ # si il n y avait pas de commentaire avant on met un saut de ligne
+ if commentaireavant == 0 :
+ self.jdc_fini = self.jdc_fini + '\n' + self.texte_etape
+ else :
+ self.jdc_fini = self.jdc_fini + self.texte_etape
+ # si c est la premiere ligne
+ else :
+ # on ne met pas de saut de ligne avant la premiere ligne
+ # si c est un commentaire on enleve le saut de ligne precedent
+ if m : self.texte_etape=self.texte_etape[1:]
+ self.jdc_fini = self.texte_etape
+ if m :
+ commentaireavant=1
+ else :
+ commentaireavant=0
+
return self.jdc_fini
import types,string
from Noyau import N_CR
-from Accas import MCSIMP,MCFACT
+from Accas import MCSIMP,MCFACT,MCList
def entryPoint():
"""
"""
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
import types,string
from Noyau import N_CR
-from Accas import MCSIMP,MCFACT
+from Accas import MCSIMP,MCFACT,MCList
def entryPoint():
"""
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
place (dépend des gouts !!!)
"""
# ATTENTION a l'ordre des tests : il peut avoir de l'importance (héritage)
- premier=1
if isinstance(obj,Accas.PROC_ETAPE):
return self.generPROC_ETAPE(obj)
# Attention doit etre placé avant MACRO (raison : héritage)
elif isinstance(obj,Accas.ETAPE_NIVEAU):
return self.generETAPE_NIVEAU(obj)
elif isinstance(obj,Accas.COMMENTAIRE):
- return self.generCOMMENTAIRE(obj,premier)
+ return self.generCOMMENTAIRE(obj)
# Attention doit etre placé avant PARAMETRE (raison : héritage)
elif isinstance(obj,Accas.PARAMETRE_EVAL):
return self.generPARAMETRE_EVAL(obj)
return self.generFormula(obj)
else:
raise "Type d'objet non prévu",obj
- premier=0
def generJDC(self,obj):
"""
"""
return 'EVAL("""'+ obj.valeur +'""")'
- def generCOMMENTAIRE(self,obj,premier=0):
+ def generCOMMENTAIRE(self,obj):
"""
Cette méthode convertit un COMMENTAIRE
en une liste de chaines de caractères à la syntaxe python
txt = txt + '#'+ligne+'\n'
# suppression du dernier saut de ligne
- txt = re.sub("\n$","",txt)
+ #txt = re.sub("\n$","",txt)
# on ajoute un saut de ligne avant
pattern=re.compile(" ?\#")
m=pattern.match(txt)
- if m and not premier:
+ if m:
txt="\n"+txt
return txt
l.append(data)
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 :
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)
return s
-
def generMCSIMP(self,obj) :
"""
Convertit un objet MCSIMP en une liste de chaines de caractères à la