branch.
--- /dev/null
+import os
+import aide_objets
+import aide_gui
+import viewer
+
+def go(fichier=None,master=None):
+ if not fichier :
+ fichier=os.path.join(os.path.dirname(__file__),"fichiers","index.html")
+ o=viewer.HTMLViewer(master)
+ o.display(fichier)
+ return o
+
+def go2(fichier=None,master=None):
+ if not fichier :
+ fichier=os.path.join(os.path.dirname(__file__),"index_aide.py")
+ index = aide_objets.INDEX(fichier)
+ index.build()
+ o = aide_gui.AIDE_GUI(index,master=master)
+ o.build()
+ return o
--- /dev/null
+"""
+Ce module génère l'IHM permettant d'accéder à l'aide en ligne d'une application(ex: EFICAS)
+Il analyse l'objet index passé en argument et génére automatiquement en conséquence le menu
+avec liens hyper texte
+"""
+
+from Tkinter import *
+
+class AIDE_GUI:
+ """
+ Classe définissant l'IHM de l'appli d'aide
+ """
+ def __init__(self,objet,master=None):
+ self.objet = objet
+ self.master = master
+ self.init()
+ self.init_window()
+ self.init_frames()
+ self.init_buttons()
+ self.init_text()
+
+ def init(self):
+ """
+ Initialise les structures de données utlisées par l'objet
+ """
+ self.padx = [0,0,0,0]
+ self.padx[0] = 0
+ self.padx[1] = 30
+ self.padx[2] = 50
+ self.historique = []
+
+ def init_window(self):
+ """
+ Initialise la fenêtre mère de l'appli
+ """
+ fenetre = Toplevel()
+ if self.master :
+ self.fenetre = fenetre
+ else:
+ self.fenetre = fenetre.master
+ fenetre.destroy()
+ self.fenetre.title(self.objet.titre)
+ self.fenetre.geometry("700x700+50+50")
+ self.fenetre.resizable(1,1)
+ #self.fenetre.minsize(600,800)
+ #self.fenetre.maxsize(900,800)
+ self.fenetre.protocol("WM_DELETE_WINDOW",self.quit)
+ self.fenetre.update()
+
+ def init_frames(self):
+ """
+ Initialise les frames principales de l'appli
+ """
+ self.frame1 = Frame(self.fenetre,relief='flat',bd=2)
+ self.frame2 = Frame(self.fenetre,relief='flat',bd=2)
+ self.frame1.grid(row=0,column=0,sticky='news')
+ self.frame2.grid(row=1,column=0,sticky='news')
+ self.fenetre.grid_columnconfigure(0,weight=1,minsize=0)
+ self.fenetre.grid_rowconfigure(1,minsize=30)
+ self.fenetre.grid_rowconfigure(0,weight=1,minsize=0)
+
+ def init_buttons(self):
+ """
+ Crée les boutons dans le bas de la fenêtre
+ """
+ self.b_retour = Button(self.frame2,text = "Précédent",command=self.go_back)
+ self.b_retour.place(relx=0.33,rely=0.5,anchor='center')
+ Button(self.frame2,text="Fermer",command=self.quit).place(relx=0.66,rely=0.5,anchor='center')
+
+
+ def init_text(self):
+ """
+ Construit le widget Text qui accueillera l'index et les fichiers
+ """
+ self.scroll_v = Scrollbar(self.frame1)
+ self.scroll_v.grid(row=0,column=1,rowspan=2,sticky='nesw')
+ self.scroll_h = Scrollbar(self.frame1,orient='horizontal')
+ self.scroll_h.grid(row=1,column=0,rowspan=2,sticky='nesw')
+ self.canvas = Canvas(self.frame1,
+ bg='white',
+ relief='sunken',
+ scrollregion=(0,0,1000,1000),
+ yscrollcommand=self.scroll_v.set,
+ xscrollcommand=self.scroll_h.set)
+ self.canvas.grid(row=0,column=0,sticky='nesw')
+ self.scroll_v.configure(command=self.canvas.yview)
+ self.scroll_h.configure(command=self.canvas.xview)
+ self.frame1.grid_columnconfigure(0,weight=1,minsize=0)
+ self.frame1.grid_rowconfigure(0,weight=1,minsize=0)
+ self.frame1.grid_rowconfigure(1,minsize=10)
+ self.frame1.grid_columnconfigure(1,minsize=10)
+
+ def build(self):
+ """
+ Lance la construction dynamique de l'index en hyper texte
+ """
+ self.frame1.update_idletasks()
+ largeur = self.frame1.winfo_width()
+ self.canvas.create_rectangle(0,0,1,1,outline='white')
+ self.y_courant = 0
+ # Construction du titre encadré d'une bordure
+ titre = self.canvas.create_text(int(largeur/2),50,anchor='center',text=self.objet.titre,font="Helvetica 12 bold")
+ bbox = self.canvas.bbox(titre)
+ bordure = self.canvas.create_rectangle(bbox[0]-5,bbox[1]-5,bbox[2]+5,bbox[3]+5,
+ outline = 'black',
+ fill = 'grey75')
+ self.canvas.lower(bordure)
+ self.y_courant += 100
+ # Construction des items
+ for item in self.objet.l_items :
+ self.build_item(item,0)
+ # Affichage du texte dans le fichier associé (s'il existe)
+ if self.objet.fichier :
+ try:
+ texte=open(self.objet.fichier,'r').read()
+ except:
+ texte="Fichier %s inaccessible" % self.objet.fichier
+ self.canvas.create_text(10,self.y_courant+20,
+ text=texte,
+ anchor='nw')
+ # Configuration dynamique des boutons
+ self.config_boutons()
+ #
+ self.canvas.config(scrollregion=self.canvas.bbox('all'))
+
+ def config_boutons(self):
+ """
+ Activation du bouton précédent s'il y a lieu
+ """
+ if self.historique :
+ self.b_retour.config(state='normal')
+ else :
+ self.b_retour.config(state='disabled')
+
+ def build_item(self,item,padx):
+ """
+ Affiche l'item dans le menu décalé de padx
+ """
+ l = Label(self.canvas,
+ text=item.titre,
+ foreground = 'blue',
+ background='white',
+ font="Helvetica 12 bold")
+ l.bind("<Button-1>",lambda e,s=self,o=item : s.update_objet(o))
+ l.bind("<Enter>",lambda e,s=self,o=l : s.select_label(o))
+ l.bind("<Leave>",lambda e,s=self,o=l : s.deselect_label(o))
+ self.canvas.create_window(self.padx[padx],self.y_courant,window=l,anchor='w')
+ self.y_courant += 20
+ for sub_item in item.l_items :
+ self.build_item(sub_item,padx+1)
+
+ def show_file(self,fichier):
+ """
+ Affiche le fichier passé en argument
+ """
+ print "on veut afficher :",fichier
+
+ def select_label(self,label):
+ """
+ Callback invoqué lorsque le label passé en argument est sélectionné
+ """
+ label.config(fg='white',bg='blue')
+
+ def deselect_label(self,label):
+ """
+ Callback invoqué lorsque le label passé en argument est sélectionné
+ """
+ label.config(bg='white',fg='blue')
+
+ def go_back(self):
+ """
+ Affiche l'item précédent
+ """
+ self.update_objet(self.historique[-1])
+ self.historique = self.historique[0:-1]
+ # Configuration dynamique des boutons
+ self.config_boutons()
+
+ def update_objet(self,new_objet):
+ """
+ Cette méthode remplace l'objet courant par new_objet.
+ Elle vide le widget text et affiche le nouvel objet
+ """
+ if not self.historique :
+ self.historique.append(self.objet)
+ elif new_objet is not self.historique[-1] :
+ self.historique.append(self.objet)
+ self.objet = new_objet
+ self.canvas.delete('all')
+ self.build()
+
+ def quit(self):
+ """
+ Ferme l'appli Aide
+ """
+ self.fenetre.destroy()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null
+"""
+Ce module génère un objet INDEX par lecture et interprétation du fichier texte
+le décrivant (ex : index_aide.py)
+"""
+
+import os
+
+class ITEM_INDEX :
+ """
+ Construit un objet ITEM_INDEX
+ """
+ def __init__(self,t_item):
+ self.t_item = t_item
+ self.init()
+
+ def init(self):
+ """
+ Initialise les structures de données de l'item
+ """
+ self.titre = ""
+ self.fichier = ""
+ self.l_items = []
+
+ def build(self):
+ """
+ Construit les sous-items de self s'il y a lieu et retoruve le label et le fichier de l'item
+ dans le tuple
+ """
+ self.titre = self.t_item[0]
+ self.fichier = self.t_item[1]
+ l_items = self.t_item[2]
+ if l_items :
+ for item in l_items :
+ o = ITEM_INDEX(item)
+ o.build()
+ self.l_items.append(o)
+
+class INDEX :
+ """
+ Construit un objet INDEX (non graphique) à partir de l'interprétation du fichier d'index
+ (type index_aide.py) passé en argument
+ """
+ def __init__(self,fichier_index):
+ self.fichier_index = fichier_index
+ self.init()
+
+ def init(self):
+ """
+ Initialise les structures de données propres à l'index
+ """
+ self.titre = ""
+ self.fichier = None
+ self.l_items = []
+
+ def build(self):
+ """
+ Lit le fichier index et l'interprète
+ """
+ txt = open(self.fichier_index,'r').read()
+ d = {}
+ d['repertoire']=os.path.dirname(self.fichier_index)
+ #txt = "items ="+txt
+ #print txt
+ exec txt in d
+ items = d.get("items",None)
+ if items :
+ self.titre = items[0]
+ self.fichier = items[1]
+ l_items = items[2]
+ for item in l_items :
+ o = ITEM_INDEX(item)
+ o.build()
+ self.l_items.append(o)
+
+
+
--- /dev/null
+
+
+1- Installation standard
+
+Pour installer EFICAS a partir de la distribution : <nom_distrib>.tgz
+faire :
+ tar xzvf <nom_distrib>.tgz
+
+ce qui a pour effet de créer un répertoire de nom <nom_distrib>.
+
+Pour modifier l'emplacement de la doc, le chemin d'accès à Acrobat Reader,
+les catalogues, il faut modifier le fichier editeur.ini dans le répertoire Aster.
+
+
+ATTENTION :
+Si Eficas est installé dans un répertoire particulier d'administration
+dans lequel les utilisateurs n'ont pas le droit d'écriture, il faut que
+l'administrateur lance Eficas pour générer
+les fichiers et catalogues compilés .pyc
+
+
+
+2- Utilisation d'Eficas
+
+Pour utiliser Eficas, aller dans le répertoire Aster et faire :
+ python eficas_aster.py
+
+
+
+3- Installation avec un noyau pré-installé
+
+Aller dans le répertoire Aster du répertoire Eficas
+et modifier le fichier prefs.py comme suit :
+Mettre dans la variable CODE_PATH le chemin absolu vers
+le répertoire contenant les deux répertoires Noyau et Validation que vous voulez
+utiliser à la place de ceux fournis dans la livraison d'Eficas
+
+Pour changer les catalogues, modifier le fichier editeur.ini dans le répertoire Aster
+
+
--- /dev/null
+Verion 1.4 (5/2003):
+ Mise en synchronisation avec la version STA7 de Code_Aster de mai 2003 (7.1)
+ Possibilité de donner un nom de fichier en argument lors de l'ouverture d'EFICAS (EO2003-060)
+ Correction d'une anomalie dans la fonctionnalité de commentarisation des commandes (AO2003-041)
+ Ajout du bouton de documentation dans le pannneau FORMULE (AO2002-447)
+ Selection automatique du concept quand il n'en existe qu'un (EO2002-162)
+
+Verion 1.3 (11/2002):
+ Mise en synchronisation avec la version STA6 de Code_Aster de septembre 2002
+ Ajout de la possibilité de visualiser les INCLUDE, INCLUDE_MATERIAU et POURSUITE (popup
+ sur click droit de la souris sur l'icone de la commande)
+ Possibilité d'afficher la liste des commandes par groupe (menu option->affichage commandes)
+ Reprise profonde du mécanisme de gestion des fichiers inclus (voir menus d'AIDE pour plus de détails)
+ Corrections diverses
+
+Version 1.2 (5/2002):
+ Reconception de la version 1.1 : décomposition en packages Python
+ Mise en synchronisation avec la version STA6 de Code_Aster de fevrier 2002
--- /dev/null
+
+-------------------------------------------------------------------------------------------------------------
+ FAQs et Limitations d'EFICAS
+-------------------------------------------------------------------------------------------------------------
+
+
+1. Mots réservés :
+
+ Tous les mots du langage Python sont des mots réservés.
+ On ne peut donc pas appeler une variable ou un concept 'fin' ou 'dir'
+ Pour la liste complète de ces mots-clés, veuillez vous référer à la
+ documentation Python
+
+2. Concepts réentrants :
+
+ Ne pas indiquer par un '&' devant son nom qu'un concept est utilisé comme
+ concept réentrant. En effet EFICAS le sait !
+
+3. Carte commentaire :
+
+ La carte commentaire est désormais le '#' (dièse) au lieu du '%' (pourcent)
+ Les commentaires sont gérés comme des objets de même niveau que les
+ commandes ; il n'est plus possible de placer des commentaires "dans"
+ une commande. Attention, lors de la traduction d'un fichier de version 5
+ en 6, les commentaires "dans" les commandes seront perdus.
+
+4. Nommer le concept produit par un opérateur :
+
+ Vous ne pouvez nommer le concept produit d'un opérateur que lorsque
+ celui-ci aura été entièrement et correctement rempli.
+
+5. Règle de rémanence dans les mots-clés facteurs répétés :
+
+ La règle de rémanence qui permettait pour certains mots-clés facteurs
+ et pour certains de leurs mots-clés simples de ne pas répeter la valeur
+ de ces derniers dans toutes les occurrences du mot-clé facteur n'est pas
+ connue d'EFICAS.
+ En conséquence, vous devez répéter les mots-clés simples concernés dans
+ toutes les occurrences des mots-clés facteurs.
+
+6. Besoin d'aide ?
+
+ La documentation d'utilisation d'EFICAS a pris un peu de retard sur le produit ...
+ Néanmoins, vous disposez sur la plupart des panneaux contextuels ( les panneaux à
+ droite de l'arbre) d'une aide en ligne que vous pouvez activer en maintenant le
+ bouton droit de votre souris enfoncé.
--- /dev/null
+Les macros INCLUDE, INCLUDE_MATERIAU et POURSUITE ont un fonctionnement spécial.
+Les concepts produits par ces macros sont obtenus par interpretation d'un fichier
+de commandes. Il n'est pas possible d'avoir une mise à jour complètement
+automatique d'un jeu de commandes qui contient une de ces macros.
+
+Les principes retenus sont les suivants :
+
+1- Un fichier invalide n'est pas du tout pris en compte meme si quelques
+commandes de ce fichier sont valides
+
+2- Il est possible de visualiser (bouton droit de la souris sur l'icone de
+la macro -> menu View) le contenu de ces types de macros. Cette visualisation
+n'est pas mise à jour en cas de reactualisation de cette macro. Le bouton (icone
+loupe) permet de visualiser le source du fichier inclus.
+
+3- Il est possible de reactualiser la validite du jeu de commandes en demandant
+un rapport de validation. Ceci declenche une reevaluation systematique des
+fichiers inclus. Les fichiers inclus sont mémorisés en fonction de leur UNITE
+pour les INCLUDE, du nom de matériau pour les INCLUDE_MATERIAU et comme poursuite
+pour une POURSUITE (il n'est pas possible d'avoir plus d'une POURSUITE par fichier).
+ATTENTION : comme on s'appuie sur l'UNITE pour memoriser les fichers inclus il est
+conseillé d'utiliser des numéros d'UNITE différents sinon la reactualisation sera
+faite avec le meme fichier pour des INCLUDE différents.
+
+4- Pour changer les fichiers inclus, il faut passer par l'onglet FICHIER, modifier
+le nom du fichier et appuyer sur le bouton Valider. Tous les fichiers inclus par
+ce premier fichier seront systématiquement redemandés à l'utilisateur.
+
+5- Le nom d'un fichier INCLUDE_MATERIAU est construit à partir des valeurs des mots-clés
+de la commande, il n'est donc jamais demandé explicitement à l'utilisateur.
+
+6- En cas de modification importante des fichiers inclus il est recommandé de demander
+la revalidation du jeu de commandes avec le menu Jeu de commandes -> rapport de validation.
+La remise à jour de la validité peut entrainer des resultats surprenants dans des cas particuliers
+d'INCLUDE enchainés contenant des commandes DETRUIRE.
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+
+<HTML>
+<HEAD>
+<TITLE>EFICAS</TITLE>
+</HEAD>
+
+<BODY TEXT="#000000" BGCOLOR="#F7F3FF" LINK="#0000FF" VLINK="#660099" ALINK="#FF0000">
+
+<H1>EFICAS</H1>
+<HR>
+
+<P> <A HREF="INSTALL">Installation</A>
+<P> <A HREF="NEWS">Evolution des versions</A>
+<P> <A HREF="faqs.txt">FAQ</A>
+<P> <A HREF="includes.txt">Macros INCLUDE, INCLUDE_MATERIAU et POURSUITE</A>
+
+</BODY>
+</HTML>
--- /dev/null
+"""
+Contient la description des fichiers d'aide et leur structuration
+
+chaque panneau est un tuple de 3 éléments :
+
+- élément 1 : titre de la page
+- élément 2 : URL du fichier à afficher quand on visualise cette page d'aide ou None si aucun
+- élément 3 : tuple contenant les sous-panneaux de ce panneau (tuple de 3-tuples) ou None si aucun
+
+La variable repertoire est initialisee avec le chemin du repertoire local
+"""
+
+import os
+
+items =("Aide en ligne EFICAS",None,
+ (
+ ("FAQs",os.path.join(repertoire,"..","Editeur","faqs.txt"),None),
+ ("Install",os.path.join(repertoire,"..","INSTALL"),
+ (
+ ("Procedure d'installation",os.path.join(repertoire,"..","INSTALL"),None),
+ )
+ ),
+ ),
+ )
--- /dev/null
+import os
+import Tkinter
+import ScrolledText
+import formatter
+import htmllib
+
+class TkWriter(formatter.DumbWriter):
+ def __init__(self, text,viewer):
+ formatter.DumbWriter.__init__(self, self)
+ self.text=text
+ self.viewer=viewer
+
+ def write(self,data):
+ self.text.insert("insert", data)
+
+ def anchor_bgn(self, href, name, type):
+ if href:
+ self.anchor = (href, name, type)
+ self.anchor_mark = self.text.index("insert")
+
+ def anchor_end(self):
+ if self.anchor:
+ url = self.anchor[0]
+ tag = "href_" + url
+ self.text.tag_add(tag, self.anchor_mark, "insert")
+ def displayurl(event,v=self.viewer,u=url):
+ v.display(u)
+ self.text.tag_bind(tag, "<ButtonPress>", displayurl)
+ self.text.tag_config(tag, foreground="blue", underline=1)
+ self.anchor = None
+
+class HTMLParser(htmllib.HTMLParser):
+ def anchor_bgn(self, href, name, type):
+ htmllib.HTMLParser.anchor_bgn(self, href, name, type)
+ # On signale directement au writer le debut d'une reference
+ self.formatter.writer.anchor_bgn(href, name, type)
+
+ def anchor_end(self):
+ if self.anchor:
+ self.formatter.writer.anchor_end()
+ self.anchor = None
+
+import string
+
+class DumbParser:
+ def __init__(self,fmt):
+ self.formatter=fmt
+
+ def feed(self,data):
+ self.formatter.writer.write(data)
+
+ def close(self):
+ pass
+
+class Historique:
+ def __init__(self):
+ self.liste=[]
+ self.index=0
+
+ def add(self,url):
+ if self.index > 0:
+ old=self.liste[self.index-1]
+ if url == old :return
+ del self.liste[self.index:]
+ self.liste.append(url)
+ self.index=self.index+1
+
+ def getback(self):
+ if self.index > 1:
+ self.index=self.index-1
+ return self.liste[self.index-1]
+ else:
+ return None
+
+ def getforward(self):
+ if self.index < len(self.liste):
+ url=self.liste[self.index]
+ self.index=self.index+1
+ return url
+ else:
+ return None
+
+class HTMLViewer:
+ def __init__(self,parent):
+ self.init_window(parent)
+ self.url=None
+ self.home=None
+ self.historique=Historique()
+ self.createWidgets()
+ self.init()
+
+ def init_window(self,parent):
+ self.parent=parent
+ self.fenetre=Tkinter.Toplevel()
+ self.fenetre.title("AIDE EFICAS")
+ if self.fenetre.winfo_screenwidth() < 800 or self.fenetre.winfo_screenheight() < 600:
+ self.fenetre.wm_minsize(300, 150)
+ else:
+ self.fenetre.wm_minsize(400, 200)
+ self.fenetre.protocol("WM_DELETE_WINDOW",self.destroy)
+
+ def createWidgets(self):
+ frame = self.frame = Tkinter.Frame(self.fenetre)
+ frame.pack(side="bottom", fill="x")
+ self.homeButton = Tkinter.Button(frame, text="Index",font="Helvetica 12 bold",
+ command=self.goHome)
+ self.homeButton.pack(side="left")
+ self.b_retour = Tkinter.Button(frame, text="Back",font="Helvetica 12 bold",
+ command=self.goBack)
+ self.b_retour.pack(side="left")
+ self.b_avance = Tkinter.Button(frame, text="Forward",font="Helvetica 12 bold",
+ command=self.goForward)
+ self.b_avance.pack(side="left")
+
+ self.b_close = Tkinter.Button(frame, text="Close",font="Helvetica 12 bold",
+ command=self.destroy)
+ self.b_close.pack(side="right")
+ self.config_boutons()
+
+ self.text=ScrolledText.ScrolledText(self.fenetre,bg='white',relief='sunken',font="Helvetica 12 bold")
+ self.text.pack(side="top", fill="both", expand=1)
+ self.text.bind("<Key-Prior>", self.page_up)
+ self.text.bind("<Key-Next>", self.page_down)
+ self.text.bind("<Key-Up>", self.unit_up)
+ self.text.bind("<Key-Down>", self.unit_down)
+ self.text.bind("<1>", self.clicked)
+
+ def clicked(self,event):
+ self.text.focus_set()
+
+ def page_up(self,event):
+ event.widget.yview_scroll(-1, "page")
+ def page_down(self,event):
+ event.widget.yview_scroll(1, "page")
+ def unit_up(self,event):
+ event.widget.yview_scroll(-1, "unit")
+ def unit_down(self,event):
+ event.widget.yview_scroll(1, "unit")
+
+ def config_boutons(self):
+ """
+ Activation du bouton précédent s'il y a lieu
+ """
+ if self.historique.index > 1 :
+ self.b_retour.config(state='normal')
+ else :
+ self.b_retour.config(state='disabled')
+ if self.historique.index < len(self.historique.liste) :
+ self.b_avance.config(state='normal')
+ else :
+ self.b_avance.config(state='disabled')
+
+ def openurl(self,url):
+ url=os.path.normpath(url)
+ if self.url and not os.path.isabs(url):
+ rep1,fich1=os.path.split(self.url)
+ rep2,fich2=os.path.split(url)
+ if rep1 != rep2 :
+ url=os.path.join(rep1,rep2,fich2)
+ url=os.path.normpath(url)
+ try:
+ f=open(url,'r')
+ data=f.read()
+ f.close()
+ except:
+ data="Impossible de trouver: "+url
+ self.url=url
+ if self.home is None:
+ self.home=self.url
+ return data
+
+ def display(self,url):
+ data=self.openurl(url)
+ ext=os.path.splitext(url)[1]
+ self.text.config(state="normal")
+ self.text.delete("1.0", "end")
+ writer=TkWriter(self.text,self)
+ fmt=formatter.AbstractFormatter(writer)
+ if ext == ".html":
+ parser=HTMLParser(fmt)
+ else:
+ parser=DumbParser(fmt)
+ parser.feed(data)
+ parser.close()
+ self.text.config(state="disabled")
+ self.historique.add(url)
+ self.config_boutons()
+
+ def init(self):
+ self.fenetre.bind("<KeyPress-BackSpace>", self.goBack)
+
+ def goHome(self,event=None):
+ if self.home and self.home != self.url:
+ self.display(self.home)
+
+ def goBack(self,event=None):
+ url=self.historique.getback()
+ if url:self.display(url)
+
+ def goForward(self,event=None):
+ url=self.historique.getforward()
+ if url:self.display(url)
+
+ def destroy(self):
+ try:
+ self.fenetre.destroy()
+ except:
+ pass
+
+if __name__ == "__main__":
+ v=HTMLViewer(None)
+ v.display("fichiers/index.html")
+ v.fenetre.mainloop()
+
--- /dev/null
+# 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 Ihm import I_ASSD
+from Ihm import I_FONCTION
+from Noyau import N_ASSD
+from Noyau import N_GEOM
+from Noyau import N_FONCTION
+from Noyau import N_CO
+
+# On ajoute la classe ASSD dans l'héritage multiple pour recréer
+# une hiérarchie d'héritage identique à celle de Noyau
+# 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(N_ASSD.assd,I_ASSD.ASSD,ASSD):pass
+
+class FONCTION(N_FONCTION.FONCTION,I_FONCTION.FONCTION,ASSD):
+ def __init__(self,etape=None,sd=None,reg='oui'):
+ N_FONCTION.FONCTION.__init__(self,etape=etape,sd=sd,reg=reg)
+ I_FONCTION.FONCTION.__init__(self,etape=etape,sd=sd,reg=reg)
+
+class formule(N_FONCTION.formule,I_FONCTION.formule,ASSD):
+ def __init__(self,etape=None,sd=None,reg='oui'):
+ N_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
+ I_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
+
+# On conserve fonction (ceinture et bretelles)
+# fonction n'existe plus dans N_FONCTION on le remplace par formule
+class fonction(N_FONCTION.formule,I_FONCTION.fonction,ASSD):
+ def __init__(self,etape=None,sd=None,reg='oui'):
+ N_FONCTION.formule.__init__(self,etape=etape,sd=sd,reg=reg)
+ I_FONCTION.fonction.__init__(self,etape=etape,sd=sd,reg=reg)
+
+class GEOM(N_GEOM.GEOM,I_ASSD.ASSD,ASSD):pass
+class geom(N_GEOM.geom,I_ASSD.ASSD,ASSD):pass
+class CO(N_CO.CO,I_ASSD.ASSD,ASSD):pass
+# 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 Noyau import N_REGLE
from Validation import V_AU_MOINS_UN
from Ihm import I_REGLE
+# 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 Noyau import N_REGLE
from Validation import V_A_CLASSER
from Ihm import I_A_CLASSER
+# 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 Noyau import N_BLOC
from Ihm import I_ENTITE
import A_MCBLOC
class BLOC(N_BLOC.BLOC,I_ENTITE.ENTITE):
class_instance=A_MCBLOC.MCBLOC
+ def __init__(self,*tup,**args):
+ I_ENTITE.ENTITE.__init__(self)
+ N_BLOC.BLOC.__init__(self,*tup,**args)
+
+# 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 Noyau import N_REGLE
from Validation import V_ENSEMBLE
from Ihm import I_REGLE
+# 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 Noyau import N_ETAPE
from Validation import V_ETAPE
from Ihm import I_ETAPE
# Pas de constructeur pour B_ETAPE.ETAPE
N_ETAPE.ETAPE.__init__(self,oper,reuse,args)
V_ETAPE.ETAPE.__init__(self)
- I_ETAPE.ETAPE.__init__(self)
+# 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 Noyau import N_EVAL
class EVAL(N_EVAL.EVAL):
+# 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 Noyau import N_REGLE
from Validation import V_EXCLUS
from Ihm import I_EXCLUS
+# 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 Noyau import N_FACT
from Ihm import I_ENTITE
import A_MCFACT
class FACT(N_FACT.FACT,I_ENTITE.ENTITE):
class_instance=A_MCFACT.MCFACT
list_instance=A_MCLIST.MCList
+ def __init__(self,*tup,**args):
+ I_ENTITE.ENTITE.__init__(self)
+ N_FACT.FACT.__init__(self,*tup,**args)
+
+# 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 Noyau import N_FORM
from Ihm import I_ENTITE
import A_FORM_ETAPE
+# 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 Noyau import N_FORM_ETAPE
from Validation import V_MACRO_ETAPE
from Ihm import I_FORM_ETAPE
+# 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 Noyau import N_JDC
from Validation import V_JDC
from Extensions import jdc
from Ihm import I_JDC
class JDC(jdc.JDC,I_JDC.JDC,V_JDC.JDC,N_JDC.JDC):
+ from A_ASSD import CO,assd
+
def __init__(self,*pos,**args):
N_JDC.JDC.__init__(self,*pos,**args)
V_JDC.JDC.__init__(self)
+# 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 Noyau import N_JDC_CATA
import A_JDC
from Ihm import I_JDC_CATA
+# 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 Noyau import N_MACRO
from Ihm import I_ENTITE
import A_MACRO_ETAPE
class MACRO(N_MACRO.MACRO,I_ENTITE.ENTITE):
class_instance=A_MACRO_ETAPE.MACRO_ETAPE
+ def __init__(self,*tup,**args):
+ I_ENTITE.ENTITE.__init__(self)
+ N_MACRO.MACRO.__init__(self,*tup,**args)
+
+# 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 Noyau import N_MACRO_ETAPE
from Validation import V_MACRO_ETAPE
from Ihm import I_MACRO_ETAPE
+# 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 Noyau import N_MCBLOC
from Validation import V_MCBLOC
from Ihm import I_MCBLOC
+# 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 Noyau import N_MCFACT
from Validation import V_MCFACT
from Ihm import I_MCFACT
+# 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 Noyau import N_MCLIST
from Validation import V_MCLIST
from Ihm import I_MCLIST
+# 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 Extensions import mcnuplet
from Ihm import I_MCCOMPO
+# 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 Noyau import N_MCSIMP
from Validation import V_MCSIMP
from Ihm import I_MCSIMP
+# 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 Extensions import nuplet
import A_MCLIST
+# 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 Noyau import N_OPER
from Ihm import I_ENTITE
import A_ETAPE
class OPER(N_OPER.OPER,I_ENTITE.ENTITE):
class_instance=A_ETAPE.ETAPE
+ def __init__(self,*tup,**args):
+ I_ENTITE.ENTITE.__init__(self)
+ N_OPER.OPER.__init__(self,*tup,**args)
+# 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 Noyau import N_REGLE
from Validation import V_PRESENT_ABSENT
from Ihm import I_PRESENT_ABSENT
+# 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 Noyau import N_REGLE
from Validation import V_PRESENT_PRESENT
from Ihm import I_PRESENT_PRESENT
+# 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 Noyau import N_PROC
from Ihm import I_ENTITE
import A_PROC_ETAPE
class PROC(N_PROC.PROC,I_ENTITE.ENTITE):
class_instance=A_PROC_ETAPE.PROC_ETAPE
+ def __init__(self,*tup,**args):
+ I_ENTITE.ENTITE.__init__(self)
+ N_PROC.PROC.__init__(self,*tup,**args)
+
+# 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 Noyau import N_PROC_ETAPE
from Validation import V_PROC_ETAPE
from Ihm import I_PROC_ETAPE
def __init__(self,oper=None,args={}):
N_PROC_ETAPE.PROC_ETAPE.__init__(self,oper=oper,args=args)
V_PROC_ETAPE.PROC_ETAPE.__init__(self)
- I_PROC_ETAPE.PROC_ETAPE.__init__(self)
+# 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 Noyau import N_SIMP
from Ihm import I_ENTITE
import A_MCSIMP
class SIMP(N_SIMP.SIMP,I_ENTITE.ENTITE):
class_instance=A_MCSIMP.MCSIMP
+ def __init__(self,*tup,**args):
+ I_ENTITE.ENTITE.__init__(self)
+ N_SIMP.SIMP.__init__(self,*tup,**args)
+
+# 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 Noyau import N_REGLE
from Validation import V_UN_PARMI
from Ihm import I_UN_PARMI
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce package contient les classes qui seront effectivement utilisées dans les applications.
C'est dans ce package que sont réalisées les combinaisons de classes de base
from A_ENSEMBLE import ENSEMBLE
from A_A_CLASSER import A_CLASSER
-from Noyau.N_ASSD import ASSD,assd
-from Noyau.N_GEOM import GEOM,geom
-from Noyau.N_FONCTION import FONCTION
-from Noyau.N_FONCTION import fonction
-from Noyau.N_CO import CO
+from A_ASSD import ASSD,assd
+from A_ASSD import GEOM,geom
+# Pour le moment on laisse fonction (ceinture et bretelles)
+from A_ASSD import FONCTION, fonction
+from A_ASSD import formule
+from A_ASSD import CO
+
from Noyau.N__F import _F
from Noyau.N_Exception import AsException
from Noyau.N_utils import AsType
-
-from Noyau.N_VALIDATOR import Valid,RangeVal,OrdList,NoRepeat,LongStr,EnumVal,CardVal,TypeVal,InstanceVal,OrVal,AndVal
-
from Extensions.niveau import NIVEAU
from Extensions.etape_niveau import ETAPE_NIVEAU
from Extensions.commentaire import COMMENTAIRE
+++ /dev/null
-#@ MODIF macr_adap_mail_ops Macro DATE 01/07/2003 AUTEUR GNICOLAS G.NICOLAS
-# 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
-#
-def macr_adap_mail_ops ( self,
- INFO, VERSION_HOMARD, LANGUE,
- NOMBRE, QUALITE, CONNEXITE, TAILLE, INTERPENETRATION,
- NON_SIMPLEXE, MAILLAGE_FRONTIERE,
- **args):
- """
- Ecriture de la macro MACR_ADAP_MAIL/MACR_INFO_MAIL
- Remarque : on ne mentionne explicitement que les mots-clés communs aux
- deux macros. Les autres sont dans le dictionnaire 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.
-#
-### 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'] = o ; string ; Nom du répertoire de calcul pour HOMARD
-# 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' 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'
-# dico['RESULTAT'] = o ; concept ASTER du résutat associé
-# dico['NOM_CHAM'] = o ; string ; Nom ASTER du champ
-# dico['COMPOSANTE'] = f ; string ; Nom ASTER de la composante
-# 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
-#
- from Accas import _F
- import aster
- import string
- import types
- import os
-#
- 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')
- IMPR_FICO_HOMA = self.get_cmd('IMPR_FICO_HOMA')
- 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 = 0
- codret_partiel = [0]
- Rep_Calc_ASTER = os.getcwd()
-#
- Liste_Maillages = []
- Liste_Champs = []
-#
- ADAPTATION = None
- MAJ_CHAM = None
-#
- unite = 71
-#
-#--------------------------------------------------------------------
-# 2. Décodage des arguments de la macro-commande
-#--------------------------------------------------------------------
-# 2.1. ==> Données de pilotage de l'adaptation
-#
- if ( self.nom == 'MACR_ADAP_MAIL' ) :
-#
- modhom = "ADAP"
-#
- ADAPTATION = args['ADAPTATION']
- if args.has_key('MAJ_CHAM') :
- MAJ_CHAM = args['MAJ_CHAM']
-#
-# 2.1.1. ==> Les concepts 'maillage'
-#
- for mot_cle in ['MAILLAGE_N','MAILLAGE_NP1'] :
- dico = {}
- dico['Type_Maillage'] = mot_cle
- dico['Nom_ASTER'] = ADAPTATION[mot_cle]
- if ( mot_cle == 'MAILLAGE_N' ) :
- dico['Action'] = 'A_ecrire'
- else :
- dico['Action'] = 'A_lire'
- Liste_Maillages.append(dico)
-#
-# 2.1.2. ==> L'éventuel indicateur d'erreur
-#
- if ADAPTATION['LIBRE'] != None :
- dico = {}
- dico['Type_Champ'] = 'INDICATEUR'
- dico['RESULTAT'] = ADAPTATION['RESULTAT_N']
- dico['NOM_CHAM'] = ADAPTATION['INDICATEUR']
- dico['COMPOSANTE'] = ADAPTATION['NOM_CMP_INDICA']
- if ( ADAPTATION['NUME_ORDRE'] != None ) :
- dico['NUME_ORDRE'] = ADAPTATION['NUME_ORDRE']
- if ( ADAPTATION['INST'] != None ) :
- dico['INST'] = ADAPTATION['INST']
- for cle in [ 'PRECISION', 'CRITERE' ] :
- if ( ADAPTATION[cle] != None ) :
- dico[cle] = ADAPTATION[cle]
- dico['NOM_MED'] = aster.mdnoch ( dico['RESULTAT'].nom , dico['NOM_CHAM'] )
- Liste_Champs.append(dico)
-### print dico
-#
-# 2.1.3. ==> Les champs à mettre à jour
-#
- if ( MAJ_CHAM != None ) :
-#
- for maj_cham in MAJ_CHAM :
-#
- dico = {}
- dico['Type_Champ'] = 'CHAMP'
- for cle in [ 'CHAM_MAJ', 'TYPE_CHAM', 'RESULTAT', 'NOM_CHAM', 'NUME_ORDRE' ] :
- dico[cle] = maj_cham[cle]
- if ( maj_cham['INST'] != None ) :
- dico['INST'] = maj_cham['INST']
- for cle in [ 'PRECISION', 'CRITERE' ] :
- if ( maj_cham[cle] != None ) :
- dico[cle] = maj_cham[cle]
- dico['NOM_MED'] = aster.mdnoch ( dico['RESULTAT'].nom , dico['NOM_CHAM'] )
-#
-### print dico
- Liste_Champs.append(dico)
-#
-# 2.2. ==> Données de pilotage de l'information
-#
- else :
-#
- modhom = "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
-#
- if ( MAILLAGE_FRONTIERE != None ) :
-#
- dico = {}
- dico['Type_Maillage'] = 'MAILLAGE_FRONTIERE'
- dico['Nom_ASTER'] = MAILLAGE_FRONTIERE
- dico['Action'] = 'A_ecrire'
- Liste_Maillages.append(dico)
-#
-#--------------------------------------------------------------------
-# 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.
-#
- L = []
- for dico in Liste_Maillages :
- dico['NOM_MED'] = aster.mdnoma(dico['Nom_ASTER'].nom)
- L.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
- Liste_Maillages = L
-#
-# 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
-#
- niter = 0
- Nom_Rep_local = Nom_Concept_Maillage_N + "_" + modhom + "_" + str(Numero_Passage_Fonction)
- Rep_Calc_HOMARD = os.path.join(Rep_Calc_ASTER,Nom_Rep_local)
-### print "Rep_Calc_HOMARD = ", Rep_Calc_HOMARD
-#
-# 3.2.2. ==> En adaptation :
-#
- if ( modhom == "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.
-#
- for dico in Liste_Passages :
- if ( dico['Maillage_NP1'] == Nom_Concept_Maillage_N ) :
- niter = dico['niter'] + 1
- Rep_Calc_HOMARD = dico['Rep_Calc_HOMARD']
-#
-# 3.2.2.2. ==> Memorisation de ce passage
-#
-# 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['Rep_Calc_HOMARD'] = Rep_Calc_HOMARD
- dico['niter'] = niter
- Liste_Passages.append(dico)
-#
-# 3.2.2.2.2. ==> Modification du cas en cours
-#
- else :
- L = []
- for dico in Liste_Passages :
- if ( dico['Maillage_NP1'] == Nom_Concept_Maillage_N ) :
- dico['Maillage_NP1'] = Nom_Concept_Maillage_NP1
- dico['niter'] = niter
- L.append(dico)
- Liste_Passages = L
-#
-### print "niter = ", niter, ", Rep_Calc_HOMARD = ", Rep_Calc_HOMARD
-#
-#--------------------------------------------------------------------
-# 4. Ecriture des commandes
-#--------------------------------------------------------------------
-#
-# 4.1. ==> Création du répertoire pour homard
-# attention : on ne fait cette creation qu'une seule fois par cas
-# d'adaptation ou d'information
-#
- if ( niter == 0 ) :
-#
- try :
- os.mkdir(Rep_Calc_HOMARD)
- except os.error,codret_partiel :
- self.cr.warn("Code d'erreur de mkdir : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
- self.cr.fatal("Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD)
- codret = codret + 1
-#
-# 4.2. ==> Ecriture des commandes de creation des donnees MED
-#
-# 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.2.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
-# Dans le fichier de configuration, on donne comme nom MAILL.(niter).MED en entrée et
-# MAILL.(niter+1).MED en sortie (cf. adhc00)
-# Tant que les E/S MED n'ont pas évolué, on fait un lien pour assurer la cohérence.
-#
-# 4.2.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))
- Nom_Symbolique_Fichier_ASTER_vers_HOMARD = "ASTER_to_HOMARD"
- Fichier_HOMARD_Entree = os.path.join(Rep_Calc_HOMARD,"MAILL."+str(niter)+".MED")
-### print "Fichier_ASTER_vers_HOMARD = ",Fichier_ASTER_vers_HOMARD
-### print "Fichier_HOMARD_Entree = ",Fichier_HOMARD_Entree
- try :
- os.symlink(Fichier_ASTER_vers_HOMARD,Fichier_HOMARD_Entree)
- except os.error,codret_partiel :
- self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
- self.cr.fatal("Probleme au lien entre " + Fichier_ASTER_vers_HOMARD + " et " + Fichier_HOMARD_Entree)
- codret = codret + 1
-#
-# 4.2.1.2. ==> De HOMARD vers ASTER
-#
- if ( modhom == "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))
- Fichier_HOMARD_Sortie = os.path.join(Rep_Calc_HOMARD,"MAILL."+str(niter+1)+".MED")
-### print "Fichier_HOMARD_vers_ASTER = ",Fichier_HOMARD_vers_ASTER
-### print "Fichier_HOMARD_Sortie = ",Fichier_HOMARD_Sortie
- try :
- os.symlink(Fichier_HOMARD_vers_ASTER,Fichier_HOMARD_Sortie)
- except os.error,codret_partiel :
- self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
- self.cr.fatal("Probleme au lien entre " + Fichier_HOMARD_vers_ASTER + " et " + Fichier_HOMARD_Sortie)
- codret = codret + 1
-#
-# 4.2.2. La définition du fichier de ASTER vers HOMARD
-#
- DEFI_FICHIER ( ACTION= "ASSOCIER",
- FICHIER = Nom_Symbolique_Fichier_ASTER_vers_HOMARD,
- UNITE = Unite_Fichier_ASTER_vers_HOMARD,
- TYPE = "LIBRE",
- INFO = INFO )
-#
-# 4.2.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,
- FICHIER=Nom_Symbolique_Fichier_ASTER_vers_HOMARD,
- FORMAT ='MED',
- **motscsi )
-#
- IMPR_RESU ( INFO = INFO, **motscfa )
-#
-# 4.2.4. Le(s) champ(s)
-#
- for dico in Liste_Champs :
- motscsi={}
- for cle in [ 'RESULTAT', 'NOM_CHAM', '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']
- motscfa={}
- motscfa['RESU']=_F( INFO_MAILLAGE=infomail,
- FICHIER=Nom_Symbolique_Fichier_ASTER_vers_HOMARD,
- FORMAT ='MED',
- **motscsi
- )
-#
- IMPR_RESU ( INFO = INFO, **motscfa )
-#
-# 4.3. ==> Ecriture de la commande d'écriture des fichiers de données pour HOMARD
-#
- motscfa={}
-#
-# 4.3.1. ==> Le traitement
-#
- motscsi={}
-#
-# 4.3.1.1. ==> Le type de traitement
-#
- if ( modhom == "ADAP" ) :
- if ( ADAPTATION['UNIFORME'] != None ) :
- motscsi['UNIFORME'] = ADAPTATION['UNIFORME']
- else :
- motscsi['ADAPTATION'] = ADAPTATION['LIBRE']
- else :
- motscsi['INFORMATION'] = 'OUI'
-#
-# 4.3.1.2. ==> Les noms med des maillages
-#
- for dico in Liste_Maillages :
-### print "Nom MED de " + dico['Type_Maillage'] + " = " + dico['NOM_MED']
- motscsi[ 'NOM_MED_'+dico['Type_Maillage'] ] = dico['NOM_MED']
-#
-# 4.3.1.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur
-#
- for dico in Liste_Champs :
- if ( dico['Type_Champ'] == 'INDICATEUR' ) :
- 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 ) :
- motscsi[cle] = dico[cle]
-#
-# 4.3.1.4. ==> Les critères de raffinement et les niveaux extremes
-#
- if ( modhom == "ADAP" ) :
- Liste_aux = [ ]
- if ( ADAPTATION['LIBRE'] == 'RAFF_DERA' or ADAPTATION['LIBRE'] == 'RAFFINEMENT' ) :
- Liste_aux.append('CRIT_RAFF_ABS')
- Liste_aux.append('CRIT_RAFF_REL')
- Liste_aux.append('CRIT_RAFF_PE')
- if ( ADAPTATION['LIBRE'] == 'RAFF_DERA' or ADAPTATION['LIBRE'] == 'DERAFFINEMENT' ) :
- Liste_aux.append('CRIT_DERA_ABS')
- Liste_aux.append('CRIT_DERA_REL')
- Liste_aux.append('CRIT_DERA_PE')
- niveau = 0
- if ( ADAPTATION['LIBRE'] == 'RAFF_DERA' or ADAPTATION['LIBRE'] == 'RAFFINEMENT' or ADAPTATION['UNIFORME'] == 'RAFFINEMENT' ) :
- Liste_aux.append('NIVE_MAX')
- niveau = niveau + 1
- if ( ADAPTATION['LIBRE'] == 'RAFF_DERA' or ADAPTATION['LIBRE'] == 'DERAFFINEMENT' or ADAPTATION['UNIFORME'] == 'DERAFFINEMENT' ) :
- Liste_aux.append('NIVE_MIN')
- niveau = niveau + 2
- for mot_cle in Liste_aux :
- if ( ADAPTATION[mot_cle] != None ) :
- motscsi[mot_cle] = ADAPTATION[mot_cle]
-#
- if ( niveau == 2 ) :
- if ( ADAPTATION['NIVE_MIN'] > ADAPTATION['NIVE_MAX'] ) :
- self.cr.fatal("Le niveau minimum doit etre inferieur au niveau maximum.")
- codret = codret + 1
-#
-# 4.3.1.5. ==> Mise à jour de la solution
-#
- if ( MAJ_CHAM != None ) :
- motscsi['MAJ_CHAM'] = 'OUI'
-#
-# 4.3.1.6. ==> Numéro d'itération
-#
- if ( modhom == "ADAP" ) :
- motscsi['NITER'] = niter
-#
-# 4.3.1.7. ==> Suivi de la frontiere
-#
- if args.has_key('GROUP_MA') :
- if ( args['GROUP_MA'] != None ) :
- motscsi['GROUP_MA'] = args['GROUP_MA']
-#
-# 4.3.1.8. ==> Bilan
-#
- motscfa['TRAITEMENT'] = _F(**motscsi)
-#
-# 4.3.2. ==> L'analyse
-#
- motscsi={}
- if ( NOMBRE != None ) : motscsi['NOMBRE' ] = NOMBRE
- if ( QUALITE != None ) : motscsi['QUALITE' ] = QUALITE
- if ( CONNEXITE != None ) : motscsi['CONNEXITE' ] = CONNEXITE
- if ( TAILLE != None ) : motscsi['TAILLE' ] = TAILLE
- if ( INTERPENETRATION != None ) : motscsi['INTERPENETRATION' ] = INTERPENETRATION
-#
- motscfa['ANALYSE'] = _F(**motscsi)
-#
-# 4.3.3. ==> La commande
-#
-# 4.3.3.1. ==> Les fichiers annexes
-#
- dico = {}
-#
- Fichier_Configuration = os.path.join(Rep_Calc_HOMARD,'HOMARD.Configuration')
-# 1234567890123456
- dico[Fichier_Configuration] = ('HOMARD_CONFIG','FICHIER_CONF',unite)
-#
- if ( modhom != "ADAP" ) :
- unite = unite + 1
- Fichier_Donnees = os.path.join(Rep_Calc_HOMARD,'HOMARD.Donnees')
-# 1234567890123456
- dico[Fichier_Donnees] = ('HOMARD_DONNEES','FICHIER_DONN',unite)
-#
-# 4.3.3.2. ==> L'ouverture de ces fichiers
-#
- for fic in dico.keys() :
- DEFI_FICHIER ( ACTION= "ASSOCIER", NOM_SYSTEME = fic, FICHIER = dico[fic][0], UNITE = dico[fic][2],
- TYPE = "ASCII", ACCES = "NEW", INFO = INFO )
- motscfa[dico[fic][1]] = dico[fic][0]
-#
-# 4.3.3.3. ==> Ecriture
-#
-### print motscfa
- IMPR_FICO_HOMA ( INFO=INFO, LANGUE = LANGUE, NON_SIMPLEXE = NON_SIMPLEXE, **motscfa )
-#
-### for fic in dico.keys() :
-### print "\nContenu de ", fic
-### fichier = open (fic,'r')
-### les_lignes = fichier.readlines()
-### fichier.close()
-### for ligne in les_lignes :
-### print ligne[:-1]
-#
-# 4.3.3.4. ==> La fermeture des fichiers locaux
-# Remarque : il faut le faire ici pour que le gestionnaire de DEFI_FICHIER soit à jour
-# Remarque : aujourd'hui on est obligé de passer par le numéro d'unité logique
-#
- for fic in dico.keys() :
- DEFI_FICHIER ( ACTION= "LIBERER", NOM_SYSTEME = fic, UNITE = dico[fic][2], INFO = INFO )
-#
-# 4.4. ==> Ecriture de la commande d'exécution 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
-# Remarque : pour le nommage des fichiers d'échange entre ASTER et HOMARD, on utilise
-# la convention implicite du fort.n des entrees/sorties au format MED
-#
- VERSION_HOMARD=string.replace(VERSION_HOMARD,'_','.')
- VERSION_HOMARD=string.replace(VERSION_HOMARD,'N','n')
- if ( VERSION_HOMARD[-6:]=='_PERSO' ):
-# motscsi['ARGUMENT']=_F('TYPEXE'='-PERSO')
- VERSION_HOMARD=VERSION_HOMARD[:-6]
-#
- if ( modhom == "ADAP" ) :
- Fichier_Donnees = '0'
-#
- EXEC_LOGICIEL ( ARGUMENT = (_F(NOM_PARA=Rep_Calc_HOMARD), # nom du repertoire
- _F(NOM_PARA=VERSION_HOMARD), # version de homard
- _F(NOM_PARA=str(INFO)), # niveau d information
- _F(NOM_PARA=Fichier_Donnees), # fichier de données HOMARD
- ),
- LOGICIEL = homard
- )
-#
-# 4.5. ==> Ecriture de la commande de lecture des resultats med
-# Remarque :
-# La fonction self.DeclareOut(a,b) focntionne 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 vaiable locale qui sera désignée par a
-# Exemple :
-# self.DeclareOut('maillage_np1',ADAPTATION['MAILLAGE_NP1'])
-# ==> la variable maillage_np1 est identifiée à l'argument 'MAILLAGE_NP1' du mot-clé ADAPTATION
-#
- if ( modhom == "ADAP" ) :
-#
-# 4.5.1. ==> Le maillage
-#
- self.DeclareOut('maillage_np1',ADAPTATION['MAILLAGE_NP1'])
- for dico in Liste_Maillages :
- if ( dico['Action'] == 'A_lire' ) :
- maillage_np1 = 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 )
-#
-# 4.5.2. ==> Les champs
-#
- for dico in Liste_Champs :
- if ( dico['Type_Champ'] == 'CHAMP' ) :
-### 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']
- champ_maj = LIRE_CHAMP ( UNITE = Unite_Fichier_HOMARD_vers_ASTER, FORMAT = 'MED',
- MAILLAGE = maillage_np1,
- NOM_MED = dico['NOM_MED'], NOM_CMP_IDEM = 'OUI', TYPE_CHAM = dico['TYPE_CHAM'],
- INFO = INFO, **motscsi )
-#
-#--------------------------------------------------------------------
-# 5. Menage des fichiers MED et HOMARD devenus inutiles
-#--------------------------------------------------------------------
-#
- fic = os.path.join(Rep_Calc_HOMARD,"MAILL."+str(niter)+".HOM")
- Liste_aux = [ Fichier_ASTER_vers_HOMARD, Fichier_HOMARD_Entree, fic ]
- if ( modhom == "ADAP" ) :
- Liste_aux.append(Fichier_HOMARD_vers_ASTER)
- Liste_aux.append(Fichier_HOMARD_Sortie)
-#
- for fic in Liste_aux :
- if ( INFO > 1 ) : print "Destruction du fichier ", fic
- if os.path.islink(fic) :
- try :
- os.unlink(fic)
- except os.error,codret_partiel :
- self.cr.warn("Code d'erreur de unlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
- self.cr.warn("Impossible d'enlever le lien sur le fichier : "+fic)
- codret = codret + 1
- 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])
- self.cr.warn("Impossible de détruire le fichier : "+fic)
- codret = codret + 1
-### print os.listdir(Rep_Calc_ASTER)
-### print os.listdir(Rep_Calc_HOMARD)
-#
-#--------------------------------------------------------------------
-# 6. C'est fini !
-#--------------------------------------------------------------------
-#
- return codret
+++ /dev/null
-#@ MODIF macr_cabri_calc_ops Macro DATE 09/09/2003 AUTEUR DURAND C.DURAND
-# 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,
- 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
-
-
- # 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',),),),
- MODELE=modmeca,);
-
-
-
- # Affectation des materiaux
- if CHAM_MATER != None:
- self.DeclareOut('_cham',CHAM_MATER)
- motscles={}
- motscles['AFFE']=[]
- for mat in affemateriau:
- if mat['TOUT'] == None:
- # Creation de mots-cles pour les AFFE_CHAR_MECA
- motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
- MATER = mat['MATER'],
- TEMP_REF = mat['TEMP_REF'],) )
- else:
- # Creation de mots-cles pour les AFFE_CHAR_MECA
- motscles['AFFE'].append(_F(TOUT='OUI',
- MATER = mat['MATER'],
- TEMP_REF = mat['TEMP_REF'],) )
-
- _cham = AFFE_MATERIAU(MAILLAGE=mail,
- MODELE=modther,
- AFFE=motscles['AFFE'],
- )
-
- #################################################################
- ########## CONDITIONS AUX LIMITES THERMIQUES
- #################################################################
- # Recuperation des parametres thermiques
-
- if DEFI_CHAR_THER != None:
- temp_ini = DEFI_CHAR_THER['TEMP_INIT']
- if DEFI_CHAR_THER['COEF_H_FLUI']!=None:
- coef_int = DEFI_CHAR_THER['COEF_H_FLUI']
- else:
- coef_int = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,0.016,
- 7200.0,0.016,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- if DEFI_CHAR_THER['TEMP_EXT_FLUI']!=None:
- temp_int = DEFI_CHAR_THER['TEMP_EXT_FLUI']
- else:
- temp_int = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
- 600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- if DEFI_CHAR_THER['COEF_H_AIR']!=None:
- coef_ext = DEFI_CHAR_THER['COEF_H_AIR']
- else:
- coef_ext = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,1e-05,7200.0,1e-05,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
-
- if DEFI_CHAR_THER['TEMP_EXT_AIR']!=None:
- temp_ext = DEFI_CHAR_THER['TEMP_EXT_AIR']
- else:
- temp_ext = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,20.0,7200.0,20.0,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- if DEFI_CHAR_THER['LIST_INST']!=None:
- transi1 = DEFI_CHAR_THER['LIST_INST']
- else:
- transi1 = DEFI_LIST_REEL(DEBUT=0.0,
- INTERVALLE=(_F(JUSQU_A=1.0,
- NOMBRE=1,),
- _F(JUSQU_A=11.0,
- NOMBRE=10,),
- _F(JUSQU_A=600.0,
- NOMBRE=10,),
- _F(JUSQU_A=610.0,
- NOMBRE=30,),
- _F(JUSQU_A=1800.0,
- NOMBRE=30,),
- _F(JUSQU_A=7200.0,
- NOMBRE=10,),),);
- else:
- temp_ini = DEFI_CHAR_THER['TEMP_INIT']
- coef_int = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,0.016,
- 7200.0,0.016,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- temp_int = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
- 600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- coef_ext = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,1e-05,7200.0,1e-05,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- temp_ext = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,20.0,7200.0,20.0,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- transi1 = DEFI_LIST_REEL(DEBUT=0.0,
- INTERVALLE=(_F(JUSQU_A=1.0,
- NOMBRE=1,),
- _F(JUSQU_A=11.0,
- NOMBRE=10,),
- _F(JUSQU_A=600.0,
- NOMBRE=10,),
- _F(JUSQU_A=610.0,
- NOMBRE=30,),
- _F(JUSQU_A=1800.0,
- NOMBRE=30,),
- _F(JUSQU_A=7200.0,
- NOMBRE=10,),),);
- # Que sauver ?
- if CHAR_THER != None:
- for m in CHAR_THER:
- if m['TYPE']=="BRIDE_FLUIDE":
- self.DeclareOut('cl_th1',m['CHARGE'])
- if m['TYPE']=="BRIDE_AIR":
- self.DeclareOut('cl_th2',m['CHARGE'])
- if m['TYPE']=="ECROU_GOUJON":
- self.DeclareOut('cl_th3',m['CHARGE'])
- if m['TYPE']=="BRIDE_JOINT":
- self.DeclareOut('cl_th4',m['CHARGE'])
-
- # Echanges thermiques internes entre le fluide et la bride
- cl_th1=AFFE_CHAR_THER_F(MODELE=modther,
- ECHANGE=_F(GROUP_MA = 'M_INT',
- COEF_H = coef_int,
- TEMP_EXT = temp_int,),);
-
- # Echanges thermiques externes entre bride et air ambiant
- cl_th2=AFFE_CHAR_THER_F(MODELE=modther,
- ECHANGE=_F(GROUP_MA='M_EXT',
- COEF_H=coef_ext,
- TEMP_EXT=temp_ext,),);
-
- # Echanges thermiques entre ecrou et goujon
- cl_th3=AFFE_CHAR_THER(MODELE=modther,
- LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
- GROUP_NO_2='N_SCGE',
- DDL_1='TEMP',
- COEF_MULT_1=1.0,
- DDL_2='TEMP',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,),);
-
- # Echanges thermiques entre bride et joint
- cl_th4=AFFE_CHAR_THER(MODELE=modther,
- LIAISON_GROUP=_F(GROUP_NO_1='N_SCBJ',
- GROUP_NO_2='N_SCJB',
- DDL_1='TEMP',
- COEF_MULT_1=1.0,
- DDL_2='TEMP',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,),);
-
-
-
- #################################################################
- ########## CALCUL THERMIQUE
- #################################################################
- if RESU_THER != None:
- self.DeclareOut('resuther',RESU_THER)
-
- resuther=THER_LINEAIRE(MODELE=modther,
- CHAM_MATER=_cham,
- EXCIT=(_F(CHARGE=cl_th1,),
- _F(CHARGE=cl_th2,),
- _F(CHARGE=cl_th3,),
- _F(CHARGE=cl_th4,),),
- INCREMENT=_F(LIST_INST=transi1,),
- TEMP_INIT=_F(VALE=temp_ini,),
- TITRE='CABRI THERMIQUE &DATE &HEURE',);
-
- #################################################################
- ########## CONDITIONS AUX LIMITES MECANIQUES
- #################################################################
- # Recuperation des parametres mecaniques
- if DEFI_CHAR_MECA != None:
- if DEFI_CHAR_MECA['PRETENS']!=None:
- f_pret = DEFI_CHAR_MECA['PRETENS']
- else:
- f_pret=DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,0.0,1.0,-0.02,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- if DEFI_CHAR_MECA['PRES_REP']!=None:
- pre_int = DEFI_CHAR_MECA['PRES_REP']
- else:
- pre_int = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- if DEFI_CHAR_MECA['EFFE_FOND']!=None:
- eff_fond = DEFI_CHAR_MECA['EFFE_FOND']
- else:
- eff_fond=DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- else:
- f_pret=DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,0.0,1.0,-0.02,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
-
- pre_int = DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
-
- eff_fond=DEFI_FONCTION(NOM_PARA='INST',
- VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
- PROL_DROITE='CONSTANT',
- PROL_GAUCHE='CONSTANT',);
- # Que sauver ?
- if CHAR_MECA != None:
- for m in CHAR_MECA:
- if m['TYPE']=="BLOC_BAS_GOUJ":
- self.DeclareOut('cl_me1',m['CHARGE'])
- if m['TYPE']=="BLOC_BAS_JOINT":
- self.DeclareOut('cl_me2',m['CHARGE'])
- if m['TYPE']=="BLOC_LAT_ALES":
- self.DeclareOut('cl_me3',m['CHARGE'])
- if m['TYPE']=="BLOC_LAT_NALES":
- self.DeclareOut('cl_me4',m['CHARGE'])
- if m['TYPE']=="PLAN_TUBE":
- self.DeclareOut('cl_me5',m['CHARGE'])
- if m['TYPE']=="PRES_FLU":
- self.DeclareOut('cl_me6',m['CHARGE'])
- if m['TYPE']=="EFFET_FOND":
- self.DeclareOut('cl_me7',m['CHARGE'])
- if m['TYPE']=="CONT_JOINT":
- self.DeclareOut('cl_me8',m['CHARGE'])
- if m['TYPE']=="DEFO_THER":
- self.DeclareOut('cl_me9',m['CHARGE'])
- if m['TYPE']=="SERR_ECROU_1":
- self.DeclareOut('cl_me10',m['CHARGE'])
- if m['TYPE']=="SERR_ECROU_2":
- self.DeclareOut('cl_me11',m['CHARGE'])
-
-
- # Blocage bas du goujon
- cl_me1=AFFE_CHAR_MECA(MODELE=modmeca,
- DDL_IMPO=_F(GROUP_NO='N_M_GOU',
- DZ=0.0,),
- INFO=2,);
- # Blocage bas du joint
- cl_me2=AFFE_CHAR_MECA(MODELE=modmeca,
- DDL_IMPO=_F(GROUP_NO='N_M_JOI',
- DZ=0.0,),
- INFO=2,);
-
- # Blocage lateral, face laterale avec alesage
- cl_me3=AFFE_CHAR_MECA(MODELE=modmeca,
- DDL_IMPO=_F(GROUP_NO='N_M_L_AA',
- DY=0.0,),
- INFO=2,);
-
- # Face laterale sans alesage
- cl_me4=AFFE_CHAR_MECA(MODELE=modmeca,
- FACE_IMPO=_F(GROUP_MA='M_L_SA',
- DNOR=0.0,),
- INFO=2,);
-
- # Condition de planeite de la face de coupe du tube
- cl_me5=AFFE_CHAR_MECA(MODELE=modmeca,
- LIAISON_UNIF=_F(GROUP_MA='M_TUB',
- DDL='DZ',),
- INFO=2,);
- # Pression due au fluide
- cl_me6=AFFE_CHAR_MECA_F(MODELE=modmeca,
- PRES_REP=_F(GROUP_MA='M_INT',
- PRES=pre_int,),
- INFO=2,);
-
- # Effet de fond
- cl_me7=AFFE_CHAR_MECA_F(MODELE=modmeca,
- PRES_REP=_F(GROUP_MA='M_TUB',
- PRES=eff_fond,),
- INFO=2,);
-
- # Contact zone de joint
- cl_me8=AFFE_CHAR_MECA(MODELE=modmeca,
- CONTACT=_F(GROUP_MA_1='SCBJ',
- GROUP_MA_2='SCJB',),
- INFO=2,);
- # Deformation thermique
- cl_me9=AFFE_CHAR_MECA( MODELE=modmeca,
- TEMP_CALCULEE=resuther,
- INFO=2,);
-
- # Serrage ecrou/goujon (pre-tensionnement)
- cl_me10=AFFE_CHAR_MECA_F(MODELE=modmeca,
- LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
- GROUP_NO_2='N_SCGE',
- DDL_1='DZ',
- COEF_MULT_1=1.0,
- DDL_2='DZ',
- COEF_MULT_2=-1.0,
- COEF_IMPO=f_pret,),
- INFO=2,);
-
- cl_me11=AFFE_CHAR_MECA(MODELE=modmeca,
- LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
- GROUP_NO_2='N_SCGE',
- DDL_1='DX',
- COEF_MULT_1=1.0,
- DDL_2='DX',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,),
- INFO=2,);
-
-
- #################################################################
- ########## CALCUL MECANIQUE
- #################################################################
- # Options de convergence
- solveur=SOLVEUR.cree_dict_valeurs(SOLVEUR.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.cree_dict_valeurs(INCREMENT.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.cree_dict_valeurs(NEWTON.mc_liste)
- # Elimination des valeurs "None"
- for i in newton.keys():
- if newton[i]==None : del newton[i]
-
- # Options de convergence
- convergence=CONVERGENCE.cree_dict_valeurs(CONVERGENCE.mc_liste)
- # Elimination des valeurs "None"
- for i in convergence.keys():
- if convergence[i]==None : del convergence[i]
-
- # Options de comportement
- # Type incremental (=1) ou elastique (=0)
- comp_incr = 0
- if RELATION:
- relation=RELATION
- if relation == 'VMIS_ISOT_TRAC':
- comp_incr = 1
- else:
- comp_incr = 0
- else:
- relation = 'ELAS'
- comp_incr = 0
-
-
- # Parametres du calcul
- if comp_incr == 1:
- resumeca=STAT_NON_LINE(MODELE=modmeca,
- CHAM_MATER=_cham,
- EXCIT=(_F(CHARGE=cl_me1,),
- _F(CHARGE=cl_me2,),
- _F(CHARGE=cl_me3,),
- _F(CHARGE=cl_me4,),
- _F(CHARGE=cl_me5,),
- _F(CHARGE=cl_me6,),
- _F(CHARGE=cl_me7,),
- _F(CHARGE=cl_me8,),
- _F(CHARGE=cl_me9,),
- _F(CHARGE=cl_me10,),
- _F(CHARGE=cl_me11,),
- ),
- SOLVEUR = solveur,
- COMP_INCR =_F(RELATION=relation,),
- NEWTON = newton,
- INCREMENT = increment,
- CONVERGENCE = convergence,
- TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
- else:
- resumeca=STAT_NON_LINE(MODELE=modmeca,
- CHAM_MATER=_cham,
- EXCIT=(_F(CHARGE=cl_me1,),
- _F(CHARGE=cl_me2,),
- _F(CHARGE=cl_me3,),
- _F(CHARGE=cl_me4,),
- _F(CHARGE=cl_me5,),
- _F(CHARGE=cl_me6,),
- _F(CHARGE=cl_me7,),
- _F(CHARGE=cl_me8,),
- _F(CHARGE=cl_me9,),
- _F(CHARGE=cl_me10,),
- _F(CHARGE=cl_me11,),
- ),
- SOLVEUR = solveur,
- COMP_ELAS =_F(RELATION=relation,),
- NEWTON = newton,
- INCREMENT = increment,
- CONVERGENCE = convergence,
- TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
-
- return ier
-
+++ /dev/null
-#@ MODIF macr_cabri_mail_dat Macro DATE 20/05/2003 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.
-# ======================================================================
-
-# 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 20/05/2003 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.
-# ======================================================================
-
-# Variable pour préparer la restit (test->0, restit->1)
-RESTIT = 1
-
-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)
- import aster
-
- # Chemin de Gibi
- 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=(_F(NOM_PARA=fichier_datg),
- _F(NOM_PARA=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
-#=============================================================================================
-
-import os
-from Macro.macr_cabri_mail_dat import *
-
-#=============================================================================================
-# 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 + "opti dime 3 \n"
- text = text + " elem cub8 SAUV FORM '"+nomFichierMGIB+"';\n"
- text = text + "opti nive 10;\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):
- import aster
-
- # 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 + "opti dime 3 \n"
- text = text + " elem cub8 SAUV FORM '"+nomFichierMGIB+"';\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():
- if RESTIT == 1:
- import aster
- loc_datg = aster.repdex()
- datg_bridePro = loc_datg+"macr_cabri_mail_proc.datg"
- else:
- datg_bridePro = 'fort.'+str(39)
-
- 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():
- if RESTIT == 1:
- import aster
- loc_datg = aster.repdex()
- datg_brideQqe = loc_datg+"macr_cabri_mail_qqe.datg"
- else:
- datg_brideQqe = 'fort.'+str(38)
-
- 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():
- if RESTIT == 1:
- import aster
- loc_datg = aster.repdex()
- datg_brideStd = loc_datg+"macr_cabri_mail_std.datg"
- else:
- datg_brideStd = 'fort.'+str(37)
-
- 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
-#@ MODIF reca_algo Macro DATE 04/07/2003 AUTEUR DURAND C.DURAND
+#@ MODIF reca_algo Macro DATE 13/01/2003 AUTEUR PABHHHH N.TARDIEU
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
import copy,os
import LinearAlgebra
from Cata.cata import INFO_EXEC_ASTER
-from Cata.cata import DETRUIRE
from Macro.recal import EXTRACT
-from Accas import _F
def calcul_gradient(A,erreur):
# Fonction controlant le temps CPU restant
CPU=INFO_EXEC_ASTER(LISTE_INFO = ("CPU_RESTANT",))
TEMPS=CPU['CPU_RESTANT',1]
- DETRUIRE(CONCEPT=_F(NOM='CPU'))
err=0
# Indique une execution interactive
if (TEMPS>1.E+9):
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)
+ old_Q=0.5*Numeric.dot(Numeric.transpose(val),Numeric.dot(Q,val))+Numeric.dot(Numeric.transpose(val),d)
+ new_Q=0.5*Numeric.dot(Numeric.transpose(new_val),Numeric.dot(Q,new_val))+Numeric.dot(Numeric.transpose(new_val),d)
# Ratio de la décroissance réelle et de l'approx. quad.
try:
R=(old_J-new_J)/(old_Q-new_Q)
-#@ MODIF recal Macro DATE 10/07/2003 AUTEUR DURAND C.DURAND
+#@ MODIF recal Macro DATE 31/01/2003 AUTEUR PABHHHH N.TARDIEU
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
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',) :
+ if e.__class__.__name__ == 'MACRO_ETAPE':
list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e))
- elif (e.sd != None) and (e.parent.nom=='INCLUDE') :
+ elif e.sd != None:
nom_concept=e.sd.get_name()
if not(nom_concept in list_concepts):
list_concepts.append( nom_concept )
#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):
class vect_elem_pres_r(vect_elem):pass
class vect_elem_temp_r(vect_elem):pass
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem,
fr="Affectation de caractéristiques à des éléments de structure",
docu="U4.42.01-g3",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','MASSIF',
'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE'),),
MODELE =SIMP(statut='o',typ=modele ),
INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
VERIF =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ),
- POUTRE =FACT(statut='f',min=01,max='**',
+ POUTRE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
FCX =SIMP(statut='f',typ=(fonction) ),
),
- BARRE =FACT(statut='f',min=01,max='**',
+ BARRE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
FCX =SIMP(statut='f',typ=(fonction) ),
),
- COQUE =FACT(statut='f',min=01,max='**',
+ COQUE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA' ),
PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
- CABLE =FACT(statut='f',min=01,max='**',
+ CABLE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),
UN_PARMI('A','SECTION') ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
FCX =SIMP(statut='f',typ=(fonction) ),
),
- DISCRET =FACT(statut='f',min=01,max='**',
+ DISCRET =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
NOEUD =SIMP(statut='f',typ=no,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
VALE =SIMP(statut='o',typ='R',max='**'),
),
- ORIENTATION =FACT(statut='f',min=01,max='**',
+ ORIENTATION =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
),
- DEFI_ARC =FACT(statut='f',min=01,max='**',
+ DEFI_ARC =FACT(statut='f',min=1,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'),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
),
- MASSIF =FACT(statut='f',min=01,max='**',
+ MASSIF =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),
UN_PARMI('ANGL_REP','ANGL_AXE'),
EXCLUS('ANGL_REP','ANGL_AXE'),
ORIG_AXE =SIMP(statut='f',typ='R',max=3),
),
- POUTRE_FLUI =FACT(statut='f',min=01,max='**',
+ POUTRE_FLUI =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
COEF_ECHELLE =SIMP(statut='o',typ='R'),
),
- GRILLE =FACT(statut='f',min=01,max='**',
+ GRILLE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),
EXCLUS('ANGL_REP','ORIG_AXE'),
ENSEMBLE('ORIG_AXE','AXE')),
GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,min=1,max=1 ),
),
- RIGI_PARASOL =FACT(statut='f',min=01,max='**',
+ RIGI_PARASOL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'),
UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
GROUP_MA =SIMP(statut='o',typ=ma,max='**'),
COOR_CENTRE =SIMP(statut='f',typ='R',max='**'),
),
- ASSE_GRIL =FACT(statut='f',min=01,max='**',
+ ASSE_GRIL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou,
fr="Affectation de charges et conditions aux limites acoustiques constantes",
docu="U4.44.04-e",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
MODELE =SIMP(statut='o',typ=modele ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- PRES_IMPO =FACT(statut='f',min=01,max='**',
+ PRES_IMPO =FACT(statut='f',min=1,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,max='**'),
NOEUD =SIMP(statut='f',typ=no,max='**'),
PRES =SIMP(statut='o',typ='C' ),
),
- VITE_FACE =FACT(statut='f',min=01,max='**',
+ VITE_FACE =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
VNOR =SIMP(statut='o',typ='C' ),
),
- IMPE_FACE =FACT(statut='f',min=01,max='**',
+ IMPE_FACE =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
IMPE =SIMP(statut='o',typ='C' ),
),
- LIAISON_UNIF =FACT(statut='f',min=01,max='**',
+ LIAISON_UNIF =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
NOEUD =SIMP(statut='f',typ=no,max='**'),
DDL =SIMP(statut='o',typ='TXM',max='**'),
),
) ;
-#& MODIF COMMANDE DATE 21/06/2001 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
docu="U4.44.03-e",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 ),
- MECA_IMPO =FACT(statut='f',min=01,max='**',
+ MECA_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
TEMP =SIMP(statut='f',typ='R' ),
PHI =SIMP(statut='f',typ='R' ),
),
- THER_IMPO =FACT(statut='f',min=01,max='**',
+ THER_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
TEMP =SIMP(statut='f',typ='R' ),
TEMP_INF =SIMP(statut='f',typ='R' ),
),
- ACOU_IMPO =FACT(statut='f',min=01,max='**',
+ ACOU_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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 pour traitement sans dualisation",
docu="U4.44.03-e",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 ),
- MECA_IMPO =FACT(statut='f',min=01,max='**',
+ MECA_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
TEMP =SIMP(statut='f',typ=fonction ),
PHI =SIMP(statut='f',typ=fonction ),
),
- THER_IMPO =FACT(statut='f',min=01,max='**',
+ THER_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 13/08/2002 AUTEUR ADBHHPM P.MASSIN
+#& MODIF COMMANDE DATE 22/10/2002 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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",
docu="U4.44.01-g2",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','FORCE_COQUE','LIAISON_OBLIQUE',
'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE',
'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT',
- 'LIAISON_UNIL_NO','LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP',
+ 'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP',
'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI','PRES_CALCULEE',
'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE',
'LIAISON_MAIL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE',
'EFFE_FOND','EVOL_CHAR','ARLEQUIN'),
- EXCLUS('PRES_CALCULEE','EVOL_CHAR'),
- EXCLUS('LIAISON_UNIL_NO','CONTACT'),),
-
- MODELE =SIMP(statut='o',typ=(modele) ),
+ EXCLUS('PRES_CALCULEE','EVOL_CHAR'),),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-# A TERME PRES_CALCULEE N'EXISTERA PLUS
- EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
- typ=evol_char ),
- PRES_CALCULEE =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
- typ=evol_char ),
+ MODELE =SIMP(statut='o',typ=(modele) ),
TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d'un autre calcul",
typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ),
HYDR_CALCULEE =SIMP(statut='f',fr="Champ d hydratation issu d'un autre calcul",
typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ),
EPSA_CALCULEE =SIMP(statut='f',fr="Champ de déformation anélastique issu d'un autre calcul",
typ=evol_noli ),
- VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
+# A TERME PRES_CALCULEE N'EXISTERA PLUS
+ EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
+ typ=evol_char ),
+ PRES_CALCULEE =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
+ typ=evol_char ),
- ARLEQUIN =FACT(statut='f',min=1,max='**',
- GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'),
- GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'),
- GROUP_MA_COLL =SIMP(statut='o',typ=grma,max='**'),
- CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ),
- regles =(UN_PARMI('POIDS_1','POIDS_2'),),
- POIDS_1 =SIMP(statut='f',typ='R'),
- POIDS_2 =SIMP(statut='f',typ='R'),
- ),
-
- CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=1,max='**',
- regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),),
- APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
- into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")),
- RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
- LISSAGE =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","LAGRANGIEN","PENALISATION","CONTINUE") ),
- PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ),
- GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
- b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ",
- fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
- regles=(EXCLUS('DIST_2','COEF_IMPO'),
- EXCLUS('DIST_1','COEF_IMPO'),),
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP")),
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ),
- REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")),
- b_act_reac =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,max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- COEF_IMPO =SIMP(statut='f',typ='R'),
- COEF_MULT_2 =SIMP(statut='f',typ='R'),
- VECT_NORM_2 =SIMP(statut='f',typ='R',max=3),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
- DIST_1 =SIMP(statut='f',typ='R'),
- DIST_2 =SIMP(statut='f',typ='R'),),
- b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
- fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
- REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")),
- b_lag_reac =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,max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DIST_1 =SIMP(statut='f',typ='R'),
- DIST_2 =SIMP(statut='f',typ='R'),
- VECT_Y =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',max=1),
- 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)",
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
- E_N =SIMP(statut='f',typ='R'),
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
- REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")),
- b_pen_reac =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,max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DIST_1 =SIMP(statut='f',typ='R'),
- DIST_2 =SIMP(statut='f',typ='R'),
- VECT_Y =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',max=1),
- 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)",
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
- INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")),
- COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
- MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
- DIRECTION_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),
- b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',max=1),
- 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),),),
- ),
+ 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',min=1,max='**',
+ DDL_IMPO =FACT(statut='f',min=1,max='**',
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',
GONF =SIMP(statut='f',typ='R' ),
),
- EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",min=1,max='**',
- regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
- GROUP_MA_INT =SIMP(statut='o',typ=grma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- PRES =SIMP(statut='o',typ='R' ),
- ),
-
- EPSI_INIT =FACT(statut='f',fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",
- min=1,max='**',
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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' ),
- ),
+
FACE_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_MA','MAILLE',),
PRE2 =SIMP(statut='f',typ='R' ),
),
- FLUX_THM_REP =FACT(statut='f',min=1,max='**',
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- FLUN =SIMP(statut='f',typ='R' ),
- FLUN_HYDR1 =SIMP(statut='f',typ='R' ),
- FLUN_HYDR2 =SIMP(statut='f',typ='R' ),
+ LIAISON_DDL =FACT(statut='f',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",
+ min=1,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='o',typ='TXM',max='**'),
+ COEF_MULT =SIMP(statut='o',typ='R',max='**'),
+ COEF_IMPO =SIMP(statut='o',typ='R' ),
),
-
- FORCE_ARETE =FACT(statut='f',fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque",
+
+ LIAISON_OBLIQUE =FACT(statut='f',fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique",
min=1,max='**',
- regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),
- AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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' ),
+ 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='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' ),
),
-
- FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",min=1,max='**',
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
+
+ LIAISON_GROUP =FACT(statut='f',fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
+ min=1,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'),),
- 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' ),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=no,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
- 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",) ),
+ SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,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),
),
- FORCE_CONTOUR =FACT(statut='f',fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER",
+ LIAISON_MAIL =FACT(statut='f',min=1,max='**',
+ 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,max='**'),
+ MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_ESCL =SIMP(statut='f',typ=no,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",) ),
+ ),
+
+
+ LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",min=1,max='**',
+ regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
+ ),
+
+ LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque", min=1,max='**',
+ 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,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,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',fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds",
+ min=1,max='**',
+ regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ DDL =SIMP(statut='o',typ='TXM',max='**'),
+ ),
+
+ LIAISON_CHAMNO =FACT(statut='f',fr="définir une relation linéaire entre tous les ddls d'un concept cham_nno",
+ min=1,max='**',
+# type de cham_no CO()
+ CHAM_NO =SIMP(statut='o',typ=cham_no), #CO()
+ COEF_IMPO =SIMP(statut='o',typ='R' ),
+ NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
+ ),
+
+ VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
+
+ CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=1,max='**',
+ regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),),
+ APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
+ into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")),
+ RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
+ LISSAGE =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","LAGRANGIEN","PENALISATION","CONTINUE") ),
+ PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ",
+ fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
+ regles=(EXCLUS('DIST_2','COEF_IMPO'),
+ EXCLUS('DIST_1','COEF_IMPO'),),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP")),
+ FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ),
+ 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,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ COEF_IMPO =SIMP(statut='f',typ='R'),
+ COEF_MULT_2 =SIMP(statut='f',typ='R'),
+ VECT_NORM_2 =SIMP(statut='f',typ='R',max=3),
+ VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
+ DIST_1 =SIMP(statut='f',typ='R'),
+ DIST_2 =SIMP(statut='f',typ='R'),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),),
+ b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
+ fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
+ FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
+ 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,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ DIST_1 =SIMP(statut='f',typ='R'),
+ DIST_2 =SIMP(statut='f',typ='R'),
+ VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
+ COULOMB =SIMP(statut='o',typ='R',max=1),
+ 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)",
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
+ E_N =SIMP(statut='f',typ='R'),
+ FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
+ 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,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ DIST_1 =SIMP(statut='f',typ='R'),
+ DIST_2 =SIMP(statut='f',typ='R'),
+ VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
+ COULOMB =SIMP(statut='o',typ='R',max=1),
+ 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)",
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
+ FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
+ INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")),
+ COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
+ MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
+ 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),
+ b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
+ COULOMB =SIMP(statut='o',typ='R',max=1),
+ 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),),),
+ ),
+
+ FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",min=1,max='**',
+ regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
+ AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,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',fr="Appliquer des forces surfaciques sur une face d'éléments volumiques",
min=1,max='**',
regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
- AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
+ AU_MOINS_UN('FX','FY','FZ'),),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,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_ELEC =FACT(statut='f',
- fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé",
+ FORCE_ARETE =FACT(statut='f',fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque",
min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
- PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('FX','FY','FZ','POSITION'),
- EXCLUS('FX','POSITION'),
- EXCLUS('FY','POSITION'),
- EXCLUS('FZ','POSITION'),),
-# trop de regles : les blocs conditionnels permettent d en suprimer
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),
+ AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
-
- 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 ),
-
- POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
- 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),
- ),
- ),
-
- FORCE_FACE =FACT(statut='f',fr="Appliquer des forces surfaciques sur une face d'éléments volumiques",
+ 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',fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER",
min=1,max='**',
regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
- AU_MOINS_UN('FX','FY','FZ'),),
+ AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,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',fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique",
FZ =SIMP(statut='f',typ='R' ),
),
- IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",min=1,max='**',
- regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),),
+ PRES_REP =FACT(statut='f',fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",
+ min=1,max='**',
+ 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,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- IMPE =SIMP(statut='o',typ='R' ),
+ PRES =SIMP(statut='f',typ='R' ),
+ CISA_2D =SIMP(statut='f',typ='R' ),
),
- FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",min=1,max='**',
- regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
- AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no,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),
+ EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",min=1,max='**',
+ regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
+ GROUP_MA_INT =SIMP(statut='o',typ=grma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ PRES =SIMP(statut='o',typ='R' ),
),
-
+
+ EPSI_INIT =FACT(statut='f',fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",
+ min=1,max='**',
+ 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,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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='**',
+ GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'),
+ GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'),
+ GROUP_MA_COLL =SIMP(statut='o',typ=grma,max='**'),
+ CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ),
+ regles =(UN_PARMI('POIDS_1','POIDS_2'),),
+ POIDS_1 =SIMP(statut='f',typ='R'),
+ POIDS_2 =SIMP(statut='f',typ='R'),
+ ),
+
FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='f',typ='R' ),
),
-
- INTE_ELEC =FACT(statut='f',fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire",
- min=1,max='**',
+
+ FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",min=1,max='**',
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'),),
+ 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,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
- TRANS =SIMP(statut='f',typ='R',max='**'),
- SYME =SIMP(statut='f',typ='R',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",) ),
),
-
- LIAISON_CHAMNO =FACT(statut='f',fr="définir une relation linéaire entre tous les ddls d'un concept cham_nno",
- min=1,max='**',
-# type de cham_no CO()
- CHAM_NO =SIMP(statut='o',typ=cham_no), #CO()
- COEF_IMPO =SIMP(statut='o',typ='R' ),
- NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
- ),
+
LIAISON_COQUE =FACT(statut='f',min=1,max='**',
GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
),
- LIAISON_DDL =FACT(statut='f',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",
- min=1,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='o',typ='TXM',max='**'),
- COEF_MULT =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ='R' ),
- ),
- LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque", min=1,max='**',
- 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,max='**'),
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
- NOEUD_2 =SIMP(statut='f',typ=no,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_GROUP =FACT(statut='f',fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
+ RELA_CINE_BP =FACT(statut='f',min=1,max='**',
+ CABLE_BP =SIMP(statut='o',typ=cabl_precont ),
+ SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+ FORCE_ELEC =FACT(statut='f',
+ fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé",
min=1,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,max='**'),
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
- NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO_2 =SIMP(statut='f',typ=no,max='**'),
- NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
+ regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
+ PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
+ AU_MOINS_UN('FX','FY','FZ','POSITION'),
+ EXCLUS('FX','POSITION'),
+ EXCLUS('FY','POSITION'),
+ EXCLUS('FZ','POSITION'),),
+# trop de regles : les blocs conditionnels permettent d en suprimer
+ TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+
+ 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 ),
- SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,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_OBLIQUE =FACT(statut='f',fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique",
- min=1,max='**',
- 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='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' ),
- ),
+ POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
+ 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),
+ ),
+ ),
- LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",min=1,max='**',
- regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
- ),
- LIAISON_UNIF =FACT(statut='f',fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds",
+
+
+ INTE_ELEC =FACT(statut='f',fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire",
min=1,max='**',
- regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
+ 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,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- DDL =SIMP(statut='o',typ='TXM',max='**'),
- ),
-
- LIAISON_UNIL_NO =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
- UN_PARMI('GROUP_MA_2','MAILLE_2'),),
- GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),# CO()
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),# CO()
- GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),# CO()
- MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),# CO()
- 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 ),
- ANGLE_MAX =SIMP(statut='f',typ='R' ),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",
- into=("SANS","TRESCA","COULOMB") ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
- into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ),
- COULOMB =SIMP(statut='f',typ='R' ),
- TRESCA =SIMP(statut='f',typ='R' ),
- E_T =SIMP(statut='f',typ='R' ),
- COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- CONTACT =SIMP(statut='f',typ='TXM',into=("MAINTENU",) ),
- JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ TRANS =SIMP(statut='f',typ='R',max='**'),
+ SYME =SIMP(statut='f',typ='R',max='**'),
+ ),
- LIAISON_MAIL =FACT(statut='f',min=1,max='**',
- 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,max='**'),
- MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'),
- GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'),
- NOEUD_ESCL =SIMP(statut='f',typ=no,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",) ),
- ),
+
+ IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",min=1,max='**',
+ regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ IMPE =SIMP(statut='o',typ='R' ),
+ ),
+ VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",min=1,max='**',
+ regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ VNOR =SIMP(statut='o',typ='R' ),
+ ),
+
+
+
ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",min=1,max='**',
regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
PRES =SIMP(statut='o',typ='R' ),
),
- PRES_REP =FACT(statut='f',fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",
- min=1,max='**',
+ FLUX_THM_REP =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('PRES','CISA_2D' ),),
+ AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- PRES =SIMP(statut='f',typ='R' ),
- CISA_2D =SIMP(statut='f',typ='R' ),
+ FLUN =SIMP(statut='f',typ='R' ),
+ FLUN_HYDR1 =SIMP(statut='f',typ='R' ),
+ FLUN_HYDR2 =SIMP(statut='f',typ='R' ),
),
-
- PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4),
-
- RELA_CINE_BP =FACT(statut='f',min=1,max='**',
- CABLE_BP =SIMP(statut='o',typ=cabl_precont ),
- SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- 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),),
-
- VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",min=1,max='**',
- regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- VNOR =SIMP(statut='o',typ='R' ),
- ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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",
docu="U4.44.05-d2",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
MODELE =SIMP(statut='o',typ=modele ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- DDL_IMPO =FACT(statut='f',min=01,max='**',
+ DDL_IMPO =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
PRES =SIMP(statut='f',typ='C' ),
PHI =SIMP(statut='f',typ='C' ),
),
- FORCE_POUTRE =FACT(statut='f',min=01,max='**',
+ FORCE_POUTRE =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
VY =SIMP(statut='f',typ='C' ),
VZ =SIMP(statut='f',typ='C' ),
),
- LIAISON_DDL =FACT(statut='f',min=01,max='**',
+ LIAISON_DDL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
NOEUD =SIMP(statut='f',typ=no,max='**'),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 22/10/2002 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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 une grandeur",
docu="U4.44.01-g3",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'),),
- MODELE =SIMP(statut='o',typ=modele ),
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 ),
DDL_IMPO =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
PRE1 =SIMP(statut='f',typ=(fonction) ),
PRE2 =SIMP(statut='f',typ=(fonction) ),
),
- LIAISON_UNIF =FACT(statut='f',min=1,max='**',
- fr="Imposer une meme valeur (inconnue) a des ddls d un emsemble de noeuds",
- regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
+
+ FACE_IMPO =FACT(statut='f',min=1,max='**',
+ 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,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- DDL =SIMP(statut='o',typ='TXM',max='**'),
+ DX =SIMP(statut='f',typ=(fonction) ),
+ DY =SIMP(statut='f',typ=(fonction) ),
+ DZ =SIMP(statut='f',typ=(fonction) ),
+ DRX =SIMP(statut='f',typ=(fonction) ),
+ DRY =SIMP(statut='f',typ=(fonction) ),
+ DRZ =SIMP(statut='f',typ=(fonction) ),
+ GRX =SIMP(statut='f',typ=(fonction) ),
+ PRES =SIMP(statut='f',typ=(fonction) ),
+ PHI =SIMP(statut='f',typ=(fonction) ),
+ TEMP =SIMP(statut='f',typ=(fonction) ),
+ PRE1 =SIMP(statut='f',typ=(fonction) ),
+ PRE2 =SIMP(statut='f',typ=(fonction) ),
+ DNOR =SIMP(statut='f',typ=(fonction) ),
+ DTAN =SIMP(statut='f',typ=(fonction) ),
),
- LIAISON_SOLIDE =FACT(statut='f',min=1,max='**',
- fr="Modéliser une partie indéformable d une structure",
- regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
+
+ LIAISON_DDL =FACT(statut='f',min=1,max='**',
+ fr="Définir 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='**'),
- NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
+ DDL =SIMP(statut='o',typ='TXM',max='**'),
+ COEF_MULT =SIMP(statut='o',typ='R',max='**'),
+ COEF_IMPO =SIMP(statut='o',typ=(fonction) ),
),
+
LIAISON_OBLIQUE =FACT(statut='f',min=1,max='**',
fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
regles=(UN_PARMI('GROUP_NO','NOEUD'),
DRX =SIMP(statut='f',typ=(fonction) ),
DRY =SIMP(statut='f',typ=(fonction) ),
DRZ =SIMP(statut='f',typ=(fonction) ),
- ),
- LIAISON_COQUE =FACT(statut='f',min=1,max='**',
+ ),
+
+ LIAISON_GROUP =FACT(statut='f',min=1,max='**',
+ fr="Définir des relations linéaires 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,max='**'),
MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
- NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
+ SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,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) ),
+ 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),
),
- FACE_IMPO =FACT(statut='f',min=1,max='**',
- 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
+
+ CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=1,max='**',
+ regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),),
+ APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
+ into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")),
+ RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
+ LISSAGE =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","LAGRANGIEN","PENALISATION","CONTINUE") ),
+ PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ",
+ fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
+ regles=(EXCLUS('DIST_2','COEF_IMPO'),
+ EXCLUS('DIST_1','COEF_IMPO'),),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP")),
+ FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ),
+ 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,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ COEF_IMPO =SIMP(statut='f',typ='R'),
+ COEF_MULT_2 =SIMP(statut='f',typ='R'),
+ VECT_NORM_2 =SIMP(statut='f',typ='R',max=3),
+ VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
+ DIST_1 =SIMP(statut='f',typ=(fonction)),
+ DIST_2 =SIMP(statut='f',typ=(fonction)),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),),
+ b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
+ fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
+ FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
+ 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,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ DIST_1 =SIMP(statut='f',typ=(fonction)),
+ DIST_2 =SIMP(statut='f',typ=(fonction)),
+ VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
+ COULOMB =SIMP(statut='o',typ='R',max=1),
+ 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)",
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
+ E_N =SIMP(statut='f',typ='R'),
+ FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
+ 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,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ DIST_1 =SIMP(statut='f',typ=(fonction)),
+ DIST_2 =SIMP(statut='f',typ=(fonction)),
+ VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
+ COULOMB =SIMP(statut='o',typ='R',max=1),
+ 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)",
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
+ FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
+ INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")),
+ COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
+ MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
+ DIRE_APPA =SIMP(statut='f',typ='R',max=3),
+ ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2),
+ ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30),
+ b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
+ COULOMB =SIMP(statut='o',typ='R',max=1),
+ 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),),),
+ ),
+
+ LIAISON_UNIF =FACT(statut='f',min=1,max='**',
+ fr="Imposer une meme valeur (inconnue) a des ddls d un emsemble de noeuds",
+ regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- DX =SIMP(statut='f',typ=(fonction) ),
- DY =SIMP(statut='f',typ=(fonction) ),
- DZ =SIMP(statut='f',typ=(fonction) ),
- DRX =SIMP(statut='f',typ=(fonction) ),
- DRY =SIMP(statut='f',typ=(fonction) ),
- DRZ =SIMP(statut='f',typ=(fonction) ),
- GRX =SIMP(statut='f',typ=(fonction) ),
- PRES =SIMP(statut='f',typ=(fonction) ),
- PHI =SIMP(statut='f',typ=(fonction) ),
- TEMP =SIMP(statut='f',typ=(fonction) ),
- PRE1 =SIMP(statut='f',typ=(fonction) ),
- PRE2 =SIMP(statut='f',typ=(fonction) ),
- DNOR =SIMP(statut='f',typ=(fonction) ),
- DTAN =SIMP(statut='f',typ=(fonction) ),
- ),
- LIAISON_DDL =FACT(statut='f',min=1,max='**',
- fr="Définir 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=(fonction) ),
),
- LIAISON_GROUP =FACT(statut='f',min=1,max='**',
- fr="Définir des relations linéaires 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,max='**'),
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
- NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
- GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
- NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
- SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,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) ),
- 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_SOLIDE =FACT(statut='f',min=1,max='**',
+ fr="Modéliser une partie indéformable d une structure",
+ regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
),
+
+
FORCE_NODALE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_NO','NOEUD'),
AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
MZ =SIMP(statut='f',typ=(fonction) ),
ANGL_NAUT =SIMP(statut='f',typ=(fonction),max=3 ),
),
- FORCE_INTERNE =FACT(statut='f',min=1,max='**',
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- FX =SIMP(statut='f',typ=(fonction) ),
- FY =SIMP(statut='f',typ=(fonction) ),
- FZ =SIMP(statut='f',typ=(fonction) ),
- ),
+
FORCE_FACE =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
AU_MOINS_UN('FX','FY','FZ'),),
MY =SIMP(statut='f',typ=(fonction) ),
MZ =SIMP(statut='f',typ=(fonction) ),
),
+
+ FORCE_INTERNE =FACT(statut='f',min=1,max='**',
+ 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,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ FX =SIMP(statut='f',typ=(fonction) ),
+ FY =SIMP(statut='f',typ=(fonction) ),
+ FZ =SIMP(statut='f',typ=(fonction) ),
+ ),
+
PRES_REP =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
CISA_2D =SIMP(statut='f',typ=(fonction) ),
),
- FORCE_COQUE =FACT(statut='f',min=1,max='**',
+ EPSI_INIT =FACT(statut='f',min=1,max='**',
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
+ AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- FX =SIMP(statut='f',typ=(fonction) ),
- FY =SIMP(statut='f',typ=(fonction) ),
- FZ =SIMP(statut='f',typ=(fonction) ),
- MX =SIMP(statut='f',typ=(fonction) ),
- MY =SIMP(statut='f',typ=(fonction) ),
- MZ =SIMP(statut='f',typ=(fonction) ),
- F1 =SIMP(statut='f',typ=(fonction) ),
- F2 =SIMP(statut='f',typ=(fonction) ),
- F3 =SIMP(statut='f',typ=(fonction) ),
- MF1 =SIMP(statut='f',typ=(fonction) ),
- MF2 =SIMP(statut='f',typ=(fonction) ),
- PRES =SIMP(statut='f',typ=(fonction) ),
- PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",
- into=("SUP","INF","MOY","MAIL") ),
+ EPXX =SIMP(statut='f',typ=(fonction) ),
+ EPYY =SIMP(statut='f',typ=(fonction) ),
+ EPZZ =SIMP(statut='f',typ=(fonction) ),
+ EPXY =SIMP(statut='f',typ=(fonction) ),
+ EPXZ =SIMP(statut='f',typ=(fonction) ),
+ EPYZ =SIMP(statut='f',typ=(fonction) ),
),
+
FORCE_POUTRE =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
VY =SIMP(statut='f',typ=(fonction) ),
VZ =SIMP(statut='f',typ=(fonction) ),
),
+
FORCE_TUYAU =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='f',typ=(fonction) ),
),
+
+ FORCE_COQUE =FACT(statut='f',min=1,max='**',
+ 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,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ FX =SIMP(statut='f',typ=(fonction) ),
+ FY =SIMP(statut='f',typ=(fonction) ),
+ FZ =SIMP(statut='f',typ=(fonction) ),
+ MX =SIMP(statut='f',typ=(fonction) ),
+ MY =SIMP(statut='f',typ=(fonction) ),
+ MZ =SIMP(statut='f',typ=(fonction) ),
+ F1 =SIMP(statut='f',typ=(fonction) ),
+ F2 =SIMP(statut='f',typ=(fonction) ),
+ F3 =SIMP(statut='f',typ=(fonction) ),
+ MF1 =SIMP(statut='f',typ=(fonction) ),
+ MF2 =SIMP(statut='f',typ=(fonction) ),
+ PRES =SIMP(statut='f',typ=(fonction) ),
+ PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",
+ into=("SUP","INF","MOY","MAIL") ),
+ ),
+
+ LIAISON_COQUE =FACT(statut='f',min=1,max='**',
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
+ NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
+ ),
+
+
VITE_FACE =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
PRESENT_ABSENT('GROUP_MA','MAILLE'),),
FONC_SIGNAL =SIMP(statut='o',typ=(fonction) ),
DIST_ORIG =SIMP(statut='o',typ='R' ),
),
- EPSI_INIT =FACT(statut='f',min=1,max='**',
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- EPXX =SIMP(statut='f',typ=(fonction) ),
- EPYY =SIMP(statut='f',typ=(fonction) ),
- EPZZ =SIMP(statut='f',typ=(fonction) ),
- EPXY =SIMP(statut='f',typ=(fonction) ),
- EPXZ =SIMP(statut='f',typ=(fonction) ),
- EPYZ =SIMP(statut='f',typ=(fonction) ),
- ),
- CONTACT =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),
- EXCLUS('DIST_2','COEF_IMPO'),
- EXCLUS('DIST_1','COEF_IMPO'),
- EXCLUS('COEF_MULT_2','GROUP_MA_1'),
- EXCLUS('COEF_MULT_2','MAILLE_1'),
- EXCLUS('COEF_IMPO','GROUP_MA_1'),
- EXCLUS('COEF_IMPO','MAILLE_1'),),
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP") ),
- APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
- into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME") ),
- RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",
- into=("NOEUD_BOUCLE","NOEUD_VOISIN") ),
- INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD")),
- COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
- COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
- MODL_AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2),
- ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30),
- ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
- LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- SEUIL_INIT =SIMP(statut='f',typ='I',defaut=0),
- REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")),
- b_act_reac =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
- fr="Paramètre de la réactualisation géométrique",
- NB_REAC_GEOM =SIMP(statut='o',typ='I'),),
- NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")),
- METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
- into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ),
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
- COULOMB =SIMP(statut='f',typ='R',max=1,defaut=0.E+0),
- E_N =SIMP(statut='f',typ='R' ),
- E_T =SIMP(statut='f',typ='R' ),
- COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
- VECT_NORM_2 =SIMP(statut='f',typ='R',max=3),
- PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE",) ),
- GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**' ),
- GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_2 =SIMP(statut='f',typ=ma,max='**' ),
- SANS_NOEUD =SIMP(statut='f',typ=no,max='**' ),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DIST_1 =SIMP(statut='f',typ=(fonction) ),
- DIST_2 =SIMP(statut='f',typ=(fonction) ),
- COEF_IMPO =SIMP(statut='f',typ='R',defaut=0.E+0),
- COEF_MULT_2 =SIMP(statut='f',typ='R',defaut=1.E+0),
- ),
+
+
FLUX_THM_REP =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
fr=" ",
docu="",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
regles=(AU_MOINS_UN('CARA_TORSION', ),),
MODELE =SIMP(statut='o',typ=modele ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",
into=("OUI","NON") ),
- CARA_TORSION =FACT(statut='f',min=01,max='**',
+ CARA_TORSION =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_MA'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
,fr="Affectation de charges et conditions aux limites thermiques constantes",
docu="U4.44.02-g2",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) ),
VERI_DDL =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"),
- LIAISON_DDL =FACT(statut='f',min=01,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' ),
- ),
- TEMP_IMPO =FACT(statut='f',min=01,max='**',
+ MODELE =SIMP(statut='o',typ=(modele) ),
+
+ TEMP_IMPO =FACT(statut='f',min=1,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",) ),
TEMP =SIMP(statut='f',typ='R'),
TEMP_INF =SIMP(statut='f',typ='R'),
TEMP_SUP =SIMP(statut='f',typ='R'), ),
- LIAISON_UNIF =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP") ),
- ),
- LIAISON_CHAMNO =FACT(statut='f',min=01,max='**',
- CHAM_NO =SIMP(statut='o',typ=cham_no),# 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") ),
- ),
- SOURCE =FACT(statut='f',min=01,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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- SOUR =SIMP(statut='f',typ='R'),
- SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ),
- ),
- FLUX_REP =FACT(statut='f',min=01,max='**',
+
+ FLUX_REP =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
PRESENT_PRESENT('CARA_TORSION','GROUP_MA'),
FLUN_SUP =SIMP(statut='f',typ='R'),
CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ),
),
- ECHANGE =FACT(statut='f',min=01,max='**',
+
+
+ RAYONNEMENT =FACT(statut='f',min=1,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,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ SIGMA =SIMP(statut='o',typ='R'),
+ EPSILON =SIMP(statut='o',typ='R'),
+ TEMP_EXT =SIMP(statut='o',typ='R'),
+ ),
+
+ ECHANGE =FACT(statut='f',min=1,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'),
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',min=1,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,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ SOUR =SIMP(statut='f',typ='R'),
+ SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ),
),
- ECHANGE_PAROI =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
- UN_PARMI('GROUP_MA_2','MAILLE_2'),),
- GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_2 =SIMP(statut='f',typ=ma,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',min=1,max=3),
- CENTRE =SIMP(statut='f',typ='R',min=2,max=3),
- ),
- GRAD_TEMP_INIT =FACT(statut='f',min=01,max='**',
+
+ GRAD_TEMP_INIT =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
FLUX_Y =SIMP(statut='f',typ='R' ),
FLUX_Z =SIMP(statut='f',typ='R' ),
),
- LIAISON_GROUP =FACT(statut='f',min=01,max='**',
+
+ LIAISON_DDL =FACT(statut='f',min=1,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',min=1,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'),
ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
CENTRE =SIMP(statut='f',typ='R',max='**'),
),
- CONVECTION =FACT(statut='f',min=01,max='**',
- VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ),
- ),
- RAYONNEMENT =FACT(statut='f',min=01,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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- SIGMA =SIMP(statut='o',typ='R'),
- EPSILON =SIMP(statut='o',typ='R'),
- TEMP_EXT =SIMP(statut='o',typ='R'),
- ),
- LIAISON_MAIL =FACT(statut='f',min=01,max='**',
+
+ LIAISON_MAIL =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL',
'NOEUD_ESCL'),),
TRAN =SIMP(statut='f',typ='R',max='**' ),
ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ),
CENTRE =SIMP(statut='f',typ='R',max='**' ),
+ ),
+
+ ECHANGE_PAROI =FACT(statut='f',min=1,max='**',
+ regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
+ UN_PARMI('GROUP_MA_2','MAILLE_2'),),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,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',min=1,max=3),
+ CENTRE =SIMP(statut='f',typ='R',min=2,max=3),
+ ),
+
+ LIAISON_UNIF =FACT(statut='f',min=1,max='**',
+ regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
+ into=("TEMP","TEMP_INF","TEMP_SUP") ),
+ ),
+
+ LIAISON_CHAMNO =FACT(statut='f',min=1,max='**',
+ CHAM_NO =SIMP(statut='o',typ=cham_no),# 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',min=1,max='**',
+ VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ),
+ ),
+
+
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther,
fr="Affectation de charges et conditions aux limites thermiques fonction dune grandeur (temps, ...)",
docu="U4.44.02-g2",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) ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- LIAISON_DDL =FACT(statut='f',min=1,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) ),
- ),
+ MODELE =SIMP(statut='o',typ=(modele) ),
+
TEMP_IMPO =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'),
TEMP_INF =SIMP(statut='f',typ=(fonction) ),
TEMP_SUP =SIMP(statut='f',typ=(fonction) ),
),
- LIAISON_UNIF =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP") ),
- ),
- SOURCE =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- SOUR =SIMP(statut='o',typ=(fonction) ),
- ),
+
FLUX_REP =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
FLUX_Y =SIMP(statut='f',typ=(fonction) ),
FLUX_Z =SIMP(statut='f',typ=(fonction) ),
),
+
FLUX_NL =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
FLUN =SIMP(statut='o',typ=(fonction) ),
+ ),
+
+
+ RAYONNEMENT =FACT(statut='f',min=1,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,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ SIGMA =SIMP(statut='o',typ=(fonction) ),
+ EPSILON =SIMP(statut='o',typ=(fonction) ),
+ TEMP_EXT =SIMP(statut='o',typ=(fonction) ),
),
+
+
+
ECHANGE =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
COEF_H_SUP =SIMP(statut='f',typ=(fonction) ),
TEMP_EXT_SUP =SIMP(statut='f',typ=(fonction) ),
),
+
+
+ SOURCE =FACT(statut='f',min=1,max='**',
+ regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
+ TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ SOUR =SIMP(statut='o',typ=(fonction) ),
+ ),
+
+ GRAD_TEMP_INIT =FACT(statut='f',min=1,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,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ FLUX_X =SIMP(statut='f',typ=(fonction) ),
+ FLUX_Y =SIMP(statut='f',typ=(fonction) ),
+ FLUX_Z =SIMP(statut='f',typ=(fonction) ),
+ ),
+
ECHANGE_PAROI =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
UN_PARMI('GROUP_MA_2','MAILLE_2'),),
ANGL_NAUT =SIMP(statut='f',typ='R',min=1,max=3),
CENTRE =SIMP(statut='f',typ='R',min=2,max=3),
),
- GRAD_TEMP_INIT =FACT(statut='f',min=1,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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- FLUX_X =SIMP(statut='f',typ=(fonction) ),
- FLUX_Y =SIMP(statut='f',typ=(fonction) ),
- FLUX_Z =SIMP(statut='f',typ=(fonction) ),
+
+ LIAISON_DDL =FACT(statut='f',min=1,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) ),
),
+
LIAISON_GROUP =FACT(statut='f',min=1,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'),
ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
CENTRE =SIMP(statut='f',typ='R',max='**'),
),
- CONVECTION =FACT(statut='f',min=1,max='**',
- VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ),
- ),
- RAYONNEMENT =FACT(statut='f',min=1,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",) ),
+
+ LIAISON_UNIF =FACT(statut='f',min=1,max='**',
+ regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- SIGMA =SIMP(statut='o',typ=(fonction) ),
- EPSILON =SIMP(statut='o',typ=(fonction) ),
- TEMP_EXT =SIMP(statut='o',typ=(fonction) ),
+ DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
+ into=("TEMP","TEMP_INF","TEMP_SUP") ),
+ ),
+
+ CONVECTION =FACT(statut='f',min=1,max='**',
+ VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ),
),
+
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
fr="Affectation de caractéristiques de matériaux à un maillage",
docu="U4.43.03-f",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
MAILLAGE =SIMP(statut='o',typ=maillage),
MODELE =SIMP(statut='f',typ=modele),
- AFFE =FACT(statut='o',min=01,max='**',
+ AFFE =FACT(statut='o',min=1,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,max='**'),
TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE JMBHH01 J.M.PROIX
AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g3",
+ UIinfo={"groupes":("Modélisation",)},
fr="Affectation des éléments finis sur le maillage",reentrant='n',
regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
MAILLAGE =SIMP(statut='o',typ=(maillage) ),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
VERIF =SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD") ),
- AFFE_SOUS_STRUC =FACT(statut='f',min=01,max=01,
+ AFFE_SOUS_STRUC =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('TOUT','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
),
- AFFE =FACT(statut='f',min=01,max='**',
+ AFFE =FACT(statut='f',min=1,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,max='**'),
b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'",
fr="modelisations mécaniques",
MODELISATION =SIMP(statut='o',typ='TXM', into=(
- "2D_CONTACT",
"2D_DIS_T",
"2D_DIS_TR",
"2D_FLUI_ABSO",
"2D_FLUIDE",
"3D",
"3D_ABSO",
- "3D_CONTACT",
"3D_FAISCEAU",
"3D_FLUI_ABSO",
"3D_FLUIDE",
"3D_HHMD",
"3D_HMD",
"3D_THHD",
+ "3D_THVD",
"3D_THHMD",
"3D_THMD",
"AXIS_HHMD",
"AXIS_HMD",
"AXIS_THHD",
+ "AXIS_THVD",
"AXIS_THHMD",
"AXIS_THMD",
"D_PLAN_HHMD",
"D_PLAN_HMD",
"D_PLAN_THHD",
+ "D_PLAN_THVD",
"D_PLAN_THHMD",
"D_PLAN_THMD",
"DIS_T",
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-g1",
+ UIinfo={"groupes":("Modélisation",)},
fr="Interrogation sur le catalogue des commandes et les concepts produits",
regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
TYPE_ELEM =FACT(fr="couple type_elem option",
- statut='f',min=01,max=01,
+ statut='f',min=1,max=1,
INITEL =SIMP(statut='f',typ='TXM',defaut="NON",
into=("OUI","NON",) ),
),
- CONCEPT =FACT(statut='f',min=01,max='**',
+ CONCEPT =FACT(statut='f',min=1,max='**',
NOM =SIMP(fr="liste des noms de concept",
statut='f',typ='TXM',max='**',defaut="*"),
OPTION =SIMP(fr="option d'édition de concept",
into=("TOUT_TYPE","CREER","A_CREER",) ),
),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage,
fr="Assembler deux maillages sous un seul nom",
docu="U4.23.03-e",reentrant='n',
+ UIinfo={"groupes":("Maillage",)},
MAILLAGE =SIMP(statut='o',typ=maillage,min=2,max=2 ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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",
docu="U4.65.04-d",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ),
OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
fr="Construction d une matrice assemblée",docu="U4.61.22-f",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),
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/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene,
fr="Assemblage de vecteurs de chargement en coordonnées généralisées",
docu="U4.65.05-d",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ),
- CHAR_SOUS_STRUC =FACT(statut='o',min=01,max='**',
+ CHAR_SOUS_STRUC =FACT(statut='o',min=1,max='**',
SOUS_STRUC =SIMP(statut='o',typ='TXM' ),
VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=asse_vecteur_prod,
fr="Assemblage d un second membre",docu="U4.61.23-f",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'),
NUME_DDL =SIMP(statut='o',typ=nume_ddl ),
INFO =SIMP(statut='f',typ='I',into=(1,2,) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8,
fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G",
docu="U4.52.13-c",reentrant='n',
- ENER_SOL =FACT(statut='o',min=01,max=01,
+ UIinfo={"groupes":("Résolution",)},
+ ENER_SOL =FACT(statut='o',min=1,max=1,
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')
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=03),
+ COOR_CENTRE =SIMP(statut='f',typ='R',max=3),
),
- AMOR_INTERNE =FACT(statut='o',min=01,max=01,
+ AMOR_INTERNE =FACT(statut='o',min=1,max=1,
ENER_POT =SIMP(statut='o',typ=tabl_ener_pot ),
GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'),
),
- AMOR_SOL =FACT(statut='o',min=01,max=01,
+ AMOR_SOL =FACT(statut='o',min=1,max=1,
AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
FONC_AMOR_GEO =SIMP(statut='o',typ=fonction,max='**' ),
HOMOGENE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
fr="Calcul de champs par éléments à partir de champs solution ou de champs par éléments",
docu="U4.81.03-g1",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- EXCIT =FACT(statut='f',min=01,max='**',
+ EXCIT =FACT(statut='f',min=1,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),
MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
ANGLE =SIMP(statut='f',typ='I',defaut= 0),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod,
fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)",
docu="U4.61.03-e",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
NUME_DDL =SIMP(statut='o',typ=nume_ddl ),
CHAR_CINE =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ) ),
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
) ;
-#& MODIF COMMANDE DATE 28/03/2001 AUTEUR CIBHHLV L.VIVAN
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod,
docu="U4.63.01-e",reentrant='n',
+ 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=06,fr="Directions du séisme imposé"),
+ 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",
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 08/08/2002 AUTEUR CIBHHLV L.VIVAN
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,docu="U4.81.01-g3",reentrant='f',
+ UIinfo={"groupes":("Post traitements",)},
fr="Compléter un résultat en calculant des champs par éléments (contraintes, déformations,... )",
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
"FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","HYDR_ELNO_ELGA",
"SOUR_ELGA_ELEC","VARI_ELNO_COQU","CRIT_ELNO_RUPT",
"PRES_ELNO_DBEL","PRES_DBEL_DEPL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
- "INTE_ELNO_ACTI","INTE_ELNO_REAC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM"
+ "INTE_ELNO_ACTI","INTE_ELNO_REAC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM",
+ "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"
) ),
RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,
SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters"),
+ b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI'",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max=1 ),
+ NOM_CMP =SIMP(statut='o',typ='TXM',max=1 ),),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 24/06/2002 AUTEUR F1BHHAJ J.ANGLES
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n',
fr="Calcul d un cham de dommage ou d un cisaillement maximal dans le plan critique.",
docu="U4.83.02-c",
+ UIinfo={"groupes":("Post traitements",)},
TYPE_CALCUL = SIMP(statut='o',typ='TXM',
into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ),
into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
"DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
"DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
- HISTOIRE =FACT(statut='o',min=01,max=01,
+ HISTOIRE =FACT(statut='o',min=1,max=1,
RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,
evol_noli) ),
EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 23/04/2001 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu,
docu="U4.66.02-d",reentrant='n',
- VITE_FLUI =FACT(statut='o',min=01,max=01,
+ UIinfo={"groupes":("Matrices/vecteurs",)},
+ VITE_FLUI =FACT(statut='o',min=1,max=1,
fr="Définir la plage de vitesse fluide étudiée",
VITE_MIN =SIMP(statut='o',typ='R' ),
VITE_MAX =SIMP(statut='o',typ='R' ),
NB_POIN =SIMP(statut='o',typ='I' ),
),
- BASE_MODALE =FACT(statut='o',min=01,max=01,
+ BASE_MODALE =FACT(statut='o',min=1,max=1,
regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),),
MODE_MECA =SIMP(statut='o',typ=mode_meca ),
AMOR_UNIF =SIMP(statut='f',typ='R' ),
),
TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ),
- IMPRESSION =FACT(statut='f',min=01,max=01,
+ IMPRESSION =FACT(statut='f',min=1,max=1,
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 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
docu="U4.32.01-e1",reentrant='f',
+ UIinfo={"groupes":("Fonction",)},
regles=(UN_PARMI('VALE_R','LIST_PARA'),),
FONCTION =SIMP(statut='o',typ=fonction ),
NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE MCOURTOI M.COURTOIS
def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,RMS,NOCI_SEISME,MAX,COMB,COMB_C,ENVELOPPE,
- SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE, NORME, **args):
+ SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,LISS_ENVELOP,NORME, **args):
if (RMS != None) : return tabl_fonc_rms
if (MAX != None) : return tabl_fonc_max
if (NOCI_SEISME != None): return tabl_fonc_noci
if (AsType(vale) == fonction ) : return fonction_c
if (AsType(vale) == fonction_c) : return fonction
if (CORR_ACCE != None) : return fonction
+ if (LISS_ENVELOP != None) : return fonction
if (PUISSANCE != None) : return fonction
if (NORME != None) : return table
raise AsException("type de concept resultat non prevu")
CALC_FONCTION=OPER(nom="CALC_FONCTION",op= 91,sd_prod=calc_fonction_prod
,fr="Opérations mathématiques sur des concepts de type fonction",
docu="U4.32.04-f2",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','COMB_C','ENVELOPPE','RMS',
- 'NOCI_SEISME','COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE' ,'NORME'),),
+ 'NOCI_SEISME','COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE',
+ 'NORME','LISS_ENVELOP'),),
FFT =FACT(statut='f',min=1,max=1,fr="Calcul de la transformee de Fourier ou de son inverse",
FONCTION =SIMP(statut='o',typ=(fonction,fonction_c) )
),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
),
),
+ LISS_ENVELOP = FACT(statut='f',min=1,max=1,fr="Lissage d une enveloppe",
+ FONCTION =SIMP(statut='o',typ=fonction ),
+ AMOR =SIMP(statut='f',typ='R',max='**'),
+ FREQ_MIN =SIMP(statut='f',typ='R',defaut=0.2),
+ FREQ_MAX =SIMP(statut='f',typ='R',defaut=33.0),
+ FREQ_CREUX =SIMP(statut='f',typ='R',max='**'),
+ ELARG =SIMP(statut='f',typ='TXM',defaut="GLOBAL",into=("GLOBAL","LOCAL") ),
+ b_elarg_glob = BLOC ( condition = " (ELARG=='GLOBAL') ",
+ GAUCHE =SIMP(statut='f',typ='R',defaut =10.0E0 ),
+ DROITE =SIMP(statut='f',typ='R',defaut =10.0E0 ),
+ ),
+ b_elarg_loc = BLOC ( condition = " (ELARG=='LOCAL') ",
+ FREQ_1 =SIMP(statut='o',typ='R'),
+ FREQ_2 =SIMP(statut='o',typ='R' ),
+ GAUCHE =SIMP(statut='f',typ='R',defaut =10.0E0 ),
+ DROITE =SIMP(statut='f',typ='R',defaut =10.0E0 ),
+ ),
+ LARG_PLAT =SIMP(statut='f',typ='R',defaut=90.0E0),
+ TOLE_LISS =SIMP(statut='f',typ='R',defaut=25.0E0),
+ ECH_FREQ_REF = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ b_oui =BLOC ( condition = "(ECH_FREQ_REF=='OUI') ",
+ regles=(UN_PARMI("LIST_FREQ", "AMOR_ECH"),),
+ LIST_FREQ =SIMP(statut='f',typ=listr8 ),
+ AMOR_ECH =SIMP(statut='f',typ='R',max='**'),
+ ),
+ ),
SPEC_OSCI =FACT(statut='f',min=1,max=1,fr="Calcul du spectre d oscillateur",
METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ),
FONCTION =SIMP(statut='o',typ=fonction ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
fr="calcul de la force ajoutee ",
docu="U4.66.03-a1",reentrant ='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
regles=(EXCLUS('MODE_MECA','MODELE_GENE'),
PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'),
EPS =SIMP(statut='f',typ='R',defaut= 0.E+0), ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca,
fr="Calcul du taux de restitution local d énergie",docu="U4.82.04-f3",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
regles=(UN_PARMI('FOND','FOND_FISS' ),
CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
- COMP_ELAS =FACT(statut='f',min=01,max=01,
+ COMP_ELAS =FACT(statut='f',min=1,max=1,
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,) ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- COMP_INCR =FACT(statut='f',min=01,max=01,
+ COMP_INCR =FACT(statut='f',min=1,max=1,
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,) ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
SIGM =SIMP(statut='f',typ=cham_elem_sief_r),
DEPL =SIMP(statut='f',typ=cham_no_depl_r),
),
LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
),
b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'",
- BORNES =FACT(statut='o',min=01,max='**',
+ BORNES =FACT(statut='o',min=1,max='**',
NUME_ORDRE =SIMP(statut='o',typ='I'),
VALE_MIN =SIMP(statut='o',typ='R'),
VALE_MAX =SIMP(statut='o',typ='R'),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 03/07/2002 AUTEUR CIBHHPD D.NUNEZ
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
fr="Calcul du taux de restitution d énergie par la méthode theta en thermo-élasticité en 2D ou en 3D",
docu="U4.82.03-f2",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
regles=(UN_PARMI('RESULTAT','DEPL'),
EXCLUS('COMP_ELAS','COMP_INCR'),),
MODELE =SIMP(statut='o',typ=modele),
CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
- COMP_ELAS =FACT(statut='f',min=01,max=01,
+ COMP_ELAS =FACT(statut='f',min=1,max=1,
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,) ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- COMP_INCR =FACT(statut='f',min=01,max=01,
+ COMP_INCR =FACT(statut='f',min=1,max=1,
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,) ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
SIGM =SIMP(statut='f',typ=cham_elem_sief_r),
DEPL =SIMP(statut='f',typ=cham_no_depl_r),
),
OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G",
into=("CALC_G","CALC_G_LAGR","CALC_K_G","G_BILINEAIRE","CALC_G_MAX","CALC_DG",) ),
b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'",
- BORNES =FACT(statut='o',min=01,max='**',
+ BORNES =FACT(statut='o',min=1,max='**',
NUME_ORDRE =SIMP(statut='o',typ='I'),
VALE_MIN =SIMP(statut='o',typ='R'),
VALE_MAX =SIMP(statut='o',typ='R'),
PROPAGATION =SIMP(statut='o',typ='R'),
),
b_calc_dg =BLOC(condition="OPTION=='CALC_DG'",
- SENSIBILITE =FACT(statut='f',min=01,max=01,
+ SENSIBILITE =FACT(statut='f',min=1,max=1,
THETA =SIMP(statut='o',typ=theta_geom ),
),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp,
fr="Calcul d une matrice interspectrale d une fonction du temps",
docu="U4.36.03-e",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' ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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 raideur ajoutées",
docu="U4.66.01-c",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'),),
EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod
,fr="Calcul des matrices élémentaires",docu="U4.61.01-g1",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",
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
),
) ;
-#& MODIF COMMANDE DATE 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,docu="U4.85.01-b1",reentrant='o',
+ UIinfo={"groupes":("Post traitements",)},
fr="Calcule la métallurgie a partir du résultat du calcul thermique",
MODELE =SIMP(statut='o',typ=modele ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
RESULTAT =SIMP(statut='o',typ=evol_ther ),
- ETAT_INIT =FACT(statut='o',min=01,max=01,
- regles=(UN_PARMI('NUME_INIT','META_INIT',),),
+ ETAT_INIT =FACT(statut='o',min=1,max=1,
+ regles=(UN_PARMI('NUME_INIT', 'INST_INIT', 'META_INIT',),),
EVOL_THER =SIMP(statut='f',typ=evol_ther ),
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") ),
+ ),
META_INIT =SIMP(statut='f',typ=carte_var2_r ),
),
- COMP_INCR =FACT(statut='o',min=01,max='**',
+ COMP_INCR =FACT(statut='o',min=1,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,) ),
OPTION =SIMP(statut='f',typ='TXM'
,into=("META_ELNO_TEMP",) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,docu="U4.81.02-f3",reentrant='o',
+ UIinfo={"groupes":("Post traitements",)},
RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
mode_acou,mode_stat,mode_stat_depl,mode_stat_acce,
mode_stat_forc,evol_ther,evol_noli,base_modale,
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
) ;
-#& MODIF COMMANDE DATE 03/07/2002 AUTEUR CIBHHPD D.NUNEZ
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-d",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
fr="Affectation d un champ sur le maillage (mécanique de la rupture)",
regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
MODELE =SIMP(statut='o',typ=(modele) ),
FOND_FISS =SIMP(statut='f',typ=fond_fiss),
FOND_3D =SIMP(statut='f',typ=(fond_fiss) ),
- THETA_3D =FACT(statut='f',min=01,max='**',
+ THETA_3D =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
UN_PARMI('MODULE','MODULE_FO'),
ENSEMBLE('MODULE','R_INF','R_SUP'),
),
DIRE_THETA =SIMP(statut='f',typ=(cham_no_depl_r) ),
DIRECTION =SIMP(statut='f',typ='R',max='**'),
- THETA_2D =FACT(statut='f',min=01,max='**',
+ THETA_2D =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_NO','NOEUD'),),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
NOEUD =SIMP(statut='f',typ=no,max='**'),
R_INF =SIMP(statut='o',typ='R'),
R_SUP =SIMP(statut='o',typ='R'),
),
- THETA_BANDE =FACT(statut='f',min=01,max='**',
+ THETA_BANDE =FACT(statut='f',min=1,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") ),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
- IMPRESSION =FACT(statut='f',min=01,max=01,
+ IMPRESSION =FACT(statut='f',min=1,max=1,
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,docu="U4.61.02-f",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") ),
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,reentrant='f',
fr="Combinaison linéaire de champs par éléments",docu="U4.72.03-e",
+ UIinfo={"groupes":("Résultats et champs",)},
regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),
PRESENT_PRESENT('COMB_FOURIER','ANGL'),),
- COMB_R =FACT(statut='f',min=01,max='**',
+ COMB_R =FACT(statut='f',min=1,max='**',
PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
COEF_R =SIMP(statut='o',typ='R'),
CHAM_ELEM =SIMP(statut='o',
cham_elem_ener_r,cham_elem_crit_r,cham_elem_dbel_r,
cham_elem_pres_r,cham_elem_sief_c ) ),
),
- COMB_C =FACT(statut='f',min=01,max='**',
+ COMB_C =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('COEF_R','COEF_C', ),),
COEF_R =SIMP(statut='f',typ='R'),
COEF_C =SIMP(statut='f',typ='C'),
CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r) ),
),
- COMB_FOURIER =FACT(statut='f',min=01,max='**',
+ COMB_FOURIER =FACT(statut='f',min=1,max='**',
COEF_R =SIMP(statut='f',typ='R',defaut= 1.),
NUME_MODE =SIMP(statut='o',typ='I'),
TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
ANGL =SIMP(statut='f',typ='R' ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op= 30,sd_prod=comb_cham_no_prod
,fr="Combinaison linéaire de champs aux noeuds",
docu="U4.72.02-f",reentrant='f',
+ UIinfo={"groupes":("Résultats et champs",)},
regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),),
- COMB_R =FACT(statut='f',min=01,max='**',
+ COMB_R =FACT(statut='f',min=1,max='**',
PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ),
CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c
,cham_no_pres_r,cham_no_pres_c ) ),
COEF_R =SIMP(statut='o',typ='R' ),
),
- COMB_C =FACT(statut='f',min=01,max='**',
+ COMB_C =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('COEF_R','COEF_C' ),),
CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c
,cham_no_depl_c,cham_no_pres_c ) ),
COEF_R =SIMP(statut='f',typ='R' ),
COEF_C =SIMP(statut='f',typ='C' ),
),
- COMB_FOURIER =FACT(statut='f',min=01,max='**',
+ COMB_FOURIER =FACT(statut='f',min=1,max='**',
CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r) ),
COEF_R =SIMP(statut='f',typ='R',defaut= 1. ),
NUME_MODE =SIMP(statut='o',typ='I' ),
ANGL =SIMP(statut='o',typ='R' ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE G8BHHXD X.DESROCHES
COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
docu="U4.83.31-c",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
RESULTAT =SIMP(statut='o',typ=fourier_elas ),
ANGL =SIMP(statut='o',typ='R',max='**'),
- NOM_CHAM =SIMP(statut='o',typ='TXM',max=05,
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max=5,
into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ),
) ;
-#& MODIF COMMANDE DATE 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE VABHHTS J.PELLET
-def comb_matr_asse_prod(COMB_R,COMB_C,**args):
+def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
if COMB_C != None:
type_mat = AsType(COMB_C.get_child('MATR_ASSE').get_valeur())
if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c
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="Combinaison linéaire de matrices assemblées",
docu="U4.72.01-g1",reentrant='f',
- regles=(UN_PARMI('COMB_R','COMB_C' ),),
- COMB_R =FACT(statut='f',min=01,max='**',
+ UIinfo={"groupes":("Résultats et champs",)},
+ regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),),
+ COMB_R =FACT(statut='f',min=1,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',min=01,max='**',
+ COMB_C =FACT(statut='f',min=1,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',min=1,max=1,
+ 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),
+ AMOR_REDUIT = SIMP(statut='f',typ='R',max='**'),
+ LIST_AMOR = SIMP(statut='f',typ=listr8 ),
+ ),
SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
) ;
-#& MODIF COMMANDE DATE 18/06/2002 AUTEUR CIBHHPD D.NUNEZ
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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",
docu="U4.84.01-e1",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 ),
MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ),
CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- EXCIT =FACT(statut='o',min=01,max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'),
UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),),
NOEUD =SIMP(statut='f',typ=no,max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
AXE =SIMP(statut='f',fr="Excitation suivant un seul axe",
- typ='R',max=03),
+ typ='R',max=3),
TRI_AXE =SIMP(statut='f',fr="Excitation suivant les trois axes mais avec le meme spectre",
- typ='R',max=03),
+ typ='R',max=3),
TRI_SPEC =SIMP(statut='f',fr="Excitation suivant les trois axes avec trois spectres",
typ='TXM',into=("OUI",) ),
b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe",
- SPEC_OSCI =SIMP(statut='o',typ=fonction,max=01 ),
- ECHELLE =SIMP(statut='f',typ='R',max=01),
+ SPEC_OSCI =SIMP(statut='o',typ=fonction,max=1 ),
+ ECHELLE =SIMP(statut='f',typ='R',max=1),
),
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,max=01 ),
- ECHELLE =SIMP(statut='f',typ='R',max=01),
+ SPEC_OSCI =SIMP(statut='o',typ=fonction,max=1 ),
+ ECHELLE =SIMP(statut='f',typ='R',max=1),
),
b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres",
- SPEC_OSCI =SIMP(statut='o',typ=fonction,min=03,max=03 ),
- ECHELLE =SIMP(statut='f',typ='R',min=03,max=03),
+ SPEC_OSCI =SIMP(statut='o',typ=fonction,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',min=01,max=01,
+ COMB_MODE =FACT(statut='o',min=1,max=1,
TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ),
DUREE =SIMP(statut='f',typ='R' ),
),
- COMB_DIRECTION =FACT(statut='f',min=01,max=01,
+ COMB_DIRECTION =FACT(statut='f',min=1,max=1,
TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
),
- COMB_MULT_APPUI =FACT(statut='f',min=01,max='**',
+ COMB_MULT_APPUI =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),
UN_PARMI('TYPE_COMBI','TYPE' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
),
- COMB_DEPL_APPUI=FACT(statut='f',min=01,max='**',
+ COMB_DEPL_APPUI=FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','LIST_CAS'),
UN_PARMI('TYPE_COMBI','TYPE' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)),
TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
),
- DEPL_MULT_APPUI =FACT(statut='f',min=01,max='**',
+ DEPL_MULT_APPUI =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD','GROUP_NO'),
AU_MOINS_UN('DX','DY','DZ' ),),
NOM_CAS =SIMP(statut='o',typ='TXM',max='**'),
"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',min=01,max='**',
+ IMPRESSION =FACT(statut='f',min=1,max='**',
regles=(EXCLUS('TOUT','NIVEAU'),),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),max=03 ),
+ TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),max=3 ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 29/04/2002 AUTEUR GNICOLAS G.NICOLAS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
+# RESPONSABLE VABHHTS J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
if TYPE_CHAM == "CART_DEPL_F" : return carte_depl_f
if TYPE_CHAM == "CART_DEPL_R" : return carte_depl_r
if TYPE_CHAM == "CART_DURT_R" : return carte_durt_r
- if TYPE_CHAM == "CART_ENER_R" : return carte_ener_r
+ if TYPE_CHAM == "CART_ENER_R" : return carte_ener_r
if TYPE_CHAM == "CART_EPSI_R" : return carte_epsi_r
if TYPE_CHAM == "CART_ERREUR" : return carte_erreur
if TYPE_CHAM == "CART_FLUX_R" : return carte_flux_r
CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
fr=" ",docu="U4.72.04-b1",reentrant='n',
- TYPE_CHAM =SIMP(statut='o',typ='TXM',
- into=("CART_DBEL_R","NOEU_DBEL_R","ELEM_DBEL_R",
- "ELNO_DBEL_R","ELGA_DBEL_R","CART_DEPL_C",
- "NOEU_DEPL_C","ELEM_DEPL_C","ELNO_DEPL_C",
- "ELGA_DEPL_C","CART_DEPL_F","NOEU_DEPL_F",
- "ELEM_DEPL_F","ELNO_DEPL_F","ELGA_DEPL_F",
- "CART_DEPL_R","NOEU_DEPL_R","ELEM_DEPL_R",
- "ELNO_DEPL_R","ELGA_DEPL_R","CART_DURT_R",
- "NOEU_DURT_R","ELEM_DURT_R","ELNO_DURT_R",
- "ELGA_DURT_R","CART_ENER_R","NOEU_ENER_R",
- "ELEM_ENER_R","ELNO_ENER_R","ELGA_ENER_R",
- "CART_EPSI_R","NOEU_EPSI_R","ELEM_EPSI_R",
- "ELNO_EPSI_R","ELGA_EPSI_R","CART_ERREUR",
- "NOEU_ERREUR","ELEM_ERREUR","ELNO_ERREUR",
- "ELGA_ERREUR","CART_FLUX_R","NOEU_FLUX_R",
- "ELEM_FLUX_R","ELNO_FLUX_R","ELGA_FLUX_R",
- "CART_GEOM_R","NOEU_GEOM_R","ELEM_GEOM_R",
- "ELNO_GEOM_R","ELGA_GEOM_R","CART_G_DEPL_R",
- "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R",
- "ELGA_G_DEPL_R","CART_HYDR_R","NOEU_HYDR_R",
- "ELEM_HYDR_R","ELNO_HYDR_R","ELGA_HYDR_R",
- "CART_INST_R","NOEU_INST_R","ELEM_INST_R",
- "ELNO_INST_R","ELGA_INST_R","CART_INTE_R",
- "NOEU_INTE_R","ELEM_INTE_R","ELNO_INTE_R",
- "ELGA_INTE_R","CART_META_R","NOEU_META_R",
- "ELEM_META_R","ELNO_META_R","ELGA_META_R",
- "CART_NEUT_F","NOEU_NEUT_F","ELEM_NEUT_F",
- "ELNO_NEUT_F","ELGA_NEUT_F","CART_NEUT_R",
- "NOEU_NEUT_R","ELEM_NEUT_R","ELNO_NEUT_R",
- "ELGA_NEUT_R","CART_PRES_R","NOEU_PRES_R",
- "ELEM_PRES_R","ELNO_PRES_R","ELGA_PRES_R",
- "CART_SIEF_R","NOEU_SIEF_R","ELEM_SIEF_R",
- "ELNO_SIEF_R","ELGA_SIEF_R","CART_SOUR_R",
- "NOEU_SOUR_R","ELEM_SOUR_R","ELNO_SOUR_R",
- "ELGA_SOUR_R","CART_TEMP_F","NOEU_TEMP_F",
- "ELEM_TEMP_F","ELNO_TEMP_F","ELGA_TEMP_F",
- "CART_TEMP_R","NOEU_TEMP_R","ELEM_TEMP_R",
- "ELNO_TEMP_R","ELGA_TEMP_R","CART_VAR2_R",
- "NOEU_VAR2_R","ELEM_VARI_R","ELNO_VARI_R",
- "ELGA_VARI_R","CART_VNOR_C","NOEU_VNOR_C",
+ UIinfo={"groupes":("Résultats et champs",)},
+ TYPE_CHAM =SIMP(statut='o',typ='TXM',
+ into=("CART_DBEL_R","NOEU_DBEL_R","ELEM_DBEL_R",
+ "ELNO_DBEL_R","ELGA_DBEL_R","CART_DEPL_C",
+ "NOEU_DEPL_C","ELEM_DEPL_C","ELNO_DEPL_C",
+ "ELGA_DEPL_C","CART_DEPL_F","NOEU_DEPL_F",
+ "ELEM_DEPL_F","ELNO_DEPL_F","ELGA_DEPL_F",
+ "CART_DEPL_R","NOEU_DEPL_R","ELEM_DEPL_R",
+ "ELNO_DEPL_R","ELGA_DEPL_R","CART_DURT_R",
+ "NOEU_DURT_R","ELEM_DURT_R","ELNO_DURT_R",
+ "ELGA_DURT_R","CART_ENER_R","NOEU_ENER_R",
+ "ELEM_ENER_R","ELNO_ENER_R","ELGA_ENER_R",
+ "CART_EPSI_R","NOEU_EPSI_R","ELEM_EPSI_R",
+ "ELNO_EPSI_R","ELGA_EPSI_R","CART_ERREUR",
+ "NOEU_ERREUR","ELEM_ERREUR","ELNO_ERREUR",
+ "ELGA_ERREUR","CART_FLUX_R","NOEU_FLUX_R",
+ "ELEM_FLUX_R","ELNO_FLUX_R","ELGA_FLUX_R",
+ "CART_GEOM_R","NOEU_GEOM_R","ELEM_GEOM_R",
+ "ELNO_GEOM_R","ELGA_GEOM_R","CART_G_DEPL_R",
+ "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R",
+ "ELGA_G_DEPL_R","CART_HYDR_R","NOEU_HYDR_R",
+ "ELEM_HYDR_R","ELNO_HYDR_R","ELGA_HYDR_R",
+ "CART_INST_R","NOEU_INST_R","ELEM_INST_R",
+ "ELNO_INST_R","ELGA_INST_R","CART_INTE_R",
+ "NOEU_INTE_R","ELEM_INTE_R","ELNO_INTE_R",
+ "ELGA_INTE_R","CART_META_R","NOEU_META_R",
+ "ELEM_META_R","ELNO_META_R","ELGA_META_R",
+ "CART_NEUT_F","NOEU_NEUT_F","ELEM_NEUT_F",
+ "ELNO_NEUT_F","ELGA_NEUT_F","CART_NEUT_R",
+ "NOEU_NEUT_R","ELEM_NEUT_R","ELNO_NEUT_R",
+ "ELGA_NEUT_R","CART_PRES_R","NOEU_PRES_R",
+ "ELEM_PRES_R","ELNO_PRES_R","ELGA_PRES_R",
+ "CART_SIEF_R","NOEU_SIEF_R","ELEM_SIEF_R",
+ "ELNO_SIEF_R","ELGA_SIEF_R","CART_SOUR_R",
+ "NOEU_SOUR_R","ELEM_SOUR_R","ELNO_SOUR_R",
+ "ELGA_SOUR_R","CART_TEMP_F","NOEU_TEMP_F",
+ "ELEM_TEMP_F","ELNO_TEMP_F","ELGA_TEMP_F",
+ "CART_TEMP_R","NOEU_TEMP_R","ELEM_TEMP_R",
+ "ELNO_TEMP_R","ELGA_TEMP_R","CART_VAR2_R",
+ "NOEU_VAR2_R","ELEM_VARI_R","ELNO_VARI_R",
+ "ELGA_VARI_R","CART_VNOR_C","NOEU_VNOR_C",
"ELEM_VNOR_C","ELNO_VNOR_C","ELGA_VNOR_C",
"CART_IRRA_R","NOEU_IRRA_R","ELEM_IRRA_R",
"ELNO_IRRA_R","ELGA_IRRA_R",) ),
# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
# ------------------------------------------------------------------
- regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
+ regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
NUME_DDL =SIMP(statut='f',typ=(nume_ddl) ),
CHAM_NO =SIMP(statut='f',typ=(cham_no) ),
OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ),
- b_affe =BLOC(condition = "OPERATION == 'AFFE'",
- regles=(UN_PARMI('MAILLAGE','MODELE'),EXCLUS('MAILLAGE','PROL_ZERO'),),
+ b_affe =BLOC(condition = "OPERATION == 'AFFE'",
+ regles=(UN_PARMI('MAILLAGE','MODELE'),),
MAILLAGE =SIMP(statut='f',typ=(maillage) ),
MODELE =SIMP(statut='f',typ=(modele) ),
- PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- AFFE =FACT(statut='o',min=01,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
+ b_affe_modele =BLOC(condition = "MODELE != None",
+ PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
+ AFFE =FACT(statut='o',min=1,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,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
NOEUD =SIMP(statut='f',typ=no,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,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,max='**'),
),
),
- b_asse =BLOC(condition = "OPERATION == 'ASSE'",
- regles=(UN_PARMI('MAILLAGE','MODELE'),EXCLUS('MAILLAGE','PROL_ZERO'),),
+ b_asse =BLOC(condition = "OPERATION == 'ASSE'",
+ regles=(UN_PARMI('MAILLAGE','MODELE'),),
MAILLAGE =SIMP(statut='f',typ=(maillage) ),
MODELE =SIMP(statut='f',typ=(modele) ),
- PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- ASSE =FACT(statut='o',min=01,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
+ b_asse_modele =BLOC(condition = "MODELE != None",
+ PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
+ ASSE =FACT(statut='o',min=1,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,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
NOEUD =SIMP(statut='f',typ=no,max='**'),
CHAM_GD =SIMP(statut='o',typ=(cham_gd)),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
- NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ),
+ 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_R =SIMP(statut='f',typ='R',defaut= 1. ),
),
),
- b_eval =BLOC(condition = "OPERATION == 'EVAL'",
+ b_eval =BLOC(condition = "OPERATION == 'EVAL'",
CHAM_F =SIMP(statut='o',typ=(cham_gd)),
CHAM_PARA =SIMP(statut='o',typ=(cham_gd),max='**'),
),
- b_disc =BLOC(condition = "OPERATION == 'DISC'",
+ b_disc =BLOC(condition = "OPERATION == 'DISC'",
MODELE =SIMP(statut='f',typ=(modele) ),
PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
CHAM_GD =SIMP(statut='o',typ=(cham_gd)),
),
- b_extr =BLOC(condition = "OPERATION == 'EXTR'",
- regles=(UN_PARMI('MAILLAGE','RESULTAT'),),
+ b_extr =BLOC(condition = "OPERATION == 'EXTR'",
+ regles=(UN_PARMI('MAILLAGE','RESULTAT'),),
MAILLAGE =SIMP(statut='f',typ=(maillage) ),
RESULTAT =SIMP(statut='f',typ=(resultat) ),
b_extr_maillage =BLOC(condition = "MAILLAGE != None",
NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)),
),
b_extr_resultat =BLOC(condition = "RESULTAT != None",
- regles=(EXCLUS('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE',
+ regles=(EXCLUS('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE',
'NOEUD_CMP','NOM_CAS','ANGL', ),),
SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters"),
- NOM_CHAM =SIMP(statut='o',typ='TXM',
- into=("DEPL","VITE","ACCE",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',
+ into=("DEPL","VITE","ACCE",
"DEPL_ABSOLU","VITE_ABSOLU",
- "TEMP","IRRA","ACCE_ABSOLU",
- "FORC_NODA","REAC_NODA","EFGE_NOEU_DEPL",
- "EFGE_NOEU_CART","EPSI_NOEU_DEPL",
- "SIGM_NOEU_DEPL","SIGM_NOEU_CART",
- "SIPO_NOEU_DEPL","EQUI_NOEU_SIGM",
- "EQUI_NOEU_EPSI","FLUX_NOEU_TEMP",
- "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
- "META_ELGA_TEMP","META_ELNO_TEMP",
- "META_NOEU_TEMP","DURT_ELGA_META",
- "DURT_ELNO_META","DURT_NOEU_META","SIEF_ELGA",
- "SIEF_ELNO_ELGA","SIEF_ELGA_DEPL",
- "VARI_ELNO_ELGA","VARI_ELGA","EPOT_ELEM_DEPL",
- "ECIN_ELEM_DEPL","SOUR_ELGA_ELEC",
- "PRES_ELNO_REEL","PRES_ELNO_IMAG",
- "PRES_ELNO_DBEL","INTE_ELNO_ACTI",
- "INTE_ELNO_REAC","EFGE_ELNO_DEPL",
- "SIGM_ELNO_DEPL","EFGE_ELNO_CART",
- "SIGM_ELNO_CART","SIPO_ELNO_DEPL",
- "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL",
- "EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO",
- "EPSP_ELGA","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
- "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI",
- "ERRE_ELNO_ELGA","ERRE_ELGA_NORE",
- "ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2",
- "SIGM_NOZ1_ELGA","SIGM_NOZ2_ELGA",
- "DEGE_ELNO_DEPL","SIRE_ELNO_DEPL",
- "VNOR_ELEM_DEPL","SIEF_ELNO","VARI_ELNO",
- "SIEF_NOEU_ELGA","VARI_NOEU_ELGA",
- "PRES_NOEU_DBEL","PRES_NOEU_REEL",
- "PRES_NOEU_IMAG","INTE_NOEU_ACTI",
- "INTE_NOEU_REAC","DCHA_ELGA_SIGM",
- "DCHA_ELNO_SIGM","RADI_ELGA_SIGM",
- "RADI_ELNO_SIGM","ENDO_ELNO_SIGA",
- "ENDO_ELNO_SINO","ENDO_ELNO_SIGM",
- "SIGM_ELNO_VARI","SIGM_NOEU_VARI",
- "EPME_ELNO_DEPL","EPME_ELGA_DEPL",
- "EPME_ELNO_DPGE","EPMG_ELNO_DEPL",
- "EPMG_ELGA_DEPL","GRAD_ELGA_THETA",
+ "TEMP","IRRA","ACCE_ABSOLU",
+ "FORC_NODA","REAC_NODA","EFGE_NOEU_DEPL",
+ "EFGE_NOEU_CART","EPSI_NOEU_DEPL",
+ "SIGM_NOEU_DEPL","SIGM_NOEU_CART",
+ "SIPO_NOEU_DEPL","EQUI_NOEU_SIGM",
+ "EQUI_NOEU_EPSI","FLUX_NOEU_TEMP",
+ "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
+ "META_ELGA_TEMP","META_ELNO_TEMP",
+ "META_NOEU_TEMP","DURT_ELGA_META",
+ "DURT_ELNO_META","DURT_NOEU_META","SIEF_ELGA",
+ "SIEF_ELNO_ELGA","SIEF_ELGA_DEPL",
+ "VARI_ELNO_ELGA","VARI_ELGA","EPOT_ELEM_DEPL",
+ "ECIN_ELEM_DEPL","SOUR_ELGA_ELEC",
+ "PRES_ELNO_REEL","PRES_ELNO_IMAG",
+ "PRES_ELNO_DBEL","INTE_ELNO_ACTI",
+ "INTE_ELNO_REAC","EFGE_ELNO_DEPL",
+ "SIGM_ELNO_DEPL","EFGE_ELNO_CART",
+ "SIGM_ELNO_CART","SIPO_ELNO_DEPL",
+ "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL",
+ "EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO",
+ "EPSP_ELGA","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
+ "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI",
+ "ERRE_ELNO_ELGA","ERRE_ELGA_NORE",
+ "ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2",
+ "SIGM_NOZ1_ELGA","SIGM_NOZ2_ELGA",
+ "DEGE_ELNO_DEPL","SIRE_ELNO_DEPL",
+ "VNOR_ELEM_DEPL","SIEF_ELNO","VARI_ELNO",
+ "SIEF_NOEU_ELGA","VARI_NOEU_ELGA",
+ "PRES_NOEU_DBEL","PRES_NOEU_REEL",
+ "PRES_NOEU_IMAG","INTE_NOEU_ACTI",
+ "INTE_NOEU_REAC","DCHA_ELGA_SIGM",
+ "DCHA_ELNO_SIGM","RADI_ELGA_SIGM",
+ "RADI_ELNO_SIGM","ENDO_ELNO_SIGA",
+ "ENDO_ELNO_SINO","ENDO_ELNO_SIGM",
+ "SIGM_ELNO_VARI","SIGM_NOEU_VARI",
+ "EPME_ELNO_DEPL","EPME_ELGA_DEPL",
+ "EPME_ELNO_DPGE","EPMG_ELNO_DEPL",
+ "EPMG_ELGA_DEPL","GRAD_ELGA_THETA",
"GTHE_ELNO_ELGA","GRAD_NOEU_THETA",
- "HYDR_ELGA","HYDR_ELNO_ELGA","HYDR_NOEU_ELGA",
+ "HYDR_ELGA","HYDR_ELNO_ELGA","HYDR_NOEU_ELGA",
"THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",
"VALE_CONT",) ),
TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ),
TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE",into=("VALE","INST",) ),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
LIST_INST =SIMP(statut='f',typ=(listr8) ),
- 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='**'),
- NOM_CAS =SIMP(statut='f',typ='TXM'),
- ANGL =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+ 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='**'),
+ NOM_CAS =SIMP(statut='f',typ='TXM'),
+ ANGL =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",) ),
INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
),
# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULAT :
#-----------------------------------------------------
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
+ TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage,
docu="U4.23.02-d1",reentrant='n',
+ 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'),),
MAILLAGE =SIMP(statut='o',typ=maillage ),
- CREA_POI1 =FACT(statut='f',min=01,max='**',fr="Création de mailles de type POI1 à partir de noeuds",
+ CREA_POI1 =FACT(statut='f',min=1,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,max='**'),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
NOEUD =SIMP(statut='f',typ=no,max='**'),
),
- CREA_MAILLE =FACT(statut='f',min=01,max='**',fr="Duplication de mailles",
+ CREA_MAILLE =FACT(statut='f',min=1,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,max='**'),
PREF_MAILLE =SIMP(statut='o',typ='TXM' ),
PREF_NUME =SIMP(statut='f',typ='I' ),
),
- CREA_GROUP_MA =FACT(statut='f',min=01,max='**',fr="Duplication de mailles et création de groupes de mailles",
+ CREA_GROUP_MA =FACT(statut='f',min=1,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",) ),
PREF_MAILLE =SIMP(statut='o',typ='TXM' ),
PREF_NUME =SIMP(statut='f',typ='I' ),
),
- DETR_GROUP_MA =FACT(statut='f',min=01,max=01,fr="Destruction de groupes de mailles",
+ DETR_GROUP_MA =FACT(statut='f',min=1,max=1,fr="Destruction de groupes de mailles",
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
NB_MAILLE =SIMP(statut='f',typ='I',defaut= 0,
fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ),
),
- MODI_MAILLE =FACT(statut='f',min=01,max='**',fr="Modification du type de mailles",
+ MODI_MAILLE =FACT(statut='f',min=1,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,max='**'),
PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"),
PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ),
),
- REPERE =FACT(statut='f',min=01,max='**',
+ REPERE =FACT(statut='f',min=1,max='**',
fr="changement de repère servant à déterminer les caractéristiques d une section de poutre",
TABLE =SIMP(statut='o',typ=tabl_cara_geom,
fr="Nom de la table contenant les caractéristiques de la section de poutre" ),
fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
),
),
- ECLA_PG =FACT(statut='f',min=01,max=01,
+ ECLA_PG =FACT(statut='f',min=1,max=1,
fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss",
MODELE =SIMP(statut='o',typ=modele ),
SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-e3",reentrant='f',
+ UIinfo={"groupes":("Modélisation",)},
fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes",
OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",),
TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
"EVOL_THER","EVOL_VARC",) ),
NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","TEMP","IRRA","HYDR_ELGA",),max=1 ),
- AFFE =FACT(statut='f',min=01,max='**',
+ AFFE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOM_CAS','NUME_MODE','LIST_INST','INST',),),
CHAM_GD =SIMP(statut='f',typ=(cham_gd)),
NOM_CAS =SIMP(statut='f',typ='TXM' ),
TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ),
- ECLA_PG =FACT(statut='f',min=01,max=01,
+ ECLA_PG =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
MAILLAGE_INIT =SIMP(statut='o',typ=maillage,),
RESU_FINAL =SIMP(statut='o',typ=evol_noli,),
MAILLAGE_FINAL =SIMP(statut='o',typ=maillage,),
- PERM_CHAM =FACT(statut='o',min=01,max=01,
+ PERM_CHAM =FACT(statut='o',min=1,max=1,
GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
GROUP_MA_INIT =SIMP(statut='o',typ=grma),
TRAN =SIMP(statut='o',typ='R',max='**'),
TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ),
- PROL_RTZ =FACT(statut='f',min=01,max=01,
+ PROL_RTZ =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('INST','LIST_INST'),),
MAILLAGE_FINAL =SIMP(statut='o',typ=maillage,),
TABLE =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t"),
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=03,max=03),
- AXE_Z =SIMP(statut='o',typ='R',min=03,max=03),
+ ORIGINE =SIMP(statut='o',typ='R',min=3,max=3),
+ AXE_Z =SIMP(statut='o',typ='R',min=3,max=3),
),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-g2",repetable='n',
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
sd_prod=ops.DEBUT,
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=01,max=01,
+ 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'),
PARTITION =SIMP(statut='f',typ='R'),
),
);
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale,
docu="U4.64.02-f1",reentrant='f',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),),
- CLASSIQUE =FACT(statut='f',min=01,max=01,
+ CLASSIQUE =FACT(statut='f',min=1,max=1,
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',min=01,max='**',
+ RITZ =FACT(statut='f',min=1,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 ),
MULT_ELAS =SIMP(statut='f',typ=mult_elas ),
BASE_MODALE =SIMP(statut='f',typ=base_modale ),
),
- DIAG_MASS =FACT(statut='f',min=01,max='**',
+ DIAG_MASS =FACT(statut='f',min=1,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,) ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_CABLE_BP=OPER(nom="DEFI_CABLE_BP",op= 180,sd_prod=cabl_precont,
fr=" ",
docu="U4.42.04-a",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
MODELE =SIMP(statut='o',typ=modele ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction,
fr="Définition d une fonction constante",
docu="U4.31.01-f",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE =SIMP(statut='o',typ='R',max=01 ),
+ VALE =SIMP(statut='o',typ='R',max=1 ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-e",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
fr="Définition d une coque composite couche par couche",
- COUCHE =FACT(statut='o',min=01,max='**',
+ COUCHE =FACT(statut='o',min=1,max='**',
EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ),
MATER =SIMP(statut='o',typ=(mater) ),
ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.E+0,
val_min=-90.E+0,val_max=90.E+0 ),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
- IMPRESSION =FACT(statut='f',min=01,max=01,
+ IMPRESSION =FACT(statut='f',min=1,max=1,
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
into=("RESULTAT",) ),
),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
docu="U4.25.01-d",reentrant='n',
+ UIinfo={"groupes":("Maillage",)},
regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
- FAISCEAU_TRANS =FACT(statut='f',min=01,max='**',
+ FAISCEAU_TRANS =FACT(statut='f',min=1,max='**',
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 ),
UNITE_CK =SIMP(statut='f',typ='I',defaut=71),
PAS =SIMP(statut='f',typ='R' ),
),
- GRAPPE =FACT(statut='f',min=00,max=01,
+ GRAPPE =FACT(statut='f',max=1,
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
UNITE_CA =SIMP(statut='f',typ='I',defaut=70),
UNITE_KA =SIMP(statut='f',typ='I',defaut=71),
),
- FAISCEAU_AXIAL =FACT(statut='f',min=01,max='**',
+ FAISCEAU_AXIAL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
UN_PARMI('CARA_ELEM','RAYON_TUBE'),
ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ),
- VECT_X =SIMP(statut='f',typ='R',max=03),
+ VECT_X =SIMP(statut='f',typ='R',max=3),
PROF_RHO_FLUI =SIMP(statut='f',typ=fonction ),
PROF_VISC_CINE =SIMP(statut='f',typ=fonction ),
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=04,max=04),
+ PESANTEUR =SIMP(statut='f',typ='R',min=4,max=4),
RUGO_TUBE =SIMP(statut='f',typ='R' ),
- CARA_PAROI =SIMP(statut='f',typ='TXM',max=05,
+ CARA_PAROI =SIMP(statut='f',typ='TXM',max=5,
into=("YC","ZC","R","HY","HZ") ),
- VALE_PAROI =SIMP(statut='f',typ='R',max=05),
+ 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),
COOR_GRILLE =SIMP(statut='f',typ='R',max='**'),
TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'),
),
- COQUE_COAX =FACT(statut='f',min=00,max=01,
+ COQUE_COAX =FACT(statut='f',max=1,
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),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 23/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.MK.10-e",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
fr="Définition d une fonction du temps pour calculer des forces de LAPLACE",
regles=(UN_PARMI('COUR_PRIN','COUR'),
EXCLUS('COUR','COUR_SECO'), ),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 03/10/2001 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction,
docu="U4.35.01-c",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
MAILLAGE =SIMP(statut='o',typ=(maillage) ),
NOEUD_INIT =SIMP(statut='o',typ=no),
NOEUD_FIN =SIMP(statut='o',typ=no),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
,fr="Définition des valeurs réelles ou complexes d une fonction réelle",
docu="U4.31.02-g3",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),),
NOM_PARA =SIMP(statut='o',typ='TXM',
into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,docu="U4.82.01-e",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
fr="Définition de lèvres et d un fond de fissure en 3D",
regles=(UN_PARMI('FOND','FOND_FERME'),
EXCLUS('FOND_FERME','DTAN_ORIG'),
EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,),
MAILLAGE =SIMP(statut='o',typ=maillage ),
- FOND =FACT(statut='f',min=01,max=01,
+ FOND =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
NOEUD_EXTR =SIMP(statut='f',typ=no,max=1),
GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
),
- FOND_FERME =FACT(statut='f',min=01,max=01,
+ FOND_FERME =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
MAILLE_ORIG =SIMP(statut='f',typ=ma,max=1),
GROUP_MA_ORIG =SIMP(statut='f',typ=ma,max=1),
),
- LEVRE_SUP =FACT(statut='f',min=01,max=01,
+ LEVRE_SUP =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('GROUP_MA','MAILLE'),),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- LEVRE_INF =FACT(statut='f',min=01,max=01,
+ LEVRE_INF =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('GROUP_MA','MAILLE', ),),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,max=2),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 14/10/2002 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.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE VABHHTS J.PELLET
def defi_group_prod(MAILLAGE,**args):
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",
docu="U4.22.01-f1",reentrant='o',
- regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),),
+ UIinfo={"groupes":("Maillage",)},
+ regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),),
MAILLAGE =SIMP(statut='o',typ=(maillage,squelette) ),
-
- CREA_GROUP_MA =FACT(statut='f',min=01,max='**',
+
+ CREA_GROUP_MA =FACT(statut='f',min=1,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),
OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE") ),
b_group_ma =BLOC(condition = "GROUP_MA != None",
regles=(EXCLUS('POSITION','NUME_INIT'),),
- NUME_INIT =SIMP(statut='f',typ='I',defaut= 1 ),
- POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
+ 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=02),
- VECT_NORMALE =SIMP(statut='f',typ='R',max=03),
+ 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") ),
+ VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
),
b_sphere =BLOC(condition = "OPTION == 'SPHERE'",
regles=(UN_PARMI('POINT','NOEUD_CENTRE'),),
- POINT =SIMP(statut='f',typ='R',max=03),
+ POINT =SIMP(statut='f',typ='R',max=3),
NOEUD_CENTRE =SIMP(statut='f',typ=no),
- RAYON =SIMP(statut='o',typ='R' ),
+ RAYON =SIMP(statut='o',typ='R' ),
),
b_cylindre =BLOC(condition = "OPTION == 'CYLINDRE'",
regles=(UN_PARMI('POINT','NOEUD_CENTRE'),
UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
- POINT =SIMP(statut='f',typ='R',max=03),
+ POINT =SIMP(statut='f',typ='R',max=3),
NOEUD_CENTRE =SIMP(statut='f',typ=no),
- RAYON =SIMP(statut='o',typ='R' ),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=02),
- VECT_NORMALE =SIMP(statut='f',typ='R',max=03),
+ 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'),
UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
- POINT =SIMP(statut='f',typ='R',max=03),
+ POINT =SIMP(statut='f',typ='R',max=3),
NOEUD_CENTRE =SIMP(statut='f',typ=no),
DIST =SIMP(statut='o',typ='R' ),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=02),
- VECT_NORMALE =SIMP(statut='f',typ='R',max=03),
+ ANGL_NAUT =SIMP(statut='f',typ='R',max=2),
+ VECT_NORMALE =SIMP(statut='f',typ='R',max=3),
),
),
- CREA_GROUP_NO =FACT(statut='f',min=01,max='**',
+ CREA_GROUP_NO =FACT(statut='f',min=1,max='**',
regles = (
AU_MOINS_UN ('TOUT_GROUP_MA','GROUP_MA','NOEUD',
'INTERSEC','UNION','DIFFE','GROUP_NO','OPTION'),
EXCLUS ('TOUT_GROUP_MA','GROUP_MA','NOEUD','INTERSEC','UNION','DIFFE'),),
- TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
-
+
NOEUD =SIMP(statut='f',typ=no,max='**'),
INTERSEC =SIMP(statut='f',typ=grno,max='**'),
UNION =SIMP(statut='f',typ=grno,max='**'),
DIFFE =SIMP(statut='f',typ=grno,max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN",
- "SEGM_DROI_ORDO","NOEUD_ORDO") ),
+ "SEGM_DROI_ORDO","NOEUD_ORDO") ),
b_nom_group_ma =BLOC(condition = "GROUP_MA != None",
NOM =SIMP(statut='f',typ=grma,max='**'),
),
into=("TOUS","SOMMET","MILIEU","CENTRE"),),),
b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" ,
NOM =SIMP(statut='o',typ=geom),
- ),
+ ),
b_group_no =BLOC(condition = "GROUP_NO != None",
regles=(EXCLUS('POSITION','NUME_INIT'),),
- NUME_INIT =SIMP(statut='f',typ='I',defaut= 1 ),
- POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
+ 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_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'",
regles=(UN_PARMI('POINT','NOEUD_CENTRE'),),
- POINT =SIMP(statut='f',typ='R',max=03),
- NOEUD_CENTRE =SIMP(statut='f',typ=no,max=01),
+ POINT =SIMP(statut='f',typ='R',max=3),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1),
RAYON =SIMP(statut='o',typ='R' ),
PRECISION =SIMP(statut='f',typ='R' ),
CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),
b_env_cylindre =BLOC(condition = "OPTION == 'ENV_CYLINDRE'",
regles=(UN_PARMI('POINT','NOEUD_CENTRE'),
UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
- POINT =SIMP(statut='f',typ='R',max=03),
- NOEUD_CENTRE =SIMP(statut='f',typ=no,max=01),
+ POINT =SIMP(statut='f',typ='R',max=3),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1),
RAYON =SIMP(statut='o',typ='R' ),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03),
- VECT_NORMALE =SIMP(statut='f',typ='R',max=03),
+ ANGL_NAUT =SIMP(statut='f',typ='R',max=3),
+ VECT_NORMALE =SIMP(statut='f',typ='R',max=3),
PRECISION =SIMP(statut='f',typ='R' ),
CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),
),
b_env_plan =BLOC(condition = "OPTION == 'PLAN'",
regles=(UN_PARMI('POINT','NOEUD_CENTRE'),
UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
- POINT =SIMP(statut='f',typ='R',max=03),
- NOEUD_CENTRE =SIMP(statut='f',typ=no,max=01),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03),
- VECT_NORMALE =SIMP(statut='f',typ='R',max=03),
+ POINT =SIMP(statut='f',typ='R',max=3),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1),
+ ANGL_NAUT =SIMP(statut='f',typ='R',max=3),
+ VECT_NORMALE =SIMP(statut='f',typ='R',max=3),
PRECISION =SIMP(statut='f',typ='R' ),
CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),
),
b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'",
regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
- UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),),
+ UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),),
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='f',typ='R' ),
CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),
- ),
+ ),
),
INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
docu="U4.36.02-f2",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas,
docu="U4.64.01-e",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
NUME_DDL =SIMP(statut='o',typ=nume_ddl ),
- INTERFACE =FACT(statut='o',min=01,max='**',
+ INTERFACE =FACT(statut='o',min=1,max='**',
regles=(ENSEMBLE('NOM','TYPE'),
# erreur doc U sur la condition qui suit
UN_PARMI('NOEUD','GROUP_NO'),),
FREQ =SIMP(statut='f',typ='R',defaut= 1.),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis,
fr="Définition d une suite croissante d entiers",
docu="U4.34.02-f",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',min=01,max='**',
+ INTERVALLE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOMBRE','PAS'),),
JUSQU_A =SIMP(statut='o',typ='I'),
NOMBRE =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 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8,
fr="Définition d une suite croissante de réels",
docu="U4.34.01-g1",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',min=01,max='**',
+ INTERVALLE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOMBRE','PAS'),),
JUSQU_A =SIMP(statut='o',typ='R'),
NOMBRE =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 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage,
fr="Définition d un nouveau maillage à partir de macro éléments",
docu="U4.23.01-e",reentrant='n',
- DEFI_MAILLE =FACT(statut='o',min=01,max='**',
+ UIinfo={"groupes":("Maillage",)},
+ DEFI_MAILLE =FACT(statut='o',min=1,max='**',
MACR_ELEM_STAT =SIMP(statut='o',typ=macr_elem_stat,max='**' ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- TRAN =SIMP(statut='f',typ='R',max=03),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03),
+ 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=03),
+ CENTRE =SIMP(statut='f',typ='R',max=3),
),
),
- RECO_GLOBAL =FACT(statut='f',min=01,max='**',
+ RECO_GLOBAL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
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_MAILLE =FACT(statut='f',min=01,max='**',
+ RECO_MAILLE =FACT(statut='f',min=1,max='**',
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") ),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
),
),
- DEFI_NOEUD =FACT(statut='f',min=01,max='**',
+ DEFI_NOEUD =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),
fr="Renommage de tous les noeuds" ),
NOEUD_FIN =SIMP(statut='o',typ=no),
),
),
- DEFI_GROUP_NO =FACT(statut='f',min=01,max='**',
+ DEFI_GROUP_NO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','MAILLE'),
AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
GROUP_NO_FIN =SIMP(statut='f',typ=grno),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
fr="Définition des paramètres décrivant le comportement d un matériau",
docu="U4.43.01-g4",reentrant='n',
+ 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',
'SURF_ETAT_SATU','CAM_CLAY_THM','SURF_ETAT_NSAT'),
EXCLUS('LMARC','LMARC_FO'),
EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
- PRESENT_PRESENT('BPEL_BETON','ELAS'),
PRESENT_PRESENT('BPEL_ACIER','ELAS'),
EXCLUS('RCCM','RCCM_FO'),
EXCLUS('WEIBULL','WEIBULL_FO'),
PRESENT_PRESENT('CAM_CLAY','ELAS'),
PRESENT_PRESENT('LAIGLE','ELAS'),
- PRESENT_PRESENT('MAZARS','ELAS'),
+ EXCLUS('MAZARS','MAZARS_FO'),
PRESENT_PRESENT('GRANGER_FD','ELAS_FO'),
),
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='R'),
+ EFFO_N_INIT =SIMP(statut='f',typ=fonction),
regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',),),
RIGI_N_IRRA =SIMP(statut='f',typ=fonction),
RIGI_N_FO =SIMP(statut='f',typ=fonction),
C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="DRZ",into=("DRZ",) ),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
+ VERI_P3 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
NADAI_B =FACT(statut='f',min=0,max=1,
F_C =SIMP(statut='o',typ='R'),
AT =SIMP(statut='o',typ='R'),
BT =SIMP(statut='o',typ='R'),
),
- VENDOCHAB =FACT(statut='f',min=0,max=1,
+ MAZARS_FO=FACT(statut='f',min=0 ,max=1,
+ EPSD0 =SIMP(statut='o',typ=fonction),
+ BETA =SIMP(statut='o',typ='R'),
+ AC =SIMP(statut='o',typ=fonction),
+ BC =SIMP(statut='o',typ=fonction),
+ AT =SIMP(statut='o',typ=fonction),
+ BT =SIMP(statut='o',typ=fonction),
+ VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
+ ),
+ VENDOCHAB =FACT(statut='f',min=0,max=1,
S_VP =SIMP(statut='o',typ='R'),
SEDVP1 =SIMP(statut='o',typ='R'),
SEDVP2 =SIMP(statut='o',typ='R'),
PA =SIMP(statut='o',typ='R'),
),
CJS =FACT(statut='f',min=0,max=1,
- regles=(ENSEMBLE('B_CJS','C_CJS','MU_CJS','PCO',),
- ENSEMBLE('N_CJS','KP','RC',),
- PRESENT_ABSENT('A_CJS','B_CJS',),
- PRESENT_PRESENT('A_CJS','N_CJS',),
- PRESENT_PRESENT('B_CJS','N_CJS', ),),
BETA_CJS =SIMP(statut='o',typ='R'),
RM =SIMP(statut='o',typ='R'),
N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
TAUX_6 =SIMP(statut='f',typ='R'),
TAUX_7 =SIMP(statut='f',typ='R'),
TAUX_8 =SIMP(statut='f',typ='R'),
- FONC_DESORP =SIMP(statut='f',typ=fonction),
QSR_K =SIMP(statut='f',typ='R'),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ),
),
V_GRANGER_FP =FACT(statut='f',min=0,max=1,
QSR_VEIL =SIMP(statut='f',typ='R'),
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),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
SECH_NAPPE =FACT(statut='f',min=0,max=1,
FONCTION =SIMP(statut='o',typ=fonction),
S =SIMP(statut='f',typ=fonction),
N_KE =SIMP(statut='f',typ=fonction),
M_KE =SIMP(statut='f',typ=fonction),
+ VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
LAIGLE =FACT(statut='f',min=0,max=1,
GAMMA_ULT =SIMP(statut='o',typ='R'),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
docu="U4.65.02-d",reentrant='n',
- SOUS_STRUC =FACT(statut='o',min=01,max='**',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
+ SOUS_STRUC =FACT(statut='o',min=1,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=03),
- TRANS =SIMP(statut='f',typ='R',max=03),
+ ANGL_NAUT =SIMP(statut='f',typ='R',max=3),
+ TRANS =SIMP(statut='f',typ='R',max=3),
),
- LIAISON =FACT(statut='o',min=01,max='**',
+ LIAISON =FACT(statut='o',min=1,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' ),
),
- VERIF =FACT(statut='f',min=01,max='**',
+ VERIF =FACT(statut='f',min=1,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") ),
),
) ;
-#& MODIF COMMANDE DATE 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=fonction,
fr="Définition des valeurs d une fonction de deux variables réelles",
docu="U4.31.03-g1",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=("TEMP","INST","X","Y","Z","FREQ","PULS",
- "AMOR","EPAIS","TSEC","HYDR","SECH") ),
+ "AMOR","EPAIS","TSEC","HYDR","SECH",
+ "SAT", "PGAZ","PCAP"
+ ) ),
NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
PARA =SIMP(statut='o',typ='R',max='**'),
FONCTION =SIMP(statut='f',typ=fonction,max='**' ),
NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ",
- "PULS","AMOR","EPAIS") ),
+ "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") ),
VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=obstacle
,fr="Définition d un obstacle plan perpendiculaire à une structure filaire",
docu="U4.44.21-e",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",
VALE =SIMP(statut='f',typ='R',max='**'),
VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"),
) ;
-#& MODIF COMMANDE DATE 10/10/2001 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Définition d'un paramètre de sensibilité",
ang="Definition of a sensitive parameter",
docu="U4.31.xx-a",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',max=01,
+ VALE =SIMP(statut='o',typ='R',max=1,
fr="Valeur du parametre",
ang="Value of the parameter"),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 07/03/2001 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre,
fr="Définition d'un spectre d'excitation turbulente",
docu="U4.44.31-c",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',min=00,max=01,
+ SPEC_LONG_COR_1 =FACT(statut='f',max=1,
LONG_COR =SIMP(statut='o',typ='R' ),
PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
VISC_CINE =SIMP(statut='o',typ='R' ),
),
- SPEC_LONG_COR_2 =FACT(statut='f',min=00,max=01,
+ SPEC_LONG_COR_2 =FACT(statut='f',max=1,
regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
LONG_COR =SIMP(statut='o',typ='R' ),
PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
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',min=00,max=01,
+ SPEC_LONG_COR_3 =FACT(statut='f',max=1,
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 ),
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',min=00,max=01,
+ SPEC_LONG_COR_4 =FACT(statut='f',max=1,
regles=(ENSEMBLE('BETA','GAMMA'),),
LONG_COR =SIMP(statut='o',typ='R' ),
PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
BETA =SIMP(statut='f',typ='R',defaut= 2. ),
GAMMA =SIMP(statut='f',typ='R',defaut= 4. ),
),
- SPEC_CORR_CONV_1=FACT(statut='f',min=00,max=01,
+ SPEC_CORR_CONV_1=FACT(statut='f',max=1,
LONG_COR_1 =SIMP(statut='o',typ='R' ),
LONG_COR_2 =SIMP(statut='f',typ='R' ),
VITE_FLUI =SIMP(statut='o',typ='R' ),
METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE",
into=("AU_YANG","GENERALE","CORCOS") ),
),
- SPEC_CORR_CONV_2=FACT(statut='f',min=00,max=01,
+ SPEC_CORR_CONV_2=FACT(statut='f',max=1,
FONCTION =SIMP(statut='o',typ=fonction ),
VITE_FLUI =SIMP(statut='o',typ='R' ),
FREQ_COUP =SIMP(statut='f',typ='R' ),
COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
),
- SPEC_FONC_FORME =FACT(statut='f',min=00,max=01,
+ SPEC_FONC_FORME =FACT(statut='f',max=1,
regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
ENSEMBLE('INTE_SPEC','FONCTION'),),
INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
MODELE =SIMP(statut='o',typ=modele ),
),
- SPEC_EXCI_POINT =FACT(statut='f',min=00,max=01,
+ SPEC_EXCI_POINT =FACT(statut='f',max=1,
regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
GRAPPE_2 =SIMP(statut='f',typ='TXM',
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
fr="Définition d un maillage de visualisation",
docu="U4.24.01-e",reentrant='n',
+ UIinfo={"groupes":("Maillage",)},
regles=(UN_PARMI('MODE_CYCL','MODELE_GENE','MAILLAGE'),
PRESENT_PRESENT('MODE_CYCL','SECTEUR'),
EXCLUS('SOUS_STRUC','SECTEUR'),
MODE_CYCL =SIMP(statut='f',typ=mode_cycl ),
MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
SQUELETTE =SIMP(statut='f',typ=squelette ),
- RECO_GLOBAL =FACT(statut='f',min=01,max='**',
+ RECO_GLOBAL =FACT(statut='f',min=1,max='**',
regles=(EXCLUS('TOUT','GROUP_NO_1'),
PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
DIST_REFE =SIMP(statut='f',typ='R' ),
),
- NOM_GROUP_MA =FACT(statut='f',min=01,max='**',
+ NOM_GROUP_MA =FACT(statut='f',min=1,max='**',
NOM =SIMP(statut='o',typ='TXM' ),
SOUS_STRUC =SIMP(statut='o',typ='TXM' ),
GROUP_MA =SIMP(statut='o',typ=grma),
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',min=01,max='**',
+ SOUS_STRUC =FACT(statut='f',min=1,max='**',
NOM =SIMP(statut='f',typ='TXM' ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
),
- SECTEUR =FACT(statut='f',min=01,max='**',
+ SECTEUR =FACT(statut='f',min=1,max='**',
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,
fr=" ",docu="U4.43.05-a",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
SYST_GLISSEMENT =FACT(statut='o',min=3,max=3,
N =SIMP(statut='o',typ='R',min=12,max=12 ),
L =SIMP(statut='o',typ='R',max='**' ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 03/10/2001 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.MK.20-d",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
fr="Calculer la fonction d évolution temporelle de température due à l effet JOULE dans un cable",
LIST_INST =SIMP(statut='o',typ=listr8),
INST_CC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
TEMP_EXT_POSE =SIMP(statut='f',typ='R',defaut= 15.0E+0),
TEMP_EXT =SIMP(statut='f',typ='R',defaut= 15.0E+0),
TEMP_RESI_REF =SIMP(statut='f',typ='R',defaut= 20.0E+0),
- PARA_COND_1D =FACT(statut='f',min=01,max='**',
+ PARA_COND_1D =FACT(statut='f',min=1,max='**',
INTE_CC =SIMP(statut='f',typ='R',defaut= 0.0E+0),
INTE_RENC =SIMP(statut='f',typ='R',defaut= 0.0E+0),
A =SIMP(statut='f',typ='R',defaut= 1.0E+0),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-e",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
fr="Définition d un diagramme de transformations en refroidissement continu d un acier",
- HIST_EXP =FACT(statut='o',min=01,max='**',
+ HIST_EXP =FACT(statut='o',min=1,max='**',
VALE =SIMP(statut='o',typ='R',max='**'),
),
- TEMP_MS =FACT(statut='o',min=01,max='**',
+ TEMP_MS =FACT(statut='o',min=1,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',min=01,max='**',
+ GRAIN_AUST =FACT(statut='f',min=1,max='**',
DREF =SIMP(statut='f',typ='R'),
A =SIMP(statut='f',typ='R'),
),
) ;
-#& MODIF COMMANDE DATE 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod,
fr="Affectation d une valeur à une variable Superviseur",
docu="U4.31.04-f1",reentrant='f',
+ UIinfo={"groupes":("Fonction",)},
regles=(UN_PARMI('IS','R8','TX','C8','LS'),),
IS =SIMP(statut='f',typ='I',max='**'),
R8 =SIMP(statut='f',typ='R',max='**'),
C8 =SIMP(statut='f',typ='C',max='**'),
LS =SIMP(statut='f',typ='L',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-d",
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Modification / ajout d une unité logique en sortie en complément de celles définies dans DEBUT",
- IMPRESSION =FACT(statut='o',min=01,max='**',
+ IMPRESSION =FACT(statut='o',min=1,max='**',
NOM =SIMP(statut='o',typ='TXM',max='**'),
UNITE =SIMP(statut='o',typ='I' ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02-e",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
fr="Récupération du champ de déplacement interne à une sous-structure",
DEPL_GLOBAL =SIMP(statut='o',typ=cham_no_depl_r),
MAILLE =SIMP(statut='o',typ=ma,max=1),
NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-d",
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Destruction d un concept utilisateur dans la base GLOBALE",
op_init=ops.detruire,
CONCEPT =FACT(statut='o',min=01,
NOM =SIMP(statut='o',typ=assd,max='**'),
),
);
-#& MODIF COMMANDE DATE 03/10/2001 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.MK.30-d",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
fr="Calcul sous forme d une fonction du temps de la distance minimale entre deux structures filaires",
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),
UN_PARMI('GROUP_MA_2','POIN_FIXE'),),
POIN_FIXE =SIMP(statut='f',typ='R',min=3,max=3),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 28/03/2001 AUTEUR CIBHHLV L.VIVAN
+#& MODIF COMMANDE DATE 14/10/2002 AUTEUR BOYERE E.BOYERE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp
,fr="Calcule la réponse spectrale d une structure linéaire sous une excitation connue par sa DSP",
docu="U4.53.22-d",reentrant='n',
- BASE_MODALE =FACT(statut='o',min=01,max=01,
+ UIinfo={"groupes":("Résolution",)},
+ BASE_MODALE =FACT(statut='o',min=1,max=1,
regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- BANDE =SIMP(statut='f',typ='R',max=02),
+ BANDE =SIMP(statut='f',typ='R',max=2),
NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
b_bande =BLOC(condition = "BANDE != None",
AMOR_UNIF =SIMP(statut='o',typ='R' ),
),
),
MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
- EXCIT =FACT(statut='o',min=01,max=01,
+ EXCIT =FACT(statut='o',min=1,max=1,
regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),
EXCLUS('CHAM_NO','NOEUD'),),
DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),
),
),
- REPONSE =FACT(statut='f',min=01,max=01,
- regles=(EXCLUS('FREQ_MIN','NB_POIN_MODE'),
- EXCLUS('FREQ_MIN','FREQ_EXCIT'),
- ENSEMBLE('FREQ_MIN','FREQ_MAX'),),
-# Toutes les regles ne semblent pas avoir été ecrites dans la doc U
+ REPONSE =FACT(statut='f',min=1,max=1,
+ 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' ),
- FREQ_EXCIT =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ),
- NB_POIN_MODE =SIMP(statut='f',typ='I',defaut= 50 ),
+ 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 26/03/2002 AUTEUR CAMBIER S.CAMBIER
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod,
fr="Réponse dynamique complexe d un système à une excitation harmonique",
docu="U4.53.11-e",reentrant='n',
+ UIinfo={"groupes":("Résolution",)},
regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8 ),
TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max=03,into=("DEPL","VITE","ACCE") ),
- EXCIT =FACT(statut='o',min=01,max='**',
+ NOM_CHAM =SIMP(statut='f',typ='TXM',max=3,into=("DEPL","VITE","ACCE") ),
+ EXCIT =FACT(statut='o',min=1,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_depl_r,cham_no_pres_c,vect_asse_gene ) ),
# 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 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans,
fr="Réponse temporelle d un système à une excitation transitoire",
docu="U4.53.02-g1",reentrant='f',
+ UIinfo={"groupes":("Résolution",)},
# regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),),
regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),),
MODELE =SIMP(statut='f',typ=modele ),
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',min=01,max=01,
+ NEWMARK =FACT(statut='f',min=1,max=1,
ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ),
DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ),
),
- WILSON =FACT(statut='f',min=01,max=01,
+ WILSON =FACT(statut='f',min=1,max=1,
THETA =SIMP(statut='f',typ='R',defaut= 1.4 ),
),
- DIFF_CENTRE =FACT(statut='f',min=01,max=01,
+ DIFF_CENTRE =FACT(statut='f',min=1,max=1,
),
- ADAPT =FACT(statut='f',min=01,max=01,
+ ADAPT =FACT(statut='f',min=1,max=1,
),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT',),
PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT'),),
DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ),
DEPL_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
VITE_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
),
- EXCIT =FACT(statut='f',min=01,max='**',
+ EXCIT =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('CHARGE','VECT_ASSE'),
EXCLUS('CHARGE','COEF_MULT'),
EXCLUS('FONC_MULT','COEF_MULT'),
ACCE =SIMP(statut='f',typ=fonction ),
VITE =SIMP(statut='f',typ=fonction ),
DEPL =SIMP(statut='f',typ=fonction ),
- MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
+ MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
DIRECTION =SIMP(statut='f',typ='R',max='**'),
NOEUD =SIMP(statut='f',typ=no,max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
),
- AMOR_MODAL =FACT(statut='f',min=01,max=01,
+ AMOR_MODAL =FACT(statut='f',min=1,max=1,
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") ),
),
# ce n est pas le mot clesolveur standard
- SOLVEUR =FACT(statut='d',min=01,max=01,
+ SOLVEUR =FACT(statut='d',min=1,max=1,
EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
),
- INCREMENT =FACT(statut='o',min=01,max='**',
+ INCREMENT =FACT(statut='o',min=1,max='**',
regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
LIST_INST =SIMP(statut='f',typ=listr8 ),
FONC_INST =SIMP(statut='f',typ=fonction ),
NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ),
),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),),
LIST_ARCH =SIMP(statut='f',typ=listis ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
fr="Analyse mécanique dynamique non linéaire",docu="U4.53.01-f2",
+ UIinfo={"groupes":("Résolution",)},
regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
UN_PARMI('NEWMARK','HHT', ),),
MODELE =SIMP(statut='o',typ=modele),
DEPL =SIMP(statut='f',typ=fonction),
ACCE =SIMP(statut='f',typ=fonction),
VITE =SIMP(statut='f',typ=fonction),
- MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
DIRECTION =SIMP(statut='f',typ='R',max='**'),
NOEUD =SIMP(statut='f',typ=no,max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
"VISC_TAHERI",
"CHABOCHE",
"VISCOCHAB",
- "VMIS_CIN1_CHAB",
- "VMIS_CIN2_CHAB",
+ "VISC_CIN1_CHAB",
+ "VISC_CIN2_CHAB",
"POLY_CFC",
"LMARC",
"ROUSSELIER",
"KIT_HM",
"KIT_HHM",
"KIT_THH",
+ "KIT_THV",
"KIT_THM",
"KIT_THHM",
"VMIS_ASYM_LINE",
"CAM_CLAY_THM",
"KIT_DDI",
) ),
- ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VMIS_ISOT_LINE =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,)),
- MAZARS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- BETON_GRAD_EPSI =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- BARENBLATT =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+ ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+ VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+ VMIS_ISOT_LINE =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,)),
+ MAZARS =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
+ RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+ BARENBLATT =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+ 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_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,)),
- CHABOCHE =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
- 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,)),
- POLY_CFC =SIMP(statut='c',typ='I',defaut=1688,into=(1688,)),
- LMARC =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=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,)),
- COULOMB =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- ASSE_CORN =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- 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,)),
- ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ASSE_COMBU =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- 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_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,)),
- CAM_CLAY =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- LAIGLE =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)),
- GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
- GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
- GRANGER_FD =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_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,)),
+ VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
+ CHABOCHE =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
+ VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
+ VISC_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
+ VISC_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
+ POLY_CFC =SIMP(statut='c',typ='I',defaut=1688,into=(1688,)),
+ LMARC =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=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,)),
+ COULOMB =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
+ ASSE_CORN =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
+ 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,)),
+ ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+ ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+ ASSE_COMBU =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
+ 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_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,)),
+ CAM_CLAY =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+ LAIGLE =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
+ OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)),
+ GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
+ GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
+ GRANGER_FD =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+ BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
+ KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_THV =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_THM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ KIT_THHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
+ VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',
into=(
# MECA
"ELAS",
"CJS",
- "LAIGLE",
"CAM_CLAY",
+ "LAIGLE",
"ELAS_THM",
"SURF_ETAT_NSAT",
"SURF_ETAT_SATU",
"LIQU_SATU_GAT",
"LIQU_GAZ_ATM",
"LIQU_VAPE_GAZ",
+ "LIQU_VAPE",
"LIQU_NSAT_GAT",
"LIQU_GAZ",
# THER
GAZ =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
LIQU_SATU =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
LIQU_SATU_GAT =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- 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_GAZ_ATM =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
+ LIQU_VAPE_GAZ =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
+ LIQU_VAPE =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
LIQU_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+ LIQU_GAZ =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
THER_HOMO =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
THER_POLY =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
HYDR_UTIL =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp,
fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire",
docu="U4.53.23-c",reentrant='n',
+ UIinfo={"groupes":("Résolution",)},
BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ),
- EXCIT =FACT(statut='o',min=00,max=01,
+ EXCIT =FACT(statut='o',max=1,
INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ),
),
OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene,
fr="Réponse dynamique transitoire en coordonnées généralisées par recombinaison modale",
docu="U4.53.21-f1",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",
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',min=01,max=01,
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
RESU_GENE =SIMP(statut='f',typ=tran_gene ),
DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
),
- INCREMENT =FACT(statut='o',min=01,max='**',
+ INCREMENT =FACT(statut='o',min=1,max='**',
INST_INIT =SIMP(statut='f',typ='R' ),
INST_FIN =SIMP(statut='o',typ='R' ),
PAS =SIMP(statut='f',typ='R' ),
NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
LIST_ARCH =SIMP(statut='f',typ=listis ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ),
- EXCIT =FACT(statut='f',min=01,max='**',
+ EXCIT =FACT(statut='f',min=1,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_MODE','VECT_GENE','COEF_MULT'),
- PRESENT_ABSENT('MULT_APPUI','CORR_STAT'),
+ 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 ),
ACCE =SIMP(statut='f',typ=fonction ),
VITE =SIMP(statut='f',typ=fonction ),
DEPL =SIMP(statut='f',typ=fonction ),
- MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ 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,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",) ),
D_FONC_DT =SIMP(statut='f',typ=fonction ),
D_FONC_DT2 =SIMP(statut='f',typ=fonction ),
),
- CHOC =FACT(statut='f',min=01,max='**',
+ CHOC =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ),
PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
),
- VERI_CHOC =FACT(statut='f',min=01,max='**',
+ VERI_CHOC =FACT(statut='f',min=1,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',min=01,max='**',
+ FLAMBAGE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
FNOR_POST_FL =SIMP(statut='f',typ='R' ),
RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
),
- ANTI_SISM =FACT(statut='f',min=01,max='**',
+ ANTI_SISM =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
UN_PARMI('NOEUD_2','GROUP_NO_2'),
PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
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',min=01,max='**',
+ RELA_EFFO_DEPL =FACT(statut='f',min=1,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 ),
),
- RELA_TRANSIS =FACT(statut='f',min=01,max='**',
+ RELA_TRANSIS =FACT(statut='f',min=1,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 ),
),
- RELA_EFFO_VITE =FACT(statut='f',min=01,max='**',
+ RELA_EFFO_VITE =FACT(statut='f',min=1,max='**',
NOEUD =SIMP(statut='o',typ=no),
SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
NOM_CMP =SIMP(statut='f',typ='TXM' ),
TS_REG_ETAB =SIMP(statut='f',typ='R' ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- IMPRESSION =FACT(statut='f',min=01,max='**',
+ IMPRESSION =FACT(statut='f',min=1,max='**',
regles=(EXCLUS('TOUT','NIVEAU'),),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ 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 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE VABHHTS J.PELLET
ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-b",
+ UIinfo={"groupes":("Impression",)},
regles=(UN_PARMI('TOUT','CO'),),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-5"),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",docu="U7.00.01-a",
+ UIinfo={"groupes":("Impression",)},
LOGICIEL =SIMP(statut='f',typ='TXM' ),
- ARGUMENT =FACT(statut='f',min=01,max='**',
+ ARGUMENT =FACT(statut='f',min=1,max='**',
NOM_PARA =SIMP(statut='f',typ='TXM' ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# 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.
# ======================================================================
-#def extr_mode_prod(FILTRE_MODE,TITRE,IMPRESSION ):
-# Sait-on faire
def extr_mode_prod(FILTRE_MODE,**args):
vale=FILTRE_MODE[0]['MODE']
if AsType(vale) == mode_meca : return mode_meca
EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
docu="U4.52.12-c",reentrant='n',
- FILTRE_MODE =FACT(statut='o',min=01,max='**',
+ UIinfo={"groupes":("Résolution",)},
+ FILTRE_MODE =FACT(statut='o',min=1,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_MODE =SIMP(statut='f',typ='I',max='**'),
NUME_MODE_EXCLU =SIMP(statut='f',typ='I',max='**'),
FREQ_MIN =SIMP(statut='f',typ='R' ),
- CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN"
- ,into=("MASS_EFFE_UN","MASS_GENE") ),
+ 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 ),
),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
- IMPRESSION =FACT(statut='f',min=01,max=01,
+ IMPRESSION =FACT(statut='f',min=1,max=1,
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 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-c2",reentrant='f',
+ UIinfo={"groupes":("Résultats et champs",)},
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 ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-e",
+ UIinfo={"groupes":("Résolution",)},
fr="Préconditionnement pour résolution par gradient conjugué",
reentrant='n',
MATR_ASSE =SIMP(statut='o',
NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
FACT_INTE_SPEC=OPER(nom="FACT_INTE_SPEC",op= 117,sd_prod=interspfact,
fr="Factorisation d une matrice interspectrale hermitienne",
docu="U4.36.04-e",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
regles=(ENSEMBLE('FREQ_FIN','NB_POIN'),),
# regle non indiquée dans la doc U
INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ),
SUR_ECHAN =SIMP(statut='f',typ='R',defaut= 1. ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place",
docu="U4.55.01-f",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,
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# NEW 5.3.23
FERMER=PROC(nom="FERMER",op= 10,fr=" ",
docu="U4.12.02-a",
+ UIinfo={"groupes":("Gestion du travail",)},
UNITE =SIMP(statut='o',typ='I',max='**' ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
docu="U4.11.02-f",
+ UIinfo={"groupes":("Gestion du travail",)},
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",) ),
FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 15/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction,
docu="U4.35.02-c",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ),
) ;
#& MODIF COMMANDE DATE 17/09/2001 AUTEUR MCOURTOI M.COURTOIS
ENTIER = SIMP(typ = 'shell',max=1),
COMPLEXE = SIMP(typ = 'shell',max=1),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=tabl_fonc,
fr="Génération de la fonction temporelle à partir d une matrice interspectrale factorisée",
docu="U4.36.05-e",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
INTE_SPEC_FACT =SIMP(statut='o',typ=interspfact ),
INIT_ALEA =SIMP(statut='f',typ='I',defaut= 12312745 ),
NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1 ),
NB_POIN =SIMP(statut='f',typ='I' ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 16/07/2002 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27,sd_prod=matr_asse_gene_r,
fr="Generateur de matrice aleatoire",
docu="U4.36.06",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
MATR_MOYEN = SIMP(statut='o', typ=matr_asse_gene_r),
DELTA = SIMP(statut='f', typ='R', defaut=0.1),
INIT = SIMP(statut='f', typ='TXM', into=("OUI","NON"),defaut="NON"),
) ;
-#& MODIF COMMANDE DATE 16/07/2002 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op= 28,sd_prod=table,
fr="Generateur de variable aleatoire",
docu="U4.36.07",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="EXP_TRONQUEE"),
VALE_MOY = SIMP(statut='f', typ='R', defaut=0.),
DELTA = SIMP(statut='f', typ='R', defaut=0.1),
INIT = SIMP(statut='f', typ='TXM', into=("OUI","NON"),defaut="NON"),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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",
docu="U7.04.31-c",
+ UIinfo={"groupes":("Fonction",)},
FICHIER =SIMP(statut='f',typ='TXM' ),
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,max='**', ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-a",
+ UIinfo={"groupes":("Fonction",)},
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ',
'LIST_ORDRE' ),),
UNITE_CLASSI =SIMP(statut='o',typ='I' ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
into=("RELATIF","ABSOLU") ),
),
- IMPRESSION =FACT(statut='f',min=01,max='**',
+ IMPRESSION =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD','GROUP_NO', ),),
NOEUD =SIMP(statut='f',typ=no,max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
),
AMOR =SIMP(statut='o',typ='R',max='**'),
) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE VABHHTS J.PELLET
IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-f",
+ UIinfo={"groupes":("Impression",)},
fr="Impression du contenu d un concept utilisateur (pour développeur)",
regles=(UN_PARMI('CO','CHAINE', ),),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
CHAINE =SIMP(statut='f',typ='TXM'),
POSITION =SIMP(statut='f',typ='I',defaut=1),
) ;
-#& MODIF COMMANDE DATE 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE MCOURTOI M.COURTOIS
IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers",
docu="U4.33.01-e2",
+ UIinfo={"groupes":("Fonction",)},
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
FORMAT =SIMP(statut='f',typ='TXM',position='global'
,into=("AGRAF","EXCEL","POSTSCRIPT","RESULTAT","COMMANDE","SEISME") ),
FENETRE =SIMP(statut='f',typ='TXM',defaut="RECTANGLE",into=("CARREE","RECTANGLE"),
fr="Forme de la fenetre contenant le graphique" ),
),
- COURBE =FACT(statut='o',min=01,max='**',fr="Définition de la courbe à tracer",
+ COURBE =FACT(statut='o',min=1,max='**',fr="Définition de la courbe à tracer",
regles=(UN_PARMI('FONCTION','LIST_RESU','TABLE','FONC_X','RESU_GENE'),),
FONCTION =SIMP(statut='f',typ=(fonction, fonction_c),
fr="Fonction réelle ou complexe", ),
),
),
) ;
-#& MODIF COMMANDE DATE 05/03/2002 AUTEUR GNICOLAS G.NICOLAS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE GNICOLAS G.NICOLAS
IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b2",
+ UIinfo={"groupes":("Fonction",)},
fr="Imprime le fichier de configuration de HOMARD.",
ang="Writes the configuration file for HOMARD.",
#
#
# 5. LE TYPE DE TRAITEMENT :
#
- TRAITEMENT =FACT(statut='o',min=01,max=01,
+ TRAITEMENT =FACT(statut='o',min=1,max=1,
#
# 5.1. QUATRE CHOIX EXCLUSIFS :
#
#
# 6. L'ANALYSE DU MAILLAGE
#
- ANALYSE =FACT(statut='f',min=01,max=01,
+ ANALYSE =FACT(statut='f',min=1,max=1,
fr="Analyse du maillage.",
ang="Mesh analysis.",
#
),
#
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire",
docu="U4.91.02-c",
- GENE =FACT(statut='o',min=01,max='**',
+ UIinfo={"groupes":("Impression",)},
+ GENE =FACT(statut='o',min=1,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',
INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-f",
+ UIinfo={"groupes":("Impression",)},
fr="Impression de caractéristiques d'objets JEVEUX (pour développeur)",
ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM',
into=("DISQUE","MEMOIRE","REPERTOIRE",
b_disque =BLOC(condition = "(ENTITE=='DISQUE')",
CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '),
),
- IMPRESSION =FACT(statut='f',min=01,max=01,
+ IMPRESSION =FACT(statut='f',min=1,max=1,
NOM =SIMP(statut='f',typ='TXM' ),
UNITE =SIMP(statut='f',typ='I'),
),
COMMENTAIRE =SIMP(statut='f',typ='TXM' ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
docu="U7.04.33-d1",
+ UIinfo={"groupes":("Impression",)},
MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ),
FICHIER =SIMP(statut='f',typ='TXM' ),
FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
fr="Impression des matrices élémentaires et des matrices assemblées",
docu="U7.04.32-c",
+ UIinfo={"groupes":("Impression",)},
regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
- MATR_ELEM =FACT(statut='f',min=01,max='**',
+ MATR_ELEM =FACT(statut='f',min=1,max='**',
FICHIER =SIMP(statut='f',typ='TXM' ),
FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
into=("IDEAS","RESULTAT") ),
into=("VALEUR","NOEUD","MAILLE") ),
NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ),
),
- MATR_ASSE =FACT(statut='f',min=01,max='**',
+ MATR_ASSE =FACT(statut='f',min=1,max='**',
FICHIER =SIMP(statut='f',typ='TXM' ),
FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
into=("IDEAS","RESULTAT") ),
VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
docu="U7.04.11-c",
+ UIinfo={"groupes":("Impression",)},
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',min=01,max='**',
+ EXCIT =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),),
VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
FONC_MULT =SIMP(statut='f',typ=fonction ),
COEF_MULT =SIMP(statut='f',typ='R' ),
),
- EXCIT_SOL =FACT(statut='f',min=01,max='**',
+ EXCIT_SOL =FACT(statut='f',min=1,max='**',
DIRECTION =SIMP(statut='o',typ='R',max='**'),
FONC_SIGNAL =SIMP(statut='f',typ=fonction ),
NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 05/03/2002 AUTEUR GNICOLAS G.NICOLAS
+#& MODIF COMMANDE DATE 16/10/2002 AUTEUR GNICOLAS G.NICOLAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-g1",
+ UIinfo={"groupes":("Impression",)},
fr="Impression du résultat d un calcul (différents formats)",
MODELE =SIMP(statut='f',typ=modele),
- RESU =FACT(statut='o',min=01,max='**',
+ RESU =FACT(statut='o',min=1,max='**',
FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
),
- b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS'))""",
+ 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 toplogiques",
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
NOEUD =SIMP(statut='f',typ=no,max='**'),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné",
docu="U4.52.01-f",
+ 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"),
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 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE VABHHTS J.PELLET
IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-d2",
+ UIinfo={"groupes":("Impression",)},
fr="Impression d un concept de type table",
TABLE =SIMP(statut='o',typ=table),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT", ),
TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",)),
IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
+ 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 14/02/2001 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-a",
+ UIinfo={"groupes":("Modélisation",)},
fr=" ",
sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0,
NOM_AFNOR =SIMP(statut='o',typ='TXM' ),
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',min=01,max=99,
+ EXTRACTION =FACT(statut='f',min=1,max=99,
COMPOR =SIMP(statut='o',typ='TXM' ),
TEMP_EVAL =SIMP(statut='o',typ='R' ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE G8BHHXD X.DESROCHES
INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-e",
+ UIinfo={"groupes":("Post traitements",)},
fr="Définition d une courbe sur un maillage 2D",reentrant='n',
MAILLAGE =SIMP(statut='o',typ=(maillage) ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- DEFI_SEGMENT =FACT(statut='f',min=01,max='**',
+ DEFI_SEGMENT =FACT(statut='f',min=1,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),
GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
),
- DEFI_ARC =FACT(statut='f',min=01,max='**',
+ DEFI_ARC =FACT(statut='f',min=1,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'),
into=("RELATIF","ABSOLU",) ),
),
- DEFI_CHEMIN =FACT(statut='f',min=01,max='**',
+ DEFI_CHEMIN =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE G8BHHXD X.DESROCHES
INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface,docu="U4.81.12-e",
+ UIinfo={"groupes":("Post traitements",)},
fr="Définition d un chemin sur un maillage 3D",reentrant='n',
MAILLAGE =SIMP(statut='o',typ=maillage),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- DEFI_SEGMENT =FACT(statut='o',min=01,max='**',
+ DEFI_SEGMENT =FACT(statut='o',min=1,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),
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Lire un champ dans un fichier et le stocker dans un concept.",
ang="To read a field in a file and to save it in a concept.",
docu="U7.02.02-b2",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
#
# 1. Le maillage support du champ
#
#
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op= 83,sd_prod=fonction,
fr="Lecture d une fonction dans un fichier ",
docu="U4.32.02-f1",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
UNITE =SIMP(statut='o',typ='I' ),
NOM_PARA =SIMP(statut='f',typ='TXM',
into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
INFO =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
LIRE_INTE_SPEC=OPER(nom="LIRE_INTE_SPEC",op= 116,sd_prod=tabl_intsp,
fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale",
docu="U4.36.01-f2",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',
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Lecture d'un fichier de maillage",
ang="Readings of a mesh file",
docu="U4.21.01-g1",reentrant='n',
+ UIinfo={"groupes":("Maillage",)},
#
UNITE =SIMP(statut='f',typ='I',defaut= 20 ),
#
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
#
) ;
-#& MODIF COMMANDE DATE 16/07/2002 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
fr="Restitution au format MISS3D d une évolution harmonique ou transitoire",
docu="U7.02.31-c",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 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
fr=" ",
docu="U7.02.11-a",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",)),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 16/07/2002 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-d2",reentrant='n',
+ UIinfo={"groupes":("Maillage",)},
fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier IDEAS ou EnSight",
),
b_mode_meca =BLOC(condition="TYPE_RESU=='MODE_MECA'",
NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
- into=("DEPL",) ),
+ into=("DEPL",)
+ ),
+ MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,min=1,max=1,),
+ MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,min=1,max=1,),
),
b_dyna =BLOC(condition="((TYPE_RESU=='DYNA_TRANS') or (TYPE_RESU=='DYNA_HARMO') or\
(TYPE_RESU=='HARM_GENE')) and (DATASET_58=='NON')",
),
),
) ;
-#& MODIF COMMANDE DATE 08/08/2002 AUTEUR CIBHHLV L.VIVAN
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
LIRE_TABLE=OPER(nom="LIRE_TABLE",op=29,sd_prod=lire_table_prod,
docu="U7.02.03",fr="Lecture d un concept de type table",
+ UIinfo={"groupes":("Maillage",)},
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='o',typ='TXM'),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 16/07/2002 AUTEUR GNICOLAS G.NICOLAS
+#& MODIF COMMANDE DATE 08/10/2002 AUTEUR GNICOLAS G.NICOLAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
#
# 2. Version de HOMARD
#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_3",
- into=("V5_3", "V5_N", "V5_N_PERSO"),
+ VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_5",
+ into=("V5_5", "V5_N", "V5_N_PERSO"),
fr="Version de HOMARD",
ang="HOMARD release"),
#
MENAGE = SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ),
#
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_prod,
fr=" ",
docu="U4.CF.20-b1",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"
) ),
PRES_REP =FACT(statut='f',min=1,max=1,
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 ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE F1BHHAJ J.ANGLES
MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op= -19,sd_prod=maillage,
fr=" ",docu="U4.CF.10-b1",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod,
fr=" ",docu="U4.PC.20-b2",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
TYPE_MAILLAGE =SIMP(statut='o',typ='TXM',
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),
),
TITRE =SIMP(statut='f',typ='TXM'),
) ;
# debut entete
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE F1BHHAJ J.ANGLES
MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='n',
fr=" ",docu="U4.PC.10-b1",
+ UIinfo={"groupes":("Outils métier",)},
EXEC_MAILLAGE =FACT(statut='o',min=1,max=1,
LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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",
docu="U4.65.01-e1",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),),
BASE_MODALE =SIMP(statut='o',typ=base_modale ),
MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r ),
OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ",
"DIAG_MASS") ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.62.01-f1",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'),),
INST =SIMP(statut='f',typ='R',defaut=0.E+0),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli,
fr=" ",docu="U4.GJ.20-a",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
MAILLAGE =SIMP(statut='o',typ=maillage),
- DEFI_GOUJ =FACT(statut='o',min=01,max=01,
+ DEFI_GOUJ =FACT(statut='o',min=1,max=1,
TYPE =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")),
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")),
FILET_JEU_HTA =SIMP(statut='f',typ='I',max='**'),
FILET_JEU_HTB =SIMP(statut='f',typ='I',max='**'),
),
- EXCIT =FACT(statut='o',min=01,max=01,
+ EXCIT =FACT(statut='o',min=1,max=1,
TYPE_BLOCAGE =SIMP(statut='o',typ='I',defaut=2,into=(1,2,3)),
FORCE_GOUJ =SIMP(statut='o',typ='R'),
),
- CALCUL =FACT(statut='o',min=01,max=01,
+ CALCUL =FACT(statut='o',min=1,max=1,
TYPE_CALCUL =SIMP(statut='o',typ='TXM',into=("ELASTIQUE","ELASTOPLASTIQUE")),
NB_INCR =SIMP(statut='o',typ='I'),
),
- IMPRESSION =FACT(statut='f',min=01,max=01,
+ IMPRESSION =FACT(statut='f',min=1,max=1,
FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLE",
into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","TABLE")),
VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
TITRE =SIMP(statut='f',typ='TXM'),
INFO =SIMP(statut='f',typ='I',defaut=1 ,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 03/10/2001 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage,
fr=" ",docu="U4.GJ.10-a",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
EXEC_MAILLAGE =FACT(statut='o',min=1,max=1,
LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ),
UNITE_DATG =SIMP(statut='f',typ='I',defaut=70),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 16/07/2002 AUTEUR GNICOLAS G.NICOLAS
+#& MODIF COMMANDE DATE 08/10/2002 AUTEUR GNICOLAS G.NICOLAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
#
# 2. Version de HOMARD
#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_3",
- into=("V5_3", "V5_N","V5_N_PERSO"),
+ VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_5",
+ into=("V5_5", "V5_N","V5_N_PERSO"),
fr="Version de HOMARD",
ang="HOMARD release"),
#
ang="Overlapping checking." ),
#
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=macr_lign_coupe_prod,
docu="",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
fr="extraction d un résultat sur des lignes de coupes définies par 2 points et un intervalle",
RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ),
b_meca =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique",
TABLE =SIMP(statut='o',typ=(table,CO)),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
+# 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
+
+MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,docu="U4.73.02",
+ UIinfo={"groupes":("Résultats et champs",)},
+ sd_prod=macr_recal_prod,
+ fr="Réalise le recalage de modèles Aster",
+ UNITE_ESCL =SIMP(statut='o',typ='I'),
+ RESU_EXP =SIMP(statut='o',typ=assd,min = 1, max='**'),
+ RESU_CALC =SIMP(statut='o',typ=assd,min = 1, max='**'),
+ LIST_PARA =SIMP(statut='o',typ=assd,min = 1, max='**'),
+ ITER_MAXI =SIMP(statut='f',typ='I',defaut=10),
+ RESI_GLOB_RELA =SIMP(statut='f',typ='R',defaut=1.E-3),
+ UNITE_RESU =SIMP(statut='f',typ='I',defaut=91),
+ PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001),
+ GRAPHIQUE =FACT(statut='d',min=1,max=1,
+ UNITE =SIMP(statut='f',typ='I',defaut=90),
+ INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),)
+) ;
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MACRO_CARA_POUTRE=MACRO(nom="MACRO_CARA_POUTRE",op=macro_cara_poutre_ops,sd_prod=tabl_cara_geom,
docu="U4.42.02-d1",reentrant='n',
+ UIinfo={"groupes":("Modélisation",)},
fr="caractéristiques d'une section transversale de poutre à partir d'un maillage 2D",
regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
EXCLUS('SYME_Y','GROUP_MA_BORD'),
ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 20 ),
- SYME_X =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- SYME_Y =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ SYME_X =SIMP(statut='f',typ='TXM',into=("OUI",)),
+ SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",)),
GROUP_MA_BORD =SIMP(statut='f',typ=grma,max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
ORIG_INER =SIMP(statut='f',typ='R',max='**',defaut=(0.E+0,0.E+0)),
LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
MACRO_CHAR_F_U=MACRO(nom="MACRO_CHAR_F_U",op=-15,sd_prod=char_meca,
fr=" ",docu="U4.72.07-a",reentrant='n',
+ UIinfo={"groupes":("Résultats et champs",)},
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
CHARGE =SIMP(statut='o',typ=char_meca),
NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="APRES",into=("NORMAL","APRES")),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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,docu="U4.51.02-d2",reentrant='f',
+ UIinfo={"groupes":("Résolution",)},
regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),),
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='f',typ=cham_mater),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
MACRO_MADMACS=MACRO(nom="MACRO_MADMACS",op=-9,docu="U7.03.21-c",
+ UIinfo={"groupes":("Résolution",)},
fr="Impression au format IDEAS des données pour chainage entre Code_Aster et MADMACS",
regles=(UN_PARMI('MATR_ELEM_RIGI','MATR_RIGI'),
UN_PARMI('MATR_ELEM_MASS','MATR_MASS'),
MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r),
MODE_MECA =SIMP(statut='o',typ=mode_meca),
NMAX_MODE =SIMP(statut='f',typ='I',defaut=10),
- INTERFACE =FACT(statut='f',min=01,max='**',
+ INTERFACE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD','GROUP_NO'),
UN_PARMI('DDL_ACTIF','MASQUE'),),
NOM =SIMP(statut='o',typ='TXM'),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
return None
MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-c1",sd_prod=macro_matr_ajou_prod,
+ UIinfo={"groupes":("Matrices/vecteurs",)},
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'),
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 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
return None
MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,docu="U4.61.21-d1",
+ UIinfo={"groupes":("Matrices/vecteurs",)},
sd_prod=macro_matr_asse_prod,
fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
MODELE =SIMP(statut='o',typ=modele),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 11/06/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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=" ",docu="U7.03.11-a",
+ UIinfo={"groupes":("Matrices/vecteurs",)},
OPTION =FACT(statut='o',min=1,max=1,
regles=(UN_PARMI('TOUT','MODULE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)),
UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),
UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=macro_mode_meca_prod,
docu="U4.52.02-d1",reentrant='n',
+ UIinfo={"groupes":("Résolution",)},
MATR_A =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ),
MATR_B =SIMP(statut='o',typ=(CO,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,max=1,
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 ),
- PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-10 ),
- PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12 ),
- NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ),
- NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30 ),
- PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.4E-10 ),
- NMAX_ITER_BATHE =SIMP(statut='f',typ='I' ,defaut= 12 ),
- PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ),
- PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E0 ),
- NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ),
- PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ),
SEUIL_FREQ =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),
STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
),
into=("MASS_EFFE_UN","MASS_GENE",) ),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
return None
MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.11-d1",
+ UIinfo={"groupes":("Matrices/vecteurs",)},
sd_prod=macro_proj_base_prod,
fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs",
BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene) ),
NB_VECT =SIMP(statut='f',typ='I',defaut= 9999),
- MATR_ASSE_GENE =FACT(statut='f',min=01,max='**',
+ MATR_ASSE_GENE =FACT(statut='f',min=1,max='**',
MATRICE =SIMP(statut='o',typ=(CO,matr_asse)),
MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r),
MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r),
PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ),
),
- VECT_ASSE_GENE =FACT(statut='f',min=01,max='**',
+ VECT_ASSE_GENE =FACT(statut='f',min=1,max='**',
VECTEUR =SIMP(statut='o',typ=(CO,vect_asse)),
TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"),
VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
MAJ_CATA=PROC(nom="MAJ_CATA",op=20,docu="U4.15.01-e1",
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Compilation des catalogues de commandes et d éléments",
- ELEMENT =FACT(statut='f',min=01,max=01,),
+ ELEMENT =FACT(statut='f',min=1,max=1,),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE VABHHTS J.PELLET
MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
fr="Analyse mécanique statique linéaire",docu="U4.51.01-g1",reentrant='n',
+ UIinfo={"groupes":("Résolution",)},
regles=(EXCLUS("INST","LIST_INST"),
AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ),
MODELE =SIMP(statut='o',typ=modele),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 17/06/2002 AUTEUR GNICOLAS G.NICOLAS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE GNICOLAS G.NICOLAS
MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,docu="U4.31.xx-a",
+ UIinfo={"groupes":("Fonction",)},
fr="Mémorisation des noms des concepts dérivés.",
ang="Memorisation of the names of the sensitive concepts.",
ang="Name of the one fonction"),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl,
fr="Modes propres d une structure à répétitivité cyclique à partir d une base de modes propres réels",
docu="U4.52.05-e",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',min=01,max=01,
+ LIAISON =FACT(statut='o',min=1,max=1,
DROITE =SIMP(statut='o',typ='TXM' ),
GAUCHE =SIMP(statut='o',typ='TXM' ),
AXE =SIMP(statut='f',typ='TXM' ),
),
- VERI_CYCL =FACT(statut='f',min=01,max=01,
+ VERI_CYCL =FACT(statut='f',min=1,max=1,
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',min=01,max=01,
+ CALCUL =FACT(statut='o',min=1,max=1,
TOUT_DIAM =SIMP(statut='f',typ='TXM',into=("OUI",) ),
NB_DIAM =SIMP(statut='f',typ='I',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',min=01,max=01),
+ FREQ =SIMP(statut='o',typ='R',min=1,max=1),
),
b_bande =BLOC(condition = "OPTION == 'BANDE'",
- FREQ =SIMP(statut='o',typ='R',min=02,max=02),
+ FREQ =SIMP(statut='o',typ='R',min=2,max=2),
),
# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE
NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod
,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
docu="U4.52.04-g1",reentrant='n',
+ UIinfo={"groupes":("Résolution",)},
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 ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_prod,
fr="Modes propres par itérations simultanées ; valeurs propres et modes propres réels ou complexes",
docu="U4.52.03-f2",reentrant='n',
+ UIinfo={"groupes":("Résolution",)},
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',position='global',typ=matr_asse_depl_r ),
METHODE =SIMP(statut='f',position='global',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',position='global',typ='TXM',defaut="DYNAMIQUE",
into=("MODE_FLAMB","DYNAMIQUE"),
fr="Type d analyse" ),
regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- 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 ),
- ),
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 ),
regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- 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 ),
- ),
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 ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
fr="Calcul de modes statiques",
docu="U4.52.14-f2",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',min=01,max='**',
+ MODE_STAT =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
TOUT =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',min=01,max='**',
+ FORCE_NODALE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
TOUT =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',min=01,max='**',
+ PSEUDO_MODE =FACT(statut='f',min=1,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),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
docu="U4.66.21-c",reentrant='f',
+ 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 ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
# RESPONSABLE G8BHHXD X.DESROCHES
MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage,
fr="Modification de la connectivité de groupes de mailles 2D ou 3D affectées à la modélisation de contact",
docu="U4.23.04-d1",reentrant='o',
- regles=(UN_PARMI('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
- 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE'),
+ UIinfo={"groupes":("Maillage",)},
+ regles=(AU_MOINS_UN('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+ 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
+ 'TRANSLATION','ROTATION','MODI_BASE','ECHELLE',),
+ PRESENT_ABSENT('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+ 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+ PRESENT_ABSENT('DEFORME','ORIE_CONTACT','EQUE_PIQUA','ORIE_PEAU_2D',
+ 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+ PRESENT_ABSENT('EQUE_PIQUA','ORIE_CONTACT','DEFORME','ORIE_PEAU_2D',
+ 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+ PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_CONTACT','DEFORME','EQUE_PIQUA',
+ 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+ PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+ 'ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+ PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+ 'ORIE_PEAU_3D','PLAQ_TUBE','MODI_MAILLE',),
+ PRESENT_ABSENT('PLAQ_TUBE','ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+ 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',),
+ PRESENT_ABSENT('MODI_MAILLE','ORIE_CONTACT','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('EQUE_PIQUA','TUBE_COUDE'),
+ EXCLUS('ROTATION','MODI_BASE'),),
MAILLAGE =SIMP(statut='o',typ=maillage ),
- ORIE_CONTACT =FACT(statut='f',min=01,max=01,
+ ORIE_CONTACT =FACT(statut='f',min=1,max=1,
GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
),
- DEFORME =FACT(statut='f',min=01,max=01,
+ DEFORME =FACT(statut='f',min=1,max=1,
OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
DEPL =SIMP(statut='o',typ=cham_no_depl_r ),
b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'",
GROUP_NO_STRU = SIMP(statut='o',typ=grno,max='**' ),),
),
- EQUE_PIQUA =FACT(statut='f',min=01,max=01,
+ EQUE_PIQUA =FACT(statut='f',min=1,max=1,
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' ),
RAFF_MAIL =SIMP(statut='o',typ='TXM' ),
X_MAX =SIMP(statut='o',typ='R' ),
),
- ORIE_PEAU_2D =FACT(statut='f',min=01,max='**',
+ ORIE_PEAU_2D =FACT(statut='f',min=1,max='**',
GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
),
- ORIE_PEAU_3D =FACT(statut='f',min=01,max='**',
+ ORIE_PEAU_3D =FACT(statut='f',min=1,max='**',
GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
),
- ORIE_NORM_COQUE =FACT(statut='f',min=01,max='**',
+ ORIE_NORM_COQUE =FACT(statut='f',min=1,max='**',
regles=(EXCLUS('NOEUD','GROUP_NO'),
PRESENT_PRESENT('NOEUD','VECT_NORM'),
PRESENT_PRESENT('GROUP_NO','VECT_NORM'),),
GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
- VECT_NORM =SIMP(statut='f',typ='R',max=03),
+ VECT_NORM =SIMP(statut='f',typ='R',max=3),
NOEUD =SIMP(statut='f',typ=no),
GROUP_NO =SIMP(statut='f',typ=grno),
),
b_modele =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)",
MODELE =SIMP(statut='o',typ=modele ),
),
- PLAQ_TUBE =FACT(statut='f',min=01,max=01,
+ PLAQ_TUBE =FACT(statut='f',min=1,max=1,
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',min=01,max=01,
+ TUBE_COUDE =FACT(statut='f',min=1,max=1,
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',min=01,max=01,
+ MODI_MAILLE =FACT(statut='f',min=1,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,max='**'),
GROUP_NO_FOND =SIMP(statut='f',typ=grno,max='**'),
NOEUD_FOND =SIMP(statut='f',typ=no,max='**'),
),
+ MODI_BASE =FACT(statut='f',min=1,max=1,
+ 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',min=1,max=1),
+ TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3),
+ ROTATION =FACT(statut='f',min=1,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),
+ ),
+
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 15/01/2002 AUTEUR CIBHHLV L.VIVAN
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle,
fr=" ",docu="U4.44.22-a",reentrant='f',
+ UIinfo={"groupes":("Modélisation",)},
regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),
PRESENT_PRESENT('TUBE_NEUF','TABL_USURE'),
PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),),
PERCEMENT =SIMP(statut='f',typ='R',defaut=1),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,docu="U4.74.01-a3",reentrant='n',
+ UIinfo={"groupes":("Résultats et champs",)},
fr="Impression des resultats dans un repere cylindrique",
RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
evol_noli,mult_elas,
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',min=01,max='**',
+ MODI_CHAM =FACT(statut='o',min=1,max='**',
TYPE_CHAM =SIMP(statut='o',typ='TXM', max=1,
into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),),
NOM_CHAM =SIMP(statut='o',typ='TXM',max=1 ),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod,
fr="Normalisation de modes propres",
docu="U4.52.11-e",reentrant='f',
+ UIinfo={"groupes":("Résolution",)},
regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),),
MODE =SIMP(statut='o',typ=(mode_meca,mode_flamb) ),
NORME =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...",
AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ),
- MODE_SIGNE =FACT(statut='f',min=00,max=01,fr="Imposer un signe sur une des composantes des modes",
+ MODE_SIGNE =FACT(statut='f',max=1,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"),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE VABHHTS J.PELLET
NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-g1",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',typ=(matr_elem_depl_r ,matr_elem_depl_c,
),
INFO =SIMP(statut='f',typ='I',into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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",
docu="U4.65.03-e1",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",
NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ),
),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea,
fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers",
docu="U4.84.04-d",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),),
INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ),
NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ),
NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ),
),
- DEPASSEMENT =FACT(statut='f',min=01,max='**',
+ DEPASSEMENT =FACT(statut='f',min=1,max='**',
fr="Loi de dépassement d un seuil pendant une durée donnée",
regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
VALE_MIN =SIMP(statut='f',typ='R' ),
PAS =SIMP(statut='f',typ='R' ),
DUREE =SIMP(statut='f',typ='R',defaut= 1. ),
),
- RAYLEIGH =FACT(statut='f',min=01,max='**',
+ RAYLEIGH =FACT(statut='f',min=1,max='**',
fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite",
regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
VALE_MIN =SIMP(statut='f',typ='R' ),
VALE_MAX =SIMP(statut='f',typ='R' ),
PAS =SIMP(statut='f',typ='R' ),
),
- GAUSS =FACT(statut='f',min=01,max='**',
+ GAUSS =FACT(statut='f',min=1,max='**',
fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande",
regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
VALE_MIN =SIMP(statut='f',typ='R' ),
VALE_MAX =SIMP(statut='f',typ='R' ),
PAS =SIMP(statut='f',typ='R' ),
),
- VANMARCKE =FACT(statut='f',min=01,max='**',
+ VANMARCKE =FACT(statut='f',min=1,max='**',
fr="Probabilité de non dépassement de seuil pendant une durée donnée (analyse sismique)",
regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
VALE_MIN =SIMP(statut='f',typ='R' ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna,
fr="Post-traitements en coordonnées généralisées issus de DYNA_TRAN_MODAL",
docu="U4.84.02-d",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',min=01,max='**',
+ CHOC =FACT(statut='f',min=1,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. ),
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',min=01,max=01,
+ RELA_EFFO_DEPL =FACT(statut='f',min=1,max=1,
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 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,docu="U4.81.22-e3",reentrant='f',
+ 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',
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U4.84.03-c",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
fr="Calcul du dommage subi par une structure soumise à unesollicitation de type aléatoire",
regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'),
MATER =SIMP(statut='o',typ=mater),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.01-d1",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
fr="Calcul du dommage subi par une structure soumise à une histoire de chargement",
CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
POST_GOUJ2E=OPER(nom="POST_GOUJ2E",op=187,sd_prod=tabl_post_gouj2e,reentrant='n',
fr=" ",docu="U4.GJ.30-a",
+ UIinfo={"groupes":("Outils métier",)},
TABLE =SIMP(statut='o',typ=tabl_post_rele),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
fr="Calcul des FIC par extrapolation du champ de déplacements sur les lèvres de la fissure",
docu="U4.82.05-b2",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'),
PRESENT_PRESENT('TABL_DEPL_SUP','TABL_DEPL_INF'),),
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 29/03/2002 AUTEUR CIBHHBC R.FERNANDES
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta,
fr="Calcul des FIC par la méthode K_BETA",
docu="U4.82.07-a",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
MAILLAGE = SIMP(statut='o',typ=maillage),
MATER_REV = SIMP(statut='o',typ=mater),
EPAIS_REV = SIMP(statut='o',typ='R'),
INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
TITRE = SIMP(statut='f',typ='TXM',max='**'),
);
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/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 DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# 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,
POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)",
docu="U4.83.11-d1",reentrant='n',
- MATER =SIMP(statut='o',typ=mater ),
+ UIinfo={"groupes":("Post traitements",)},
TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","VALE_INST") ),
+ INFO =SIMP(statut='f',typ='I',into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
- MAILLAGE =SIMP(statut='f',typ=maillage),
OPTION =SIMP(statut='o',typ='TXM',max='**',
into=("PM_PB",
"SN",
"FATIGUE_SPMAX",
- "FATIGUE_ZH210"
+ "FATIGUE_ZH210",
+ "FATIGUE_B3200",
+ "FATIGUE_B3600",
) ),
- SEGMENT =FACT(statut='o',min=01,max='**',fr="Segment sur lequel s effectue le depouillement",
+ b_pm_sn =BLOC(condition="(OPTION == 'PM_PB')or(OPTION == 'SN')or(OPTION == 'FATIGUE_SPMAX')or(OPTION == 'FATIGUE_ZH210')",
+ MATER =SIMP(statut='o',typ=mater ),
+ MAILLAGE =SIMP(statut='f',typ=maillage),
+ SEGMENT =FACT(statut='o',min=1,max='**',fr="Segment sur lequel s effectue le depouillement",
regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
EXCLUS('CHEMIN','GROUP_NO'),
EXCLUS('CHEMIN','NOEUD'),),
b_acce_noeud =BLOC(condition="(NOEUD != None)or(GROUP_NO != None)",
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
- TRANSITOIRE =FACT(statut='o',min=01,max='**',fr="transitoire à dépouiller",
+ ),
+ ),
+ TRANSITOIRE =FACT(statut='o',min=1,max='**',fr="transitoire à dépouiller",
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli) ),
RESU_SIGM_THER =SIMP(statut='f',typ=(evol_elas,evol_noli),fr="résultat sous chargement thermique seul" ),
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_3200 =BLOC(condition="(OPTION == 'FATIGUE_B3200')",
+ MATER =SIMP(statut='o',typ=mater ),
+ CHAR_MECA =FACT(statut='o',min=1,max='**',fr="Chargements mécaniques",
+ NUME_CHAR =SIMP(statut='o',typ='I',max=1,fr="numéro du chargement" ),
+ NOM_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nom du chargement" ),
+ TYPE_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
+ FX =SIMP(statut='f',typ='R',max=1,fr="effort suivant x", ),
+ FY =SIMP(statut='f',typ='R',max=1,fr="effort suivant y", ),
+ FZ =SIMP(statut='f',typ='R',max=1,fr="effort suivant z", ),
+ MX =SIMP(statut='o',typ='R',max=1,fr="moment suivant x", ),
+ MY =SIMP(statut='o',typ='R',max=1,fr="moment suivant y", ),
+ MZ =SIMP(statut='o',typ='R',max=1,fr="moment suivant z", ),
+ ),
+ RESU_MECA_UNIT =FACT(statut='o',min=1,max=1,fr="resultats mécaniques unitaires",
+ TABL_FX =SIMP(statut='f',typ=table,max=1,
+ fr="table relevé des contraintes pour chargement unitaire FX"),
+ TABL_FY =SIMP(statut='f',typ=table,max=1,
+ fr="table relevé des contraintes pour chargement unitaire FY"),
+ TABL_FZ =SIMP(statut='f',typ=table,max=1,
+ fr="table relevé des contraintes pour chargement unitaire FZ"),
+ TABL_MX =SIMP(statut='o',typ=table,max=1,
+ fr="table relevé des contraintes pour chargement unitaire MX"),
+ TABL_MY =SIMP(statut='o',typ=table,max=1,
+ fr="table relevé des contraintes pour chargement unitaire MY"),
+ TABL_MZ =SIMP(statut='o',typ=table,max=1,
+ fr="table relevé des contraintes pour chargement unitaire MZ"),
+ TABL_PRES =SIMP(statut='o',typ=table,max=1,
+ fr="table relevé des contraintes pour chargement unitaire de pression"),
+ ),
+ RESU_THER =FACT(statut='f',min=1,max='**',fr="resultats thermiques",
+ NUME_RESU_THER =SIMP(statut='o',typ='I',max=1,fr="numéro de la table de résultat thermique" ),
+ TABL_RESU_THER =SIMP(statut='o',typ=table,max=1,
+ fr="table relevé des contraintes pour chargement thermique"),
+ ),
+ SITUATION =FACT(statut='o',min=1,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_3600 =BLOC(condition="(OPTION == 'FATIGUE_B3600')",
+ CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
+ MODELE =SIMP(statut='o',typ=modele),
+ CARA_ELEM =SIMP(statut='o',typ=cara_elem),
+ ZONE_ANALYSE =FACT(statut='o',min=1,max=1,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,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ ),
+ RESU_MECA =FACT(statut='o',min=1,max='**',fr="Chargements mécaniques",
+ regles=(UN_PARMI('CHAM_GD','RESULTAT'),),
+ NUME_CHAR =SIMP(statut='o',typ='I',max=1,fr="numéro du chargement" ),
+ NOM_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nom du chargement" ),
+ TYPE_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
+ CHAM_GD =SIMP(statut='f',typ=cham_gd),
+ RESULTAT =SIMP(statut='f',typ=resultat),
+ 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',max=1,into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),),
+ TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max=1),
+ INST =SIMP(statut='f',typ='R',max=1),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',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',min=1,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',max=1,defaut=1.0,fr="indice de contraintes C1 du RCCM"),
+ K1 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes K1 du RCCM"),
+ C2 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes C2 du RCCM"),
+ K2 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes K2 du RCCM"),
+ C3 =SIMP(statut='f',typ='R',max=1,defaut=0.5,fr="indice de contraintes C3 du RCCM"),
+ K3 =SIMP(statut='f',typ='R',max=1,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,max='**',
+ fr="groupe(s) de mailles ou sont affectés les indices de contraintes"),
+ MAILLE =SIMP(statut='f',typ=ma,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,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,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',min=1,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',max=1,fr="numéro de la table de résultat thermique" ),
+ TABL_RESU_THER =SIMP(statut='o',typ=table,max=1,
+ fr="table relevé des températures sur la section"),
+ TABL_MOYE_THER =SIMP(statut='o',typ=table,max=1,
+ fr="table relevé des moyennes sur la section"),
+ TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ ),
+ ),
+ SITUATION =FACT(statut='o',min=1,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 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# ======================================================================
# CONFIGURATION MANAGEMENT OF EDF VERSION
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE G8BHHXD X.DESROCHES
POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-e1",reentrant='n',
- ACTION =FACT(statut='o',min=01,max='**',
+ UIinfo={"groupes":("Post traitements",)},
+ ACTION =FACT(statut='o',min=1,max='**',
regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
EXCLUS('CHEMIN','GROUP_NO'),
EXCLUS('CHEMIN','NOEUD'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli,
fr=" ",docu="U4.PS.10-a",reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
MATER =SIMP(statut='o',typ=(mater) ),
- DEF_EQUI =FACT(statut='f',min=01,max=01,
+ DEF_EQUI =FACT(statut='f',min=1,max=1,
METHODE =SIMP(statut='f',typ='TXM',max='**',defaut="UTO_2_3",
into=("UTO_2_3",) ),
EPAIS =SIMP(statut='o',typ='R'),
TEMP_ANALYSE =SIMP(statut='f',typ='R'),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-d1",reentrant='f',
+ UIinfo={"groupes":("Post traitements",)},
fr="Calcul des volumes d'usure et des profondeurs d'usure",
regles=(UN_PARMI('RESU_GENE','PUIS_USURE'),
PRESENT_PRESENT('RESU_GENE','NOEUD'),
UN_PARMI('INST','LIST_INST'),),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
TABL_USURE =SIMP(statut='f',typ=tabl_post_usur),
INST_INIT =SIMP(statut='f',typ='R'),
),
regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'),
EXCLUS('MATER_USURE','OBSTACLE'),
EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',min=01,max=01,
+ MOBILE =FACT(statut='f',min=1,max=1,
COEF_USURE =SIMP(statut='o',typ='R'),
),
- OBSTACLE =FACT(statut='f',min=01,max=01,
+ OBSTACLE =FACT(statut='f',min=1,max=1,
COEF_USURE =SIMP(statut='o',typ='R'),
),
- SECTEUR =FACT(statut='f',min=01,max='**',
+ SECTEUR =FACT(statut='f',min=1,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")),
ANGL_FIN =SIMP(statut='f',typ='R'),
),
MATER_USURE =SIMP(statut='f',typ='TXM'),
- USURE_OBST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ 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',min=01,max=01,
+ MOBILE =FACT(statut='f',min=1,max=1,
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',min=01,max=01,
+ OBSTACLE =FACT(statut='f',min=1,max=1,
COEF_FNOR =SIMP(statut='f',typ='R' ),
COEF_VTAN =SIMP(statut='f',typ='R' ),
COEF_USURE =SIMP(statut='o',typ='R'),
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',defaut="NON",into=("OUI","NON")),
+ USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)),
FNOR_MAXI =SIMP(statut='f',typ='R' ),
VTAN_MAXI =SIMP(statut='f',typ='R' ),
),
regles=(UN_PARMI('MOBILE','MATER_USURE'),
EXCLUS('MATER_USURE','OBSTACLE'),
EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',min=01,max=01,
+ MOBILE =FACT(statut='f',min=1,max=1,
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',min=01,max=01,
+ OBSTACLE =FACT(statut='f',min=1,max=1,
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',defaut="NON",into=("OUI","NON")),
+ USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)),
),
CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",
"GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,docu="U4.83.21-b",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
fr="Donne l'état adapté ou accommodé d'une structure sous chargement cyclique élastique affine ou non",
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- EXCIT =FACT(statut='o',min=01,max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
CHARGE =SIMP(statut='o',typ=char_meca),
FONC_MULT =SIMP(statut='f',typ=fonction),
TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude",
docu="U4.11.03-g2",sd_prod = ops.POURSUITE,
+ UIinfo={"groupes":("Gestion du travail",)},
op_init = ops.POURSUITE_context,fichier_ini = 1,
PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
into=("OUI","NON"),defaut="OUI"),
UNITE_ASTER =SIMP(statut='f',typ='I',defaut=21),
MODELE =SIMP(statut='o',typ=modele),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
PRE_GIBI=PROC(nom="PRE_GIBI",op=49,docu="U7.01.11-f",
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Conversion d un fichier de maillage GIBI",
UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19),
UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20),
) ;
-#& MODIF COMMANDE DATE 11/06/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
from Macro.pre_gmsh_ops import pre_gmsh_ops
PRE_GMSH=MACRO(nom="PRE_GMSH",op=pre_gmsh_ops,docu="U7.01.01-f",
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Conversion d un fichier universel GMSH au format Aster",
UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19),
UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20),
MODI_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
) ;
-#& MODIF COMMANDE DATE 11/06/2002 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
PRE_GMSH_LECT=PROC(nom="PRE_GMSH_LECT",op=47,docu="U7.01.01-f",
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Conversion d un fichier universel 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 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,docu="U7.01.01-f",
+ 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),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
PROCEDURE=PROC(nom="PROCEDURE",op=-3, docu="U4.13.03-e",
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Nommer le fichier de commandes secondaires",
NOM =SIMP(statut='f',typ='TXM',defaut=" "),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=prod_matr_cham_prod,
fr="Effectuer le produit d une matrice par un vecteur",
docu="U4.72.06-b",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_depl_r,cham_no_depl_c,cham_no_temp_r,cham_no_pres_c ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
raise AsException("type de concept resultat non prevu")
PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,docu="U4.72.05-d2",reentrant='n',
+ UIinfo={"groupes":("Résultats et champs",)},
fr="Projection d'un champ aux noeuds sur les noeuds d'un autre maillage",
#
METHODE =SIMP(statut='f',typ='TXM',defaut="NUAGE_DEG_1",
LIST_FREQ =SIMP(statut='f',typ=listr8),
),
- VIS_A_VIS =FACT(statut='f',min=01,max='**',
+ VIS_A_VIS =FACT(statut='f',min=1,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",) ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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)",
docu="U4.63.12-f1",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 ) ),
NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ),
MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
) ;
-#& MODIF COMMANDE DATE 19/12/2001 AUTEUR CIBHHAB N.RAHNI
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# 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.
# ======================================================================
-def proj_mesu_modal_prod(MESURE,**args):
- vale=MESURE['NOM_PARA']
+def proj_mesu_modal_prod(MODELE_MESURE,**args):
+ vale=MODELE_MESURE['NOM_PARA']
if vale == 'INST' : return tran_gene
+ if vale == 'FREQ' : return harm_gene
+ if vale == 'DEFORMEE' : 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,
docu="U4.73.01-a",reentrant='n',
- fr="Extrapolation de resultats experimentaux sur un modele numerique en dynamique",
-
-# commentaire C. Durand-13/10/2000 :
-#le mot cle NOM_PARA, par construction, vaut tjs INST : donc on retourne TRAN_GENE a chaque fois
-#def proj_mesu_modal_prod(**args):
-# vale=args['MESURE'].get_child('NOM_PARA').get_valeur()
-# if vale == 'INST' : return tran_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,)
-
- MODELE =SIMP(statut='f',typ=(modele) ),
- MASS_GENE =SIMP(statut='o',typ=(matr_asse_gene_r) ),
- RIGI_GENE =SIMP(statut='o',typ=(matr_asse_gene_r) ),
- MESURE =FACT(statut='o',min=01,max=01,
+ UIinfo={"groupes":("Résultats et champs",)},
+ fr="Calcul de coordonnees generalisees de mesure experimentale relatives a une base de projection",
+
+ MODELE_CALCUL =FACT(statut='o',min=1,max=1,
MODELE =SIMP(statut='o',typ=(modele) ),
- MAILLAGE =SIMP(statut='o',typ=(maillage) ),
- CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ),
- UNITE =SIMP(statut='f',typ='I',defaut= 33 ),
- NOM_PARA =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST",) ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","SIGM_NOEU_DEPL","EPSI_NOEU_DEPL",) ),
+ BASE =SIMP(statut='o',typ=(mode_meca,base_modale,) ),
+ ),
+ MODELE_MESURE =FACT(statut='o',min=1,max=1,
+ MODELE =SIMP(statut='o',typ=(modele) ),
+ MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,) ),
+ NOM_PARA =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST","FREQ","DEFORMEE",),),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ),
),
- REGULARISATION =FACT(statut='f',min=01,max=01,
- regles=(UN_PARMI('COEF_PONDER','COEF_PONDER_F', ),),
- METHODE =SIMP(statut='f',typ='TXM',defaut="TIKHONOV",into=("TIKHONOV",) ),
- NORM_MIN =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- COEF_PONDER =SIMP(statut='f',typ='R',max='**' ),
- COEF_PONDER_F =SIMP(statut='f',typ=(fonction),max='**' ),
+ CORR_MANU =FACT(statut='f',min=1,max='**',
+ regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),),
+ NOEU_CALCUL =SIMP(statut='f',typ=no),
+ NOEU_MESURE =SIMP(statut='f',typ=no),
),
- ) ;
-#& MODIF COMMANDE DATE 16/01/2002 AUTEUR DURAND C.DURAND
+ RESOLUTION =FACT(statut='f',min=1,max=1,
+ 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',max='**',defaut=0. ),
+ COEF_PONDER_F =SIMP(statut='f',typ=(fonction),max='**' ),
+ ),
+ ),
+
+ );
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.14-c",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
fr="Projection d un ou plusieurs spectres de turbulenc sur un ensemble de bases modales ",
regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),
ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),),
ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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)",
docu="U4.63.13-f1",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 ) ),
NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ),
VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ),
) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
fr=" ",docu="U4.82.06-a",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
LIST_PARA =SIMP(statut='o',typ='TXM',max='**',into=("SIGM_REFE","M",) ),
- RESU =FACT(statut='o',min=01,max='**',
+ RESU =FACT(statut='o',min=1,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) ),
ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
RECU_FONCTION=OPER(nom="RECU_FONCTION",op= 90,sd_prod=recu_fonction_prod,
fr="Extraire sous forme d une fonction, l évolution temporelle d une composante d un champ ou d une table",
docu="U4.32.03-f2",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','OBSTACLE'),),
CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_elem_sief_r,
b_tran_gene = BLOC ( condition = "RESU_GENE != None",
fr="Récupération de la fonction concernant les chocs à partir d un concept TRAN_GENE",
regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),
- PRESENT_ABSENT('MULT_APPUI','CORR_STAT'),),
- MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- CORR_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ EXCLUS('MULT_APPUI','CORR_STAT'),),
+ 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),
PARA_X =SIMP(statut='f',typ='TXM' ),
PARA_Y =SIMP(statut='f',typ='TXM' ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,docu="U4.71.03-e",reentrant='n',
+ UIinfo={"groupes":("Résultats et champs",)},
fr="Récupération d un champ de grandeur à partir d un résultat en coordonnées généralisées",
RESU_GENE =SIMP(statut='o',typ=tran_gene ),
INST =SIMP(statut='o',typ='R' ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE VABHHTS J.PELLET
RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table,
fr=" ",docu="U4.71.02-b2",reentrant='n',
+ UIinfo={"groupes":("Résultats et champs",)},
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/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
RESO_GRAD=OPER(nom="RESO_GRAD",op= 84,sd_prod=reso_grad_prod,
fr="Résolution par la méthode du gradient conjugué préconditionné",
docu="U4.55.04-e",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_depl_r,cham_no_temp_r,cham_no_pres_r ) ),
CHAM_CINE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r ) ),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f',
fr="Résolution en place ou hors place d un système factorisé",docu="U4.55.02-f",
+ 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_temp_r,cham_no_depl_r,cham_no_pres_r,
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 17/04/2002 AUTEUR BOYERE E.BOYERE
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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",
docu="U4.63.21-e",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
regles=(UN_PARMI('RESU_GENE','RESULTAT'),
EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'),
# Doc U à revoir
- PRESENT_ABSENT('MULT_APPUI','CORR_STAT'),
+ EXCLUS('MULT_APPUI','CORR_STAT'),
EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),
EXCLUS('NOEUD','GROUP_NO'),
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',defaut="NON",into=("OUI","NON") ),
- CORR_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ 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',max=8,defaut="ACCE",
into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",
"SIGM_ELNO_DEPL","FORC_NODA",) ),
SECTEUR =SIMP(statut='f',typ='I',defaut= 1 ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 28/03/2001 AUTEUR CIBHHLV L.VIVAN
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
docu="U4.63.22-c",reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),
BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ),
MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- BANDE =SIMP(statut='f',typ='R',min=02,max=02 ),
+ BANDE =SIMP(statut='f',typ='R',min=2,max=2 ),
NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ),
NOEUD =SIMP(statut='o',typ=no,max='**'),
NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
- NOM_CHAM =SIMP(statut='o',typ='TXM',max=07,
+ NOM_CHAM =SIMP(statut='o',typ='TXM',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',max=01,
+ EXCIT =FACT(statut='f',max=1,
NOEUD =SIMP(statut='o',typ=no,max='**'),
NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ),
),
into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-e",
+ UIinfo={"groupes":("Gestion du travail",)},
fr="Retour au fichier de commandes appelant",
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
fr="Analyse mécanique statique non linéaire",
docu="U4.51.03-f4",reentrant='f',
+ UIinfo={"groupes":("Résolution",)},
regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),),
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
"KIT_HM",
"KIT_HHM",
"KIT_THH",
+ "KIT_THV",
"KIT_THM",
"KIT_THHM",
"VMIS_ASYM_LINE",
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,)),
- MAZARS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+ MAZARS =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
BARENBLATT =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
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,)),
"LIQU_SATU_GAT",
"LIQU_GAZ_ATM",
"LIQU_VAPE_GAZ",
+ "LIQU_VAPE",
"LIQU_NSAT_GAT",
"LIQU_GAZ",
# THER
GAZ =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
LIQU_SATU =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
LIQU_SATU_GAT =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- 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_GAZ_ATM =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
+ LIQU_VAPE_GAZ =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
+ LIQU_VAPE =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
LIQU_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+ LIQU_GAZ =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
THER_HOMO =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
THER_POLY =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
HYDR_UTIL =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 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",
docu="U4.92.02-f2",
+ UIinfo={"groupes":("Impression",)},
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- VALEUR =FACT(statut='f',min=01,max='**',
+ VALEUR =FACT(statut='f',min=1,max='**',
fr="Tester la valeur d une fonction ou d une nappe",
regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),),
FONCTION =SIMP(statut='o',typ=fonction ),
VERSION =SIMP(statut='f',typ='TXM' ),
),
),
- ATTRIBUT =FACT(statut='f',min=01,max='**',
+ ATTRIBUT =FACT(statut='f',min=1,max='**',
fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
FONCTION =SIMP(statut='o',typ=fonction ),
PARA =SIMP(statut='f',typ='R' ),
VERSION =SIMP(statut='f',typ='TXM' ),
),
),
- TABL_INTSP =FACT(statut='f',min=01,max='**',
+ TABL_INTSP =FACT(statut='f',min=1,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=tabl_intsp ),
),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# RESPONSABLE VABHHTS J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
#
# ======================================================================
TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-g3",
+ UIinfo={"groupes":("Impression",)},
fr="Extraction d une valeur et comparaison à une valeur de référence",
regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','OBJET')),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- CHAM_NO =FACT(statut='f',min=01,max='**',
+ CHAM_NO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'),
EXCLUS('NOEUD','GROUP_NO'),
PRESENT_PRESENT('NOEUD','NOM_CMP'),
VERSION =SIMP(statut='f',typ='TXM'),
),
- CHAM_ELEM =FACT(statut='f',min=01,max='**',
+ CHAM_ELEM =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','TYPE_TEST',),
EXCLUS('NOEUD','GROUP_NO','POINT'),
PRESENT_PRESENT('NOEUD','NOM_CMP'),
VERSION =SIMP(statut='f',typ='TXM' ),
),
- RESU =FACT(statut='f',min=01,max='**',
+ RESU =FACT(statut='f',min=1,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'),
VALE =SIMP(statut='f',typ='R'),
VALE_I =SIMP(statut='f',typ='I'),
VALE_C =SIMP(statut='f',typ='C'),
- CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=02),
- PRECISION =SIMP(statut='f',typ='R',max=02),
+ 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' ),
VERSION =SIMP(statut='f',typ='TXM' ),
),
) ;
-#& MODIF COMMANDE DATE 06/03/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE VABHHTS J.PELLET
TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
docu="U4.92.03-c1",
+ UIinfo={"groupes":("Impression",)},
regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
# concept table à créer
VERSION =SIMP(statut='f',typ='TXM' ),
),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-g2",reentrant='f',
+ UIinfo={"groupes":("Résolution",)},
fr="Analyse thermique linéaire stationnaire ou transitoire",
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 28/08/2002 AUTEUR MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-e2",reentrant='f',
+ UIinfo={"groupes":("Résolution",)},
fr="Analyse thermique non linéaire stationnaire ou transitoire" ,
MODELE =SIMP(statut='o',typ=(modele) ),
CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
fr="Thermique non lineaire en repere mobile",
docu="U4.54.03-b",reentrant='f',
+ UIinfo={"groupes":("Résolution",)},
MODELE =SIMP(statut='o',typ=modele ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CARA_ELEM =SIMP(statut='c',typ=cara_elem ),
-#& MODIF ENTETE DATE 02/06/2003 AUTEUR F1BHHAJ J.ANGLES
+#& MODIF ENTETE DATE 18/03/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
class carte_inst_r (carte):pass
class carte_inte_r (carte):pass
class carte_irra_r (carte):pass
+class carte_meta_r (carte):pass
class carte_neut_f (carte):pass
class carte_neut_r (carte):pass
class carte_pres_r (carte):pass
class cham_elem_inst_r(cham_elem):pass
class cham_elem_inte_r(cham_elem):pass
class cham_elem_irra_r(cham_elem):pass
+class cham_elem_meta_r(cham_elem):pass
class cham_elem_neut_f(cham_elem):pass
class cham_elem_neut_r(cham_elem):pass
class cham_elem_pres_r(cham_elem):pass
class cham_no_ener_r (cham_no):pass
class cham_no_epsi_r (cham_no):pass
class cham_no_erreur (cham_no):pass
-class cham_no_facy_r (cham_no):pass
class cham_no_flux_r (cham_no):pass
class cham_no_g_depl_r (cham_no):pass
class cham_no_geom_r (cham_no):pass
class cham_no_inst_r (cham_no):pass
class cham_no_inte_r (cham_no):pass
class cham_no_irra_r (cham_no):pass
+class cham_no_meta_r (cham_no):pass
class cham_no_neut_f (cham_no):pass
class cham_no_neut_r (cham_no):pass
class cham_no_pres_c (cham_no):pass
class vect_elem_pres_r(vect_elem):pass
class vect_elem_temp_r(vect_elem):pass
-
-#& MODIF COMMUN DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMUN DATE 31/03/2003 AUTEUR ASSIRE A.ASSIRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
-def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN#
+def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',
RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
into=( "ELAS",
"VMIS_ISOT_TRAC",
ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
MAZARS =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- BARENBLATT =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
+ BARENBLATT =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
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,)),
VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
BETON_UMLV_FP =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
- RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
+ RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',
into=(
# MECA
"ELAS",
"SURF_ETAT_NSAT",
"SURF_ETAT_SATU",
"CAM_CLAY_THM",
- "MAZARS",
- "ENDO_ISOT_BETON",
# THMC
"GAZ",
"LIQU_SATU",
# HYDR
"HYDR_UTIL",
"HYDR",
- "HYDR_ENDO",
# MECA_META
"ACIER",
"ZIRC",
"OHNO",
"NADAI_B",
"BETON_DOUBLE_DP",
- ),),
-
-
+ ) ),
ELAS_THM =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
SURF_ETAT_NSAT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
SURF_ETAT_SATU =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
THER_POLY =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
HYDR_UTIL =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
HYDR =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- HYDR_ENDO =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
ACIER =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
ALGO_C_PLAN =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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
) ;
-
-#& MODIF COMMUN DATE 17/06/2003 AUTEUR VABHHTS J.PELLET
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE 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",
- "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_ELNO_SIGA",
- "ENDO_ELNO_SINO",
- "ENDO_NOEU_SINO",
- "ENEL_ELGA",
- "ENEL_ELNO_ELGA",
- "ENEL_NOEU_ELGA",
- "EPEQ_ELNO_TUYO",
- "EPGR_ELGA",
- "EPGR_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_NOZ1",
- "ERRE_ELEM_NOZ2",
- "ERRE_ELGA_NORE",
- "ERRE_ELNO_ELGA",
- "ERRE_NOEU_ELGA",
- "ERTH_ELEM_TEMP",
- "ERTH_ELNO_ELEM",
- "ETOT_ELEM",
- "ETOT_ELGA",
- "ETOT_ELNO_ELGA",
- "FLUX_ELGA_TEMP",
- "FLUX_ELNO_TEMP",
- "FLUX_NOEU_TEMP",
- "FORC_NODA",
- "FSUR_2D",
- "FSUR_3D",
- "FVOL_2D",
- "FVOL_3D",
- "GRAD_NOEU_THETA",
- "HYDR_ELGA",
- "HYDR_ELNO_ELGA",
- "HYDR_NOEU_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",
- "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",
- "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 COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
# RESPONSABLE JMBHH01 J.M.PROIX
AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem,
'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE'),),
MODELE =SIMP(statut='o',typ=modele ),
INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
- VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ),
+ VERIF =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ),
- POUTRE =FACT(statut='f',max='**',
+ POUTRE =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
SECTION =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ),
CARA_SECT =SIMP(statut='f',typ=(cara_pout) ),
- TUYAU_NCOU =SIMP(statut='f',typ='I',val_max=10,defaut=3),
- TUYAU_NSEC =SIMP(statut='f',typ='I',val_max=32,defaut=16),
+ TUYAU_NCOU =SIMP(statut='f',typ='I',min=1,max=10,defaut=3),
+ TUYAU_NSEC =SIMP(statut='f',typ='I',min=1,max=32,defaut=16),
b_generale =BLOC( condition = "SECTION=='GENERALE'",
- CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ CARA =SIMP(statut='o',typ='TXM',max='**',
into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT",
"AI","JG","IYR2","IZR2","A1",
"IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1",
VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
),
b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
- CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ CARA =SIMP(statut='o',typ='TXM',max='**',
into=("H","EP","HY","HZ","EPY","EPZ",
"H1","HZ1","HY1","EP1","EPY1","EPZ1",
"H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"),
),
b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ CARA =SIMP(statut='o',typ='TXM',max='**',
into=("R","EP","R1","R2","EP1","EP2") ),
VALE =SIMP(statut='o',typ='R',max='**'),
VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
FCX =SIMP(statut='f',typ=(fonction,formule) ),
),
- BARRE =FACT(statut='f',max='**',
+ BARRE =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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' ),
),
b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
- CARA =SIMP(statut='o',typ='TXM',into=("H","HZ","HY","EPY","EPZ","EP"),validators=NoRepeat(),max=6 ),
+ CARA =SIMP(statut='o',typ='TXM',into=("H","HZ","HY","EPY","EPZ","EP"),max=6 ),
VALE =SIMP(statut='o',typ='R',max=6 ),
),
b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("R","EP") ),
+ CARA =SIMP(statut='o',typ='TXM',max=2,into=("R","EP") ),
VALE =SIMP(statut='o',typ='R',max=2 ),
),
FCX =SIMP(statut='f',typ=(fonction,formule) ),
),
- COQUE =FACT(statut='f',max='**',
+ COQUE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA' ),
PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
EPAIS =SIMP(statut='o',typ='R' ),
ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2),
A_CIS =SIMP(statut='c',typ='R',defaut= 0.8333333E0),
MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
- CABLE =FACT(statut='f',max='**',
+ CABLE =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ),
SECTION =SIMP(statut='f',typ='R' ),
FCX =SIMP(statut='f',typ=(fonction,formule) ),
),
- DISCRET =FACT(statut='f',max='**',
+ DISCRET =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,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='**',
+ CARA =SIMP(statut='o',typ='TXM',max='**',
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",
VALE =SIMP(statut='o',typ='R',max='**'),
),
- ORIENTATION =FACT(statut='f',max='**',
+ ORIENTATION =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,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='**'),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
),
- DEFI_ARC =FACT(statut='f',max='**',
+ DEFI_ARC =FACT(statut='f',min=1,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'),
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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1),
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),
+ NOEUD_POIN_TANG =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno,max=1),
RAYON =SIMP(statut='f',typ='R'),
COEF_FLEX =SIMP(statut='f',typ='R'),
INDI_SIGM =SIMP(statut='f',typ='R'),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
),
- MASSIF =FACT(statut='f',max='**',
+ MASSIF =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('MAILLE','GROUP_MA'),
UN_PARMI('ANGL_REP','ANGL_AXE'),
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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
ANGL_REP =SIMP(statut='f',typ='R',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='**',
+ POUTRE_FLUI =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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 ),
COEF_ECHELLE =SIMP(statut='o',typ='R'),
),
- GRILLE =FACT(statut='f',max='**',
+ GRILLE =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
SECTION_L =SIMP(statut='o',typ='R'),
ANGL_REP =SIMP(statut='f',typ='R',max=2),
ANGL_L =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,),
+ GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,min=1,max=1 ),
),
- RIGI_PARASOL =FACT(statut='f',max='**',
+ RIGI_PARASOL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'),
UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
- GROUP_MA =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='o',typ=ma,max='**'),
GROUP_MA_POI1 =SIMP(statut='f',typ=ma),
FONC_GROUP =SIMP(statut='f',typ=(fonction,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='**',into=("K_TR_D_N","A_TR_D_N") ),
+ CARA =SIMP(statut='o',typ='TXM',max='**',into=("K_TR_D_N","A_TR_D_N") ),
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',max='**'),
),
- ASSE_GRIL =FACT(statut='f',max='**',
+ ASSE_GRIL =FACT(statut='f',min=1,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='**'),
- CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ CARA =SIMP(statut='o',typ='TXM',max='**',
into=("K_TR_D_N","K_TR_D_L_T","K_TR_D_L_N",) ),
VALE =SIMP(statut='o',typ='R',max='**'),
PAS_T =SIMP(statut='o',typ='R'),
),
- AFFE_SECT =FACT(statut='f',max='**',
+ AFFE_SECT =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),
PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),),
NOM =SIMP(statut='f',typ='TXM'),
- GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
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='**'),
+ GROUP_MA_SECT =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_SECT =SIMP(statut='f',typ=ma,max='**'),
MAILLAGE_SECT =SIMP(statut='o',typ=maillage),
COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2),
),
- AFFE_FIBRE =FACT(statut='f',max='**',
+ AFFE_FIBRE =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
NOM =SIMP(statut='f',typ='TXM'),
- GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
CARA =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
VALE =SIMP(statut='o',typ='R',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
MODELE =SIMP(statut='o',typ=modele ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- PRES_IMPO =FACT(statut='f',max='**',
+ PRES_IMPO =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
PRES =SIMP(statut='o',typ='C' ),
),
- VITE_FACE =FACT(statut='f',max='**',
+ VITE_FACE =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
VNOR =SIMP(statut='o',typ='C' ),
),
- IMPE_FACE =FACT(statut='f',max='**',
+ IMPE_FACE =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
IMPE =SIMP(statut='o',typ='C' ),
),
- LIAISON_UNIF =FACT(statut='f',max='**',
+ LIAISON_UNIF =FACT(statut='f',min=1,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
DDL =SIMP(statut='o',typ='TXM',max='**'),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
EXCLUS('MECA_IMPO','ACOU_IMPO'),
EXCLUS('THER_IMPO','ACOU_IMPO'),),
MODELE =SIMP(statut='o',typ=modele ),
- MECA_IMPO =FACT(statut='f',max='**',
+ MECA_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','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_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
DX =SIMP(statut='f',typ='R' ),
DY =SIMP(statut='f',typ='R' ),
DZ =SIMP(statut='f',typ='R' ),
TEMP =SIMP(statut='f',typ='R' ),
PHI =SIMP(statut='f',typ='R' ),
),
- THER_IMPO =FACT(statut='f',max='**',
+ THER_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),),
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_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,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='**',
+ ACOU_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
PRES =SIMP(statut='o',typ='C' ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'),
EXCLUS('MECA_IMPO','THER_IMPO'),),
MODELE =SIMP(statut='o',typ=modele ),
- MECA_IMPO =FACT(statut='f',max='**',
+ MECA_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','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_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
DX =SIMP(statut='f',typ=(fonction,formule) ),
DY =SIMP(statut='f',typ=(fonction,formule) ),
DZ =SIMP(statut='f',typ=(fonction,formule) ),
TEMP =SIMP(statut='f',typ=(fonction,formule) ),
PHI =SIMP(statut='f',typ=(fonction,formule) ),
),
- THER_IMPO =FACT(statut='f',max='**',
+ THER_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),),
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_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
TEMP_SUP =SIMP(statut='f',typ=(fonction,formule) ),
TEMP =SIMP(statut='f',typ=(fonction,formule) ),
TEMP_INF =SIMP(statut='f',typ=(fonction,formule) ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# 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.
# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-
+# 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",
docu="U4.44.01-g",reentrant='n',
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),
+ 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='**',
+ DDL_IMPO =FACT(statut='f',min=1,max='**',
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'),),
+ 'VO6','WI6','WO6','WO','WI1','WO1','GONF'),),
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',)),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
DX =SIMP(statut='f',typ='R' ),
DY =SIMP(statut='f',typ='R' ),
DZ =SIMP(statut='f',typ='R' ),
- DDL_POUTRE =FACT(statut='f',max='**',
+ DDL_POUTRE =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
DX =SIMP(statut='f',typ='R' ),
DY =SIMP(statut='f',typ='R' ),
DZ =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',),
+ ANGL_VRIL =SIMP(statut='f',typ='R',max=1),
# restriction sur les mailles servant à définir le repère local
- GROUP_MA =SIMP(statut='f',typ=grma,),
- MAILLE =SIMP(statut='f',typ=ma,),
+ GROUP_MA =SIMP(statut='f',typ=grma,max=1),
+ MAILLE =SIMP(statut='f',typ=ma,max=1),
),
- FACE_IMPO =FACT(statut='f',max='**',
+ FACE_IMPO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_MA','MAILLE',),
AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
'TEMP','PRE1','PRE2','DNOR','DTAN'),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
DX =SIMP(statut='f',typ='R' ),
DY =SIMP(statut='f',typ='R' ),
DZ =SIMP(statut='f',typ='R' ),
PRE2 =SIMP(statut='f',typ='R' ),
),
- LIAISON_DDL =FACT(statut='f',max='**',
- fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",
+ LIAISON_DDL =FACT(statut='f',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",
+ min=1,max='**',
regles=(UN_PARMI('GROUP_NO','NOEUD'),),
- GROUP_NO =SIMP(statut='f',typ=grno ,max='**'),
- NOEUD =SIMP(statut='f',typ=no ,max='**'),
+ 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_MULT =SIMP(statut='o',typ='R',max='**'),
COEF_IMPO =SIMP(statut='o',typ='R' ),
),
- LIAISON_OBLIQUE =FACT(statut='f',max='**',
- fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique",
+ LIAISON_OBLIQUE =FACT(statut='f',fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique",
+ min=1,max='**',
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='**'),
+ 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='R' ),
DY =SIMP(statut='f',typ='R' ),
DRZ =SIMP(statut='f',typ='R' ),
),
- LIAISON_GROUP =FACT(statut='f',max='**',
- fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
+ LIAISON_GROUP =FACT(statut='f',fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
+ min=1,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('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='**'),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=no,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
- SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
+ SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
DDL_1 =SIMP(statut='o',typ='TXM',max='**'),
- COEF_MULT_1 =SIMP(statut='o',typ='R' ,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_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),
CENTRE =SIMP(statut='f',typ='R',max=3),
),
- LIAISON_MAIL =FACT(statut='f',max='**',
+ LIAISON_MAIL =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_ESCL =SIMP(statut='f',typ=no,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 ),
),
- LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",max='**',
+ LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",min=1,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
),
- LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque",max='**',
+ LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque", min=1,max='**',
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='**'),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,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="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds",
+ LIAISON_UNIF =FACT(statut='f',fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds",
+ min=1,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
DDL =SIMP(statut='o',typ='TXM',max='**'),
),
- LIAISON_CHAMNO =FACT(statut='f',max='**',
- fr="définir une relation linéaire entre tous les ddls d'un concept cham_no",
+ LIAISON_CHAMNO =FACT(statut='f',fr="définir une relation linéaire entre tous les ddls d'un concept cham_nno",
+ min=1,max='**',
# type de cham_no CO()
CHAM_NO =SIMP(statut='o',typ=cham_no), #CO()
COEF_IMPO =SIMP(statut='o',typ='R' ),
VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
- CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**',
+ CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=1,max='**',
regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),),
APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")),
METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
into=("CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ),
PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ),
- 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_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ",
fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
regles=(EXCLUS('DIST_2','COEF_IMPO'),
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 =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
COEF_IMPO =SIMP(statut='f',typ='R'),
COEF_MULT_2 =SIMP(statut='f',typ='R'),
VECT_NORM_2 =SIMP(statut='f',typ='R',max=3),
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 =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
DIST_1 =SIMP(statut='f',typ='R'),
DIST_2 =SIMP(statut='f',typ='R'),
VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',),
+ COULOMB =SIMP(statut='o',typ='R',max=1),
COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0),
),),
b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ",
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 =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
DIST_1 =SIMP(statut='f',typ='R'),
DIST_2 =SIMP(statut='f',typ='R'),
VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',),
+ COULOMB =SIMP(statut='o',typ='R',max=1),
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),
ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2),
ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30),
b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',),
+ COULOMB =SIMP(statut='o',typ='R',max=1),
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),),),
),
- FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",max='**',
+ FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",min=1,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
FX =SIMP(statut='f',typ='R' ),
FY =SIMP(statut='f',typ='R' ),
FZ =SIMP(statut='f',typ='R' ),
ANGL_NAUT =SIMP(statut='f',typ='R',max=3),
),
- FORCE_FACE =FACT(statut='f',max='**',
- fr="Appliquer des forces surfaciques sur une face d'éléments volumiques",
+ FORCE_FACE =FACT(statut='f',fr="Appliquer des forces surfaciques sur une face d'éléments volumiques",
+ min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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="Appliquer des forces linéiques à une arete d élément volumique ou de coque",
+ FORCE_ARETE =FACT(statut='f',fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque",
+ min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ='R' ),
FY =SIMP(statut='f',typ='R' ),
FZ =SIMP(statut='f',typ='R' ),
MZ =SIMP(statut='f',typ='R' ),
),
- FORCE_CONTOUR =FACT(statut='f',max='**',
- fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER",
+ FORCE_CONTOUR =FACT(statut='f',fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER",
+ min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ='R' ),
FY =SIMP(statut='f',typ='R' ),
FZ =SIMP(statut='f',typ='R' ),
MZ =SIMP(statut='f',typ='R' ),
),
- FORCE_INTERNE =FACT(statut='f',max='**',
- fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique",
+ FORCE_INTERNE =FACT(statut='f',fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique",
+ min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ='R' ),
FY =SIMP(statut='f',typ='R' ),
FZ =SIMP(statut='f',typ='R' ),
),
- PRES_REP =FACT(statut='f',max='**',
- fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",
+ PRES_REP =FACT(statut='f',fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",
+ min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='f',typ='R' ),
CISA_2D =SIMP(statut='f',typ='R' ),
),
- EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",max='**',
+ EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",min=1,max='**',
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='**'),
+ GROUP_MA_INT =SIMP(statut='o',typ=grma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='o',typ='R' ),
),
- EPSI_INIT =FACT(statut='f',max='**',
- fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",
+ EPSI_INIT =FACT(statut='f',fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",
+ min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
EPXX =SIMP(statut='f',typ='R' ),
EPYY =SIMP(statut='f',typ='R' ),
EPZZ =SIMP(statut='f',typ='R' ),
KXY =SIMP(statut='f',typ='R' ),
),
- ARLEQUIN =FACT(statut='f',max='**',
- GROUP_MA_1 =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_MA_2 =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_MA_COLL =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+ ARLEQUIN =FACT(statut='f',min=1,max='**',
+ GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'),
+ GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'),
+ GROUP_MA_COLL =SIMP(statut='o',typ=grma,max='**'),
CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ),
regles =(UN_PARMI('POIDS_1','POIDS_2'),),
POIDS_1 =SIMP(statut='f',typ='R'),
POIDS_2 =SIMP(statut='f',typ='R'),
),
- FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",max='**',
+ FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",min=1,max='**',
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('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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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' ),
),
- FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",max='**',
+ FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='f',typ='R' ),
),
- FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",max='**',
+ FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",min=1,max='**',
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('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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ='R' ),
FY =SIMP(statut='f',typ='R' ),
),
- LIAISON_COQUE =FACT(statut='f',max='**',
- 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='**'),
+ LIAISON_COQUE =FACT(statut='f',min=1,max='**',
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
),
- RELA_CINE_BP =FACT(statut='f',max='**',
+ RELA_CINE_BP =FACT(statut='f',min=1,max='**',
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="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé",
+ FORCE_ELEC =FACT(statut='f',
+ fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé",
+ min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
AU_MOINS_UN('FX','FY','FZ','POSITION'),
EXCLUS('FZ','POSITION'),),
# trop de regles : les blocs conditionnels permettent d en suprimer
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 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- INTE_ELEC =FACT(statut='f',max='**',
- fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire",
+ INTE_ELEC =FACT(statut='f',fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire",
+ min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ TRANS =SIMP(statut='f',typ='R',max='**'),
+ SYME =SIMP(statut='f',typ='R',max='**'),
),
- IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",max='**',
+ IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",min=1,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_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
IMPE =SIMP(statut='o',typ='R' ),
),
- VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",max='**',
+ VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",min=1,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_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
VNOR =SIMP(statut='o',typ='R' ),
),
- ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",max='**',
+ ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",min=1,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_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='o',typ='R' ),
),
- FLUX_THM_REP =FACT(statut='f',max='**',
+ FLUX_THM_REP =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
MODELE =SIMP(statut='o',typ=modele ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- DDL_IMPO =FACT(statut='f',max='**',
+ DDL_IMPO =FACT(statut='f',min=1,max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
- AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),),
+ AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','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='**'),
- LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
DX =SIMP(statut='f',typ='C' ),
DY =SIMP(statut='f',typ='C' ),
DZ =SIMP(statut='f',typ='C' ),
PRES =SIMP(statut='f',typ='C' ),
PHI =SIMP(statut='f',typ='C' ),
),
- FORCE_POUTRE =FACT(statut='f',max='**',
+ FORCE_POUTRE =FACT(statut='f',min=1,max='**',
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('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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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' ),
VY =SIMP(statut='f',typ='C' ),
VZ =SIMP(statut='f',typ='C' ),
),
- LIAISON_DDL =FACT(statut='f',max='**',
+ LIAISON_DDL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no ,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
DDL =SIMP(statut='o',typ='TXM',max='**'),
- COEF_MULT =SIMP(statut='o',typ='R' ,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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
MODELE =SIMP(statut='o',typ=modele ),
- DDL_IMPO =FACT(statut='f',max='**',
+ DDL_IMPO =FACT(statut='f',min=1,max='**',
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',),),
+ 'TEMP','PRE1','PRE2'),),
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',)),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
DX =SIMP(statut='f',typ=(fonction,formule) ),
DY =SIMP(statut='f',typ=(fonction,formule) ),
DZ =SIMP(statut='f',typ=(fonction,formule) ),
PRE2 =SIMP(statut='f',typ=(fonction,formule) ),
),
- FACE_IMPO =FACT(statut='f',max='**',
+ FACE_IMPO =FACT(statut='f',min=1,max='**',
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('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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
DX =SIMP(statut='f',typ=(fonction,formule) ),
DY =SIMP(statut='f',typ=(fonction,formule) ),
DZ =SIMP(statut='f',typ=(fonction,formule) ),
DTAN =SIMP(statut='f',typ=(fonction,formule) ),
),
- LIAISON_DDL =FACT(statut='f',max='**',
+ LIAISON_DDL =FACT(statut='f',min=1,max='**',
fr="Définir 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='**'),
+ 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=(fonction,formule) ),
),
- LIAISON_OBLIQUE =FACT(statut='f',max='**',
+ LIAISON_OBLIQUE =FACT(statut='f',min=1,max='**',
fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
ANGL_NAUT =SIMP(statut='o',typ='R',max=3),
DX =SIMP(statut='f',typ=(fonction,formule) ),
DY =SIMP(statut='f',typ=(fonction,formule) ),
DRZ =SIMP(statut='f',typ=(fonction,formule) ),
),
- LIAISON_GROUP =FACT(statut='f',max='**',
+ LIAISON_GROUP =FACT(statut='f',min=1,max='**',
fr="Définir des relations linéaires 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('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='**'),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
+ SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,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='**'),
CENTRE =SIMP(statut='f',typ='R',max=3),
),
- CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**',
+ CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=1,max='**',
regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),),
APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")),
METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
into=("CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ),
PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ),
- 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_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ",
fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
regles=(EXCLUS('DIST_2','COEF_IMPO'),
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 =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
COEF_IMPO =SIMP(statut='f',typ='R'),
COEF_MULT_2 =SIMP(statut='f',typ='R'),
VECT_NORM_2 =SIMP(statut='f',typ='R',max=3),
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 =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
DIST_1 =SIMP(statut='f',typ=(fonction,formule)),
DIST_2 =SIMP(statut='f',typ=(fonction,formule)),
VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',),
+ COULOMB =SIMP(statut='o',typ='R',max=1),
COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0),
),),
b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ",
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 =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
DIST_1 =SIMP(statut='f',typ=(fonction,formule)),
DIST_2 =SIMP(statut='f',typ=(fonction,formule)),
VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',),
+ COULOMB =SIMP(statut='o',typ='R',max=1),
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),
ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2),
ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30),
b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',),
+ COULOMB =SIMP(statut='o',typ='R',max=1),
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),),),
),
- LIAISON_UNIF =FACT(statut='f',max='**',
+ LIAISON_UNIF =FACT(statut='f',min=1,max='**',
fr="Imposer une meme valeur (inconnue) a des ddls d un emsemble 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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
DDL =SIMP(statut='o',typ='TXM',max='**'),
),
- LIAISON_SOLIDE =FACT(statut='f',max='**',
+ LIAISON_SOLIDE =FACT(statut='f',min=1,max='**',
fr="Modéliser 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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
),
- FORCE_NODALE =FACT(statut='f',max='**',
+ FORCE_NODALE =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
FX =SIMP(statut='f',typ=(fonction,formule) ),
FY =SIMP(statut='f',typ=(fonction,formule) ),
FZ =SIMP(statut='f',typ=(fonction,formule) ),
ANGL_NAUT =SIMP(statut='f',typ=(fonction,formule),max=3 ),
),
- FORCE_FACE =FACT(statut='f',max='**',
+ FORCE_FACE =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ=(fonction,formule) ),
FY =SIMP(statut='f',typ=(fonction,formule) ),
FZ =SIMP(statut='f',typ=(fonction,formule) ),
),
- FORCE_ARETE =FACT(statut='f',max='**',
+ FORCE_ARETE =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ=(fonction,formule) ),
FY =SIMP(statut='f',typ=(fonction,formule) ),
FZ =SIMP(statut='f',typ=(fonction,formule) ),
MY =SIMP(statut='f',typ=(fonction,formule) ),
MZ =SIMP(statut='f',typ=(fonction,formule) ),
),
- FORCE_CONTOUR =FACT(statut='f',max='**',
+ FORCE_CONTOUR =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ=(fonction,formule) ),
FY =SIMP(statut='f',typ=(fonction,formule) ),
FZ =SIMP(statut='f',typ=(fonction,formule) ),
MZ =SIMP(statut='f',typ=(fonction,formule) ),
),
- FORCE_INTERNE =FACT(statut='f',max='**',
+ FORCE_INTERNE =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ=(fonction,formule) ),
FY =SIMP(statut='f',typ=(fonction,formule) ),
FZ =SIMP(statut='f',typ=(fonction,formule) ),
),
- PRES_REP =FACT(statut='f',max='**',
+ PRES_REP =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='f',typ=(fonction,formule) ),
CISA_2D =SIMP(statut='f',typ=(fonction,formule) ),
),
- EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",max='**',
+ EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",min=1,max='**',
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='**'),
+ GROUP_MA_INT =SIMP(statut='o',typ=grma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='o',typ=(fonction,formule) ),
),
- EPSI_INIT =FACT(statut='f',max='**',
+ EPSI_INIT =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
EPXX =SIMP(statut='f',typ=(fonction,formule) ),
EPYY =SIMP(statut='f',typ=(fonction,formule) ),
EPZZ =SIMP(statut='f',typ=(fonction,formule) ),
EPYZ =SIMP(statut='f',typ=(fonction,formule) ),
),
- FORCE_POUTRE =FACT(statut='f',max='**',
+ FORCE_POUTRE =FACT(statut='f',min=1,max='**',
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('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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
FX =SIMP(statut='f',typ=(fonction,formule) ),
FY =SIMP(statut='f',typ=(fonction,formule) ),
VZ =SIMP(statut='f',typ=(fonction,formule) ),
),
- FORCE_TUYAU =FACT(statut='f',max='**',
+ FORCE_TUYAU =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
PRES =SIMP(statut='f',typ=(fonction,formule) ),
),
- FORCE_COQUE =FACT(statut='f',max='**',
+ FORCE_COQUE =FACT(statut='f',min=1,max='**',
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('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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FX =SIMP(statut='f',typ=(fonction,formule) ),
FY =SIMP(statut='f',typ=(fonction,formule) ),
FZ =SIMP(statut='f',typ=(fonction,formule) ),
into=("SUP","INF","MOY","MAIL") ),
),
- LIAISON_COQUE =FACT(statut='f',max='**',
- 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='**'),
+ LIAISON_COQUE =FACT(statut='f',min=1,max='**',
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
),
- VITE_FACE =FACT(statut='f',max='**',
+ VITE_FACE =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
VNOR =SIMP(statut='o',typ=(fonction,formule) ),
),
- IMPE_FACE =FACT(statut='f',max='**',
+ IMPE_FACE =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
IMPE =SIMP(statut='o',typ=(fonction,formule) ),
),
- ONDE_PLANE =FACT(statut='f',max='**',
+ ONDE_PLANE =FACT(statut='f',min=1,max='**',
DIRECTION =SIMP(statut='o',typ='R',max='**'),
TYPE_ONDE =SIMP(statut='o',typ='TXM' ),
FONC_SIGNAL =SIMP(statut='o',typ=(fonction,formule) ),
- FLUX_THM_REP =FACT(statut='f',max='**',
+ FLUX_THM_REP =FACT(statut='f',min=1,max='**',
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FLUN =SIMP(statut='f',typ=(fonction,formule) ),
FLUN_HYDR1 =SIMP(statut='f',typ=(fonction,formule) ),
FLUN_HYDR2 =SIMP(statut='f',typ=(fonction,formule) ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=modele ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",
into=("OUI","NON") ),
- CARA_TORSION =FACT(statut='f',max='**',
+ CARA_TORSION =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
VERI_DDL =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"),
MODELE =SIMP(statut='o',typ=(modele) ),
- TEMP_IMPO =FACT(statut='f',max='**',
+ TEMP_IMPO =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,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='**',
+ FLUX_REP =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FLUN =SIMP(statut='f',typ='R'),
FLUN_INF =SIMP(statut='f',typ='R'),
FLUN_SUP =SIMP(statut='f',typ='R'),
),
- RAYONNEMENT =FACT(statut='f',max='**',
+ RAYONNEMENT =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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='**',
+ ECHANGE =FACT(statut='f',min=1,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_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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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_SUP =SIMP(statut='f',typ='R'),
),
- SOURCE =FACT(statut='f',max='**',
+ SOURCE =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
SOUR =SIMP(statut='f',typ='R'),
SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ),
),
- GRAD_TEMP_INIT =FACT(statut='f',max='**',
+ GRAD_TEMP_INIT =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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='**',
+ LIAISON_DDL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no ,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='**',
+ LIAISON_GROUP =FACT(statut='f',min=1,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('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='**'),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
+ SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,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='**'),
CENTRE =SIMP(statut='f',typ='R',max='**'),
),
- LIAISON_MAIL =FACT(statut='f',max='**',
+ LIAISON_MAIL =FACT(statut='f',min=1,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='**'),
+ GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_ESCL =SIMP(statut='f',typ=no,max='**'),
TRAN =SIMP(statut='f',typ='R',max='**' ),
ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ),
CENTRE =SIMP(statut='f',typ='R',max='**' ),
),
- ECHANGE_PAROI =FACT(statut='f',max='**',
+ ECHANGE_PAROI =FACT(statut='f',min=1,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='**'),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,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),
+ ANGL_NAUT =SIMP(statut='f',typ='R',min=1,max=3),
CENTRE =SIMP(statut='f',typ='R',min=2,max=3),
),
- LIAISON_UNIF =FACT(statut='f',max='**',
+ LIAISON_UNIF =FACT(statut='f',min=1,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
into=("TEMP","TEMP_INF","TEMP_SUP") ),
),
- LIAISON_CHAMNO =FACT(statut='f',max='**',
+ LIAISON_CHAMNO =FACT(statut='f',min=1,max='**',
CHAM_NO =SIMP(statut='o',typ=cham_no),# 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='**',
+ CONVECTION =FACT(statut='f',min=1,max='**',
VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
MODELE =SIMP(statut='o',typ=(modele) ),
- TEMP_IMPO =FACT(statut='f',max='**',
+ TEMP_IMPO =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
EVOL_THER =SIMP(statut='f',typ=(evol_ther) ),
DDL =SIMP(statut='f',typ='TXM',into=("TEMP",) ),
TEMP =SIMP(statut='f',typ=(fonction,formule) ),
TEMP_SUP =SIMP(statut='f',typ=(fonction,formule) ),
),
- FLUX_REP =FACT(statut='f',max='**',
+ FLUX_REP =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FLUN =SIMP(statut='f',typ=(fonction,formule) ),
FLUN_INF =SIMP(statut='f',typ=(fonction,formule) ),
FLUN_SUP =SIMP(statut='f',typ=(fonction,formule) ),
FLUX_Z =SIMP(statut='f',typ=(fonction,formule) ),
),
- FLUX_NL =FACT(statut='f',max='**',
+ FLUX_NL =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FLUN =SIMP(statut='o',typ=(fonction,formule) ),
),
- RAYONNEMENT =FACT(statut='f',max='**',
+ RAYONNEMENT =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
SIGMA =SIMP(statut='o',typ=(fonction,formule) ),
EPSILON =SIMP(statut='o',typ=(fonction,formule) ),
TEMP_EXT =SIMP(statut='o',typ=(fonction,formule) ),
- ECHANGE =FACT(statut='f',max='**',
+ ECHANGE =FACT(statut='f',min=1,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_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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
COEF_H =SIMP(statut='f',typ=(fonction,formule) ),
TEMP_EXT =SIMP(statut='f',typ=(fonction,formule) ),
COEF_H_INF =SIMP(statut='f',typ=(fonction,formule) ),
),
- SOURCE =FACT(statut='f',max='**',
+ SOURCE =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
SOUR =SIMP(statut='o',typ=(fonction,formule) ),
),
- GRAD_TEMP_INIT =FACT(statut='f',max='**',
+ GRAD_TEMP_INIT =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
FLUX_X =SIMP(statut='f',typ=(fonction,formule) ),
FLUX_Y =SIMP(statut='f',typ=(fonction,formule) ),
FLUX_Z =SIMP(statut='f',typ=(fonction,formule) ),
),
- ECHANGE_PAROI =FACT(statut='f',max='**',
+ ECHANGE_PAROI =FACT(statut='f',min=1,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='**'),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
COEF_H =SIMP(statut='o',typ=(fonction,formule) ),
TRAN =SIMP(statut='f',typ='R',min=2,max=3),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=3),
+ ANGL_NAUT =SIMP(statut='f',typ='R',min=1,max=3),
CENTRE =SIMP(statut='f',typ='R',min=2,max=3),
),
- LIAISON_DDL =FACT(statut='f',max='**',
+ LIAISON_DDL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_NO','NOEUD'),),
GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no ,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,formule) ),
),
- LIAISON_GROUP =FACT(statut='f',max='**',
+ LIAISON_GROUP =FACT(statut='f',min=1,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('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='**'),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
+ SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO =SIMP(statut='f',typ=grno,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='**'),
CENTRE =SIMP(statut='f',typ='R',max='**'),
),
- LIAISON_UNIF =FACT(statut='f',max='**',
+ LIAISON_UNIF =FACT(statut='f',min=1,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",
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
into=("TEMP","TEMP_INF","TEMP_SUP") ),
),
- CONVECTION =FACT(statut='f',max='**',
+ CONVECTION =FACT(statut='f',min=1,max='**',
VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE VABHHTS J.PELLET
AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
UIinfo={"groupes":("Modélisation",)},
MAILLAGE =SIMP(statut='o',typ=maillage),
MODELE =SIMP(statut='f',typ=modele),
- AFFE =FACT(statut='o',max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
+ AFFE =FACT(statut='o',min=1,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_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
MATER =SIMP(statut='o',typ=mater),
TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE JMBHH01 J.M.PROIX
AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g",
regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
MAILLAGE =SIMP(statut='o',typ=(maillage) ),
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',
+ VERIF =SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD") ),
+ AFFE_SOUS_STRUC =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('TOUT','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
),
- AFFE =FACT(statut='f',max='**',
+ AFFE =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
PHENOMENE =SIMP(statut='o',typ='TXM',
into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ),
b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'",
fr="modelisations mécaniques",
- MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
+ MODELISATION =SIMP(statut='o',typ='TXM', into=(
"2D_DIS_T",
"2D_DIS_TR",
"2D_FLUI_ABSO",
"D_PLAN_THHD",
"D_PLAN_THVD",
"D_PLAN_THHMD",
- "D_PLAN_THMD",
+ "D_PLAN_THMD",
"DIS_T",
"DIS_TR",
"DKT",
b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'",
fr="modelisations thermiques",
- MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
+ MODELISATION =SIMP(statut='o',typ='TXM',into=(
"3D",
"3D_DIAG",
"AXIS",
b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
fr="modelisations acoustiques",
- MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
+ MODELISATION =SIMP(statut='o',typ='TXM',into=(
"3D",
"PLAN"
), ),),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-g",
- UIinfo={"groupes":("Modélisation",)},
- fr="Interrogation sur le catalogue des commandes et les concepts produits",
- regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- 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",
+ UIinfo={"groupes":("Modélisation",)},
+ fr="Interrogation sur le catalogue des commandes et les concepts produits",
+ regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
+ FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
+ TYPE_ELEM =FACT(fr="couple type_elem option",
+ statut='f',min=1,max=1,
+ INITEL =SIMP(statut='f',typ='TXM',defaut="NON",
+ into=("OUI","NON",) ),
+ ),
+ CONCEPT =FACT(statut='f',min=1,max='**',
+ NOM =SIMP(fr="liste des noms de concept",
+ statut='f',typ='TXM',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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Assembler deux maillages sous un seul nom",
docu="U4.23.03-f",reentrant='n',
UIinfo={"groupes":("Maillage",)},
- MAILLAGE =SIMP(statut='o',typ=maillage,min=2,validators=NoRepeat(),max=2 ),
+ MAILLAGE =SIMP(statut='o',typ=maillage,min=2,max=2 ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ),
OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.65.05-e",reentrant='n',
UIinfo={"groupes":("Matrices/vecteurs",)},
NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ),
- CHAR_SOUS_STRUC =FACT(statut='o',max='**',
+ CHAR_SOUS_STRUC =FACT(statut='o',min=1,max='**',
SOUS_STRUC =SIMP(statut='o',typ='TXM' ),
VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NUME_DDL =SIMP(statut='o',typ=nume_ddl ),
INFO =SIMP(statut='f',typ='I',into=(1,2,) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G",
docu="U4.52.13-d",reentrant='n',
UIinfo={"groupes":("Résolution",)},
- ENER_SOL =FACT(statut='o',
+ ENER_SOL =FACT(statut='o',min=1,max=1,
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_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='**'),
+ GROUP_NO_RADIER =SIMP(statut='f',typ=grno,max='**'),
+ GROUP_MA_RADIER =SIMP(statut='f',typ=grma,max='**'),
FONC_GROUP =SIMP(statut='f',typ=(fonction,formule) ),
COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
KX =SIMP(statut='o',typ='R' ),
NOEUD_CENTRE =SIMP(statut='f',typ=no),
COOR_CENTRE =SIMP(statut='f',typ='R',max=3),
),
- AMOR_INTERNE =FACT(statut='o',
+ AMOR_INTERNE =FACT(statut='o',min=1,max=1,
ENER_POT =SIMP(statut='o',typ=tabl_ener_pot ),
- GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'),
),
- AMOR_SOL =FACT(statut='o',
+ AMOR_SOL =FACT(statut='o',min=1,max=1,
AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
FONC_AMOR_GEO =SIMP(statut='o',typ=(fonction,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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
#
#
- EXCIT =FACT(statut='f',max='**',
+ EXCIT =FACT(statut='f',min=1,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,formule)),
MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
ANGLE =SIMP(statut='f',typ='I',defaut= 0),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
# RESPONSABLE JMBHH01 J.M.PROIX
def calc_elem_prod(RESULTAT,**args):
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',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='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
LIST_FREQ =SIMP(statut='f',typ=listr8),
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
LIST_ORDRE =SIMP(statut='f',typ=listis),
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à"),
+ GROUP_MA =SIMP(statut='f',fr="le calcul ne sera effectué que sur ces mailles là",typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',fr="le calcul ne sera effectué que sur ces mailles là",typ=ma,max='**'),
# options pour des resultats lineaire
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",
+ TYPE_OPTION =SIMP(statut='f',typ='TXM',max=1,defaut='TOUTES',fr="type d'options mecaniques lineaires",
into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES",
"INDI_ERRE","AUTRES","TOUTES"),
),
b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
- OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA",
+ OPTION =SIMP(statut='f',typ='TXM',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",
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 en degres à partir de la génératrice"),
- 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", ),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',max=1,fr="nom du champ pour VALE_NCOU_MAXI", ),
+ NOM_CMP =SIMP(statut='f',typ='TXM',max=1,fr="nom de la composante pour VALE_NCOU_MAXI", ),
PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"),
fr="Plan de calcul pour les plaques excentrées" ),
- EXCIT =FACT(statut='f',max='**',
+ EXCIT =FACT(statut='f',min=1,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 ),
b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
fr="options de contraintes elasticite 2D et 3D",
- OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA',
+ OPTION =SIMP(statut='f',typ='TXM',max='**',defaut='SIEF_ELNO_ELGA',
fr="option de calcul des contraintes",
into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),),
(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='o',max='**',
+ EXCIT =FACT(statut='o',min=1,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',
+ OPTION =SIMP(statut='o',typ='TXM',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",
(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='o',max='**',
+ EXCIT =FACT(statut='o',min=1,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,formule)),
# fin bloc contraintes struct
b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='o',typ='TXM',max='**',
into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL",
"DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",),
),
(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='o',max='**',
+ EXCIT =FACT(statut='o',min=1,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='**',
+ OPTION =SIMP(statut='o',typ='TXM',max='**',
into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA",
"ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",),
),
(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='o',max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
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='**',
+ OPTION =SIMP(statut='o',typ='TXM',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","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
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" ),
),
- EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures",
+ EXCIT =FACT(statut='f',min=1,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='**',
+ OPTION =SIMP(statut='o',typ='TXM',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='**',
+ OPTION =SIMP(statut='o',typ='TXM',max='**',
into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL","VNOR_ELEM_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"),),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max=1,fr="Nom du champ pour VALE_NCOU_MAXI" ),
+ NOM_CMP =SIMP(statut='o',typ='TXM',max=1,fr="Nom de la composante pour VALE_NCOU_MAXI"),),
),
b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE",
+ OPTION =SIMP(statut='o',typ='TXM',max='**',defaut="ERRE_ELGA_NORE",
into=("SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2",
"SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA",
) ),
- EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures",
+ EXCIT =FACT(statut='f',min=1,max='**',fr="charge contenant les temperatures",
CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
),
),
# statique ou dynamique non lineaire : evol_noli
b_noli =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options evol noli",
- TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',
+ TYPE_OPTION =SIMP(statut='f',typ='TXM',max=1,defaut='TOUTES',
into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT",
"VARI","INDI_ERRE","TOUTES","AUTRES"),
),
b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
- OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='f',typ='TXM',max='**',
into=( "SIEF_ELNO_ELGA",
"SIGM_ELNO_TUYO","SIGM_ELNO_COQU",
"SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART",
NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
fr="choix du point d'intégration dans la couche" ),
ANGLE =SIMP(statut='f',typ='I',defaut= 0 ,fr="angle de dépouillement pour les tuyaux"),
- 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"),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',max=1,fr="Nom du champ pour VALE_NCOU_MAXI"),
+ NOM_CMP =SIMP(statut='f',typ='TXM',max=1,fr="Nom de la composante pour VALE_NCOU_MAXI"),
PLAN = SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ),
- EXCIT =FACT(statut='f',max='**',
+ EXCIT =FACT(statut='f',min=1,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,formule)),
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='**',
+ OPTION =SIMP(statut='o',typ='TXM',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='**',
+ OPTION =SIMP(statut='o',typ='TXM',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='**',
+ OPTION =SIMP(statut='o',typ='TXM',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","EPGR_ELNO","EPGR_ELGA",
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" ),
) ,
- EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures",
+ EXCIT =FACT(statut='f',min=1,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 \
ANGLE =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ),
NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
fr="position dans l'épaisseur de la couche" ),
- EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures",
+ EXCIT =FACT(statut='f',min=1,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='**',
+ OPTION =SIMP(statut='o',typ='TXM',max='**',
into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU",),
),
b_varcoqu = BLOC( condition = "OPTION in ('VARI_ELNO_COQU',) or \
),
b_ener =BLOC( condition = "TYPE_OPTION=='ENER'",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='o',typ='TXM',max='**',
into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",),
),
- EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures",
+ EXCIT =FACT(statut='f',min=1,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='**',
+ OPTION =SIMP(statut='o',typ='TXM',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",
),
b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='o',typ='TXM',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"),),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max=1,fr="Nom du champ pour VALE_NCOU_MAXI" ),
+ NOM_CMP =SIMP(statut='o',typ='TXM',max=1,fr="Nom de la composante pour VALE_NCOU_MAXI"),),
),
b_indi_erre =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE",
+ OPTION =SIMP(statut='o',typ='TXM',max='**',defaut="ERRE_ELGA_NORE",
into=("ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2",
"DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
) ),
# thermique : evol_ther
b_ther =BLOC( condition = "AsType(RESULTAT) == evol_ther",fr="options thermiques",
- OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='f',typ='TXM',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","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM",),),
- EXCIT =FACT(statut='f',max='**',
+ EXCIT =FACT(statut='f',min=1,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,formule)),
# acoustique
b_acou =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques",
- OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='f',typ='TXM',max='**',
into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
"INTE_ELNO_ACTI","INTE_ELNO_REAC",
),),
- EXCIT =FACT(statut='f',max='**',
+ EXCIT =FACT(statut='f',min=1,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,formule)),
TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
-def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args):
+def calc_fatigue_prod(TYPE_CALCUL,**args):
if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem_dommag
- if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem_facy_r
- if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_facy_r
+ if TYPE_CALCUL == "FATIGUE_MULTI" : return cham_elem_facy_r
raise AsException("type de calcul non prevu")
CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n',
into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
"DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
"DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
- HISTOIRE =FACT(statut='o',
+ HISTOIRE =FACT(statut='o',min=1,max=1,
RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,
evol_noli) ),
EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
),
b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'",
- fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.",
- OPTION =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ),
+ fr="Plan critique dans le cas de la fatigue multiaxiale a grand nombre de cycles.",
RESULTAT =SIMP(statut='o',typ=(evol_elas, evol_noli) ),
CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ),
CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN") ),
METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ),
- 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='**' ),
- b_fati_mult_ma =BLOC(condition = "(GROUP_MA != None or MAILLE != None or GROUP_NO != None or NOEUD != None) and \
- OPTION == 'DOMA_NOEUD'",
- MODELE =SIMP(statut='o',typ=modele ),
- MAILLAGE =SIMP(statut='o',typ=maillage ),
- ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu,
docu="U4.66.02-e",reentrant='n',
UIinfo={"groupes":("Matrices/vecteurs",)},
- VITE_FLUI =FACT(statut='o',
+ VITE_FLUI =FACT(statut='o',min=1,max=1,
fr="Définir la plage de vitesse fluide étudiée",
VITE_MIN =SIMP(statut='o',typ='R' ),
VITE_MAX =SIMP(statut='o',typ='R' ),
NB_POIN =SIMP(statut='o',typ='I' ),
),
- BASE_MODALE =FACT(statut='o',
+ BASE_MODALE =FACT(statut='o',min=1,max=1,
regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),),
MODE_MECA =SIMP(statut='o',typ=mode_meca ),
AMOR_UNIF =SIMP(statut='f',typ='R' ),
),
TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ),
- IMPRESSION =FACT(statut='f',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
# RESPONSABLE MCOURTOI M.COURTOIS
def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,ECART_TYPE,INVERSE,RMS,NOCI_SEISME,MAX,COMB,COMB_C,ENVELOPPE,
- SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,LISS_ENVELOP,NORME,ABS, **args):
- if (RMS != None): return table
- if (MAX != None): return table
+ SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,LISS_ENVELOP,NORME, **args):
+ if (RMS != None) : return table
+ if (MAX != None) : return table
if (NOCI_SEISME != None): return table
- if (ECART_TYPE != None): return table
- if (INTEGRE != None): return fonction
- if (DERIVE != None): return fonction
- if (INVERSE != None): return fonction
- if (COMB != None): return fonction
- if (ENVELOPPE != None): return fonction
- if (EXTRACTION != None): return fonction
- if (SPEC_OSCI != None): return fonction
- if (COMB_C != None): return fonction_c
- if (COMPOSE != None): return fonction
- if (ASSE != None): return fonction
- if (FFT != None):
+ if (ECART_TYPE != None) : return table
+ if (INTEGRE != None) : return fonction
+ if (DERIVE != None) : return fonction
+ if (INVERSE != None) : return fonction
+ if (COMB != None) : return fonction
+ if (ENVELOPPE != None) : return fonction
+ if (EXTRACTION != None) : return fonction
+ if (SPEC_OSCI != None) : return fonction
+ if (COMB_C != None) : return fonction_c
+ if (COMPOSE != None) : return fonction
+ if (ASSE != None) : return fonction
+ if (FFT != None) :
vale=FFT.get_child('FONCTION').get_valeur()
if (AsType(vale) == fonction ) : return fonction_c
if (AsType(vale) == fonction_c) : return fonction
- if (CORR_ACCE != None): return fonction
- if (LISS_ENVELOP!= None): return fonction
- if (PUISSANCE != None): return fonction
- if (ABS != None): return fonction
- if (NORME != None): return table
+ if (CORR_ACCE != None) : return fonction
+ if (LISS_ENVELOP != None) : return fonction
+ if (PUISSANCE != None) : return fonction
+ if (NORME != None) : return table
raise AsException("type de concept resultat non prevu")
CALC_FONCTION=OPER(nom="CALC_FONCTION",op= 91,sd_prod=calc_fonction_prod
UIinfo={"groupes":("Fonction",)},
regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','COMB_C','ENVELOPPE','RMS',
'NOCI_SEISME','COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE',
- 'NORME','LISS_ENVELOP','ECART_TYPE','INVERSE','ABS'),),
- FFT =FACT(statut='f',fr="Calcul de la transformee de Fourier ou de son inverse",
+ 'NORME','LISS_ENVELOP','ECART_TYPE','INVERSE'),),
+ FFT =FACT(statut='f',min=1,max=1,fr="Calcul de la transformee de Fourier ou de son inverse",
FONCTION =SIMP(statut='o',typ=(fonction,fonction_c,formule) )
),
- DERIVE =FACT(statut='f',fr="Calcul de la dérivée d une fonction",
+ DERIVE =FACT(statut='f',min=1,max=1,fr="Calcul de la dérivée d une fonction",
METHODE =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ),
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
),
- INTEGRE =FACT(statut='f',fr="Calcul de l intégrale d une fonction",
+ INTEGRE =FACT(statut='f',min=1,max=1,fr="Calcul de l intégrale d une fonction",
METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
FONCTION =SIMP(statut='o',typ=(fonction,formule)),
COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
),
- RMS =FACT(statut='f',fr="Calcul de la valeur RMS d une fonction",
+ RMS =FACT(statut='f',min=1,max=1,fr="Calcul de la valeur RMS d une fonction",
METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
),
- NOCI_SEISME =FACT(statut='f',
+ NOCI_SEISME =FACT(statut='f',min=1,max=1,
FONCTION =SIMP(statut='f',typ=(fonction,formule) ),
SPEC_OSCI =SIMP(statut='f',typ=(fonction,formule) ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",max='**',
into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU",
"DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",) ),
INST_INIT =SIMP(statut='f',typ='R'),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
),
),
- LISS_ENVELOP = FACT(statut='f',fr="Lissage d une enveloppe",
+ LISS_ENVELOP = FACT(statut='f',min=1,max=1,fr="Lissage d une enveloppe",
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
AMOR =SIMP(statut='f',typ='R',max='**'),
FREQ_MIN =SIMP(statut='f',typ='R'),
AMOR_ECH =SIMP(statut='f',typ='R',max='**'),
),
),
- SPEC_OSCI =FACT(statut='f',fr="Calcul du spectre d oscillateur",
+ SPEC_OSCI =FACT(statut='f',min=1,max=1,fr="Calcul du spectre d oscillateur",
METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ),
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
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") ),
),
- MAX =FACT(statut='f',fr="Calcul des extrémas locaux d une fonction",
+ MAX =FACT(statut='f',min=1,max=1,fr="Calcul des extrémas locaux d une fonction",
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
),
- ABS =FACT(statut='f',fr="Calcul de la valeur absolue d une fonction",
- FONCTION =SIMP(statut='o',typ=(fonction,formule),),
- ),
- COMB =FACT(statut='f',max='**',fr="Calcul d une combinaison linéaire réelle de fonctions",
+ COMB =FACT(statut='f',min=1,max='**',fr="Calcul d une combinaison linéaire réelle de fonctions",
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
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="Calcul d une combinaison linéaire complexe de fonctions",
+ COMB_C =FACT(statut='f',min=1,max='**',fr="Calcul d une combinaison linéaire complexe de fonctions",
regles=(UN_PARMI('COEF_R','COEF_C'),),
FONCTION =SIMP(statut='o',typ=(fonction, fonction_c,formule) ),
COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel 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 ),
),
- COMPOSE =FACT(statut='f',fr="Calcul de la composition de deux fonctions FONC_RESU(FONC_PARA)",
+ COMPOSE =FACT(statut='f',min=1,max=1,fr="Calcul de la composition de deux fonctions FONC_RESU(FONC_PARA)",
FONC_RESU =SIMP(statut='o',typ=(fonction,formule)),
FONC_PARA =SIMP(statut='o',typ=(fonction,formule)),
),
- EXTRACTION =FACT(statut='f',fr="Opération d extraction sur une fonction complexe",
+ EXTRACTION =FACT(statut='f',min=1,max=1,fr="Opération d 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="Calcul de l enveloppe d une famille de fonctions",
+ ENVELOPPE =FACT(statut='f',min=1,max=1,fr="Calcul de l enveloppe d une famille de fonctions",
FONCTION =SIMP(statut='o',typ=(fonction,formule),max='**' ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
),
- ASSE =FACT(statut='f',fr="Création à partir de la concatenation de fonctions",
+ ASSE =FACT(statut='f',min=1,max=1,fr="Création à partir de la concatenation de fonctions",
FONCTION =SIMP(statut='o',typ=(fonction,formule),max='**' ),
SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
),
- CORR_ACCE =FACT(statut='f',fr="Correction d un accelerogramme reel",
+ CORR_ACCE =FACT(statut='f',min=1,max=1,fr="Correction d un accelerogramme reel",
CORR_DEPL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
),
- PUISSANCE =FACT(statut='f',fr="Cacul du carré d'une fonction",
+ PUISSANCE =FACT(statut='f',min=1,max=1,fr="Cacul du carré d'une fonction",
FONCTION =SIMP(statut='o', typ=(fonction,formule)),
EXPOSANT =SIMP(statut='f', typ='I', defaut=1 ),
),
- NORME =FACT(statut='f',fr="Cacul de la norme L2 d'une fonction",
+ NORME =FACT(statut='f',min=1,max=1,fr="Cacul de la norme L2 d'une fonction",
FONCTION =SIMP(statut='o', typ=(fonction,formule)),
),
- INVERSE =FACT(statut='f',fr="Cacul de l inverse d une fonction",
+ INVERSE =FACT(statut='f',min=1,max=1,fr="Cacul de l inverse d une fonction",
FONCTION =SIMP(statut='o', typ=fonction),
),
- ECART_TYPE =FACT(statut='f',fr="Cacul de l ecart-type d une fonction",
+ ECART_TYPE =FACT(statut='f',min=1,max=1,fr="Cacul de l ecart-type d une fonction",
METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
FONCTION =SIMP(statut='o',typ=fonction),
INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**'),
+ NUME_MODE_MECA =SIMP(statut='f',typ='I',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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,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',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ",
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)",
),
),
- CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
- COMP_ELAS =FACT(statut='f',
+ COMP_ELAS =FACT(statut='f',min=1,max=1,
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,) ),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- COMP_INCR =FACT(statut='f',
+ COMP_INCR =FACT(statut='f',min=1,max=1,
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,) ),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- ETAT_INIT =FACT(statut='f',
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
SIGM =SIMP(statut='f',typ=cham_elem_sief_r),
DEPL =SIMP(statut='f',typ=cham_no_depl_r),
),
LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
),
b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'",
- BORNES =FACT(statut='o',max='**',
+ BORNES =FACT(statut='o',min=1,max='**',
NUME_ORDRE =SIMP(statut='o',typ='I'),
VALE_MIN =SIMP(statut='o',typ='R'),
VALE_MAX =SIMP(statut='o',typ='R'),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
fr="Calcul du taux de restitution d énergie par la méthode theta en thermo-élasticité en 2D ou en 3D",
- docu="U4.82.03-f",reentrant='f',
+ docu="U4.82.03-f",reentrant='n',
UIinfo={"groupes":("Post traitements",)},
regles=(UN_PARMI('RESULTAT','DEPL'),
EXCLUS('COMP_ELAS','COMP_INCR'),),
b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ",
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)",
),
),
- CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
- COMP_ELAS =FACT(statut='f',
+ COMP_ELAS =FACT(statut='f',min=1,max=1,
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,) ),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- COMP_INCR =FACT(statut='f',
+ COMP_INCR =FACT(statut='f',min=1,max=1,
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,) ),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- ETAT_INIT =FACT(statut='f',
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
SIGM =SIMP(statut='f',typ=cham_elem_sief_r),
DEPL =SIMP(statut='f',typ=cham_no_depl_r),
),
OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G",
- into=("CALC_G","CALC_G_LAGR","CALC_K_G","G_BILINEAIRE","CALC_G_MAX",) ),
+ into=("CALC_G","CALC_G_LAGR","CALC_K_G","G_BILINEAIRE","CALC_G_MAX","CALC_DG",) ),
b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'",
- BORNES =FACT(statut='o',max='**',
+ BORNES =FACT(statut='o',min=1,max='**',
NUME_ORDRE =SIMP(statut='o',typ='I'),
VALE_MIN =SIMP(statut='o',typ='R'),
VALE_MAX =SIMP(statut='o',typ='R'),
b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'",
PROPAGATION =SIMP(statut='o',typ='R'),
),
-
- 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_calc_dg =BLOC(condition="OPTION=='CALC_DG'",
+ SENSIBILITE =FACT(statut='f',min=1,max=1,
+ THETA =SIMP(statut='o',typ=theta_geom ),
+ ),
+ ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DUREE_DECALAGE =SIMP(statut='f',typ='R' ),
NB_POIN =SIMP(statut='o',typ='I' ),
FONCTION =SIMP(statut='o',typ=(fonction,formule),max='**' ),
- TITRE =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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**'),
+ NUME_MODE_MECA =SIMP(statut='f',typ='I',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',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**' ),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
b_charge =BLOC (condition = "CHARGE != None",
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'",
MODELE =SIMP(statut='o',typ=modele ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
b_charge =BLOC(condition = "CHARGE != None",
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
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='**' ),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
b_charge =BLOC(condition = "CHARGE != None",
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
b_rigi_rota =BLOC(condition = "OPTION=='RIGI_ROTA'",
MODELE =SIMP(statut='o',typ=modele ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
+ CHARGE =SIMP(statut='o',typ=char_meca,max='**' ),
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
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='**' ),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
),
b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
MODELE =SIMP(statut='o',typ=modele ),
- CHARGE =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ),
+ CHARGE =SIMP(statut='f',typ=char_meca ,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 ),
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='**' ),
+ CHARGE =SIMP(statut='f',typ=char_ther,max='**' ),
),
b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'",
b_rigi_acou =BLOC(condition = "(OPTION=='RIGI_ACOU') or (OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')",
MODELE =SIMP(statut='o',typ=modele ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
+ CHARGE =SIMP(statut='f',typ=char_acou ,max='**' ),
),
b_rigi_flui =BLOC(condition = "(OPTION=='RIGI_FLUI_STRU') or (OPTION=='MASS_FLUI_STRU')",
MODELE =SIMP(statut='o',typ=modele ),
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='**' ),
+ CHARGE =SIMP(statut='o',typ=char_meca ,max='**' ),
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')",
MODELE =SIMP(statut='o',typ=modele ),
- CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
+ CHARGE =SIMP(statut='o',typ=char_meca,max='**' ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=modele ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
RESULTAT =SIMP(statut='o',typ=evol_ther ),
- ETAT_INIT =FACT(statut='o',
+ ETAT_INIT =FACT(statut='o',min=1,max=1,
regles=(UN_PARMI('NUME_INIT', 'INST_INIT', 'META_INIT',),),
EVOL_THER =SIMP(statut='f',typ=evol_ther ),
NUME_INIT =SIMP(statut='f',typ='I' ),
),
META_INIT =SIMP(statut='f',typ=carte_var2_r ),
),
- COMP_INCR =FACT(statut='o',max='**',
+ COMP_INCR =FACT(statut='o',min=1,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,) ),
OPTION =SIMP(statut='f',typ='TXM'
,into=("META_ELNO_TEMP",) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
mode_acou,mode_stat,mode_stat_depl,mode_stat_acce,
mode_stat_forc,evol_ther,evol_noli,base_modale,
mult_elas,fourier_elas,mode_flamb ) ),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),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'),),
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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',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='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
LIST_FREQ =SIMP(statut='f',typ=listr8),
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),
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='o',typ='TXM',max='**',
into=("FORC_NODA","REAC_NODA",
"DCHA_NOEU_SIGM",
"DEGE_NOEU_DEPL",
CHAM_MATER =SIMP(statut='f',typ=cham_mater),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- EXCIT =FACT(statut='f',max='**',
+ EXCIT =FACT(statut='f',min=1,max='**',
CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),
FONC_MULT =SIMP(statut='f',typ=(fonction,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 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 01/04/2003 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=modele),
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',
+ CABLE_BP =SIMP(statut='o',typ=cabl_precont,max='**'),
+ CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,max='**'),
+ INCREMENT =FACT(statut='o',min=1,max=1,
LIST_INST =SIMP(statut='o',typ=listr8),
INST_INIT =SIMP(statut='f',typ='R'),
INST_FIN =SIMP(statut='f',typ='R'),
COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
),
- NEWTON =FACT(statut='d',
+ NEWTON =FACT(statut='d',min=1,max=1,
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='f',
+ RECH_LINEAIRE =FACT(statut='f',min=1,max=1,
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',
+ CONVERGENCE =FACT(statut='d',min=1,max=1,
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),
RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
),
- ETAT_INIT =FACT(statut='f',
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
EXCLUS('EVOL_NOLI','DEPL',),
EXCLUS('EVOL_NOLI','SIGM',),
NUME_DIDI =SIMP(statut='f',typ='I'),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
- SOLV_NON_LOCAL =FACT(statut='f',
+ SOLV_NON_LOCAL =FACT(statut='f',min=1,max=1,
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") ),
),
EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
- LAGR_NON_LOCAL =FACT(statut='f',
+ LAGR_NON_LOCAL =FACT(statut='f',max=1,
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'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- EXCIT =FACT(statut='o',max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
CHARGE =SIMP(statut='o',typ=char_meca),
),
COMP_INCR =C_COMP_INCR(),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
EXCLUS('DIRECTION','DIRE_THETA'),),
OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
MODELE =SIMP(statut='o',typ=(modele) ),
- THETA_3D =FACT(statut='f',max='**',
+ THETA_3D =FACT(statut='f',min=1,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
MODULE =SIMP(statut='f',typ='R'),
R_INF =SIMP(statut='f',typ='R'),
R_SUP =SIMP(statut='f',typ='R'),
FOND_FISS =SIMP(statut='f',typ=fond_fiss),),
DIRE_THETA =SIMP(statut='f',typ=(cham_no_depl_r) ),
DIRECTION =SIMP(statut='f',typ='R',max='**'),
- THETA_2D =FACT(statut='f',max='**',
+ THETA_2D =FACT(statut='f',min=1,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,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='**',
+ THETA_BANDE =FACT(statut='f',min=1,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',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
"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='**'),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
MODELE =SIMP(statut='f',typ=modele),
b_charge =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure",
CHAM_MATER =SIMP(statut='f',typ=cham_mater),
regles=(UN_PARMI('TOUT','MAILLE'),),
CAS_CHARGE =SIMP(statut='o',typ='TXM' ),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
+ MAILLE =SIMP(statut='f',typ=ma,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='**'),
+ CHARGE =SIMP(statut='o',typ=char_ther,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='**'),
+ CHARGE =SIMP(statut='o',typ=char_acou,max='**'),
),
b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'",
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='**'),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Résultats et champs",)},
regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),
PRESENT_PRESENT('COMB_FOURIER','ANGL'),),
- COMB_R =FACT(statut='f',max='**',
+ COMB_R =FACT(statut='f',min=1,max='**',
PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
COEF_R =SIMP(statut='o',typ='R'),
CHAM_ELEM =SIMP(statut='o',
cham_elem_ener_r,cham_elem_crit_r,cham_elem_dbel_r,
cham_elem_pres_r,cham_elem_sief_c ) ),
),
- COMB_C =FACT(statut='f',max='**',
+ COMB_C =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('COEF_R','COEF_C', ),),
COEF_R =SIMP(statut='f',typ='R'),
COEF_C =SIMP(statut='f',typ='C'),
CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r) ),
),
- COMB_FOURIER =FACT(statut='f',max='**',
+ COMB_FOURIER =FACT(statut='f',min=1,max='**',
COEF_R =SIMP(statut='f',typ='R',defaut= 1.),
NUME_MODE =SIMP(statut='o',typ='I'),
TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
ANGL =SIMP(statut='f',typ='R' ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.72.02-g",reentrant='f',
UIinfo={"groupes":("Résultats et champs",)},
regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),),
- COMB_R =FACT(statut='f',max='**',
+ COMB_R =FACT(statut='f',min=1,max='**',
PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ),
CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c
,cham_no_pres_r,cham_no_pres_c ) ),
COEF_R =SIMP(statut='o',typ='R' ),
),
- COMB_C =FACT(statut='f',max='**',
+ COMB_C =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('COEF_R','COEF_C' ),),
CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c
,cham_no_depl_c,cham_no_pres_c ) ),
COEF_R =SIMP(statut='f',typ='R' ),
COEF_C =SIMP(statut='f',typ='C' ),
),
- COMB_FOURIER =FACT(statut='f',max='**',
+ COMB_FOURIER =FACT(statut='f',min=1,max='**',
CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r) ),
COEF_R =SIMP(statut='f',typ='R',defaut= 1. ),
NUME_MODE =SIMP(statut='o',typ='I' ),
ANGL =SIMP(statut='o',typ='R' ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Post traitements",)},
RESULTAT =SIMP(statut='o',typ=fourier_elas ),
ANGL =SIMP(statut='o',typ='R',max='**'),
- NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=5,
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max=5,
into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.72.01-g",reentrant='f',
UIinfo={"groupes":("Résultats et champs",)},
regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),),
- COMB_R =FACT(statut='f',max='**',
+ COMB_R =FACT(statut='f',min=1,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='**',
+ COMB_C =FACT(statut='f',min=1,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',
+ CALC_AMOR_GENE =FACT(statut='f',min=1,max=1,
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),
),
SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis ),
- NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8 ),
b_freq =BLOC(condition = "FREQ != None or LIST_FREQ != None",
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ),
CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- EXCIT =FACT(statut='o',max='**',
+ EXCIT =FACT(statut='o',min=1,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"),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ AXE =SIMP(statut='f',fr="Excitation suivant un seul axe",
+ typ='R',max=3),
+ TRI_AXE =SIMP(statut='f',fr="Excitation suivant les trois axes mais avec le meme spectre",
+ typ='R',max=3),
+ TRI_SPEC =SIMP(statut='f',fr="Excitation suivant les trois axes avec trois spectres",
+ typ='TXM',into=("OUI",) ),
b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe",
- SPEC_OSCI =SIMP(statut='o',typ=(fonction,formule),),
- ECHELLE =SIMP(statut='f',typ='R',),
+ SPEC_OSCI =SIMP(statut='o',typ=(fonction,formule),max=1 ),
+ ECHELLE =SIMP(statut='f',typ='R',max=1),
),
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,formule),),
- ECHELLE =SIMP(statut='f',typ='R',),
+ SPEC_OSCI =SIMP(statut='o',typ=(fonction,formule),max=1 ),
+ ECHELLE =SIMP(statut='f',typ='R',max=1),
),
b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres",
SPEC_OSCI =SIMP(statut='o',typ=(fonction,formule),min=3,max=3 ),
),
NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
),
- COMB_MODE =FACT(statut='o',
+ COMB_MODE =FACT(statut='o',min=1,max=1,
TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ),
DUREE =SIMP(statut='f',typ='R' ),
),
- COMB_DIRECTION =FACT(statut='f',
+ COMB_DIRECTION =FACT(statut='f',min=1,max=1,
TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
),
- COMB_MULT_APPUI =FACT(statut='f',max='**',
+ COMB_MULT_APPUI =FACT(statut='f',min=1,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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ),
),
- COMB_DEPL_APPUI=FACT(statut='f',max='**',
+ COMB_DEPL_APPUI=FACT(statut='f',min=1,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='**',
+ DEPL_MULT_APPUI =FACT(statut='f',min=1,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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,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,
+ OPTION =SIMP(statut='o',typ='TXM',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='**',
+ IMPRESSION =FACT(statut='f',min=1,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 ),
+ NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),max=3 ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
def crea_champ_prod(TYPE_CHAM,**args):
- import string
- grandeur=string.lower(TYPE_CHAM[5:])
-
- if TYPE_CHAM[0:5] == "CART_" :
- uu="carte_"+grandeur
- elif TYPE_CHAM[0:5] == "NOEU_" :
- uu="cham_no_"+grandeur
- elif TYPE_CHAM[0:2] == "EL" :
- uu="cham_elem_"+grandeur
- else :
- raise AsException("type de concept resultat non prevu")
-
- vv=eval(uu) ; return vv
-
+ if TYPE_CHAM == "CART_DBEL_R" : return carte_dbel_r
+ if TYPE_CHAM == "CART_DEPL_C" : return carte_depl_c
+ if TYPE_CHAM == "CART_DEPL_F" : return carte_depl_f
+ if TYPE_CHAM == "CART_DEPL_R" : return carte_depl_r
+ if TYPE_CHAM == "CART_DURT_R" : return carte_durt_r
+ if TYPE_CHAM == "CART_ENER_R" : return carte_ener_r
+ if TYPE_CHAM == "CART_EPSI_R" : return carte_epsi_r
+ if TYPE_CHAM == "CART_ERREUR" : return carte_erreur
+ if TYPE_CHAM == "CART_FLUX_R" : return carte_flux_r
+ if TYPE_CHAM == "CART_GEOM_R" : return carte_geom_r
+ if TYPE_CHAM == "CART_G_DEPL_R" : return carte_g_depl_r
+ if TYPE_CHAM == "CART_HYDR_R" : return carte_hydr_r
+ if TYPE_CHAM == "CART_INST_R" : return carte_inst_r
+ if TYPE_CHAM == "CART_INTE_R" : return carte_inte_r
+ if TYPE_CHAM == "CART_META_R" : return carte_meta_r
+ if TYPE_CHAM == "CART_NEUT_F" : return carte_neut_f
+ if TYPE_CHAM == "CART_NEUT_R" : return carte_neut_r
+ if TYPE_CHAM == "CART_PRES_R" : return carte_pres_r
+ if TYPE_CHAM == "CART_SIEF_R" : return carte_sief_r
+ if TYPE_CHAM == "CART_SOUR_R" : return carte_sour_r
+ if TYPE_CHAM == "CART_TEMP_F" : return carte_temp_f
+ if TYPE_CHAM == "CART_TEMP_R" : return carte_temp_r
+ if TYPE_CHAM == "CART_VAR2_R" : return carte_var2_r
+ if TYPE_CHAM == "CART_VNOR_C" : return carte_vnor_c
+ if TYPE_CHAM == "NOEU_DBEL_R" : return cham_no_dbel_r
+ if TYPE_CHAM == "NOEU_DEPL_C" : return cham_no_depl_c
+ if TYPE_CHAM == "NOEU_DEPL_F" : return cham_no_depl_f
+ if TYPE_CHAM == "NOEU_DEPL_R" : return cham_no_depl_r
+ if TYPE_CHAM == "NOEU_DURT_R" : return cham_no_durt_r
+ if TYPE_CHAM == "NOEU_ENER_R" : return cham_no_ener_r
+ if TYPE_CHAM == "NOEU_EPSI_R" : return cham_no_epsi_r
+ if TYPE_CHAM == "NOEU_ERREUR" : return cham_no_erreur
+ if TYPE_CHAM == "NOEU_FLUX_R" : return cham_no_flux_r
+ if TYPE_CHAM == "NOEU_GEOM_R" : return cham_no_geom_r
+ if TYPE_CHAM == "NOEU_G_DEPL_R" : return cham_no_g_depl_r
+ if TYPE_CHAM == "NOEU_HYDR_R" : return cham_no_hydr_r
+ if TYPE_CHAM == "NOEU_INST_R" : return cham_no_inst_r
+ if TYPE_CHAM == "NOEU_INTE_R" : return cham_no_inte_r
+ if TYPE_CHAM == "NOEU_META_R" : return cham_no_meta_r
+ if TYPE_CHAM == "NOEU_NEUT_F" : return cham_no_neut_f
+ if TYPE_CHAM == "NOEU_NEUT_R" : return cham_no_neut_r
+ if TYPE_CHAM == "NOEU_PRES_R" : return cham_no_pres_r
+ if TYPE_CHAM == "NOEU_SIEF_R" : return cham_no_sief_r
+ if TYPE_CHAM == "NOEU_SOUR_R" : return cham_no_sour_r
+ if TYPE_CHAM == "NOEU_TEMP_F" : return cham_no_temp_f
+ if TYPE_CHAM == "NOEU_TEMP_R" : return cham_no_temp_r
+ if TYPE_CHAM == "NOEU_VAR2_R" : return cham_no_var2_r
+ if TYPE_CHAM == "NOEU_VNOR_C" : return cham_no_vnor_c
+ if TYPE_CHAM == "ELEM_DBEL_R" : return cham_elem_dbel_r
+ if TYPE_CHAM == "ELEM_DEPL_C" : return cham_elem_depl_c
+ if TYPE_CHAM == "ELEM_DEPL_F" : return cham_elem_depl_f
+ if TYPE_CHAM == "ELEM_DEPL_R" : return cham_elem_depl_r
+ if TYPE_CHAM == "ELEM_DURT_R" : return cham_elem_durt_r
+ if TYPE_CHAM == "ELEM_ENER_R" : return cham_elem_ener_r
+ if TYPE_CHAM == "ELEM_EPSI_R" : return cham_elem_epsi_r
+ if TYPE_CHAM == "ELEM_ERREUR" : return cham_elem_erreur
+ if TYPE_CHAM == "ELEM_FLUX_R" : return cham_elem_flux_r
+ if TYPE_CHAM == "ELEM_GEOM_R" : return cham_elem_geom_r
+ if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl
+ if TYPE_CHAM == "ELEM_HYDR_R" : return cham_elem_hydr_r
+ if TYPE_CHAM == "ELEM_INST_R" : return cham_elem_inst_r
+ if TYPE_CHAM == "ELEM_INTE_R" : return cham_elem_inte_r
+ if TYPE_CHAM == "ELEM_META_R" : return cham_elem_meta_r
+ if TYPE_CHAM == "ELEM_NEUT_F" : return cham_elem_neut_f
+ if TYPE_CHAM == "ELEM_NEUT_R" : return cham_elem_neut_r
+ if TYPE_CHAM == "ELEM_PRES_R" : return cham_elem_pres_r
+ if TYPE_CHAM == "ELEM_SIEF_R" : return cham_elem_sief_r
+ if TYPE_CHAM == "ELEM_SOUR_R" : return cham_elem_sour_r
+ if TYPE_CHAM == "ELEM_TEMP_F" : return cham_elem_temp_f
+ if TYPE_CHAM == "ELEM_TEMP_R" : return cham_elem_temp_r
+ if TYPE_CHAM == "ELEM_VARI_R" : return cham_elem_vari_r
+ if TYPE_CHAM == "ELEM_VNOR_C" : return cham_elem_vnor_c
+ if TYPE_CHAM == "ELNO_DBEL_R" : return cham_elem_dbel_r
+ if TYPE_CHAM == "ELNO_DEPL_C" : return cham_elem_depl_c
+ if TYPE_CHAM == "ELNO_DEPL_F" : return cham_elem_depl_f
+ if TYPE_CHAM == "ELNO_DEPL_R" : return cham_elem_depl_r
+ if TYPE_CHAM == "ELNO_DURT_R" : return cham_elem_durt_r
+ if TYPE_CHAM == "ELNO_ENER_R" : return cham_elem_ener_r
+ if TYPE_CHAM == "ELNO_EPSI_R" : return cham_elem_epsi_r
+ if TYPE_CHAM == "ELNO_ERREUR" : return cham_elem_erreur
+ if TYPE_CHAM == "ELNO_FLUX_R" : return cham_elem_flux_r
+ if TYPE_CHAM == "ELNO_GEOM_R" : return cham_elem_geom_r
+ if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl
+ if TYPE_CHAM == "ELNO_HYDR_R" : return cham_elem_hydr_r
+ if TYPE_CHAM == "ELNO_INST_R" : return cham_elem_inst_r
+ if TYPE_CHAM == "ELNO_INTE_R" : return cham_elem_inte_r
+ if TYPE_CHAM == "ELNO_META_R" : return cham_elem_meta_r
+ if TYPE_CHAM == "ELNO_NEUT_F" : return cham_elem_neut_f
+ if TYPE_CHAM == "ELNO_NEUT_R" : return cham_elem_neut_r
+ if TYPE_CHAM == "ELNO_PRES_R" : return cham_elem_pres_r
+ if TYPE_CHAM == "ELNO_SIEF_R" : return cham_elem_sief_r
+ if TYPE_CHAM == "ELNO_SOUR_R" : return cham_elem_sour_r
+ if TYPE_CHAM == "ELNO_TEMP_F" : return cham_elem_temp_f
+ if TYPE_CHAM == "ELNO_TEMP_R" : return cham_elem_temp_r
+ if TYPE_CHAM == "ELNO_VARI_R" : return cham_elem_vari_r
+ if TYPE_CHAM == "ELNO_VNOR_C" : return cham_elem_vnor_c
+ if TYPE_CHAM == "ELGA_DBEL_R" : return cham_elem_dbel_r
+ if TYPE_CHAM == "ELGA_DEPL_C" : return cham_elem_depl_c
+ if TYPE_CHAM == "ELGA_DEPL_F" : return cham_elem_depl_f
+ if TYPE_CHAM == "ELGA_DEPL_R" : return cham_elem_depl_r
+ if TYPE_CHAM == "ELGA_DURT_R" : return cham_elem_durt_r
+ if TYPE_CHAM == "ELGA_ENER_R" : return cham_elem_ener_r
+ if TYPE_CHAM == "ELGA_EPSI_R" : return cham_elem_epsi_r
+ if TYPE_CHAM == "ELGA_ERREUR" : return cham_elem_erreur
+ if TYPE_CHAM == "ELGA_FLUX_R" : return cham_elem_flux_r
+ if TYPE_CHAM == "ELGA_GEOM_R" : return cham_elem_geom_r
+ if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl
+ if TYPE_CHAM == "ELGA_HYDR_R" : return cham_elem_hydr_r
+ if TYPE_CHAM == "ELGA_INST_R" : return cham_elem_inst_r
+ if TYPE_CHAM == "ELGA_INTE_R" : return cham_elem_inte_r
+ if TYPE_CHAM == "ELGA_META_R" : return cham_elem_meta_r
+ if TYPE_CHAM == "ELGA_NEUT_F" : return cham_elem_neut_f
+ if TYPE_CHAM == "ELGA_NEUT_R" : return cham_elem_neut_r
+ if TYPE_CHAM == "ELGA_PRES_R" : return cham_elem_pres_r
+ if TYPE_CHAM == "ELGA_SIEF_R" : return cham_elem_sief_r
+ if TYPE_CHAM == "ELGA_SOUR_R" : return cham_elem_sour_r
+ if TYPE_CHAM == "ELGA_TEMP_F" : return cham_elem_temp_f
+ if TYPE_CHAM == "ELGA_TEMP_R" : return cham_elem_temp_r
+ if TYPE_CHAM == "ELGA_VARI_R" : return cham_elem_vari_r
+ if TYPE_CHAM == "ELGA_VNOR_C" : return cham_elem_vnor_c
+ if TYPE_CHAM == "CART_IRRA_R" : return carte_irra_r
+ if TYPE_CHAM == "NOEU_IRRA_R" : return cham_no_irra_r
+ if TYPE_CHAM == "ELEM_IRRA_R" : return cham_elem_irra_r
+ if TYPE_CHAM == "ELNO_IRRA_R" : return cham_elem_irra_r
+ if TYPE_CHAM == "ELGA_IRRA_R" : return cham_elem_irra_r
+ if TYPE_CHAM == "ELEM_SPMA_R" : return cham_elem_spma_r
+ raise AsException("type de concept resultat non prevu")
CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
fr=" ",docu="U4.72.04-b",reentrant='n',
UIinfo={"groupes":("Résultats et champs",)},
- TYPE_CHAM =SIMP(statut='o',typ='TXM',),
- # 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
+ TYPE_CHAM =SIMP(statut='o',typ='TXM',
+ into=("CART_DBEL_R","NOEU_DBEL_R","ELEM_DBEL_R",
+ "ELNO_DBEL_R","ELGA_DBEL_R","CART_DEPL_C",
+ "NOEU_DEPL_C","ELEM_DEPL_C","ELNO_DEPL_C",
+ "ELGA_DEPL_C","CART_DEPL_F","NOEU_DEPL_F",
+ "ELEM_DEPL_F","ELNO_DEPL_F","ELGA_DEPL_F",
+ "CART_DEPL_R","NOEU_DEPL_R","ELEM_DEPL_R",
+ "ELNO_DEPL_R","ELGA_DEPL_R","CART_DURT_R",
+ "NOEU_DURT_R","ELEM_DURT_R","ELNO_DURT_R",
+ "ELGA_DURT_R","CART_ENER_R","NOEU_ENER_R",
+ "ELEM_ENER_R","ELNO_ENER_R","ELGA_ENER_R",
+ "CART_EPSI_R","NOEU_EPSI_R","ELEM_EPSI_R",
+ "ELNO_EPSI_R","ELGA_EPSI_R","CART_ERREUR",
+ "NOEU_ERREUR","ELEM_ERREUR","ELNO_ERREUR",
+ "ELGA_ERREUR","CART_FLUX_R","NOEU_FLUX_R",
+ "ELEM_FLUX_R","ELNO_FLUX_R","ELGA_FLUX_R",
+ "CART_GEOM_R","NOEU_GEOM_R","ELEM_GEOM_R",
+ "ELNO_GEOM_R","ELGA_GEOM_R","CART_G_DEPL_R",
+ "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R",
+ "ELGA_G_DEPL_R","CART_HYDR_R","NOEU_HYDR_R",
+ "ELEM_HYDR_R","ELNO_HYDR_R","ELGA_HYDR_R",
+ "CART_INST_R","NOEU_INST_R","ELEM_INST_R",
+ "ELNO_INST_R","ELGA_INST_R","CART_INTE_R",
+ "NOEU_INTE_R","ELEM_INTE_R","ELNO_INTE_R",
+ "ELGA_INTE_R","CART_META_R","NOEU_META_R",
+ "ELEM_META_R","ELNO_META_R","ELGA_META_R",
+ "CART_NEUT_F","NOEU_NEUT_F","ELEM_NEUT_F",
+ "ELNO_NEUT_F","ELGA_NEUT_F","CART_NEUT_R",
+ "NOEU_NEUT_R","ELEM_NEUT_R","ELNO_NEUT_R",
+ "ELGA_NEUT_R","CART_PRES_R","NOEU_PRES_R",
+ "ELEM_PRES_R","ELNO_PRES_R","ELGA_PRES_R",
+ "CART_SIEF_R","NOEU_SIEF_R","ELEM_SIEF_R",
+ "ELNO_SIEF_R","ELGA_SIEF_R","CART_SOUR_R",
+ "NOEU_SOUR_R","ELEM_SOUR_R","ELNO_SOUR_R",
+ "ELGA_SOUR_R","CART_TEMP_F","NOEU_TEMP_F",
+ "ELEM_TEMP_F","ELNO_TEMP_F","ELGA_TEMP_F",
+ "CART_TEMP_R","NOEU_TEMP_R","ELEM_TEMP_R",
+ "ELNO_TEMP_R","ELGA_TEMP_R","CART_VAR2_R",
+ "NOEU_VAR2_R","ELEM_VARI_R","ELNO_VARI_R",
+ "ELGA_VARI_R","CART_VNOR_C","NOEU_VNOR_C",
+ "ELEM_VNOR_C","ELNO_VNOR_C","ELGA_VNOR_C",
+ "CART_IRRA_R","NOEU_IRRA_R","ELEM_IRRA_R",
+ "ELNO_IRRA_R","ELGA_IRRA_R","ELEM_SPMA_R",) ),
# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
# ------------------------------------------------------------------
MODELE =SIMP(statut='f',typ=(modele) ),
b_affe_modele =BLOC(condition = "MODELE != None",
PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
- AFFE =FACT(statut='o',max='**',
+ AFFE =FACT(statut='o',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,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='**' ),
MODELE =SIMP(statut='f',typ=(modele) ),
b_asse_modele =BLOC(condition = "MODELE != None",
PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
- ASSE =FACT(statut='o',max='**',
+ ASSE =FACT(statut='o',min=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
CHAM_GD =SIMP(statut='o',typ=(cham_gd)),
NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ),
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()),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',
+ into=("DEPL","VITE","ACCE",
+ "DEPL_ABSOLU","VITE_ABSOLU",
+ "TEMP","IRRA","ACCE_ABSOLU",
+ "FORC_NODA","REAC_NODA","EFGE_NOEU_DEPL",
+ "EFGE_NOEU_CART","EPSI_NOEU_DEPL",
+ "SIGM_NOEU_DEPL","SIGM_NOEU_CART",
+ "SIPO_NOEU_DEPL","EQUI_NOEU_SIGM",
+ "EQUI_NOEU_EPSI","FLUX_NOEU_TEMP",
+ "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
+ "META_ELGA_TEMP","META_ELNO_TEMP",
+ "META_NOEU_TEMP","DURT_ELGA_META",
+ "DURT_ELNO_META","DURT_NOEU_META","SIEF_ELGA",
+ "SIEF_ELNO_ELGA","SIEF_ELGA_DEPL",
+ "VARI_ELNO_ELGA","VARI_ELGA","EPOT_ELEM_DEPL",
+ "ECIN_ELEM_DEPL","SOUR_ELGA_ELEC",
+ "PRES_ELNO_REEL","PRES_ELNO_IMAG",
+ "PRES_ELNO_DBEL","INTE_ELNO_ACTI",
+ "INTE_ELNO_REAC","EFGE_ELNO_DEPL",
+ "SIGM_ELNO_DEPL","EFGE_ELNO_CART",
+ "SIGM_ELNO_CART","SIPO_ELNO_DEPL",
+ "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL",
+ "EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO",
+ "EPSP_ELGA","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
+ "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI",
+ "ERRE_ELNO_ELGA","ERRE_ELGA_NORE",
+ "ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2",
+ "SIGM_NOZ1_ELGA","SIGM_NOZ2_ELGA",
+ "DEGE_ELNO_DEPL","SIRE_ELNO_DEPL",
+ "VNOR_ELEM_DEPL","SIEF_ELNO","VARI_ELNO",
+ "SIEF_NOEU_ELGA","VARI_NOEU_ELGA",
+ "PRES_NOEU_DBEL","PRES_NOEU_REEL",
+ "PRES_NOEU_IMAG","INTE_NOEU_ACTI",
+ "INTE_NOEU_REAC","DCHA_ELGA_SIGM",
+ "DCHA_ELNO_SIGM","RADI_ELGA_SIGM",
+ "RADI_ELNO_SIGM","ENDO_ELNO_SIGA",
+ "ENDO_ELNO_SINO","ENDO_ELNO_SIGM",
+ "SIGM_ELNO_VARI","SIGM_NOEU_VARI",
+ "EPME_ELNO_DEPL","EPME_ELGA_DEPL",
+ "EPMG_ELNO_DEPL",
+ "EPMG_ELGA_DEPL","GRAD_ELGA_THETA",
+ "GTHE_ELNO_ELGA","GRAD_NOEU_THETA",
+ "HYDR_ELGA","HYDR_ELNO_ELGA","HYDR_NOEU_ELGA",
+ "THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",
+ "VALE_CONT","VALE_NCOU_MAXI") ),
TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ),
TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE",into=("VALE","INST",) ),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
-# RESPONSABLE MCOURTOI M.COURTOIS
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
EXCLUS('ECLA_PG','DETR_GROUP_MA'),
EXCLUS('ECLA_PG','MODI_MAILLE'),
EXCLUS('ECLA_PG','LINE_QUAD'),
- 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','COQU_VOLU'),
- EXCLUS('COQU_VOLU','MODI_MAILLE'),
- EXCLUS('COQU_VOLU','CREA_MAILLE'),
- EXCLUS('COQU_VOLU','CREA_GROUP_MA'),
- EXCLUS('COQU_VOLU','DETR_GROUP_MA'),
),
MAILLAGE =SIMP(statut='o',typ=maillage ),
- CREA_POI1 =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds",
+ CREA_POI1 =FACT(statut='f',min=1,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='**'),
+ NOM_GROUP_MA =SIMP(statut='f',typ=grma,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
),
- CREA_MAILLE =FACT(statut='f',max='**',fr="Duplication de mailles",
+ CREA_MAILLE =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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",
+ CREA_GROUP_MA =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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='**'),
+ DETR_GROUP_MA =FACT(statut='f',min=1,max=1,fr="Destruction de groupes de mailles",
+ GROUP_MA =SIMP(statut='f',typ=grma,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",
+ MODI_MAILLE =FACT(statut='f',min=1,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 ),
- ),
+ MAILLE =SIMP(statut='f',typ=grma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=ma,max='**'),
+ OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4"),fr="Choix de la transformation" ),
+ PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"),
+ PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ),
),
- LINE_QUAD =FACT(statut='f',fr="Passage linéaire -> quadratique",
+ LINE_QUAD =FACT(statut='f',min=01,max=1,fr="Passage linéaire -> quadratique",
regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=grma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=ma,max='**'),
PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"),
PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ),
),
- REPERE =FACT(statut='f',max='**',
+ REPERE =FACT(statut='f',min=1,max='**',
fr="changement de repère servant à déterminer les caractéristiques d une section de poutre",
TABLE =SIMP(statut='o',typ=tabl_cara_geom,
fr="Nom de la table contenant les caractéristiques de la section de poutre" ),
fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
),
),
- ECLA_PG =FACT(statut='f',
+ ECLA_PG =FACT(statut='f',min=1,max=1,
fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss",
MODELE =SIMP(statut='o',typ=modele ),
SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
-#
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
"EVOL_THER","EVOL_VARC",) ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","TEMP","IRRA","HYDR_ELGA",),),
- AFFE =FACT(statut='o',max='**',
+ NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","TEMP","IRRA","HYDR_ELGA",),max=1 ),
+ AFFE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOM_CAS','NUME_MODE','LIST_INST','INST',),),
CHAM_GD =SIMP(statut='f',typ=(cham_gd)),
NOM_CAS =SIMP(statut='f',typ='TXM' ),
NUME_MODE =SIMP(statut='f',typ='I'),
TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
NUME_INIT =SIMP(statut='f',typ='I'),
NUME_FIN =SIMP(statut='f',typ='I'),
TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ),
- ECLA_PG =FACT(statut='o',
+ ECLA_PG =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
- NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
MODELE_INIT =SIMP(statut='o',typ=modele),
RESU_INIT =SIMP(statut='o',typ=resultat),
MAILLAGE =SIMP(statut='o',typ=maillage),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
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='**' ),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),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),
MAILLAGE_INIT =SIMP(statut='o',typ=maillage,),
RESU_FINAL =SIMP(statut='o',typ=evol_noli,),
MAILLAGE_FINAL =SIMP(statut='o',typ=maillage,),
- PERM_CHAM =FACT(statut='o',
+ PERM_CHAM =FACT(statut='o',min=1,max=1,
GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
GROUP_MA_INIT =SIMP(statut='o',typ=grma),
TRAN =SIMP(statut='o',typ='R',max='**'),
TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ),
- PROL_RTZ =FACT(statut='o',
+ PROL_RTZ =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('INST','LIST_INST'),),
MAILLAGE_FINAL =SIMP(statut='o',typ=maillage,),
TABLE =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t"),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)",
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
),
) ;
-
-#& MODIF COMMANDE DATE 06/09/2003 AUTEUR D6BHHJP J.P.LEFEBVRE
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
into=("OUI","NON"),defaut="OUI"),
- HDF =FACT(statut='f',min=1,max=1,
- FICHIER =SIMP(fr="nom du fichier hdf associe",statut='o',typ='TXM'),
- ),
BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX",
statut='f',min=1,max=3,
FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM',
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",
+ CODE =FACT(fr="définition d un nom pour l'esemble 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')),
PARTITION =SIMP(statut='f',typ='R'),
),
);
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.64.02-f",reentrant='f',
UIinfo={"groupes":("Matrices/vecteurs",)},
regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),),
- CLASSIQUE =FACT(statut='f',
+ CLASSIQUE =FACT(statut='f',min=1,max=1,
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='**',
+ RITZ =FACT(statut='f',min=1,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 ),
MULT_ELAS =SIMP(statut='f',typ=mult_elas ),
BASE_MODALE =SIMP(statut='f',typ=base_modale ),
),
- DIAG_MASS =FACT(statut='f',max='**',
+ DIAG_MASS =FACT(statut='f',min=1,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,) ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 21/03/2003 AUTEUR ASSIRE A.ASSIRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
GROUP_MA_BETON =SIMP(statut='o',typ=grma),
- DEFI_CABLE =FACT(statut='o',max='**',
+ DEFI_CABLE =FACT(statut='o',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,min=2,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),
+ NOEUD_ANCRAGE =SIMP(statut='f',typ=no,max=2),
+ GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,max=2),
),
- TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
+ 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,
+ RELAXATION =FACT(statut='f',min=0,max=1,
R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ),
),
- CONE =FACT(statut='f',min=0,
+ CONE =FACT(statut='f',min=0,max=1,
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") ),
+ 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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 21/03/2003 AUTEUR ASSIRE A.ASSIRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
GROUP_MA_BETON =SIMP(statut='o',typ=grma),
- DEFI_CABLE =FACT(statut='o',max='**',
+ DEFI_CABLE =FACT(statut='o',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,min=2,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),
+ NOEUD_ANCRAGE =SIMP(statut='f',typ=no,max=2),
+ GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,max=2),
+ GROUP_NO_FUT = SIMP(statut='f',typ=grno,max=2),
),
- TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
+ 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,
+ RELAXATION =FACT(statut='f',min=0,max=1,
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,
+ CONE =FACT(statut='f',min=0,max=1,
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") ),
+ PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,
+ into=("OUI","NON") ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.31.01-g",reentrant='n',
UIinfo={"groupes":("Fonction",)},
NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE =SIMP(statut='o',typ='R',),
+ VALE =SIMP(statut='o',typ='R',max=1 ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-f",reentrant='n',
UIinfo={"groupes":("Modélisation",)},
fr="Définition d une coque composite couche par couche",
- COUCHE =FACT(statut='o',max='**',
+ COUCHE =FACT(statut='o',min=1,max='**',
EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ),
MATER =SIMP(statut='o',typ=(mater) ),
ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.E+0,
val_min=-90.E+0,val_max=90.E+0 ),
),
- IMPRESSION =FACT(statut='f',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
into=("RESULTAT",) ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
-# 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
-DEFI_FICHIER=PROC(nom="DEFI_FICHIER",op=26,docu="U4.12.03-a",
- UIinfo={"groupes":("Gestion du travail",)},
- fr="Gestion d une unité logique : ajout, suppression",
-
- regles=(AU_MOINS_UN('NOM_SYSTEME','FICHIER'),),
- ACTION =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER"),defaut="ASSOCIER"),
- FICHIER =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I' ,val_min=1),
- NOM_SYSTEME =SIMP(statut='f',typ='TXM'),
- TYPE =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"),
- ACCES =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"),
-
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-
- )
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.25.01-e",reentrant='n',
UIinfo={"groupes":("Maillage",)},
regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
- FAISCEAU_TRANS =FACT(statut='f',max='**',
+ FAISCEAU_TRANS =FACT(statut='f',min=1,max='**',
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,formule) ),
UNITE_CK =SIMP(statut='f',typ='I',defaut=71),
PAS =SIMP(statut='f',typ='R' ),
),
- GRAPPE =FACT(statut='f',
+ GRAPPE =FACT(statut='f',max=1,
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
UNITE_CA =SIMP(statut='f',typ='I',defaut=70),
UNITE_KA =SIMP(statut='f',typ='I',defaut=71),
),
- FAISCEAU_AXIAL =FACT(statut='f',max='**',
+ FAISCEAU_AXIAL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
UN_PARMI('CARA_ELEM','RAYON_TUBE'),
ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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,formule) ),
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,
+ CARA_PAROI =SIMP(statut='f',typ='TXM',max=5,
into=("YC","ZC","R","HY","HZ") ),
VALE_PAROI =SIMP(statut='f',typ='R',max=5),
ANGL_VRIL =SIMP(statut='f',typ='R' ),
COOR_GRILLE =SIMP(statut='f',typ='R',max='**'),
TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'),
),
- COQUE_COAX =FACT(statut='f',
+ COQUE_COAX =FACT(statut='f',max=1,
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),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 03/12/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**',
+ COUR =FACT(statut='f',min=1,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'),),
INST_CC_INIT =SIMP(statut='o',typ='R'),
INST_CC_FIN =SIMP(statut='o',typ='R'),
),
- COUR_PRIN =FACT(statut='f',
+ COUR_PRIN =FACT(statut='f',min=1,max=1,
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'),
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='**',
+ COUR_SECO =FACT(statut='f',min=1,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'),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MAILLAGE =SIMP(statut='o',typ=(maillage) ),
NOEUD_INIT =SIMP(statut='o',typ=no),
NOEUD_FIN =SIMP(statut='o',typ=no),
- VITE =FACT(statut='o',
+ VITE =FACT(statut='o',min=1,max=1,
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 ) ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
"INST","X","Y","Z","EPSI","META","FREQ","PULS",
"AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
- "PGAZ","PCAP","VITE","ENDO") ),
+ "PGAZ","PCAP","VITE") ),
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)"),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,),
MAILLAGE =SIMP(statut='o',typ=maillage ),
- FOND =FACT(statut='f',
+ FOND =FACT(statut='f',min=1,max=1,
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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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,),
+ NOEUD_ORIG =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
+ NOEUD_EXTR =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
),
- FOND_FERME =FACT(statut='f',
+ FOND_FERME =FACT(statut='f',min=1,max=1,
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,),
- ),
- LEVRE_SUP =FACT(statut='f',
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ NOEUD_ORIG =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
+ MAILLE_ORIG =SIMP(statut='f',typ=ma,max=1),
+ GROUP_MA_ORIG =SIMP(statut='f',typ=ma,max=1),
+ ),
+ LEVRE_SUP =FACT(statut='f',min=1,max=1,
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- LEVRE_INF =FACT(statut='f',
+ LEVRE_INF =FACT(statut='f',min=1,max=1,
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
NORMALE =SIMP(statut='f',typ='R',max='**'),
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),
+ VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,max=2),
+ VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,max=2),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),),
MAILLAGE =SIMP(statut='o',typ=(maillage,squelette) ),
- CREA_GROUP_MA =FACT(statut='f',max='**',
-
-regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),),
+ CREA_GROUP_MA =FACT(statut='f',min=1,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") ),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ INTERSEC =SIMP(statut='f',typ=grma,max='**'),
+ UNION =SIMP(statut='f',typ=grma,max='**'),
+ DIFFE =SIMP(statut='f',typ=grma,max='**'),
+ OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE") ),
b_group_ma =BLOC(condition = "GROUP_MA != None",
regles=(EXCLUS('POSITION','NUME_INIT'),),
NUME_INIT =SIMP(statut='f',typ='I'),
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'),),
+ regles=(UN_PARMI('POINT','NOEUD_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'),
+ regles=(UN_PARMI('POINT','NOEUD_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'),
+ regles=(UN_PARMI('POINT','NOEUD_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),
+ POINT =SIMP(statut='f',typ='R',max=3),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no),
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='**',
+ CREA_GROUP_NO =FACT(statut='f',min=1,max='**',
regles = ( AU_MOINS_UN ('TOUT_GROUP_MA','GROUP_MA','NOEUD',
'INTERSEC','UNION','DIFFE','GROUP_NO','OPTION'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
EXCLUS ('TOUT_GROUP_MA','GROUP_MA','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_MA =SIMP(statut='f',typ=grma,max='**'),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma ,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='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ INTERSEC =SIMP(statut='f',typ=grno,max='**'),
+ UNION =SIMP(statut='f',typ=grno,max='**'),
+ DIFFE =SIMP(statut='f',typ=grno,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN",
"SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ),
b_nom_group_ma =BLOC(condition = "GROUP_MA != None",
- NOM =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ NOM =SIMP(statut='f',typ=grma,max='**'),
),
b_crit_noeud = BLOC(condition = "GROUP_MA != None",
CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS",
),
),
b_env_sphere =BLOC(condition = "OPTION == 'ENV_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 ,validators=NoRepeat(),max=1),
- GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
+ regles=(UN_PARMI('POINT','NOEUD_CENTRE'),),
+ POINT =SIMP(statut='f',typ='R',max=3),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no,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'),
+ regles=(UN_PARMI('POINT','NOEUD_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),
+ POINT =SIMP(statut='f',typ='R',max=3),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no,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'),
+ regles=(UN_PARMI('POINT','NOEUD_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),
- ANGL_NAUT =SIMP(statut='f',typ='R' ,max=3),
- VECT_NORMALE =SIMP(statut='f',typ='R' ,max=3),
+ POINT =SIMP(statut='f',typ='R',max=3),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no,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'",
b_tunnel =BLOC(condition = "OPTION == 'TUNNEL'",
regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),),
- GROUP_MA_AXE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- MAILLE_AXE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA_AXE =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_AXE =SIMP(statut='f',typ=ma,max='**'),
NOEUD_ORIG =SIMP(statut='f',typ=no),
GROUP_NO_ORIG =SIMP(statut='f',typ=grno),
RAYON =SIMP(statut='o',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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ),
- PAR_FONCTION =FACT(statut='f',max='**',
+ PAR_FONCTION =FACT(statut='f',min=1,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='**',
+ KANAI_TAJIMI =FACT(statut='f',min=1,max='**',
regles=(EXCLUS('VALE_R','VALE_C'),),
NUME_ORDRE_I =SIMP(statut='o',typ='I' ),
NUME_ORDRE_J =SIMP(statut='o',typ='I' ),
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='**',
+ CONSTANT =FACT(statut='f',min=1,max='**',
regles=(EXCLUS('VALE_R','VALE_C'),),
NUME_ORDRE_I =SIMP(statut='o',typ='I' ),
NUME_ORDRE_J =SIMP(statut='o',typ='I' ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.64.01-f",reentrant='n',
UIinfo={"groupes":("Matrices/vecteurs",)},
NUME_DDL =SIMP(statut='o',typ=nume_ddl ),
- INTERFACE =FACT(statut='o',max='**',
+ INTERFACE =FACT(statut='o',min=1,max='**',
regles=(ENSEMBLE('NOM','TYPE'),
# erreur doc U sur la condition qui suit
UN_PARMI('NOEUD','GROUP_NO'),),
FREQ =SIMP(statut='f',typ='R',defaut= 1.),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
EXCLUS('VALE','INTERVALLE'),),
VALE =SIMP(statut='f',typ='I',max='**'),
DEBUT =SIMP(statut='f',typ='I'),
- INTERVALLE =FACT(statut='f',max='**',
+ INTERVALLE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOMBRE','PAS'),),
JUSQU_A =SIMP(statut='o',typ='I'),
NOMBRE =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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
ENSEMBLE('DEBUT','INTERVALLE')),
VALE =SIMP(statut='f',typ='R',max='**'),
DEBUT =SIMP(statut='f',typ='R'),
- INTERVALLE =FACT(statut='f',max='**',
+ INTERVALLE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOMBRE','PAS'),),
JUSQU_A =SIMP(statut='o',typ='R'),
NOMBRE =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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Définition d un nouveau maillage à partir de macro éléments",
docu="U4.23.01-f",reentrant='n',
UIinfo={"groupes":("Maillage",)},
- DEFI_MAILLE =FACT(statut='o',max='**',
+ DEFI_MAILLE =FACT(statut='o',min=1,max='**',
MACR_ELEM_STAT =SIMP(statut='o',typ=macr_elem_stat,max='**' ),
MAILLE =SIMP(statut='f',typ=ma,max='**'),
TRAN =SIMP(statut='f',typ='R',max=3),
CENTRE =SIMP(statut='f',typ='R',max=3),
),
),
- RECO_GLOBAL =FACT(statut='f',max='**',
+ RECO_GLOBAL =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
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_MAILLE =FACT(statut='f',max='**',
+ RECO_MAILLE =FACT(statut='f',min=1,max='**',
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") ),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
),
),
- DEFI_NOEUD =FACT(statut='f',max='**',
+ DEFI_NOEUD =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),
fr="Renommage de tous les noeuds" ),
NOEUD_FIN =SIMP(statut='o',typ=no),
),
),
- DEFI_GROUP_NO =FACT(statut='f',max='**',
+ DEFI_GROUP_NO =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('TOUT','MAILLE'),
AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
GROUP_NO_FIN =SIMP(statut='f',typ=grno),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
#
# comportement élastique
#
- ELAS =FACT(statut='f',min=0,
+ ELAS =FACT(statut='f',min=0,max=1,
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'),
AMOR_BETA =SIMP(statut='f',typ='R'),
AMOR_HYST =SIMP(statut='f',typ='R'),
),
- ELAS_FO =FACT(statut='f',min=0,
+ ELAS_FO =FACT(statut='f',min=0,max=1,
regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),),
E =SIMP(statut='o',typ=(fonction,formule)),
NU =SIMP(statut='o',typ=(fonction,formule)),
VERI_P3 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ),
VERI_P4 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ),
),
- ELAS_FLUI =FACT(statut='f',min=0,
+ ELAS_FLUI =FACT(statut='f',min=0,max=1,
E =SIMP(statut='o',typ='R'),
NU =SIMP(statut='o',typ='R'),
RHO =SIMP(statut='o',typ='R'),
COEF_MASS_AJOU =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="ABSC",into=("ABSC",) ),
),
- ELAS_ISTR =FACT(statut='f',min=0,
+ ELAS_ISTR =FACT(statut='f',min=0,max=1,
E_L =SIMP(statut='o',typ='R'),
E_N =SIMP(statut='o',typ='R'),
NU_LT =SIMP(statut='o',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',min=0,
+ ELAS_ISTR_FO =FACT(statut='f',min=0,max=1,
regles=(
PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
ALPHA_N =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST")),
),
- ELAS_ORTH =FACT(statut='f',min=0,
+ ELAS_ORTH =FACT(statut='f',min=0,max=1,
E_L =SIMP(statut='o',typ='R'),
E_T =SIMP(statut='o',typ='R'),
E_N =SIMP(statut='f',typ='R'),
YC =SIMP(statut='f',typ='R',defaut= 1. ),
S_LT =SIMP(statut='f',typ='R',defaut= 1. ),
),
- ELAS_ORTH_FO =FACT(statut='f',min=0,
+ ELAS_ORTH_FO =FACT(statut='f',min=0,max=1,
regles=(
PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
ALPHA_N =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
),
- ELAS_THM =FACT(statut='f',min=0,
+ ELAS_THM =FACT(statut='f',min=0,max=1,
RHO_S =SIMP(statut='o',typ='R'),
UN_SUR_KS =SIMP(statut='o',typ='R'),
E =SIMP(statut='f',typ='R'),
ALPHA_S =SIMP(statut='f',typ='R'),
ALPHA_D =SIMP(statut='f',typ='R'),
),
- SURF_ETAT_SATU =FACT(statut='f',min=0,
+ SURF_ETAT_SATU =FACT(statut='f',min=0,max=1,
E_CHAR =SIMP(statut='o',typ='R'),
E_DECHAR =SIMP(statut='o',typ='R'),
XN =SIMP(statut='f',typ='R'),
COHE =SIMP(statut='o',typ='R'),
RESI_TRAC =SIMP(statut='o',typ='R'),
),
- CAM_CLAY_THM =FACT(statut='f',min=0,
+ CAM_CLAY_THM =FACT(statut='f',min=0,max=1,
NU =SIMP(statut='f',typ='R'),
LAMBDA =SIMP(statut='o',typ='R'),
KAPA =SIMP(statut='o',typ='R'),
ALPHA3_PC =SIMP(statut='f',typ='R'),
ALPHA_S =SIMP(statut='f',typ='R'),
),
- SURF_ETAT_NSAT =FACT(statut='f',min=0,
+ SURF_ETAT_NSAT =FACT(statut='f',min=0,max=1,
E_CHAR =SIMP(statut='o',typ='R'),
E_DECHAR =SIMP(statut='o',typ='R'),
XN =SIMP(statut='f',typ='R'),
C_SURF_SATU =SIMP(statut='f',typ='R'),
D_SURF_SATU =SIMP(statut='f',typ='R'),
),
- ELAS_COQUE =FACT(statut='f',min=0,
+ ELAS_COQUE =FACT(statut='f',min=0,max=1,
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',),
RHO =SIMP(statut='f',typ='R'),
ALPHA =SIMP(statut='f',typ='R'),
),
- ELAS_COQUE_FO =FACT(statut='f',min=0,
+ ELAS_COQUE_FO =FACT(statut='f',min=0,max=1,
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',),
ALPHA =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST") ),
),
- APPUI_ELAS =FACT(statut='f',min=0,
+ APPUI_ELAS =FACT(statut='f',min=0,max=1,
E_N =SIMP(statut='o',typ='R'),
E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0),
),
- CABLE =FACT(statut='f',min=0,
+ CABLE =FACT(statut='f',min=0,max=1,
E =SIMP(statut='o',typ='R'),
EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
RHO =SIMP(statut='f',typ='R'),
#
# comportement mécanique non linéaire
#
- TRACTION =FACT(statut='f',min=0,
+ TRACTION =FACT(statut='f',min=0,max=1,
SIGM =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",) ),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
VERI_P3 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ),
VERI_P4 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ),
),
- ECRO_LINE =FACT(statut='f',min=0,
+ ECRO_LINE =FACT(statut='f',min=0,max=1,
D_SIGM_EPSI =SIMP(statut='o',typ='R'),
SY =SIMP(statut='o',typ='R'),
),
- ECRO_LINE_FO =FACT(statut='f',min=0,
+ ECRO_LINE_FO =FACT(statut='f',min=0,max=1,
D_SIGM_EPSI =SIMP(statut='o',typ=(fonction,formule)),
SY =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- BETON_ECRO_LINE =FACT(statut='f',min=0,
+ BETON_ECRO_LINE =FACT(statut='f',min=0,max=1,
D_SIGM_EPSI =SIMP(statut='o',typ='R'),
SYT =SIMP(statut='o',typ='R'),
SYC =SIMP(statut='f',typ='R'),
),
- PRAGER =FACT(statut='f',min=0,
+ PRAGER =FACT(statut='f',min=0,max=1,
C =SIMP(statut='o',typ='R'),
),
- PRAGER_FO =FACT(statut='f',min=0,
+ PRAGER_FO =FACT(statut='f',min=0,max=1,
C =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- ECRO_FLEJOU =FACT(statut='f',min=0,
+ ECRO_FLEJOU =FACT(statut='f',min=0,max=1,
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',min=0,
+ TAHERI =FACT(statut='f',min=0,max=1,
R_0 =SIMP(statut='o',typ='R'),
ALPHA =SIMP(statut='o',typ='R'),
M =SIMP(statut='o',typ='R'),
C_INF =SIMP(statut='o',typ='R'),
S =SIMP(statut='o',typ='R'),
),
- TAHERI_FO =FACT(statut='f',min=0,
+ TAHERI_FO =FACT(statut='f',min=0,max=1,
R_0 =SIMP(statut='o',typ=(fonction,formule)),
ALPHA =SIMP(statut='o',typ=(fonction,formule)),
M =SIMP(statut='o',typ=(fonction,formule)),
S =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- ROUSSELIER =FACT(statut='f',min=0,
+ ROUSSELIER =FACT(statut='f',min=0,max=1,
D =SIMP(statut='o',typ='R'),
SIGM_1 =SIMP(statut='o',typ='R'),
PORO_INIT =SIMP(statut='o',typ='R'),
D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
AN =SIMP(statut='f',typ='R',defaut= 0. ),
),
- ROUSSELIER_FO =FACT(statut='f',min=0,
+ ROUSSELIER_FO =FACT(statut='f',min=0,max=1,
D =SIMP(statut='o',typ=(fonction,formule)),
SIGM_1 =SIMP(statut='o',typ=(fonction,formule)),
PORO_INIT =SIMP(statut='o',typ=(fonction,formule)),
AN =SIMP(statut='f',typ='R',defaut= 0. ),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- ROUSS_VISC =FACT(statut='f',min=0,
+ ROUSS_VISC =FACT(statut='f',min=0,max=1,
SIGM_0 =SIMP(statut='o',typ='R'),
EPSI_0 =SIMP(statut='o',typ='R'),
M =SIMP(statut='o',typ='R'),
),
- CHABOCHE =FACT(statut='f',min=0,
+ CHABOCHE =FACT(statut='f',min=0,max=1,
R_I =SIMP(statut='o',typ='R'),
R_0 =SIMP(statut='o',typ='R'),
B =SIMP(statut='o',typ='R'),
C1 =SIMP(statut='o',typ='R'),
C2 =SIMP(statut='o',typ='R'),
),
- CIN1_CHAB =FACT(statut='f',min=0,
+ CIN1_CHAB =FACT(statut='f',min=0,max=1,
R_0 =SIMP(statut='o',typ='R'),
R_I =SIMP(statut='f',typ='R'),
B =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',min=0,
+ CIN1_CHAB_FO =FACT(statut='f',min=0,max=1,
R_0 =SIMP(statut='o',typ=(fonction,formule)),
R_I =SIMP(statut='o',typ=(fonction,formule)),
B =SIMP(statut='o',typ=(fonction,formule)),
A_I =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
),
- CIN2_CHAB =FACT(statut='f',min=0,
+ CIN2_CHAB =FACT(statut='f',min=0,max=1,
R_0 =SIMP(statut='o',typ='R'),
R_I =SIMP(statut='f',typ='R'),
B =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
G2_0 =SIMP(statut='o',typ='R'),
A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
),
- CIN2_CHAB_FO =FACT(statut='f',min=0,
+ CIN2_CHAB_FO =FACT(statut='f',min=0,max=1,
R_0 =SIMP(statut='o',typ=(fonction,formule)),
R_I =SIMP(statut='o',typ=(fonction,formule)),
B =SIMP(statut='o',typ=(fonction,formule)),
A_I =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- VISCOCHAB =FACT(statut='f',min=0,
+ VISCOCHAB =FACT(statut='f',min=0,max=1,
K_0 =SIMP(statut='o',typ='R'),
A_K =SIMP(statut='o',typ='R'),
A_R =SIMP(statut='o',typ='R'),
G2_0 =SIMP(statut='o',typ='R'),
A_I =SIMP(statut='o',typ='R'),
),
- VISCOCHAB_FO =FACT(statut='f',min=0,
+ VISCOCHAB_FO =FACT(statut='f',min=0,max=1,
K_0 =SIMP(statut='o',typ=(fonction,formule)),
A_K =SIMP(statut='o',typ=(fonction,formule)),
A_R =SIMP(statut='o',typ=(fonction,formule)),
A_I =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- POLY_CFC =FACT(statut='f',min=0,
+ POLY_CFC =FACT(statut='f',min=0,max=1,
TEXTURE =SIMP(statut='o',typ=(tabl_texture) ),
DL =SIMP(statut='f',typ='R'),
DA =SIMP(statut='f',typ='R'),
D1 =SIMP(statut='o',typ='R'),
C2 =SIMP(statut='o',typ='R'),
),
- POLY_CFC_FO =FACT(statut='f',min=0,
+ POLY_CFC_FO =FACT(statut='f',min=0,max=1,
TEXTURE =SIMP(statut='o',typ=(tabl_texture) ),
DL =SIMP(statut='o',typ=(fonction,formule)),
DA =SIMP(statut='o',typ=(fonction,formule)),
C2 =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- LEMAITRE =FACT(statut='f',min=0,
+ LEMAITRE =FACT(statut='f',min=0,max=1,
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 ),
),
- ZIRC_CYRA2 =FACT(statut='f',min=0,
+ ZIRC_CYRA2 =FACT(statut='f',min=0,max=1,
EPSI_FAB =SIMP(statut='o',typ=(fonction,formule)),
TEMP_RECUIT =SIMP(statut='o',typ=(fonction,formule)),
FLUX_PHI =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
),
- ZIRC_EPRI =FACT(statut='f',min=0,
+ ZIRC_EPRI =FACT(statut='f',min=0,max=1,
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',min=0,
+ LEMAITRE_FO =FACT(statut='f',min=0,max=1,
N =SIMP(statut='o',typ=(fonction,formule)),
UN_SUR_K =SIMP(statut='o',typ=(fonction,formule)),
UN_SUR_M =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- GRAN_IRRA =FACT(statut='f',min=0,
+ GRAN_IRRA =FACT(statut='f',min=0,max=1,
A =SIMP(statut='f',typ='R',defaut= 0.E+0),
B =SIMP(statut='f',typ='R',defaut= 0.E+0),
S =SIMP(statut='f',typ='R',defaut= 0.E+0),
),
- FLU_IRRA =FACT(statut='f',min=0,
+ FLU_IRRA =FACT(statut='f',min=0,max=1,
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 ),
),
- OHNO =FACT(statut='f',min=0,
+ OHNO =FACT(statut='f',min=0,max=1,
R_I =SIMP(statut='o',typ='R'),
R_0 =SIMP(statut='o',typ='R'),
B =SIMP(statut='o',typ='R'),
M4 =SIMP(statut='o',typ='R'),
M5 =SIMP(statut='o',typ='R'),
),
- OHNO_FO =FACT(statut='f',min=0,
+ OHNO_FO =FACT(statut='f',min=0,max=1,
R_I =SIMP(statut='o',typ=(fonction,formule)),
R_0 =SIMP(statut='o',typ=(fonction,formule)),
B =SIMP(statut='o',typ=(fonction,formule)),
M5 =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- LMARC =FACT(statut='f',min=0,
+ LMARC =FACT(statut='f',min=0,max=1,
DE_0 =SIMP(statut='o',typ='R'),
R_0 =SIMP(statut='o',typ='R'),
N =SIMP(statut='o',typ='R'),
R33 =SIMP(statut='o',typ='R'),
R66 =SIMP(statut='o',typ='R'),
),
- LMARC_FO =FACT(statut='f',min=0,
+ LMARC_FO =FACT(statut='f',min=0,max=1,
DE_0 =SIMP(statut='o',typ=(fonction,formule)),
R_0 =SIMP(statut='o',typ=(fonction,formule)),
N =SIMP(statut='o',typ=(fonction,formule)),
R66 =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- VMIS_POUTRE =FACT(statut='f',min=0,
+ VMIS_POUTRE =FACT(statut='f',min=0,max=1,
NP =SIMP(statut='o',typ='R'),
MEY =SIMP(statut='o',typ='R'),
MPY =SIMP(statut='o',typ='R'),
CBZ =SIMP(statut='o',typ='R'),
MPX =SIMP(statut='o',typ='R'),
),
- VMIS_POUTRE_FO =FACT(statut='f',min=0,
+ VMIS_POUTRE_FO =FACT(statut='f',min=0,max=1,
NP =SIMP(statut='o',typ=(fonction,formule)),
MEY =SIMP(statut='o',typ=(fonction,formule)),
MPY =SIMP(statut='o',typ=(fonction,formule)),
MPX =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- ARME =FACT(statut='f',min=0,
+ ARME =FACT(statut='f',min=0,max=1,
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',min=0,
+ ASSE_CORN =FACT(statut='f',min=0,max=1,
NU_1 =SIMP(statut='o',typ='R'),
MU_1 =SIMP(statut='o',typ='R'),
DXU_1 =SIMP(statut='o',typ='R'),
KRX =SIMP(statut='o',typ='R'),
KRZ =SIMP(statut='o',typ='R'),
),
- DIS_CONTACT =FACT(statut='f',min=0,
+ DIS_CONTACT =FACT(statut='f',min=0,max=1,
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 ),
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,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'),),
+ regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',),),
RIGI_N_IRRA =SIMP(statut='f',typ=(fonction,formule)),
RIGI_N_FO =SIMP(statut='f',typ=(fonction,formule)),
RELA_MZ =SIMP(statut='f',typ=(fonction,formule)),
- ANGLE_1 =SIMP(statut='f',typ=(fonction,formule)),
- ANGLE_2 =SIMP(statut='f',typ=(fonction,formule)),
- ANGLE_3 =SIMP(statut='f',typ=(fonction,formule)),
- ANGLE_4 =SIMP(statut='f',typ=(fonction,formule)),
- MOMENT_1 =SIMP(statut='f',typ=(fonction,formule)),
- MOMENT_2 =SIMP(statut='f',typ=(fonction,formule)),
- MOMENT_3 =SIMP(statut='f',typ=(fonction,formule)),
- MOMENT_4 =SIMP(statut='f',typ=(fonction,formule)),
C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="DRZ",into=("DRZ",) ),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
VERI_P3 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- NADAI_B =FACT(statut='f',min=0,
+ NADAI_B =FACT(statut='f',min=0,max=1,
F_C =SIMP(statut='o',typ='R'),
F_T =SIMP(statut='o',typ='R'),
CRIT_E_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',min=0,
+ BETON_DOUBLE_DP =FACT(statut='f',min=0,max=1,
F_C =SIMP(statut='o',typ=(fonction,formule)),
F_T =SIMP(statut='o',typ=(fonction,formule)),
COEF_BIAX =SIMP(statut='o',typ=(fonction,formule)),
VERI_P3 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ),
VERI_P4 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ),
),
- LABORD_1D=FACT(statut='f',min=0 ,
+ LABORD_1D=FACT(statut='f',min=0 ,max=1,
Y01 =SIMP(statut='o',typ='R'),
Y02 =SIMP(statut='o',typ='R'),
A1 =SIMP(statut='o',typ='R'),
BETA2 =SIMP(statut='o',typ='R'),
SIGF =SIMP(statut='o',typ='R'),
),
- MAZARS=FACT(statut='f',min=0 ,
+ MAZARS=FACT(statut='f',min=0 ,max=1,
EPSD0 =SIMP(statut='o',typ='R'),
BETA =SIMP(statut='o',typ='R'),
AC =SIMP(statut='o',typ='R'),
AT =SIMP(statut='o',typ='R'),
BT =SIMP(statut='o',typ='R'),
),
- MAZARS_FO=FACT(statut='f',min=0 ,
+ MAZARS_FO=FACT(statut='f',min=0 ,max=1,
EPSD0 =SIMP(statut='o',typ=(fonction,formule)),
BETA =SIMP(statut='o',typ='R'),
AC =SIMP(statut='o',typ=(fonction,formule)),
BT =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- VENDOCHAB =FACT(statut='f',min=0,
+ VENDOCHAB =FACT(statut='f',min=0,max=1,
S_VP =SIMP(statut='o',typ='R'),
SEDVP1 =SIMP(statut='o',typ='R'),
SEDVP2 =SIMP(statut='o',typ='R'),
A_D =SIMP(statut='o',typ='R'),
K_D =SIMP(statut='o',typ='R'),
),
- VENDOCHAB_FO =FACT(statut='f',min=0,
+ VENDOCHAB_FO =FACT(statut='f',min=0,max=1,
S_VP =SIMP(statut='o',typ=(fonction,formule)),
SEDVP1 =SIMP(statut='o',typ=(fonction,formule)),
SEDVP2 =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="X",into=("X",) ),
),
- PINTO_MENEGOTTO =FACT(statut='f',min=0,
+ PINTO_MENEGOTTO =FACT(statut='f',min=0,max=1,
SY =SIMP(statut='o',typ='R'),
EPSI_ULTM =SIMP(statut='o',typ='R'),
SIGM_ULTM =SIMP(statut='o',typ='R'),
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',min=0,
+ BPEL_BETON =FACT(statut='f',min=0,max=1,
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',min=0,
+ BPEL_ACIER =FACT(statut='f',min=0,max=1,
RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
MU0_RELAX =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
SY =SIMP(statut='o',typ='R'),
FROT_COURB =SIMP(statut='o',typ='R'),
FROT_LINE =SIMP(statut='o',typ='R'),
),
- CAM_CLAY =FACT(statut='f',min=0,
+ CAM_CLAY =FACT(statut='f',min=0,max=1,
PORO =SIMP(statut='o',typ='R'),
LAMBDA =SIMP(statut='o',typ='R'),
KAPA =SIMP(statut='o',typ='R'),
PRES_CRIT =SIMP(statut='o',typ='R'),
PA =SIMP(statut='o',typ='R'),
),
- CJS =FACT(statut='f',min=0,
+ CJS =FACT(statut='f',min=0,max=1,
BETA_CJS =SIMP(statut='o',typ='R'),
RM =SIMP(statut='o',typ='R'),
N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
- ECRO_ASYM_LINE =FACT(statut='f',min=0,
+ ECRO_ASYM_LINE =FACT(statut='f',min=0,max=1,
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',min=0,
+ GRANGER_FP =FACT(statut='f',min=0,max=1,
J1 =SIMP(statut='f',typ='R'),
J2 =SIMP(statut='f',typ='R'),
J3 =SIMP(statut='f',typ='R'),
TAUX_8 =SIMP(statut='f',typ='R'),
QSR_K =SIMP(statut='f',typ='R'),
),
- V_GRANGER_FP =FACT(statut='f',min=0,
+ V_GRANGER_FP =FACT(statut='f',min=0,max=1,
QSR_VEIL =SIMP(statut='f',typ='R'),
FONC_V =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
),
- BAZANT_FD =FACT(statut='f',min=0,
+ BAZANT_FD =FACT(statut='f',min=0,max=1,
LAM_VISC =SIMP(statut='o',typ='R'),
),
- BETON_UMLV_FP =FACT(statut='f',min=0 ,
+ BETON_UMLV_FP =FACT(statut='f',min=0 ,max=1,
K_RS =SIMP(statut='o',typ='R'),
ETA_RS =SIMP(statut='o',typ='R'),
K_IS =SIMP(statut='o',typ='R'),
#
# comportement thermique
#
- THER_NL =FACT(statut='f',min=0,
+ THER_NL =FACT(statut='f',min=0,max=1,
regles=(UN_PARMI('BETA','RHO_CP', ),),
LAMBDA =SIMP(statut='o',typ=(fonction,formule)),
BETA =SIMP(statut='f',typ=(fonction,formule)),
RHO_CP =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- THER_HYDR =FACT(statut='f',min=0,
+ THER_HYDR =FACT(statut='f',min=0,max=1,
LAMBDA =SIMP(statut='o',typ=(fonction,formule)),
BETA =SIMP(statut='f',typ=(fonction,formule)),
AFFINITE =SIMP(statut='o',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("HYDR",) ),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ),
),
- THER =FACT(statut='f',min=0,
+ THER =FACT(statut='f',min=0,max=1,
LAMBDA =SIMP(statut='o',typ='R'),
RHO_CP =SIMP(statut='f',typ='R'),
),
- THER_FO =FACT(statut='f',min=0,
+ THER_FO =FACT(statut='f',min=0,max=1,
LAMBDA =SIMP(statut='o',typ=(fonction,formule)),
RHO_CP =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
),
- THER_ORTH =FACT(statut='f',min=0,
+ THER_ORTH =FACT(statut='f',min=0,max=1,
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',min=0,
+ THER_COQUE =FACT(statut='f',min=0,max=1,
COND_LMM =SIMP(statut='o',typ='R'),
COND_TMM =SIMP(statut='o',typ='R'),
COND_LMP =SIMP(statut='o',typ='R'),
CMAS_PP =SIMP(statut='f',typ='R'),
CMAS_SI =SIMP(statut='f',typ='R'),
),
- THER_COQUE_FO =FACT(statut='f',min=0,
+ THER_COQUE_FO =FACT(statut='f',min=0,max=1,
COND_LMM =SIMP(statut='o',typ=(fonction,formule)),
COND_TMM =SIMP(statut='o',typ=(fonction,formule)),
COND_LMP =SIMP(statut='o',typ=(fonction,formule)),
CMAS_PP =SIMP(statut='f',typ=(fonction,formule)),
CMAS_SI =SIMP(statut='f',typ=(fonction,formule)),
),
- SECH_GRANGER =FACT(statut='f',min=0,
+ SECH_GRANGER =FACT(statut='f',min=0,max=1,
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',min=0,
+ SECH_MENSI =FACT(statut='f',min=0,max=1,
A =SIMP(statut='o',typ='R'),
B =SIMP(statut='o',typ='R'),
),
- SECH_BAZANT =FACT(statut='f',min=0,
+ SECH_BAZANT =FACT(statut='f',min=0,max=1,
D1 =SIMP(statut='o',typ='R'),
ALPHA_BAZANT =SIMP(statut='o',typ='R'),
N =SIMP(statut='o',typ='R'),
),
- SECH_NAPPE =FACT(statut='f',min=0,
+ SECH_NAPPE =FACT(statut='f',min=0,max=1,
FONCTION =SIMP(statut='o',typ=(nappe,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TSEC",into=("TSEC",) ),
#
# comportement métallurgique
#
- META_ACIER =FACT(statut='f',min=0,
+ META_ACIER =FACT(statut='f',min=0,max=1,
TRC =SIMP(statut='o',typ=(tabl_trc) ),
AR3 =SIMP(statut='o',typ='R'),
ALPHA =SIMP(statut='o',typ='R'),
D10 =SIMP(statut='f',typ='R'),
WSR_K =SIMP(statut='f',typ='R'),
),
- META_ZIRC =FACT(statut='f',min=0,
+ META_ZIRC =FACT(statut='f',min=0,max=1,
TDEQ =SIMP(statut='o',typ='R'),
N =SIMP(statut='o',typ='R'),
K =SIMP(statut='o',typ='R'),
AR =SIMP(statut='o',typ='R'),
BR =SIMP(statut='o',typ='R'),
),
- DURT_META =FACT(statut='f',min=0,
+ DURT_META =FACT(statut='f',min=0,max=1,
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',min=0,
+ ELAS_META =FACT(statut='f',min=0,max=1,
E =SIMP(statut='o',typ='R'),
NU =SIMP(statut='o',typ='R'),
F_ALPHA =SIMP(statut='o',typ='R'),
S_VP_MELANGE =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)),
),
- ELAS_META_FO =FACT(statut='f',min=0,
+ ELAS_META_FO =FACT(statut='f',min=0,max=1,
regles=(
PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'),
PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)),
),
- META_ECRO_LINE =FACT(statut='f',min=0,
+ META_ECRO_LINE =FACT(statut='f',min=0,max=1,
F1_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction,formule)),
F2_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction,formule)),
F3_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction,formule)),
C_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
),
- META_TRACTION =FACT(statut='f',min=0,
+ META_TRACTION =FACT(statut='f',min=0,max=1,
SIGM_F1 =SIMP(statut='f',typ=(fonction,formule)),
SIGM_F2 =SIMP(statut='f',typ=(fonction,formule)),
SIGM_F3 =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",)),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
),
- META_VISC_FO =FACT(statut='f',min=0,
+ META_VISC_FO =FACT(statut='f',min=0,max=1,
F1_ETA =SIMP(statut='f',typ=(fonction,formule)),
F1_N =SIMP(statut='f',typ=(fonction,formule)),
F1_C =SIMP(statut='f',typ=(fonction,formule)),
C_M =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- META_PT =FACT(statut='f',min=0,
+ META_PT =FACT(statut='f',min=0,max=1,
F1_K =SIMP(statut='f',typ='R'),
F2_K =SIMP(statut='f',typ='R'),
F3_K =SIMP(statut='f',typ='R'),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",) ),
),
- META_RE =FACT(statut='f',min=0,
+ META_RE =FACT(statut='f',min=0,max=1,
C_F1_THETA =SIMP(statut='f',typ='R'),
C_F2_THETA =SIMP(statut='f',typ='R'),
C_F3_THETA =SIMP(statut='f',typ='R'),
#
# comportement fluide
#
- FLUIDE =FACT(statut='f',min=0,
+ FLUIDE =FACT(statut='f',min=0,max=1,
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',min=0,
+ PORO_JOINT =FACT(statut='f',min=0,max=1,
RHO_FLUI =SIMP(statut='o',typ='R'),
ENTRO_FLUI =SIMP(statut='o',typ='R'),
BIOT_M =SIMP(statut='o',typ='R'),
SOURCE_INIT =SIMP(statut='o',typ='R'),
OMEGA_0 =SIMP(statut='o',typ='R'),
),
- THM_LIQU =FACT(statut='f',min=0,
+ THM_LIQU =FACT(statut='f',min=0,max=1,
RHO =SIMP(statut='o',typ='R'),
UN_SUR_K =SIMP(statut='f',typ='R'),
ALPHA =SIMP(statut='f',typ='R'),
COEF_HENRY =SIMP(statut='f',typ='R'),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
),
- THM_GAZ =FACT(statut='f',min=0,
+ THM_GAZ =FACT(statut='f',min=0,max=1,
MASS_MOL =SIMP(statut='f',typ='R'),
CP =SIMP(statut='f',typ='R'),
VISC =SIMP(statut='f',typ=(fonction,formule)),
D_LAMBDA_TEMP =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
),
- THM_VAPE_GAZ =FACT(statut='f',min=0,
+ THM_VAPE_GAZ =FACT(statut='f',min=0,max=1,
MASS_MOL =SIMP(statut='f',typ='R'),
CP =SIMP(statut='f',typ='R'),
VISC =SIMP(statut='f',typ=(fonction,formule)),
D_VISC_TEMP =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
),
- THM_INIT =FACT(statut='f',min=0,
+ THM_INIT =FACT(statut='f',min=0,max=1,
TEMP =SIMP(statut='o',typ='R'),
PRE1 =SIMP(statut='o',typ='R'),
PRE2 =SIMP(statut='o',typ='R'),
DEGR_SATU =SIMP(statut='f',typ='R'),
PRES_ATMO =SIMP(statut='f',typ='R'),
),
- THM_DIFFU =FACT(statut='f',min=0,
+ THM_DIFFU =FACT(statut='f',min=0,max=1,
R_GAZ =SIMP(statut='o',typ='R'),
RHO =SIMP(statut='f',typ='R'),
CP =SIMP(statut='f',typ='R'),
PESA_Y =SIMP(statut='f',typ='R'),
PESA_Z =SIMP(statut='f',typ='R'),
PERM_IN =SIMP(statut='f',typ=(fonction,formule)),
- PERM_END =SIMP(statut='f',typ=(fonction,formule)),
- regles=(EXCLUS('PERM_IN','PERM_END'),),
PERM_LIQU =SIMP(statut='f',typ=(fonction,formule)),
D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction,formule)),
PERM_GAZ =SIMP(statut='f',typ=(fonction,formule)),
VERI_P3 =SIMP(statut='c',typ='TXM',defaut="PORO",into=("PORO",) ),
VERI_P4 =SIMP(statut='c',typ='TXM',defaut="PGAZ",into=("PGAZ",) ),
VERI_P5 =SIMP(statut='c',typ='TXM',defaut="PCAP",into=("PCAP",) ),
- VERI_P6 =SIMP(statut='c',typ='TXM',defaut="ENDO",into=("ENDO",) ),
),
#
# courbes et coefficients associés à la fatigue et au dommage
#
- FATIGUE =FACT(statut='f',min=0,
+ FATIGUE =FACT(statut='f',min=0,max=1,
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'),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="SIGM",into=("SIGM",) ),
VERI_P2 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",) ),
),
- DOMMA_LEMAITRE =FACT(statut='f',min=0,
+ DOMMA_LEMAITRE =FACT(statut='f',min=0,max=1,
S =SIMP(statut='o',typ=(fonction,formule)),
EPSP_SEUIL =SIMP(statut='o',typ='R'),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- CISA_PLAN_CRIT =FACT(statut='f',min=0,
+ CISA_PLAN_CRIT =FACT(statut='f',min=0,max=1,
CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN") ),
b_critere_matake =BLOC(condition="CRITERE=='MATAKE'",
#
# autres comportements ...
#
- WEIBULL =FACT(statut='f',min=0,
+ WEIBULL =FACT(statut='f',min=0,max=1,
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',min=0,
+ WEIBULL_FO =FACT(statut='f',min=0,max=1,
M =SIMP(statut='o',typ='R'),
VOLU_REFE =SIMP(statut='o',typ='R'),
SIGM_CNV =SIMP(statut='o',typ='R'),
SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- NON_LOCAL =FACT(statut='f',min=0,
+ NON_LOCAL =FACT(statut='f',min=0,max=1,
LONG_CARA =SIMP(statut='o',typ='R'),
COEF_RIGI_MINI =SIMP(statut='f',typ='R'),
),
- RUPT_FRAG =FACT(statut='f',min=0,
+ RUPT_FRAG =FACT(statut='f',min=0,max=1,
GC =SIMP(statut='o',typ='R'),
SIGM_C =SIMP(statut='f',typ='R'),
SAUT_C =SIMP(statut='f',typ='R'),
),
- RCCM =FACT(statut='f',min=0,
+ RCCM =FACT(statut='f',min=0,max=1,
SY_02 =SIMP(statut='f',typ='R'),
SM =SIMP(statut='f',typ='R'),
SU =SIMP(statut='f',typ='R'),
N_KE =SIMP(statut='f',typ='R'),
M_KE =SIMP(statut='f',typ='R'),
),
- RCCM_FO =FACT(statut='f',min=0,
+ RCCM_FO =FACT(statut='f',min=0,max=1,
SY_02 =SIMP(statut='f',typ=(fonction,formule)),
SM =SIMP(statut='f',typ=(fonction,formule)),
SU =SIMP(statut='f',typ=(fonction,formule)),
M_KE =SIMP(statut='f',typ=(fonction,formule)),
VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
),
- LAIGLE =FACT(statut='f',min=0,
+ LAIGLE =FACT(statut='f',min=0,max=1,
GAMMA_ULT =SIMP(statut='o',typ='R'),
GAMMA_E =SIMP(statut='o',typ='R'),
M_ULT =SIMP(statut='o',typ='R'),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
docu="U4.65.02-e",reentrant='n',
UIinfo={"groupes":("Matrices/vecteurs",)},
- SOUS_STRUC =FACT(statut='o',max='**',
+ SOUS_STRUC =FACT(statut='o',min=1,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='**',
+ LIAISON =FACT(statut='o',min=1,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' ),
),
- VERIF =FACT(statut='f',max='**',
+ VERIF =FACT(statut='f',min=1,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") ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
VALE =SIMP(statut='f',typ='R',max='**'),
VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ VALE =SIMP(statut='o',typ='R',max=1,
fr="Valeur du parametre",
ang="Value of the parameter"),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ SPEC_LONG_COR_1 =FACT(statut='f',max=1,
LONG_COR =SIMP(statut='o',typ='R' ),
PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction,formule) ),
VISC_CINE =SIMP(statut='o',typ='R' ),
),
- SPEC_LONG_COR_2 =FACT(statut='f',
+ SPEC_LONG_COR_2 =FACT(statut='f',max=1,
regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
LONG_COR =SIMP(statut='o',typ='R' ),
PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction,formule) ),
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',
+ SPEC_LONG_COR_3 =FACT(statut='f',max=1,
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,formule) ),
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',
+ SPEC_LONG_COR_4 =FACT(statut='f',max=1,
regles=(ENSEMBLE('BETA','GAMMA'),),
LONG_COR =SIMP(statut='o',typ='R' ),
PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction,formule) ),
BETA =SIMP(statut='f',typ='R',defaut= 2. ),
GAMMA =SIMP(statut='f',typ='R',defaut= 4. ),
),
- SPEC_CORR_CONV_1=FACT(statut='f',
+ SPEC_CORR_CONV_1=FACT(statut='f',max=1,
LONG_COR_1 =SIMP(statut='o',typ='R' ),
LONG_COR_2 =SIMP(statut='f',typ='R' ),
VITE_FLUI =SIMP(statut='o',typ='R' ),
METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE",
into=("AU_YANG","GENERALE","CORCOS") ),
),
- SPEC_CORR_CONV_2=FACT(statut='f',
+ SPEC_CORR_CONV_2=FACT(statut='f',max=1,
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
VITE_FLUI =SIMP(statut='o',typ='R' ),
FREQ_COUP =SIMP(statut='f',typ='R' ),
COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
),
- SPEC_FONC_FORME =FACT(statut='f',
+ SPEC_FONC_FORME =FACT(statut='f',max=1,
regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
ENSEMBLE('INTE_SPEC','FONCTION'),),
INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
MODELE =SIMP(statut='o',typ=modele ),
),
- SPEC_EXCI_POINT =FACT(statut='f',
+ SPEC_EXCI_POINT =FACT(statut='f',max=1,
regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
GRAPPE_2 =SIMP(statut='f',typ='TXM',
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODE_CYCL =SIMP(statut='f',typ=mode_cycl ),
MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
SQUELETTE =SIMP(statut='f',typ=squelette ),
- RECO_GLOBAL =FACT(statut='f',max='**',
+ RECO_GLOBAL =FACT(statut='f',min=1,max='**',
regles=(EXCLUS('TOUT','GROUP_NO_1'),
PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
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_GROUP_MA =FACT(statut='f',min=1,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 ),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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='**',
+ SOUS_STRUC =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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='**'),
+ SECTEUR =FACT(statut='f',min=1,max='**',
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 03/12/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
TEMP_EXT_POSE =SIMP(statut='f',typ='R',defaut= 15.0E+0),
TEMP_EXT =SIMP(statut='f',typ='R',defaut= 15.0E+0),
TEMP_RESI_REF =SIMP(statut='f',typ='R',defaut= 20.0E+0),
- PARA_COND_1D =FACT(statut='f',max='**',
+ PARA_COND_1D =FACT(statut='f',min=1,max='**',
INTE_CC =SIMP(statut='f',typ='R',defaut= 0.0E+0),
INTE_RENC =SIMP(statut='f',typ='R',defaut= 0.0E+0),
A =SIMP(statut='f',typ='R',defaut= 1.0E+0),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-f",reentrant='n',
UIinfo={"groupes":("Modélisation",)},
fr="Définition d un diagramme de transformations en refroidissement continu d un acier",
- HIST_EXP =FACT(statut='o',max='**',
+ HIST_EXP =FACT(statut='o',min=1,max='**',
VALE =SIMP(statut='o',typ='R',max='**'),
),
- TEMP_MS =FACT(statut='o',max='**',
+ TEMP_MS =FACT(statut='o',min=1,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='**',
+ GRAIN_AUST =FACT(statut='f',min=1,max='**',
DREF =SIMP(statut='f',typ='R'),
A =SIMP(statut='f',typ='R'),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.31.04-f",reentrant='f',
UIinfo={"groupes":("Fonction",)},
regles=(UN_PARMI('IS','R8','TX','C8','LS'),),
- IS =SIMP(statut='f',typ='I' ,max='**'),
- R8 =SIMP(statut='f',typ='R' ,max='**'),
+ IS =SIMP(statut='f',typ='I',max='**'),
+ R8 =SIMP(statut='f',typ='R',max='**'),
TX =SIMP(statut='f',typ='TXM',max='**'),
- C8 =SIMP(statut='f',typ='C' ,max='**'),
- LS =SIMP(statut='f',typ='L' ,max='**'),
+ C8 =SIMP(statut='f',typ='C',max='**'),
+ LS =SIMP(statut='f',typ='L',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
-# RESPONSABLE D6BHHJP J.P.LEFEBVRE
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-e",
UIinfo={"groupes":("Gestion du travail",)},
fr="Modification / ajout d une unité logique en sortie en complément de celles définies dans DEBUT",
-
- IMPRESSION = FACT(statut='o',max='**',
- NOM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
- UNITE =SIMP(statut='o',typ='I' ,val_min=1),
- ),
- )
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+ IMPRESSION =FACT(statut='o',min=1,max='**',
+ NOM =SIMP(statut='o',typ='TXM',max='**'),
+ UNITE =SIMP(statut='o',typ='I' ),
+ ),
+) ;
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Matrices/vecteurs",)},
fr="Récupération du champ de déplacement interne à une sous-structure",
DEPL_GLOBAL =SIMP(statut='o',typ=cham_no_depl_r),
- MAILLE =SIMP(statut='o',typ=ma,),
+ MAILLE =SIMP(statut='o',typ=ma,max=1),
NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Gestion du travail",)},
fr="Destruction d un concept utilisateur dans la base GLOBALE",
op_init=ops.detruire,
- regles=(UN_PARMI('CONCEPT','OBJET',),),
- CONCEPT =FACT(statut='f',
- NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
- ),
- OBJET =FACT(statut='f',
- CHAINE =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
- POSITION =SIMP(statut='o',typ='I' ,validators=NoRepeat(),max='**'),
- ),
- INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ),
+ CONCEPT =FACT(statut='o',min=01,
+ NOM =SIMP(statut='o',typ=assd,max='**'),
+ ),
);
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 13/01/2003 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=modele),
RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ),
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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
LIST_ORDRE =SIMP(statut='f',typ=listis),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- GROUP_MA_1 =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
POIN_FIXE =SIMP(statut='f',typ='R',min=3,max=3),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
,fr="Calcule la réponse spectrale d une structure linéaire sous une excitation connue par sa DSP",
docu="U4.53.22-e",reentrant='n',
UIinfo={"groupes":("Résolution",)},
- BASE_MODALE =FACT(statut='o',
+ BASE_MODALE =FACT(statut='o',min=1,max=1,
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='**'),
+ BANDE =SIMP(statut='f',typ='R',max=2),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
b_bande =BLOC(condition = "BANDE != None",
AMOR_UNIF =SIMP(statut='o',typ='R' ),
),
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',
+ EXCIT =FACT(statut='o',min=1,max=1,
INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ),
NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ),
),
),
- REPONSE =FACT(statut='f',
+ REPONSE =FACT(statut='f',min=1,max=1,
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") ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
LIST_AMOR =SIMP(statut='f',typ=listr8 ),
MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8 ),
TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)),
- NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
- EXCIT =FACT(statut='o',max='**',
+ NOM_CHAM =SIMP(statut='f',typ='TXM',max=3,into=("DEPL","VITE","ACCE") ),
+ EXCIT =FACT(statut='o',min=1,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_depl_r,cham_no_pres_c,vect_asse_gene ) ),
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='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ NEWMARK =FACT(statut='f',min=1,max=1,
ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ),
DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ),
),
- WILSON =FACT(statut='f',
+ WILSON =FACT(statut='f',min=1,max=1,
THETA =SIMP(statut='f',typ='R',defaut= 1.4 ),
),
- DIFF_CENTRE =FACT(statut='f',
+ DIFF_CENTRE =FACT(statut='f',min=1,max=1,
),
- ADAPT =FACT(statut='f',
+ ADAPT =FACT(statut='f',min=1,max=1,
),
- ETAT_INIT =FACT(statut='f',
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT',),
PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT'),),
DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ),
DEPL_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
VITE_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
),
- EXCIT =FACT(statut='f',max='**',
+ EXCIT =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('CHARGE','VECT_ASSE'),
EXCLUS('CHARGE','COEF_MULT'),
EXCLUS('FONC_MULT','COEF_MULT'),
DEPL =SIMP(statut='f',typ=(fonction,formule) ),
MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
),
- AMOR_MODAL =FACT(statut='f',
+ AMOR_MODAL =FACT(statut='f',min=1,max=1,
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") ),
),
# ce n est pas le mot clesolveur standard
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
),
- INCREMENT =FACT(statut='o',max='**',
+ INCREMENT =FACT(statut='o',min=1,max='**',
regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
LIST_INST =SIMP(statut='f',typ=listr8 ),
FONC_INST =SIMP(statut='f',typ=(fonction,formule) ),
NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ),
),
- ARCHIVAGE =FACT(statut='f',
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),),
LIST_ARCH =SIMP(statut='f',typ=listis ),
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\350tres de sensibilit\351.",
- ang="List of sensitivity parameters",
+ CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","VITE","ACCE") ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- EXCIT =FACT(statut='o',max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
PRESENT_PRESENT('ACCE','VITE','DEPL'),
PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
VITE =SIMP(statut='f',typ=(fonction,formule)),
MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
),
- AMOR_MODAL =FACT(statut='f',
+ AMOR_MODAL =FACT(statut='f',min=1,max=1,
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 ),
IRRA =SIMP(statut='f',typ=evol_varc),
),
COMP_INCR =C_COMP_INCR(),
- COMP_ELAS =FACT(statut='f',max='**',
+ COMP_ELAS =FACT(statut='f',min=1,max='**',
RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS",
into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
"ELAS_POUTRE_GR","CABLE")),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
#-------------------------------------------------------------------
- ETAT_INIT =FACT(statut='f',
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',),
EXCLUS('EVOL_NOLI','DEPL',),
EXCLUS('EVOL_NOLI','VITE'),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),
#-------------------------------------------------------------------
- INCREMENT =FACT(statut='o',
+ INCREMENT =FACT(statut='o',min=1,max=1,
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8),
VALE =SIMP(statut='f',typ='R'),
),
#-------------------------------------------------------------------
- NEWMARK =FACT(statut='f',
+ NEWMARK =FACT(statut='f',min=1,max=1,
ALPHA =SIMP(statut='f',typ='R',defaut= 0.25),
DELTA =SIMP(statut='f',typ='R',defaut= 0.5),
),
- HHT =FACT(statut='f',
+ HHT =FACT(statut='f',min=1,max=1,
ALPHA =SIMP(statut='f',typ='R'
,defaut= -0.29999999999999999 ),
),
- NEWTON =FACT(statut='d',
+ NEWTON =FACT(statut='d',min=1,max=1,
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),
PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0),
),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
#-------------------------------------------------------------------
- RECH_LINEAIRE =FACT(statut='f',
+ RECH_LINEAIRE =FACT(statut='f',min=1,max=1,
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),
RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1),
RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2),
),
- PILOTAGE =FACT(statut='f',
+ PILOTAGE =FACT(statut='f',min=1,max=1,
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),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
),
- CONVERGENCE =FACT(statut='d',
+ CONVERGENCE =FACT(statut='d',min=1,max=1,
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'),
into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
),
#-------------------------------------------------------------------
- OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="ELNO",
+ OPTION =SIMP(statut='f',typ='TXM',max='**',defaut="ELNO",
into=("SIEF_ELNO_ELGA","VARI_ELNO_ELGA","EFGE_ELNO_CART","ELNO","SANS") ),
- ARCHIVAGE =FACT(statut='f',
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
LIST_INST =SIMP(statut='f',typ=(listr8) ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ INST =SIMP(statut='f',typ='R',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='**',
+ CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',
into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
),
- OBSERVATION =FACT(statut='f',max='**',
+ OBSERVATION =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
PRESENT_PRESENT('MAILLE','POINT'),),
- NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ),
NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ),
LIST_ARCH =SIMP(statut='f',typ=listis),
LIST_INST =SIMP(statut='f',typ=listr8),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ INST =SIMP(statut='f',typ='R',max='**' ),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
PAS_OBSE =SIMP(statut='f',typ='I'),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- POINT =SIMP(statut='f',typ='I' ,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ POINT =SIMP(statut='f',typ='I',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"),
-#-------------------------------------------------------------------
- SOLV_NON_LOCAL =FACT(statut='f',
+ SOLV_NON_LOCAL =FACT(statut='f',min=1,max=1,
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") ),
),
EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
- LAGR_NON_LOCAL =FACT(statut='f',
+ LAGR_NON_LOCAL =FACT(statut='f',max=1,
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'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.53.23-d",reentrant='n',
UIinfo={"groupes":("Résolution",)},
BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ),
- EXCIT =FACT(statut='o',
+ EXCIT =FACT(statut='o',max=1,
INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ),
),
OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-#& RESPONSABLE
-DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 69,sd_prod=evol_noli,reentrant='f',
- fr="Analyse mecanique dynamique explicite",docu="U4.53.03",
- regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),),
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- EXCIT =FACT(statut='o',max='**',
- regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
- PRESENT_PRESENT('ACCE','VITE','DEPL'),
- PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
- into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
- CHARGE =SIMP(statut='o',typ=char_meca),
- FONC_MULT =SIMP(statut='f',typ=(fonction,formule)),
- DEPL =SIMP(statut='f',typ=(fonction,formule)),
- ACCE =SIMP(statut='f',typ=(fonction,formule)),
- VITE =SIMP(statut='f',typ=(fonction,formule)),
- MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- DIRECTION =SIMP(statut='f',typ='R',max=3),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- ),
- AMOR_MODAL =FACT(statut='f',
- MODE_MECA =SIMP(statut='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="OUI",into=("OUI","NON") ),
- ),
- PROJ_MODAL =FACT(statut='f',
- MODE_MECA =SIMP(statut='f',typ=mode_meca),
- NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ),
- ),
- 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 =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_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='**'),
- ),
-#-------------------------------------------------------------------
- ETAT_INIT =FACT(statut='f',
- regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',),
- EXCLUS('EVOL_NOLI','DEPL',),
- EXCLUS('EVOL_NOLI','VITE'),
- 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_depl_r),
- VITE =SIMP(statut='f',typ=cham_no_depl_r),
- SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)),
- VARI =SIMP(statut='f',typ=cham_elem_vari_r),
- VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r),
- EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
- NUME_ORDRE =SIMP(statut='f',typ='I'),
- INST =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- 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),
- 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 ),
- SUBD_PAS =SIMP(statut='f',typ='I',defaut=1),
- SUBD_PAS_MINI =SIMP(statut='f',typ='R'),
- COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
- NOM_CHAM =SIMP(statut='f',typ='TXM',),
- NOM_CMP =SIMP(statut='f',typ='TXM',),
- VALE =SIMP(statut='f',typ='R'),
- ),
-#-------------------------------------------------------------------
- NEWMARK =FACT(statut='d',
- ALPHA =SIMP(statut='f',typ='R',defaut= 0.25),
- DELTA =SIMP(statut='f',typ='R',defaut= 0.5),
- ),
- NEWTON =FACT(statut='c',
- REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ),
- PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
- MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
- REAC_ITER =SIMP(statut='f',typ='I',defaut= 0),
- PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0),
- ),
- SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
- b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
- RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
- ),
- b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
- fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
- ),
- b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
- NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-#-------------------------------------------------------------------
- RECH_LINEAIRE =FACT(statut='c',
- RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
- ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3),
- ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20),
- PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0),
- RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2),
- RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1),
- RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2),
- ),
- PILOTAGE =FACT(statut='c',
- regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
- COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- ETA_PILO_MAX =SIMP(statut='f',typ='R'),
- ETA_PILO_MIN =SIMP(statut='f',typ='R'),
- ETA_PILO_R_MAX =SIMP(statut='f',typ='R'),
- ETA_PILO_R_MIN =SIMP(statut='f',typ='R'),
- PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
- SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
- ),
- CONVERGENCE =FACT(statut='d',
- regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
- SIGM_REFE =SIMP(statut='f',typ='R'),
- EPSI_REFE =SIMP(statut='f',typ='R'),
- FLUX_THER_REFE =SIMP(statut='f',typ='R'),
- FLUX_HYD1_REFE =SIMP(statut='f',typ='R'),
- FLUX_HYD2_REFE =SIMP(statut='f',typ='R'),
- RESI_REFE_RELA =SIMP(statut='f',typ='R'),
- RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
- RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
- ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
- ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25),
- ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"),
- RESI_INTE_RELA =SIMP(statut='f',typ='R'
- ,defaut= 1.0E-6),
- ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
- ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ),
- TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)),
- RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
- into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
- ),
-#-------------------------------------------------------------------
- OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="ELNO",
- into=("SIEF_ELNO_ELGA","VARI_ELNO_ELGA","EFGE_ELNO_CART","ELNO","SANS") ),
- ARCHIVAGE =FACT(statut='f',
- regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
- EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
- LIST_INST =SIMP(statut='f',typ=(listr8) ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
- PAS_ARCH =SIMP(statut='f',typ='I' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- NUME_INIT =SIMP(statut='f',typ='I'),
- DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)),
- CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
- into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
- ),
- OBSERVATION =FACT(statut='f',max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
- PRESENT_PRESENT('MAILLE','POINT'),),
- NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-
-into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ),
- NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ),
- LIST_ARCH =SIMP(statut='f',typ=listis),
- LIST_INST =SIMP(statut='f',typ=listr8),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PAS_OBSE =SIMP(statut='f',typ='I'),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- POINT =SIMP(statut='f',typ='I' ,max='**'),
- ),
-#-------------------------------------------------------------------
- SOLV_NON_LOCAL =FACT(statut='f',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
- b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
- RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
- ),
- b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
- NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- 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),
- ),
-#-------------------------------------------------------------------
- PARM_THETA =SIMP(statut='f',typ='R'
- ,defaut= 1. ),
-#-------------------------------------------------------------------
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
RESU_GENE =SIMP(statut='f',typ=tran_gene ),
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='**',
+ INCREMENT =FACT(statut='o',min=1,max='**',
INST_INIT =SIMP(statut='f',typ='R' ),
INST_FIN =SIMP(statut='o',typ='R' ),
PAS =SIMP(statut='f',typ='R' ),
NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
),
- ARCHIVAGE =FACT(statut='f',
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
LIST_ARCH =SIMP(statut='f',typ=listis ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ),
- EXCIT =FACT(statut='f',max='**',
+ EXCIT =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
PRESENT_PRESENT('ACCE','VITE','DEPL'),
PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
),
CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
D_FONC_DT =SIMP(statut='f',typ=(fonction,formule) ),
D_FONC_DT2 =SIMP(statut='f',typ=(fonction,formule) ),
),
- CHOC =FACT(statut='f',max='**',
+ CHOC =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ),
PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
),
- VERI_CHOC =FACT(statut='f',max='**',
+ VERI_CHOC =FACT(statut='f',min=1,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='**',
+ FLAMBAGE =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
FNOR_POST_FL =SIMP(statut='f',typ='R' ),
RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
),
- ANTI_SISM =FACT(statut='f',max='**',
+ ANTI_SISM =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
UN_PARMI('NOEUD_2','GROUP_NO_2'),
PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
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='**',
+ RELA_EFFO_DEPL =FACT(statut='f',min=1,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,formule) ),
),
- RELA_TRANSIS =FACT(statut='f',max='**',
+ RELA_TRANSIS =FACT(statut='f',min=1,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,formule) ),
),
- RELA_EFFO_VITE =FACT(statut='f',max='**',
+ RELA_EFFO_VITE =FACT(statut='f',min=1,max='**',
NOEUD =SIMP(statut='o',typ=no),
SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
NOM_CMP =SIMP(statut='f',typ='TXM' ),
TS_REG_ETAB =SIMP(statut='f',typ='R' ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- IMPRESSION =FACT(statut='f',max='**',
+ IMPRESSION =FACT(statut='f',min=1,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") ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(UN_PARMI('TOUT','CO'),),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- CO =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'),
+ CO =SIMP(statut='f',typ=assd,max='**'),
TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ),
FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-5"),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",docu="U7.00.01-b",
UIinfo={"groupes":("Impression",)},
LOGICIEL =SIMP(statut='f',typ='TXM' ),
- ARGUMENT =FACT(statut='f',max='**',
+ ARGUMENT =FACT(statut='f',min=1,max='**',
NOM_PARA =SIMP(statut='f',typ='TXM' ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
docu="U4.52.12-d",reentrant='n',
UIinfo={"groupes":("Résolution",)},
- FILTRE_MODE =FACT(statut='o',max='**',
+ FILTRE_MODE =FACT(statut='o',min=1,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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
+ NUME_MODE_EXCLU =SIMP(statut='f',typ='I',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",
),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
- IMPRESSION =FACT(statut='f',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
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/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
def extr_resu_prod(RESULTAT,**args):
if AsType(RESULTAT) == evol_elas : return evol_elas
EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-c",reentrant='f',
UIinfo={"groupes":("Résultats et champs",)},
- 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,
+ 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 ) ),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters"),
- ARCHIVAGE =FACT(statut='f',
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
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()),
+ CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**'),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
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),
PAS_ARCH =SIMP(statut='f',typ='I'),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8),
- NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
- NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'),
NOM_CAS =SIMP(statut='f',typ='TXM'),
),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
+ TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
SUR_ECHAN =SIMP(statut='f',typ='R',defaut= 1. ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
FERMER=PROC(nom="FERMER",op= 10,fr=" ",
docu="U4.12.02-b",
UIinfo={"groupes":("Gestion du travail",)},
- UNITE =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**' ),
+ UNITE =SIMP(statut='o',typ='I',max='**' ),
) ;
-
-#& MODIF COMMANDE DATE 06/09/2003 AUTEUR D6BHHJP J.P.LEFEBVRE
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
docu="U4.11.02-g",
UIinfo={"groupes":("Gestion du travail",)},
- HDF =FACT(statut='f',min=1,max=1,
- FICHIER =SIMP(fr="nom du fichier hdf associe",statut='o',typ='TXM'),
- ),
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",) ),
FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Fonction",)},
TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
##### fonctions entieres interdites suite au probleme AL2003-072
##### regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
-##### ENTIER = SIMP(typ = 'shell',),
+##### ENTIER = SIMP(typ = 'shell',max=1),
- REEL = SIMP(typ = 'shell',),
- COMPLEXE = SIMP(typ = 'shell',),
+ REEL = SIMP(typ = 'shell',max=1),
+ COMPLEXE = SIMP(typ = 'shell',max=1),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NB_POIN =SIMP(statut='f',typ='I' ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
INIT = SIMP(statut='f', typ='TXM', into=("OUI","NON"),defaut="NON"),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
INIT = SIMP(statut='f', typ='TXM', into=("OUI","NON"),defaut="NON"),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
FICHIER =SIMP(statut='f',typ='TXM' ),
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='**', ),
+ CHARGE =SIMP(statut='o',typ=char_meca,max='**', ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UNITE_CLASSI =SIMP(statut='o',typ='I' ),
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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis ),
- NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8 ),
b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None",
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
into=("RELATIF","ABSOLU") ),
),
- IMPRESSION =FACT(statut='f',max='**',
+ IMPRESSION =FACT(statut='f',min=1,max='**',
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
),
AMOR =SIMP(statut='o',typ='R',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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") ),
- CO =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'),
+ CO =SIMP(statut='f',typ=assd,max='**'),
CHAINE =SIMP(statut='f',typ='TXM'),
POSITION =SIMP(statut='f',typ='I',defaut=1),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
FENETRE =SIMP(statut='f',typ='TXM',defaut="RECTANGLE",into=("CARREE","RECTANGLE"),
fr="Forme de la fenetre contenant le graphique" ),
),
- COURBE =FACT(statut='o',max='**',fr="Définition de la courbe à tracer",
+ COURBE =FACT(statut='o',min=1,max='**',fr="Définition de la courbe à tracer",
regles=(UN_PARMI('FONCTION','LIST_RESU','TABLE','FONC_X','RESU_GENE'),),
FONCTION =SIMP(statut='f',typ=(fonction, formule, fonction_c),
fr="Fonction réelle ou complexe", ),
),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
#
# 1. Le niveau d'information
#
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+ INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
#
-# 2. Langue des messages issus de HOMARD
+# 2. LE REPERTOIRE OU AURA LIEU LE CALCUL HOMARD
+#
+ REP =SIMP(statut='f',typ='TXM'),
+#
+# 3. Langue des messages issus de HOMARD
#
- LANGUE =SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
+ 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." ),
#
-# 3. Le nom local du fichier de configuration HOMARD
-#
- FICHIER_CONF =SIMP(statut='o',typ='TXM'),
-#
-# 4. Le nom local du fichier de données HOMARD
-#
- FICHIER_DONN =SIMP(statut='f',typ='TXM'),
+# 4. L'UNITE LOGIQUE D'ECRITURE DU FICHIER DE CONFIGURATION HOMARD
#
-# 5. Gestion des éléments autres que des simplexes
-# 0 : autres elements refuses (defaut)
-# 1 : raffinement sur les simplexes, mais autres acceptes
-# 2 : tous
+ UNITE =SIMP(statut='f',typ='I',defaut= 71 ),
#
- NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=0,into=(0,1,2),
- fr="Acceptation d'éléments quad, hexa et penta",
- ang="quad, hexa and penta elements allowed" ),
+# 5. LE TYPE DE TRAITEMENT :
#
-# 6. Le type de traitement :
+ TRAITEMENT =FACT(statut='o',min=1,max=1,
#
- TRAITEMENT =FACT(statut='o',
-#
-# 6.1. TROIS CHOIX EXCLUSIFS :
+# 5.1. QUATRE CHOIX EXCLUSIFS :
#
+# 5.1.1.
# A. ADAPTATION PAR UN INDICATEUR D'ERREUR, AVEC TROIS VARIANTES :
# . RAFFINEMENT ET DERAFFINEMENT
# . RAFFINEMENT SEUL
# . DERAFFINEMENT SEUL
# . RIEN : LE MAILLAGE EST LE MEME A LA SORTIE ET A L'ENTREE
# C. INFORMATION SUR UN MAILLAGE
+# D. MISE A JOUR DE SOLUTIONS
#
- regles=( UN_PARMI('ADAPTATION','UNIFORME','INFORMATION'),),
+ regles=( UN_PARMI('ADAPTATION','UNIFORME','INFORMATION','MAJSOLUTION'),),
ADAPTATION =SIMP(statut='f',typ='TXM',
fr="Adaptation libre",
ang="Free adaptation",
ang="Uniforme adaptation",
into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ),
INFORMATION =SIMP(statut='f',typ='TXM',
- fr="Information sur un maillage",
- ang="Information on a mesh",
+ fr="Adaptation libre",
+ ang="Free adaptation",
+ into=("OUI",) ),
+ MAJSOLUTION =SIMP(statut='f',typ='TXM',
+ fr="Mise à jour de solutions",
+ ang="Solution updating",
into=("OUI",) ),
#
-# 6.2. LES CONTRAINTES :
+# 5.1.2. LES CONTRAINTES :
#
-# 6.2.1. POUR DE L'ADAPTATION LIBRE, IL FAUT :
+# 5.1.2.1. POUR DE L'ADAPTATION LIBRE, IL FAUT :
# A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
# B. LE NOM MED DU MAILLAGE D'ENTREE
# C. LE NOM MED DE L'INDICATEUR D'ERREUR
# F. LE NOM MED DU MAILLAGE DE SORTIE
# REMARQUE : IL FAUT DES CRITERES, MAIS ON NE SAIT PAS LESQUELS
#
-# 6.2.2. POUR DE L'ADAPTATION UNIFORME
+# 5.1.2.2. POUR DE L'ADAPTATION UNIFORME
# IL FAUT :
# A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
# B. LE NOM MED DU MAILLAGE DE SORTIE
# REMARQUE : A L'ITERATION 0, OU AUX ITERATIONS SUIVANTES SI MAJ DE SOLUTION,
# IL FAUT LE NOM MED DU MAILLAGE D'ENTREE
#
-# 6.2.3. POUR DE L'INFORMATION :
+# 5.1.2.3. POUR DE LA MISE A JOUR DE SOLUTION :
+# IL FAUT :
+# A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
+# B. LE NOM MED DU MAILLAGE D'ENTREE
+# IL NE FAUT PAS :
+# A. LE NOM MED DE L'INDICATEUR D'ERREUR
+# B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR
+# C. LES CRITERES
+#
+#
+# 5.1.2.4. POUR DE L'INFORMATION :
# IL FAUT :
# A. LE NOM MED DU MAILLAGE D'ENTREE
# IL NE FAUT PAS :
# D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
# E. LA MISE A JOUR DE SOLUTION
#
- b_maillage_initial =BLOC(condition = "( INFORMATION != None ) or ( ADAPTATION != None ) ",
+ b_maillage_initial =BLOC(condition = "( INFORMATION != None ) or ( ADAPTATION != None ) or \
+ ( MAJSOLUTION != None ) ",
fr="Nom MED du maillage en entrée",
ang="MED name of the in-mesh",
NOM_MED_MAILLAGE_N =SIMP(statut='o',typ='TXM',),
NOM_MED_MAILLAGE_N =SIMP(statut='f',typ='TXM',),
) ,
#
- b_iteration_maj_champ =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) ",
+ b_iteration_maj_champ =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) or \
+ ( MAJSOLUTION != None ) ",
fr="Nom MED du maillage en sortie, numero d'iteration et mise à jour de champs",
ang="MED name of the out-mesh, iteration rank and field updating",
NITER =SIMP(statut='o',typ='I',
b_indicateur_d_erreur =BLOC(condition = "ADAPTATION != None",
fr="Indicateur d'erreur",
ang="Error indicator",
- regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'),
- EXCLUS('NUME_ORDRE','INST'),
- EXCLUS('NUME_ORDRE','RESULTAT'),
- PRESENT_PRESENT('RESULTAT','NOM_CHAM'),),
- NOM_MED =SIMP(statut='o',typ='TXM',
+ regles=(AU_MOINS_UN('NUMORD_INDICA','NOM_RESU_INDICA'),
+ EXCLUS('NUMORD_INDICA','NOM_RESU_INDICA'),
+ PRESENT_PRESENT('NUMORD_INDICA','NUMPT_INDICA'),
+ PRESENT_PRESENT('NOM_RESU_INDICA','NOM_CHAM_INDICA'),),
+ NOM_MED_INDICA =SIMP(statut='o',typ='TXM',
fr="Nom MED de l'indicateur d'erreur.",
ang="MED name of error indicator.",),
- COMPOSANTE =SIMP(statut='o',typ='TXM',
+ NOM_CMP_INDICA =SIMP(statut='o',typ='TXM',
fr="Nom de la composante de l'indicateur d'erreur retenue.",
ang="Name of the selected component of the error indicator.",),
- NUME_ORDRE =SIMP(statut='f',typ='I',
+ NUMORD_INDICA =SIMP(statut='f',typ='I',
fr="Numero d'ordre de l'indicateur.",
ang="Rank number of the error indicator.",),
- INST =SIMP(statut='f',typ='R',
- fr="Instant de l'indicateur.",
- ang="Instant of the error indicator.",),
- 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" ),),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther),
+ NUMPT_INDICA =SIMP(statut='f',typ='I',
+ fr="Numero du pas de temps de l'indicateur.",
+ ang="Time step number of the error indicator.",),
+ NOM_RESU_INDICA =SIMP(statut='f',typ='TXM',
fr="Concept contenant l'indicateur.",
ang="Conceipt wich contains the error indicator.",),
- NOM_CHAM =SIMP(statut='f',typ='TXM',
+ NOM_CHAM_INDICA =SIMP(statut='f',typ='TXM',
fr="Nom du champ dans le résultat de l'indicateur.",
ang="Name of the field of the error indicator.",),
) ,
#
b_niveau_maximum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or \
( UNIFORME == 'RAFFINEMENT' )" ,
- NIVE_MAX =SIMP(statut='f',typ='I',
- fr="Niveau maximum de profondeur de raffinement",
- ang="Maximum level for refinement"),
+ fr="Niveau maximum de profondeur de raffinement",
+ ang="Maximum level for refinement",
+ NIVE_MAX =SIMP(statut='f',typ='I' ),
) ,
#
b_niveau_minimum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or \
( UNIFORME == 'DERAFFINEMENT' )" ,
- NIVE_MIN =SIMP(statut='f',typ='I',
- fr="Niveau minimum de déraffinement",
- ang="Minimum level for unrefinement" ),
+ fr="Niveau minimum de déraffinement",
+ ang="Minimum level for unrefinement",
+ NIVE_MIN =SIMP(statut='f',typ='I' ),
) ,
-#
-# 6.3. Le suivi de frontiere eventuel :
-#
- NOM_MED_MAILLAGE_FRONTIERE =SIMP(statut='f',typ='TXM',
- fr="Nom MED du maillage de la frontiere à suivre",
- ang="MED name of the boundary mesh" ),
-#
- b_frontiere_1 =BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" ,
- GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
- fr="Groupes définissant la frontière",
- ang="Groups which define the boundary" ),
- ) ,
#
),
#
-# 7. L'ANALYSE DU MAILLAGE
+# 6. L'ANALYSE DU MAILLAGE
#
- ANALYSE =FACT(statut='f',
+ ANALYSE =FACT(statut='f',min=1,max=1,
fr="Analyse du maillage.",
ang="Mesh analysis.",
#
-# 5 CHOIX NON EXCLUSIFS, AVEC DEUX VARIANTES (OUI/NON) :
+# 6.1. CHOIX NON EXCLUSIFS, AVEC DEUX VARIANTES (OUI/NON) :
# A. NOMBRE DES ELEMENTS
# B. QUALITE DES ELEMENTS
# C. INTERPENETRATION DES ELEMENTS
),
#
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire",
docu="U4.91.02-d",
UIinfo={"groupes":("Impression",)},
- GENE =FACT(statut='o',max='**',
+ GENE =FACT(statut='o',min=1,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',
FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
FICHIER =SIMP(statut='f',typ='TXM' ),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis ),
TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8 ),
TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8 ),
b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None",
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$ETAT',
'$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
'$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
- '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ),
+ '$$TLEC','$$TECR','$$IADM','$$ACCE') ),
),
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',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
NOM =SIMP(statut='f',typ='TXM' ),
UNITE =SIMP(statut='f',typ='I'),
),
COMMENTAIRE =SIMP(statut='f',typ='TXM' ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
b_miss_3d =BLOC(condition = "FORMAT == 'MISS_3D'",
UNITE =SIMP(statut='f',typ='I',defaut= 26 ),
SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- AMOR_REDUIT =SIMP(statut='f',typ='R' ,max='**'),
- GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'),
+ AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
+ GROUP_MA_INTERF =SIMP(statut='o',typ=grma,max='**'),
# Ces trois mots cles sont-ils dans le bon bloc et avec le bon statut
GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'),
GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Impression",)},
regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
- MATR_ELEM =FACT(statut='f',max='**',
+ MATR_ELEM =FACT(statut='f',min=1,max='**',
FICHIER =SIMP(statut='f',typ='TXM' ),
FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
into=("IDEAS","RESULTAT") ),
MATRICE =SIMP(statut='o',typ=(matr_elem, vect_elem)),
# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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='**',
+ MATR_ASSE =FACT(statut='f',min=1,max='**',
FICHIER =SIMP(statut='f',typ='TXM' ),
FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
into=("IDEAS","RESULTAT") ),
MATRICE =SIMP(statut='o',typ=matr_asse),
# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
OPTION =SIMP(statut='f',typ='TXM',defaut="SOUS_MATRICE",
into=("SOUS_MATRICE","LIGNE","COLONNE") ),
NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**',
+ EXCIT =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),),
VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
FONC_MULT =SIMP(statut='f',typ=(fonction,formule) ),
COEF_MULT =SIMP(statut='f',typ='R' ),
),
- EXCIT_SOL =FACT(statut='f',max='**',
- DIRECTION =SIMP(statut='o',typ='R',min=3,max=3),
+ EXCIT_SOL =FACT(statut='f',min=1,max='**',
+ DIRECTION =SIMP(statut='o',typ='R',max='**'),
FONC_SIGNAL =SIMP(statut='f',typ=(fonction,formule) ),
NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",
into=("DEPL","VITE","ACCE","FORC",) ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-g",
UIinfo={"groupes":("Impression",)},
fr="Impression du résultat d un calcul (différents formats)",
MODELE =SIMP(statut='f',typ=modele),
- RESU =FACT(statut='o',max='**',
+ RESU =FACT(statut='o',min=1,max='**',
FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
b_sensibilite =BLOC(condition="RESULTAT != None",
fr="Définition des paramètres de sensibilité",
ang="Definition of sensitivity parameters",
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters"),),
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()),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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='**'),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'),
+ NOM_CAS =SIMP(statut='f',typ='TXM',max='**'),
+ ANGL =SIMP(statut='f',typ='R',max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,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 toplogiques",
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
),
b_valeurs =BLOC(condition="(FORMAT == 'RESULTAT')",
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Impression",)},
fr="Impression d un concept de type table",
TABLE =SIMP(statut='o',typ=table),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT", ),
FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",
into=("EXCEL","AGRAF","MOT_CLE","TABLEAU","ASTER") ),
- FILTRE =FACT(statut='f',max='**',
+ 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",
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',validators=NoRepeat(),max='**',defaut="CROISSANT",
+ TRI =FACT(statut='f',min=1,max=1,
+ NOM_PARA =SIMP(statut='o',typ='TXM',max='**'),
+ ORDRE =SIMP(statut='f',typ='TXM',max='**',defaut="CROISSANT",
into=("CROISSANT","DECROISSANT") ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.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='**'),
+ NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",)),
IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
TITRE_TABLE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UNITE = SIMP(statut='o',typ='I'),
INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
);
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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,
+ EXTRACTION =FACT(statut='f',min=1,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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Gestion du travail",)},
regles=(),
- LISTE_INFO =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("CPU_RESTANT","CPU",),),
+ LISTE_INFO =SIMP(statut='o',typ='TXM',max='**',
+ into=("CPU_RESTANT","CPU",),),
+
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
- DEFI_SEGMENT =FACT(statut='f',max='**',
+ DEFI_SEGMENT =FACT(statut='f',min=1,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,),
+ NOEUD_ORIG =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
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,),
+ NOEUD_EXTR =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
),
- DEFI_ARC =FACT(statut='f',max='**',
+ DEFI_ARC =FACT(statut='f',min=1,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),
+ NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1),
+ RAYON =SIMP(statut='f',typ='R',max=1,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,),
+ NOEUD_ORIG =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
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,),
+ NOEUD_EXTR =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
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='**',
+ DEFI_CHEMIN =FACT(statut='f',min=1,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='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
),
- NOEUD_ORIG =SIMP(statut='f',typ=no,),
- GROUP_NO_ORIG =SIMP(statut='f',typ=grno,),
+ NOEUD_ORIG =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Définition d un chemin sur un maillage 3D",reentrant='n',
MAILLAGE =SIMP(statut='o',typ=maillage),
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='**',
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ DEFI_SEGMENT =FACT(statut='o',min=1,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,),
+ NOEUD_ORIG =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
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,),
+ NOEUD_EXTR =SIMP(statut='f',typ=no,max=1),
+ GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
),
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
def lire_champ_prod(TYPE_CHAM=None,**args):
-# Remarque : si cette liste évolue, il faut penser à mettre à jour son
-# homologue dans macr_adap_mail
if TYPE_CHAM == "NOEU_DBEL_R" : return cham_no_dbel_r
if TYPE_CHAM == "NOEU_DEPL_C" : return cham_no_depl_c
if TYPE_CHAM == "NOEU_DEPL_F" : return cham_no_depl_f
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'),),
+ regles=(UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
+ PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),),
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',),
+ NOM_CMP =SIMP(statut='f',typ='TXM',max='**',),
+ NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**',),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**',),
+ NUME_PT =SIMP(statut='f',typ='I',max='**',),
+ 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=("NOEU_DBEL_R", "ELEM_DBEL_R", "ELNO_DBEL_R", "ELGA_DBEL_R",
"NOEU_DEPL_C", "ELEM_DEPL_C", "ELNO_DEPL_C", "ELGA_DEPL_C",
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
INFO =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Format du fichier : ASTER ou MED.",
ang="Format of the file : ASTER or MED.",),
#
- ABSC_CURV =FACT(statut='f',min=0,
+ ABSC_CURV =FACT(statut='f',min=0,max=1,
TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
#
- VERI_MAIL =FACT(statut='d',
+ VERI_MAIL =FACT(statut='d',min=1,max=1,
VERIF =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
#
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
def lire_miss_3d_prod(TYPE_RESU,**args):
if TYPE_RESU == "TRANS" : return dyna_trans
TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MAILLAGE =SIMP(statut='o',typ=maillage ),
MODELE =SIMP(statut='o',typ=modele ),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8 ),
b_prec_crit =BLOC(condition = "LIST_INST != None or INST != None",
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
# 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 == "MODE_MECA" : return mode_meca
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,docu="U7.02.01-d",reentrant='n',
UIinfo={"groupes":("Maillage",)},
fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier IDEAS ou EnSight",
-# 0) mots clés généraux :
+# 0 mots clés généraux :
#----------------------
TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA",
"DYNA_TRANS","DYNA_HARMO","HARM_GENE","EVOL_CHAR") ),
NB_VARI =SIMP(statut='f',typ='I' ),
-# 1) blocs selon le format choisi :
+# 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 ),
),
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='**'),),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),),
),
# 1-2 ideas :
# ---------
b_ideas =BLOC(condition="FORMAT=='IDEAS'",
UNITE =SIMP(statut='f',typ='I',defaut= 19 ),
- 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()),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("TEMP","DEPL","VITE","ACCE","PRES","VARI_ELNO",
+ "SIEF_ELNO","EPSA_ELNO","TEMP_PEAU","VITE_VENT",
+ "FVOL_3D","FVOL_2D","FSUR_3D","FSUR_2D") ),
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),
# -------------
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.",),
- NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
FORMAT_MED =FACT(statut='f',max='**',
- 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_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), fr="Les composantes ont le meme nom dans MED et ASTER.", ),
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.", ),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max=1,into=("TEMP","DEPL","SIEF_ELNO","EPSA_ELNO","VARI_ELNO",) ),
),
+ UNITE =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",),
),
-# 2) blocs selon le type du résultat :
+# 2 blocs selon le type du résultat :
#---------------------------------
+ b_evol_elas =BLOC(condition="TYPE_RESU=='EVOL_ELAS'",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
+ into=("DEPL",) ),
+ ),
+ b_evol_ther =BLOC(condition="TYPE_RESU=='EVOL_THER'",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
+ into=("TEMP","TEMP_PEAU") ),
+ ),
+ b_evol_char =BLOC(condition="TYPE_RESU=='EVOL_CHAR'",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
+ into=("PRES","VITE_VENT",
+ "FVOL_3D","FVOL_2D",
+ "FSUR_3D","FSUR_2D") ),
+ ),
+ b_evol_noli =BLOC(condition="TYPE_RESU=='EVOL_NOLI'",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
+ into=("DEPL","VITE","ACCE","VARI_ELNO",
+ "SIEF_ELNO","EPSA_ELNO") ),
+ ),
b_mode_meca =BLOC(condition="TYPE_RESU=='MODE_MECA'",
- MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,),
- MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
+ into=("DEPL",)
+ ),
+ MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,min=1,max=1,),
+ MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,min=1,max=1,),
+ ),
+ b_dyna =BLOC(condition="((TYPE_RESU=='DYNA_TRANS') or (TYPE_RESU=='DYNA_HARMO') or\
+ (TYPE_RESU=='HARM_GENE')) and (FORMAT!='IDEAS_DS58')",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
+ into=("DEPL","VITE","ACCE",) ),
),
-# 3) autres blocs :
+# 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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8),
b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
SEPARATEUR =SIMP(statut='o',typ='TXM'),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE GNICOLAS G.NICOLAS
-
-from Macro.macr_adap_mail_ops import macr_adap_mail_ops
-
def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args):
- maillage_np1=ADAPTATION['MAILLAGE_NP1']
- self.type_sdprod(maillage_np1,maillage)
+ mail1=ADAPTATION['MAILLAGE_N']
+ self.type_sdprod(mail1,maillage)
+ mail2=ADAPTATION['MAILLAGE_NP1']
+ self.type_sdprod(mail2,maillage)
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 == "NOEU_DBEL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_dbel_r)
- if t == "NOEU_DEPL_C":self.type_sdprod(ch['CHAM_MAJ'],cham_no_depl_c)
- if t == "NOEU_DEPL_F":self.type_sdprod(ch['CHAM_MAJ'],cham_no_depl_f)
- if t == "NOEU_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_depl_r)
- if t == "NOEU_DURT_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_durt_r)
- if t == "NOEU_ENER_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_ener_r)
- if t == "NOEU_EPSI_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_epsi_r)
- if t == "NOEU_ERREUR":self.type_sdprod(ch['CHAM_MAJ'],cham_no_erreur)
- if t == "NOEU_FLUX_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_flux_r)
- if t == "NOEU_GEOM_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_geom_r)
- if t == "NOEU_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_g_depl_r)
- if t == "NOEU_HYDR_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_hydr_r)
- if t == "NOEU_INST_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_inst_r)
- if t == "NOEU_INTE_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_inte_r)
- if t == "NOEU_META_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_meta_r)
- if t == "NOEU_NEUT_F":self.type_sdprod(ch['CHAM_MAJ'],cham_no_neut_f)
- if t == "NOEU_NEUT_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_neut_r)
- if t == "NOEU_PRES_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_pres_r)
- if t == "NOEU_SIEF_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sief_r)
- if t == "NOEU_SOUR_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sour_r)
- if t == "NOEU_TEMP_F":self.type_sdprod(ch['CHAM_MAJ'],cham_no_temp_f)
- if t == "NOEU_TEMP_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_temp_r)
- if t == "NOEU_VAR2_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_var2_r)
- if t == "NOEU_VNOR_C":self.type_sdprod(ch['CHAM_MAJ'],cham_no_vnor_c)
- if t == "ELEM_DBEL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_dbel_r)
- if t == "ELEM_DEPL_C":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_c)
- if t == "ELEM_DEPL_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_f)
- if t == "ELEM_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_r)
- if t == "ELEM_DURT_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_durt_r)
- if t == "ELEM_ENER_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_ener_r)
- if t == "ELEM_EPSI_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_epsi_r)
- if t == "ELEM_ERREUR":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_erreur)
- if t == "ELEM_FLUX_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_flux_r)
- if t == "ELEM_GEOM_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_geom_r)
- if t == "ELEM_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl)
- if t == "ELEM_HYDR_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_hydr_r)
- if t == "ELEM_INST_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_inst_r)
- if t == "ELEM_INTE_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_inte_r)
- if t == "ELEM_META_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_meta_r)
- if t == "ELEM_NEUT_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_neut_f)
- if t == "ELEM_NEUT_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_neut_r)
- if t == "ELEM_PRES_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_pres_r)
- if t == "ELEM_SIEF_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_sief_r)
- if t == "ELEM_SOUR_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_sour_r)
- if t == "ELEM_TEMP_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_temp_f)
- if t == "ELEM_TEMP_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_temp_r)
- if t == "ELEM_VARI_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_vari_r)
- if t == "ELEM_VNOR_C":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_vnor_c)
- if t == "ELNO_DBEL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_dbel_r)
- if t == "ELNO_DEPL_C":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_c)
- if t == "ELNO_DEPL_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_f)
- if t == "ELNO_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_r)
- if t == "ELNO_DURT_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_durt_r)
- if t == "ELNO_ENER_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_ener_r)
- if t == "ELNO_EPSI_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_epsi_r)
- if t == "ELNO_ERREUR":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_erreur)
- if t == "ELNO_FLUX_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_flux_r)
- if t == "ELNO_GEOM_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_geom_r)
- if t == "ELNO_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl)
- if t == "ELNO_HYDR_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_hydr_r)
- if t == "ELNO_INST_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_inst_r)
- if t == "ELNO_INTE_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_inte_r)
- if t == "ELNO_META_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_meta_r)
- if t == "ELNO_NEUT_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_neut_f)
- if t == "ELNO_NEUT_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_neut_r)
- if t == "ELNO_PRES_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_pres_r)
- if t == "ELNO_SIEF_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_sief_r)
- if t == "ELNO_SOUR_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_sour_r)
- if t == "ELNO_TEMP_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_temp_f)
- if t == "ELNO_TEMP_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_temp_r)
- if t == "ELNO_VARI_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_vari_r)
- if t == "ELNO_VNOR_C":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_vnor_c)
- if t == "ELGA_DBEL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_dbel_r)
- if t == "ELGA_DEPL_C":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_c)
- if t == "ELGA_DEPL_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_f)
- if t == "ELGA_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_depl_r)
- if t == "ELGA_DURT_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_durt_r)
- if t == "ELGA_ENER_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_ener_r)
- if t == "ELGA_EPSI_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_epsi_r)
- if t == "ELGA_ERREUR":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_erreur)
- if t == "ELGA_FLUX_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_flux_r)
- if t == "ELGA_GEOM_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_geom_r)
- if t == "ELGA_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl)
- if t == "ELGA_HYDR_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_hydr_r)
- if t == "ELGA_INST_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_inst_r)
- if t == "ELGA_INTE_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_inte_r)
- if t == "ELGA_META_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_meta_r)
- if t == "ELGA_NEUT_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_neut_f)
- if t == "ELGA_NEUT_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_neut_r)
- if t == "ELGA_PRES_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_pres_r)
- if t == "ELGA_SIEF_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_sief_r)
- if t == "ELGA_SOUR_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_sour_r)
- if t == "ELGA_TEMP_F":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_temp_f)
- if t == "ELGA_TEMP_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_temp_r)
- if t == "ELGA_VARI_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_vari_r)
- if t == "ELGA_VNOR_C":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_vnor_c)
- if t == "NOEU_IRRA_R":self.type_sdprod(ch['CHAM_MAJ'],cham_no_irra_r)
- if t == "ELEM_IRRA_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_irra_r)
- if t == "ELNO_IRRA_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_irra_r)
- if t == "ELGA_IRRA_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_irra_r)
+ if t == 'NOEU_TEMP_R':self.type_sdprod(ch['CHAM_MAJ'],cham_no_temp_r)
+ if t == 'NOEU_DEPL_R':self.type_sdprod(ch['CHAM_MAJ'],cham_no_depl_r)
return None
-MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod,
+MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=-24,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",
#
# 2. Version de HOMARD
#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V6_2",
- into=("V6_2", "V6_N", "V6_N_PERSO"),
+ VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_5",
+ into=("V5_5", "V5_N", "V5_N_PERSO"),
fr="Version de HOMARD",
ang="HOMARD release"),
#
fr="Langue des messages issus de HOMARD.",
ang="Language for HOMARD messages." ),
#
-# 4. Gestion des éléments autres que des simplexes
-# Remarque : pour le moment on bride le choix 2
-# 0 : autres elements refuses (defaut)
-# 1 : raffinement sur les simplexes, mais autres acceptes
-# 2 : tous
+# 4. LE TYPE DE TRAITEMENT :
#
- NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr="Acceptation d'éléments quad, hexa et penta",
- ang="quad, hexa and penta elements allowed" ),
-#
-# 5. Le type de traitement :
-#
- ADAPTATION =FACT(statut='o',
+ ADAPTATION =FACT(statut='o',min=01,max=01,
fr="Type d'adaptation",
ang="Type of adaptation",
#
-# 5.1. Deux choix d'adaptation exclusifs :
+# 4.1. DEUX CHOIX D'ADAPTATION EXCLUSIFS :
#
-# 5.1.
-# A. Selon un indicateur d'erreur, avec trois variantes :
-# . Raffinement et deraffinement
-# . Raffinement seul
-# . Deraffinement seul
-# B. Uniforme, avec trois variantes :
-# . Raffinement seul
-# . Deraffinement seul
-# . Rien : le maillage est le meme a la sortie et a l'entree
+# 4.1.
+# A. SELON UN INDICATEUR D'ERREUR, AVEC TROIS VARIANTES :
+# . RAFFINEMENT ET DERAFFINEMENT
+# . RAFFINEMENT SEUL
+# . DERAFFINEMENT SEUL
+# B. UNIFORME, AVEC TROIS VARIANTES :
+# . RAFFINEMENT SEUL
+# . DERAFFINEMENT SEUL
+# . RIEN : LE MAILLAGE EST LE MEME A LA SORTIE ET A L'ENTREE
#
regles=(
UN_PARMI('LIBRE','UNIFORME'),
fr="Adaptation uniforme.",
ang="Uniform adaptation" ),
#
-# 5.2. Quel que soit le type de traitement, il faut donner :
-# A. Le concept du maillage initial
-# B. Le concept du maillage final
+# 4.2. QUEL QUE SOIT LE TYPE DE TRAITEMENT, IL FAUT DONNER :
+# A. LE CONCEPT DU MAILLAGE INITIAL
+# B. LE CONCEPT DU MAILLAGE FINAL
#
- MAILLAGE_N = SIMP(statut='o',typ=maillage,
+ MAILLAGE_N = SIMP(statut='o',typ=(CO,maillage),
fr="Maillage avant adaptation",
ang="Mesh before adaptation" ),
MAILLAGE_NP1 = SIMP(statut='o',typ=(CO,maillage),
fr="Maillage apres adaptation",
ang="Mesh after adaptation" ),
#
-# 5.3. Pour de l'adaptation libre, il faut l'indicateur d'erreur
+# 4.3. POUR DE L'ADAPTATION LIBRE, IL FAUT L'INDICATEUR D'ERREUR
#
#
b_indicateur_d_erreur =BLOC( condition = " LIBRE != None " ,
fr="Indicateur d'erreur",
ang="Error indicator",
#
-# 5.3.1. Le nom du concept resultat
+# 4.3.1. LE NOM DU CONCEPT RESULTAT
#
RESULTAT_N = SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ,
fr="Resultat contenant l'indicateur d'erreur",
ang="Result with error indicator" ),
#
-# 5.3.2. Le champ d'indicateur d'erreur
+# 4.3.2. LE CHAMP D'INDICATEUR D'ERREUR
#
INDICATEUR = SIMP(statut='o',typ='TXM',
fr="Champ de l'indicateur d'erreur",
ang="Error indicator field" ),
#
-# 5.3.3. La composante retenue
+# 4.3.3. LA COMPOSANTE RETENUE
#
NOM_CMP_INDICA = SIMP(statut='o',typ='TXM',
fr="Composante retenue",
ang="Selected component" ),
#
-# 5.3.4. Le paramètre temporel pour l'indicateur
-#
- regles=(EXCLUS('NUME_ORDRE','INST'),),
-#
-# 5.3.4.1. Soit le numero d'ordre
+# 4.3.4. LE NUMERO D'ORDRE
#
- NUME_ORDRE = SIMP(statut='f',typ='I',
+ NUME_ORDRE = SIMP(statut='f',typ='I' ,
fr="Numero d ordre",
ang="Rank" ),
-#
-# 5.3.4.2. Soit l'instant
-# 5.3.4.2.1. Sa valeur
-#
- INST = SIMP(statut='f',typ='R',
- fr="Instant associé",
- ang="Instant" ),
-#
-# 5.3.4.2.2. La précision du choix de l'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" ),),
-#
) ,
#
-# 5.4. Les criteres pour de l'adaptation libre :
-# absolu, relatif, en proportion d'entite
-# 5.4.1. Pour le raffinement :
+# 4.4. LES CRITERES POUR DE L'ADAPTATION LIBRE :
+# ABSOLU, RELATIF, EN PROPORTION D'ENTITE
+# 4.4.1. POUR LE RAFFINEMENT :
#
b_critere_de_raffinement =BLOC( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) " ,
fr="Critère de raffinement.",
ang="Percentage of elements" ),
) ,
#
-# 5.4.2. Pour le deraffinement :
+# 4.4.2. POUR LE DERAFFINEMENT :
#
b_critere_de_deraffinement =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) " ,
fr="Critère de déraffinement.",
ang="Percentage of elements" ),
) ,
#
-# 5.5. Les niveaux extremes pour le maillage adapte
-# 5.5.1. Pour le raffinement :
+# 4.5. LES NIVEAUX EXTREMES POUR LE MAILLAGE ADAPTE
+# 4.5.1. POUR LE RAFFINEMENT :
#
b_niveau_maximum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) or \
( UNIFORME == 'RAFFINEMENT' ) " ,
- 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",
+ NIVE_MAX = SIMP(statut='f',typ='I' ),
) ,
#
-# 5.5.2. Pour le deraffinement :
+# 4.5.2. POUR LE DERAFFINEMENT :
#
b_niveau_minimum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) or \
( UNIFORME == 'DERAFFINEMENT' ) " ,
- 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",
+ NIVE_MIN = SIMP(statut='f',typ='I' ),
) ,
-#
),
#
-# 6. Suivi d'une frontiere
-#
- MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage,
- fr="Maillage de la frontiere à suivre",
- ang="Boundary mesh" ),
+# 5. LA MISE A JOUR DE CHAMPS.
+# PAR DEFAUT, RIEN NE SE FAIT
#
- b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
- fr="Groupes définissant la frontière",
- ang="Groups which define the boundary",
- GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ),
- ) ,
-#
-# 7. Mise à jour de champs sur le nouveau maillage
-#
- MAJ_CHAM =FACT(statut='f',max='**',
+ MAJ_CHAM =FACT(statut='f',min=01,max='**',
fr="Mise à jour de champs sur le nouveau maillage.",
ang="Updating of fields over the new mesh.",
#
-# 7.1. Le nom du champ qui contiendra le resultat de la mise a jour
-#
- CHAM_MAJ = SIMP(statut='o',typ=(CO,cham_gd),
- fr="Nom du champ qui contiendra le champ mis à jour",
- ang="Name of the field for the updated field"),
-#
-# 7.2. Le type du champ qui contiendra le resultat de la mise a jour
-# Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP
-#
- TYPE_CHAM = SIMP(statut='o',typ='TXM',
- into=("NOEU_DBEL_R", "ELEM_DBEL_R", "ELNO_DBEL_R", "ELGA_DBEL_R",
- "NOEU_DEPL_C", "ELEM_DEPL_C", "ELNO_DEPL_C", "ELGA_DEPL_C",
- "NOEU_DEPL_F", "ELEM_DEPL_F", "ELNO_DEPL_F", "ELGA_DEPL_F",
- "NOEU_DEPL_R", "ELEM_DEPL_R", "ELNO_DEPL_R", "ELGA_DEPL_R",
- "NOEU_DURT_R", "ELEM_DURT_R", "ELNO_DURT_R", "ELGA_DURT_R",
- "NOEU_ENER_R", "ELEM_ENER_R", "ELNO_ENER_R", "ELGA_ENER_R",
- "NOEU_EPSI_R", "ELEM_EPSI_R", "ELNO_EPSI_R", "ELGA_EPSI_R",
- "NOEU_ERREUR", "ELEM_ERREUR", "ELNO_ERREUR", "ELGA_ERREUR",
- "NOEU_FLUX_R", "ELEM_FLUX_R", "ELNO_FLUX_R", "ELGA_FLUX_R",
- "NOEU_GEOM_R", "ELEM_GEOM_R", "ELNO_GEOM_R", "ELGA_GEOM_R",
- "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R","ELGA_G_DEPL_R",
- "NOEU_HYDR_R", "ELEM_HYDR_R", "ELNO_HYDR_R", "ELGA_HYDR_R",
- "NOEU_INST_R", "ELEM_INST_R", "ELNO_INST_R", "ELGA_INST_R",
- "NOEU_INTE_R", "ELEM_INTE_R", "ELNO_INTE_R", "ELGA_INTE_R",
- "NOEU_META_R", "ELEM_META_R", "ELNO_META_R", "ELGA_META_R",
- "NOEU_NEUT_F", "ELEM_NEUT_F", "ELNO_NEUT_F", "ELGA_NEUT_F",
- "NOEU_NEUT_R", "ELEM_NEUT_R", "ELNO_NEUT_R", "ELGA_NEUT_R",
- "NOEU_PRES_R", "ELEM_PRES_R", "ELNO_PRES_R", "ELGA_PRES_R",
- "NOEU_SIEF_R", "ELEM_SIEF_R", "ELNO_SIEF_R", "ELGA_SIEF_R",
- "NOEU_SOUR_R", "ELEM_SOUR_R", "ELNO_SOUR_R", "ELGA_SOUR_R",
- "NOEU_TEMP_F", "ELEM_TEMP_F", "ELNO_TEMP_F", "ELGA_TEMP_F",
- "NOEU_TEMP_R", "ELEM_TEMP_R", "ELNO_TEMP_R", "ELGA_TEMP_R",
- "NOEU_VAR2_R", "ELEM_VARI_R", "ELNO_VARI_R", "ELGA_VARI_R",
- "NOEU_VNOR_C", "ELEM_VNOR_C", "ELNO_VNOR_C", "ELGA_VNOR_C",
- "NOEU_IRRA_R", "ELEM_IRRA_R", "ELNO_IRRA_R", "ELGA_IRRA_R",),
- fr="Type du champ qui contiendra le champ mis à jour",
- ang="Type of the field for the updated field" ),
-#
-# 7.3. Le nom du resultat du champ a interpoler
+# 5.1. LE NOM DU RESULTAT DU CHAMP A INTERPOLER
#
RESULTAT = SIMP(statut='o',
typ=(evol_elas,evol_noli,evol_ther),
fr="Resultat contenant le champ à mettre à jour",
ang="Result with field to be updated" ),
#
-# 7.4. Le nom du champ a interpoler
+# 5.2. LE NOM DU CHAMP A INTERPOLER
#
NOM_CHAM = SIMP(statut='o',typ='TXM',
fr="Nom du champ à mettre à jour",
- ang="Name of the field to be updated" ),
+ ang="Name of the field to be updated" ),
#
-# 7.5. Le paramètre temporel pour le champ a interpoler
-#
- regles=(EXCLUS('NUME_ORDRE','INST'),),
-#
-# 7.5.1. Soit le numero d'ordre
+# 5.3. LE NUMERO D'ORDRE POUR LE CHAMP A INTERPOLER
#
NUME_ORDRE = SIMP(statut='f',typ='I',
fr="Numero d ordre du champ à mettre à jour",
- ang="Rank of the field to be updated" ),
+ ang="Rank of the field to be updated" ),
#
-# 7.5.2. Soit l'instant
-# 7.5.2.1. Sa valeur
+# 5.4. LE NOM DU CHAMP QUI CONTIENDRA LE RESULTAT DE LA MISE A JOUR
#
- INST = SIMP(statut='f',typ='R',
- fr="Instant associé",
- ang="Instant" ),
+ CHAM_MAJ = SIMP(statut='o',typ=(CO,cham_gd),
+ fr="Nom du champ qui contiendra le champ mis à jour",
+ ang="Name of the field for the updated field"),
#
-# 7.5.2.2. La précision du choix de l'instant
+# 5.5. LE TYPE DU CHAMP QUI CONTIENDRA LE RESULTAT DE LA MISE A JOUR
#
- 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" ),),
+ TYPE_CHAM = SIMP(statut='o',typ='TXM',
+ into=("NOEU_TEMP_R","NOEU_DEPL_R"),
+ fr="Type du champ qui contiendra le champ mis à jour",
+ ang="Type of the field for the updated field" ),
),
#
-# 8. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres
-# 8.1. Nombre de noeuds et éléments
+# 6. INFORMATION SUR LE MAILLAGE : par defaut, on ne fait que les nombres
+# A. NOMBRE DE NOEUDS ET ELEMENTS DU MAILLAGE
+# B. QUALITE DES ELEMENTS DU MAILLAGE
+# C. CONTROLE DE LA NON INTERPENETRATION DES ELEMENTS DU MAILLAGE
+# D. CONNEXITE DU MAILLAGE
+# E. TAILLE DES DIFFERENTS SOUS-DOMAINES
#
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" ),
-#
-# 8.2. Determination de la qualité des éléments du maillage
+ ang="Number of nodes and elements in the mesh" ),
#
QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
fr="Qualité du maillage",
ang="Mesh quality" ),
#
-# 8.3. Connexite du maillage
+ 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." ),
#
CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
fr="Connexité du maillage.",
ang="Mesh connexity." ),
-#
-# 8.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." ),
#
-# 8.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." ),
+ MENAGE = SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ),
#
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
"SOUS_EPAIS_COUDE"
) ),
- CL_BOL_P2_GV =FACT(statut='f',
+ CL_BOL_P2_GV =FACT(statut='f',min=1,max=1,
ANGLE =SIMP(statut='o',typ='R' ),
AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ),
),
CHARGE =SIMP(statut='f',typ=(CO,char_meca)),
RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)),
- AFFE_MATERIAU =FACT(statut='o',max=3,
+ AFFE_MATERIAU =FACT(statut='o',min=1,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") ),
TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
- PRES_REP =FACT(statut='f',
+ PRES_REP =FACT(statut='f',min=1,max=1,
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,formule) ),
),
- ECHANGE =FACT(statut='f',
+ ECHANGE =FACT(statut='f',min=1,max=1,
COEF_H =SIMP(statut='f',typ=(fonction,formule) ),
TEMP_EXT =SIMP(statut='f',typ=(fonction,formule) ),
),
- TORS_P1 =FACT(statut='f',max=6,
+ TORS_P1 =FACT(statut='f',min=1,max=6,
regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
FX =SIMP(statut='f',typ='R' ),
FY =SIMP(statut='f',typ='R' ),
FONC_MULT =SIMP(statut='f',typ=(fonction,formule) ),
),
- COMP_INCR =FACT(statut='f',
+ COMP_INCR =FACT(statut='f',min=1,max=1,
RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
),
- COMP_ELAS =FACT(statut='f',
+ COMP_ELAS =FACT(statut='f',min=1,max=1,
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 ,) ),
),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
- CONVERGENCE =FACT(statut='d',
+ CONVERGENCE =FACT(statut='d',min=1,max=1,
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),
RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
),
- NEWTON =FACT(statut='d',
+ NEWTON =FACT(statut='d',min=1,max=1,
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") ),
EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
),
- RECH_LINEAIRE =FACT(statut='f',
+ RECH_LINEAIRE =FACT(statut='f',min=1,max=1,
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',
+ INCREMENT =FACT(statut='o',min=1,max=1,
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8),
COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
),
- THETA_3D =FACT(statut='f',max='**',
+ THETA_3D =FACT(statut='f',min=1,max='**',
R_INF =SIMP(statut='o',typ='R' ),
R_SUP =SIMP(statut='o',typ='R' ),
),
- IMPR_TABLE =FACT(statut='f',
+ IMPR_TABLE =FACT(statut='f',min=1,max=1,
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,
+ NOM_PARA =SIMP(statut='f',typ='TXM',max=4,
into=("TRESCA_MEMBRANE",
"TRESCA_MFLE",
"TRESCA",
TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
),
- IMPRESSION =FACT(statut='f',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
- EXEC_MAILLAGE =FACT(statut='o',
+ EXEC_MAILLAGE =FACT(statut='o',min=1,max=1,
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),
TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
- COUDE =FACT(statut='o',
+ COUDE =FACT(statut='o',min=1,max=1,
ANGLE =SIMP(statut='o',typ='R' ),
R_CINTR =SIMP(statut='o',typ='R' ),
L_TUBE_P1 =SIMP(statut='o',typ='R' ),
),
),
- SOUS_EPAIS_COUDE=FACT(statut='f',
+ SOUS_EPAIS_COUDE=FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
),
- SOUS_EPAIS_MULTI=FACT(statut='f',max='**',
+ SOUS_EPAIS_MULTI=FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
),
- FISS_COUDE =FACT(statut='f',
+ FISS_COUDE =FACT(statut='f',min=1,max=1,
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' ",
ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ),
),
- IMPRESSION =FACT(statut='f',max='**',
+ IMPRESSION =FACT(statut='f',min=1,max='**',
regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",
into=("ASTER","IDEAS","CASTEM") ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ TUBULURE =FACT(statut='o',min=1,max=1,
TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ),
),
MAILLAGE =SIMP(statut='o',typ=maillage),
CHARGE =SIMP(statut='f',typ=(CO,char_meca)),
RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)),
- AFFE_MATERIAU =FACT(statut='o',max=3,
+ AFFE_MATERIAU =FACT(statut='o',min=1,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") ),
RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
),
- EQUILIBRE =FACT(statut='o',
+ EQUILIBRE =FACT(statut='o',min=1,max=1,
NOEUD =SIMP(statut='o',typ=no),
),
- PRES_REP =FACT(statut='o',
+ PRES_REP =FACT(statut='o',min=1,max=1,
PRES =SIMP(statut='o',typ='R'),
NOEUD =SIMP(statut='f',typ=no),
EFFE_FOND =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
FONC_MULT =SIMP(statut='f',typ=(fonction,formule)),
),
- ECHANGE =FACT(statut='f',
+ ECHANGE =FACT(statut='f',min=1,max=1,
COEF_H_TUBU =SIMP(statut='o',typ=(fonction,formule)),
COEF_H_CORP =SIMP(statut='o',typ=(fonction,formule)),
TEMP_EXT =SIMP(statut='o',typ=(fonction,formule)),
),
- TORS_CORP =FACT(statut='f',max=6,
+ TORS_CORP =FACT(statut='f',min=1,max=6,
regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
NOEUD =SIMP(statut='o',typ=no),
FX =SIMP(statut='f',typ='R'),
FONC_MULT =SIMP(statut='f',typ=(fonction,formule)),
),
- TORS_TUBU =FACT(statut='f',max=6,
+ TORS_TUBU =FACT(statut='f',min=1,max=6,
regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
FX =SIMP(statut='f',typ='R'),
FY =SIMP(statut='f',typ='R'),
FONC_MULT =SIMP(statut='f',typ=(fonction,formule)),
),
- COMP_INCR =FACT(statut='f',
+ COMP_INCR =FACT(statut='f',min=1,max=1,
RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
),
- COMP_ELAS =FACT(statut='f',
+ COMP_ELAS =FACT(statut='f',min=1,max=1,
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 ,) ),
),
- THETA_3D =FACT(statut='f',max='**',
+ THETA_3D =FACT(statut='f',min=1,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='**',
+ BORNES =FACT(statut='f',min=1,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',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
- CONVERGENCE =FACT(statut='d',
+ CONVERGENCE =FACT(statut='d',min=1,max=1,
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),
RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
),
- NEWTON =FACT(statut='d',
+ NEWTON =FACT(statut='d',min=1,max=1,
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',
+ RECH_LINEAIRE =FACT(statut='d',min=1,max=1,
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',
+ INCREMENT =FACT(statut='o',min=1,max=1,
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8),
PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1),
- IMPRESSION =FACT(statut='f',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
into=("RESULTAT","ASTER","CASTEM","IDEAS")),
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,
+ NOM_CHAM =SIMP(statut='f',typ='TXM',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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
),
),
TITRE =SIMP(statut='f',typ='TXM'),
) ;
# debut entete
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr=" ",docu="U4.pc.10-b",
UIinfo={"groupes":("Outils métier",)},
- EXEC_MAILLAGE =FACT(statut='o',
+ EXEC_MAILLAGE =FACT(statut='o',min=1,max=1,
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),
RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
- TUBULURE =FACT(statut='o',
+ TUBULURE =FACT(statut='o',min=1,max=1,
E_BASE =SIMP(statut='o',typ='R'),
DEXT_BASE =SIMP(statut='o',typ='R'),
L_BASE =SIMP(statut='o',typ='R'),
L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0),
),
- SOUDURE =FACT(statut='o',
+ SOUDURE =FACT(statut='o',min=1,max=1,
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',
+ CORPS =FACT(statut='o',min=1,max=1,
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',
+ FISS_SOUDURE =FACT(statut='f',min=1,max=1,
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'),
NB_COURONNE =SIMP(statut='f',typ='I'),
),
- IMPRESSION =FACT(statut='f',max='**',
+ IMPRESSION =FACT(statut='f',min=1,max='**',
regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
-# 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)
- if MODELE_MECA != None:
- self.type_sdprod(MODELE_MECA,modele)
- 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 d'une jonction boulonnée de tuyauterie",
- reentrant='n',
- UIinfo={"groupes":("Outils métier",)},
- MAILLAGE = SIMP(statut='o',typ=maillage,),
- 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),
- TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ),
- ),
- CHAM_MATER = SIMP(statut = 'f',typ=(cham_mater,CO),),
- MODELE_THER= SIMP(statut = 'f',typ=(modele,CO),),
-
- DEFI_CHAR_THER = FACT(statut ='d',
- TEMP_INIT = SIMP(statut='d',typ='R',defaut= 25.,),
- COEF_H_FLUI = SIMP(statut='f',typ=fonction,),
- TEMP_EXT_FLUI = SIMP(statut='f',typ=fonction,),
- COEF_H_AIR = SIMP(statut='f',typ=fonction,),
- TEMP_EXT_AIR = SIMP(statut='f',typ=fonction,),
- LIST_INST = SIMP(statut='f',typ=listr8),
- ),
-
- CHAR_THER = FACT(statut = 'f',max=4,
- CHARGE = SIMP(statut='o',typ=(char_ther,CO)),
- TYPE = SIMP(statut='o',typ='TXM',
- into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON",
- "BRIDE_JOINT"),)
- ),
-
- RESU_THER = SIMP(statut = 'f',typ=(evol_ther,CO),),
-
-
- MODELE_MECA= SIMP(statut = 'f',typ=(modele,CO),),
-
- DEFI_CHAR_MECA = FACT(statut='o',
- PRETENS = SIMP(statut='f',typ=fonction,),
- PRES_REP = SIMP(statut='f',typ=fonction,),
- EFFE_FOND = SIMP(statut='f',typ=fonction,),
- ),
-
- CHAR_MECA = FACT(statut = 'f',max=11,
- CHARGE = SIMP(statut='o',typ=(char_meca,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),
- 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 ),
- SUBD_PAS =SIMP(statut='f',typ='I',defaut=1),
- SUBD_PAS_MINI =SIMP(statut='f',typ='R'),
- COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- 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),
- ),
- 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),
- TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)),
- RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
- into=("IMPLICITE",)),
- ),
- );
-
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
-# 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,
- 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',
- FICHIER = SIMP(statut='f',typ='TX'),
- 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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
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),
+ ORIG_INER =SIMP(statut='f',typ='R',max='**',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='**',
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**',
fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
- GROUP_MA_BORD =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+ GROUP_MA_BORD =SIMP(statut='f',typ=grma,max='**',
fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None",
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='**',
+ GROUP_MA_INTE =SIMP(statut='f',typ=grma,max='**',
fr="groupes de mailles linéiques bordant des trous dans la section"),
),
fr="type de conditions aux limites sur le plancher supérieur" ),
),
)
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ",
"DIAG_MASS") ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ DEFINITION =FACT(statut='f',min=1,max=1,
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='f',typ=cham_mater),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
NMAX_CAS =SIMP(statut='f',typ='I',defaut=10),
NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10),
),
- EXTERIEUR =FACT(statut='f',
+ EXTERIEUR =FACT(statut='f',min=1,max=1,
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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
),
- RIGI_MECA =FACT(statut='f',
+ RIGI_MECA =FACT(statut='f',min=1,max=1,
),
- MASS_MECA =FACT(statut='f',
+ MASS_MECA =FACT(statut='f',min=1,max=1,
BIDO1 =SIMP(statut='f',typ='I',defaut=0),
),
- CAS_CHARGE =FACT(statut='f',max='**',
+ CAS_CHARGE =FACT(statut='f',min=1,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='**'),
+ CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
INST =SIMP(statut='f',typ='R',defaut=0.E+0),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr=" ",docu="U4.gj.20-b",reentrant='n',
UIinfo={"groupes":("Outils métier",)},
MAILLAGE =SIMP(statut='o',typ=maillage),
- DEFI_GOUJ =FACT(statut='o',
+ DEFI_GOUJ =FACT(statut='o',min=1,max=1,
TYPE =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")),
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")),
FILET_JEU_HTA =SIMP(statut='f',typ='I',max='**'),
FILET_JEU_HTB =SIMP(statut='f',typ='I',max='**'),
),
- EXCIT =FACT(statut='o',
+ EXCIT =FACT(statut='o',min=1,max=1,
TYPE_BLOCAGE =SIMP(statut='o',typ='I',defaut=2,into=(1,2,3)),
FORCE_GOUJ =SIMP(statut='o',typ='R'),
),
- CALCUL =FACT(statut='o',
+ CALCUL =FACT(statut='o',min=1,max=1,
TYPE_CALCUL =SIMP(statut='o',typ='TXM',into=("ELASTIQUE","ELASTOPLASTIQUE")),
NB_INCR =SIMP(statut='o',typ='I'),
),
- IMPRESSION =FACT(statut='f',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLE",
into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","TABLE")),
VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
TITRE =SIMP(statut='f',typ='TXM'),
INFO =SIMP(statut='f',typ='I',defaut=1 ,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage,
fr=" ",docu="U4.gj.10-b",reentrant='n',
UIinfo={"groupes":("Outils métier",)},
- EXEC_MAILLAGE =FACT(statut='o',
+ EXEC_MAILLAGE =FACT(statut='o',min=1,max=1,
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)),
),
- DEFI_GOUJ =FACT(statut='o',
+ DEFI_GOUJ =FACT(statut='o',min=1,max=1,
TYPE =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")),
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")),
),
- GEOM_GOUJ_BRID =FACT(statut='o',
+ GEOM_GOUJ_BRID =FACT(statut='o',min=1,max=1,
NB_FILET =SIMP(statut='o',typ='I'),
H_CORP_BRID =SIMP(statut='o',typ='R'),
R_EXT_BRID =SIMP(statut='o',typ='R'),
H_HAUT_BRID =SIMP(statut='f',typ='R',defaut=0.0E+0),
H_BAS_BRID =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- FILET_ABST =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ FILET_ABST =SIMP(statut='f',typ='I',max='**'),
),
- IMPRESSION =FACT(statut='f',
+ IMPRESSION =FACT(statut='f',min=1,max=1,
regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED")),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE 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",
+MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-b",
fr="Donner des informations sur un maillage.",
ang="To give information about a mesh.",
#
#
# 2. Version de HOMARD
#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V6_2",
- into=("V6_2", "V6_N", "V6_N_PERSO"),
+ VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_5",
+ into=("V5_5", "V5_N","V5_N_PERSO"),
fr="Version de HOMARD",
ang="HOMARD release"),
#
fr="Langue des messages issus de HOMARD.",
ang="Language for HOMARD messages." ),
#
-# 4. Gestion des éléments autres que des simplexes
-# Remarque : pour le moment, on bride le choix 2
-# 0 : autres elements refusés (defaut)
-# 1 : analyse exclusivement sur les simplexes, mais autres éléments acceptés
-# 2 : tous
-#
- NON_SIMPLEXE = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr="Acceptation d'éléments quad, hexa et penta",
- ang="quad, hexa and penta elements allowed" ),
-#
-# 5. Le nom du maillage a analyser
+# 4. Le nom du maillage a analyser
#
MAILLAGE = SIMP(statut='o',typ=maillage,
fr="Maillage à analyser.",
ang="Mesh to be checked." ),
#
-# 6. Suivi d'une frontiere
-#
- MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage,
- fr="Maillage de la frontiere à suivre",
- ang="Boundary mesh" ),
-#
- b_frontiere =BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
- fr="Groupes définissant la frontière",
- ang="Groups which define the boundary",
- GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ),
- ) ,
-#
-# 7. Les options ; par defaut, on ne fait que les nombres
-# 7.1. Nombre de noeuds et elements
+# 5. Les options ; par defaut, on ne fait que les nombres
+# 5.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" ),
#
-# 7.2. Determination de la qualite des elements du maillage
+# 5.2. Determination de la qualite des elements du maillage
#
QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
fr="Qualité du maillage",
ang="Mesh quality" ),
#
-# 7.3. Connexite du maillage
+# 5.3. Connexite du maillage
#
CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
fr="Connexité du maillage.",
ang="Mesh connexity." ),
#
-# 7.4. Taille des sous-domaines du maillage
+# 5.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." ),
#
-# 7.5. Controle de la non-interpenetration des elements
+# 5.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." ),
#
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
),
MODELE =SIMP(statut='o',typ=modele ),
UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25),
- LIGN_COUPE =FACT(statut='o',max='**',
+ LIGN_COUPE =FACT(statut='o',min=1,max='**',
NB_POINTS =SIMP(statut='o',typ='I'),
COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3),
COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3),
TABLE =SIMP(statut='o',typ=(table,CO)),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
sd_prod=macr_recal_prod,
fr="Réalise le recalage de modèles Aster",
UNITE_ESCL =SIMP(statut='o',typ='I'),
- RESU_EXP =SIMP(statut='o',typ=assd,max='**'),
- RESU_CALC =SIMP(statut='o',typ=assd,max='**'),
- LIST_PARA =SIMP(statut='o',typ=assd,max='**'),
+ RESU_EXP =SIMP(statut='o',typ=assd,min = 1, max='**'),
+ RESU_CALC =SIMP(statut='o',typ=assd,min = 1, max='**'),
+ LIST_PARA =SIMP(statut='o',typ=assd,min = 1, max='**'),
ITER_MAXI =SIMP(statut='f',typ='I',defaut=10),
RESI_GLOB_RELA =SIMP(statut='f',typ='R',defaut=1.E-3),
UNITE_RESU =SIMP(statut='f',typ='I',defaut=91),
PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001),
- GRAPHIQUE =FACT(statut='d',
+ GRAPHIQUE =FACT(statut='d',min=1,max=1,
UNITE =SIMP(statut='f',typ='I',defaut=90),
INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),)
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CHAM_MATER =SIMP(statut='f',typ=cham_mater),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
NUME_DDL =SIMP(statut='f',typ=(nume_ddl,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='**'),
+ CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,max='**'),
+ CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,max='**'),
LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)),
- CAS_CHARGE =FACT(statut='o',max='**',
+ CAS_CHARGE =FACT(statut='o',min=1,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='**',
+ CHAR_MECA =SIMP(statut='f',typ=char_meca,max='**'),
+ CHAR_CINE =SIMP(statut='f',typ=char_meca,max='**'),
+ OPTION =SIMP(statut='f',typ='TXM',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",
SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r),
),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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",
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**',
+ FLUIDE =FACT(statut='o',min=1,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='**',
+ DDL_IMPO =FACT(statut='o',min=1,max='**',
regles=(UN_PARMI('NOEUD','GROUP_NO'),
UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
NOEUD =SIMP(statut='f',typ=no),
PRES_FLUIDE =SIMP(statut='f',typ='R'),
PRES_SORTIE =SIMP(statut='f',typ='R'),
),
- ECOULEMENT =FACT(statut='f',max='**',
+ ECOULEMENT =FACT(statut='f',min=1,max='**',
GROUP_MA_1 =SIMP(statut='o',typ=grma),
GROUP_MA_2 =SIMP(statut='o',typ=grma),
VNOR_1 =SIMP(statut='o',typ='R'),
MATR_AMOR_AJOU =SIMP(statut='f',typ=(CO,matr_asse)),
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='**',
+ FORC_AJOU =FACT(statut='f',min=1,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='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
VECTEUR =SIMP(statut='o',typ=(CO,vect_asse_gene)),
),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=modele),
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='**'),
+ CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**'),
INST =SIMP(statut='f',typ='R'),
NUME_DDL =SIMP(statut='o',typ=(nume_ddl,CO)),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",
into=("LDLT","MULT_FRONT","GCPC")),
RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")),
),
- MATR_ASSE =FACT(statut='o',max='**',
+ MATR_ASSE =FACT(statut='o',min=1,max='**',
MATRICE =SIMP(statut='o',typ=(matr_asse,CO)),
OPTION =SIMP(statut='o',typ='TXM',
into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ",docu="U7.03.11-b",
UIinfo={"groupes":("Matrices/vecteurs",)},
- OPTION =FACT(statut='o',
+ OPTION =FACT(statut='o',min=1,max=1,
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")),
UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),
UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
),
OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",
into=("MODE_RIGIDE","SANS") ),
- CALC_FREQ =FACT(statut='d',min=0,
+ CALC_FREQ =FACT(statut='d',min=0,max=1,
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='**',val_min=0.E+0 ),
+ FREQ =SIMP(statut='f',typ='R',min=2,max='**',val_min=0.E+0 ),
FREQ_MIN =SIMP(statut='f',typ='R' ),
FREQ_MAX =SIMP(statut='f',typ='R' ),
NB_BLOC_FREQ =SIMP(statut='f',typ='I' ),
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,
+ VERI_MODE =FACT(statut='d',min=0,max=1,
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='**',
+ NORM_MODE =FACT(statut='o',min=1,max='**',
MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ),
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',
+ FILTRE_MODE =FACT(statut='f',min=1,max=1,
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',
+ IMPRESSION =FACT(statut='d',min=1,max=1,
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Matrices/vecteurs",)},
sd_prod=macro_proj_base_prod,
fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs",
- BASE =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ),
+ BASE =SIMP(statut='o',typ=(mode_meca,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='**',
+ MATR_ASSE_GENE =FACT(statut='f',min=1,max='**',
MATRICE =SIMP(statut='o',typ=(CO,matr_asse)),
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='**',
+ VECT_ASSE_GENE =FACT(statut='f',min=1,max='**',
VECTEUR =SIMP(statut='o',typ=(CO,vect_asse)),
TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"),
VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Gestion du travail",)},
fr="Compilation des catalogues de commandes et d éléments",
- ELEMENT =FACT(statut='f',),
+ ELEMENT =FACT(statut='f',min=1,max=1,),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
# RESPONSABLE VABHHTS J.PELLET
MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
- fr="Analyse mécanique statique linéaire",docu="U4.51.01-g",reentrant='f',
+ fr="Analyse mécanique statique linéaire",docu="U4.51.01-g",reentrant='n',
UIinfo={"groupes":("Résolution",)},
regles=(EXCLUS("INST","LIST_INST"),
AU_MOINS_UN('CHAM_MATER','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='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
FONC_MULT =SIMP(statut='f',typ=(fonction,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),
- INST_FIN =SIMP(statut='f',typ='R'),
- OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='f',typ='TXM',max='**',
into=("SANS","SIGM_ELNO_DEPL","SIPO_ELNO_DEPL","EFGE_ELNO_DEPL",
"EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL",
"EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI","EQUI_ELGA_EPSI",
NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
ANGLE =SIMP(statut='f',typ='I',defaut=0),
PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters"),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),),
NOM=FACT(statut='f',max='**',
- regles=(PRESENT_PRESENT('MOT_CLE','VALEUR','MOT_FACT' ),),
+ regles=(PRESENT_PRESENT('MOT_CLE','VALEUR' ),),
NOM_SD=SIMP(statut='o',typ='TXM',
fr="Nom de la structure de base",
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"),
fr="Nom de la fonction nulle",
ang="Name of the zero fonction"),
- NOM_UN =SIMP(statut='f',typ=fonction,
+ NOM_UN=SIMP (statut='f',typ=fonction,
fr="Nom de la fonction unité",
ang="Name of the one fonction"),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ LIAISON =FACT(statut='o',min=1,max=1,
DROITE =SIMP(statut='o',typ='TXM' ),
GAUCHE =SIMP(statut='o',typ='TXM' ),
AXE =SIMP(statut='f',typ='TXM' ),
),
- VERI_CYCL =FACT(statut='f',
+ VERI_CYCL =FACT(statut='f',min=1,max=1,
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',
+ CALCUL =FACT(statut='o',min=1,max=1,
TOUT_DIAM =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NB_DIAM =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NB_DIAM =SIMP(statut='f',typ='I',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',),
+ FREQ =SIMP(statut='o',typ='R',min=1,max=1),
),
b_bande =BLOC(condition = "OPTION == 'BANDE'",
- FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2),
+ FREQ =SIMP(statut='o',typ='R',min=2,max=2),
),
# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE
NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
TYPE_RESU =SIMP(statut='f',position='global',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",
+ CALC_FREQ =FACT(statut='o',min=1,max=1,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" ),
),
),
b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
+ CALC_FREQ =FACT(statut='o',min=1,max=1,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='**' ),
+ CHAR_CRIT =SIMP(statut='o',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, ),
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",
+ CALC_MODE =FACT(statut='d',min=0,max=1,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,
+ VERI_MODE =FACT(statut='d',min=0,max=1,
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" ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+ TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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,
+ CALC_FREQ =FACT(statut='d',min=0,max=1,
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",
),
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',
+ CHAR_CRIT =SIMP(statut='o',typ='R',min=1,max=1,
fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
),
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,
+ CHAR_CRIT =SIMP(statut='o',typ='R',min=2,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"),
),
b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
- CALC_FREQ =FACT(statut='d',min=0,
+ CALC_FREQ =FACT(statut='d',min=0,max=1,
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",
),
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',
+ FREQ =SIMP(statut='o',typ='R',min=1,max=1,
fr="Fréquence autour de laquelle on cherche les fréquences propres"),
- AMOR_REDUIT =SIMP(statut='f',typ='R',),
+ AMOR_REDUIT =SIMP(statut='f',typ='R',max=1,),
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,
+ FREQ =SIMP(statut='o',typ='R',min=2,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"),
),
),
- VERI_MODE =FACT(statut='d',min=0,
+ VERI_MODE =FACT(statut='d',min=0,max=1,
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,
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**',
+ MODE_STAT =FACT(statut='f',min=1,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='**'),
+ 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='**',
+ FORCE_NODALE =FACT(statut='f',min=1,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='**'),
+ 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='**',
+ PSEUDO_MODE =FACT(statut='f',min=1,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='**'),
+ 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",
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
BASE =SIMP(statut='o',typ=mode_meca ),
BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ),
NUME_VITE_FLUI =SIMP(statut='o',typ='I' ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
# ======================================================================
# RESPONSABLE G8BHHXD X.DESROCHES
MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage,
EXCLUS('ROTATION','MODI_BASE'),),
MAILLAGE =SIMP(statut='o',typ=maillage ),
- ORIE_CONTACT =FACT(statut='f',
- GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+ ORIE_CONTACT =FACT(statut='f',min=1,max=1,
+ GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
),
- DEFORME =FACT(statut='f',
+ DEFORME =FACT(statut='f',min=1,max=1,
OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
DEPL =SIMP(statut='o',typ=cham_no_depl_r ),
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='**' ),),
+ GROUP_NO_APPUI = SIMP(statut='o',typ=grno,max='**' ),
+ GROUP_NO_STRU = SIMP(statut='o',typ=grno,max='**' ),),
),
- EQUE_PIQUA =FACT(statut='f',
+ EQUE_PIQUA =FACT(statut='f',min=1,max=1,
GROUP_NO =SIMP(statut='o',typ=grno),
E_BASE =SIMP(statut='o',typ='R' ),
DEXT_BASE =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_2D =FACT(statut='f',min=1,max='**',
+ GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
),
- ORIE_PEAU_3D =FACT(statut='f',max='**',
- GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+ ORIE_PEAU_3D =FACT(statut='f',min=1,max='**',
+ GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
),
- ORIE_NORM_COQUE =FACT(statut='f',max='**',
+ ORIE_NORM_COQUE =FACT(statut='f',min=1,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='**'),
+ GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
VECT_NORM =SIMP(statut='f',typ='R',max=3),
NOEUD =SIMP(statut='f',typ=no),
GROUP_NO =SIMP(statut='f',typ=grno),
b_modele =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)",
MODELE =SIMP(statut='o',typ=modele ),
),
- PLAQ_TUBE =FACT(statut='f',
+ PLAQ_TUBE =FACT(statut='f',min=1,max=1,
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',
+ TUBE_COUDE =FACT(statut='f',min=1,max=1,
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',
+ MODI_MAILLE =FACT(statut='f',min=1,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='**'),
- MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ GROUP_MA_FOND =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_FOND =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_FOND =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_FOND =SIMP(statut='f',typ=no,max='**'),
),
- MODI_BASE =FACT(statut='f',
+ MODI_BASE =FACT(statut='f',min=1,max=1,
VECT_X =SIMP(statut='o',typ='R',min=2,max=3),
VECT_Y =SIMP(statut='f',typ='R',min=2,max=3),
),
- ECHELLE =SIMP(statut='f',typ='R',),
+ ECHELLE =SIMP(statut='f',typ='R',min=1,max=1),
TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3),
- ROTATION =FACT(statut='f',max='**',
+ ROTATION =FACT(statut='f',min=1,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'),),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
PERCEMENT =SIMP(statut='f',typ='R',defaut=1),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE JMBHH01 J.M.PROIX
def modi_repere_prod(RESULTAT,**args):
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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',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='**'),
+
+ INST =SIMP(statut='f',typ='R',max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
LIST_FREQ =SIMP(statut='f',typ=listr8),
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',
+ MODI_CHAM =FACT(statut='o',min=1,max='**',
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ TYPE_CHAM =SIMP(statut='o',typ='TXM', max=1,
into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),),
- NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max=1 ),
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'",
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',
+ DEFI_REPERE =FACT(statut='o',min=1,max=1,
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),
+ ANGL_NAUT =SIMP(statut='f',typ='R',min=1,max=3),
+ ORIGINE =SIMP(statut='f',typ='R',min=2,max=3),
+ AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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='**'),
+ AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
+ SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ),
- MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes",
+ MODE_SIGNE =FACT(statut='f',max=1,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"),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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) ),
+ MATR_RIGI =SIMP(statut='f',typ=(matr_elem_depl_r ,matr_elem_depl_c,
+ matr_elem_temp_r,matr_elem_pres_c),max=100 ),
MODELE =SIMP(statut='f',typ=modele ),
b_modele =BLOC(condition = "MODELE != None",
- CHARGE =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),),
+ CHARGE =SIMP(statut='f',max='**',typ=(char_meca,char_ther,char_acou, ),),
),
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 associés à la méthode multifrontale",
),
INFO =SIMP(statut='f',typ='I',into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
b_modele_gene =BLOC(condition = "MODELE_GENE != None",
STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
),
- BASE =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ),
+ BASE =SIMP(statut='f',typ=(mode_meca,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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ),
NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ),
),
- DEPASSEMENT =FACT(statut='f',max='**',
+ DEPASSEMENT =FACT(statut='f',min=1,max='**',
fr="Loi de dépassement d un seuil pendant une durée donnée",
regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
VALE_MIN =SIMP(statut='f',typ='R' ),
PAS =SIMP(statut='f',typ='R' ),
DUREE =SIMP(statut='f',typ='R',defaut= 1. ),
),
- RAYLEIGH =FACT(statut='f',max='**',
+ RAYLEIGH =FACT(statut='f',min=1,max='**',
fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite",
regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
VALE_MIN =SIMP(statut='f',typ='R' ),
VALE_MAX =SIMP(statut='f',typ='R' ),
PAS =SIMP(statut='f',typ='R' ),
),
- GAUSS =FACT(statut='f',max='**',
+ GAUSS =FACT(statut='f',min=1,max='**',
fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande",
regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
VALE_MIN =SIMP(statut='f',typ='R' ),
VALE_MAX =SIMP(statut='f',typ='R' ),
PAS =SIMP(statut='f',typ='R' ),
),
- VANMARCKE =FACT(statut='f',max='**',
+ VANMARCKE =FACT(statut='f',min=1,max='**',
fr="Probabilité de non dépassement de seuil pendant une durée donnée (analyse sismique)",
regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
VALE_MIN =SIMP(statut='f',typ='R' ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Post traitements",)},
regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
RESU_GENE =SIMP(statut='o',typ=tran_gene ),
- CHOC =FACT(statut='f',max='**',
+ CHOC =FACT(statut='f',min=1,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. ),
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',
+ RELA_EFFO_DEPL =FACT(statut='f',min=1,max=1,
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'),
),
- MASS_INER = FACT(statut='f',max='**',
+ MASS_INER = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
ORIG_INER = SIMP(statut='f',typ='R',min=3,max=3 ),
),
b_mass_iner = BLOC(condition = "( MASS_INER != None )",
MODELE = SIMP(statut='o',typ=modele),
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='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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),
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',),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max=1),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',),
+ INST = SIMP(statut='f',typ='R',max=1),
LIST_INST = SIMP(statut='f',typ=listr8),
- FREQ = SIMP(statut='f',typ='R',),
+ FREQ = SIMP(statut='f',typ='R',max=1),
LIST_FREQ = SIMP(statut='f',typ=listr8),
- 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',),
+ NUME_MODE = SIMP(statut='f',typ='I',max=1),
+ NOEUD_CMP = SIMP(statut='f',typ='TXM',min=2,max=2),
+ NOM_CAS = SIMP(statut='f',typ='TXM',max=1),
),
- ENER_POT = FACT(statut='f',max='**',
+ ENER_POT = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
),
b_ener_pot = BLOC(condition = "( ENER_POT != None )",
fr="calcul de l'énergie potentielle de déformation",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',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='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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),
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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
- FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ FREQ = SIMP(statut='f',typ='R',max='**'),
LIST_FREQ = SIMP(statut='f',typ=listr8),
- 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='**'),
+ NUME_MODE = SIMP(statut='f',typ='I',max='**'),
+ NOEUD_CMP = SIMP(statut='f',typ='TXM',max='**'),
+ NOM_CAS = SIMP(statut='f',typ='TXM',max='**'),
),
- ENER_CIN = FACT(statut='f',max='**',
+ ENER_CIN = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
),
b_ener_cin = BLOC(condition = "( ENER_CIN != None )",
fr="calcul de l'énergie cinétique",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',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='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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),
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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
- FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ FREQ = SIMP(statut='f',typ='R',max='**'),
LIST_FREQ = SIMP(statut='f',typ=listr8),
- 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='**'),
+ NUME_MODE = SIMP(statut='f',typ='I',max='**'),
+ NOEUD_CMP = SIMP(statut='f',typ='TXM',max='**'),
+ NOM_CAS = SIMP(statut='f',typ='TXM',max='**'),
),
- ENER_ELAS = FACT(statut='f',max='**',
+ ENER_ELAS = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
),
b_ener_elas = BLOC(condition = "( ENER_ELAS != None )",
fr="calcul de l'énergie de déformation élastique",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',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='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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),
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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
),
- ENER_TOTALE = FACT(statut='f',max='**',
+ ENER_TOTALE = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
),
b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )",
fr="calcul de l'énergie de déformation totale",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',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='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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),
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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
),
- WEIBULL = FACT(statut='f',max='**',
+ WEIBULL = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
OPTION = SIMP(statut='f',typ='TXM',
into=("SIGM_ELGA","SIGM_ELMOY"),
defaut="SIGM_ELGA"),
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',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='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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),
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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
),
- RICE_TRACEY = FACT(statut='f',max='**',
+ RICE_TRACEY = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
OPTION = SIMP(statut='f',typ='TXM',
into=("SIGM_ELGA","SIGM_ELMOY"),
defaut="SIGM_ELGA"),
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',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='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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),
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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
),
- INDIC_ENER = FACT(statut='f',max='**',
+ INDIC_ENER = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
),
b_indic_ener = BLOC(condition = "( INDIC_ENER != None )",
fr="calcul un indicateur global de perte de proportionnalité du chargement",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',typ=cham_mater),
- CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
),
- INDIC_SEUIL = FACT(statut='f',max='**',
+ INDIC_SEUIL = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
),
b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )",
fr="calcul un indicateur global de perte de proportionnalité du chargement",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',typ=cham_mater),
- CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
),
- CHAR_LIMITE = FACT(statut='f',min=0,
+ CHAR_LIMITE = FACT(statut='f',min=0,max=1,
CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON")
),
b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='o',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='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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='**'),
+ NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST = SIMP(statut='f',typ='R',max='**'),
LIST_INST = SIMP(statut='f',typ=listr8),
),
- CARA_GEOM = FACT(statut='f',max='**',
+ CARA_GEOM = FACT(statut='f',min=1,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='**'),
+ MAILLE = SIMP(statut='f',typ=ma,max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,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),
fr="calcul des caractéristiques géométriques d'un section de poutre",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='f',typ=cham_mater),
- CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
),
- CARA_POUTRE = FACT(statut='f',max='**',
+ CARA_POUTRE = FACT(statut='f',min=1,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='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
+ GROUP_MA_INTE = SIMP(statut='f',typ=grma,max='**'),
CARA_GEOM = SIMP(statut='f',typ=tabl_cara_geom),
LAPL_PHI = SIMP(statut='f',typ=evol_ther),
LAPL_PHI_Y = SIMP(statut='f',typ=evol_ther),
fr="calcul des caractéristiques mécaniques d'un section de poutre",
MODELE = SIMP(statut='o',typ=modele),
CHAM_MATER = SIMP(statut='f',typ=cham_mater),
- CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+ CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),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='**'),
+ AIRE_INTERNE = FACT(statut='f',min=1,max='**',
+ GROUP_MA_BORD = SIMP(statut='o',typ=grma,max='**'),
),
b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )",
fr="calcul de l'aire d'un trou dans un maillage 2D",
MODELE = SIMP(statut='o',typ=modele),
),
- TRAV_EXT = FACT(statut='f',),
+ TRAV_EXT = FACT(statut='f',min=1,max=1),
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) ),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MATER =SIMP(statut='o',typ=mater),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(PRESENT_PRESENT('CORR_KE','MATER'),
PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
PRESENT_PRESENT('DOMMAGE','MATER'),),
- HISTOIRE = FACT(statut='o',
+ HISTOIRE = FACT(statut='o',min=1,max=1,
regles=(UN_PARMI('SIGM','EPSI'),),
SIGM = SIMP(statut='f',typ=(fonction,formule)),
EPSI = SIMP(statut='f',typ=(fonction,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',
+ COEF_MULT = FACT(statut='f',min=1,max=1,
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",
),
b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'",
- HISTOIRE = FACT(statut='o',
+ HISTOIRE = FACT(statut='o',min=1,max=1,
SIGM_XX = SIMP(statut='o',typ=(fonction,formule)),
SIGM_YY = SIMP(statut='o',typ=(fonction,formule)),
SIGM_ZZ = SIMP(statut='o',typ=(fonction,formule)),
),
b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
- HISTOIRE = FACT(statut='o',
+ HISTOIRE = FACT(statut='o',min=1,max=1,
SIGM_XX = SIMP(statut='o',typ=(fonction,formule)),
SIGM_YY = SIMP(statut='o',typ=(fonction,formule)),
SIGM_ZZ = SIMP(statut='o',typ=(fonction,formule)),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Outils métier",)},
TABLE =SIMP(statut='o',typ=tabl_post_rele),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
b_fond_fiss =BLOC (condition="(FOND_FISS!= None)",
MAILLAGE = SIMP(statut='o',typ=maillage),
PRECISION = SIMP(statut='f',typ='R',defaut=0.001),
- 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='**')
+ NOEUD = SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO = SIMP(statut='f',typ=grno,max='**'),
+ SANS_NOEUD = SIMP(statut='f',typ=no,max='**'),
+ SANS_GROUP_NO = SIMP(statut='f',typ=grno,max='**')
),
MATER =SIMP(statut='o',typ=mater,
fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"),
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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
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") ),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- VECT_K1 =SIMP(statut='o',typ='R',max=3,
+ VECT_K1 =SIMP(statut='o',typ='R',max='**',
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 11/03/2003 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
MAILLAGE = SIMP(statut='o',typ=maillage),
MATER_REV = SIMP(statut='o',typ=mater),
EPAIS_REV = SIMP(statut='o',typ='R'),
- FISSURE = FACT(statut='o',
+ FISSURE = FACT(statut='o',min=1,max=1,
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='**',
+ K1D = FACT(statut='o',min=1,max='**',
TABL_MECA_REV = SIMP(statut='o',typ=(tabl_post_rele)),
TABL_MECA_MDB = SIMP(statut='o',typ=(tabl_post_rele)),
TABL_THER = SIMP(statut='o',typ=(tabl_post_rele)),
),
TITRE = SIMP(statut='f',typ='TXM',max='**'),
);
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","VALE_INST") ),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ OPTION =SIMP(statut='o',typ='TXM',max='**',
into=("PM_PB",
"SN",
"FATIGUE_SPMAX",
b_pm_sn =BLOC(condition="(OPTION == 'PM_PB')or(OPTION == 'SN')or(OPTION == 'FATIGUE_SPMAX')or(OPTION == 'FATIGUE_ZH210')",
MATER =SIMP(statut='o',typ=mater ),
MAILLAGE =SIMP(statut='f',typ=maillage),
- SEGMENT =FACT(statut='o',max='**',fr="Segment sur lequel s effectue le depouillement",
+ SEGMENT =FACT(statut='o',min=1,max='**',fr="Segment sur lequel s effectue le depouillement",
regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
EXCLUS('CHEMIN','GROUP_NO'),
EXCLUS('CHEMIN','NOEUD'),),
INTITULE =SIMP(statut='f',typ='TXM' ),
CHEMIN =SIMP(statut='f',typ=(courbe,surface),),
- NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
GROUP_NO =SIMP(statut='f',typ=grno),
b_acce_noeud =BLOC(condition="(NOEUD != None)or(GROUP_NO != None)",
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
),
),
- TRANSITOIRE =FACT(statut='o',max='**',fr="transitoire à dépouiller",
+ TRANSITOIRE =FACT(statut='o',min=1,max='**',fr="transitoire à dépouiller",
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli) ),
RESU_SIGM_THER =SIMP(statut='f',typ=(evol_elas,evol_noli),fr="résultat sous chargement thermique seul" ),
NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1,fr="nombre d occurences réelles de ce transitoire" ),
NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIEF_ELNO_ELGA","SIGM_ELNO_DEPL") ),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8 ),
b_inst =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
MATER =SIMP(statut='o',typ=mater ),
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",
- 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",),
- 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", ),
- MX =SIMP(statut='o',typ='R',fr="moment suivant x", ),
- MY =SIMP(statut='o',typ='R',fr="moment suivant y", ),
- MZ =SIMP(statut='o',typ='R',fr="moment suivant z", ),
+ CHAR_MECA =FACT(statut='o',min=1,max='**',fr="Chargements mécaniques",
+ NUME_CHAR =SIMP(statut='o',typ='I',max=1,fr="numéro du chargement" ),
+ NOM_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nom du chargement" ),
+ TYPE_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
+ FX =SIMP(statut='f',typ='R',max=1,fr="effort suivant x", ),
+ FY =SIMP(statut='f',typ='R',max=1,fr="effort suivant y", ),
+ FZ =SIMP(statut='f',typ='R',max=1,fr="effort suivant z", ),
+ MX =SIMP(statut='o',typ='R',max=1,fr="moment suivant x", ),
+ MY =SIMP(statut='o',typ='R',max=1,fr="moment suivant y", ),
+ MZ =SIMP(statut='o',typ='R',max=1,fr="moment suivant z", ),
),
- RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires",
- TABL_FX =SIMP(statut='f',typ=table,
+ RESU_MECA_UNIT =FACT(statut='o',min=1,max=1,fr="resultats mécaniques unitaires",
+ TABL_FX =SIMP(statut='f',typ=table,max=1,
fr="table relevé des contraintes pour chargement unitaire FX"),
- TABL_FY =SIMP(statut='f',typ=table,
+ TABL_FY =SIMP(statut='f',typ=table,max=1,
fr="table relevé des contraintes pour chargement unitaire FY"),
- TABL_FZ =SIMP(statut='f',typ=table,
+ TABL_FZ =SIMP(statut='f',typ=table,max=1,
fr="table relevé des contraintes pour chargement unitaire FZ"),
- TABL_MX =SIMP(statut='o',typ=table,
+ TABL_MX =SIMP(statut='o',typ=table,max=1,
fr="table relevé des contraintes pour chargement unitaire MX"),
- TABL_MY =SIMP(statut='o',typ=table,
+ TABL_MY =SIMP(statut='o',typ=table,max=1,
fr="table relevé des contraintes pour chargement unitaire MY"),
- TABL_MZ =SIMP(statut='o',typ=table,
+ TABL_MZ =SIMP(statut='o',typ=table,max=1,
fr="table relevé des contraintes pour chargement unitaire MZ"),
- TABL_PRES =SIMP(statut='o',typ=table,
+ TABL_PRES =SIMP(statut='o',typ=table,max=1,
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,
+ RESU_THER =FACT(statut='f',min=1,max='**',fr="resultats thermiques",
+ NUME_RESU_THER =SIMP(statut='o',typ='I',max=1,fr="numéro de la table de résultat thermique" ),
+ TABL_RESU_THER =SIMP(statut='o',typ=table,max=1,
fr="table relevé des contraintes pour chargement thermique"),
),
- SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
+ SITUATION =FACT(statut='o',min=1,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" ),
fr="Ke meca seul ou partition mecanique + thermique" ),
MODELE =SIMP(statut='o',typ=modele),
CARA_ELEM =SIMP(statut='o',typ=cara_elem),
- ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés",
+ ZONE_ANALYSE =FACT(statut='o',min=1,max=1,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- RESU_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques",
+ RESU_MECA =FACT(statut='o',min=1,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",),
+ NUME_CHAR =SIMP(statut='o',typ='I',max=1,fr="numéro du chargement" ),
+ NOM_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nom du chargement" ),
+ TYPE_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
CHAM_GD =SIMP(statut='f',typ=cham_gd),
RESULTAT =SIMP(statut='f',typ=resultat),
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"),),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max=1,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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max=1),
+ INST =SIMP(statut='f',typ='R',max=1),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',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",
+ INDI_SIGM =FACT(statut='o',min=1,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"),
+ C1 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes C1 du RCCM"),
+ K1 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes K1 du RCCM"),
+ C2 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes C2 du RCCM"),
+ K2 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes K2 du RCCM"),
+ C3 =SIMP(statut='f',typ='R',max=1,defaut=0.5,fr="indice de contraintes C3 du RCCM"),
+ K3 =SIMP(statut='f',typ='R',max=1,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='**',
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**',
fr="groupe(s) de mailles ou sont affectés les indices de contraintes"),
- MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',
+ MAILLE =SIMP(statut='f',typ=ma,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,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",
+ RESU_THER =FACT(statut='f',min=1,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,
+ NUME_RESU_THER =SIMP(statut='o',typ='I',max=1,fr="numéro de la table de résultat thermique" ),
+ TABL_RESU_THER =SIMP(statut='o',typ=table,max=1,
fr="table relevé des températures sur la section"),
- TABL_MOYE_THER =SIMP(statut='o',typ=table,
+ TABL_MOYE_THER =SIMP(statut='o',typ=table,max=1,
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
),
),
- SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
+ SITUATION =FACT(statut='o',min=1,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" ),
),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# ======================================================================
# CONFIGURATION MANAGEMENT OF EDF VERSION
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE G8BHHXD X.DESROCHES
POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-e",reentrant='n',
UIinfo={"groupes":("Post traitements",)},
- ACTION =FACT(statut='o',max='**',
+ ACTION =FACT(statut='o',min=1,max='**',
regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
EXCLUS('CHEMIN','GROUP_NO'),
EXCLUS('CHEMIN','NOEUD'),
UN_PARMI('RESULTAT','CHAM_GD'),
UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'),
PRESENT_PRESENT('TRAC_DIR','DIRECTION'),
+ PRESENT_PRESENT('TRAC_DIRECTION','DIRECTION'),
ENSEMBLE('MOMENT','POINT'),
PRESENT_PRESENT('MOMENT','RESULTANTE'),
+ PRESENT_ABSENT('TOUT_CMP','TRAC_DIRECTION','TRAC_NORMALE'),
PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'),
- EXCLUS('TRAC_DIR','TRAC_NOR'),
PRESENT_PRESENT('ORIGINE','AXE_Z'),),
INTITULE =SIMP(statut='o',typ='TXM'),
CHEMIN =SIMP(statut='f',typ=(courbe,surface) ),
+ NOEUD =SIMP(statut='f',typ=no,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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")),
CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_no_var2_r,
cham_elem_sief_r,cham_elem_epsi_r,cham_elem_flux_r,cham_elem_crit_r,
b_sensibilite =BLOC(condition="RESULTAT != None",
fr="Définition des paramètres de sensibilité",
ang="Definition of sensitivity parameters",
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters"),),
'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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_MODE =SIMP(statut='f',typ='I',max='**'),
LIST_MODE =SIMP(statut='f',typ=listis),
- 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='**'),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'),
+ NOM_CAS =SIMP(statut='f',typ='TXM',max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
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='**'),
+ TRAC_DIRECTION =SIMP(statut='f',typ='TXM',into=("OUI",)),
+ TRAC_NORMALE =SIMP(statut='f',typ='TXM',into=("OUI",)),
VECT_Y =SIMP(statut='f',typ='R',max='**'),
MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
- OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE"),validators=NoRepeat(),max=2),
+ OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE"),max=2),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr=" ",docu="U4.PS.10-a",reentrant='n',
UIinfo={"groupes":("Outils métier",)},
MATER =SIMP(statut='o',typ=(mater) ),
- DEF_EQUI =FACT(statut='f',
- METHODE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="UTO_2_3",
+ DEF_EQUI =FACT(statut='f',min=1,max=1,
+ METHODE =SIMP(statut='f',typ='TXM',max='**',defaut="UTO_2_3",
into=("UTO_2_3",) ),
EPAIS =SIMP(statut='o',typ='R'),
LONG_FISS =SIMP(statut='o',typ='R'),
TEMP_ANALYSE =SIMP(statut='f',typ='R'),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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',
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
TABL_USURE =SIMP(statut='f',typ=tabl_post_usur),
INST_INIT =SIMP(statut='f',typ='R'),
),
RESU_GENE =SIMP(statut='f',typ=tran_gene),
- NOEUD =SIMP(statut='f',typ=no,),
+ NOEUD =SIMP(statut='f',typ=no,max=1),
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 ),
regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'),
EXCLUS('MATER_USURE','OBSTACLE'),
EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',
+ MOBILE =FACT(statut='f',min=1,max=1,
COEF_USURE =SIMP(statut='o',typ='R'),
),
- OBSTACLE =FACT(statut='f',
+ OBSTACLE =FACT(statut='f',min=1,max=1,
COEF_USURE =SIMP(statut='o',typ='R'),
),
- SECTEUR =FACT(statut='f',max='**',
+ SECTEUR =FACT(statut='f',min=1,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")),
regles=(UN_PARMI('MOBILE','MATER_USURE'),
EXCLUS('MATER_USURE','OBSTACLE'),
EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',
+ MOBILE =FACT(statut='f',min=1,max=1,
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',
+ OBSTACLE =FACT(statut='f',min=1,max=1,
COEF_FNOR =SIMP(statut='f',typ='R' ),
COEF_VTAN =SIMP(statut='f',typ='R' ),
COEF_USURE =SIMP(statut='o',typ='R'),
regles=(UN_PARMI('MOBILE','MATER_USURE'),
EXCLUS('MATER_USURE','OBSTACLE'),
EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',
+ MOBILE =FACT(statut='f',min=1,max=1,
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',
+ OBSTACLE =FACT(statut='f',min=1,max=1,
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),
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='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 11/03/2003 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Donne l'état adapté ou accommodé d'une structure sous chargement cyclique élastique affine ou non",
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- EXCIT =FACT(statut='o',max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
CHARGE =SIMP(statut='o',typ=char_meca),
FONC_MULT =SIMP(statut='f',typ=(fonction,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='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
),
TEMP_ZAC =SIMP(statut='f',typ='R',defaut=0.0E+0),
EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
) ;
-
-#& MODIF COMMANDE DATE 06/09/2003 AUTEUR D6BHHJP J.P.LEFEBVRE
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.11.03-g",sd_prod = ops.POURSUITE,
UIinfo={"groupes":("Gestion du travail",)},
op_init = ops.POURSUITE_context,fichier_ini = 1,
- HDF =FACT(statut='f',min=1,max=1,
- FICHIER =SIMP(fr="nom du fichier hdf associe",statut='o',typ='TXM'),
- ),
PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
into=("OUI","NON"),defaut="OUI"),
BASE =FACT(fr="définition des parmètres associés aux bases JEVEUX",
UNITE =SIMP(statut='f',typ='I',defaut=15),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UNITE_ASTER =SIMP(statut='f',typ='I',defaut=21),
MODELE =SIMP(statut='o',typ=modele),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19),
UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19),
UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Nommer le fichier de commandes secondaires",
NOM =SIMP(statut='f',typ='TXM',defaut=" "),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_temp_r,cham_no_pres_c ) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
if AsType(CHAM_NO_REFE) == cham_no_flux_r : return cham_no_flux_r
raise AsException("type de concept resultat non prevu")
-PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,docu="U4.72.05-d",reentrant='f',
+PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,docu="U4.72.05-d",reentrant='n',
UIinfo={"groupes":("Résultats et champs",)},
fr="Projection d'un champ aux noeuds sur les noeuds d'un autre maillage",
#
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
EXCLUS('TOUT_CHAM','NOM_CHAM',), ),
RESULTAT =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,evol_char) ),
- 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),
MODELE_2 =SIMP(statut='o',typ=modele),
TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ INST =SIMP(statut='f',typ='R',max='**' ),
LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ FREQ =SIMP(statut='f',typ='R',max='**' ),
LIST_FREQ =SIMP(statut='f',typ=listr8),
),
- VIS_A_VIS =FACT(statut='f',max='**',
+ VIS_A_VIS =FACT(statut='f',min=1,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='**'),
+ GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_1 =SIMP(statut='f',typ=no,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='**'),
+ GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
+ GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.63.12-f",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 ) ),
+ BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene ) ),
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Résultats et champs",)},
fr="Calcul de coordonnees generalisees de mesure experimentale relatives a une base de projection",
- MODELE_CALCUL =FACT(statut='o',
+ MODELE_CALCUL =FACT(statut='o',min=1,max=1,
MODELE =SIMP(statut='o',typ=(modele) ),
BASE =SIMP(statut='o',typ=(mode_meca,base_modale,) ),
),
- MODELE_MESURE =FACT(statut='o',
+ MODELE_MESURE =FACT(statut='o',min=1,max=1,
MODELE =SIMP(statut='o',typ=(modele) ),
MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,) ),
NOM_PARA =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST","FREQ","DEFORMEE",),),
NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ),
),
- CORR_MANU =FACT(statut='f',max='**',
+ CORR_MANU =FACT(statut='f',min=1,max='**',
regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),),
NOEU_CALCUL =SIMP(statut='f',typ=no),
NOEU_MESURE =SIMP(statut='f',typ=no),
),
- RESOLUTION =FACT(statut='f',
+ RESOLUTION =FACT(statut='f',min=1,max=1,
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 =SIMP(statut='f',typ='R',max='**',defaut=0. ),
COEF_PONDER_F =SIMP(statut='f',typ=(fonction,formule),max='**' ),
),
),
);
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Projection d un ou plusieurs spectres de turbulenc sur un ensemble de bases modales ",
regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),
ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),),
- SPEC_TURB =SIMP(statut='o',typ=spectre,validators=NoRepeat(),max='**' ),
+ SPEC_TURB =SIMP(statut='o',typ=spectre,max='**' ),
BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ),
MODE_MECA =SIMP(statut='f',typ=mode_meca ),
CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ),
ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
docu="U4.63.13-f",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 ) ),
+ BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene ) ),
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_depl_r ),
VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
fr=" ",docu="U4.82.06-b",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='**',
+ LIST_PARA =SIMP(statut='o',typ='TXM',max='**',into=("SIGM_REFE","M",) ),
+ RESU =FACT(statut='o',min=1,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) ),
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='**' ),
+ LIST_INST_RUPT =SIMP(statut='o',typ='R',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='**' ),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
+ INST =SIMP(statut='f',typ='R',max='**' ),
LIST_INST =SIMP(statut='f',typ=(listr8) ),
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 =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,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",) ),
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/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 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.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE MCOURTOI M.COURTOIS
def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None,
CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_elem_sief_r,
cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_r,
- cham_elem_pres_r,) ),
+ cham_elem_pres_r,cham_elem_meta_r ) ),
RESULTAT =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ),
RESU_GENE =SIMP(statut='f',typ=tran_gene),
# concept table à créer
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_ORDRE =SIMP(statut='f',typ='I',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") ),
TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ),
),
- FILTRE =FACT(statut='f',max='**',
+ 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",
EXCLUS('GROUP_NO','NOEUD'),
EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),
UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
- NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
+ NOM_CHAM =SIMP(statut='f',typ='TXM' ),
NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis ),
TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8 ),
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") ),
+ INTERP_NUME =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN") ),
),
NOM_CMP =SIMP(statut='f',typ='TXM' ),
# regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),),
NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
LIST_ORDRE =SIMP(statut='f',typ=listis ),
TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
LIST_INST =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ FREQ =SIMP(statut='f',typ='R',max='**'),
LIST_FREQ =SIMP(statut='f',typ=listr8 ),
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") ),
+ INTERP_NUME =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN") ),
),
b_local_cham = BLOC ( condition = "NOM_CHAM!='PTEM'", fr="Opérandes de localisation du champ",
regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
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_ORDRE =SIMP(statut='f',typ='I',max='**' ),
TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ INST =SIMP(statut='f',typ='R',max='**' ),
LIST_INST =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ FREQ =SIMP(statut='f',typ='R',max='**' ),
LIST_FREQ =SIMP(statut='f',typ=listr8 ),
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",
+ NOM_CHAM =SIMP(statut='f',typ='TXM',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_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction,formule)),
- DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ),
+ DIRECTION =SIMP(statut='f',typ='R',max='**' ),
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),
BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ),
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='**' ),
+ BANDE =SIMP(statut='f',typ='R',min=2,max=2 ),
+ NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ),
- 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",
+ NOEUD =SIMP(statut='o',typ=no,max='**'),
+ NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ NOM_CHAM =SIMP(statut='o',typ='TXM',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='**'),
+ EXCIT =FACT(statut='f',max=1,
+ 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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# 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.
# ======================================================================
-RETOUR=MACRO(nom="RETOUR",op= ops.build_retour,docu="U4.13.02-f",
+RETOUR=MACRO(nom="RETOUR",op= -2,docu="U4.13.02-f",
UIinfo={"groupes":("Gestion du travail",)},
fr="Retour au fichier de commandes appelant",
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- EXCIT =FACT(statut='o',max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
CHARGE =SIMP(statut='o',typ=char_meca),
FONC_MULT =SIMP(statut='f',typ=(fonction,formule)),
TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
IRRA =SIMP(statut='f',typ=evol_varc),
),
COMP_INCR =C_COMP_INCR(),
- COMP_ELAS =FACT(statut='f',max='**',
+ COMP_ELAS =FACT(statut='f',min=1,max='**',
RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS",
into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
"ELAS_POUTRE_GR","CABLE")),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
- ETAT_INIT =FACT(statut='f',
+ ETAT_INIT =FACT(statut='f',min=1,max=1,
regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
EXCLUS('EVOL_NOLI','DEPL',),
EXCLUS('EVOL_NOLI','SIGM',),
NUME_DIDI =SIMP(statut='f',typ='I'),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),
- INCREMENT =FACT(statut='o',
+ INCREMENT =FACT(statut='o',min=1,max=1,
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8),
NOM_CMP =SIMP(statut='f',typ='TXM',),
VALE =SIMP(statut='f',typ='R'),
),
- NEWTON =FACT(statut='d',
+ NEWTON =FACT(statut='d',min=1,max=1,
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='f',
+ RECH_LINEAIRE =FACT(statut='f',min=1,max=1,
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),
RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1),
RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2),
),
- PILOTAGE =FACT(statut='f',
+ PILOTAGE =FACT(statut='f',min=1,max=1,
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),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
),
- CONVERGENCE =FACT(statut='d',
+ CONVERGENCE =FACT(statut='d',min=1,max=1,
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'),
),
PARM_THETA =SIMP(statut='f',typ='R'
,defaut= 1. ),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
- ARCHIVAGE =FACT(statut='f',
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
LIST_INST =SIMP(statut='f',typ=(listr8) ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ INST =SIMP(statut='f',typ='R',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",
+ CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",
"VARI_NON_LOCAL","LANL_ELGA")),
),
- OBSERVATION =FACT(statut='f',max='**',
+ OBSERVATION =FACT(statut='f',min=1,max='**',
regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
PRESENT_PRESENT('MAILLE','POINT'),),
- NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA",
"VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU")),
NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ),
LIST_ARCH =SIMP(statut='f',typ=listis),
LIST_INST =SIMP(statut='f',typ=listr8),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ INST =SIMP(statut='f',typ='R',max='**' ),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
PAS_OBSE =SIMP(statut='f',typ='I'),
- NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
+ POINT =SIMP(statut='f',typ='I',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"),
- SOLV_NON_LOCAL =FACT(statut='f',
+ SOLV_NON_LOCAL =FACT(statut='f',min=1,max=1,
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") ),
),
EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
),
- LAGR_NON_LOCAL =FACT(statut='f',
+ LAGR_NON_LOCAL =FACT(statut='f',max=1,
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'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Impression",)},
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- VALEUR =FACT(statut='f',max='**',
+ VALEUR =FACT(statut='f',min=1,max='**',
fr="Tester la valeur d une fonction ou d une nappe",
regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),),
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
- NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2),
- VALE_PARA =SIMP(statut='o',typ='R' ,validators=NoRepeat(),max=2),
+ NOM_PARA =SIMP(statut='f',typ='TXM',max=2),
+ VALE_PARA =SIMP(statut='o',typ='R',max=2),
VALE_REFE =SIMP(statut='f',typ='R' ),
VALE_REFE_C =SIMP(statut='f',typ='C' ),
CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
VERSION =SIMP(statut='f',typ='TXM' ),
),
),
- ATTRIBUT =FACT(statut='f',max='**',
+ ATTRIBUT =FACT(statut='f',min=1,max='**',
fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
FONCTION =SIMP(statut='o',typ=(fonction,formule) ),
PARA =SIMP(statut='f',typ='R' ),
VERSION =SIMP(statut='f',typ='TXM' ),
),
),
- TABL_INTSP =FACT(statut='f',max='**',
+ TABL_INTSP =FACT(statut='f',min=1,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=tabl_intsp ),
),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# RESPONSABLE VABHHTS J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','OBJET')),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- CHAM_NO =FACT(statut='f',max='**',
+ CHAM_NO =FACT(statut='f',min=1,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),
- NOEUD =SIMP(statut='f',typ=no ),
- GROUP_NO =SIMP(statut='f',typ=grno ),
- NOM_CMP =SIMP(statut='f',typ='TXM'),
+ NOEUD =SIMP(statut='f',typ=no,max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
+ 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'),
VALE_I =SIMP(statut='f',typ='I'),
VERSION =SIMP(statut='f',typ='TXM'),
),
- CHAM_ELEM =FACT(statut='f',max='**',
+ CHAM_ELEM =FACT(statut='f',min=1,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),
+ CHAM_GD =SIMP(statut='o',typ=cham_elem),# CO()
+ MAILLE =SIMP(statut='f',typ=ma),# CO()
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),
+ NOEUD =SIMP(statut='f',typ=no),# CO()
+ GROUP_NO =SIMP(statut='f',typ=grno),# CO()
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' ),
VERSION =SIMP(statut='f',typ='TXM' ),
),
- RESU =FACT(statut='f',max='**',
+ RESU =FACT(statut='f',min=1,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'),
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='**'),
+ NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**' ),
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_CHAM =SIMP(statut='f',typ='TXM'),
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='**'),
+ 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")),
VERSION =SIMP(statut='f',typ='TXM' ),
),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Impression",)},
regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),),
FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
-# concept table à tester
+# concept table à créer
TABLE =SIMP(statut='o',typ=table),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),
- fr="Paramètre de sensibilité.",
- ang="Sensitivity parameter"),
- FILTRE =FACT(statut='f',max='**',
+ 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",
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 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=modele),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- EXCIT =FACT(statut='o',max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
FONC_MULT =SIMP(statut='f',typ=(fonction,formule)),
),
- INCREMENT =FACT(statut='f',
+ INCREMENT =FACT(statut='f',min=1,max=1,
LIST_INST =SIMP(statut='o',typ=listr8 ),
NUME_INIT =SIMP(statut='f',typ='I'),
NUME_FIN =SIMP(statut='f',typ='I'),
),
- TEMP_INIT =FACT(statut='f',
+ TEMP_INIT =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
EVOL_THER =SIMP(statut='f',typ=evol_ther),
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='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters",
),
- SENS_INIT =FACT(statut='f',
+ SENS_INIT =FACT(statut='f',min=1,max=1,
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',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
),
),
PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57),
- ARCHIVAGE =FACT(statut='f',
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),),
LIST_ARCH =SIMP(statut='f',typ=listis),
LIST_INST =SIMP(statut='f',typ=listr8),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',max='**'),
PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
into=("RELATIF","ABSOLU")),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2)),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=(modele) ),
CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ),
CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ),
- COMP_THER_NL =FACT(statut='d',max='**',
+ COMP_THER_NL =FACT(statut='d',min=1,max='**',
RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL",
into=("THER_NL",
"THER_HYDR",
) ),
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='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,max='**'),
),
EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther),
- EXCIT =FACT(statut='o',max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
CHARGE =SIMP(statut='o',typ=char_ther),
FONC_MULT =SIMP(statut='f',typ=(fonction,formule)),
),
- INCREMENT =FACT(statut='f',
+ INCREMENT =FACT(statut='f',min=1,max=1,
LIST_INST =SIMP(statut='o',typ=listr8),
NUME_INIT =SIMP(statut='f',typ='I'),
NUME_FIN =SIMP(statut='f',typ='I'),
),
- TEMP_INIT =FACT(statut='f',
+ TEMP_INIT =FACT(statut='f',min=1,max=1,
regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)),
EVOL_THER =SIMP(statut='f',typ=evol_ther),
VALE =SIMP(statut='f',typ='R'),
NUME_INIT =SIMP(statut='f',typ='I'),
),
- NEWTON =FACT(statut='d',
+ NEWTON =FACT(statut='d',min=1,max=1,
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',
+ CONVERGENCE =FACT(statut='d',min=1,max=1,
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='**',
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters",
),
- SOLVEUR =FACT(statut='d',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
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_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 ),
+ 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 ),
+ 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",) ),
),
PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ),
- ARCHIVAGE =FACT(statut='f',
+ ARCHIVAGE =FACT(statut='f',min=1,max=1,
regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),),
LIST_ARCH =SIMP(statut='f',typ=(listis) ),
LIST_INST =SIMP(statut='f',typ=(listr8) ),
- INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',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,
+ OPTION =SIMP(statut='f',typ='TXM',max='**',
into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-
-#& MODIF COMMANDE DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MODELE =SIMP(statut='o',typ=modele ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CARA_ELEM =SIMP(statut='c',typ=cara_elem ),
- EXCIT =FACT(statut='o',max='**',
+ EXCIT =FACT(statut='o',min=1,max='**',
CHARGE =SIMP(statut='o',typ=char_ther ),
FONC_MULT =SIMP(statut='c',typ=(fonction,formule) ),
),
- TEMP_INIT =FACT(statut='f',
+ TEMP_INIT =FACT(statut='f',min=1,max=1,
EVOL_THER =SIMP(statut='f',typ=evol_ther ),
NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ),
),
- CONVERGENCE =FACT(statut='d',
+ CONVERGENCE =FACT(statut='d',min=1,max=1,
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',
+ SOLVEUR =FACT(statut='d',min=1,max=1,
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") ),
-
-#@ MODIF ops Cata DATE 06/09/2003 AUTEUR D6BHHJP J.P.LEFEBVRE
+#@ MODIF ops Cata DATE 07/04/2003 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
"""
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")
-
self.jdc.set_par_lot(PAR_LOT)
if CODE!=None :
self.jdc.fico=CODE['NOM']
"""
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
self.definition.op=None
return ier
-def POURSUITE(self,PAR_LOT,CODE,HDF,**args):
+def POURSUITE(self,PAR_LOT,CODE,**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")
-
self.jdc.set_par_lot(PAR_LOT)
if CODE!=None :
self.jdc.fico=CODE['NOM']
else:
self.jdc.fico=None
- if (self.codex and os.path.isfile("glob.1")) or HDF!=None:
+ if self.codex and os.path.isfile("glob.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
# 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.jdc.UserError=self.codex.error
return 0
def INCLUDE(self,UNITE,**args):
# 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)
+ 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 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)
+ 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,formule):
+ cr=self.parent.report()
+ cr.fatal("la destruction d'une FORMULE est impossible" )
+ 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,UNITE_LONGUEUR):
"""
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):
"""
# 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()
# 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_retour(self,**args):
- """
- Fonction ops de la macro RETOUR 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 RETOUR (incrément=None)
- self.set_icmd(None)
- icmd=0
- #ier=self.codex.opsexe(self,icmd,-1,2)
+ ier=self.codex.opsexe(self,icmd,-1,3)
return ier
--- /dev/null
+
+
+1- Installation standard
+
+Pour installer EFICAS a partir de la distribution : <nom_distrib>.tgz
+faire :
+ tar xzvf <nom_distrib>.tgz
+
+ce qui a pour effet de créer un répertoire de nom <nom_distrib>.
+
+Pour modifier l'emplacement de la doc, le chemin d'accès à Acrobat Reader,
+les catalogues, il faut modifier le fichier editeur.ini dans le répertoire Aster.
+
+
+ATTENTION :
+Si Eficas est installé dans un répertoire particulier d'administration
+dans lequel les utilisateurs n'ont pas le droit d'écriture, il faut que
+l'administrateur lance Eficas pour générer
+les fichiers et catalogues compilés .pyc
+
+
+
+2- Utilisation d'Eficas
+
+Pour utiliser Eficas, aller dans le répertoire Aster et faire :
+ python eficas_aster.py
+
+
+
+3- Installation avec un noyau pré-installé
+
+Aller dans le répertoire Aster du répertoire Eficas
+et modifier le fichier prefs.py comme suit :
+Mettre dans la variable CODE_PATH le chemin absolu vers
+le répertoire contenant les deux répertoires Noyau et Validation que vous voulez
+utiliser à la place de ceux fournis dans la livraison d'Eficas
+
+Pour changer les catalogues, modifier le fichier editeur.ini dans le répertoire Aster
+
+
--- /dev/null
+ ======================================================================
+ THIS PROGRAM IS FREE SOFTWARE. YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+ IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+ THE FREE SOFTWARE FOUNDATION, EITHER VERSION 2 OF THE LICENSE, AND
+ ANY LATER VERSION.
+ THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+ WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ SEE THE GNU GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+ ======================================================================
+ TRADUCTION EDF ( POUR INFORMATION )
+ ======================================================================
+ CE PROGRAMME EST UN LOGICIEL LIBRE. VOUS POUVEZ LE DIFFUSER ET/OU LE
+ MODIFIER SELON LES DISPOSITIONS DE LA LICENCE GRAND PUBLIC GNU (GPL)
+ TELLE QU'ELLE EST PUBLIEE PAR LA FREE SOFTWARE FOUNDATION, VERSION 2
+ DE LA LICENCE ET TOUTE VERSION ULTERIEURE.
+ CE PROGRAMME EST DIFFUSE AVEC L'ESPOIR QU'IL SERA UTILE, MAIS SANS
+ GARANTIE, SANS MEME LA GARANTIE IMPLICITE DE QUALIFICATION DE MISE SUR
+ LE MARCHE OU D'ADAPTATION A UNE UTILISATION PARTICULIERE.
+ VOIR POUR DE PLUS AMPLES DETAILS LA LICENCE GRAND PUBLIC GNU (GPL)
+ ======================================================================
--- /dev/null
+Verion 1.4 (5/2003):
+ Mise en synchronisation avec la version STA7 de Code_Aster de mai 2003 (7.1)
+ Possibilité de donner un nom de fichier en argument lors de l'ouverture d'EFICAS (EO2003-060)
+ Correction d'une anomalie dans la fonctionnalité de commentarisation des commandes (AO2003-041)
+ Ajout du bouton de documentation dans le pannneau FORMULE (AO2002-447)
+ Selection automatique du concept quand il n'en existe qu'un (EO2002-162)
+
+Verion 1.3 (11/2002):
+ Mise en synchronisation avec la version STA6 de Code_Aster de septembre 2002
+ Ajout de la possibilité de visualiser les INCLUDE, INCLUDE_MATERIAU et POURSUITE (popup
+ sur click droit de la souris sur l'icone de la commande)
+ Possibilité d'afficher la liste des commandes par groupe (menu option->affichage commandes)
+ Reprise profonde du mécanisme de gestion des fichiers inclus (voir menus d'AIDE pour plus de détails)
+ Corrections diverses
+
+Version 1.2 (5/2002):
+ Reconception de la version 1.1 : décomposition en packages Python
+ Mise en synchronisation avec la version STA6 de Code_Aster de fevrier 2002
--- /dev/null
+
+Pour installer EFICAS voir dans le fichier INSTALL
--- /dev/null
+Ce repertoire contient quelques tests d'Eficas pour Aster.
+
+Les fichiers tests doivent etre lisibles par Eficas sans probleme.
+Le repertoire Recette contient le cas de recette d'eficas_aster.
+On doit pouvoir le relire tel que et le reconstruire de zero (fichier
+normal et poursuite).
+
+Le test torsion.comm est un test pour format AsterV5
--- /dev/null
+DEPL2 = FORMULE(REEL="""(REEL:INST) =
+SIN(OMEGAA*INST)/(OMEGAA**2) """)
+DEPLACE2=CALC_FONC_INTERP( FONCTION=DEPL2,
+ LIST_PARA=L_INST,
+ PROL_DROITE='LINEAIRE',
+ PROL_GAUCHE='LINEAIRE',
+ NOM_PARA='INST',
+ 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)
+ )
+
+
+RETOUR()
--- /dev/null
+POURSUITE(CODE=_F( NOM = 'EFICA01A'))
+
+
+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 = 2.88E7,
+ 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'
+ )
+
+RESUR1=REST_BASE_PHYS( RESU_GENE=TRAN_GE1,
+ LIST_INST=LISTIMP,
+ INTERPOL='LIN',
+ NOM_CHAM='DEPL',
+# MULT_APPUI='NON'
+ )
+
+
+NO2_DXA=RECU_FONCTION( NOEUD='NO2', NOM_CMP='DX', NOM_CHAM='DEPL',
+ RESULTAT=RESUA1,
+ LIST_INST=LISTIMP, INTERPOL='LIN' )
+
+NO2_DX_A=RECU_FONCTION( NOEUD='NO2', NOM_CMP='DX', NOM_CHAM='DEPL',
+ RESU_GENE=TRAN_GE2,
+ MULT_APPUI='OUI', INTERP_NUME='LIN',
+ LIST_INST=LISTIMP, INTERPOL='LIN' )
+
+DIFF=CALC_FONCTION(COMB=(
+ _F( FONCTION = NO2_DX_A, COEF = 1.),
+ _F( FONCTION = NO2_DXA, COEF = -1.))
+ )
+
+TEST_FONCTION(VALEUR=(
+ _F( FONCTION = DIFF, VALE_PARA = 0.10, VALE_REFE = 0.,
+ CRITERE = 'ABSOLU', PRECISION = 3.E-5),
+ _F( FONCTION = DIFF, VALE_PARA = 0.30, VALE_REFE = 0.,
+ CRITERE = 'ABSOLU', PRECISION = 3.E-5),
+ _F( FONCTION = DIFF, VALE_PARA = 0.50, VALE_REFE = 0.,
+ CRITERE = 'ABSOLU', PRECISION = 3.E-5),
+ _F( FONCTION = DIFF, VALE_PARA = 0.70, VALE_REFE = 0.,
+ CRITERE = 'ABSOLU', PRECISION = 3.E-5),
+ _F( FONCTION = DIFF, VALE_PARA = 1.00, VALE_REFE = 0.,
+ CRITERE = 'ABSOLU', PRECISION = 3.E-5))
+ )
+
+
+FIN()
--- /dev/null
+# MODIF DATE 16/01/2002 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
+# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
+# REDISTRIBUTION OF THIS FILE.
+# ======================================================================
+# 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()
+
+MAILLAGE=LIRE_MAILLAGE( )
+
+MAILLA2=LIRE_MAILLAGE( UNITE=19 )
+
+MODELE=AFFE_MODELE( MAILLAGE=MAILLAGE,
+ AFFE=(
+ _F( PHENOMENE = 'MECANIQUE', MODELISATION = 'DIS_T',
+ GROUP_MA = 'RESSORT'),
+ _F( PHENOMENE = 'MECANIQUE', MODELISATION = 'DIS_T',
+ GROUP_NO = 'MASSES') )
+ )
+
+BICHOC=AFFE_MODELE( MAILLAGE=MAILLA2,
+ AFFE=(
+ _F( PHENOMENE = 'MECANIQUE', MODELISATION = 'DIS_T',
+ GROUP_MA = 'RESSORTS'),
+ _F( PHENOMENE = 'MECANIQUE', MODELISATION = 'DIS_T',
+ GROUP_NO = ( 'MASSES1', 'MASSES2',)))
+ )
+
+VAL = 98696.0
+
+CARA_ELE=AFFE_CARA_ELEM( MODELE=MODELE,
+ DISCRET=(
+ _F( CARA = 'K_T_D_L', REPERE = 'GLOBAL', GROUP_MA = 'RESSORT',
+ VALE = (VAL, 0., 0., )),
+ _F( CARA = 'M_T_D_N', GROUP_NO = 'MASSES', VALE = 25.0))
+ )
+
+CARA_BIC=AFFE_CARA_ELEM( MODELE=BICHOC,
+ DISCRET=(
+ _F( CARA = 'K_T_D_L', REPERE = 'GLOBAL', GROUP_MA = 'RESSORTS',
+ VALE = (VAL, 0., 0., )),
+ _F( CARA = 'M_T_D_N', GROUP_NO = 'MASSES1', VALE = 25.0),
+ _F( CARA = 'M_T_D_N', GROUP_NO = 'MASSES2', VALE = 25.0))
+ )
+
+
+CON_LIM=AFFE_CHAR_MECA( MODELE=MODELE,DDL_IMPO=(
+ _F( GROUP_NO = 'ENCASTRE', DX = 0., DY = 0., DZ = 0.),
+ _F( GROUP_NO = 'MASSES', DY = 0., DZ = 0.))
+ )
+
+CL_BICHO=AFFE_CHAR_MECA( MODELE=BICHOC,DDL_IMPO=(
+ _F( GROUP_NO = 'ENCBICHO', DX = 0., DY = 0., DZ = 0.),
+ _F( GROUP_NO = ( 'MASSES1', 'MASSES2',), DY = 0., DZ = 0.))
+ )
+
+MACRO_MATR_ASSE( MODELE=MODELE,
+ CHARGE=CON_LIM,
+ CARA_ELEM=CARA_ELE,
+ 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,
+ CHARGE=CL_BICHO,
+ CARA_ELEM=CARA_BIC,
+ 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., 10., ))
+ )
+
+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.,
+ INTERVALLE=_F( JUSQU_A = 1., PAS = 0.0001) )
+
+OMEGAA=DEFI_VALEUR( R8=EVAL("""2.*PI*10.""") )
+
+ACCE1 = FORMULE(REEL="""(REEL:INST) = SIN(OMEGAA*INST) """)
+ACCELER1=CALC_FONC_INTERP( FONCTION=ACCE1, LIST_PARA=L_INST,
+ PROL_DROITE='LINEAIRE',
+ PROL_GAUCHE='LINEAIRE',
+ NOM_PARA='INST',
+ NOM_RESU='ACCE' )
+
+ACCE2 = FORMULE(REEL="""(REEL:INST) =- SIN(OMEGAA*INST) """)
+ACCELER2=CALC_FONC_INTERP( FONCTION=ACCE2, LIST_PARA=L_INST,
+ PROL_DROITE='LINEAIRE',
+ PROL_GAUCHE='LINEAIRE',
+ NOM_PARA='INST',
+ NOM_RESU='ACCE' )
+
+VITE1 = FORMULE(REEL="""(REEL:INST) =-COS(OMEGAA*INST)/OMEGAA """)
+VITESSE1=CALC_FONC_INTERP( FONCTION=VITE1, LIST_PARA=L_INST,
+ PROL_DROITE='LINEAIRE',
+ PROL_GAUCHE='LINEAIRE',
+ NOM_PARA='INST',
+ NOM_RESU='VITE' )
+
+DEPL1 = FORMULE(REEL="""(REEL:INST) =-SIN(OMEGAA*INST)/(OMEGAA**2) """)
+DEPLACE1=CALC_FONC_INTERP( FONCTION=DEPL1, LIST_PARA=L_INST,
+ PROL_DROITE='LINEAIRE',
+ PROL_GAUCHE='LINEAIRE',
+ NOM_PARA='INST',
+ NOM_RESU='DEPL' )
+
+VITE2 = FORMULE(REEL="""(REEL:INST) =COS(OMEGAA*INST)/OMEGAA """)
+VITESSE2=CALC_FONC_INTERP( FONCTION=VITE2, LIST_PARA=L_INST,
+ PROL_DROITE='LINEAIRE',
+ PROL_GAUCHE='LINEAIRE',
+ NOM_PARA='INST',
+ NOM_RESU='VITE' )
+
+INCLUDE( UNITE=11, INFO=1 )
+
+MUR=DEFI_OBSTACLE( TYPE='PLAN_Z' )
+
+TRAN_GE1=DYNA_TRAN_MODAL( MASS_GENE=MASS_GEN, RIGI_GENE=RIGI_GEN,
+ METHODE='EULER',
+ AMOR_REDUIT=0.07,
+ MODE_STAT=MODE_STA,
+ EXCIT=_F(
+ VECT_GENE = VECT_X,
+ ACCE = ACCELER1,
+ VITE = VITESSE1,
+ DEPL = DEPLACE1,
+ MULT_APPUI = 'OUI',
+ DIRECTION = ( 1., 0., 0.,),
+ NOEUD = 'NO1'),
+ CHOC=_F( GROUP_NO_1 = 'MASSES',
+ OBSTACLE = MUR,
+ INTITULE = 'NO2/MUR',
+ ORIG_OBST = ( -1., 0., 0., ),
+ NORM_OBST = ( 0., 0., 1., ),
+ JEU = 1.1005,
+ RIGI_NOR = 5.76E7,
+ AMOR_NOR = 0.,
+ RIGI_TAN = 0.,
+ COULOMB = 0.0),
+ INCREMENT=_F( INST_INIT = 0., INST_FIN = 1., PAS = 0.0002),
+ ARCHIVAGE=_F( PAS_ARCH = 8)
+ )
+
+
+MULT_X1=CALC_CHAR_SEISME( MATR_MASS=MASS_BIC, DIRECTION=( 1., 0., 0.,),
+ MODE_STAT=MSTA_BIC, NOEUD='NO1' )
+
+MULT_X2=CALC_CHAR_SEISME( MATR_MASS=MASS_BIC, DIRECTION=( 1., 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' )
+
+
+FIN()
--- /dev/null
+
+
+DEBUT();
+
+MA=LIRE_MAILLAGE();
+
+kk=DEFI_MATERIAU(ELAS=_F(E=56.24,
+ NU=0.3,),);
+
+uu=DEFI_MATERIAU(ELAS=_F(E=56.24,
+ NU=0.3,),);
+
+sansnom=DEFI_MATERIAU(ELAS=_F(E=56.24,
+ NU=0.3,),);
+
+FIN();
--- /dev/null
+
+
+DEBUT();
+
+MA=LIRE_MAILLAGE();
+
+kk=DEFI_MATERIAU(ELAS=_F(E=56.24,
+ NU=0.3,),);
+
+uu=DEFI_MATERIAU(ELAS=_F(E=56.24,
+ NU=0.3,),);
+
+sansnom=DEFI_MATERIAU(ELAS=_F(E=56.24,
+ NU=0.3,),);
+
+sansnom=DEFI_MATERIAU(ELAS=_F(E=56.24,
+ NU=0.3,),);
+
+FIN();
--- /dev/null
+
+
+DEBUT();
+
+ma=LIRE_MAILLAGE();
+
+air=DEFI_MATERIAU();
+
+champmat=AFFE_MATERIAU(MAILLAGE=ma,
+ AFFE=_F(TOUT='OUI',
+ MATER=air,),);
+
+mo=AFFE_MODELE(MAILLAGE=ma,
+ AFFE=_F(TOUT='OUI',
+ PHENOMENE='ACOUSTIQUE',
+ MODELISATION='3D',),);
+
+characou=AFFE_CHAR_ACOU(MODELE=mo,
+ VITE_FACE=_F(GROUP_MA=('ENTREE','SORTIE','TOTO','TITI',),
+ VNOR=('RI',0.014,0.0,),),);
+
+MACRO_MATR_ASSE(MODELE=mo,
+ NUME_DDL=CO('num'),
+ MATR_ASSE=_F(MATRICE=CO('matasm'),
+ OPTION='MASS_ACOU',),);
+
+vectelem=CALC_VECT_ELEM(OPTION='CHAR_ACOU',
+ CHAM_MATER=champmat,
+ CHARGE=characou,);
+
+sansnom=ASSE_VECTEUR(VECT_ELEM=None,
+ NUME_DDL=num,);
+
+sansnom=ASSE_VECTEUR(VECT_ELEM=vectelem,
+ NUME_DDL=num,);
+
+ch=ASSE_VECTEUR(VECT_ELEM=vectelem,
+ NUME_DDL=num,);
+
+sansnom=COMB_CHAM_NO(COMB_C=_F(CHAM_NO=None,),);
+
+sansnom=COMB_CHAM_NO(COMB_C=_F(CHAM_NO=ch,
+ COEF_R=1,),);
+
+chno=COMB_CHAM_NO(COMB_C=_F(CHAM_NO=ch,
+ COEF_R=1,),);
+
+matasm=FACT_LDLT(reuse =matasm,
+ MATR_ASSE=matasm,);
+
+sansnom=RESO_LDLT(MATR_FACT=matasm,
+ CHAM_NO=None,
+ );
+sansnom=RESO_LDLT(MATR_FACT=matasm,
+ CHAM_NO=chno,
+ );
+rr =RESO_LDLT(MATR_FACT=matasm,
+ CHAM_NO=chno,
+ );
+
--- /dev/null
+MA=LIRE_MAILLAGE()
--- /dev/null
+MMA=LIRE_MAILLAGE()
--- /dev/null
+DEBUT()
+INCLUDE(UNITE=13)
+FIN()
--- /dev/null
+DEBUT()
+MA=LIRE_MAILLAGE()
+INCLUDE_MATERIAU(NOM_AFNOR='A42',
+ TYPE_MODELE='REF',
+ VARIANTE='C',
+ TYPE_VALE='NOMI',
+ NOM_MATER='MAT',
+ )
+FIN()
--- /dev/null
+DEBUT()
+INCLUDE_MATERIAU(NOM_AFNOR='A42',
+ TYPE_MODELE='REF',
+ VARIANTE='C',
+ TYPE_VALE='NOMI',
+ NOM_MATER='M',
+ )
+INCLUDE_MATERIAU(NOM_AFNOR='A42',
+ TYPE_MODELE='REF',
+ VARIANTE='F',
+ TYPE_VALE='NOMI',
+ NOM_MATER='N',
+ )
+FIN()
--- /dev/null
+ DEBUT();
+
+
+ INCLUDE(UNITE: 80);
+
+TPS = 1. ;
+
+
+
+SY = 90. ;
+
+
+
+A = 1. ;
+H = 0.01 ;
+N = 50 ;
+T = 0.01 ;
+TD = DEFI_VALEUR(R8: EVAL(T*180./PI)) ;
+CT = DEFI_VALEUR(R8: EVAL(COS(T))) ;
+ST = DEFI_VALEUR(R8: EVAL(SIN(T))) ;
+MST= DEFI_VALEUR(R8: EVAL(-ST));
+RAT= DEFI_VALEUR(R8: EVAL(H/A));
+
+
+K_REF = DEFI_VALEUR( R8: EVAL(0.9845615*Q1) );
+EPS_Y = DEFI_VALEUR( R8: EVAL( (1./K_REF)**5. ));
+YOUNG = DEFI_VALEUR( R8: EVAL(SY/EPS_Y) );
+
+!FORMULE( REEL: (
+ RP(REEL:EPSI) = K_REF * SY * EPSI**0.2
+ ) );
+
+ECH_EPSI = DEFI_LIST_REEL (
+ DEBUT: EPS_Y
+ INTERVALLE: (
+ JUSQU_A: 3.
+ NOMBRE : 300
+ )
+ ) ;
+
+TRAC = CALC_FONC_INTERP (
+ FONCTION: RP
+ LIST_PARA : ECH_EPSI
+ PROL_GAUCHE: 'LINEAIRE'
+ PROL_DROIT : 'LINEAIRE'
+ ) ;
+
+
+ PRE_GIBI();
+ MA = LIRE_MAILLAGE();
+
+&MA = DEFI_GROUP
+ (
+ MAILLAGE: MA
+ CREA_GROUP_NO:
+ (
+ TOUT_GROUP_MA: 'OUI'
+ )
+ ) ;
+
+
+ CUIVRE = DEFI_MATERIAU
+ (
+ ELAS :
+ (
+ E : YOUNG
+ NU: 0.3
+ )
+ TRACTION : (
+ SIGM: TRAC
+ )
+ NON_LOCAL: (
+ LONG_CARA: LC
+ )
+ ) ;
+
+ CHMAT = AFFE_MATERIAU
+ (
+ MAILLAGE: MA
+ AFFE :
+ (
+ GROUP_MA: TRANCHE
+ MATER : CUIVRE
+ )
+ ) ;
+
+
+ MO_MECA = AFFE_MODELE
+ (
+ MAILLAGE: MA
+ AFFE :
+ (
+ GROUP_MA : TRANCHE
+ PHENOMENE : 'MECANIQUE'
+ MODELISATION : '3D_SI'
+ )
+ ) ;
+
+ MO_DELO = AFFE_MODELE (
+ MAILLAGE: MA
+ AFFE:
+ (
+ GROUP_MA: TRANCHE
+ PHENOMENE: 'NON_LOCAL'
+ MODELISATION: '3D'
+ )
+ ) ;
+
+
+!FORMULE ( REEL : ( UX_IMP(REEL: INST, REEL:X, REEL:Y) =
+ -INST*RAT*Y
+ ));
+!FORMULE ( REEL : ( UY_IMP(REEL: INST, REEL:X, REEL:Y) =
+ INST*RAT*X
+ ));
+!FORMULE ( REEL : ( UZ_IMP(REEL:X, REEL:Y) = 0. ));
+
+
+ ANCRAGE = AFFE_CHAR_MECA (
+ MODELE : MO_MECA
+ FACE_IMPO:
+ (
+ GROUP_MA: BAS
+ DX: 0.
+ DY: 0.
+ DZ: 0.
+ )
+ ) ;
+
+ TORSION = AFFE_CHAR_MECA_F (
+ MODELE : MO_MECA
+ FACE_IMPO:
+ (
+ GROUP_MA: HAUT
+ DX : UX_IMP
+ DY : UY_IMP
+ DZ : UZ_IMP
+ )
+ ) ;
+
+
+ SYMETRIE = AFFE_CHAR_MECA (
+ MODELE: MO_MECA
+ LIAISON_GROUP: (
+ GROUP_MA_1 : SYM_CY_0
+ GROUP_MA_2 : SYM_CY_1
+ SANS_GROUP_NO: (HAUT, BAS)
+ DDL_1 : ('DX' 'DY' )
+ DDL_2 : ('DX' )
+ COEF_MULT_1 : (CT MST)
+ COEF_MULT_2 : (-1.)
+ COEF_IMPO : 0.
+ CENTRE : (0. 0. 0.)
+ ANGL_NAUT : (TD 0. 0.)
+ SOMMET : 'OUI'
+ )
+ LIAISON_GROUP: (
+ GROUP_MA_1 : SYM_CY_0
+ GROUP_MA_2 : SYM_CY_1
+ SANS_GROUP_NO: (HAUT, BAS)
+ DDL_1 : ('DX' 'DY' )
+ DDL_2 : ('DY' )
+ COEF_MULT_1 : (ST CT)
+ COEF_MULT_2 : (-1.)
+ COEF_IMPO : 0.
+ CENTRE : (0. 0. 0.)
+ ANGL_NAUT : (TD 0. 0.)
+ SOMMET : 'OUI'
+ )
+ LIAISON_GROUP: (
+ GROUP_MA_1 : SYM_CY_0
+ GROUP_MA_2 : SYM_CY_1
+ SANS_GROUP_NO: (HAUT, BAS)
+ DDL_1 : ('DZ')
+ DDL_2 : ('DZ')
+ COEF_MULT_1 : (1.)
+ COEF_MULT_2 : (-1.)
+ COEF_IMPO : 0.
+ CENTRE : (0. 0. 0.)
+ ANGL_NAUT : (TD 0. 0.)
+ SOMMET : 'OUI'
+ )
+ ) ;
+
+
+ INSTANTS = DEFI_LIST_REEL
+ (
+ DEBUT: 0.
+ INTERVALLE:
+ (JUSQU_A: TPS NOMBRE: 50)
+ ) ;
+
+
+
+ EVOL = STAT_NON_LINE
+ (
+ MODELE: MO_MECA
+ CHAM_MATER: CHMAT
+ EXCIT :
+ (CHARGE: TORSION)
+ (CHARGE: ANCRAGE)
+ (CHARGE: SYMETRIE)
+ INCREMENT:
+ (
+ LIST_INST: INSTANTS
+ SUBD_PAS : 5
+ SUBD_PAS_MINI: 0.0001
+ )
+ COMP_INCR:
+ (
+ RELATION: 'PLAS_GRAD_TRAC'
+ DEFORMATION: 'PETIT'
+ )
+ NEWTON:
+ (
+ MATRICE:'ELASTIQUE'
+ )
+ CONVERGENCE:
+ (
+ RESI_GLOB_RELA: 1.E-4
+ ITER_GLOB_MAXI: 500
+ ITER_INTE_MAXI: 250
+ RESI_INTE_RELA: 1.E-9
+ )
+ ARCHIVAGE: (
+ ARCH_ETAT_INIT: 'OUI'
+ LIST_INST : INSTANTS
+ )
+
+ MODELE_NON_LOCAL: MO_DELO
+ LAGR_NON_LOCAL: (
+ RESI_PRIM_ABSO: 1.E-9
+ RESI_DUAL_ABSO: 1.E-4
+ RHO: 1000.
+ ITER_PRIM_MAXI: 100
+ ITER_DUAL_MAXI: 10
+ )
+ ) ;
+
+
+
+&EVOL = CALC_ELEM (
+ MODELE: MO_MECA
+ CHAM_MATER: CHMAT
+ RESULTAT : EVOL
+ OPTION: ('SIEF_ELNO_ELGA' 'VARI_ELNO_ELGA')
+ ) ;
+
+&EVOL = CALC_NO (
+ RESULTAT: EVOL
+ OPTION: ('FORC_NODA'
+ 'SIEF_NOEU_ELGA' 'VARI_NOEU_ELGA')
+ ) ;
+
+
+ECHAN = INTE_MAIL_3D (
+ MAILLAGE : MA
+ DEFI_SEGMENT: (
+ GROUP_NO_ORIG: O1
+ GROUP_NO_EXTR: A1
+ )
+ ) ;
+
+ PLAS_CUM = POST_RELEVE_T (
+ ACTION: (
+ INTITULE : 'P'
+ CHEMIN : ECHAN
+ RESULTAT : EVOL
+ NOM_CHAM : 'VARI_NOEU_ELGA'
+ NOM_CMP : 'V1'
+ INST : TPS
+ OPERATION: 'EXTRACTION'
+ )
+ ) ;
+
+
+ SIGMA = POST_RELEVE_T (
+ ACTION: (
+ INTITULE : 'SIYZ'
+ CHEMIN : ECHAN
+ RESULTAT : EVOL
+ NOM_CHAM : 'SIEF_NOEU_ELGA'
+ NOM_CMP : 'SIYZ'
+ INST : TPS
+ OPERATION: 'EXTRACTION'
+ )
+ ) ;
+
+
+
+ MOM_A = POST_RELEVE_T (
+ ACTION: (
+ INTITULE : 'MOMENT'
+ GROUP_NO : HAUT
+ RESULTAT : EVOL
+ NOM_CHAM : 'FORC_NODA'
+ RESULTANTE: ('DX' 'DY' 'DZ')
+ MOMENT : ('DRX' 'DRY' 'DRZ')
+ POINT : (0. 0. H)
+ TOUT_ORDRE: 'OUI'
+ OPERATION : 'EXTRACTION'
+ )
+ ) ;
+
+ MOM_KA_A = RECU_FONCTION (
+ TABLE : MOM_A
+ PARA_X: 'INST'
+ PARA_Y: 'MOMENT_Z'
+ ) ;
+
+!FORMULE ( REEL:( MA3_KA(REEL: INST) = MOM_KA_A(INST)*360/TD/A**3/SY));
+
+
+
+ DEFUFI(
+ IMPRESSION: (
+ NOM: 'POST_PY'
+ UNITE: 81
+ )
+ ) ;
+
+
+
+ IMPR_COURBE(
+ FORMAT: 'AGRAF'
+ FICHIER: 'POST_PY'
+ COURBE: (
+ FONCTION : MA3_KA
+ LIST_PARA: INSTANTS
+ )
+ ) ;
+
+
+ FIN();
+
+
+IMPR_TABLE(TABLE:SIGMA);
+IMPR_TABLE(TABLE:PLAS_CUM);
+
+ FIN();
\ No newline at end of file
--- /dev/null
+"""
+ Ce module sert à construire les distributions de versions alpha d'EFICAS en fonction
+ du tag CVS courant (Vx_yaz). Une version alpha est une version dont toutes les fonctionnalités
+ ne sont pas implémentées. On utilise pour ces versions, les packages Noyau Validation Cata et Macro
+ locaux.
+ Les distributions sont :
+ - un tar.gz pour UNIX ne contenant pas mxTextTools
+ - un zip pour Windows contenant mx TextTools préinstallé
+ L'utilisation de ce module est la suivante :
+ 1- Se mettre dans un répertoire de travail
+ 2- Configurer son environnement pour utiliser le référentiel CVS EFICAS
+ 3- Exporter les sources d'Eficas par la commande :
+ cvs export -r TAG -d Eficas_export EficasV1_2
+ ou TAG est le tag CVS de la version que l'on veut distribuer (par exemple V1_3a1)
+ 4- Aller dans le répertoire Eficas_export
+ 4- Executer le script alphasdist.py
+ python alphasdist.py
+ Ce qui a pour effet de creer un repertoire dist contenant les 2 distributions
+ et de les copier dans le répertoire indiqué par dir_download s'il est accessible
+
+"""
+import os,shutil,glob,sys
+import types
+
+version="$Name: $"[7:-2] or 'Test1_4'
+# ==========Path du noyau local ====================
+path_Noyau=".."
+# ============================================================
+nom_distrib="Eficas"+version+"AsterSTA7"
+path_distrib=os.path.join("dist",nom_distrib)
+path_TextTools="/home/eficas/pkg/mxTools/egenix2.0.2pourWindows/mx/TextTools"
+dir_download= "/home/eficas/WWW/telechargement/eficas"
+
+def main():
+ if os.path.isdir('dist'):shutil.rmtree('dist')
+
+ copyfiles('.',path_distrib,['LICENSE.TERMS','INSTALL'])
+
+ copyfiles('../Editeur',os.path.join(path_distrib,'Editeur'),['*.py','faqs.txt'])
+ copyfiles('../Ihm',os.path.join(path_distrib,'Ihm'),['*.py'])
+ copyfiles('../Extensions',os.path.join(path_distrib,'Extensions'),['*.py'])
+ copyfiles('../Misc',os.path.join(path_distrib,'Misc'),['*.py'])
+ copyfiles('../Accas',os.path.join(path_distrib,'Accas'),['*.py'])
+ copyfiles('Cata/Macro',os.path.join(path_distrib,'Aster','Cata','Macro'),['*.py'])
+ copyfiles('../AIDE',os.path.join(path_distrib,'AIDE'),['*.py'])
+ copyfiles('../AIDE/fichiers',os.path.join(path_distrib,'AIDE','fichiers'),['*'])
+ copyfiles('../Aster',os.path.join(path_distrib,'Aster'),['prefs.py',
+ 'editeur.ini',
+ 'properties.py',
+ 'eficas_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('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.gif'])
+
+ copyfiles(os.path.join(path_Noyau,'Noyau'),os.path.join(path_distrib,'Noyau'),['*.py'])
+ copyfiles(os.path.join(path_Noyau,'Validation'),os.path.join(path_distrib,'Validation'),['*.py'])
+ copyfiles('../Aster/Cata',os.path.join(path_distrib,'Aster','Cata'),['*.py',
+ ])
+
+ copyfiles('../Tools',os.path.join(path_distrib,'Tools'),['*.py'])
+ copyfiles('../Tools/foztools',os.path.join(path_distrib,'Tools','foztools'),['*.py'])
+
+ tarball= maketarball('dist',nom_distrib,nom_distrib)
+ try:
+ shutil.copy(tarball,dir_download)
+ except:
+ print "Repertoire de download inconnu : ",dir_download
+
+ try:
+ shutil.copytree(path_TextTools,os.path.join(path_distrib,'Tools','TextTools'))
+ except:
+ print "Impossible de recuperer mxTextTools : ",dir_download
+ sys.exit(1)
+
+ zipfile= makezipfile('dist',nom_distrib,nom_distrib)
+ try:
+ shutil.copy(zipfile,dir_download)
+ except:
+ print "Repertoire de download inconnu : ",dir_download
+
+def make_dir(dir_cible):
+ if type(dir_cible) is not types.StringType:
+ raise "make_dir : dir_cible doit etre une string (%s)" % `dir_cible`
+ head,tail=os.path.split(dir_cible)
+ tails=[tail]
+ while head and tail and not os.path.isdir(head):
+ head,tail=os.path.split(head)
+ tails.insert(0, tail)
+
+ for d in tails:
+ head = os.path.join(head, d)
+ if not os.path.isdir(head):os.mkdir(head)
+
+
+def copyfiles(dir_origin,dir_cible,listfiles):
+ if not os.path.isdir(dir_cible):make_dir(dir_cible)
+ for glob_files in listfiles:
+ for file in glob.glob(os.path.join(dir_origin,glob_files)):
+ shutil.copy(file,dir_cible)
+
+def maketarball(dir_trav,dir_cible,nom_tar):
+ prev=os.getcwd()
+ print prev
+ os.chdir(dir_trav)
+ os.system("tar -cf "+nom_tar+".tar "+dir_cible)
+ os.system("gzip -f9 "+nom_tar+".tar ")
+ os.chdir(prev)
+ return os.path.join(dir_trav,nom_tar+".tar.gz")
+
+def makezipfile(dir_trav,dir_cible,nom_tar):
+ prev=os.getcwd()
+ os.chdir(dir_trav)
+ os.system("zip -rq "+nom_tar+".zip "+dir_cible)
+ os.chdir(prev)
+ return os.path.join(dir_trav,nom_tar+".zip")
+
+main()
+
+# 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
import prefs
path_cata_dev = "/tmp/cata"
# Répertoire temporaire
rep_travail = "/tmp"
+# Répertoire initial
+initialdir=os.curdir
# Choix des catalogues
rep_mat="bidon"
-catalogues = (('ASTER','v5',os.path.join(rep_cata,'cata_STA5.py'),'asterv5'),
- ('ASTER','v6',os.path.join(rep_cata,'cata_STA6.py'),'python','defaut'),
+catalogues = (
+ #('ASTER','v5',os.path.join(rep_cata,'cata_STA5.py'),'asterv5'),
+ #('ASTER','v6',os.path.join(rep_cata,'cata_STA6.py'),'python'),
+ ('ASTER','v7',os.path.join(rep_cata,'cata_STA7.py'),'python','defaut'),
)
#!/usr/bin/env python
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
"""
Ce module sert à lancer EFICAS configuré pour Code_Aster
"""
else:
# on veut ouvrir Eficas 'vide'
eficas_go.lance_eficas(code='ASTER')
-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
import os
# REPINI sert à localiser le fichier editeur.ini
# Par défaut on utilise le répertoire icons dans Editeur
ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+
+labels= ('Fichier','Edition','Jeu de commandes',
+# 'Catalogue','Browsers',
+ 'Options',
+ 'Aide',
+ )
+
+appli_composants=['readercata','bureau',
+# 'browser',
+ 'options',
+ ]
+
+menu_defs={ 'bureau': [
+ ('Fichier',[
+ ('Nouveau','newJDC'),
+ ('Ouvrir','openJDC'),
+ ('Enregistrer','saveJDC'),
+ ('Enregistrer sous','saveasJDC'),
+ None,
+ ('Fermer','closeJDC'),
+ ('Quitter','exitEFICAS'),
+ ]
+ ),
+ ('Edition',[
+ ('Copier','copy'),
+ ('Couper','cut'),
+ ('Coller','paste'),
+ ]
+ ),
+ ('Jeu de commandes',[
+ ('Rapport de validation','visuCRJDC'),
+ # ('Fichier à plat','visu_a_plat'),
+ ('Fichier format v6','visuJDC_py'),
+ ('Fichier source','visu_txt_brut_JDC'),
+ ('Paramètres Eficas','affichage_fichier_ini'),
+ ('Mots-clés inconnus','mc_inconnus'),
+ ]
+ ),
+ ('Aide',[
+ ('Aide EFICAS','aideEFICAS'),
+ ]
+ ),
+ ]
+ }
+
--- /dev/null
+#@ MODIF properties Accas DATE 10/10/2002 AUTEUR gcbhhhh M.ADMINISTRATEUR
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+# DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "7.1.0"
+date = "23/04/2003"
--- /dev/null
+"""
+ Ce module sert à construire les distributions d'EFICAS en fonction
+ du tag CVS courant
+ Les distributions sont :
+ - un tar.gz pour UNIX ne contenant pas mxTextTools
+ - un zip pour Windows contenant mx TextTools préinstallé
+ L'utilisation de ce module est la suivante :
+ 1- Se mettre dans un répertoire de travail
+ 2- Configurer son environnement pour utiliser le référentiel CVS EFICAS
+ 3- Exporter les sources d'EficasV1 par la commande :
+ cvs export -r TAG -d Eficas_export EficasV1
+ ou TAG est le tag CVS de la version que l'on veut distribuer (par exemple V1_1p1)
+ 4- Copier le répertoire fourni par Aster (ACCAS6.2.0) au meme niveau que Eficas_export
+ 5- Aller dans le répertoire Eficas_export
+ 6- Executer le script sdist.py
+ python sdist.py
+ Ce qui a pour effet de creer un repertoire dist contenant les 2 distributions
+ et de les copier dans le répertoire indiqué par dir_download s'il est accessible
+
+"""
+import os,shutil,glob,sys
+import types
+
+version="$Name: $"[7:-2] or 'Test1_4'
+# ==========Path du noyau fourni par Aster====================
+path_Noyau="../../AccasAster"
+# ============================================================
+nom_distrib="Eficas"+version+"AsterSTA7"
+path_distrib=os.path.join("dist",nom_distrib)
+path_TextTools="/home/eficas/pkg/mxTools/egenix2.0.2pourWindows/mx/TextTools"
+dir_download= "/home/eficas/WWW/telechargement/eficas"
+
+def main():
+ if os.path.isdir('dist'):shutil.rmtree('dist')
+
+ copyfiles('.',path_distrib,['LICENSE.TERMS','INSTALL','NEWS'])
+
+ copyfiles('../Editeur',os.path.join(path_distrib,'Editeur'),['*.py','faqs.txt'])
+ copyfiles('../Ihm',os.path.join(path_distrib,'Ihm'),['*.py'])
+ copyfiles('../Extensions',os.path.join(path_distrib,'Extensions'),['*.py'])
+ copyfiles('../Misc',os.path.join(path_distrib,'Misc'),['*.py'])
+ copyfiles('../Accas',os.path.join(path_distrib,'Accas'),['*.py'])
+ # AIDE
+ copyfiles('../AIDE',os.path.join(path_distrib,'AIDE'),['*.py'])
+ copyfiles('../AIDE/fichiers',os.path.join(path_distrib,'AIDE','fichiers'),['*'])
+ copyfiles('.',os.path.join(path_distrib,'AIDE','fichiers'),['INSTALL','NEWS'])
+ copyfiles('../Editeur',os.path.join(path_distrib,'AIDE','fichiers'),['faqs.txt'])
+ # Code_Aster
+ copyfiles('../Aster',os.path.join(path_distrib,'Aster'),['prefs.py',
+ 'editeur.ini',
+ 'properties.py',
+ 'eficas_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('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.gif'])
+
+ copyfiles(os.path.join(path_Noyau,'Noyau'),os.path.join(path_distrib,'Noyau'),['*.py'])
+ copyfiles(os.path.join(path_Noyau,'Validation'),os.path.join(path_distrib,'Validation'),['*.py'])
+ copyfiles(os.path.join(path_Noyau,'Cata'),os.path.join(path_distrib,'Aster','Cata'),['*.py',
+ ])
+ copyfiles(os.path.join(path_Noyau,'Macro'),os.path.join(path_distrib,'Aster','Cata','Macro'),['*.py'])
+
+ copyfiles('../Tools',os.path.join(path_distrib,'Tools'),['*.py'])
+ copyfiles('../Tools/foztools',os.path.join(path_distrib,'Tools','foztools'),['*.py'])
+
+ tarball= maketarball('dist',nom_distrib,nom_distrib)
+ try:
+ shutil.copy(tarball,dir_download)
+ except:
+ print "Repertoire de download inconnu : ",dir_download
+
+ try:
+ shutil.copytree(path_TextTools,os.path.join(path_distrib,'Tools','TextTools'))
+ except:
+ print "Impossible de recuperer mxTextTools : ",dir_download
+ sys.exit(1)
+
+ zipfile= makezipfile('dist',nom_distrib,nom_distrib)
+ try:
+ shutil.copy(zipfile,dir_download)
+ except:
+ print "Repertoire de download inconnu : ",dir_download
+
+def make_dir(dir_cible):
+ if type(dir_cible) is not types.StringType:
+ raise "make_dir : dir_cible doit etre une string (%s)" % `dir_cible`
+ head,tail=os.path.split(dir_cible)
+ tails=[tail]
+ while head and tail and not os.path.isdir(head):
+ head,tail=os.path.split(head)
+ tails.insert(0, tail)
+
+ for d in tails:
+ head = os.path.join(head, d)
+ if not os.path.isdir(head):os.mkdir(head)
+
+
+def copyfiles(dir_origin,dir_cible,listfiles):
+ if not os.path.isdir(dir_cible):make_dir(dir_cible)
+ for glob_files in listfiles:
+ for file in glob.glob(os.path.join(dir_origin,glob_files)):
+ shutil.copy(file,dir_cible)
+
+def maketarball(dir_trav,dir_cible,nom_tar):
+ prev=os.getcwd()
+ print prev
+ os.chdir(dir_trav)
+ os.system("tar -cf "+nom_tar+".tar "+dir_cible)
+ os.system("gzip -f9 "+nom_tar+".tar ")
+ os.chdir(prev)
+ return os.path.join(dir_trav,nom_tar+".tar.gz")
+
+def makezipfile(dir_trav,dir_cible,nom_tar):
+ prev=os.getcwd()
+ os.chdir(dir_trav)
+ os.system("zip -rq "+nom_tar+".zip "+dir_cible)
+ os.chdir(prev)
+ return os.path.join(dir_trav,nom_tar+".zip")
+
+main()
+
--- /dev/null
+# debut entete
+
+import Accas
+from Accas import *
+
+JdC = JDC_CATA(code="DESCARTES",
+ execmodul=None
+ )
+
+import string
+
+class TObjet(ASSD):
+ def __init__(self,**args):
+ apply(ASSD.__init__,(self,),args)
+ name=string.ljust(self.__class__.__name__[:12],12)
+
+ def __getitem__(self,attrname):
+ return self.etape[attrname]
+
+ def db(self):
+ if hasattr(self,'_dbsun'):return self._dbsun
+ else:
+ self._dbsun={'t':1}
+ return self._dbsun
+
+ def putdb(self,o):
+ self._dbsun=o
+
+#
+# Definition des types d'objet qui seront produits par les commandes
+# Il suffit de declarer une classe qui derive de la classe mere TObjet
+# qui derive elle meme de la classe ASSD utilisee dans EFICAS
+#
+class Isotope (TObjet):pass
+class BornesEnergie (TObjet):pass
+class BibliothequeIsotopes (TObjet):pass
+class ChaineFiliation(TObjet) :pass
+class Materiau (TObjet):pass
+class Point (TObjet):pass
+class Vecteur (TObjet):pass
+class Droite (TObjet):pass
+class Segment (TObjet):pass
+class ArcCercle (TObjet):pass
+class Secteur (TObjet):pass
+class Conique (TObjet):pass
+class Triangle (TObjet):pass
+class Rectangle (TObjet):pass
+class Carre (TObjet):pass
+class Hexagone (TObjet):pass
+class Polygone (TObjet):pass
+class Sphere (TObjet):pass
+class BoiteRectangulaire (TObjet):pass
+class BoiteGenerale (TObjet):pass
+class CylindreX (TObjet):pass
+class CylindreY (TObjet):pass
+class CylindreZ (TObjet):pass
+class Cylindre (TObjet):pass
+class Cone (TObjet):pass
+class PrismeHexagonal (TObjet):pass
+class Tore (TObjet):pass
+class Plan (TObjet):pass
+class PlanX (TObjet):pass
+class PlanY (TObjet):pass
+class PlanZ (TObjet):pass
+class Polyedre (TObjet):pass
+class Quadrique (TObjet):pass
+class Cellule(TObjet) :pass
+class Cluster(TObjet):pass
+class Orientation(TObjet):pass
+class FormePositionnee (TObjet):pass
+class GeometrieSurfacique(TObjet):pass
+class GeometrieCombinatoire(TObjet):pass
+class Reseau(TObjet):pass
+class GrilleAssemblage (TObjet):pass
+class PartieInferieureAssemblageCombustible (TObjet):pass
+class PartieSuperieureAssemblageCombustible (TObjet):pass
+class OptionsAutoprotection(TObjet):pass
+class AssemblageType(TObjet):pass
+class AssemblageCombustibleCharge (TObjet):pass
+class ElementBarre (TObjet):pass
+class ElementsGrappeCommande (TObjet):pass
+class ElementsAbsorbantsFixes (TObjet):pass
+class GrappeBouchonAssemblage (TObjet):pass
+#class ElementsAssemblage (TObjet):pass
+class SystemeUnitesMesure (TObjet):pass
+class Vide (TObjet):pass
+class ReflexionIsotrope (TObjet):pass
+class ReflexionSpeculaire (TObjet):pass
+class Albedo (TObjet):pass
+class Translation (TObjet):pass
+class Rotation (TObjet):pass
+class ConditionLimiteSpeciale (TObjet):pass
+class ConditionLimiteGenerale (TObjet):pass
+class CorrespondanceReperePositionReseau (TObjet):pass
+class PositionAssemblageCombustible (TObjet):pass
+class PositionInstrumentationInterne (TObjet):pass
+class PositionGrappesCommande (TObjet):pass
+class StructuresInternesReacteur (TObjet):pass
+class CaracteristiquesPalier (TObjet):pass
+class SiteNucleaire (TObjet):pass
+class EspaceVariations (TObjet):pass
+class DonneesEvolutionIrradiation (TObjet):pass
+class ConditionsFonctionnementMoyennes (TObjet):pass
+#class PlanChargementCoeur (TObjet):pass
+class DateClesCampagne (TObjet):pass
+class OptionsCodes (TObjet):pass
+class DonneesGeneralesEtude (TObjet):pass
+# fin entete
+
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe ISOTOPE : Classe de definition d'un isotope
+# Caracteristiques elementaires des isotopes ou molecules et liens avec les bibliotheques de donnees nucleaires
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ISOTOPE=OPER(nom="ISOTOPE",sd_prod=Isotope,op=0,
+
+ fr = "Definition d'un isotope ou d'une molecule et de ses bibliotheques",
+ ang = "Isotope or Molecule definition and data libraries",
+ Symbole = SIMP (typ='TXM',statut='o'),
+ MasseAtomique = SIMP (typ='R',statut='o',fr="Masse atomique en uma"),
+ NombreDeCharge = SIMP (typ='I',statut='o',fr="Nombre de charge atomique Z"),
+ NombreDeMasse = SIMP (typ='I',statut='o',fr="Nombre de masse atomique A"),
+ Type = SIMP (typ='TXM',statut='f',into=('Standard','Detecteur','Structure','Poison'),fr="Type de l'isotope"),
+ ConstituantsChimiques = SIMP (typ='TXM',max='**',statut='f',fr="Symboles des constituants elementaires de la molecule"),
+ NomsBibliotheque = NUPL ( max = '**',
+ statut = 'o',
+ elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"),
+ SIMP (typ='TXM',fr="Identifiant de l'isotope dans la bibliotheque"))),
+ NomsBibliothequeAutoprotegee = NUPL ( max = '**',
+ statut = 'f',
+ elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"),
+ SIMP (typ='TXM',fr="Identifiant Bibliotheque autoprotegee de l'isotope")))
+ );
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe BORNES_ENERGIE : Classe de definition des limites en energie d'un maillage multigroupe
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+BORNES_ENERGIE=OPER(nom="BORNES_ENERGIE",sd_prod=BornesEnergie,op=0,
+ fr = "Definition d une discretisation de l espace energetique",
+ ang = "Definition of an energy discretisation",
+ NbMacrogroupes = SIMP (typ='I',statut='o',fr="Nombre de macrogroupes du maillage energetique"),
+ BornesEnergetiques = SIMP (typ='R',max='**',statut='o',fr="Bornes en energie du maillage energetique"),
+ );
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe BIBLIOTHEQUE_ISOTOPES : Classe de definition d'une bibliotheque des donnees nucleaires d'isotopes ou de molecules
+# Caracteristiques elementaires des isotopes ou molecules
+# et liens avec les bibliotheques de donnees nucleaires
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+BIBLIOTHEQUE_ISOTOPES=OPER(nom="BIBLIOTHEQUE_ISOTOPES",sd_prod=BibliothequeIsotopes,op=0,
+
+ fr = "Definition d une bibliotheque de donnees nucleaires des isotopes",
+ ang = "Definition of an isotopic nuclear data library",
+ Description = SIMP (typ='TXM',statut='f'),
+ Fichiers = FACT (
+ max = '**',
+ statut = 'o',
+ SystemeExploitation = SIMP (typ='TXM',fr="Systeme d'exploitation"),
+ NomFichier = SIMP (typ='TXM',fr="Nom du fichier"),
+ FormatFichier = SIMP (typ='TXM',fr="Format du fichier",statut='f'),
+ BornesEnergetiques = SIMP (typ=BornesEnergie,statut='f',fr="Bornes en eV du maillage en energie"))
+ );
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CHAINE_FILIATION : Classe de definition des filiations isotopiques dues aux transmutations
+# sous irradiation neutronique.
+# Description textuelle sous format (APOLLO2, SUNSET ou DARWIN) ou description particuliere Descartes.
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CHAINE_FILIATION = OPER (nom="CHAINE_FILIATION",op=0,sd_prod=ChaineFiliation,
+
+ fr = "Definition d'une chaine de filiation isotopique sous irradiation",
+ ang = "Definition of a depletion chain",
+ NombreIsotopes = SIMP (typ='I',statut='o',fr="Nombre d'isotopes decrits dans la chaine"),
+ ChaineAPOLLO2 = SIMP (typ='TXM',statut='f',fr="Description de la chaine sous format APOLLO2"),
+ ChaineSUNSET = SIMP (typ='TXM',statut='f',fr="Description de la chaine sous format SUNSET"),
+ ChaineDARWIN = SIMP (typ='TXM',statut='f',fr="Nom du fichier contenant la description DARWIN de la chaine"),
+ Isotopes = FACT ( max = '**', statut = 'f',
+ Isotope = FACT ( max = '**', statut = 'f',
+ IsotopePere = SIMP (typ=Isotope,fr="Nom isotope pere",statut='o'),
+ TypeReaction = SIMP (typ='TXM',fr="Type de reaction",statut='o'),
+ RapportBranchement = SIMP (typ='R',fr="Rapport de branchement",defaut=1.,statut='f')
+ )
+ )
+ );
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe MATERIAU : Classe de définition d'un matériau à partir de mélange d'isotopes ou de matériaux.
+# Définition alternative par donnée des enrichissements
+# Caractéristiques fournies a 20 C.
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+MATERIAU=OPER(nom="MATERIAU",op=0,sd_prod=Materiau,
+
+ fr = "Definition d'un materiau",
+ ang = "Definition of a mixture",
+ TypeDefinition = SIMP (typ='TXM',statut='f',defaut="Isotopique",into=("Isotopique","Enrichissement")),
+ BlocIsotopique = BLOC (condition = "TypeDefinition=='Isotopique'",
+ Type = SIMP ( statut = 'o',
+ typ = 'TXM',
+ into = ('Absorbant','Combustible','Melange','ModerateurInterne','ModerateurExterne','Detecteur',
+ 'Grille','Gaine','Tube','Poison','PoisonConsommable','AbsorbantIntegre',
+ 'Solide','Liquide','Gaz','MateriauVide'),
+ defaut = 'Combustible'),
+ MethodeMelange = SIMP (statut='o',typ='TXM',into=('Isotopique','Massique','Concentration'),defaut='Massique'),
+ Constituants = NUPL ( statut = 'o',
+ max = '**',
+ elements = (SIMP (typ=(Isotope,Materiau)),SIMP (typ='R')),
+ fr = "Couples (Isotope ou Materiau) et (Pourcentage ou Cencentration)")
+ ),
+ BlocEnrichissement = BLOC (condition = "TypeDefinition=='Enrichissement'",
+ Type = SIMP (typ='TXM',into=('UO2','MOX','UO2Gadolinium','MOXGadolinium'),statut='o'),
+ EnrichissementU235 = SIMP (typ=('R','TXM'),defaut=3.7,statut='f',fr="Enrichissement % en U235 du combustible"),
+ EnrichissementPu = SIMP (typ=('R','TXM'),defaut=0.,statut='f',fr="Enrichissement % en plutonium du combustible"),
+ EnrichissementGado = SIMP (typ=('R','TXM'),defaut=0.,statut='f',fr="Enrichissement % en Gd2O3 du combustible"),
+ VecteurPu = NUPL ( max='**',statut='f',
+ elements=( SIMP (typ=Isotope,fr="Nom isotope du plutonium"),
+ SIMP (typ='R',fr="Pourcentage isotopique"))),
+ DateReference = SIMP (typ='I',min=3,max=3,statut='f',fr="Date J M A de reference du combustible"),
+ DateDivergence = SIMP (typ='I',min=3,max=3,statut='f',fr="Date J M A de divergence du reacteur ou ce combustible est charge"),
+ VieillissementJours = SIMP ( typ = 'R',
+ defaut = 0.,
+ statut = 'f',
+ fr = "Nbre de jours de vieillissement du combustible, calculable si on donne DateDivergence")),
+ MasseVolumique = SIMP (statut='f',typ=('R','I','TXM'),fr="Masse volumique theorique du materiau g/cm3"),
+ TauxEvidement = SIMP (statut='f',typ=('R','I'),fr="Taux % d'evidement du materiau"),
+ TauxPorosite = SIMP (statut='f',typ=('R','I'),fr="Taux % de porosite du materiau"),
+ Temperature = SIMP (statut='f',typ=('R','I','TXM'),fr="Temperature en Celsius du materiau"),
+ GazRemplissage = SIMP (statut='f',typ=(Isotope,Materiau),defaut='HE4',fr="Gaz de remplissage des evidements du materiau solide"),
+ PressionInitialeGaz = SIMP (statut='f',typ=('R','I'),defaut=32.,fr="Pression en bars du gaz de remplissage des evidements"),
+ DilatationLineaire = SIMP (statut='f',typ=('R','I'),fr="Coefficient de dilatation thermique lineaire cm/C du materiau"),
+ Chaine = SIMP (statut='f',typ=ChaineFiliation,defaut='ChaineSaturee',fr="Chaine de filiation isotopique associee au materiau"),
+ TauxImpuretes = SIMP (statut='f',typ=('R','I'),fr="Taux % d'impuretes")
+ );
+# ==================================================================================================================================
+# Definition des Classes elementaires pour la geometrie
+# ==================================================================================================================================
+# Classe POINT : Classe de definition d'un point de l'espace
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POINT = OPER (nom="POINT",op=0,sd_prod=Point,
+
+ fr = "Definition d'un point de l'espace",
+ ang = "Definition of a point in space",
+ Coordonnees = SIMP (typ='R',min=2,max=3,statut='o',fr="Coordonnees du point dans l'espace")
+ );
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe VECTEUR : Classe de definition d'un vecteur dans l'espace
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+VECTEUR = OPER (nom="VECTEUR",op=0,sd_prod=Vecteur,
+
+ fr = "Definition d'un vecteur dans l'espace",
+ ang = "Definition of a vector in space",
+ regles = (UN_PARMI ('Composantes','Points')),
+ Composantes = SIMP (typ='R',min=2,max=3,statut='f',fr="Composantes du vecteur en 2D ou 3D"),
+ Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Vecteur defini par deux points") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DROITE : Classe de definition d'une droite
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DROITE = OPER (nom="DROITE",op=0,sd_prod=Droite,
+
+ fr = "Definition d'une droite par 2 POINTs, 1 POINT et 1 VECTEUR, ou Equation ax + by + cz + d = 0",
+ ang = "Definition of a straight line with 2 POINTs or with Equation ax + by + cz + d = 0",
+ regles = (UN_PARMI ('Points','Equation','VecteurOrigine')),
+ Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Deux points de definition de la droite"),
+ Equation = SIMP (typ='R',min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation d'une droite"),
+ VecteurOrigine = FACT (statut='f',
+ Vecteur = SIMP (typ=Vecteur,statut='f',fr="Donnee du vecteur directeur de la droite"),
+ Origine = SIMP (typ=Point,statut='f',fr="Donnee d'un point de passage de la droite"))) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe SEGMENT : Classe de definition d'un segment (Idem DROITE + Longueur et Origine)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SEGMENT = OPER (nom="SEGMENT",op=0,sd_prod=Segment,
+
+ fr = "Definition d'un segment 2 Points ou Origine + ((Longueur + Equation ax + by + d = 0) ou vecteur)",
+ ang = "Definition of a segment ax + by + cz + d = 0",
+ regles = (UN_PARMI ('Points','Equation','Vecteur')),
+ Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Deux points de definition du segment"),
+ Equation = SIMP (typ='R',min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation de la droite "),
+ Vecteur = SIMP (typ=Vecteur,statut='f',fr="Donnee du vecteur directeur du segment"),
+ Longueur = SIMP (typ='R',statut='f',fr="Longueur du segment"),
+ Origine = SIMP (typ=Point,statut='f',fr="Donnee de l'origine du segment") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ARC_CERCLE : Classe de definition d'un arc de cercle
+# Angles donnes en degres
+# Dans le cas 2D on peut positionner l'arc de cercle en donnant l'angle du debut de l'arc par rapport a l'axe Ox
+# Dans le cas 3D on donne en plus la hauteur et l'axe directeur de l'arc
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ARC_CERCLE = OPER (nom="ARC_CERCLE",op=0,sd_prod=ArcCercle,
+
+ fr = "Definition d'un arc de cercle",
+ ang = "Definition of a circular arc",
+ Type = SIMP (typ='TXM',statut='f',defaut='2D',into=('2D','3D'),fr="Type d'arc 2D ou 3D"),
+ Rayon = SIMP (typ='R',statut='o',fr="Rayon de l'arc de cercle"),
+ Angles = SIMP (typ='R',max=2,defaut=(360.,0.),statut='f',fr="Angles en degres de l'arc : Total et Debut"),
+ VecteurAxe = SIMP (typ=Vecteur,statut='f',fr="Vecteur directeur de l'axe de l'arc") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe SECTEUR : Classe de definition d'un disque ou d'un secteur d'une couronne circulaire
+# Angle du secteur donne en degres (360° par defaut)
+# Dans le cas 2D on peut positionner le secteur en donnant l'angle du debut de secteur par rapport a l'axe Ox
+# Dans le cas 3D on donne en plus la hauteur et l'axe directeur du secteur
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SECTEUR = OPER (nom="SECTEUR",op=0,sd_prod=Secteur,
+
+ fr = "Definition d'un disque ou d'un secteur d'une couronne",
+ ang = "Definition of a circular sector",
+ Type = SIMP (typ='TXM',statut='o',into=('2D','3D'),fr="Type de secteur 2D ou 3D"),
+ Rayons = SIMP (typ='R',min=2,max=2,statut='o',fr="Rayons interne et externe de la couronne"),
+ Angles = SIMP (typ='R',max=2,defaut=(360.,0.),statut='f',fr="Angles en degres du secteur"),
+ Hauteur = SIMP (typ='R',defaut=0.,statut='f',fr="Hauteur du secteur"),
+ VecteurAxe = SIMP (typ=Vecteur,defaut=0.,statut='f',fr="Vecteur directeur de l'axe du secteur") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONIQUE : Classe de definition d'une conique 2D
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONIQUE = OPER (nom="CONIQUE",op=0,sd_prod=Conique,
+
+ fr = "Definition d'une conique 2D ax2+by2+cxy+dx+ey+f=0",
+ ang = "Definition of a quadratic curve 2D",
+ Equation = SIMP (typ='R',min=2,max=6,statut='o',fr="Coefficients successifs abcdef de l'equation d'une conique"),
+ OrigineVecteur = NUPL (
+ elements = (SIMP (typ=Point),SIMP (typ=Vecteur)),
+ statut = 'f',
+ fr = "Donnee de l'origine et du vecteur directeur") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe TRIANGLE : Classe de definition d'un triangle
+# Angles donnes en degres par rapport a l'axe Ox horizontal
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+TRIANGLE = OPER (nom="TRIANGLE",op=0,sd_prod=Triangle,
+
+ fr = "Definition d'un triangle",
+ ang = "Definition of a triangle",
+ regles = (UN_PARMI ('Points','AngleCotes')),
+ Points = SIMP (typ=Point,min=3,max=3,statut='f'),
+ AngleCotes = SIMP (typ='R',min=3,max=3,statut='f',fr="Donnee d'un Angle en degres et Longueurs de deux cotes")
+ );
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RECTANGLE : Classe de definition d'un rectangle
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RECTANGLE = OPER (nom="RECTANGLE",op=0,sd_prod=Rectangle,
+
+ fr = "Definition d'un rectangle",
+ ang = "Definition of a rectangle",
+ regles = (UN_PARMI ('Points','Cotes')),
+ Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Definition du rectangle par trois points"),
+ Cotes = SIMP (typ='R',min=2,max=2,statut='f',fr="Donnee de la longueur de deux cotes") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CARRE : Classe de definition d'un carre
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CARRE = OPER (nom="CARRE",op=0,sd_prod=Carre,
+
+ fr = "Definition d'un carre",
+ ang = "Definition of a square",
+ regles = (UN_PARMI ('Points','Cote')),
+ Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Definition du carre par deux points"),
+ Cote = SIMP (typ='R',statut='f',fr="Donnee de la longueur du cote du carre")
+ );
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe HEXAGONE : Classe de definition d'un hexagone
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+HEXAGONE = OPER (nom="HEXAGONE",op=0,sd_prod=Hexagone,
+
+ fr = "Definition d'un hexagone",
+ ang = "Definition of an hexagon",
+ Rayon = SIMP (typ='R',statut='f',fr="Rayon du cercle inscrit dans l'hexagone")
+ );
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POLYGONE : Classe de definition d'un polygone
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POLYGONE = OPER (nom="POLYGONE",op=0,sd_prod=Polygone,
+
+ fr = "Definition d'un polygone",
+ ang = "Definition of a polygon",
+ Points = SIMP (typ=Point,max='**',statut='f',fr="Definition d'un polygone par tous ses points")
+ );
+# ==================================================================================================================================
+# Definition des Classes pour une geometrie 3D : Elements geometriques combinatoires ou surfaciques
+# L'utilisation de certaines classes de combinatoire en surfacique consiste a simplement specifier la position de l'objet
+# ou a eliminer certaines surfaces limites de la classe
+# Pour une sphere : donnee du centre de la sphere
+# Pour un cylindre : Pas de donnee de la hauteur, mais donnee d'un point de l'axe du cylindre
+# ==================================================================================================================================
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe SPHERE : Classe de definition d'une sphere (ou d'une sphere sectorisee ou decoupee en rondelles)
+# Des portions de la sphere peuvent etre selectionnees en donnant leurs cotes limites sur un axe de la sphere
+# (origine de l'axe au centre de la sphere, donc cotes comprises entre -R, +R si R est le rayon de la sphere)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SPHERE = OPER (nom="SPHERE",op=0,sd_prod=Sphere,
+
+ fr = "Definition d'une forme spherique",
+ ang = "Definition of a spherical form",
+ Rayon = SIMP (typ='R',statut='o',fr="Rayon de la sphere"),
+ Secteur = SIMP (typ='R',statut='f',fr="Angle du secteur de la sphere"),
+ TranchesAxiales = NUPL (
+ max = '**',
+ statut = 'f',
+ fr = "Limites des tranches axiales de la sphere sectorisee",
+ elements = (SIMP (typ='R',fr="Cote depart de la tranche"),SIMP (typ='R',fr="Cote finale de la tranche"))) ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe BOITE_RECTANGULAIRE : Classe de definition d'une forme parallelepipedique de cotes paralleles aux axes de reference
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+BOITE_RECTANGULAIRE = OPER (nom="BOITE_RECTANGULAIRE",op=0,sd_prod=BoiteRectangulaire,
+
+ fr = "Definition d'une d'une forme parallelepipedique rectangulaire",
+ ang = "Definition of a rectangular box form",
+ Cotes = SIMP (typ='R',min=3,max=3,statut='o',fr="Longueurs des Cotes de la boite rectangulaire") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe BOITE_GENERALE : Classe de definition d'une forme parallelepipedique quelconque
+# Le plan de base de la boite doit etre le plan xOy. On donne donc uniquement les 2 vecteurs **normaux**
+# aux 2 autres plans, et les 3 longueurs des arretes principales.
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+BOITE_GENERALE = OPER (nom="BOITE_GENERALE",op=0,sd_prod=BoiteGenerale,
+
+ fr = "Definition d'une forme parallelepipedique quelconque",
+ ang = "Definition of a general box form",
+ VecteursDirecteurs = SIMP (typ=Vecteur,min=2,max=2,statut='o',fr="Vecteurs normaux aux faces non horizontales de la boite"),
+ Cotes = SIMP (typ='R',min=3,max=3,statut='o',fr="Longueurs des Cotes de la boite") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CYLINDRE_X : Classe de definition d'une forme cylindrique d'axe parallele a Ox
+# Pour tous les cylindres, la donnee de deux rayons transforme le cylindre circulaire en cylindre elliptique
+# La donnee d'un angle limite le cylindre a ce secteur
+# Pour un secteur d'un cylindre elliptique, il est necessaire de donner en plus l'angle de depart du secteur
+# par rapport a l'axe majeur de l'ellipse
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CYLINDRE_X = OPER (nom="CYLINDRE_X",op=0,sd_prod=CylindreX,
+
+ fr = "Definition d'une forme cylindrique d'axe parallele a Ox",
+ ang = "Definition of a right cylinder form // Ox",
+ Rayons = SIMP (typ='R',max=2,statut='o',fr="Rayons mineur et majeur du cylindre X"),
+ Hauteur = SIMP (typ='R',statut='f',fr="Hauteur du cylindre X"),
+ Angles = SIMP (typ='R',max=2,statut='f',fr="Angles du secteur du cylindre X") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CYLINDRE_Y : Classe de definition d'une forme cylindrique d'axe parallele a Oy
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CYLINDRE_Y = OPER (nom="CYLINDRE_Y",op=0,sd_prod=CylindreY,
+
+ fr = "Definition d'une forme cylindrique d'axe parallele a Oy",
+ ang = "Definition of a right cylinder form // Oy",
+ Rayons = SIMP (typ='R',max=2,statut='o',fr="Rayons mineur et majeur du cylindre Y"),
+ Hauteur = SIMP (typ='R',statut='f',fr="Hauteur du cylindre Y"),
+ Angles = SIMP (typ='R',max=2,statut='f',fr="Angles du secteur du cylindre Y") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CYLINDRE_Z : Classe de definition d'une forme cylindrique d'axe parallele a Oz
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CYLINDRE_Z = OPER (nom="CYLINDRE_Z",op=0,sd_prod=CylindreZ,
+
+ fr = "Definition d'une forme cylindrique d'axe parallele a Oz",
+ ang = "Definition of a right cylinder form // Oz",
+ Rayons = SIMP (typ='R',max=2,statut='o',fr="Rayons mineur et majeur du cylindre Z"),
+ Hauteur = SIMP (typ='R',statut='f',fr="Hauteur du cylindre Z"),
+ Angles = SIMP (typ='R',max=2,statut='f',fr="Angles du secteur du cylindre Z") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CYLINDRE : Classe de definition d'une forme cylindrique quelconque
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CYLINDRE = OPER (nom="CYLINDRE",op=0,sd_prod=Cylindre,
+
+ fr = "Definition d'une forme cylindrique quelconque",
+ ang = "Definition of a general cylinder form",
+ Rayons = SIMP (typ='R',max=2,statut='o',fr="Rayons mineur et majeur du cylindre"),
+ VecteurAxe = SIMP (typ=Vecteur,statut='o',fr="Vecteur directeur de l'axe du cylindre"),
+ Hauteur = SIMP (typ='R',statut='f',fr="Hauteur du cylindre"),
+ Angles = SIMP (typ='R',max=2,statut='f',fr="Angles du secteur du cylindre") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONE : Classe de definition d'un forme conique
+# Une portion de cone peut etre definie en donnant les cotes axiales (origine de l'axe du cone au sommet du cone) de
+# la zone retenue
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONE = OPER (nom="CONE",op=0,sd_prod=Cone,
+
+ fr = "Definition d'une forme conique",
+ ang = "Definition of a conic form",
+ DemiAngleSommet = SIMP (typ='R',statut='o',fr="Demi-angle au sommet"),
+ LimitesAxiales = SIMP (typ='R',min=2,max=2,statut='f',fr="Limites axiales du cone"),
+ VecteurAxe = SIMP (typ=Vecteur,statut='o',fr="Vecteur directeur de l'axe du cone") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PRISME_HEXAGONAL : Classe de definition d'une forme de prisme hexagonal 3D
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PRISME_HEXAGONAL = OPER (nom="PRISME_HEXAGONAL",op=0,sd_prod=PrismeHexagonal,
+
+ fr = "Definition d'une forme de prisme hexagonal 3D",
+ ang = "Definition of a 3D hexagonal form",
+ Rayon = SIMP (typ='R',statut='o',fr="Rayon du cercle circonscrit (=cote de l'hexagone)"),
+ Hauteur = SIMP (typ='R',statut='f',fr="Hauteur de l'hexagone"),
+ VecteurAxe = SIMP (typ=Vecteur,statut='o',fr="Vecteur directeur de l'axe de l'hexagone") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe TORE : Classe de definition d'une forme toroidale
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+TORE = OPER (nom="TORE",op=0,sd_prod=Tore,
+
+ fr = "Definition d'une forme toroidale",
+ ang = "Definition of a toroidal form",
+ Rayons = SIMP (typ='R',min=2,max=2,statut='o',fr="Rayons du tore : 1/2 distance a l'axe et rayon de la section du tore") ) ;
+# ==================================================================================================================================
+# Definition des Classes pour une geometrie 3D : Elements geometriques surfaciques
+# ==================================================================================================================================
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN : Classe de definition d'un plan
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PLAN = OPER (nom="PLAN",op=0,sd_prod=Plan,
+
+ fr = "Definition d'un plan ax + by + cz + d = 0",
+ ang = "Definition of a plane surface ax + by + cz + d = 0",
+ Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Donnee de 3 points non alignes"),
+ Equation = SIMP (typ='R',min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation du plan")
+ );
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN_X : Classe de definition d'un plan perpendiculaire a l'axe Ox
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PLAN_X = OPER (nom="PLAN_X",op=0,sd_prod=PlanX,
+
+ fr = "Definition d'un plan perpendiculaire a Ox",
+ ang = "Definition of a plane surface perpendicular to Ox",
+ Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OyOz") ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN_Y : Classe de definition d'un plan perpendiculaire a l'axe Oy
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PLAN_Y = OPER (nom="PLAN_Y",op=0,sd_prod=PlanY,
+
+ fr = "Definition d'un plan perpendiculaire a Oy",
+ ang = "Definition of a plane surface perpendicular to Oy",
+ Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OxOz") ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN_Z : Classe de definition d'un plan perpendiculaire a l'axe Oz
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PLAN_Z = OPER (nom="PLAN_Z",op=0,sd_prod=PlanZ,
+
+ fr = "Definition d'un plan perpendiculaire a Oz",
+ ang = "Definition of a plane surface perpendicular to Oz",
+ Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OxOy") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POLYEDRE : Classe de definition d'une forme polyhedrique 3D quelconque (N faces, N > 4)
+# Definition surfacique : Donnee des N plans et du choix du cote positif ou negatif
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POLYEDRE = OPER (nom="POLYEDRE",op=0,sd_prod=Polyedre,
+
+ fr = "Definition d'une forme polyhedrique 3D quelconque ",
+ ang = "Definition of a 3D polyhedron form with N > 4 plane faces",
+ Plans = NUPL (
+ min = 5,
+ max = '**',
+ statut = 'o',
+ fr = "Surfaces planes limites du polyedre",
+ elements = (SIMP (typ=(Plan,PlanX,PlanY,PlanZ),fr="Plans limites du polyedre"),
+ SIMP (typ='TXM',into=('Plus','Moins'),fr="Choix du cote positif ou negatif de l'espace")))
+ ) ;
+
+# elements = (SIMP (typ=(Plan,PlanX,PlanY,PlanZ),fr="Plans limites du polyedre"),
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe QUADRIQUE : Classe de definition d'une quadrique 3D
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+QUADRIQUE = OPER (nom="QUADRIQUE",op=0,sd_prod=Quadrique,
+
+ fr = "Definition d'une quadrique 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0",
+ ang = "Definition of a quadratic curve 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0",
+ Equation = SIMP (typ='R',min=2,max=10,statut='o',fr="Coefficients successifs abcdefghij de l'equation d'une quadrique") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CELLULE : Classe de definition d'une cellule (ensemble elementaire de regions annulaires et sectorisees)
+# Apres la hauteur de la cellule, entree des donnees par listes successives pour l'ensemble des couronnes de la
+# cellule, la zone externe etant decrite a part dans l'attribut FormeTechnologique :
+# - Liste des materiaux
+# - Liste des rayons des couronnes correspondantes
+# - Liste des sous-couronnes : - Numero de couronne a discretiser (Numero 1 a partir du centre),
+# - Nombre de sous-couronnes,
+# - Mot-cle Equivolumique si decoupage en sections transverses egales,
+# - Rayons des couronnes intermediaires ou proportions volumiques si mot-cle
+# Proportions indique anterieurement.
+# - Liste des sectorisations : - Nom de couronne a sectoriser ,
+# - Nombre de secteurs,
+# - Mot-cle Equivolumique si decoupage en secteurs egaux et positionnement du premier
+# secteur par rapport a l'axe x, et pas de changement de composition du secteur,
+# - Mot-cle alternatif Angle si on veut modifier ou positionner les secteurs dans la
+# couronne : on donne alors des triplets de donnees pour chaque secteur :
+# - nom du materiau composant le le secteur,
+# - position trigonometrique en \260 du debut du secteur
+# - et angle en \260 du secteur.
+# Le trace des secteurs sont definis en partant du centre de la couronne.
+# Pour la sectorisation de la forme externe, deux cas se presentent :
+# - soit pas de couronnes internes : les secteurs se tracent alors en partant
+# du centre de la forme externe,
+# - dans le cas contraire, les secteurs partent du centre des couronnes.
+# Les secteurs peuvent ne pas couvrir l'ensemble de la couronne.
+# Pour la zone peripherique, on doit definir les cotes de la cellule (cas cartesien), son materiau, sa
+# discretisation, et le decentrage du centre des couronnes par rapport au centre de ce contour peripherique
+# (Coordonnees x,y du centre des couronnes / au centre du contour)
+# Pour le moment, limitation a 2D
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CELLULE = OPER (nom="CELLULE",op=0,sd_prod=Cellule,
+
+ fr = "Definition d'une cellule elementaire d'un assemblage",
+ ang = "Definition of a basic pin cell",
+ Type = SIMP (typ='TXM',defaut='Combustible',
+ into=( 'Combustible','BarreGrise','BarreNoire','BarreAcier','BarreAic','BarreB4c',
+ 'Detecteur','Trou','TubeGuide','Postiche','Pyrex','ExPyrex','Gadolinium',
+ 'CellType1','CellType2','CellType3'),statut='o'),
+ HauteurMoyenne = SIMP (typ='R',defaut=1.,statut='o',fr="Hauteur moyenne de la cellule de base"),
+ Couronnes = FACT (
+ NomsSymboliques = SIMP (typ='TXM',max='**',statut='o',fr="Liste des noms arbitraires des couronnes"),
+ Materiaux = SIMP (typ=Materiau,max='**',statut='o',fr="Liste des materiaux des couronnes"),
+ Temperatures = SIMP (typ=('R','I','TXM'),max='**',statut='o',fr="Liste des temperatures des couronnes"),
+ Rayons = SIMP (typ='R',max='**',statut='o',fr="Liste des rayons des couronnes"),
+ RayonsMineurs = SIMP (typ='R',max='**',statut='f',fr="Liste des rayons mineurs des couronnes elliptiques"),
+ Hauteurs = SIMP (typ='R',max='**',statut='f',fr="Liste des hauteurs des couronnes")),
+ SousCouronnes = FACT (
+ max = '**',
+ statut = 'f',
+ NomCouronne = SIMP (typ='TXM',fr="Nom symbolique de la couronne"),
+ NbSousCouronnes = SIMP (typ='I',fr="Nombre de sous-couronnes de discretisation"),
+ TypeDiscretisation = SIMP (typ='TXM',defaut='Equivolumique',into=('Equivolumique','Proportions','Equidistant'),statut='f'),
+ ProportionsVolumiques = SIMP (typ='R',statut='f',max='**',fr="Proportions volumiques optionnelles des sous-couronnes"),
+ ProfilTemperature = SIMP (typ='R',max='**',statut='f',fr="Profil de temperature")),
+ Homogeneisation = FACT (
+ max = '**',
+ statut = 'f',
+ NomCouronne = SIMP (typ='TXM',fr="Nom arbitraire de la couronne homogeneisee"),
+ ListeCouronnes = SIMP (typ='TXM',max='**',fr="Liste des noms des couronnes jointives a homogeneiser")),
+ Secteurs = FACT (
+ max = '**',
+ statut = 'f',
+ NomCouronne = SIMP (typ='TXM',statut='o',fr="Nom de la couronne ou de la forme externe a sectoriser"),
+ NbSecteurs = SIMP (typ='I',fr="Nombre de secteurs de la couronne",statut='o'),
+ TypeSectorisation = SIMP (typ='TXM',defaut='Coins',into=('Equivolumique','Angle','Coins','MilieuxCotes'),statut='f'),
+ Sectorisation = FACT (
+ max = '**',
+ statut = 'f',
+ Materiaux = SIMP (typ=Materiau,max='**',fr="Materiau des secteurs"),
+ Temperatures = SIMP (typ=('R','I','TXM'),max='**',fr="Temperature des secteurs"),
+ AnglesDepart = SIMP (typ='R',max='**',fr="Angle de depart du secteur"),
+ Angles = SIMP (typ='R',max='**',fr="Angle du secteur"))),
+ FormeExterne = FACT (
+ NomSymbolique = SIMP (typ='TXM',statut='f'),
+ Type = SIMP (
+ typ=(ArcCercle,Carre,Rectangle,Hexagone,Triangle,Polygone),
+ statut = 'f', # la donnee est facultative si la cellule est inserree dans un reseau
+ fr = "Forme geometrique exterieure"),
+ Materiau = SIMP (typ=Materiau,fr="Materiau de la forme externe"),
+ Temperature = SIMP (typ=('R','I','TXM'),fr="Temperature du materiau de la forme externe"),
+ Decentrement = SIMP (
+ typ = 'R',
+ min = 2,
+ max = 3,
+ defaut = (0.,0.,0.),
+ statut = 'f',
+ fr = "Coordonnees xyz du centre des couronnes / centre du contour")) ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CLUSTER : Classe de definition d'un cluster de cellules cylindriques de forme exterieure quelconque
+# Un cluster est defini comme une superposition centree de cadrans telephoniques (a l'ancienne mode), chaque
+# cadran ayant des trous de tailles differentes, l'ensemble etant dispose dans un contour de forme quelconque.
+# Possibilites donnees ci-dessous :
+# - Positionnement des couronnes de canaux, chaque canal etant une CELLULE predefinie,
+# - Definition du fond du cluster :
+# - Serie de couronnes de materiaux distincts
+# - Forme exterieure quelconque
+# - Sectorisation eventuelle de la zone peripherique
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CLUSTER = OPER (nom="CLUSTER",op=0,sd_prod=Cluster,
+ fr = "Definition d'un cluster de cellules cylindriques",
+ ang = "Definition of a cylindrical cell cluster",
+ Hauteur = SIMP (typ='R',defaut=1.,statut='f',fr="Hauteur du cluster"),
+ Couronnes = FACT (
+ Cellules = SIMP (typ=Cellule,max='**',fr="Liste des cellules sur chaque cercle"),
+ Rayons = SIMP (typ='R',max='**',fr="Liste des rayons des couronnes de cellules"),
+ Angles = SIMP (typ='R',max='**',fr="Liste des pas angulaires de positionnement des cellules cylindriques")),
+ FormeGlobale = FACT (
+ NomSymbolique = SIMP (typ='TXM'),
+ RayonsInternes = SIMP (typ='R',max='**',fr="Liste des rayons des couronnes internes",statut='f'),
+ MateriauxInternes = SIMP (typ=Materiau,max='**',fr="Materiaux Couronnes internes",statut='f'),
+ TemperaturesInternes = SIMP (typ=('R','I','TXM'),max='**',fr="Temperatures des materiaux internes",statut='f'),
+ FormeExterne = SIMP (
+ typ = (ArcCercle,Carre,Rectangle,Hexagone,Triangle,Polygone),
+ statut = 'o',
+ fr = "Forme geometrique exterieure"),
+ MateriauExterne = SIMP (typ=Materiau,fr="Materiau de la forme externe",statut='o'),
+ TemperatureExterne = SIMP (typ=('R','I','TXM'),max='**',fr="Temperature du materiau externe",statut='f'),
+ Decentrement = SIMP (
+ typ = 'R',
+ min = 2,
+ max = 3,
+ defaut = (0.,0.,0.),
+ statut = 'f',
+ fr = "Coordonnees xyz du centre des couronnes / centre du contour")),
+ SecteursExternes = FACT (
+ NbSecteurs = SIMP (typ='I',fr="Nombre de secteurs de la couronne externe",statut='o'),
+ TypeSecteur = SIMP (
+ typ = 'TXM',
+ defaut = 'Coins',
+ into = ('Equivolumique','Angle','Coins','MilieuxCotes'),
+ statut = 'f'),
+ Materiaux = SIMP (max='**',typ=Materiau,fr="Materiau des secteurs",statut='f'),
+ AngleDepart = SIMP (max='**',typ='R',fr="Angle de depart des secteurs",statut='f'),
+ AngleSecteur = SIMP (max='**',typ='R',fr="Angle des secteurs",statut='f')) ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ORIENTATION : Classe de definition d'une orientation angulaire dans un plan 2D apres symetrie eventuelle / Ox
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ORIENTATION = OPER (nom="ORIENTATION",op=0,sd_prod=Orientation,
+
+ fr = "Definition d'une orientation d'un reseau ou d'une cellule",
+ ang = "Definition of a cell or lattice orientation",
+ Symetrie = SIMP (typ=(Plan,PlanX,PlanY,PlanZ),statut='f',fr="Indication d'une operation de symetrie / Plan"),
+ AngleRotation = SIMP (typ='R',defaut=0.,statut='f',fr="Angle de rotation en degres"),
+ CentreRotation = SIMP (typ=Point,statut='f',fr='Centre de rotation'),
+ AxeRotation = SIMP (typ=Vecteur,statut='f',fr="Vecteur de l'axe de rotation") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe FORME_POSITIONNEE : Classe de definition d'une forme geometrique positionnee
+# La position est definie a l'aide du centre de la forme geometrique,
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+FORME_POSITIONNEE = OPER (nom="FORME_POSITIONNEE",op=0,sd_prod=FormePositionnee,
+
+ fr = "Definition d'une forme positionnee",
+ ang = "Definition of a shape and its position",
+ Forme = SIMP (
+ typ = (Sphere,BoiteRectangulaire,BoiteGenerale,CylindreX,CylindreY,CylindreZ,Cylindre,Cone,
+ PrismeHexagonal,Tore,Polyedre,Cellule,Cluster),
+ statut = 'o',
+ fr = "Forme geometrique de base a positionner"),
+ PositionCentre = SIMP (typ=Point,statut='o',fr="Coordonnees du centre de la forme geometrique"),
+ OrientationForme = SIMP (typ=Orientation,statut='f',fr="Orientation de la forme")
+ ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GEOMETRIE_SURFACIQUE : Classe de definition d'une geometrie surfacique
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GEOMETRIE_SURFACIQUE = OPER (nom="GEOMETRIE_SURFACIQUE",op=0,sd_prod=GeometrieSurfacique,
+
+ fr = "Definition d'une geometrie surfacique",
+ ang = "Definition of a surfacic geometry",
+ MateriauRemplissage = SIMP (typ=Materiau,statut='o',fr="Materiau de remplissage de la geometrie surfacique"),
+ Surfaces = NUPL (
+ max = '**',
+ statut = 'o',
+ fr = "Serie de couples (Surface,Plus ou Moins) definissant les surfaces limites de la geometrie",
+ elements = (
+ SIMP (typ='TXM'),
+ SIMP (typ='TXM',into=('Plus','Moins'))))
+ );
+
+# simp (typ=(PlanX,PlanY,PlanZ,Plan,CylindreX,CylindreY,CylindreZ,Cylindre,Sphere,Cone,Quadrique)),
+
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GEOMETRIE_COMBINATOIRE : Classe de definition d'une geometrie combinatoire
+# Ecrasement : Constitution par ecrasements successifs (dans l'ordre des donnees) de la
+# Geometrie Initiale, la frontiere externe etant celle de la geometrie initiale
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GEOMETRIE_COMBINATOIRE = OPER (nom="GEOMETRIE_COMBINATOIRE",op=0,sd_prod=GeometrieCombinatoire,
+
+ fr = "Definition d'une geometrie combinatoire",
+ ang = "Definition of a combinatorial geometry",
+ GeometriePremierPlan = SIMP (typ=FormePositionnee,statut='o',fr="Geometrie se trouvant au premier plan"),
+ GeometrieEcrasee = SIMP (typ=FormePositionnee,max='**',statut='f',
+ fr="Geometries ecrasées et surchargées par la GeometriePremierPlan"),
+ GeometrieUnion = SIMP (typ=FormePositionnee,max='**',statut='f',
+ fr="Geometries a reunir a la GeometriePremierPlan en gardant les interfaces, les intersections etant des volumes particuliers"),
+ GeometrieReunion = SIMP (typ=FormePositionnee,max='**',statut='f',
+ fr="Geometries a reunir a la GeometriePremierPlan pour former un volume unique"),
+ GeometrieIntersection = SIMP (typ=FormePositionnee,max='**',statut='f',
+ fr="Geometries a intersecter avec la GeometriePremierPlan")
+ ) ;
+
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CORRESPONDANCE_REPERE_POSITION_RESEAU : Classe de definition de la position des assemblages combustibles dans un REP
+# Reperes (bataille navale ou autre) et
+# Coordonnees cartesiennes entieres des assemblages combustibles pour un type de palier
+# Origine des coordonnees en bas a gauche d'un systeme en xy
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CORRESPONDANCE_REPERE_POSITION_RESEAU = OPER (nom="CORRESPONDANCE_REPERE_POSITION_RESEAU",op=0,sd_prod=CorrespondanceReperePositionReseau,
+
+ fr = "Correspondance entre reperes alphanumeriques et cases d'un reseau",
+ ang = "Alphanumeric identificators and lattice coordinates",
+ Positions = NUPL ( max='**',statut='o',
+ elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire de l'assemblage"),
+ SIMP (typ='I',fr="Premiere Coordonnee entiere de l'assemblage"),
+ SIMP (typ='I',fr="Seconde Coordonnee entiere de l'assemblage")))
+ );
+
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESEAU :
+# Classe de definition d'un reseau de juxtapositions de cellules ou de reseaux
+# Assemblage de cellules ou de reseaux dans une grille rectangulaire ou hexagonale
+# Les positions des cellules et des reseaux dans le nouveau reseau sont a fournir sur les mailles
+# du reseau sans tenir compte des symetries,
+# Le reseau peut etre charge :
+# - de maniere uniforme : un seul type de CELLULE ou de RESEAU
+# - de maniere complete : a chaque maille doit etre affecte un reseau ou une cellule et optionnellement son
+# orientation, l'ordre des donnees dans le plan radial etant celui obtenu en partant de l'element le plus
+# bas a gauche, et dans le sens axial ensuite (eventuellement si 3D)
+# - de maniere partielle : liste des cellules et reseaux charges et leur position xyz dans le nouveau reseau
+# et orientations correspondantes de ces cellules et reseaux
+# Des reperes alphanumeriques arbitraires peuvent etre associes a chaque maille du reseau, ce qui permet
+# si necessaire de manipuler ces elements du reseau par l'intermediaire de ces symboles (exemple des
+# reperes bataille navale des assemblages dans le reseau d'un coeur REP).
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESEAU = OPER (nom="RESEAU",op=0,sd_prod=Reseau,
+
+ fr = "Definition d'un reseau compose de juxtapositions de cellules, de reseaux ou d'assemblages",
+ en = "Definition of a lattice",
+ Identificateur = SIMP (typ='TXM',statut='f',fr="Identificateur arbitraire du reseau"),
+ TypeGeometrie = SIMP (typ='TXM',into=('cartesienne','hexagonale'),defaut='cartesienne',statut='f'),
+ NbMaillesX = SIMP (typ='I',defaut=17,statut='o',fr="Nbre de mailles sur le premier axe du reseau"),
+ NbMaillesY = SIMP (typ='I',defaut=17,statut='f',fr="Nbre de mailles sur le second axe du reseau"),
+ NbMaillesZ = SIMP (typ='I',defaut=1 ,statut='f',fr="Nbre de mailles sur l'axe vertical du reseau"),
+ PasReseau = SIMP (typ='R',defaut=1.26 ,statut='f',max=2,fr="Pas du reseau en X et Y"),
+ MateriauRemplissage = SIMP (typ=Materiau,defaut='ModExt',statut='f',fr="Materiau de remplissage du reseau"),
+ TypeDefinition = SIMP (typ='TXM',statut='f',defaut="Complet",into=("Uniforme","Complet","Partiel")),
+ BlocUniforme = BLOC (condition = "TypeDefinition=='Uniforme'",
+ ElementsBase = SIMP (typ=(Cellule,Reseau,Cluster,GeometrieCombinatoire,AssemblageCombustibleCharge),statut='o',
+ fr = "Remplissage uniforme du nouveau reseau par un element particulier"),
+ OrientationElement = SIMP (typ=Orientation,fr="Orientation de l'element geometrique de base",statut='f')),
+ BlocComplet = BLOC (condition = "TypeDefinition=='Complet'",
+ ElementsBase = NUPL (max='**', statut='f',
+ elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire,AssemblageCombustibleCharge)),
+ SIMP (typ='TXM',fr="Sigle ou repere associe a l'element geometrique de base"))),
+ Chargement = SIMP (typ='TXM',statut='f',max='**',
+ fr="Liste ordonnee des sigles associes aux elements geometriques charges"),
+ Regroupement = SIMP (typ='I',statut='f',max='**',
+ fr="Indices de regroupement des elements en approximation multicellule"),
+ Reperes = SIMP (typ='TXM',max='**',statut='f',fr="Reperes arbitraires des elements charges"),
+ ),
+ BlocPartiel = BLOC (condition = "TypeDefinition=='Partiel'",
+ Chargement = FACT (max='**',
+ ElementsPositionnes = NUPL (max='**', statut='f',
+ elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire,AssemblageCombustibleCharge)),
+ SIMP (typ='I',min=2,max=2,fr="Coordonnees i j de l'element geometrique de base"))),
+ ElementsReperes = NUPL (max='**', statut='f',
+ elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire,AssemblageCombustibleCharge)),
+ SIMP (typ='TXM',fr="Repere associe a l'element geometrique de base"))),
+ CorrespondanceReperePositions = SIMP (typ=CorrespondanceReperePositionReseau,
+ statut='f',
+ fr="Correspondance entre Repere alphanumerique et coordonnees dans le reseau"),
+ OrientationElement = SIMP (typ=Orientation,max='**',statut='f',fr="Orientation des elements a positionner"),
+ )),
+ ZonePeripherique = FACT (
+ Epaisseurs = SIMP (typ='R',max='**',statut='f',fr="Liste des epaisseurs des couches peripheriques"),
+ Materiaux = SIMP (typ=Materiau,max='**',statut='f',fr="Liste des materiaux des couches peripheriques"),
+ MateriauExterne = SIMP (typ=Materiau,statut='f',fr="Materiau de remplissage de la zone externe du reseau hexagonal"))
+ );
+
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GRILLE_ASSEMBLAGE : Classe de definition des grilles composant le squelette des assemblages combustibles
+# Caracteristiques technologiques (dimension, materiaux de composition) et positionnement simplifie
+# des materiaux dans les canaux de l'assemblage pour dilution homogene a 2D dans le milieu peripherique.
+# - Materiaux fournis sous forme de couples (nom de materiau et masse en g)
+# - Repartition decrite en donnant pour une liste de materiaux (faisant partie des materiaux
+# precedemment indiques) la liste des types de cellules (precedee du mot-cle TypeCellule) et des
+# types de materiaux (precedes du mot-cle TypeMateriau) devant etre modifies par la presence des
+# grilles
+# < liste de MATERIAU >,
+# TypeCellule < liste de types de cellule >,
+# TypeMateriau < liste de types de materiau >
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GRILLE_ASSEMBLAGE = OPER (nom="GRILLE_ASSEMBLAGE",op=0,sd_prod=GrilleAssemblage,
+
+ fr = "Definition d'une grille d'assemblage",
+ ang = "Definition of an elementary assembly grid",
+ TypeGrille = SIMP (typ='TXM',defaut='GrilleMelange',statut='f',fr="Type de grille de structure assemblage"),
+ Hauteur = SIMP (typ='R',defaut=3.3,statut='f',fr="Hauteur de la grille de structure assemblage"),
+ Largeur = SIMP (typ='R',defaut=21.338,statut='f',fr="Largeur de la grille de structure assemblage"),
+ MateriauxMasse = NUPL (
+ elements = (SIMP (typ=Materiau),SIMP (typ='R')),
+ max = '**',
+ statut = 'f',
+ fr = "Serie de couples (Materiau,masse en g) de composition de la grille"),
+ Repartition = FACT (
+ max = '**',
+ statut = 'o',
+ MateriauGrille = SIMP (typ=Materiau,fr="Nom du materiau a repartir",statut='o'),
+ TypeCellule = SIMP (typ='TXM',max='**',statut='o',fr="Liste des types de cellule ou est reparti le materiau"),
+ TypeMateriau = SIMP (typ='TXM',max='**',statut='o') )
+ ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de l'embout inferieur d'un assemblage combustible
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieInferieureAssemblageCombustible,
+
+ fr = "Definition de la partie inferieure d'un assemblage combustible",
+ ang = "Definition of the bottom part of a fuel assembly",
+ MateriauEmbout = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="Materiau de l'embout inferieur"),
+ MasseBouchonInferieurCrayonCombustible = SIMP (typ='R',statut='o',fr="Masse du bouchon inferieur du crayon combustible"),
+ HauteurBouchonInferieurCrayonCombustible = SIMP (typ='R',statut='o',fr="Hauteur du bouchon inferieur du crayon combustible"),
+ MateriauBouchonInferieurCrayonCombustible = SIMP (typ=Materiau, statut='f',defaut='ZIRCALOY',fr="Materiau du bouchon inferieur du crayon combustible"),
+ MasseEmbout = SIMP (typ='R',statut='o',fr="Masse de l'embout inferieur"),
+ EpaisseurPlaqueAdaptatrice = SIMP (typ='R',statut='o',fr="Epaisseur de la plaque adaptatrice de l'embout inferieur"),
+ LargeurPlaqueAdaptatrice = SIMP (typ='R',statut='o',fr="Largeur de la plaque adaptatrice de l'embout inferieur"),
+ TrousPlaqueAdaptatrice = NUPL (
+ max = '**',
+ statut = 'o',
+ elements = ( SIMP (typ='I',statut='o',fr="Nombre de trous de taille definie ci-apres"),
+ SIMP (typ='TXM',into=('Rayon','Cotes'),statut='o',fr="Choix de la forme des trous, elliptique ou rectangulaire"),
+ SIMP (typ='R',min=2,max=2,statut='o',fr="Rayons ou cotes des trous"),
+ SIMP (typ='TXM',defaut='Hauteur',into=('Hauteur','Epaisseur'),statut='o',fr="Mot-cle au choix"),
+ SIMP (typ='R',statut='o',fr="Hauteur des trous dans la plaque adaptatrice"))),
+ JeuBouchonCombustiblePlaque = SIMP (typ='R',statut='o',fr="Hauteur du jeu entre bouchon combustible et plaque adaptatrice"),
+ HauteurPied = SIMP (typ='R',statut='o',fr="Hauteur du pied de l'embout inferieur"),
+ CapuchonRint = SIMP (typ='R',statut='f',fr="Rayon interne du capuchon"),
+ CapuchonRext = SIMP (typ='R',statut='f',fr="Rayon externe du capuchon"),
+ HauteurVisEpaulee = SIMP (typ='R',statut='f',fr="Hauteur des vis epaulees des tubes guides"),
+ MasseVisEpaulee = SIMP (typ='R',statut='f',fr="Masse totale des vis epaulees des tubes guides"),
+ VisEpauleeRint = SIMP (typ='R',statut='f',fr="Rayon interne d'une vis epaulee"),
+ VisEpauleeRext = SIMP (typ='R',statut='f',fr="Rayon externe d'une vis epaulee"),
+ MasseFiltre = SIMP (typ='R',statut='f',fr="Masse du filtre anti-debris"),
+ MateriauFiltre = SIMP (typ=Materiau, statut='f', defaut='INCONEL',fr="Materiau du filtre anti-debris"),
+ HauteurCale = SIMP (typ='R',statut='f',fr="Hauteur de la cale dans le crayon combustible"),
+ MateriauCale = SIMP (typ=Materiau, statut='f', defaut='ACIER',fr="Materiau de la cale dans le crayon combustible"),
+ RayonPionCentrage = SIMP (typ='R',statut='f',fr="Rayon externe des pions de centrage de la plaque inferieure coeur"),
+ HauteurPionCentrage = SIMP (typ='R',statut='f',fr="Hauteur des pions de centrage de la plaque inferieure coeur"),
+ HauteurOgivePionCentrage = SIMP (typ='R',statut='f',fr="Hauteur de l'ogive des pions de centrage de la plaque inferieure coeur"),
+ MateriauPionCentrage = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="Materiau des pions de centrage de la plaque inferieure coeur"),
+ HauteurBouchonTubeGuide = SIMP (typ='R',statut='f',fr="Hauteur des bouchons des tubes guides"),
+ MateriauBouchonTubeGuide = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="Materiau des bouchons des tubes guides")
+ ) ;
+
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de l'embout superieur d'un assemblage combustible
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieSuperieureAssemblageCombustible,
+
+ fr = "Definition de la partie superieure d'un assemblage combustible",
+ ang = "Definition of the top part of a fuel assembly",
+ MateriauEmbout = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="materiau de l'embout superieur"),
+ MasseBouchonSuperieurCrayonCombustible = SIMP (typ='R',statut='o',fr="Masse du bouchon superieur du crayon combustible"),
+ HauteurBouchonSuperieurCrayonCombustible = SIMP (typ='R',statut='o',fr="Hauteur du bouchon superieur du crayon combustible"),
+ MateriauBouchonSuperieurCrayonCombustible = SIMP (typ=Materiau, statut='f',defaut='ZIRCALOY',fr="Materiau du bouchon superieur du crayon combustible"),
+ RessortCrayonCombustible = SIMP (typ='R',statut='o',fr="Masse du ressort du crayon combustible"),
+ HauteurChambreExpansion = SIMP (typ='R',statut='o',fr="Hauteur de la chambre d'expansion"),
+ MasseEmbout = SIMP (typ='R',statut='o',fr="Masse de l'embout superieur"),
+ HauteurEmbout = SIMP (typ='R',statut='o',fr="Hauteur de l'embout superieur"),
+ MasseRessortsEmbout = SIMP (typ='R',statut='o',fr="Masse des ressorts de l'embout superieur"),
+ MateriauRessortsEmbout = SIMP (typ=Materiau, statut='f', defaut='INCONEL',fr="Materiau des ressorts de l'embout superieur"),
+ EpaisseurPlaqueAdaptatrice = SIMP (typ='R',statut='o',fr="Epaisseur de la plaque adaptatrice"),
+ LargeurPlaqueAdaptatrice = SIMP (typ='R',statut='o',fr="Largeur de la plaque adaptatrice"),
+ TrousPlaqueAdaptatrice = NUPL (
+ max = '**',
+ statut = 'o',
+ elements = ( SIMP (typ='I',),
+ SIMP (typ='TXM',into=('Rayon','Cotes')),
+ SIMP (typ='R',min=2,max=2,fr="Rayons mineur et majeur ou Cotes du trou"),
+ SIMP (typ='TXM',into=('Hauteur','Epaisseur')),
+ SIMP (typ='R',fr="Hauteur du trou"))),
+ JeuBouchonCombustiblePlaque = SIMP (typ='R',statut='o',fr="Hauteur du jeu entre Bouchon combustible et Plaque adaptatrice"),
+ EpaisseurJupe = SIMP (typ='R',statut='o',fr="Epaisseur de la jupe de l'embout superieur"),
+ HauteurJupe = SIMP (typ='R',statut='f',fr="Hauteur de la jupe de l'embout superieur"),
+ RayonPionCentrage = SIMP (typ='R',statut='f',fr="Rayon des pions de centrage superieurs"),
+ HauteurPionCentrage = SIMP (typ='R',statut='f',fr="Hauteur des pions de centrage superieurs"),
+ HauteurOgivePionCentrage = SIMP (typ='R',statut='f',fr="Hauteur de l'ogive des pions de centrage superieurs"),
+ MateriauPionCentrage = SIMP (typ=Materiau, statut='f',defaut='ACIER',fr="Materiau des pions de centrage superieurs"),
+ RayonInterneManchon = SIMP (typ='R',statut='f',fr="Rayon interne des manchons des tubes guides"),
+ RayonExterneManchon = SIMP (typ='R',statut='f',fr="Rayon externe des manchons des tubes guides"),
+ HauteurManchon = SIMP (typ='R',statut='f',fr="Hauteur des manchons des tubes guides"),
+ MasseManchon = SIMP (typ='R',statut='f',fr="Masse d'un manchon des tubes guides") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_AUTOPROTECTION : Classe de definition des donnees d'autoprotection du code de reseau
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_AUTOPROTECTION = OPER (nom="OPTIONS_AUTOPROTECTION",op=0,sd_prod=OptionsAutoprotection,
+
+ fr = "Definition des donnees d'autoprotection des resonances",
+ ang = "Definition of resonance self shielding data",
+ TypeCombustible = SIMP (typ='TXM',max='**',statut='o',fr="Type de combustible auquel s'appliquent ces options d'autoprotection"),
+ MethodeAutoprotection = SIMP (typ='TXM',into=('SanchezCoste','SousGroupes'),defaut='SanchezCoste',statut='f'),
+ IsotopesAutoproteges = NUPL (
+ max = '**',
+ elements = (SIMP (typ=Isotope,statut='o',fr="Nom de l'isotope a autoproteger"),
+ SIMP (typ='TXM',into=('Moyenne','Detaillee','Couronne'),statut='o'),
+ SIMP (typ='TXM',into=('Materiaux','Cellules'),statut='f',fr="Choix d'autoprotection sur les materiaux ou les cellules"),
+ SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de materiaux ou de cellules concernes"))),
+ Irradiations = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs d'autoprotection"),
+ IrradiationsPoison = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs d'autoprotection des poisons integres au combustible")
+ ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ASSEMBLAGE_TYPE : Classe de definition d'un type d'assemblage (ensemble de crayons ou de reseaux quelconques)
+# Rajout des structures grilles et embouts (dans le cas des REP)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ASSEMBLAGE_TYPE = OPER (nom="ASSEMBLAGE_TYPE",op=0,sd_prod=AssemblageType,
+
+ fr = "Definition d'un assemblage type et des elements associes eventuels",
+ ang = "Definition of an assembly type and its associated elements",
+# TypeGeometrie = SIMP (typ='TXM',into=('Cartesienne','Hexagonale','Generale'),defaut='Cartesienne',statut='f'),
+# TypeAbsorbant = SIMP (typ='TXM',defaut='0P',statut='f'),
+# Identificateur = SIMP (typ='TXM',defaut='AFA 17 0P 0P',statut='f'),
+ Geometrie = SIMP (typ=(Cellule,Reseau,GeometrieCombinatoire),statut='o',max='**',
+ fr="Liste des geometries associees a l'assemblage"),
+# Symetrie = SIMP (typ='TXM',into=('1/4','1/8','1/2','PI','PI/2','PI/6','PI/3','2PI/3','SansSymetrie'),
+# defaut='SansSymetrie',statut='f'),
+# ZoneCalculee = SIMP (typ='TXM',defaut='Entiere',
+# into=('Entiere','1/2 N','1/2 S','1/2 E','1/2 O','1/4 N-E','1/4 N-O','1/4 S-E',
+# '1/4 S-O','1/8 E-NE','1/8 N-NE','1/8 N-NO',
+# '1/8 O-SO','1/8 S-SO','1/8 S-SE','1/8 E-SE',
+# '1/6 E','1/6 NE','1/6 NO','1/6 O''1/6 SO','1/6 SE'),statut='f'),
+ GrillesStructure = NUPL (
+ max = '**',
+ statut = 'f',
+ elements = ( SIMP (typ=GrilleAssemblage,fr="Type de grille"),
+ SIMP (typ='R',max='**',fr="Positions axiales du type de grille"))),
+ PartieInferieure = SIMP (typ=PartieInferieureAssemblageCombustible,statut='f',fr="Type d'embout inferieur"),
+ PartieSuperieure = SIMP (typ=PartieSuperieureAssemblageCombustible,statut='f',fr="Type d'embout superieur"),
+ ElementsAssocies = SIMP (typ=(ElementsGrappeCommande,ElementsAbsorbantsFixes,GrappeBouchonAssemblage),max='**',statut='f')
+# ZoneCalculee = SIMP (typ='DROITE',min=2,max=2,statut='f',fr="Droites delimitant la zone de calcul"),
+# DonneesAutoprotection = SIMP (typ=Autoprotection,statut='f')
+ ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ASSEMBLAGE_COMBUSTIBLE_CHARGE : Classe de definition d'un assemblage combustible charge dans un coeur REP
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ASSEMBLAGE_COMBUSTIBLE_CHARGE = OPER (nom="ASSEMBLAGE_COMBUSTIBLE_CHARGE",op=0,sd_prod=AssemblageCombustibleCharge,
+
+ fr = "Definition d'un assemblage combustible charge en reacteur",
+ ang = "Definition of a core loaded fuel assembly ",
+ Identificateur = SIMP (typ='TXM',statut='o',fr="Code d'identification de l'assemblage combustible"),
+ Constructeur = SIMP (typ='TXM',statut='o',into=('FRAMATOME','SIEMENS','ABB','ENUSA','WESTINGHOUSE')),
+ TypeAssemblage = SIMP (typ=AssemblageType,statut='o'),
+ CleControle = SIMP (typ='TXM',statut='o'),
+ Engagement = SIMP (typ='TXM',statut='o'),
+ NumeroLot = SIMP (typ='I',statut='o'),
+ EnrichissementTheoriqueU235 = SIMP (typ='R',statut='o'),
+ EnrichissementTheoriquePu = SIMP (typ='R',statut='f'),
+ MasseTheoriqueNL = SIMP (typ='R',statut='o'),
+ MasseInitialeUPu = SIMP (typ='R',statut='o'),
+ MasseInitialeU232 = SIMP (typ='R',statut='f'),
+ MasseInitialeU234 = SIMP (typ='R',statut='f'),
+ MasseInitialeU235 = SIMP (typ='R',statut='f'),
+ MasseInitialeU236 = SIMP (typ='R',statut='f'),
+ MasseInitialePu239 = SIMP (typ='R',statut='f'),
+ MasseInitialePu240 = SIMP (typ='R',statut='f'),
+ MasseInitialePu241 = SIMP (typ='R',statut='f'),
+ MasseInitialePu242 = SIMP (typ='R',statut='f'),
+ MasseInitialeAm241 = SIMP (typ='R',statut='f'),
+ AbsorbantFixe = SIMP (typ='TXM',statut='f'),
+ Campagnes = NUPL (
+ max = '**',
+ statut = 'f',
+ elements = ( SIMP (typ='TXM',fr="Identificateur de la campagne"),SIMP (typ='TXM',fr="Etat de l'assemblage"))),
+ BibliothequeNeutronique = SIMP (typ='TXM',statut='f',fr="Repertoire des Bibliothèques neutroniques associees") ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe ELEMENT_BARRE : Classe de définition d'une barre element d'un assemblage
+# Definition des barres des grappes de commande (barre et gaine, et composants axiaux)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ELEMENT_BARRE = OPER (nom="ELEMENT_BARRE",op=0,sd_prod=ElementBarre,
+
+ fr = "Définition d'une barre element d'un assemblage",
+ en = "Definition of an assembly rod element",
+ MateriauPartieInferieure = SIMP (typ=Materiau,statut='o',defaut='ACIER',fr="Materiau composant la partie inferieure de la barre"),
+ MateriauPartieSuperieure = SIMP (typ=Materiau,statut='o',defaut='ACIER',fr="Materiau composant la partie superieure de la barre"),
+ HauteurBarre = SIMP (typ='R',statut='o',fr="Hauteur de la barre"),
+ HauteurPartieInferieure = SIMP (typ='R',statut='f',fr="Hauteur de la partie inferieure de la barre"),
+ HauteurPartieSuperieure = SIMP (typ='R',statut='f',fr="Hauteur de la partie superieure de la barre"),
+ RayonInternePartieInferieure = SIMP (typ='R',statut='f',defaut=0.,fr="Rayon Interne de la partie inferieure de la barre"),
+ RayonInternePartieSuperieure = SIMP (typ='R',statut='f',defaut=0.,fr="Rayon Interne de la partie superieure de la barre"),
+ RayonExternePartieInferieure = SIMP (typ='R',statut='o',fr="Rayon Externe de la partie inferieure de la barre"),
+ RayonExternePartieSuperieure = SIMP (typ='R',statut='f',fr="Rayon Externe de la partie superieure de la barre"),
+ MasseRessort = SIMP (typ='R',statut='o',fr="Masse du ressort de la barre"),
+ MateriauRessort = SIMP (typ=Materiau,statut='o',fr="Materiau du ressort de la barre"),
+ HauteurRessort = SIMP (typ='R',statut='o',fr="Hauteur du ressort de la barre"),
+ HauteurBouchonInferieur = SIMP (typ='R',defaut=0.,statut='f',fr="Hauteur du bouchon inferieur de la barre"),
+ HauteurBouchonSuperieur = SIMP (typ='R',defaut=0.,statut='f',fr="Hauteur du bouchon superieur de la barre"),
+ RayonBouchonInferieur = SIMP (typ='R',defaut=0.,statut='f',fr="Rayon externe du bouchon inferieur de la barre"),
+ RayonBouchonSuperieur = SIMP (typ='R',defaut=0.,statut='f',fr="Rayon externe du bouchon superieur de la barre"),
+ MateriauGaine = SIMP (typ=Materiau,defaut='ACIER',statut='o',fr="Materiau de la gaine externe de la barre"),
+ RayonInterneGaine = SIMP (typ='R',defaut=0.,statut='f', fr="Rayon Interne de la gaine externe de la barre"),
+ RayonExterneGaine = SIMP (typ='R',defaut=0.,statut='f', fr="Rayon Externe de la gaine externe de la barre")
+ ) ;
+#----------------------------------------------------------------------------------------------------------------------------------
+# Classe ELEMENTS_GRAPPE_COMMANDE : Classe de définition des éléments des grappes de commande
+# Association avec les différents types de barres absorbantes
+# Description simplifiée de l'araignée et du bouchon des barres
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ELEMENTS_GRAPPE_COMMANDE = OPER (nom="ELEMENTS_GRAPPE_COMMANDE",op=0,sd_prod=ElementsGrappeCommande,
+
+ fr = "Définition des éléments des grappes de commande",
+ en = "Definition of control rod cluster components",
+ ElementsBarre = SIMP (typ= ElementBarre, max='**',statut='f',fr="Liste des barres absorbantes associees"),
+ HauteurPasInsertion = SIMP (typ='R',defaut=1.5875, statut='f'),
+ HauteurInsertionMax = SIMP (typ='R',defaut=300., statut='f'),
+ NbPasInsertion = SIMP (typ='I',defaut=0, statut='f'),
+ HauteurAraignee16P = SIMP (typ='R',defaut=0., statut='f'),
+ HauteurAraignee4M = SIMP (typ='R',defaut=0., statut='f'),
+ HauteurAraignee4G = SIMP (typ='R',defaut=0., statut='f'),
+ HauteurPommeau = SIMP (typ='R',defaut=0., statut='f'),
+ RayonPommeau = SIMP (typ='R',defaut=0., statut='f') ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ELEMENTS_ABSORBANTS_REP : Classe de definition des elements des grappes d'absorbants fixes
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ELEMENTS_ABSORBANTS_FIXES = OPER (nom="ELEMENTS_ABSORBANTS_FIXES",op=0,sd_prod=ElementsAbsorbantsFixes,
+
+ fr = "Definition des elements des grappes d'absorbants fixes",
+ ang = "Definition of non movable absorber control rod cluster elements",
+# Limitation a 12 caracteres
+# HBouchInfPyrex = SIMP (typ='R',statut='f'),
+# RBouchInfPyrex = SIMP (typ='R',statut='f'),
+# HZoneVidePyrex = SIMP (typ='R',statut='f'),
+# HBouchSupPyrex = SIMP (typ='R',statut='f'),
+# RBouchSupPyrex = SIMP (typ='R',statut='f'),
+# MatBouchonPyrex = SIMP (typ=Materiau,statut='f')
+ CrayonPyrexHauteurBouchonInferieur = SIMP (typ='R',statut='f'),
+ CrayonPyrexRayonBouchonInferieur = SIMP (typ='R',statut='f'),
+ CrayonPyrexHauteurZoneVide = SIMP (typ='R',statut='f'),
+ CrayonPyrexHauteurBouchonSuperieur = SIMP (typ='R',statut='f'),
+ CrayonPyrexRayonBouchonSuperieur = SIMP (typ='R',statut='f'),
+ CrayonPyrexMateriauBouchon = SIMP (typ=Materiau,statut='f') ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GRAPPE_BOUCHON_ASSEMBLAGE_REP : Classe de definition d'une grappe bouchon
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GRAPPE_BOUCHON_ASSEMBLAGE = OPER (nom="GRAPPE_BOUCHON_ASSEMBLAGE",op=0,sd_prod=GrappeBouchonAssemblage,
+
+ fr = "Definition d'une grappe bouchon d'assemblage combustible",
+ ang = "Definition of ",
+ HauteurBouchonPartieBasse = SIMP (typ='R',statut='f'),
+ RayonBouchonPartieBasse = SIMP (typ='R',statut='f'),
+ HauteurBouchonPartieIntermediaire1 = SIMP (typ='R',statut='f'),
+ RayonBouchonPartieIntermediaire1 = SIMP (typ='R',statut='f'),
+ HauteurBouchonPartieIntermediaire2 = SIMP (typ='R',statut='f'),
+ RayonBouchonPartieIntermediaire2 = SIMP (typ='R',statut='f'),
+ HauteurBouchonRegionSousPlaque = SIMP (typ='R',statut='f'),
+ HauteurBouchonRegionSurPlaque = SIMP (typ='R',statut='f'),
+ RayonBouchonRegionPlaque = SIMP (typ='R',statut='f'),
+ HauteurSupport = SIMP (typ='R',statut='f'),
+ MasseGrappe = SIMP (typ='R',statut='f'),
+ Materiau = SIMP (typ=Materiau,statut='f') ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ELEMENTS_ASSEMBLAGE : Classe de définition des éléments associes a l'assemblage combustibe REP
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - class ReflexionIsotrope (TObjet):pass
+#ELEMENTS_ASSEMBLAGE = OPER (nom="ELEMENTS_ASSEMBLAGE",op=0,sd_prod=ElementsAssemblage,
+#
+# fr = "Definition des elements associes a l'assemblage",
+# ang = "Definition of the fuel assembly associated elements",
+# GrappeBouchon = SIMP (typ=GrappeBouchonAssemblage,statut='o'),
+# CrayonsAbsorbants = SIMP (typ=ElementsAbsorbants,statut='o'),
+# GrappesCommande = SIMP (typ=ElementsGrappeCommande,statut='o')
+# ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe SYSTEME_UNITES_MESURE : Classe de definition du systeme d'unites pour l'expression des donnees
+# Sauf indication contraire dans les attributs des classes, les unites utilisees sont definies
+# dans la classe ci-dessous
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SYSTEME_UNITES_MESURE = OPER (nom="SYSTEME_UNITES_MESURE",op=0,sd_prod=SystemeUnitesMesure,
+
+ fr = "Definition du systeme d'unites pour l'expression des donnees",
+ ang = "Definition of data unit system",
+ Longueur = SIMP (typ='TXM',statut='o',defaut='cm'),
+ Masse = SIMP (typ='TXM',statut='o',defaut='g'),
+ Temps = SIMP (typ='TXM',statut='o',defaut='s'),
+ Irradiation = SIMP (typ='TXM',statut='o',defaut='MWj/t'),
+ Fluence = SIMP (typ='TXM',statut='o',defaut='n/kb'),
+ SectionEfficaceMicroscopique = SIMP (typ='TXM',statut='o',defaut='barn'),
+ SectionEfficaceMacroscopique = SIMP (typ='TXM',statut='o',defaut='cm-1'),
+ MasseVolumique = SIMP (typ='TXM',statut='o',defaut='g/cm3'),
+ Concentration = SIMP (typ='TXM',statut='o',defaut='E24*atome/cm3'),
+ Temperature = SIMP (typ='TXM',statut='o',defaut='C'),
+ ProportionMateriau = SIMP (typ='R',statut='o',defaut=0.01),
+ Taux = SIMP (typ='R',statut='o',defaut=0.01),
+ Enrichissement = SIMP (typ='R',statut='o',defaut=0.01),
+ Pression = SIMP (typ='TXM',statut='o',defaut='bar') ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classes CONDITION_LIMITE elementaires : Classes de definition de Conditions limites elementaires
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+VIDE = OPER (nom="VIDE",op=0,sd_prod=Vide,
+ fr = "Condition aux limites de vide",
+ ang= "Void boundary condition" ) ;
+
+REFLEXION_ISOTROPE = OPER (nom="REFLEXION_ISOTROPE",op=0,sd_prod=ReflexionIsotrope,
+ fr = "Condition aux limites de reflexion isotrope",
+ ang= "Isotropic Reflexion boundary condition" ) ;
+
+REFLEXION_SPECULAIRE = OPER (nom="REFLEXION_SPECULAIRE",op=0,sd_prod=ReflexionSpeculaire,
+ fr = "Condition aux limites de reflexion speculaire",
+ ang= "Specular Reflexion boundary condition" ) ;
+ALBEDO = OPER (nom="ALBEDO",op=0,sd_prod=Albedo,
+ fr = "Condition aux limites d'albedo",
+ ang= "Albedo boundary condition",
+ albedo = SIMP (typ='R',statut='o',max='**') ) ;
+TRANSLATION = OPER (nom="TRANSLATION",op=0,sd_prod=Translation,
+ fr = "Condition aux limites de translation",
+ ang = "Translation boundary condition",
+ Vecteur = SIMP (typ=Vecteur,statut='o') ) ;
+ROTATION = OPER (nom="ROTATION",op=0,sd_prod=Rotation,
+ fr = "Condition aux limites de rotation",
+ ang = "Rotational boundary condition",
+ Centre = SIMP (typ=Point,statut='o'),
+ Angle = SIMP (typ='R',statut='o',defaut=90.) ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONDITION_LIMITE_SPECIALE : Classe de definition de Conditions limites sur les surfaces elementaires de la geometrie
+# modifiant la CL generale
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONDITION_LIMITE_SPECIALE = OPER (nom="CONDITION_LIMITE_SPECIALE",op=0,sd_prod=ConditionLimiteSpeciale,
+
+ fr = "Condition limite particuliere qui sera plaquee sur la geometrie",
+ ang = "Special boundary condition added to the geometry",
+ Type = SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation),statut='o'),
+ ZonesApplication = SIMP ( typ=(Segment,ArcCercle,Conique),max='**',statut='o',
+ fr="Liste des segments ou surfaces sur lesquels porte la condition limite")
+ ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONDITION_LIMITE_GENERALE : Classe de definition des conditions limites de l'objet geometrique complet
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONDITION_LIMITE_GENERALE = OPER (nom="CONDITION_LIMITE_GENERALE",op=0,sd_prod=ConditionLimiteGenerale,
+
+ fr = "Condition limite a la surface externe de la geometrie complete",
+ ang = "Boundary condition for the complete geometry",
+ ZoneCalculee = NUPL (statut='f',min=2,max=2,fr="Droites ou plans delimitant la zone de calcul",
+ elements = (SIMP (typ=(Droite,Plan)), SIMP (typ='TXM',into=('Plus','Moins')))),
+ ConditionParDefaut = SIMP (typ=(Vide, ReflexionIsotrope, ReflexionSpeculaire, Albedo),
+ defaut=ReflexionIsotrope,
+ statut='f',
+ fr="Condition limite par defaut"),
+ ConditionsParticulieres = NUPL (
+ fr = "Conditions particulieres modifiant localement la condition limite par defaut",
+ max = '**',
+ statut = 'f',
+ elements = (SIMP (typ='TXM',into=('X-','X+','Y-','Y+','Z-','Z+','R+','X','Y','Z')),
+ SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation)))),
+ ConditionsSupplementaires = SIMP (
+ typ = ConditionLimiteSpeciale,
+ statut = 'f',
+ max = '**',
+ fr = "Conditions limites non exprimables avec les donnees precedentes")
+ ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POSITION_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de la position des assemblages combustibles dans un REP
+# Reperes (bataille navale ou autre) et
+# Coordonnees cartesiennes entieres des assemblages combustibles pour un type de palier
+# Origine des coordonnees en bas a gauche d'un systeme en xy
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POSITION_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="POSITION_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PositionAssemblageCombustible,
+
+ fr = "Position des assemblages combustibles",
+ ang = "Position of fuel assemblies",
+ NbAssemblagesCombustibles = SIMP (typ='I',statut='o',defaut=157),
+ regles=(UN_PARMI('PositionReseau', 'Positions'),),
+ PositionReseau = SIMP (typ=CorrespondanceReperePositionReseau,statut="f"),
+ Positions = NUPL ( max='**',statut='f',
+ elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire de l'assemblage"),
+ SIMP (typ='I' ,fr="Premiere Coordonnee entiere de l'assemblage"),
+ SIMP (typ='I' ,fr="Seconde Coordonnee entiere de l'assemblage")))
+ ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POSITION_INSTRUMENTATION : Classe de definition de la position des assemblages instrumentes dans un REP
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POSITION_INSTRUMENTATION_INTERNE = OPER (nom="POSITION_INSTRUMENTATION_INTERNE",op=0,sd_prod=PositionInstrumentationInterne,
+
+ fr = "Definition de la position des assemblages instrumentes",
+ ang = "Definition of neutron flux detector position",
+# TypePalier = SIMP (typ='TXM',max='**',statut='o'),
+ NbAssemblagesInstrumentes = SIMP (typ='I',statut='o'),
+ Positions = NUPL (
+ max = '**',
+ statut = 'o',
+ elements = (SIMP (typ='TXM',fr= "Type d'instrumentation"),
+ SIMP (typ='I',min=2,max=2,fr= "Coordonnees entieres de l'assemblage instrumente dans le reseau"))) ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POSITION_GRAPPES_COMMANDE : Classe de definition des grappes de commande pour un type de schema de grappe
+# Donnees de la position (coordonnees entieres en xy), du type de grappe et du groupe d'appartenance
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POSITION_GRAPPES_COMMANDE = OPER (nom="POSITION_GRAPPES_COMMANDE",op=0,sd_prod=PositionGrappesCommande,
+
+ fr = "Definition des grappes de commande pour un schema d'implantation particulier",
+ ang = "Definition of control rod cluster position ant type",
+ TypeSchema = SIMP (typ='TXM',statut='o'),
+ NbTotalGrappes = SIMP (typ='I',statut='o'),
+ PositionsEtType = NUPL (max='**',statut='o',
+ elements=(SIMP (typ='TXM',fr="Nom du groupe de grappes"),
+ SIMP (typ='I',fr="Nombre de grappes du groupe"),
+ SIMP (typ='TXM',fr="Type de grappes"),
+ SIMP (typ='I',max='**',fr="Coordonnees des grappes"))) ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe STRUCTURES_INTERNES_REACTEUR : Classe de definition des structures internes du coeur du reacteur
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+STRUCTURES_INTERNES_REACTEUR = OPER (nom="STRUCTURES_INTERNES_REACTEUR",op=0,sd_prod=StructuresInternesReacteur,
+
+ fr = "Definition des structures internes du coeur",
+ ang = "Definition of core internal structures",
+ PlaqueInferieureCoeur = FACT (
+ Epaisseur = SIMP (typ='R',statut='o', fr="Epaisseur de la plaque inferieure du coeur"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque inferieure du coeur"),
+ Trous = NUPL (
+ max = '**',
+ elements = (
+ SIMP (typ='I', fr="Nombre de trous dont on donne les dimensions"),
+ SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot-cle indiquant si on donne le rayon ou les cotes"),
+ SIMP (typ='R',min=2,max=2, fr="Rayon ou cotes des trous"),
+ SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"),
+ SIMP (typ='R', fr="Hauteur du trou")))),
+ PlaqueSuperieureCoeur = FACT (
+ Epaisseur = SIMP (typ='R', fr="Epaisseur de la plaque superieure du coeur"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque superieure du coeur"),
+ Trous = NUPL (
+ max = '**',
+ elements = (
+ SIMP (typ='I', fr="Nombre de trous dont on donne les dimensions"),
+ SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot-cle indiquant si on donne le rayon ou les cotes"),
+ SIMP (typ='R',min=2,max=2, fr="Rayon ou cotes des trous"),
+ SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"),
+ SIMP (typ='R', fr="Hauteur du trou")))),
+ CloisonnementCoeur = FACT (
+ Epaisseur = SIMP (typ='R', fr="Epaisseur du cloisonnement du coeur"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER', fr="Materiau du cloisonnement du coeur"),
+ DimensionsInterieures = NUPL (
+ max = '**',
+ elements = (
+ SIMP (typ='I', fr="Nombre d'assemblages dans la rangee"),
+ SIMP (typ='TXM',into=('Assemblages','Assemblies'),fr="Mot-cle suivant le nombre d'assemblages"),
+ SIMP (typ='TXM',into=('Largeur','Cote'), fr="Mot-cle precedant la largeur interieure du cloisonnement"),
+ SIMP (typ='R', fr="Largeur interieure du cloisonnement"),
+ SIMP (typ='TXM',into=('NbJeuCloisonGrille','NbJeu'),fr="Mot-cle precedant le nombre de jeux CloisonGrille"),
+ SIMP (typ='I', fr="Nombre de jeux CloisonGrille"))),
+ TrousDepressurisation = NUPL (elements=(SIMP (typ='I',fr="Nombre de trous de depressurisation"),
+ SIMP (typ='TXM',into=('Rayon','Radius'),fr="Mot-cle precedant la valeur du rayon des trous"),
+ SIMP (typ='R',fr="Rayon des trous de depressurisation"))),
+ TemperatureMoyenne = SIMP (typ='R',fr="Temperature Moyenne du cloisonnement")),
+ RenfortsInternes = FACT (
+ Nombre = SIMP (typ='I',max='**'),
+ Epaisseur = SIMP (typ='R',max='**'),
+ Materiau = SIMP (typ=Materiau,max='**',statut='f',defaut='ACIER'),
+ NbTrousDepressurisation = SIMP (typ='I',max='**'),
+ RayonsTrousDepressurisation = SIMP (typ='R',max='**'),
+ TemperatureMoyenne = SIMP (typ='R'),statut='f'),
+ EnveloppeVirole = FACT (
+ RayonInterne = SIMP (typ='R'),
+ RayonExterne = SIMP (typ='R'),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER'),
+ TemperatureMoyenne = SIMP (typ='R')),
+ Boucliers = FACT (
+ RayonInterne = SIMP (typ='R'),
+ RayonExterne = SIMP (typ='R'),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER'),
+ Secteurs = NUPL (max='**',elements=(SIMP (typ='R'),SIMP (typ='R'))),
+ TemperatureMoyenne = SIMP (typ='R')),
+ Cuve = FACT (
+ RayonInterne = SIMP (typ='R'),
+ RayonExterne = SIMP (typ='R'),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER'),
+ TemperatureMoyenne = SIMP (typ='R')) ) ; # Fin STRUCTURES_INTERNES_REACTEUR
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CARACTERISTIQUES_PALIER : Classe de definition des donnees generales d'un type de palier de reacteur
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CARACTERISTIQUES_PALIER = OPER (nom="CARACTERISTIQUES_PALIER",op=0,sd_prod=CaracteristiquesPalier,
+
+ fr = "Definition des donnees generales d'un type de palier de reacteur",
+ ang = "Definition of general data for a type of nuclear reactor",
+ TypePalier = SIMP (typ='TXM',statut='o',fr="Identificateur du type de palier"),
+ PositionCombustible = SIMP (typ=PositionAssemblageCombustible,statut='o'),
+ PositionDetecteur = SIMP (typ=PositionInstrumentationInterne,statut='o'),
+ StructuresInternes = SIMP (typ=StructuresInternesReacteur,statut='o'),
+ NbBouclesPrimaires = SIMP (typ='I',statut='o',defaut=3,fr="Nombre de boucles primaires"),
+ NbTubesParGV = SIMP (typ='I',statut='f',fr="Nombre de tubes par GV") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe SITE_NUCLEAIRE_EDF : Classe de definition d'un site nucleaire EDF (Tranches, paliers et numero comptable)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SITE_NUCLEAIRE = OPER (nom="SITE_NUCLEAIRE",op=0,sd_prod=SiteNucleaire,
+
+ fr = "Definition d'un site nucleaire EDF",
+ ang = "Definition of a nuclear power plant site",
+ NomSite = SIMP (typ='TXM',statut='o',fr="Nom du site nucleaire",defaut='TRICASTIN'),
+ Tranches = NUPL (max='**',elements=( SIMP (typ='I' ,statut='o',fr="Numero de la tranche nucleaire"),
+ SIMP (typ='TXM',statut='o',fr="Trigramme de la tranche nucleaire"),
+ SIMP (typ=CaracteristiquesPalier,statut='o',fr="Type de palier"),
+ SIMP (typ='I' ,statut='o',fr="Numero comptable de la tranche"))) ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ESPACE_VARIATIONS : Classe de definition des parametres de contre-reactions neutroniques et de leurs variations
+# Donnees definissant l'espace des parametres dont dependent les bibliotheques
+# neutroniques et la discretisation de leur espace de variation.
+# Definition de la methode de balayage de cet espace (Suite d'options complementaires) :
+# 1) ParametresIndependants : Calculs independants en donnant successivement a chacun
+# des parametres leurs valeurs individuelles
+# 2) CoinsDomaine : Rajout des calculs aux limites extremes du domaine
+# 3) BordsDomaine : Rajout des calculs aux bords du domaine
+# 4) Grilles2D : Rajout des calculs sur les grilles 2D
+# passant par un point de reference
+# 5) CasParticuliers : Rajout de points specifiques de calcul
+# 6) EspaceComplet : Balayage complet du domaine des parametres
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ESPACE_VARIATIONS = OPER (nom="ESPACE_VARIATIONS",op=0,sd_prod=EspaceVariations,
+
+ fr = "Definition de l'espace de variation des parametres neutroniques",
+ ang = "Definition of feedback or variable parameters",
+ Variations = NUPL (max='**',statut='f',
+ elements=( SIMP (typ='TXM',fr="Nom du parametre a faire varier"),
+ SIMP (typ='R',max='**',fr="Valeurs discretes de variation du parametre"))),
+ MethodeBalayage = SIMP (
+ typ = 'TXM',
+ max = '**',
+ defaut = 'ParametresIndependants',
+ into = ('ParametresIndependants','CoinsDomaine','BordsDomaine','Grilles2D','CasParticuliers','EspaceComplet'),
+ statut = 'f'),
+ TypeVariation = SIMP (typ='TXM',defaut='absolu',into=('relatif','absolu'),statut='f'),
+ CasParticuliers = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour les cas particuliers",
+ elements=(SIMP (typ='TXM'),SIMP (typ='R'))),
+ CasReference = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour le cas de reference",
+ elements=(SIMP (typ='TXM'),SIMP (typ='R'))) ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DONNEES_EVOLUTION_IRRADIATION : Classe de definition des valeurs d'irradiation intervenant dans les phases de calcul et d'edition
+# Pour le moment, on ne considere que l'Evolution, les Editions, l'Autoprotection et les ContreReactions
+# ou les irradiations de reprise (Normale, Gs et Beta pour EDF).
+# Donnees consistant pour chaque phase d'une liste d'irradiations en MWj/t
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DONNEES_EVOLUTION_IRRADIATION = OPER (nom="DONNEES_EVOLUTION_IRRADIATION",op=0,sd_prod=DonneesEvolutionIrradiation,
+
+ fr = "Definition des donnees du calcul d'evolution et des irradiations de reprise",
+ ang = "Definition of depletion calculation data and burnup restart calculations",
+ Unite = SIMP (typ='TXM',defaut='MWj/t',into=('MWj/t','Jours'),statut='f',fr="Unite pour les irradiations"),
+ Minimum = SIMP (typ='R',defaut=0.,statut='f',fr="Irradiation du debut de calcul"),
+ Maximum = SIMP (typ='R',defaut=100000.,statut='f',fr="Irradiation maximum des calculs"),
+ Evolution = SIMP (typ='R',max='**',defaut=0.,statut='f',fr="Irradiations du calcul d'evolution"),
+ Editions = SIMP (typ='R',max='**',defaut=0.,statut='f',fr="Irradiations ou se font les editions"),
+ ContreReactions = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs de reprise de contre-reactions"),
+ ReprisesGs = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs de reprise GS EDF"),
+ ReprisesBeta = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs de reprise BETA EDF"),
+ Reprises = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs de reprise"),
+ Refroidissement = FACT (
+ Instants = SIMP (typ='R',max='**',fr="Irradiations de debut de refroidissement du combustible"),
+ Jours = SIMP (typ=('R','I'),max='**',fr="Nombre de jours de refroidissement correspondant aux instants de refroidissement")),
+ InsertionGrappe = NUPL (max='**',statut='f',elements=(
+ SIMP (typ='TXM',fr="Type de grappe inseree"),
+ SIMP (typ=('R','I'), min=2,max=2,fr="Irradiations de Debut et Fin d'insertion de la grappe"),
+ SIMP (typ='R',fr="Cote axiale de la limite inferieure de la grappe inseree"))) ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONDITIONS_FONCTIONNEMENT : Classe de definition des conditions de fonctionnement Reacteur pour une campagne donnee
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONDITIONS_FONCTIONNEMENT_MOYENNES = OPER (nom="CONDITIONS_FONCTIONNEMENT_MOYENNES",op=0,sd_prod=ConditionsFonctionnementMoyennes,
+
+ fr = "Definition des conditions de fonctionnement pour une campagne donnee",
+ ang = "Definition of a campaign operating conditions ",
+ IdentificateurCampagne = SIMP (typ='TXM',statut='f',fr="Identificateur de la campagne"),
+ PuissanceElectriqueMW = SIMP (typ='R',statut='o',defaut=900.,fr="Puissance electrique du reacteur en MW"),
+ PuissanceThermiqueMWth = SIMP (typ='R',statut='o',defaut=2775.,fr="Puissance thermique du reacteur en MWth"),
+ PressionPrimaireEntreeBar = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression du moderateur en bars a l'entree du coeur actif"),
+ PressionPrimaireSortieBar = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression du moderateur en bars en sortie du coeur actif"),
+ TitreMoyenBorePpm = SIMP (typ='R',statut='o',defaut=500.,fr="Titre moyen en ppm en bore dans le moderateur"),
+ TmodEntreePnulleC = SIMP (typ='R',statut='o',defaut=286.0,fr="Temperature en C du moderateur a puissance nulle a l'entree du coeur"),
+ TmodEntreePnomC = SIMP (typ='R',statut='o',defaut=286.4,fr="Temperature en C du moderateur a puissance nominale a l'entree du coeur"),
+ DeltaTmodEntreeSortiePnomC = SIMP (typ='R',statut='o',defaut=39.0,fr="Ecart en C de temperature entre entree et sortie du coeur a puissance nominale"),
+ TmodMoyenneCoeurPnomC = SIMP (typ='R',statut='o',defaut=305.3,fr="Temperature moyenne en C du moderateur dans le coeur actif"),
+ TmodMoyenneCuvePnomC = SIMP (typ='R',statut='f',defaut=305.0,fr="Temperature moyenne en C du moderateur dans la cuve"),
+ TcomMoyennePnomC = SIMP (typ='R',statut='f',defaut=600.0,fr="Temperature moyenne en C du combustible dans le coeur"),
+ TmodMoyenneReflecteurPnomC = SIMP (typ='R',statut='f',defaut=296.0,fr="Temperature moyenne en C du reflecteur radial"),
+ PositionGrappeHaute = SIMP (typ='I',statut='f',defaut=225,fr="Position haute des grappes, en nombre de pas extraits"),
+ DebitPrimaireConceptionM3_h = SIMP (typ='R',statut='f',defaut=70500.,fr="Debit primaire de conception dans le coeur en m3/h"),
+ ProportionDebitCoeurCuve = SIMP (typ='R',statut='f',defaut=0.97,fr="Rapport du debit coeur / debit cuve"),
+ NbTubesGVBouches = SIMP (typ='I',statut='f',defaut=0,fr="Nombre de tubes GV bouches"),
+ SectionEcoulementCoeur = SIMP (typ='R',statut='f',defaut=3.87,fr="Section d'ecoulement du moderateur dans le coeur en m2")
+ ) ; # Fin CONDITIONS_FONCTIONNEMENT
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN_CHARGEMENT_COEUR : Classe de definition du plan de chargement combustible d'un coeur pour une campagne donnee
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+#PLAN_CHARGEMENT_COEUR = OPER (nom="PLAN_CHARGEMENT_COEUR",op=0,sd_prod=PlanChargementCoeur,
+#
+# fr = "Definition du plan de chargement combustible d'un coeur",
+# ang = "Definition of a fuel loading core map ",
+# IdentificateurCampagne = SIMP (typ='TXM',statut='o'),
+# TypePlan = SIMP (typ='TXM',into=('STD','FR','FF','FFG'), statut='f'),
+# AssemblagePosition = NUPL (
+# max = '**',
+# elements = ( SIMP (typ=AssemblageCombustibleCharge,fr="Identificateur de l'assemblage"),
+# SIMP (typ='TXM',statut='f',fr="Repere alphanumerique de la Position dans le coeur"),
+# SIMP (typ='I',min=2,max=2,statut='f',fr="Coordonnees ij dans le plan radial du reseau du coeur")))
+# );
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DATES_CLES_CAMPAGNE : Classe de definition des dates cles d'une campagne et de sa longueur
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DATES_CLES_CAMPAGNE = OPER (nom="DATES_CLES_CAMPAGNE",op=0,sd_prod=DateClesCampagne,
+
+ fr = "Definition des dates cles d'une campagne et de sa longueur",
+ ang = "Definition of the campaign dates and length",
+ IdentificateurCampagne = SIMP (typ='TXM',statut='o',defaut='CZ101'),
+ DateDDC = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de debut de campagne"),
+ DatePnom = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A d'atteinte de la puissance nominale"),
+ DateFDC = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de fin de campagne"),
+ LongueurNaturelleTheoriqueMWj_t = SIMP (typ='R',statut='f',fr="Longueur naturelle theorique calculee de la campagne en MWj/t"),
+ LongueurNaturelleRecaleeMWj_t = SIMP (typ='R',statut='f',fr="Longueur naturelle recalee calculee de la campagne en MWj/t"),
+ LongueurNaturelleExperimentaleMWj_t = SIMP (typ='R',statut='f',fr="Longueur naturelle mesuree de la campagne en MWj/t"),
+ LongueurAnticipationJepp = SIMP (typ='R',statut='f',fr="Nombre de JEPP d'anticipation"),
+ LongueurProlongationJepp = SIMP (typ='R',statut='f',fr="Nombre de JEPP de prolongation"),
+ LongueurTotaleExperimentaleMWj_t = SIMP (typ='R',statut='f',fr="Longueur totale de la campagne en MWj/t") ) ;
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_CODES : Classe de definition des options generales et du type de calcul demande
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_CODES = OPER (nom="OPTIONS_CODES",op=0,sd_prod=OptionsCodes,
+ fr = "Definition des options des codes de calcul",
+ ang = "Definition of calculation code options",
+# TypeCalcul = SIMP (typ='TXM',defaut='Evolution',statut='f'),
+# CodeCalcul = SIMP (typ='TXM',defaut='SUNSET',statut='f'),
+# ConditionLimite = SIMP (typ=ConditionLimiteGenerale,statut='o'),
+ OptionsCodeReseau = FACT (
+ OptionMulticellule = SIMP (typ='TXM',defaut='ROTH',statut='f',into=('ROTH','MULTICELLULE'),fr="Option du calcul multicellule"),
+ OptionPij = SIMP (typ='TXM',defaut='&UP0 &ROTH',statut='f',into=('&UP0 &ROTH','&UP0 &HETE','&UP1 &HETE'),fr="Option du calcul des Pij"),
+ ParametresIntegration = SIMP (typ='TXM',defaut='MAIL_INT 7 7 7 7',statut='f',fr="Donnees du maillage d'integration en heterogene"),
+ ProportionNoyauxParDefaut = SIMP (typ='R',defaut=1.E-12,statut='f',fr="Valeur initiale des concentrations des noyaux lourds non definis"),
+ OptionLaplacienB2 = SIMP (typ='TXM',defaut='CRITIQUE',statut='f',into=('CRITIQUE','NUL','IMPOSE'),fr="Option du calcul des fuites homogenes"),
+ LaplacienB2 = SIMP (typ='R',defaut=0.,statut='f',fr="Valeur initiale du laplacien du calcul des fuites"),
+ OrdreAnisotropie = SIMP (typ='I',defaut=1,statut='f',fr="Ordre d'anisotropie des sections de transfert"),
+ Autoprotection = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Calcul d'autoprotection ou non"),
+ DonneesAutoprotection = SIMP (typ=OptionsAutoprotection,statut='f',max='**',fr="Nom des objets decrivant les isotopes a autoproteger et les options associees"),
+ RecalculAutoprotection = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande ou non de recalcul de l'autoprotection"),
+ Equivalence = SIMP (typ='TXM',defaut='Non',statut='f',into=('Oui','Non'),fr="Demande ou non de calcul d'equivalence"),
+ NbGroupesEquivalence = SIMP (typ='I',max='**',defaut=(2,6,16),statut='f',fr="Liste des nombres de groupes des calculs d'quivalence"),
+ EditionAssemblage = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande d'edition des sections efficaces homogeneisees sur l'ensemble du domaine"),
+ EditionCellule = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande d'edition des sections efficaces homogeneisees par cellule"),
+ EditionFluxDetaille = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande d'edition des flux moyens sur l'ensemble du domaine sur la maillage multigroupe detaille"),
+ EditionMilieu = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Demande d'edition des compositions isotopiques detaillees sur tous les milieux de calcul"),
+ EditionTrimaran = SIMP (typ='TXM',defaut='Non',statut='f',into=('Oui','Non'),fr="Demande d'edition des sections efficaces pour TRIPOLI multigroupe"),
+ SpectreNeutrons = SIMP (typ='TXM',defaut='Prompt',statut='f',into=('Prompt','Retarde'),fr="Type de spectre de neutrons pour le calcul de transport"),
+ ListeIsotopesEdites = SIMP (typ='TXM',statut='f',max='**',fr="Liste des initiales des symboles des isotopes a editer"),
+ FichierBickley = SIMP (typ='TXM',statut='f',fr="Nom du fichier des fonctions Bickley"),
+ EditionIsotopeHomogene = SIMP (typ='TXM',defaut='Non',statut='f',into=('Oui','Non'),fr="Demande d'edition de constitution d'isotopes homogeneises sous forme APOLLIB"),
+ RepertoireHomoge = SIMP (typ='TXM',statut='f',fr="Nom du repertoire du fichier des isotopes homogenes sous forme APOLLIB"),
+ FichierHomoge = SIMP (typ='TXM',statut='f',fr="Nom du fichier des isotopes homogenes sous forme APOLLIB"),
+ ExecutableAPOLLO = NUPL (
+ elements = ( SIMP (typ='TXM',fr="Systeme d'exploitation"),SIMP (typ='TXM',fr="Nom du fichier executable")),
+ statut = 'f'),
+ ProceduresApollo2 = FACT (
+ OptionsListing = SIMP (typ='TXM',statut='f'),
+ Evolution = SIMP (typ='TXM',statut='f'),
+ Reprise = SIMP (typ='TXM',statut='f'),
+ Equivalence = SIMP (typ='TXM',statut='f'),
+ EditionCellule = SIMP (typ='TXM',statut='f'),
+ EditionHomoge = SIMP (typ='TXM',statut='f')),
+ ProceduresSunset = FACT (
+ Evolution = SIMP (typ='TXM',statut='f'),
+ Reprise = SIMP (typ='TXM',statut='f'),
+ Equivalence = SIMP (typ='TXM',statut='f'),
+ EditionCellule = SIMP (typ='TXM',statut='f'),
+ EditionHomoge = SIMP (typ='TXM',statut='f'))),
+# --------------------------------------------------------------
+ OptionsCodeCoeur = FACT (
+ ReactiviteVisee = SIMP (typ='R',defaut=0.,statut='f',fr="Valeur en pcm de la reactivite visee en calcul critique"),
+ EfficaciteBoreEstimee = SIMP (typ='R',defaut=-6.,statut='f',fr="Valeur estimee en pcm/ppm de l'efficacite du bore"),
+ TitreBoreInitiale = SIMP (typ='R',defaut=600.,statut='f',fr="Valeur estimee en ppm du titre en bore du moderateur"),
+ ApproximationTransport = SIMP (typ='TXM',defaut='SPn',statut='f',into=('SPn','Sn')),
+ BlocSPn = BLOC (condition = "ApproximationTransport=='SPn'",
+ OrdreApproximation = SIMP (typ='I',defaut=1,statut='f',fr="Ordre n impair de la methode SPn"),
+ ElementFini = SIMP (typ='TXM',defaut='RTN0',statut='f',into=('RTN0','RTN1'),fr="Type d'element fini"),
+ MaxIterationsDiffusion = SIMP (typ='I',defaut=1,into=(1,2,3,4,5),statut='f',fr="Nombre maximal d'iterations de diffusion")),
+ BlocSn = BLOC (condition = "ApproximationTransport=='Sn'",
+ OrdreApproximation = SIMP (typ='I',defaut=4,statut='f',fr="Ordre n pair de la methode Sn"),
+ ElementFini = SIMP (typ='TXM',defaut='RTN',statut='f',into=('RTN','BDM'),fr="Type d'element fini"),
+ Acceleration = SIMP (typ='TXM',defaut='Oui',statut='f',into=('Oui','Non'),fr="Acceleration par la diffusion"),
+ MaxIterationsDiffusion = SIMP (typ='I',defaut=20,statut='f',fr="Nombre maximal d'iterations de calcul de diffusion") ),
+ PrecisionValeurPropre = SIMP (typ='R',defaut=1.E-5,statut='f',fr="Precision sur la valeur propre"),
+ PrecisionFlux = SIMP (typ='R',defaut=1.E-3,statut='f',fr="Precision sur le flux"),
+ PrecisionResolutionMultigroupe = SIMP (typ='R',defaut=1.E-6,statut='f',fr="Precision de la resolution multigroupe"),
+ PrecisionIterationTermeDiffusion = SIMP (typ='R',defaut=1.E-6,statut='f',fr="Precision des iterations sur le terme de diffusion"),
+ MaxIterationsEnEnergie = SIMP (typ='I',defaut=1,statut='f',fr="Nombre maximal d'iterations pour la resolution Gauss Seidel en energie"),
+ MaxIterationsTermeDiffusion = SIMP (typ='I',defaut=1,statut='f',fr="Nombre maximal d'iterations sur le terme de diffusion"),
+ MaxIterationsDecompositionDomaine = SIMP (typ='I',defaut=1,statut='f',fr="Nombre d'iterations de decomposition de domaine"),
+ MaxIterationsKeffAvantCR = SIMP (typ='I',defaut=1,statut='f',fr="Nombre de calculs de keff avant appel aux contre-reactions"),
+ GestionAutomatiquePasCinetique = SIMP (typ='TXM',defaut='Oui',into=('Oui','Non'),statut='f',fr="Gestion automatique du pas de temps du calcul cinetique"),
+ PrecisionIterationsFluxPrecurseurs = SIMP (typ='R',defaut=1.E-6,statut='f',fr="Precision sur les iterations Flux Precurseurs"),
+ PrecisionParametreGestionAutomatique = SIMP (typ='R',defaut=0.0008,statut='f',fr="Precision sur les iterations Flux Precurseurs"),
+ MaxIterationsFluxPrecurseurs = SIMP (typ='I',defaut=50,statut='f',fr="Nombre maximal d'iterations Flux Precurseurs"),
+ ThetaSchemaCinetique = SIMP (typ='R',defaut=0.5,statut='f',fr="Valeur du parametre theta du schema cinetique") ),
+# ------------------------------------------------------------------------------------------------------------------------------------
+ OptionsThermiqueThermohydraulique = FACT (
+ CoefficientEchangeGaineFluide = SIMP (typ='TXM',defaut='DITTUS_BOELTER',into=('FLICA','DITTUS_BOELTER'),statut='f',
+ fr="Option du Coefficient d'échange gaine-fluide (flux < au flux critique)"),
+ CoefficientEchangeGaineFluideEbullition = SIMP (typ='TXM',defaut='BST',into=('BST','TONG'),statut='f',
+ fr="Option du Coefficient d'échange gaine-fluide (Ebullition en film)"),
+ CoefficientEchangeJeuPastilleGaineConstantTransitoire = SIMP (typ='TXM',defaut='Non',into=('Non','Oui'),statut='f',
+ fr="Option de constance des coefficients d'échange gap"),
+ CoefficientEchangeJeuPastilleGaine = SIMP (typ='TXM',defaut='HGAP_88',into=('EJECTION','TUO2','PLIN_BU','FIXE','HGAP_88'),statut='f',
+ fr="Option du Coefficient d'échange du jeu pastille-gaine"),
+ BlocHgapTuo2 = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='TUO2'",
+ Tuo2Initiale = SIMP (typ='R',statut='o',
+ fr="Température initiale combustible pour le calcul du coefficient d'échange") ),
+ BlocHgapFixe = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='FIXE'",
+ Hgap = SIMP (typ='R',statut='o',defaut=5850.,fr="Valeur imposée du coefficient d'échange") ),
+ ConductiviteCombustible = SIMP (typ='TXM',defaut='HGAP_88',into=('STORA','WESTINGHOUSE','HGAP_88','COMETHE'),statut='f',
+ fr="Option du Coefficient de conductivité du combustible"),
+ CapaciteCalorifiqueCombustible = SIMP (typ='TXM',defaut='UO2_FRAMATOME',into=('UO2_BATES','UO2_FRAMATOME','UO2_THYC'),statut='f',
+ fr="Option du Coefficient de conductivité du combustible"),
+ MateriauGaine = SIMP (typ='TXM',defaut='ZIRCALOY_CYRANO',into=('ZIRCALOY_CYRANO', 'ZIRCALOY_THYC', 'INCOLOY_800',
+ 'CHROMESCO_3', 'INOX_16', 'INOX_321', 'INOX_347', 'INOX_347_OXYDE',
+ 'INCONEL_600', 'NICKEL_75', 'PLATINE'),statut='f',
+ fr="Materiau de la gaine pour le calcul du roCp de la gaine et de sa conductivite"),
+ FluxCritique = SIMP (typ='R',defaut=180.E4,fr="Valeur du flux critique en W/m2"),
+ FractionPuissanceCombustible = SIMP (typ='R',defaut=0.974,fr="Fraction de la puissance degagee dans le combustible"),
+ Creusement = SIMP (typ='TXM',defaut='Uniforme',statut='f',into=('Uniforme','Runnals','Framatome','Twinkle','Mox','EDF','Specifique')),
+ BlocCreusement = BLOC (condition = "Creusement=='Specifique'",
+ RayonsCreusement = SIMP (typ='R',statut='o',fr="Rayons de definition du creusement de puissance (nz)"),
+ IrradiationsCreusement = SIMP (typ='R',statut='o',fr="Irradiations de definition du creusement de puissance (nbu)"),
+ EnrichissementsCreusement = SIMP (typ='R',statut='o',fr="Enrichissements de definition du creusement de puissance (nen)"),
+ PuissancesUO2 = SIMP (typ='R',max='**',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille UO2"),
+ PuissancesMOX = SIMP (typ='R',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille MOX") ),
+ DiscretisationPastilleCombustible = SIMP (typ='I',defaut=4,statut='f',fr="Nombre de points de discretisation radiale de la pastille combustible"),
+ DiscretisationGaine = SIMP (typ='I',defaut=2,statut='f',fr="Nombre de points de discretisation radiale de la gaine de la pastille combustible"),
+ PrecisionCalculThermique = SIMP (typ='R',defaut=0.1,fr="Precision en Celsius du calcul thermique radiale du crayon"),
+ PrecisionCalculThermohydraulique = SIMP (typ='R',defaut=0.01,fr="Precision en Celsius du calcul thermohydraulique de la temperature du moderateur"),
+ MaxIterationsThermique = SIMP (typ='I',defaut=100,statut='f',fr="Nombre maximum d'iterations du calcul de thermique"),
+ MaxIterationsThermohydraulique = SIMP (typ='I',defaut=100,statut='f',fr="Nombre maximum d'iterations du calcul de thermohydraulique"),
+ MethodeIntegrationThermohydraulique = SIMP (typ='TXM',defaut='Gauss',statut='f',into=('Gauss','NonGauss'),fr="Methode d'integration thermohydraulique"),
+ PerteDeCharge = SIMP (typ='TXM',defaut='Non',statut='f',into=('Non','Oui'),fr="Prise en compte ou non de la perte de charge axiale"),
+ TableEau = SIMP (typ='TXM',defaut='Thetis',statut='f',into=('Thetis','Interne'),
+ fr="Calcul des caracteristiques du moderateur par THETIS ou par des tables internes") ),
+# ----------------------------------------------------------------------------------------------------------------------------------
+ OptionsContreReactions = FACT (
+ ContreReactions = SIMP (typ='TXM',defaut='Oui',into=('Oui','Non'),fr="Prise en compte des contre-reactions ou non"),
+ PrecisionPuissance = SIMP (typ='R',defaut=1.E-4,fr="Precision sur la puissance a la fin des iterations de contre-reactions"),
+ PrecisionKeff = SIMP (typ='R',defaut=1.E-5,fr="Precision sur keff a la fin des iterations de contre-reactions"),
+ MethodeCalculSection = SIMP (typ='TXM',defaut='Spline1D',into=('Spline1D','SplinenD','Tabulation'),
+ fr="Methode de calcul des sections efficaces avec Contre-reactions") )
+ ) ; # Fin OPTIONS_CODES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DONNEES_GENERALES_ETUDE : Classe de definition des caracteristiques globales de l'etude
+# Definition de la centrale (site, numero de tranche) et numero de campagne d'irradiation
+# Ces caracteristiques d'environnement de l'etude doivent permettre de recuperer l'ensemble
+# des parametres de fonctionnement nominales du reacteur sujet de l'etude (creation de
+# bibliotheques ou calcul de coeur)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DONNEES_GENERALES_ETUDE = OPER (nom="DONNEES_GENERALES_ETUDE",op=0,sd_prod=DonneesGeneralesEtude,
+
+ fr = "Definition de la centrale sujet de l'etude et des options globales de l'etude",
+ ang = "Definition of the power plant and of the global options",
+ TypeCode = SIMP (typ='TXM',defaut='Reseau',into=('Reseau','Coeur'),statut='o'),
+ SiteNucleaire = SIMP (typ=SiteNucleaire,defaut='TRICASTIN',statut='o'),
+ BlocCoeur = BLOC (condition = "TypeCode=='Coeur'",
+ NumeroTranche = SIMP (typ='I',defaut=1,statut='f'),
+ NumeroCampagne = SIMP (typ='I',defaut=1,statut='f'),
+ IdentificateurCampagne = SIMP (typ='TXM',defaut='TN101',statut='f'),
+ DatesCampagne = SIMP (typ=DateClesCampagne,statut='f'),
+ TypeGestion = SIMP (typ = 'TXM',
+ defaut = '370Q',
+ statut = 'f',
+ into = ('310Q','310T','325T','325Q','340Q','345AL',
+ '370Q','370T','400T','HMOX','MOXNT','TMOX')),
+ TypeSchemaGrappe = SIMP (typ = 'TXM',
+ defaut = '900CPYUO2',
+ statut = 'f',
+ into = ('900CP0','900CPYUO2INITIAL','900CPYUO2',
+ '900CPYUO2AL','900CPYMOX','1300','N4')),
+ PositionGrappe = SIMP (typ=PositionGrappesCommande,statut='f'),
+ TypeEvaluationSurete = SIMP (typ='TXM',defaut='900STD',statut='f',
+ into=('900STD','900GARANCE','1300STD','1300GEMMES','N4STD')),
+ ModePilotage = SIMP (typ='TXM',defaut='G',statut='f',into=('A','G','X')),
+ PlanChargement = SIMP (typ=Reseau,statut='f'),
+ CodeCalcul = SIMP (typ='TXM',defaut='SNCODE',statut='f')),
+ BlocReseau = BLOC (condition = "TypeCode=='Reseau'",
+ Assemblage = SIMP (typ=AssemblageType,statut='f'),
+ ContreReactions = SIMP (typ=EspaceVariations,statut='f'),
+ CodeCalcul = SIMP (typ='TXM',defaut='SUNSET',statut='f')),
+ ConditionsMoyennes = SIMP (typ=ConditionsFonctionnementMoyennes,statut='f'),
+ Options = SIMP (typ=OptionsCodes,statut='f'),
+ PasIrradiation = SIMP (typ=DonneesEvolutionIrradiation,statut='f'),
+# ConditionLimite = SIMP (typ=ConditionLimiteGenerale,statut='o'),
+ TypeCalcul = SIMP (typ='TXM',max='**',defaut='Evolution',
+ into=('Evolution','EvolutionMicroscopique','Reprise','Statique','Cinetique',
+ 'BoreImpose','BoreCritique'),statut='f')
+ ) ;
+
+class resultat(TObjet): pass
+class resultat2(resultat): pass
+
+CALCUL=OPER(nom="CALCUL",op=10,sd_prod=resultat,
+ materiau=SIMP(typ=Materiau),
+ PRESSION=SIMP(defaut=10000.,typ="R")
+ );
+
+CALCUL2=OPER(nom="CALCUL2",op=11,sd_prod=resultat2,
+ donnee=SIMP(typ=resultat),
+ materiau=SIMP(typ=Materiau),
+ );
+
+
+
+
--- /dev/null
+# debut entete
+
+import Accas
+from Accas import *
+#
+
+JdC = JDC_CATA(code='DESCARTES',
+ execmodul=None,
+ niveaux=(NIVEAU(nom='Isotopes',label='Donnees des Isotopes ou molecules et Bibliotheques associees'),
+ NIVEAU(nom='ChaineFiliationIsotopique',label='Chaines de filiation isotopique'),
+ NIVEAU(nom='MaillagesEnergie',label='Maillages en energie'),
+ NIVEAU(nom='DonneesNucleaires',label='Bibliotheques de donnees nucleaires et Fichiers'),
+ NIVEAU(nom='Materiaux',label='Materiaux'),
+ NIVEAU(nom='ElementsGeometriques',label='Elements geometriques elementaires'),
+ NIVEAU(nom='Geometries',label='Geometries globales'),
+ NIVEAU(nom='MaillagesSpatiaux',label='Maillages en espace'),
+ NIVEAU(nom='ElementsTechnologiquesAssemblages',label='Elements technologiques des assemblages combustibles'),
+ NIVEAU(nom='ElementsTechnologiquesReacteur',label='Elements technologiques des reacteurs'),
+ NIVEAU(nom='AssemblagesReels',label='Assemblages combustibles reels'),
+ NIVEAU(nom='ConditionsLimites',label='Conditions aux limites'),
+ NIVEAU(nom='ParametresCalcul',label='Parametres des calculs'),
+ NIVEAU(nom='SectionsEfficaces',label ='Bibliotheques de sections efficaces'),
+ NIVEAU(nom='OptionsCodesCalcul',label='Options des codes de calcul'),
+ NIVEAU(nom='ConfigurationInformatique',label='Choix des ressources informatiques'),
+ NIVEAU(nom='DonneesDesAccidents',label ='Donnees des etudes d_accidents'),
+ NIVEAU(nom='DonneesPilotage',label ='Donnees de pilotage du reacteur'),
+ NIVEAU(nom='DonneesEtude',label ='Donnees des cas de l etude'),
+ NIVEAU(nom='Operateurs',label ='Definition des operateurs de calcul'),
+ NIVEAU(nom='Resultats',label ='Resultats des calculs'),
+ NIVEAU(nom='ResultatsExperimentaux',label ='Resultats issus de mesures experimentales'),
+ NIVEAU(nom='ResultatsAccidents',label ='Resultats issus de la simulation des accidents'),
+ NIVEAU(nom='EtudeGenerale',label ="Cas d'etude et resultats")
+ )
+ )
+
+import string
+#import lcm
+
+class TObjet(ASSD):
+ def __init__(self,**args):
+ apply(ASSD.__init__,(self,),args)
+ name=string.ljust(self.__class__.__name__[:12],12)
+
+ def __getitem__(self,attrname):
+ return self.etape[attrname]
+
+ def db(self):
+ if hasattr(self,'_dbsun'):return self._dbsun
+ else:
+ self._dbsun={'t':1}
+ return self._dbsun
+
+ def putdb(self,o):
+ self._dbsun=o
+
+#
+# Definition des types d'objet qui seront produits par les commandes
+# Il suffit de declarer une classe qui derive de la classe mere TObjet
+# qui derive elle meme de la classe ASSD utilisee dans EFICAS
+#
+# Isotopes
+class Isotope (TObjet):pass
+# ChaineFiliationIsotopique
+class ChaineFiliation (TObjet):pass
+# MaillagesEnergie
+class BornesEnergie (TObjet):pass
+# DonneesNucleaires
+class FichierBibliothequeIsotopes (TObjet):pass
+# Materiaux
+class Materiau (TObjet):pass
+# MaillagesSpatiaux
+class Maillage1D (TObjet):pass
+# ElementsGeometriques
+class Point (TObjet):pass
+class Vecteur (TObjet):pass
+class Droite (TObjet):pass
+class Segment (TObjet):pass
+class ArcCercle (TObjet):pass
+class SecteurDisque (TObjet):pass
+class Conique (TObjet):pass
+class Triangle (TObjet):pass
+class Rectangle (TObjet):pass
+class Carre (TObjet):pass
+class Hexagone (TObjet):pass
+class Polygone (TObjet):pass
+class Sphere (TObjet):pass
+class BoiteRectangulaire (TObjet):pass
+class BoiteGenerale (TObjet):pass
+class CylindreX (TObjet):pass
+class CylindreY (TObjet):pass
+class CylindreZ (TObjet):pass
+class Cylindre (TObjet):pass
+class Cone (TObjet):pass
+class PrismeHexagonal (TObjet):pass
+class Tore (TObjet):pass
+class Plan (TObjet):pass
+class PlanX (TObjet):pass
+class PlanY (TObjet):pass
+class PlanZ (TObjet):pass
+class Polyedre (TObjet):pass
+class Quadrique (TObjet):pass
+class Orientation (TObjet):pass
+class FormePositionnee (TObjet):pass
+# Geometries
+class Cellule (TObjet):pass
+class Cluster (TObjet):pass
+class GeometrieSurfacique (TObjet):pass
+class GeometrieCombinatoire (TObjet):pass
+class Reseau (TObjet):pass
+class DecompositionDomaines (TObjet):pass
+# ElementsTechnologiquesAssemblages
+class GrilleAssemblage (TObjet):pass
+class PartieInferieureAssemblageCombustible (TObjet):pass
+class PartieSuperieureAssemblageCombustible (TObjet):pass
+class AssemblageType (TObjet):pass
+class ElementBarre (TObjet):pass
+class ElementsGrappeCommande (TObjet):pass
+class ElementsAbsorbantsFixes (TObjet):pass
+class GrappeBouchonAssemblage (TObjet):pass
+# AssemblagesReels
+class AssemblageCombustibleReel (TObjet):pass
+class ReparationAssemblage (TObjet):pass
+class PenaliteAssemblage (TObjet):pass
+#class SystemeUnitesMesure (TObjet):pass
+# ConditionsLimites
+class Vide (TObjet):pass
+class ReflexionIsotrope (TObjet):pass
+class ReflexionSpeculaire (TObjet):pass
+class Albedo (TObjet):pass
+class Translation (TObjet):pass
+class Rotation (TObjet):pass
+class SpecialeConditionLimite (TObjet):pass
+class GeneraleConditionLimite (TObjet):pass
+# ElementsTechnologiquesReacteur
+class CorrespondanceReperePositionReseau(TObjet):pass
+class PositionAssemblageCombustible (TObjet):pass
+class PositionInstrumentationInterne (TObjet):pass
+class ImplantationGrappesCommande (TObjet):pass
+class StructuresInternesReacteur (TObjet):pass
+class PompePrimaire (TObjet):pass
+class Pressuriseur (TObjet):pass
+class GenerateurVapeur (TObjet):pass
+class CaracteristiquesPalier (TObjet):pass
+class SiteNucleaire (TObjet):pass
+# ParametresCalcul
+class EspaceVariations (TObjet):pass
+class DonneesIrradiation (TObjet):pass
+class ConditionsFonctionnementMoyennes (TObjet):pass
+class ConditionsTransitoire (TObjet):pass
+class PositionAxialeGrappesCommande (TObjet):pass
+class ParametresCalculGestion (TObjet):pass
+# SectionsEfficaces
+class Macrolib (TObjet):pass
+class SectionsReflecteur (TObjet):pass
+# OptionsCodesCalcul
+class OptionsAutoprotection (TObjet):pass
+class OptionsCodes (TObjet):pass
+class OptionsCodeReseau (TObjet):pass
+class OptionsCodeCoeurStatique (TObjet):pass
+class OptionsCodeCoeurCinetique (TObjet):pass
+class OptionsThermiqueThermohydraulique (TObjet):pass
+class OptionsContreReactionsCoeur (TObjet):pass
+# ConfigurationInformatique
+class RessourcesInformatiques (TObjet):pass
+# DonneesDesAccidents
+class AccidentDilution (TObjet):pass
+class AccidentRTV (TObjet):pass
+class AccidentChuteGrappe (TObjet):pass
+class AccidentEjection (TObjet):pass
+class CriteresSurete (TObjet):pass
+class DonneesAccidents (TObjet):pass
+# DonneesPilotage
+class ProlongationCampagne (TObjet):pass
+class DonneesPilotageGeneral (TObjet):pass
+class CalibrageGroupes (TObjet):pass
+# DonneesEtude
+class DatesClesCampagne (TObjet):pass
+class DonneesCasEtude (TObjet):pass
+class DonneesAjustement (TObjet):pass
+# Resultats
+class ResultatsGlobauxCoeur (TObjet):pass
+class ResultatFlux (TObjet):pass
+class ResultatPuissances (TObjet):pass
+class ResultatIrradiations (TObjet):pass
+class ResultatActivites (TObjet):pass
+class ResultatRadial (TObjet):pass
+class ResultatAxial (TObjet):pass
+class ResultatsCalculGestion (TObjet):pass
+class ResultatsEtude (TObjet):pass
+# ResultatsAccidents
+class AccidentDilutionResultat (TObjet):pass
+class AccidentChuteGrappeResultat (TObjet):pass
+class AccidentEjectionResultat (TObjet):pass
+class AccidentsResultats (TObjet):pass
+# ResultatsExperimentaux
+class ActivitesExperimentales (TObjet):pass
+# EtudeGenerale
+class DictionnaireCasEtude (TObjet):pass
+# fin entete
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe ISOTOPE : Classe de definition d'un isotope ou d'une molecule
+# Caracteristiques elementaires des isotopes ou molecules et liens avec les bibliotheques de donnees nucleaires
+# Ces caracteristiques elementaires ne devraient pas apparaître dans ce type d'objet, mais etre recuperees directement
+# dans la bibliotheque de donnees de base. La structure des APOLLIB n'etant pas simple d'acces, la solution
+# adoptee permet de mettre a disposition ces informations de maniere simple. A revoir ulterieurement
+# apres redefinition du contenu d'une bibliotheque de base.
+# La decomposition en éléments chimiques simples est utile pour les calculs de type TRIPOLI, les données nucléaires
+# étant définies parfois pour chaque élément et non pour la molécule (cas de l'eau par exemple)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ISOTOPE = OPER (nom="ISOTOPE", sd_prod=Isotope, op=0, niveau = 'Isotopes',
+ fr = "Definition d'un isotope ou d'une molecule et de ses bibliotheques",
+ ang = "Isotope or Molecule definition and data libraries",
+ Symbole = SIMP (typ='TXM',statut='o',fr="Symbole de l'isotope ou de la molecule"),
+ MasseAtomique = SIMP (typ='R', statut='o',fr="Masse atomique en uma"),
+ NombreDeCharge = SIMP (typ='I', statut='o',fr="Nombre de charge atomique Z"),
+ NombreDeMasse = SIMP (typ='I', statut='o',fr="Nombre de masse atomique A"),
+ Type = SIMP (typ='TXM',statut='f',into=('Standard','Detecteur','Structure','Poison'),fr="Type de l'isotope"),
+ NomsBibliotheque = NUPL (max = '**', statut = 'o',fr="Association Procedure Bibliotheque et Nom isotope dans le Fichier",
+ elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"),
+ SIMP (typ='TXM',fr="Identifiant de l'isotope dans la bibliotheque"))),
+ NomsBiblioAutoprotegee = NUPL (max = '**', statut = 'f',
+ elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"),
+ SIMP (typ='TXM',fr="Identifiant Bibliotheque autoprotegee de l'isotope"))),
+ ComposantsElementaires = SIMP (typ=Isotope, max = '**', statut = 'f',
+ fr="Liste des elements chimiques composant la molecule")
+ ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe BORNES_ENERGIE : Classe de definition des limites en energie d'un maillage multigroupe
+# Objets utilises pour la définition du maillage des bibliothèques de base
+# ou des macro-groupes d'énergie de condensation des sections efficaces sur le flux détaillé
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+BORNES_ENERGIE = OPER (nom="BORNES_ENERGIE", sd_prod=BornesEnergie, op=0, niveau = 'MaillagesEnergie',
+ fr = "Definition d'une discretisation de l'espace energetique",
+ ang = "Definition of an energy discretisation",
+ NbMacrogroupes = SIMP (statut='o',typ='I', fr="Nombre de macrogroupes du maillage energetique"),
+ BornesEnergetiques = SIMP (statut='o',typ='R',max='**',fr="Bornes en energie (MeV) du maillage energetique"),
+ ) ; # Fin BORNES_ENERGIE
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe MAILLAGE_1D : Classe de definition d'un maillage spatial 1D : 4 possiblilites de definition :
+# 1 et 2) Equidistant et Equivolumique : Largeur totale a fournir
+# 3) Liste des dimensions des mailles
+# 4) Abscisse initiale et couples (Nb sous-pas, Abscisse suivante)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+MAILLAGE_1D = OPER (nom="MAILLAGE_1D", sd_prod=Maillage1D, op=0, niveau = 'MaillagesSpatiaux',
+ fr = "Definition d'une discretisation d'un espace 1D",
+ ang = "Definition of a 1D spatial discretisation",
+ ModeDefinition = SIMP (typ='TXM',statut='o',defaut='LargeurMaille',into=('Equidistant','Equivolumique','LargeurMaille','SousMaille'),
+ fr="Mode de definition du maillage"),
+ NbMailles = SIMP (typ='I',statut='o',fr="Nombre de mailles de discretisation"),
+ BlocEqui = BLOC (condition = "ModeDefinition=='Equidistant' or ModeDefinition=='Equivolumique'",
+ DimensionTotale = SIMP (typ='R',statut='o',fr="Largeur totale du maillage en cm")
+ ),
+ BlocMailles = BLOC (condition = "ModeDefinition=='LargeurMaille'",
+ LargeursMailles = SIMP (typ='R',max='**',statut='o',fr="Largeurs des mailles en cm")
+ ),
+ BlocSousMailles = BLOC (condition = "ModeDefinition=='SousMaille'",
+ SousMailles = SIMP (typ=('I','R'),max='**',statut='o',fr="Abscisse initiale et couples (Nb sous-pas, Abscisse suivante)")
+ )
+ ) ; # Fin MAILLAGE_1D
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe FICHIER_BIBLIOTHEQUE_ISOTOPES : Classe de definition des fichiers des bibliotheques des donnees nucleaires d'isotopes ou de molecules
+# Noms et formats des fichiers d'isotopes suivant le systeme d'exploitation
+# Dans le cas de TRIPOLI 4, on fournit le nom du dictionnaire ou se trouve la description des
+# isotopes disponibles pour le code et le chemin d'accès aux fichiers de sections de ces isotopes
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+FICHIER_BIBLIOTHEQUE_ISOTOPES = OPER (nom="FICHIER_BIBLIOTHEQUE_ISOTOPES", sd_prod=FichierBibliothequeIsotopes, op=0, niveau = 'DonneesNucleaires',
+ fr = "Definition d'une bibliotheque de donnees nucleaires des isotopes",
+ ang = "Definition of a nuclear data isotope library",
+ Description = SIMP (typ='TXM',statut='o',fr="Identificateur Bibliotheque ou Dictionnaire"),
+ Fichiers = FACT (max='**', statut='o',fr="Donnee des fichiers associes a la bibliotheque et du maillage energetique",
+ SystemeExploitation = SIMP (typ='TXM',statut='o',fr="Systeme d'exploitation du reseau informatique"),
+ NomFichier = SIMP (typ='TXM',statut='o',fr="Nom du fichier de la bibliotheque de donnees de base"),
+ FormatFichier = SIMP (typ='TXM',statut='o',fr="Format du fichier"),
+ BornesEnergetiques = SIMP (typ=BornesEnergie,statut='o',fr="Bornes en MeV du maillage en energie")
+ )
+ ) ; # Fin FICHIER_BIBLIOTHEQUE_ISOTOPES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CHAINE_FILIATION : Classe de definition des filiations isotopiques dues aux transmutations
+# sous irradiation neutronique.
+# Description textuelle sous format (APOLLO2, SUNSET ou DARWIN)
+# ou description particuliere des filiations.
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CHAINE_FILIATION = OPER (nom="CHAINE_FILIATION", op=0, sd_prod=ChaineFiliation, niveau = 'ChaineFiliationIsotopique',
+ fr = "Definition d'une chaine de filiation isotopique sous irradiation",
+ ang = "Definition of a depletion chain",
+ NombreIsotopes = SIMP (typ='I' ,statut='o',fr="Nombre d'isotopes decrits dans la chaine"),
+ ChaineAPOLLO2 = SIMP (typ='TXM',statut='f',fr="Description de la chaine sous format APOLLO2"),
+ ChaineSUNSET = SIMP (typ='TXM',statut='f',fr="Description de la chaine sous format SUNSET"),
+ ChaineDARWIN = SIMP (typ='TXM',statut='f',fr="Nom du fichier contenant la description DARWIN de la chaine"),
+ ListeIsotopes = FACT (max = '**',statut = 'f',
+ Isotope = SIMP (typ=Isotope,fr="Nom de l'isotope",statut='o'),
+ Peres = FACT (max = '**',statut = 'o',
+ IsotopePere = SIMP (statut='o',typ=Isotope,fr="Nom de l'isotope pere"),
+ TypeReaction = SIMP (statut='o',typ='TXM' ,fr="Type de reaction nucleaire",
+ into=('nGamma','n2n','n3n','n4n','np','nalpha')),
+ RapportBranchement = SIMP (statut='o',typ='R' ,fr="Rapport de branchement",defaut=1.)
+ )
+ )
+ ) ; # Fin CHAINE_FILIATION
+# regles = (UN_PARMI ('ChaineAPOLLO2','ChaineSUNSET','ChaineDARWIN','ListeIsotopes'),),
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe MATERIAU : Classe de définition d'un matériau à partir de mélange d'isotopes ou de matériaux.
+# Définition alternative par donnée des enrichissements (Possibilités limitées aux combustibles UO2, MOX, Gd)
+# Caractéristiques fournies a 20 C.
+# Proprietes thermiques et thermomécaniques éventuelles
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+MATERIAU = OPER(nom="MATERIAU", op=0, sd_prod=Materiau, niveau = 'Materiaux',
+ fr = "Definition d'un materiau",
+ ang = "Definition of a mixture",
+ TypeDefinition = SIMP (typ='TXM',statut='o',defaut="Isotopique",into=("Isotopique","Enrichissement")),
+ TypeMateriau = SIMP (statut = 'o', typ = 'TXM',
+ into = ('Combustible','Absorbant','Melange','ModerateurInterne','ModerateurExterne','Detecteur',
+ 'Grille','Gaine','Tube','Poison','PoisonConsommable','AbsorbantIntegre',
+ 'CoucheCorrosion','Solide','Liquide','Gaz','MateriauVide'),
+ defaut = 'Combustible'),
+ BlocIsotopique = BLOC (condition = "TypeDefinition=='Isotopique'",
+ MethodeMelange = SIMP (statut = 'o',typ='TXM',into=('Isotopique','Massique','Concentration'),defaut='Massique'),
+ Constituants = NUPL (statut = 'o', max = '**',
+ fr = "Couples (Isotope ou Materiau) et (Pourcentage ou Concentration)",
+ elements = (SIMP (typ=(Isotope,Materiau),fr="Isotope ou Materiau constituant"),
+ SIMP (typ='R',fr="Pourcentage % ou Concentration 10E24 de l'isotope ou du materiau"))
+ )
+ ),
+ BlocEnrichissement = BLOC (condition = "TypeDefinition=='Enrichissement'",
+ Type = SIMP (typ='TXM',into=('UO2','MOX','UO2Gadolinium','MOXGadolinium'),statut='o',defaut='UO2',fr="Type de combustible"),
+ U235Enrichissement = SIMP (typ='R',defaut=3.7,statut='o',val_min=0.,val_max=100.,
+ fr="Enrichissement % en U235 du combustible"),
+ TeneurU234Naturel = SIMP (typ='R',defaut=110.,statut='f',fr="Teneur (ppm) en U234 de l'uranium naturel"),
+ DonneesGado = BLOC (condition = "Type=='UO2Gadolinium' or Type=='MOXGadolinium'",
+ EnrichissementGado = SIMP (typ=('R','TXM'),defaut=8.,statut='o',fr="Enrichissement % en Gd2O3 du combustible")),
+ DonneesMOX = BLOC (condition = "Type=='MOX' or Type=='MOXGadolinium'",
+ PuEnrichissement = SIMP (typ=('R','TXM'),defaut=5.3,statut='o',val_min=0.,val_max=100.,
+ fr="Enrichissement % en plutonium du combustible"),
+ VecteurPu = FACT (statut='o',fr="Definition du vecteur isotopique du plutonium",
+ Pu238PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu238"),
+ Pu239PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu239"),
+ Pu240PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu240"),
+ Pu241PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu241"),
+ Pu242PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu242"),
+ Am241PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Am241"),
+ ),
+ DateReference = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de reference du combustible"),
+ DateDivergence = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de divergence du reacteur ou ce combustible est charge"),
+ VieillissementJours = SIMP (typ='R',defaut = 0.,statut = 'f',
+ fr = "Nbre de jours de vieillissement du combustible, calculable si on donne DateDivergence")
+ )
+ ),
+ TauxEvidement = SIMP (statut='f',typ='R',fr="Taux % d'evidement du materiau"),
+ TauxPorosite = SIMP (statut='f',typ='R',fr="Taux % de porosite du materiau"),
+ Temperature = SIMP (statut='f',typ='R',fr="Temperature en Celsius du materiau"),
+ PlenumGaz = SIMP (statut='f',typ=(Isotope,Materiau),defaut='HE4',fr="Gaz de remplissage des evidements du materiau solide et dans le plenum"),
+# PlenumGaz = SIMP (statut='f',typ=(Isotope,Materiau),fr="Gaz de remplissage des evidements du materiau solide et dans le plenum"),
+ PressionPlenumGaz = SIMP (statut='f',typ='R',defaut=32.,fr="Pression en bars du gaz de remplissage des evidements et dans le plenum"),
+ Chaine = SIMP (statut='f',typ=ChaineFiliation,defaut='ChaineSaturee',fr="Chaine de filiation isotopique associee au materiau"),
+ TauxImpuretes = SIMP (statut='f',typ='R',fr="Taux % d'impuretes"),
+ ChaleurSpecifiquePressionCte = SIMP (statut='f',typ='R',fr="Chaleur Specifique a Pression Constante J/(kg.C)"),
+ ConductiviteThermique = SIMP (statut='f',typ='R',fr="Conductivite Thermique W/(cm.C)"),
+ MateriauGazBloc = BLOC (condition = "TypeMateriau=='Gaz'",
+ GazLongueurExtrapolation = SIMP (statut='f',typ='R',fr="Longueur Extrapolation en cm"),
+ GazPression = SIMP (statut='f',typ='R',fr="Pression du gaz en bars")
+ ),
+ MateriauLiquideBloc = BLOC (condition = "TypeMateriau in ('Liquide','ModerateurInterne','ModerateurExterne')",
+ RoLiquide = SIMP (statut='f',typ='R',fr="Masse volumique theorique du liquide g/cm3"),
+ PressionLiquide = SIMP (statut='f',typ='R',fr="Pression du liquide en bars"),
+ EbullitionTemperature = SIMP (statut='f',typ='R',fr="Temperature Ebullition en Celsius"),
+ EbullitionPression = SIMP (statut='f',typ='R',fr="Pression Ebullition en bars")
+ ),
+ MateriauSolideBloc = BLOC (condition = "TypeMateriau not in ('Liquide','ModerateurInterne','ModerateurExterne','Gaz','MateriauVide')",
+ RoSolide = SIMP (statut='f',typ='R',fr="Masse volumique theorique du materiau g/cm3"),
+ DilatationLineaire = SIMP (statut='f',typ='R',fr="Coefficient de dilatation thermique lineaire cm/C du materiau"),
+ LimiteElastique = SIMP (statut='f',typ='R',fr="Limite Elastique en Pa"),
+ Fluence = SIMP (statut='f',typ='R',fr="Fluence subie par le materiau en n/cm2"),
+ Emissivite = SIMP (statut='f',typ='R',fr="Valeur d'emissivite"),
+ ModuleYoung = SIMP (statut='f',typ='R',fr="Module d'Young en Pa"),
+ CoefficientPoisson = SIMP (statut='f',typ='R',fr="Coefficient de Poisson"),
+ RugositeSurface = SIMP (statut='f',typ='R',fr="Rugosite de Surface en cm")
+ )
+ ) ; # Fin MATERIAU
+# ==================================================================================================================================
+# Definition des Classes elementaires pour la geometrie
+# ==================================================================================================================================
+# Classe POINT : Classe de definition d'un point de l'espace
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POINT = OPER (nom="POINT", op=0, sd_prod=Point, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un point de l'espace",
+ ang = "Definition of a point in space",
+ Coordonnees = SIMP (typ='R',min=2,max=3,statut='o',fr="Coordonnees du point dans l'espace")
+ ) ;# Fin POINT
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe VECTEUR : Classe de definition d'un vecteur dans l'espace
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+VECTEUR = OPER (nom="VECTEUR", op=0, sd_prod=Vecteur, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un vecteur dans l'espace",
+ ang = "Definition of a vector in space",
+ regles = (UN_PARMI ('Composantes','Points'),),
+ Composantes = SIMP (typ='R' ,min=2,max=3,statut='f',fr="Composantes du vecteur en 2D ou 3D"),
+ Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Vecteur defini par deux points")
+ ) ; # Fin VECTEUR
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DROITE : Classe de definition d'une droite
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DROITE = OPER (nom="DROITE", op=0, sd_prod=Droite, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une droite par 2 POINTs, 1 POINT et 1 VECTEUR, ou Equation ax + by + cz + d = 0",
+ ang = "Definition of a straight line by 2 POINTs or through an Equation ax + by + cz + d = 0",
+ regles = (UN_PARMI ('Points','Equation','VecteurOrigine'),),
+ Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Deux points de definition de la droite"),
+ Equation = SIMP (typ='R' ,min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation d'une droite"),
+ VecteurOrigine = FACT (statut='f',
+ Vecteur = SIMP (typ=Vecteur,statut='o',fr="Donnee du vecteur directeur de la droite"),
+ Origine = SIMP (typ=Point ,statut='o',fr="Donnee d'un point de passage de la droite"))
+ ) ; # Fin DROITE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe SEGMENT : Classe de definition d'un segment (Idem DROITE + Longueur et Origine)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SEGMENT = OPER (nom="SEGMENT", op=0, sd_prod=Segment, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un segment 2 Points ou Origine + ((Longueur + Equation ax + by + d = 0) ou vecteur)",
+ ang = "Definition of a segment ax + by + cz + d = 0",
+ regles = (UN_PARMI ('Points','Equation','Vecteur'),),
+ Points = SIMP (typ=Point,min=2,max=2,statut='f',fr="Deux points de definition du segment"),
+ Equation = FACT (statut='f',fr="Donnee du segment par son equation, sa longueur et son origine",
+ Coefficients = SIMP (typ='R' ,min=2,max=4,statut='o',fr="Coefficients successifs abcd de l'equation de la droite"),
+ Longueur = SIMP (typ='R', statut='o',fr="Longueur du segment en cm"),
+ Origine = SIMP (typ=Point, statut='o',fr="Donnee de l'origine du segment")
+ ),
+ Vecteur = FACT (statut='f',fr="Donnee du segment par un vecteur, sa longueur et son origine",
+ Vecteur = SIMP (typ=Vecteur,min=2,max=4,statut='o',fr="Coefficients successifs abcd de l'equation de la droite"),
+ Longueur = SIMP (typ='R', statut='o',fr="Longueur du segment en cm"),
+ Origine = SIMP (typ=Point, statut='o',fr="Donnee de l'origine du segment")
+ )
+ ) ; # Fin SEGMENT
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ARC_CERCLE : Classe de definition d'un arc de cercle
+# Angles donnes en degres
+# Dans le cas 2D on peut positionner l'arc de cercle en donnant l'angle du debut de l'arc par rapport a l'axe Ox
+# Dans le cas 3D on donne en plus la hauteur et l'axe directeur de l'arc
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ARC_CERCLE = OPER (nom="ARC_CERCLE", op=0, sd_prod=ArcCercle, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un arc de cercle",
+ ang = "Definition of a circular arc",
+ Type = SIMP (typ='TXM' ,statut='o',defaut='2D',into=('2D','3D'), fr="Type d'arc 2D ou 3D"),
+ Rayon = SIMP (typ='R' ,statut='o', fr="Rayon de l'arc de cercle en cm"),
+ Angles = SIMP (typ='R' ,statut='f',max=2,defaut=(360.,0.), fr="Angles en degres de l'arc : Total et Debut"),
+ VecteurAxe = SIMP (typ=Vecteur,statut='f', fr="Vecteur directeur de l'axe de l'arc")
+ ) ; # Fin ARC_CERCLE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe SECTEUR_DISQUE : Classe de definition d'un disque ou d'un secteur d'une couronne circulaire
+# Angle du secteur donne en degres (360° par defaut)
+# Dans le cas 2D on peut positionner le secteur en donnant l'angle du debut de secteur par rapport a l'axe Ox
+# Dans le cas 3D on donne en plus la hauteur et l'axe directeur du secteur
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SECTEUR_DISQUE = OPER (nom="SECTEUR_DISQUE", op=0, sd_prod=SecteurDisque, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un disque ou d'un secteur d'une couronne",
+ ang = "Definition of a circular sector",
+ Type = SIMP (typ='TXM' ,statut='o',into=('2D','3D'),defaut='2D',fr="Type de secteur 2D ou 3D"),
+ Rayons = SIMP (typ='R' ,statut='o',min=2,max=2, fr="Rayons interne et externe de la couronne en cm"),
+ Angles = SIMP (typ='R' ,statut='f',max=2,defaut=(360.,0.), fr="Angles en degres du secteur"),
+ Hauteur = SIMP (typ='R' ,statut='f',defaut=0., fr="Hauteur du secteur en cm"),
+ VecteurAxe = SIMP (typ=Vecteur,statut='f',defaut=0., fr="Vecteur directeur de l'axe du secteur")
+ ) ; # Fin SECTEUR_DISQUE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONIQUE : Classe de definition d'une conique 2D
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONIQUE = OPER (nom="CONIQUE", op=0, sd_prod=Conique, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une conique 2D ax2+by2+cxy+dx+ey+f=0",
+ ang = "Definition of a 2D quadratic curve ax2+by2+cxy+dx+ey+f=0",
+ Equation = SIMP (typ='R',min=2,max=6,statut='o',fr="Coefficients successifs abcdef de l'equation d'une conique")\r
+ ) ; # Fin CONIQUE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe TRIANGLE : Classe de definition d'un triangle
+# Angles donnes en degres par rapport a l'axe Ox horizontal
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+TRIANGLE = OPER (nom="TRIANGLE", op=0, sd_prod=Triangle, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un triangle",
+ ang = "Definition of a triangle",
+ regles = (UN_PARMI ('Points','AngleCotes'),),
+ Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Donnee des 3 sommets du triangle"),
+ AngleCotes = SIMP (typ='R' ,min=3,max=3,statut='f',fr="Donnee d'un Angle en degres et Longueurs de deux cotes en cm")
+ ) ; # Fin TRIANGLE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RECTANGLE : Classe de definition d'un rectangle
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RECTANGLE = OPER (nom="RECTANGLE", op=0, sd_prod=Rectangle, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un rectangle",
+ ang = "Definition of a rectangle",
+ regles = (UN_PARMI ('Points','Cotes'),),
+ Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Definition du rectangle par trois points"),
+ LongueursCotes = SIMP (typ='R' ,min=2,max=2,statut='f',fr="Donnee de la longueur de deux cotes en cm")
+ ) ; # Fin RECTANGLE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CARRE : Classe de definition d'un carre
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CARRE = OPER (nom="CARRE", op=0, sd_prod=Carre, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un carre",
+ ang = "Definition of a square",
+ regles = (UN_PARMI ('Points','Cote'),),
+ Points = SIMP (typ=Point,min=2,max=2, statut='f',fr="Definition du carre par deux points"),
+ LongueurCote = SIMP (typ='R', statut='f',fr="Donnee de la longueur du cote du carre en cm")
+ ) ; # Fin CARRE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe HEXAGONE : Classe de definition d'un hexagone
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+HEXAGONE = OPER (nom="HEXAGONE", op=0, sd_prod=Hexagone, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un hexagone",
+ ang = "Definition of an hexagon",
+ Rayon = SIMP (typ='R',statut='f',fr="Rayon du cercle inscrit dans l'hexagone en cm")
+ ) ; # Fin HEXAGONE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POLYGONE : Classe de definition d'un polygone
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POLYGONE = OPER (nom="POLYGONE", op=0, sd_prod=Polygone, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un polygone",
+ ang = "Definition of a polygon",
+ Points = SIMP (typ=Point,max='**',statut='f',fr="Definition d'un polygone par tous ses points")
+ ) ; # Fin POLYGONE
+# ==================================================================================================================================
+# Definition des Classes pour une geometrie 3D : Elements geometriques combinatoires ou surfaciques
+# L'utilisation de certaines classes de combinatoire en surfacique consiste a simplement specifier la position de l'objet
+# ou a eliminer certaines surfaces limites de la classe
+# Pour une sphere : donnee du centre de la sphere
+# Pour un cylindre : Pas de donnee de la hauteur, mais donnee d'un point de l'axe du cylindre
+# ==================================================================================================================================
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe SPHERE : Classe de definition d'une sphere (ou d'une sphere sectorisee ou decoupee en rondelles)
+# Des portions de la sphere peuvent etre selectionnees en donnant leurs cotes limites sur un axe de la sphere
+# (origine de l'axe au centre de la sphere, donc cotes comprises entre -R, +R si R est le rayon de la sphere)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SPHERE = OPER (nom="SPHERE", op=0, sd_prod=Sphere, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme spherique",
+ ang = "Definition of a spherical form",
+ Rayon = SIMP (typ='R',statut='o',fr="Rayon de la sphere en cm"),
+ Secteur = SIMP (typ='R',statut='f',fr="Angle du secteur de la sphere en degre"),
+ TranchesAxiales = NUPL (max = '**', statut = 'f', fr = "Limites des tranches axiales de la sphere sectorisee",
+ elements = ( SIMP (typ='R',statut = 'o', fr="Cote depart de la tranche"),
+ SIMP (typ='R',statut = 'o', fr="Cote finale de la tranche")))
+ ) ; # Fin SPHERE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe BOITE_RECTANGULAIRE : Classe de definition d'une forme parallelepipedique de cotes paralleles aux axes de reference
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+BOITE_RECTANGULAIRE = OPER (nom="BOITE_RECTANGULAIRE", op=0, sd_prod=BoiteRectangulaire, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une d'une forme parallelepipedique rectangulaire",
+ ang = "Definition of a rectangular box form",
+ Cotes = SIMP (typ='R',min=3,max=3,statut='o',fr="Longueurs des Cotes de la boite rectangulaire en cm")
+ ) ; # Fin BOITE_RECTANGULAIRE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe BOITE_GENERALE : Classe de definition d'une forme parallelepipedique quelconque
+# Le plan de base de la boite doit etre le plan xOy. On donne donc uniquement les 2 vecteurs **normaux**
+# aux 2 autres plans, et les 3 longueurs des aretes principales.
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+BOITE_GENERALE = OPER (nom="BOITE_GENERALE", op=0, sd_prod=BoiteGenerale, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme parallelepipedique quelconque",
+ ang = "Definition of a general box form",
+ VecteursDirecteurs = SIMP (typ=Vecteur,min=2,max=2,statut='o',fr="Vecteurs normaux aux faces non horizontales de la boite"),
+ Cotes = SIMP (typ='R' ,min=3,max=3,statut='o',fr="Longueurs des Cotes de la boite en cm")
+ ) ; # Fin BOITE_GENERALE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CYLINDRE_X : Classe de definition d'une forme cylindrique d'axe parallele a Ox
+# Pour tous les cylindres, la donnee de deux rayons transforme le cylindre circulaire en cylindre elliptique
+# La donnee d'un angle limite le cylindre a ce secteur
+# Pour un secteur d'un cylindre elliptique, il est necessaire de donner en plus l'angle de depart du secteur
+# par rapport a l'axe majeur de l'ellipse
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CYLINDRE_X = OPER (nom="CYLINDRE_X", op=0, sd_prod=CylindreX, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme cylindrique d'axe parallele a Ox",
+ ang = "Definition of a right cylinder form // Ox",
+ Rayons = SIMP (typ='R', max=2, statut='o', fr="Rayons mineur et majeur du cylindre X en cm"),
+ Hauteur = SIMP (typ='R', statut='f', fr="Hauteur du cylindre X en cm"),
+ Angles = SIMP (typ='R', max=2, statut='f', fr="Angles du secteur du cylindre X en degres")
+ ) ; # Fin CYLINDRE_X
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CYLINDRE_Y : Classe de definition d'une forme cylindrique d'axe parallele a Oy
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CYLINDRE_Y = OPER (nom="CYLINDRE_Y", op=0, sd_prod=CylindreY, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme cylindrique d'axe parallele a Oy",
+ ang = "Definition of a right cylinder form // Oy",
+ Rayons = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre Y en cm"),
+ Hauteur = SIMP (statut='f',typ='R', fr="Hauteur du cylindre Y en cm"),
+ Angles = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre Y en degres")
+ ) ; # Fin CYLINDRE_Y
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CYLINDRE_Z : Classe de definition d'une forme cylindrique d'axe parallele a Oz
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CYLINDRE_Z = OPER (nom="CYLINDRE_Z", op=0, sd_prod=CylindreZ, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme cylindrique d'axe parallele a Oz",
+ ang = "Definition of a right cylinder form // Oz",
+ Rayons = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre Z en cm"),
+ Hauteur = SIMP (statut='f',typ='R', fr="Hauteur du cylindre Z en cm"),
+ Angles = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre Z en degres")
+ ) ; # Fin CYLINDRE_Z
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CYLINDRE : Classe de definition d'une forme cylindrique quelconque
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CYLINDRE = OPER (nom="CYLINDRE", op=0, sd_prod=Cylindre, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme cylindrique quelconque",
+ ang = "Definition of a general cylinder form",
+ Rayons = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre en cm"),
+ VecteurAxe = SIMP (statut='o',typ=Vecteur, fr="Vecteur directeur de l'axe du cylindre"),
+ Hauteur = SIMP (statut='f',typ='R', fr="Hauteur du cylindre en cm"),
+ Angles = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre en degres")
+ ) ; # Fin CYLINDRE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONE : Classe de definition d'un forme conique
+# Une portion de cone peut etre definie en donnant les cotes axiales (origine de l'axe du cone au sommet du cone) de
+# la zone retenue
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONE = OPER (nom="CONE", op=0, sd_prod=Cone, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme conique",
+ ang = "Definition of a conic form",
+ DemiAngleSommet = SIMP (statut='o',typ='R', fr="Demi-angle au sommet en degres"),
+ LimitesAxiales = SIMP (statut='f',typ='R',min=2,max=2,fr="Limites axiales du cone"),
+ VecteurAxe = SIMP (statut='o',typ=Vecteur, fr="Vecteur directeur de l'axe du cone")
+ ) ; # Fin CONE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PRISME_HEXAGONAL : Classe de definition d'une forme de prisme hexagonal 3D
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PRISME_HEXAGONAL = OPER (nom="PRISME_HEXAGONAL",op=0,sd_prod=PrismeHexagonal,
+ niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme de prisme hexagonal 3D",
+ ang = "Definition of a 3D hexagonal form",
+ Rayon = SIMP (statut='o',typ='R', fr="Rayon du cercle circonscrit (=cote de l'hexagone) en cm"),
+ Hauteur = SIMP (statut='f',typ='R', fr="Hauteur de l'hexagone en cm"),
+ VecteurAxe = SIMP (statut='o',typ=Vecteur,fr="Vecteur directeur de l'axe de l'hexagone")
+ ) ; # Fin PRISME_HEXAGONAL
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe TORE : Classe de definition d'une forme toroidale
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+TORE = OPER (nom="TORE",op=0,sd_prod=Tore,
+ niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme toroidale",
+ ang = "Definition of a toroidal form",
+ Rayons = SIMP (typ='R',min=2,max=2,statut='o',
+ fr="Rayons du tore : 1/2 distance a l'axe et rayon de la section du tore en cm")
+ ) ; # Fin TORE
+# ==================================================================================================================================
+# Definition des Classes pour une geometrie 3D : Elements geometriques surfaciques
+# ==================================================================================================================================
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN : Classe de definition d'un plan
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PLAN = OPER (nom="PLAN", op=0, sd_prod=Plan, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un plan ax + by + cz + d = 0",
+ ang = "Definition of a plane surface ax + by + cz + d = 0",
+ regles = (UN_PARMI ('Points','Equation'),),
+ Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Donnee de 3 points non alignes"),
+ Equation = SIMP (typ='R' ,min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation du plan")
+ ) ; # Fin PLAN
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN_X : Classe de definition d'un plan perpendiculaire a l'axe Ox
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PLAN_X = OPER (nom="PLAN_X", op=0, sd_prod=PlanX, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un plan perpendiculaire a Ox",
+ ang = "Definition of a plane surface perpendicular to Ox",
+ Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OyOz")
+ ) ; # Fin PLAN_X
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN_Y : Classe de definition d'un plan perpendiculaire a l'axe Oy
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PLAN_Y = OPER (nom="PLAN_Y", op=0, sd_prod=PlanY, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un plan perpendiculaire a Oy",
+ ang = "Definition of a plane surface perpendicular to Oy",
+ Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OxOz")
+ ) ; # Fin PLAN_Y
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe PLAN_Z : Classe de definition d'un plan perpendiculaire a l'axe Oz
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PLAN_Z = OPER (nom="PLAN_Z", op=0, sd_prod=PlanZ, niveau = 'ElementsGeometriques',
+ fr = "Definition d'un plan perpendiculaire a Oz",
+ ang = "Definition of a plane surface perpendicular to Oz",
+ Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OxOy")
+ ) ; # Fin PLAN_Z
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POLYEDRE : Classe de definition d'une forme polyhedrique 3D quelconque (N faces, N > 4)
+# Definition surfacique : Donnee des N plans et du choix du cote positif ou negatif
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POLYEDRE = OPER (nom="POLYEDRE", op=0, sd_prod=Polyedre, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme polyhedrique 3D quelconque ",
+ ang = "Definition of a 3D polyhedron form with N > 4 plane faces",
+ Plans = NUPL (min = 5, max = '**', statut = 'o', fr = "Surfaces planes limites du polyedre",
+ elements = (SIMP (typ=(Plan,PlanX,PlanY,PlanZ) ,fr="Plans limites du polyedre"),
+ SIMP (typ='TXM',into=('Plus','Moins'),fr="Choix du cote positif ou negatif de l'espace")))
+ ) ; # Fin POLYEDRE
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe QUADRIQUE : Classe de definition d'une quadrique 3D
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+QUADRIQUE = OPER (nom="QUADRIQUE", op=0, sd_prod=Quadrique, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une quadrique 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0",
+ ang = "Definition of a quadratic curve 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0",
+ Equation = SIMP (typ='R',min=2,max=10,statut='o',fr="Coefficients successifs abcdefghij de l'equation d'une quadrique")
+ ) ; # Fin QUADRIQUE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CELLULE : Classe de definition d'une cellule (ensemble elementaire de regions annulaires et sectorisees)
+# Apres la hauteur de la cellule, entree des donnees par listes successives pour l'ensemble des couronnes de la
+# cellule, la zone externe etant decrite a part dans l'attribut FormeTechnologique :
+# - Liste des materiaux
+# - Liste des rayons des couronnes correspondantes
+# - Liste des sous-couronnes : - Numero de couronne a discretiser (Numero 1 a partir du centre),
+# - Nombre de sous-couronnes,
+# - Mot-cle Equivolumique si decoupage en sections transverses egales,
+# - Rayons des couronnes intermediaires ou proportions volumiques si mot-cle Proportions indique anterieurement.
+# - Liste des sectorisations : - Nom de couronne a sectoriser ,
+# - Nombre de secteurs,
+# - Mot-cle Equivolumique si decoupage en secteurs egaux et positionnement du premier
+# secteur par rapport a l'axe x, et pas de changement de composition du secteur,
+# - Mot-cle alternatif Angle si on veut modifier ou positionner les secteurs dans la
+# couronne : on donne alors des triplets de donnees pour chaque secteur :
+# - nom du materiau composant le le secteur,
+# - position trigonometrique en degres du debut du secteur
+# - et angle en degres du secteur.
+# Le trace des secteurs sont definis en partant du centre de la couronne.
+# Pour la sectorisation de la forme externe, deux cas se presentent :
+# - soit pas de couronnes internes : les secteurs se tracent alors en partant du centre de la forme externe,
+# - dans le cas contraire, les secteurs partent du centre des couronnes.
+# Les secteurs peuvent ne pas couvrir l'ensemble de la couronne.
+# - Pour la zone peripherique, on doit definir les cotes de la cellule (cas cartesien), son materiau, sa
+# discretisation, et le decentrage du centre des couronnes par rapport au centre de ce contour peripherique
+# (Coordonnees x,y du centre des couronnes / au centre du contour)
+# - Pour le moment, limitation a 2D, sauf la donnee optionnelle des positions axiales des couronnes
+# - Une cellule peut etre definie a partir d'une cellule d'un autre assemblage antérieurement calcule
+# - Cette classe sert aussi a definir des microstructures (double heterogeneite) a inclure dans des regions
+# d'autres cellules d'ou les attributs relatifs aux microstructures (une microstructure étant une petite cellule
+# cylindrique ou spherique a disseminer dans des regions particulieres d'une cellule de taille plus importante
+# dans des proportions fixees par l'attribut ProportionsMicroStructures
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CELLULE = OPER (nom="CELLULE", op=0, sd_prod=Cellule, niveau = 'Geometries',
+ fr = "Definition d'une cellule elementaire",
+ ang = "Definition of a basic cell",
+ regles = (UN_PARMI ('Couronnes', 'CelluleIrradiee'),),
+ Type = SIMP (typ='TXM',defaut='Combustible',
+ into=( 'Combustible','BarreGrise','BarreNoire','BarreAcier','BarreAic','BarreB4c',
+ 'Detecteur','Trou','TubeGuide','Postiche','Pyrex','ExPyrex','Gadolinium',
+ 'CellType1','CellType2','CellType3'),statut='o'),
+ HauteurTotale = SIMP (typ='R',defaut=1.,statut='o',fr="Hauteur totale de la cellule"),
+ Cluster = SIMP (typ=Cluster,statut='f',fr="Cluster a integrer dans la cellule de base en cm"),
+ TypeGeometrie = SIMP (typ='TXM',defaut='Cylindrique',statut='o',into=('Cylindrique','Spherique'),fr="Type de geometrie de la cellule"),
+ Couronnes = FACT (statut='f',fr="Definition des couronnes cylindriques physiques de materiaux",
+ NomsSymboliques = SIMP (typ='TXM', max='**',statut='o',fr="Liste des noms arbitraires des couronnes"),
+ Materiaux = SIMP (typ=Materiau, max='**',statut='o',fr="Liste des materiaux des couronnes"),
+ Temperatures = SIMP (typ='R', max='**',statut='f',fr="Liste des temperatures des couronnes en Celsius"),
+ PressionGaz = SIMP (typ='R', statut='f',fr="Valeur de pression de gaz (en bars)"),
+ Rayons = SIMP (typ='R', max='**',statut='o',fr="Liste des rayons des couronnes en cm"),
+ RayonsMineurs = SIMP (typ='R', max='**',statut='f',fr="Liste des rayons mineurs des couronnes elliptiques en cm"),
+ Hauteurs = SIMP (typ='R', max='**',statut='f',fr="Liste des hauteurs des couronnes en cm"),
+ AxialPositions = SIMP (typ='R', max='**',statut='f',
+ fr="Positions axiales de la base des couronnes en cm / au zero de la hauteur maximum")
+ ),
+ MicroStructures = FACT (max = '**', statut = 'f',fr="Chargement de la double heterogeneite dans chaque couronne",
+ NomCouronne = SIMP (typ='TXM',statut='o',fr="Nom symbolique de la couronne ou inserer des microstructures"),
+ MicroStructures = SIMP (typ=Cellule,max='**',statut='o',fr="Liste des microstructures dans la couronne"),
+ ProportionsMicroStructures = SIMP (typ='R',max='**',statut='o',fr="Proportions des microstructures dans la couronne")
+ ),
+ SousCouronnes = FACT (max = '**', statut = 'f',fr="Discretisation des couronnes de la cellule",
+ NomCouronne = SIMP (typ='TXM',statut='o',fr="Nom symbolique de la couronne"),
+ NbSousCouronnes = SIMP (typ='I' ,statut='o',fr="Nombre de sous-couronnes de discretisation"),
+ TypeDiscretisation = SIMP (typ='TXM',defaut='Equivolumique',statut='o',into=('Equivolumique','Proportions','Equidistant')),
+ BlocProportions = BLOC (condition = "TypeDiscretisation=='Proportions'",
+ ProportionsVolumiques = SIMP (typ='R',statut='o',max='**',fr="Proportions volumiques des sous-couronnes")),
+ ProfilTemperature = SIMP (typ='R',max='**',statut='f',fr="Profil de temperature")
+ ),
+ Homogeneisation = FACT (max = '**', statut = 'f', fr="Homogeneisation de couronnes de la cellule",
+ NomCouronne = SIMP (typ='TXM' , fr="Nom arbitraire de la couronne homogeneisee"),
+ ListeCouronnes = SIMP (typ='TXM',max='**' , fr="Liste des noms des couronnes jointives a homogeneiser")
+ ),
+ Secteurs = FACT (max = '**', statut = 'f', fr="Sectorisation des couronnes de la cellule",
+ NomCouronne = SIMP (typ='TXM',statut='o',fr="Nom de la couronne ou de la forme externe a sectoriser"),
+ NbSecteurs = SIMP (typ='I' ,statut='o',fr="Nombre de secteurs de la couronne"),
+ TypeSectorisation = SIMP (typ='TXM',statut='o',defaut='Coins',into=('Equivolumique','Angle','Coins','MilieuxCotes')),
+ AngleDepart = SIMP (typ='R' ,statut='o',defaut=0.,fr="Angle en degres de depart des secteurs (Origine 0 sur l'axe Ox)"),
+ Sectorisation = FACT (statut = 'f',
+ Materiaux = SIMP (typ=Materiau, max='**',statut='f',fr="Materiau des secteurs"),
+ Temperatures = SIMP (typ=('R','I','TXM'),max='**',statut='f',fr="Temperature des secteurs en Celsius"),
+ Angles = SIMP (typ='R', max='**',statut='f',fr="Angles en degres des secteurs")
+ )
+ ),
+ FormeExterne = FACT (statut='f',fr="Definition de la region externe au systeme cylindrique interne",
+ NomSymbolique = SIMP (typ='TXM',statut='f',fr="Nom arbitraire de la zone externe"),
+ Type = SIMP (typ = (ArcCercle,Carre,Rectangle,Hexagone,Triangle,Polygone),
+ statut = 'f', # la donnee est facultative si la cellule est inserree dans un reseau
+ fr = "Forme geometrique exterieure"),
+ Materiau = SIMP (typ=(Materiau,Cellule),fr="Materiau de la forme externe"),
+ MicroStructures = SIMP (typ=Cellule,max='**',statut='f',fr="Microstructures de la region externe"),
+ ProportionsMicroStructures = SIMP (typ='R',max='**',statut='f',
+ fr="Proportions des microstructures dans la region externe"),
+ Temperature = SIMP (typ='R',fr="Temperature en Celsius du materiau de la forme externe"),
+ PressionGaz = SIMP (typ='R',statut='f',fr="Valeur de pression de gaz (en bars)"),
+ Decentrement = SIMP (typ = 'R',
+ min = 2,
+ max = 3,
+# defaut = (0.,0.,0.),
+ statut = 'f',
+ fr = "Coordonnees xyz du centre des couronnes / barycentre du contour") ),
+ CelluleIrradiee = FACT (statut='f',fr="Utilisation d'une cellule irradiee d'un assemblage existant",
+ AssemblageOrigine = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o',
+ fr="Assemblage d'origine de la cellule a extraire"),
+ IrradiationMoyenne = SIMP (typ='R',statut='o',fr="Irradiation moyenne MWj/t de l'assemblage d'origine"),
+ Position = SIMP (typ='I', min=2, max=2, statut='o',
+ fr="Coordonnees entieres ix,jy du crayon a extraire de l'assemblage") )
+ ) ; # Fin CELLULE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CLUSTER : Classe de definition d'un cluster de cellules
+# Un cluster est defini comme une superposition centree de cadrans telephoniques (a l'ancienne mode), chaque
+# cadran ayant des trous de tailles differentes, l'ensemble devant etre dispose ensuite dans une cellule de forme
+# quelconque.
+# Donnees de Positionnement des couronnes de canaux, chaque canal etant une CELLULE predefinie,
+# Pour chaque type de cellule, on donne :
+# - le nombre de cellules a positionner (de maniere uniformement repartie sur le cercle)
+# - le rayon du cercle sur lequel on les positionne
+# - l'angle / Ox du centre de la premiere cellule (en degres)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CLUSTER = OPER (nom="CLUSTER", op=0, sd_prod=Cluster, niveau = 'Geometries',
+ fr = "Definition d'un cluster de cellules cylindriques",
+ ang = "Definition of a cylindrical cell cluster",
+ Hauteur = SIMP (typ='R',defaut=1.,statut='f',fr="Hauteur du cluster"),
+ Couronnes = FACT (statut='o',fr="Definition des couronnes de cellules",min=1,
+ Cellules = SIMP (typ=Cellule,max='**',statut='o',fr="Liste des types de cellules sur chaque cercle"),
+ NbCellules = SIMP (typ='I' ,max='**',statut='o',fr="Liste des nombres de cellules de chaque type sur chaque cercle"),
+ Rayons = SIMP (typ='R' ,max='**',statut='o',fr="Liste des rayons des cercles correspondants en cm"),
+ Angles = SIMP (typ='R' ,max='**',statut='o',fr="Liste des angles de positionnement / Ox de la premiere cellule de chaque type"))
+ ) ; # Fin CLUSTER
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ORIENTATION : Classe de definition d'une orientation angulaire dans un plan 2D apres symetrie eventuelle / Ox
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ORIENTATION = OPER (nom="ORIENTATION", op=0, sd_prod=Orientation, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une orientation d'un reseau ou d'une cellule",
+ ang = "Definition of a cell or lattice orientation",
+ Symetrie = SIMP (typ=(Plan,PlanX,PlanY,PlanZ),statut='f',
+ fr="Indication d'une operation de symetrie / Plan, avant rotation"),
+ AngleRotation = SIMP (typ='R' ,statut='f',fr="Angle de rotation en degres",defaut=0.),
+ CentreRotation = SIMP (typ=Point ,statut='f',fr="Centre de rotation"),
+ AxeRotation = SIMP (typ=Vecteur,statut='f',fr="Vecteur de l'axe de rotation")
+ ) ; # Fin ORIENTATION
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe FORME_POSITIONNEE : Classe de definition d'une forme geometrique positionnee
+# La position est definie a l'aide du centre de la forme geometrique,
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+FORME_POSITIONNEE = OPER (nom="FORME_POSITIONNEE", op=0, sd_prod=FormePositionnee, niveau = 'ElementsGeometriques',
+ fr = "Definition d'une forme positionnee",
+ ang = "Definition of a shape and its position",
+ Forme = SIMP (
+ typ = (Sphere,BoiteRectangulaire,BoiteGenerale,CylindreX,CylindreY,CylindreZ,Cylindre,SecteurDisque,Cone,
+ Carre,Rectangle,Triangle,Hexagone,Polygone,PrismeHexagonal,Tore,Polyedre,Cellule,Cluster),
+ statut = 'o',
+ fr = "Forme geometrique de base a positionner"),
+ PositionCentre = SIMP (typ=Point ,statut='o',fr="Coordonnees du centre de la forme geometrique"),
+ OrientationForme = SIMP (typ=Orientation,statut='f',fr="Orientation de la forme")
+ ) ; # Fin FORME_POSITIONNEE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GEOMETRIE_SURFACIQUE : Classe de definition d'une geometrie surfacique
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GEOMETRIE_SURFACIQUE = OPER (nom="GEOMETRIE_SURFACIQUE", op=0, sd_prod=GeometrieSurfacique, niveau = 'Geometries',
+ fr = "Definition d'une geometrie surfacique",
+ ang = "Definition of a surfacic geometry",
+ MateriauRemplissage = SIMP (typ=Materiau,statut='o',fr="Materiau de remplissage de la geometrie surfacique"),
+ Surfaces = NUPL (
+ max = '**',
+ statut = 'o',
+ fr = "Serie de couples (Surface,Plus ou Moins) definissant les surfaces limites de la geometrie",
+ elements = (
+ SIMP (typ=(PlanX,PlanY,PlanZ,Plan,CylindreX,CylindreY,CylindreZ,Cylindre,Sphere,Cone,Conique,Quadrique)),
+ SIMP (typ='TXM',into=('Plus','Moins'))))
+ ) ; # Fin GEOMETRIE_SURFACIQUE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GEOMETRIE_COMBINATOIRE : Classe de definition d'une geometrie combinatoire
+# Ecrasement : Constitution par ecrasements successifs (dans l'ordre des donnees) de la
+# Geometrie Initiale, la frontiere externe etant celle de la geometrie initiale
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GEOMETRIE_COMBINATOIRE = OPER (nom="GEOMETRIE_COMBINATOIRE", op=0, sd_prod=GeometrieCombinatoire, niveau = 'Geometries',
+ fr = "Definition d'une geometrie combinatoire",
+ ang = "Definition of a combinatorial geometry",
+ GeometriePremierPlan = SIMP (typ=FormePositionnee,statut='o',fr="Geometrie se trouvant au premier plan"),
+ GeometrieEcrasee = SIMP (typ=FormePositionnee,max='**',statut='f',
+ fr="Geometries ecrasées et surchargées par la GeometriePremierPlan"),
+ GeometrieUnion = SIMP (typ=FormePositionnee,max='**',statut='f',
+ fr="Geometries a reunir a la GeometriePremierPlan en gardant les interfaces, les intersections etant des volumes particuliers"),
+ GeometrieReunion = SIMP (typ=FormePositionnee,max='**',statut='f',
+ fr="Geometries a reunir a la GeometriePremierPlan pour former un volume unique"),
+ GeometrieIntersection = SIMP (typ=FormePositionnee,max='**',statut='f',
+ fr="Geometries a intersecter avec la GeometriePremierPlan")
+ ) ; # Fin GEOMETRIE_COMBINATOIRE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CORRESPONDANCE_REPERE_POSITION_RESEAU :
+# Classe de definition des reperes alphanumeriques des cases d'un reseau
+# Reperes (bataille navale ou autre) et Coordonnees cartesiennes entieres des cases dans un systeme i,j du reseau
+# Origine des coordonnees en bas a gauche d'un systeme en xy
+# Ceci n'a d'interet que pour l'utilisateur ou pour se conformer aux reperes industriels habituels dans le cas des REP
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CORRESPONDANCE_REPERE_POSITION_RESEAU = OPER (nom="CORRESPONDANCE_REPERE_POSITION_RESEAU",op=0,sd_prod=CorrespondanceReperePositionReseau,
+ niveau = 'Geometries',
+ fr = "Correspondance entre reperes alphanumeriques et cases d'un reseau",
+ ang = "Alphanumeric identificators and lattice coordinates",
+ Positions = NUPL (max='**',statut='o',
+ elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire d'une case du reseau"),
+ SIMP (typ='I' ,fr="Premiere Coordonnee entiere dans le systeme i,j du reseau"),
+ SIMP (typ='I' ,fr="Seconde Coordonnee entiere dans le systeme i,j du reseau")))
+ ) ; # Fin CORRESPONDANCE_REPERE_POSITION_RESEAU
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESEAU :
+# Classe de definition d'un reseau de juxtapositions de cellules ou de reseaux
+# Assemblage de cellules ou de reseaux dans une grille rectangulaire ou hexagonale
+# Les positions des cellules et des reseaux dans le nouveau reseau sont a fournir sur les mailles
+# du reseau sans tenir compte des symetries,
+# Le reseau peut etre charge :
+# - de maniere uniforme : un seul type de CELLULE ou de RESEAU
+# - de maniere complete : a chaque maille doit etre affecte un reseau ou une cellule et optionnellement son
+# orientation, l'ordre des donnees dans le plan radial etant celui obtenu en partant de l'element le plus
+# bas a gauche, et dans le sens axial ensuite (eventuellement si 3D)
+# - de maniere partielle : liste des cellules et reseaux charges et leur position xyz dans le nouveau reseau
+# et orientations correspondantes de ces cellules et reseaux
+# Des reperes alphanumeriques arbitraires peuvent etre associes a chaque maille du reseau, ce qui permet
+# si necessaire de manipuler ces elements du reseau par l'intermediaire de ces symboles (exemple des
+# reperes bataille navale des assemblages dans le reseau d'un coeur REP).
+# Le reseau peut etre entoure de zones peripheriques homogenes ou heterogenes.
+# - Le cas Homogene peut s'appliquer aux reseaux hexagonaux ou cartesiens ;
+# - Dans le cas Heterogene, la reflexion s'est uniquement portee sur la situation cartesienne et particulierement en donnant la
+# la possibilite de decrire un assemblage bouillant (avec croix de contrôle et instrumentation)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESEAU = OPER (nom="RESEAU", op=0, sd_prod=Reseau, niveau = 'Geometries',
+ fr = "Definition d'un reseau compose de juxtapositions de cellules, de reseaux ou d'assemblages",
+ ang = "Definition of a lattice",
+ Identificateur = SIMP (typ='TXM',statut='o',fr="Identificateur arbitraire du reseau"),
+ ReseauReference = SIMP (typ='TXM',statut='f',fr="Identificateur du reseau de reference dans le cas d'une composition de reseaux de reseau"),
+ DifferenciationCellules = SIMP (typ='I',defaut=0,statut='f',fr="Nombre de couches de cellules a differencier autour du reseau de reference"),
+ TypeGeometrie = SIMP (typ='TXM',into=('cartesienne','hexagonale'),defaut='cartesienne',statut='f'),
+ NbMaillesX = SIMP (typ='I',defaut=17,statut='o',fr="Nbre de mailles sur le premier axe du reseau"),
+ NbMaillesY = SIMP (typ='I',defaut=17,statut='f',fr="Nbre de mailles sur le second axe du reseau"),
+ NbMaillesZ = SIMP (typ='I',defaut=1 ,statut='f',fr="Nbre de mailles sur l'axe vertical du reseau"),
+ PasReseau = SIMP (typ='R',defaut=1.26 ,statut='f',max=2,fr="Pas du reseau en X et Y (en cm)"),
+ MateriauRemplissage = SIMP (typ=Materiau,defaut='ModExt',statut='f',fr="Materiau de remplissage du reseau"),
+ TypeDefinition = SIMP (typ='TXM',statut='f',defaut="Complet",into=("Uniforme","Complet","Partiel"),fr="Mode de chargement du reseau"),
+ ReseauUniforme = BLOC (condition = "TypeDefinition=='Uniforme'",fr="Chargement uniforme du reseau",
+ ElementGeomU = SIMP (typ=(Cellule,Reseau,Cluster,GeometrieCombinatoire,AssemblageCombustibleReel,AssemblageType),statut='o',
+ fr = "Remplissage uniforme du nouveau reseau par un element particulier"),
+ OrientationU = SIMP (typ=Orientation,fr="Orientation de l'element geometrique de base",statut='f')),
+ ReseauComplet = BLOC (condition = "TypeDefinition=='Complet'",fr="Chargement complet du reseau",
+ ElementsGeomC = NUPL (max='**', statut='o',
+ fr="Liste des couples (ElementGeometrique,SigleTextuel) les sigles textuels servant ensuite au chargement complet du reseau",
+ elements =(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType),
+ fr="Element geometrique a associer au sigle"),
+ SIMP (typ='TXM',fr="Sigle alphanumerique associe a l'element geometrique"))),
+ ChargementC = SIMP (typ='TXM',statut='o',max='**',
+ fr="Affectation des sigles aux cases geometriques du reseau"),
+ RegroupementC = SIMP (typ='I',statut='f',max='**',
+ fr="Numeros des cellules de calcul en approximation multicellule dans chaque case du reseau"),
+ OrientationC = SIMP (typ=Orientation,max='**',statut='f',fr="Orientation des elements geometriques dans les cases du reseau"),
+ ReperesC = SIMP (typ='TXM',max='**',statut='f',fr="Reperes arbitraires des cases geometriques"),
+ ),
+ ReseauPartiel = BLOC (condition = "TypeDefinition=='Partiel'",fr="Chargement partiel du reseau",
+ ChargementP = FACT (max='**',fr="Chargement partiel du reseau",
+ regles = (UN_PARMI ('ElementsPositionnesP', 'ElementsReperesP'),),
+ ElementsPositionnesP = NUPL (max='**', statut='f',fr="Donnee des Positions des elements geometriques dans le systeme des coordonnees du reseau",
+ elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType),
+ fr="Element geometrique a positionner"),
+ SIMP (typ='I',min=2,max=2,fr="Coordonnees i j de l'element geometrique dans le reseau"))),
+ ElementsReperesP = NUPL (max='**', statut='f',fr="Donnee des reperes positionnels des elements geometriques",
+ elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType),
+ fr="Element geometrique a positionner"),
+ SIMP (typ='TXM',fr="Repere alphanumerique de l'element geometrique"))),
+ CorrespondanceReperePositions = SIMP (typ=CorrespondanceReperePositionReseau,
+ statut='f',
+ fr="Correspondance entre Repere alphanumerique et coordonnees dans le reseau"),
+ OrientationP = SIMP (typ=Orientation,max='**',statut='f',fr="Orientation des elements geometriques du chargement partiel"),
+ )),
+ ZonesPeripheriquesHomogenes = FACT (statut='f',fr="Zones homogenes peripheriques au reseau",
+ Epaisseurs = SIMP (typ='R' ,max='**',statut='o',fr="Liste des epaisseurs (cm) des couches peripheriques"),
+ Materiaux = SIMP (typ=Materiau,max='**',statut='f',fr="Liste des materiaux des couches peripheriques"),
+ MateriauExterne = SIMP (typ=Materiau ,statut='f',fr="Materiau de remplissage de la zone externe du reseau hexagonal")),
+ ZonesPeripheriquesHeterogenes = FACT (max='**',statut='f',fr="Zones heterogenes peripheriques au reseau",
+ DimensionsExternes = SIMP (typ='R',min=2,max=2, statut='o',
+ fr=" Dimensions (cm) externes X et Y zone peripherique comprise"),
+ Decentrement = SIMP (typ='R',min=2,max=2, statut='f',
+ fr=" Coordonnees (cm) X et Y du centre de la zone peripherique / au centre du réseau"),
+ MateriauRemplissage = SIMP (typ=Materiau, statut='f',
+ fr="Materiau de remplissage de la zone"),
+ Boitier = FACT (statut='f',fr="Definition d'un boitier",
+ Epaisseur = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) du boitier dans sa partie lineaire"),
+ LongueurPartieLineaire = SIMP (typ='R',statut='o',fr= "Longueur (cm) de la partie lineaire du boitier"),
+ RayonExterneCoinBoitier = SIMP (typ='R',statut='o',fr= "Rayon externe (cm) du coin arrondi du boitier"),
+ MateriauExterne = SIMP (typ=Materiau,statut='f',fr="Materiau de remplissage de la zone externe au boitier"),
+ PositionBoitier = SIMP (typ='TXM',statut='o',defaut='Exterieure',into=('Exterieure','Interieure'),
+ fr="Position du boitier dans la zone")),
+ CroixControle = FACT (statut='f',fr="Definition d'une croix de controle",
+ Epaisseur = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) des branches de la croix de controle"),
+ EpaisseurEnveloppe = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) de l'enveloppe de la croix de controle"),
+ DemiLongueurCroixCentrale = SIMP (typ='R',statut='o',
+ fr= "Demi-longueur (cm) de la partie homogene au centre de la croix de controle"),
+ NombreBarres = SIMP (typ='I',statut='o',fr= "Nombre de barres dans une aile de la croix de controle"),
+ CellulesBarres = SIMP (typ=Cellule,max='**',statut='o',
+ fr= "Liste des cellules correspondant aux barres de la croix de contrôle, en partant du centre de la croix"),
+ MateriauCroix = SIMP (typ=Materiau,statut='o',fr="Materiau de la croix de controle"),
+ BranchesCroix = SIMP (typ='TXM',statut='o',defaut='NordOuest',into=('NordOuest','NordEst','SudOuest','SudEst'),
+ fr="Choix des deux branches de la croix de contrôle decrites"),
+ PositionCroix = SIMP (typ='TXM',statut='o',defaut='AxeExterieure',into=('AxeExterieure','Exterieure','Interieure'),
+ fr="Position de la croix dans la zone")),
+ Instrumentation = FACT (statut='f',fr="Definition de l'instrumentation",
+ Cellule = SIMP (typ=Cellule,statut='o',fr= "Cellule decrivant la geometrie de l'instrumentation"),
+ Position = SIMP (typ='TXM',statut='o',defaut='SudEst',into=('NordOuest','NordEst','SudOuest','SudEst'),
+ fr="Choix du coin ou sera centree la cellule"))
+ )
+ ) ; # Fin RESEAU
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DECOMPOSITION_DOMAINES : Classe de definition de domaines de calcul
+# Pour le moment, on ne considere qu'une partition en 2D d'un reseau
+# (a completer ulterieurement pour une geometrie generale)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DECOMPOSITION_DOMAINES = OPER (nom="DECOMPOSITION_DOMAINES", op=0, sd_prod=DecompositionDomaines, niveau = 'Geometries',
+ fr = "Decomposition en domaines d'un reseau",
+ ang = "Domain decomposition of a lattice",
+ NbDomainesOx = SIMP (statut='o', typ='I', fr="Nombre de domaines sur l'axe Ox"),
+ NbDomainesOy = SIMP (statut='o', typ='I', fr="Nombre de domaines sur l'axe Oy"),
+ OxRepartitionDomaines = SIMP (statut='o', typ='I', max='**', fr="Nombre de mailles du reseau pour chaque domaine de l'axe Ox"),
+ OyRepartitionDomaines = SIMP (statut='o', typ='I', max='**', fr="Nombre de mailles du reseau pour chaque domaine de l'axe Oy")
+ ) ; # Fin DECOMPOSITION_DOMAINES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GRILLE_ASSEMBLAGE : Classe de definition des grilles composant le squelette des assemblages combustibles
+# Caracteristiques technologiques (dimension, materiaux de composition) et positionnement simplifie
+# des materiaux dans les canaux de l'assemblage pour dilution homogene a 2D dans le milieu peripherique.
+# - Materiaux fournis sous forme de couples (nom de materiau et masse en g)
+# - Repartition decrite en donnant pour une liste de materiaux (faisant partie des materiaux
+# precedemment indiques) la liste des types de cellules (precedee du mot-cle TypeCellule) et des
+# types de materiaux (precedes du mot-cle TypeMateriau) devant etre modifies par la presence des
+# grilles
+# < liste de MATERIAU >,
+# TypeCellule < liste de types de cellule >,
+# TypeMateriau < liste de types de materiau >
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GRILLE_ASSEMBLAGE = OPER (nom="GRILLE_ASSEMBLAGE", op=0, sd_prod=GrilleAssemblage, niveau = 'ElementsTechnologiquesAssemblages',
+ fr = "Definition d'une grille d'assemblage",
+ ang = "Definition of an elementary assembly grid",
+ TypeGrille = SIMP (typ='TXM',defaut='GrilleMelange',statut='f',fr="Type de grille de structure assemblage"),
+ Hauteur = SIMP (typ='R',defaut=3.3,statut='f',fr="Hauteur de la grille de structure assemblage en cm"),
+ Largeur = SIMP (typ='R',defaut=21.338,statut='f',fr="Largeur de la grille de structure assemblage en cm"),
+ MateriauxMasse = NUPL (max = '**', statut = 'o',
+ elements = (SIMP (typ=Materiau),SIMP (typ='R')),
+ fr = "Serie de couples (Materiau,masse en g) de composition de la grille"),
+ Repartition = FACT (max = '**', statut = 'o',fr="Repartition des materiaux par type de cellule ou par type de materiau",\r
+ regles = (AU_MOINS_UN ('TypeCellule', 'TypeMateriau'),),
+ MateriauGrille = SIMP (typ=Materiau,fr="Nom du materiau a repartir",statut='o'),
+ TypeCellule = SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de cellule ou est reparti le materiau"),
+ TypeMateriau = SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de materiaux ou est reparti le materiau") ),
+ CoefficientsThermohydrauliques = FACT (statut = 'f',fr="Donnees de thermohydraulique",
+ CoeffPerteCharge = SIMP (typ='R',statut='f',
+ fr="Coefficient Cn de perte de charge au sens monodimensionnel de la singularite"),
+ CoeffRedressement = SIMP (typ='R',statut='f',val_min=0,
+ fr="Coefficient R de redressement de l'ecoulement au passage de la singularite"),
+ CoeffCkg = SIMP (typ='R',statut='f',
+ fr="Coefficient lie au type de grille et de geometrie")),
+ Ailettes = FACT (statut = 'f',fr="Donnees des ailettes de melange",
+ PerteChargeSansAilettes = SIMP (typ='R',statut='f',fr="Coefficient Cn de perte de charge monodimensionnel sans ailettes"),
+ PerteChargeAvecAilettes = SIMP (typ='R',statut='f',fr="Coefficient Cn de perte de charge avec ailettes"),
+ CoeffRedressementSansAilettes = SIMP (typ='R',statut='f',val_min=0,
+ fr="Coefficient R de redressement de l'ecoulement sans ailettes"),
+ CoeffCkg = SIMP (typ='R',statut='f',fr="Coefficient lie au type de grille et de geometrie"),
+ AngleOrientation = SIMP (typ='R',statut='f',fr="Angle d'orientation des ailettes"),
+ Repartition = SIMP (typ='TXM',max='**',into=('Rien','Droite','Gauche','Haut','Bas'),statut='f',
+ fr="Positionnement des ailettes dans chaque quart de sous-canal (soit 4 donnees par sous-canal)"))
+ ) ; # Fin GRILLE_ASSEMBLAGE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de l'embout inferieur d'un assemblage combustible REP
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieInferieureAssemblageCombustible,
+ niveau = 'ElementsTechnologiquesAssemblages',
+ fr = "Definition de la partie inferieure d'un assemblage combustible REP",
+ ang = "Definition of the bottom part of a PWR fuel assembly",
+ MateriauEmbout = SIMP (typ=Materiau,statut='f',fr="Materiau de l'embout inferieur",defaut='ACIER'),
+ MasseBouchonInferieurCrayonCombustible = SIMP (typ='R' ,statut='o',fr="Masse (g) du bouchon inferieur du crayon combustible"),
+ HauteurBouchonInferieurCrayonCombustible = SIMP (typ='R' ,statut='o',fr="Hauteur (cm) du bouchon inferieur du crayon combustible"),
+ MateriauBouchonInferieurCrayonCombustible = SIMP (typ=Materiau,statut='f',fr="Materiau du bouchon inferieur du crayon combustible",defaut='ZIRCALOY'),
+ MasseEmbout = SIMP (typ='R' ,statut='o',fr="Masse (g) de l'embout inferieur"),
+ EpaisseurPlaqueAdaptatrice = SIMP (typ='R' ,statut='o',fr="Epaisseur (cm) de la plaque adaptatrice de l'embout inferieur en cm"),
+ LargeurPlaqueAdaptatrice = SIMP (typ='R' ,statut='o',fr="Largeur (cm) de la plaque adaptatrice de l'embout inferieur"),
+ TrousPlaqueAdaptatrice = NUPL (fr="Dimensions des trous de la plaque adaptatrice",
+ max = '**',
+ statut = 'o',
+ elements = ( SIMP (typ='I' ,statut='o',fr="Nombre de trous de taille definie ci-apres"),
+ SIMP (typ='TXM',statut='o',into=('Rayon','Cotes'),fr="Choix de la forme des trous, elliptique ou rectangulaire"),
+ SIMP (typ='R' ,statut='o',min=2,max=2,fr="Rayons ou cotes (cm) des trous"),
+ SIMP (typ='TXM',statut='o',defaut='Hauteur',into=('Hauteur','Epaisseur'),fr="Mot-cle au choix"),
+ SIMP (typ='R' ,statut='o',fr="Hauteur (cm) des trous dans la plaque adaptatrice"))),
+ JeuBouchonCombustiblePlaque = SIMP (typ='R', statut='o',fr="Hauteur (cm) du jeu entre bouchon combustible et plaque adaptatrice"),
+ HauteurPied = SIMP (typ='R', statut='o',fr="Hauteur (cm) du pied de l'embout inferieur"),
+ CapuchonRint = SIMP (typ='R', statut='f',fr="Rayon interne (cm) du capuchon"),
+ CapuchonRext = SIMP (typ='R', statut='f',fr="Rayon externe (cm) du capuchon"),
+ HauteurVisEpaulee = SIMP (typ='R', statut='f',fr="Hauteur des vis epaulees des tubes guides en cm"),
+ MasseVisEpaulee = SIMP (typ='R', statut='f',fr="Masse totale des vis epaulees des tubes guides en g"),
+ RintVisEpaulee = SIMP (typ='R', statut='f',fr="Rayon interne (cm) d'une vis epaulee"),
+ RextVisEpaulee = SIMP (typ='R', statut='f',fr="Rayon externe (cm) d'une vis epaulee"),
+ MasseFiltre = SIMP (typ='R', statut='f',fr="Masse (g) du filtre anti-debris"),
+ MateriauFiltre = SIMP (typ=Materiau, statut='f',fr="Materiau du filtre anti-debris", defaut='INCONEL'),
+ HauteurCale = SIMP (typ='R', statut='f',fr="Hauteur (cm) de la cale dans le crayon combustible"),
+ MateriauCale = SIMP (typ=Materiau, statut='f',fr="Materiau de la cale dans le crayon combustible",defaut='ACIER'),
+ RayonPionCentrage = SIMP (typ='R', statut='f',fr="Rayon externe des pions de centrage de la plaque inferieure coeur en cm"),
+ HauteurPionCentrage = SIMP (typ='R', statut='f',fr="Hauteur des pions de centrage de la plaque inferieure coeur en cm"),
+ HauteurOgivePionCentrage = SIMP (typ='R', statut='f',fr="Hauteur de l'ogive des pions de centrage de la plaque inferieure coeur en cm"),
+ MateriauPionCentrage = SIMP (typ=Materiau, statut='f',fr="Materiau des pions de centrage de la plaque inferieure coeur",defaut='ACIER'),
+ BouchonTubGHauteur = SIMP (typ='R', statut='f',fr="Hauteur des bouchons des tubes guides en cm"),
+ BouchonTubGMateriau = SIMP (typ=Materiau, statut='f',fr="Materiau des bouchons des tubes guides",defaut='ACIER')
+ ) ; # Fin PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de l'embout superieur d'un assemblage combustible REP
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieSuperieureAssemblageCombustible,
+ niveau = 'ElementsTechnologiquesAssemblages',
+ fr = "Definition de la partie superieure d'un assemblage combustible REP",
+ ang = "Definition of the top part of a PWR fuel assembly",
+ MateriauEmbout = SIMP (typ=Materiau, statut='f',fr="Materiau de l'embout superieur",defaut='ACIER'),
+ MasseBouchonSuperieurCrayonCombustible = SIMP (typ='R', statut='o',fr="Masse du bouchon superieur du crayon combustible en g"),
+ HauteurBouchonSuperieurCrayonCombustible = SIMP (typ='R', statut='o',fr="Hauteur du bouchon superieur du crayon combustible en cm"),
+ MateriauBouchonSuperieurCrayonCombustible = SIMP (typ=Materiau, statut='f',fr="Materiau du bouchon superieur du crayon combustible",defaut='ZIRCALOY'),
+ RessortCrayonCombustible = SIMP (typ='R', statut='o',fr="Masse du ressort du crayon combustible en g"),
+ ForceRessortCrayonCombustible = SIMP (typ='R', statut='f',fr="Force du ressort du crayon combustible en N"),
+ HauteurChambreExpansion = SIMP (typ='R', statut='o',fr="Hauteur de la chambre d'expansion en cm"),
+ MasseEmbout = SIMP (typ='R', statut='o',fr="Masse de l'embout superieur en g"),
+ HauteurEmbout = SIMP (typ='R', statut='o',fr="Hauteur de l'embout superieur en cm"),
+ MasseRessortsEmbout = SIMP (typ='R', statut='o',fr="Masse des ressorts de l'embout superieur en g"),
+ MateriauRessortsEmbout = SIMP (typ=Materiau, statut='f',fr="Materiau des ressorts de l'embout superieur", defaut='INCONEL'),
+ EpaisseurPlaqueAdaptatrice = SIMP (typ='R', statut='o',fr="Epaisseur de la plaque adaptatrice en cm"),
+ LargeurPlaqueAdaptatrice = SIMP (typ='R', statut='o',fr="Largeur de la plaque adaptatrice en cm"),
+ TrousPlaqueAdaptatrice = NUPL (fr="Dimensions des trous de la plaque adaptatrice",
+ max = '**',
+ statut = 'o',
+ elements = ( SIMP (typ='I', fr="Nombre de trous d'un type donne"),
+ SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot indiquant la donnee des rayons ou cotes des trous"),
+ SIMP (typ='R' ,min=2,max=2, fr="Rayons mineur et majeur ou Cotes du trou en cm"),
+ SIMP (typ='TXM',into=('Hauteur','Epaisseur'), fr="Mot cle introduisant la hauteur des trous"),
+ SIMP (typ='R', fr="Hauteur du trou en cm"))),
+ JeuBouchonCombustiblePlaque = SIMP (typ='R', statut='o',fr="Hauteur du jeu entre Bouchon combustible et Plaque adaptatrice en cm"),
+ EpaisseurJupe = SIMP (typ='R', statut='o',fr="Epaisseur de la jupe de l'embout superieur en cm"),
+ HauteurJupe = SIMP (typ='R', statut='f',fr="Hauteur de la jupe de l'embout superieur en cm"),
+ RayonPionCentrage = SIMP (typ='R', statut='f',fr="Rayon des pions de centrage superieurs en cm"),
+ HauteurPionCentrage = SIMP (typ='R', statut='f',fr="Hauteur des pions de centrage superieurs en cm"),
+ HauteurOgivePionCentrage = SIMP (typ='R', statut='f',fr="Hauteur de l'ogive des pions de centrage superieurs en cm"),
+ MateriauPionCentrage = SIMP (typ=Materiau, statut='f',fr="Materiau des pions de centrage superieurs",defaut='ACIER'),
+ RayonInterneManchon = SIMP (typ='R', statut='f',fr="Rayon interne des manchons des tubes guides en cm"),
+ RayonExterneManchon = SIMP (typ='R', statut='f',fr="Rayon externe des manchons des tubes guides en cm"),
+ HauteurManchon = SIMP (typ='R', statut='f',fr="Hauteur des manchons des tubes guides en cm"),
+ MasseManchon = SIMP (typ='R', statut='f',fr="Masse d'un manchon des tubes guides en g")
+ ) ; # Fin PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ASSEMBLAGE_TYPE : Classe de definition d'un type d'assemblage (ensemble de crayons ou de reseaux quelconques)
+# Rajout des structures grilles et embouts (dans le cas des REP)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ASSEMBLAGE_TYPE = OPER (nom="ASSEMBLAGE_TYPE",op=0,sd_prod=AssemblageType,
+ niveau = 'ElementsTechnologiquesAssemblages',
+ fr = "Definition d'un assemblage type et des elements associes eventuels",
+ ang = "Definition of an assembly type and its associated elements",
+ Geometrie = SIMP (typ=(Cellule,Reseau,GeometrieCombinatoire),statut='o',max='**',
+ fr="Liste des geometries composant l'assemblage"),
+ GrillesStructure = NUPL (max = '**', statut = 'f',fr="Positions axiales des grilles",
+ elements = ( SIMP (typ=GrilleAssemblage,fr="Type de grille"),
+ SIMP (typ='R',max='**',
+ fr="Positions axiales des milieux des grilles (en cm) / a la limite inferieure du pied de l'assemblage"))),
+ PartieInferieure = SIMP (typ=PartieInferieureAssemblageCombustible,statut='f',fr="Type d'embout inferieur"),
+ PartieSuperieure = SIMP (typ=PartieSuperieureAssemblageCombustible,statut='f',fr="Type d'embout superieur"),
+ ElementsAssocies = SIMP (typ=(ElementsGrappeCommande,ElementsAbsorbantsFixes,GrappeBouchonAssemblage),max='**',statut='f',fr="Liste des elements technologiques associes")
+ ) ; # Fin ASSEMBLAGE_TYPE
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe ELEMENT_BARRE : Classe de définition d'une barre element d'un assemblage
+# Definition des barres des grappes de commande (barre et gaine, et composants axiaux)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ELEMENT_BARRE = OPER (nom="ELEMENT_BARRE", op=0, sd_prod=ElementBarre, niveau = 'ElementsTechnologiquesAssemblages',
+ fr = "Definition d'une barre element d'un assemblage",
+ ang = "Definition of an assembly rod element",
+ MateriauInferieur = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau composant la partie inferieure de la barre"),
+ MateriauSuperieur = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau composant la partie superieure de la barre"),
+ HauteurBarre = SIMP (typ='R' ,statut='o',fr="Hauteur (cm) de la barre"),
+ HauteurInferieure = SIMP (typ='R' ,statut='f',fr="Hauteur (cm) de la partie inferieure de la barre"),
+ HauteurSuperieure = SIMP (typ='R' ,statut='f',fr="Hauteur (cm) de la partie superieure de la barre"),
+ RintPartieInferieure = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon Interne (cm) de la partie inferieure de la barre"),
+ RintPartieSuperieure = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon Interne (cm) de la partie superieure de la barre"),
+ RextPartieInferieure = SIMP (typ='R' ,statut='o',fr="Rayon Externe (cm) de la partie inferieure de la barre"),
+ RextPartieSuperieure = SIMP (typ='R' ,statut='f',fr="Rayon Externe (cm) de la partie superieure de la barre"),
+ MasseRessort = SIMP (typ='R' ,statut='o',fr="Masse (g) du ressort de la barre"),
+ MateriauRessort = SIMP (typ=Materiau ,statut='o',fr="Materiau du ressort de la barre"),
+ HauteurRessort = SIMP (typ='R' ,statut='o',fr="Hauteur (cm) du ressort de la barre"),
+ BouchonInfHauteur = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Hauteur (cm) du bouchon inferieur de la barre"),
+ BouchonSupHauteur = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Hauteur (cm) du bouchon superieur de la barre"),
+ BouchonInfRayon = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon externe (cm) du bouchon inferieur de la barre"),
+ BouchonSupRayon = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon externe (cm) du bouchon superieur de la barre"),
+ MateriauGaine = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau de la gaine externe de la barre"),
+ RayonInterneGaine = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon Interne (cm) de la gaine externe de la barre"),
+ RayonExterneGaine = SIMP (typ='R' ,defaut=0. ,statut='f',fr="Rayon Externe (cm) de la gaine externe de la barre")
+ ) ; # Fin ELEMENT_BARRE
+#----------------------------------------------------------------------------------------------------------------------------------
+# Classe ELEMENTS_GRAPPE_COMMANDE : Classe de définition des éléments des grappes de commande
+# Association avec les différents types de barres absorbantes
+# Description simplifiée de l'araignée et du bouchon des barres
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ELEMENTS_GRAPPE_COMMANDE = OPER (nom="ELEMENTS_GRAPPE_COMMANDE",op=0,sd_prod=ElementsGrappeCommande,niveau = 'ElementsTechnologiquesAssemblages',
+ fr = "Définition des éléments des grappes de commande",
+ ang = "Definition of control rod cluster components",
+ ElementsBarre = SIMP (typ= ElementBarre, max='**',statut='o',fr="Liste des barres absorbantes associees"),
+ HauteurPasInsertion = SIMP (typ='R',defaut=1.5875 ,statut='o',fr="Hauteur (cm) d'un pas d'insertion des grappes"),
+ CourseTotalePossible = SIMP (typ='R',defaut=361.8 ,statut='o',fr="Course totale possible (cm) d'insertion d'une grappe"),
+ CoteInferieureGrappe = SIMP (typ='R',defaut=8.5705 ,statut='o',fr="Cote inferieure (cm) d'une grappe / zone active ?"),
+ VitesseDeplacement = SIMP (typ='R',defaut=72. ,statut='o',fr="Vitesse de deplacement d'une grappe en pas/mn"),
+ NbPasInsertion = SIMP (typ='I',defaut=225 ,statut='o',fr="Nombre maximum de pas d'insertion "),
+ Araignee16Phauteur = SIMP (typ='R',defaut=0. ,statut='o',fr="Hauteur (cm) d'une des 16 petites tiges d'accrochage des barres"),
+ Araignee4Mhauteur = SIMP (typ='R',defaut=0. ,statut='o',fr="Hauteur (cm) d'une des 4 tiges moyennes d'accrochage des barres"),
+ Araignee4Ghauteur = SIMP (typ='R',defaut=0. ,statut='o',fr="Hauteur (cm) d'une des 4 grandes tiges d'accrochage des barres"),
+ HauteurPommeau = SIMP (typ='R',defaut=0. ,statut='o',fr="Hauteur (cm) du pommeau d'accrochage de la grappe"),
+ RayonPommeau = SIMP (typ='R',defaut=0. ,statut='o',fr="Rayon (cm) du pommeau d'accrochage de la grappe")
+ ) ; # Fin ELEMENTS_GRAPPE_COMMANDE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ELEMENTS_ABSORBANTS_FIXES : Classe de definition des elements des grappes d'absorbants fixes
+# Description des pyrex uniquement pour le moment
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ELEMENTS_ABSORBANTS_FIXES = OPER (nom="ELEMENTS_ABSORBANTS_FIXES",op=0,sd_prod=ElementsAbsorbantsFixes,
+ niveau = 'ElementsTechnologiquesAssemblages',
+ fr = "Definition des elements des grappes d'absorbants fixes",
+ ang = "Definition of non movable absorber control rod cluster elements",
+# Limitation a 12 caracteres
+# HBouchInfPyrex = SIMP (typ='R',statut='f'),
+# RBouchInfPyrex = SIMP (typ='R',statut='f'),
+# HZoneVidePyrex = SIMP (typ='R',statut='f'),
+# HBouchSupPyrex = SIMP (typ='R',statut='f'),
+# RBouchSupPyrex = SIMP (typ='R',statut='f'),
+# MatBouchonPyrex = SIMP (typ=Materiau, statut='f')
+ BIPyrexHauteur = SIMP (typ='R', statut='o',fr="Hauteur en cm du bouchon inferieur du crayon pyrex"),
+ BIPyrexRayon = SIMP (typ='R', statut='o',fr="Rayon en cm du bouchon inferieur du crayon pyrex"),
+ PyrexZoneVideHauteur = SIMP (typ='R', statut='o',fr="Hauteur en cm de la zone vide dans le crayon pyrex"),
+ BSPyrexHauteur = SIMP (typ='R', statut='o',fr="Hauteur en cm du bouchon superieur du crayon pyrex"),
+ BSPyrexRayon = SIMP (typ='R', statut='o',fr="Rayon en cm du bouchon superieur du crayon pyrex"),
+ PyrexMateriauBouchon = SIMP (typ=Materiau, statut='o',fr="Materiau du bouchon du crayon pyrex")
+ ) ; # Fin ELEMENTS_ABSORBANTS_FIXES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GRAPPE_BOUCHON_ASSEMBLAGE : Classe de definition d'une grappe bouchon REP
+# Rappel : Les grappes bouchons se trouvent dans le cas des REP inseres dans la partie embout superieur de tous les assemblages
+# ne comportant pas de grappe d'absorbant.
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GRAPPE_BOUCHON_ASSEMBLAGE = OPER (nom="GRAPPE_BOUCHON_ASSEMBLAGE",op=0,sd_prod=GrappeBouchonAssemblage,
+ niveau = 'ElementsTechnologiquesAssemblages',
+ fr = "Definition d'une grappe bouchon d'assemblage combustible",
+ ang = "Definition d'une grappe bouchon d'assemblage combustible",
+ HauteurPartieBasseBouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la partie basse du bouchon"),
+ RayonPartieBasseBouchon = SIMP (typ='R' ,statut='o',fr="Rayon en cm de la partie basse du bouchon"),
+ Hauteur1PartieIntermediaire1Bouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la 1ere partie intermédiaire du bouchon"),
+ Rayon1PartieIntermediaire1Bouchon = SIMP (typ='R' ,statut='o',fr="Rayon en cm de la 1ere partie intermédiaire du bouchon"),
+ Hauteur2PartieIntermediaire2Bouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la 2eme partie intermédiaire du bouchon"),
+ Rayon2PartieIntermediaire2Bouchon = SIMP (typ='R' ,statut='o',fr="Rayon en cm de la 2eme partie intermédiaire du bouchon"),
+ RegionSousPlaqueHauteurBouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la region sous plaque"),
+ RegionSurPlaqueHauteurBouchon = SIMP (typ='R' ,statut='o',fr="Hauteur en cm de la region au-dessus de la plaque"),
+ Rayon3BouchonRegionPlaque = SIMP (typ='R' ,statut='o',fr="Rayon en cm du bouchon au niveau de la plaque"),
+ HauteurSupport = SIMP (typ='R' ,statut='o',fr="Hauteur en cm du support des bouchons"),
+ MasseGrappe = SIMP (typ='R' ,statut='o',fr="Masse en g de la grappe bouchon"),
+ Materiau = SIMP (typ=Materiau,statut='o',fr="Materiau de la grappe bouchon",defaut='ACIER')
+ ) ; # Fin GRAPPE_BOUCHON_ASSEMBLAGE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ELEMENTS_ASSEMBLAGE : Classe de définition des éléments associes a l'assemblage combustible REP
+#
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+#ELEMENTS_ASSEMBLAGE = OPER (nom="ELEMENTS_ASSEMBLAGE",op=0,sd_prod=ElementsAssemblage,
+#
+# fr = "Definition des elements associes a l'assemblage",
+# ang = "Definition of the fuel assembly associated elements",
+# GrappeBouchon = SIMP (typ=GrappeBouchonAssemblage,statut='o'),
+# CrayonsAbsorbants = SIMP (typ=ElementsAbsorbants,statut='o'),
+# GrappesCommande = SIMP (typ=ElementsGrappeCommande,statut='o')
+# ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classes CONDITION_LIMITE elementaires : Classes de definition de Conditions limites elementaires
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+VIDE = OPER (nom="VIDE",op=0,sd_prod=Vide, niveau = 'ConditionsLimites',
+ fr = "Condition aux limites de vide",
+ ang = "Void boundary condition" ) ;
+REFLEXION_ISOTROPE = OPER (nom="REFLEXION_ISOTROPE",op=0,sd_prod=ReflexionIsotrope, niveau = 'ConditionsLimites',
+ fr = "Condition aux limites de reflexion isotrope",
+ ang = "Isotropic Reflexion boundary condition" ) ;
+REFLEXION_SPECULAIRE = OPER (nom="REFLEXION_SPECULAIRE",op=0,sd_prod=ReflexionSpeculaire, niveau = 'ConditionsLimites',
+ fr = "Condition aux limites de reflexion speculaire",
+ ang = "Specular Reflexion boundary condition" ) ;
+ALBEDO = OPER (nom="ALBEDO",op=0,sd_prod=Albedo, niveau = 'ConditionsLimites',
+ fr = "Condition aux limites d'albedo",
+ ang = "Albedo boundary condition",
+ albedo = SIMP (typ='R',statut='o',max='**',fr="Valeurs des albedos") ) ;
+TRANSLATION = OPER (nom="TRANSLATION",op=0,sd_prod=Translation, niveau = 'ConditionsLimites',
+ fr = "Condition aux limites de translation",
+ ang = "Translation boundary condition",
+ Vecteur = SIMP (typ=Vecteur,statut='o',fr="Axe de translation") ) ;
+ROTATION = OPER (nom="ROTATION",op=0,sd_prod=Rotation, niveau = 'ConditionsLimites',
+ fr = "Condition aux limites de rotation",
+ ang = "Rotational boundary condition",
+ Centre = SIMP (typ=Point ,statut='o',fr="Centre de la rotation"),
+ Vecteur = SIMP (typ=Vecteur,statut='o',fr="Axe de rotation"),
+ Angle = SIMP (typ='R' ,statut='o',fr="Angle de rotation",defaut=90.) ) ;
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONDITION_LIMITE_SPECIALE : Classe de definition de Conditions limites sur les surfaces elementaires de la geometrie
+# modifiant la CL generale
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONDITION_LIMITE_SPECIALE = OPER (nom="CONDITION_LIMITE_SPECIALE",op=0,sd_prod=SpecialeConditionLimite,
+ niveau = 'ConditionsLimites',
+ fr = "Condition limite particuliere qui sera plaquee sur la geometrie",
+ ang = "Special boundary condition added to the geometry",
+ Type = SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation),statut='o',
+ fr="Type de condition limite a appliquer aux surfaces listees"),
+ ZonesApplication = SIMP (typ=(Segment,ArcCercle,Conique),max='**',statut='o',
+ fr="Liste des segments ou surfaces sur lesquels porte la condition limite")
+ ) ; # Fin CONDITION_LIMITE_SPECIALE
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONDITION_LIMITE_GENERALE : Classe de definition des conditions limites de l'objet geometrique complet
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONDITION_LIMITE_GENERALE = OPER (nom="CONDITION_LIMITE_GENERALE",op=0,sd_prod=GeneraleConditionLimite,
+ niveau = 'ConditionsLimites',
+ fr = "Condition limite a la surface externe de la geometrie complete",
+ ang = "Boundary condition for the complete geometry",
+ ZoneCalculee = NUPL (statut='f',min=2,max=2,fr="Droites ou plans delimitant la zone de calcul",
+ elements = (SIMP (typ=(Droite,Plan)), SIMP (typ='TXM',into=('Plus','Moins')))),
+ ParDefautCondition = SIMP (typ=(Vide, ReflexionIsotrope, ReflexionSpeculaire, Albedo),
+ defaut=ReflexionIsotrope,
+ statut='f',
+ fr="Condition limite par defaut"),
+ ParticulieresConditions = NUPL (fr = "Conditions particulieres modifiant localement la condition limite par defaut",
+ statut = 'f', max = '**',
+ elements = (SIMP (typ='TXM',into=('X-','X+','Y-','Y+','Z-','Z+','R+','X','Y','Z')),
+ SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation)))),
+ SupplementairesConditions = SIMP (typ = SpecialeConditionLimite,
+ statut = 'f', max = '**',
+ fr = "Conditions limites non exprimables avec les donnees precedentes")
+ ) ; # Fin CONDITION_LIMITE_GENERALE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POSITION_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de la position des assemblages combustibles dans un REP
+# Reperes (bataille navale ou autre) et
+# Coordonnees cartesiennes entieres des assemblages combustibles pour un type de palier
+# Origine des coordonnees en bas a gauche d'un systeme en xy
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POSITION_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="POSITION_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PositionAssemblageCombustible,
+ niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Position des assemblages combustibles",
+ ang = "Position of fuel assemblies",
+ NbAssemblagesCombustibles = SIMP (typ='I',statut='o',defaut=157,fr="Nombre d'assemblages combustibles positionnes"),
+ regles = (UN_PARMI('PositionReseau', 'Positions'),),
+ PositionReseau = SIMP (typ=CorrespondanceReperePositionReseau,statut="f",fr="Objet donnant la correspondance entre Repere et Coordonnees entieres des assemblages"),
+ Positions = NUPL (max='**',statut='f',
+ elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire de l'assemblage"),
+ SIMP (typ='I' ,fr="Premiere Coordonnee entiere de l'assemblage"),
+ SIMP (typ='I' ,fr="Seconde Coordonnee entiere de l'assemblage")))
+ ) ; # Fin POSITION_ASSEMBLAGE_COMBUSTIBLE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POSITION_INSTRUMENTATION_INTERNE : Classe de definition de la position des assemblages instrumentes dans le c\9cur d'un REP
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POSITION_INSTRUMENTATION_INTERNE = OPER (nom="POSITION_INSTRUMENTATION_INTERNE",op=0,sd_prod=PositionInstrumentationInterne,
+ niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Definition de la position des assemblages instrumentes",
+ ang = "Definition of neutron flux detector position",
+# TypePalier = SIMP (typ='TXM',max='**',statut='o'),
+ NbAssemblagesInstrumentes = SIMP (typ='I',statut='o',fr="Nombre d'assemblages instrumentes"),
+ Positions = NUPL (
+ max = '**',
+ statut = 'o',
+ elements = (SIMP (typ='TXM',fr= "Type d'instrumentation (CFM, Collectron, ou Autre)"),
+ SIMP (typ='I',min=2,max=2,fr= "Coordonnees entieres de l'assemblage instrumente dans le reseau")))
+ ) ; # Fin POSITION_INSTRUMENTATION_INTERNE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe IMPLANTATION_GRAPPES_COMMANDE : Classe de definition de l'implantation des grappes de commande pour un type de schema de grappe (REP)
+# Donnees de la position (coordonnees entieres en xy), du type de grappe et du groupe d'appartenance
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+IMPLANTATION_GRAPPES_COMMANDE = OPER (nom="IMPLANTATION_GRAPPES_COMMANDE", op=0, sd_prod=ImplantationGrappesCommande,
+ niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Position radiale des grappes de commande pour un schema d'implantation particulier",
+ ang = "Control rod cluster radial positions and types",
+ TypeSchema = SIMP (typ='TXM',statut='o',fr="Identificateur arbitraire du type de schema"),
+ NbTotalGrappes = SIMP (typ='I' ,statut='o',fr="Nombre total de grappes du schema"),
+ PositionsEtType = NUPL (max='**' ,statut='o',
+ elements=(SIMP (typ='TXM',statut='o',fr="Nom du groupe de grappes"),
+ SIMP (typ='I' ,statut='o',fr="Nombre de grappes du groupe"),
+ SIMP (typ='TXM',statut='o',fr="Type de grappes (exemple : '8B', '12B', '24B')"),
+ SIMP (typ='I' ,statut='o',max='**',fr="Coordonnees entieres des grappes dans le reseau coeur")))
+ ) ; # Fin IMPLANTATION_GRAPPES_COMMANDE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe STRUCTURES_INTERNES_REACTEUR : Classe de definition des structures internes d'un coeur de REP
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+STRUCTURES_INTERNES_REACTEUR = OPER (nom="STRUCTURES_INTERNES_REACTEUR", op=0, sd_prod=StructuresInternesReacteur,
+ niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Definition des structures internes d'un c\9cur REP",
+ ang = "Definition of a PWR core internal structures",
+ PlaqueInferieureCoeur = FACT (
+ Epaisseur = SIMP (typ='R',statut='o',fr="Epaisseur de la plaque inferieure du coeur en cm"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque inferieure du coeur"),
+ Trous = NUPL (
+ max = '**',
+ elements = (
+ SIMP (typ='I', fr="Nombre de trous dont on donne les dimensions"),
+ SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot-cle indiquant si on donne le rayon ou les cotes"),
+ SIMP (typ='R',min=2,max=2, fr="Rayons ou cotes des trous en cm"),
+ SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"),
+ SIMP (typ='R', fr="Hauteur du trou en cm")))),
+ PlaqueSuperieureCoeur = FACT (
+ Epaisseur = SIMP (typ='R', fr="Epaisseur de la plaque superieure du coeur en cm"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque superieure du coeur"),
+ Trous = NUPL (
+ max = '**',
+ elements = (
+ SIMP (typ='I', fr="Nombre de trous dont on donne les dimensions"),
+ SIMP (typ='TXM',into=('Rayon','Cotes'), fr="Mot-cle indiquant si on donne le rayon ou les cotes"),
+ SIMP (typ='R',min=2,max=2, fr="Rayons ou cotes des trous en cm"),
+ SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"),
+ SIMP (typ='R', fr="Hauteur du trou en cm")))),
+ CloisonnementCoeur = FACT (
+ Epaisseur = SIMP (typ='R', fr="Epaisseur du cloisonnement du coeur"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER', fr="Materiau du cloisonnement du coeur"),
+ DimensionsInterieures = NUPL (
+ max = '**',
+ elements = (
+ SIMP (typ='I', fr="Nombre d'assemblages dans la rangee"),
+ SIMP (typ='TXM',into=('Assemblages','Assemblies'), fr="Mot-cle suivant le nombre d'assemblages"),
+ SIMP (typ='TXM',into=('Largeur','Cote'), fr="Mot-cle precedant la largeur interieure du cloisonnement"),
+ SIMP (typ='R', fr="Largeur interieure du cloisonnement en cm"),
+ SIMP (typ='TXM',into=('NbJeuCloisonGrille','NbJeu'),fr="Mot-cle precedant le nombre de jeux CloisonGrille"),
+ SIMP (typ='I', fr="Nombre de jeux CloisonGrille"))),
+ TrousDepressurisation = NUPL (elements=(SIMP (typ='I', fr="Nombre de trous de depressurisation"),
+ SIMP (typ='TXM',into=('Rayon','Radius'),fr="Mot-cle precedant la valeur du rayon des trous"),
+ SIMP (typ='R',fr="Rayon des trous de depressurisation en cm"))),
+ TemperatureMoyenne = SIMP (typ='R',fr="Temperature Moyenne du cloisonnement en Celsius")),
+ RenfortsInternes = FACT (statut='f',
+ Nombre = SIMP (typ='I',max='**',statut='o',fr="Liste des nombres de chaque type de renfort interne"),
+ Epaisseur = SIMP (typ='R',max='**',statut='o',fr="Nombre de renforts internes pour chaque type de renfort"),
+ Materiau = SIMP (typ=Materiau,max='**',statut='f',defaut='ACIER',fr="Materiau de chaque type de renfort"),
+ NbTrousDepressurisation = SIMP (typ='I',max='**',statut='o',fr="Nombre de trous dans chaque type de renfort"),
+ RayonsTrousDepressurisation = SIMP (typ='R',max='**',statut='o',fr="Rayons des trous dans chaque type de renfort en cm"),
+ TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne des renforts internes en Celsius")),
+ EnveloppeVirole = FACT (statut='f',
+ RayonInterne = SIMP (typ='R',statut='o',fr="Rayon interne de l'enveloppe du coeur en cm"),
+ RayonExterne = SIMP (typ='R',statut='o',fr="Rayon externe de l'enveloppe du coeur en cm"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de l'enveloppe du coeur"),
+ TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne de l'enveloppe du coeur en Celsius")),
+ Boucliers = FACT (statut='f',
+ RayonInterne = SIMP (typ='R',statut='o',fr="Rayon interne des boucliers thermiques du coeur en cm"),
+ RayonExterne = SIMP (typ='R',statut='o',fr="Rayon externe des boucliers thermiques du coeur en cm"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau des boucliers thermiques du coeur"),
+ Secteurs = NUPL (max='**',statut='f',elements=(
+ SIMP (typ='R',statut='o',fr="Angle en degres du debut du secteur du bouclier / axe Ox"),
+ SIMP (typ='R',statut='o',fr="Angle en degres du secteur du bouclier"))),
+ TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne en Celsius des boucliers du coeur")),
+ Cuve = FACT (statut='f',
+ RayonInterne = SIMP (typ='R',statut='o',fr="Rayon interne de la cuve en cm"),
+ RayonExterne = SIMP (typ='R',statut='o',fr="Rayon externe de la cuve en cm"),
+ Materiau = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la cuve"),
+ TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne en Celsius de la cuve"))
+ ) ; # Fin STRUCTURES_INTERNES_REACTEUR
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PRESSURISEUR : Classe de definition d'un pressuriseur REP (Valeurs par defaut pour un CP2 900)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PRESSURISEUR = OPER (nom="PRESSURISEUR", op=0, sd_prod=Pressuriseur, niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Donnees d'un pressuriseur REP",
+ ang = "Definition of a PWR pressurizor",
+ TmNominale = SIMP (typ='R',statut='o',defaut=345.0 ,fr="Temperature nominale en Celsius dans le pressuriseur"),
+ Volume = SIMP (typ='R',statut='o',defaut=39.865 ,fr="Volume total du pressuriseur en m3"),
+ VolumeHaut = SIMP (typ='R',statut='o',defaut=37.196 ,fr="Volume d'eau au niveau haut du pressuriseur en m3"),
+ VolumeBas = SIMP (typ='R',statut='o',defaut=2.597 ,fr="Volume d'eau au niveau bas du pressuriseur en m3"),
+ DiametreExterne = SIMP (typ='R',statut='o',defaut=235. ,fr="Diametre externe du pressuriseur en cm"),
+ Hauteur = SIMP (typ='R',statut='o',defaut=1280. ,fr="Hauteur du pressuriseur en cm"),
+ Pression = SIMP (typ='R',statut='o',defaut=172.37 ,fr="Pression de calcul du pressuriseur en bars"),
+ CapaciteChaufferette = SIMP (typ='R',statut='o',defaut=1440. ,fr="Capacite des chaufferettes du pressuriseur en kW"),
+ NbChaufferettes = SIMP (typ='I',statut='o',defaut=60 ,fr="Nombre de chaufferettes du pressuriseur"),
+ MasseAVide = SIMP (typ='R',statut='o',defaut=78. ,fr="Masse a vide du pressuriseur en tonnes"),
+ MasseEnService = SIMP (typ='R',statut='o',defaut=95. ,fr="Masse du pressuriseur en service normal en tonnes"),
+ PressionDecharge = SIMP (typ='R',statut='o',defaut=162. ,fr="Pression d'ouverture de la decharge du pressuriseur en bars"),
+ PressionSoupape = SIMP (typ='R',statut='o',defaut=171.5 ,fr="Pression de tarage des soupapes de surete du pressuriseur en bars"),
+ VolumeDecharge = SIMP (typ='R',statut='o',defaut=37. ,fr="Volume total du reservoir de decharge du pressuriseur en m3"),
+ VolumeliquideDecharge = SIMP (typ='R',statut='o',defaut=25.5 ,fr="Volume de liquide du reservoir de decharge du pressuriseur en fct normal en m3")
+ ) ; # Fin PRESSURISEUR
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe GENERATEUR_VAPEUR : Classe de definition d'un generateur de vapeur REP (Valeurs par defaut pour un CP2 900)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+GENERATEUR_VAPEUR = OPER (nom="GENERATEUR_VAPEUR", op=0, sd_prod=GenerateurVapeur, niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Donnees d'un generateur de vapeur REP",
+ ang = "Definition of a PWR Steam Generator",
+ HauteurTotale = SIMP (typ='R',statut='o',defaut=2064.8 ,fr="Hauteur totale d'un GV en cm"),
+ DiametreMaximum = SIMP (typ='R',statut='o',defaut=446.8 ,fr="Diametre maximum d'un GV en cm"),
+ DiametreMinimum = SIMP (typ='R',statut='o',defaut=343.4 ,fr="Diametre minimum d'un GV en cm"),
+ NbTubes = SIMP (typ='I',statut='o',defaut=3330 ,fr="Nombre de tubes d'un GV"),
+ TubeDiametre = SIMP (typ='R',statut='o',defaut=2.222 ,fr="Diametre des tubes d'un GV en cm"),
+ TubeEpaisseur = SIMP (typ='R',statut='o',defaut=0.127 ,fr="Epaisseur des tubes d'un GV en cm"),
+ PasReseau = SIMP (typ='R',statut='o',defaut=3.254 ,fr="Pas du reseau des tubes d'un GV en cm"),
+ LongueurTube = SIMP (typ='R',statut='o',defaut=963.7 ,fr="Longueur droite des tubes d'un GV en cm"),
+ SurfaceEchange = SIMP (typ='R',statut='o',defaut=4700. ,fr="Surface d'échange d'un GV en m2"),
+ PlaqueEpaisseur = SIMP (typ='R',statut='o',defaut=53.4 ,fr="Epaisseur de la plaque tubulaire d'un GV en cm"),
+ PlaqueDiametre = SIMP (typ='R',statut='o',defaut=345.4 ,fr="Diametre de la plaque tubulaire d'un GV en cm"),
+ NbEntretoises = SIMP (typ='I',statut='o',defaut=8 ,fr="Nombre de plaques entretoises d'un GV"),
+ MasseAVide = SIMP (typ='R',statut='o',defaut=300. ,fr="Masse a vide d'un GV en tonnes"),
+ MasseFctNormal = SIMP (typ='R',statut='o',defaut=364. ,fr="Masse en fonctionnement normal d'un GV en tonnes"),
+ MasseFaisceau = SIMP (typ='R',statut='o',defaut=51.5 ,fr="Masse du faisceau tubulaire d'un GV en tonnes"),
+ ViroleSupEpaisseur = SIMP (typ='R',statut='o',defaut=9.4 ,fr="Epaisseur de la virole superieure d'un GV en cm"),
+ ViroleInfEpaisseur = SIMP (typ='R',statut='o',max=3,defaut=(8.4,7.4),fr="Epaisseur(s) de la virole inferieure d'un GV en cm"),
+ MateriauEntretroises = SIMP (typ=Materiau,statut='o',defaut='ACIER' ,fr="Materiau des plaques entretoises d'un GV"),
+ MateriauTube = SIMP (typ=Materiau,statut='o',defaut='INCONEL',fr="Materiau des tubes du faisceau d'un GV"),
+ GeomReseau = SIMP (typ='TXM',statut='o',defaut='Carre',into=('Carre','Triangulaire'),
+ fr="Type de geometrie du reseau des tubes d'un GV")
+ ) ; # Fin GENERATEUR_VAPEUR
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POMPE_PRIMAIRE : Classe de definition d'une pompe primaire REP (Valeurs par defaut pour un CP2 900)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POMPE_PRIMAIRE = OPER (nom="POMPE_PRIMAIRE", op=0, sd_prod=PompePrimaire, niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Donnees d'une pompe primaire REP",
+ ang = "Definition of a PWR primary pomp",
+ Type = SIMP (typ='TXM',statut='o', defaut='93-D7' ,fr="Type de pompe"),
+ TensionNominale = SIMP (typ='R' ,statut='o', defaut=6600. ,fr="Tension nominale en Volts d'une pompe primaire"),
+ VitesseRotation = SIMP (typ='I' ,statut='o', defaut=1485 ,fr="Vitesse de rotation tours/mn ? d'une pompe primaire"),
+ DebitConception = SIMP (typ='R' ,statut='o', defaut=21250. ,fr="Debit de conception m3/h d'une pompe primaire"),
+ HauteurManometrique = SIMP (typ='R' ,statut='o', defaut=90.7 ,fr="Hauteur manometrique ds pompes en mCE"),
+ PuissanceFroid = SIMP (typ='R' ,statut='o', defaut=6600. ,fr="Puissance absorbee a froid sur l'arbre de la pompe en kW"),
+ PuissanceChaud = SIMP (typ='R' ,statut='o', defaut=5000. ,fr="Puissance absorbee a chaud sur l'arbre de la pompe en kW"),
+ PuissanceNominale = SIMP (typ='R' ,statut='o', defaut=5300. ,fr="Puissance absorbee nominale par moteur en kW"),
+ TensionMinimale = SIMP (typ='R' ,statut='o', defaut=0.75 ,fr="Tension minimale de démarrage en fraction de la tension nominale"),
+ Masse = SIMP (typ='R' ,statut='o', defaut=93.9 ,fr="Masse d'une pompe primaire en tonnes avec huile et eau"),
+ HauteurTotale = SIMP (typ='R' ,statut='o', defaut=8.1 ,fr="Hauteur totale d'une pompe primaire en cm"),
+ Inertie = SIMP (typ='R' ,statut='o', defaut=3730. ,fr="Inertie des pieces tournantes en kg.m2"),
+ DebitInjection = SIMP (typ='R' ,statut='o', defaut=1800. ,fr="Debit d'injection aux joints en l/h")
+ ) ; # Fin POMPE_PRIMAIRE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CARACTERISTIQUES_PALIER : Classe de definition des donnees generales d'un type de palier de reacteur
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CARACTERISTIQUES_PALIER = OPER (nom="CARACTERISTIQUES_PALIER",op=0,sd_prod=CaracteristiquesPalier,
+ niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Donnees generales pour un type de palier de reacteur",
+ ang = "General data for a particular type of nuclear reactor",
+ TypePalier = SIMP (typ='TXM',statut='o',fr="Identificateur du type de palier"),
+ PositionCombustible = SIMP (typ=PositionAssemblageCombustible ,statut='o',
+ fr="Objet definissant la position des assemblages dans le coeur"),
+ PositionDetecteur = SIMP (typ=PositionInstrumentationInterne,statut='o',
+ fr="Objet definissant la position des assemblages instrumentes"),
+ StructuresInternes = SIMP (typ=StructuresInternesReacteur ,statut='o',
+ fr="Objet definissant les structures internes du reacteur"),
+ Pressuriseur = SIMP (typ=Pressuriseur ,statut='f',
+ fr="Objet contenant les caracteristiques du pressuriseur du reacteur"),
+ Generateur = SIMP (typ=GenerateurVapeur ,statut='f',
+ fr="Objet contenant les caracteristiques des GV du reacteur"),
+ Pompes = SIMP (typ=PompePrimaire ,statut='f',
+ fr="Objet contenant les caracteristiques des pompes primaires du reacteur"),
+ CoeurPElectriqueNominle = SIMP (typ='R',statut='o',defaut= 900.,
+ fr="Puissance electrique nominale de coeur en MW"),
+ CoeurPThermiqueNominale = SIMP (typ='R',statut='o',defaut=2775.,
+ fr="Puissance thermique nominale de coeur en MWth"),
+ ChaudierePThermiqueNominale = SIMP (typ='R',statut='o',defaut=2785.,
+ fr="Puissance thermique nominale de la chaudiere MWth"),
+ ChaudierePmaxThermique = SIMP (typ='R',statut='o',defaut=2905.,
+ fr="Puissance thermique maximum de la chaudiere MWth"),
+ NbBouclesPrimaires = SIMP (typ='I',statut='o',defaut=3,
+ fr="Nombre de boucles primaires"),
+ ProportionDebitCoeurCuve = SIMP (typ='R',statut='o',defaut=0.97,
+ fr="Rapport du debit coeur / debit cuve"),
+ PressionNominalePrimaire = SIMP (typ='R',statut='o',defaut=155.,
+ fr="Pression nominale du circuit primaire en bars"),
+ PerteChargeCoeurNominale = SIMP (typ='R',statut='o',defaut=1.24,
+ fr="Perte de charge nominale dans le coeur en bars"),
+ PerteChargeCuveNominale = SIMP (typ='R',statut='o',defaut=2.34,
+ fr="Perte de charge nominale dans la cuve en bars"),
+ TmNomSortieCuveEntreeGV = SIMP (typ='R',statut='o',defaut=323.2,
+ fr="Temperature nominale sortie Cuve / Entree GV en Celsius"),
+ TmNomSortieGVEntreePPrimaire = SIMP (typ='R',statut='o',defaut=285.8,
+ fr="Temperature nominale sortie GV / Entree Pompe primaire en Celsius"),
+ TmNomSortiePPrimaireEntreeCuve = SIMP (typ='R',statut='o',defaut=286.,
+ fr="Temperature nominale sortie Pompe primaire / Entree Cuve en Celsius"),
+ TmEntreeCoeurPnulle = SIMP (typ='R',statut='o',defaut=286.0,
+ fr="Temperature en Celsius du moderateur a puissance nulle a l'entree du coeur"),
+ TmEntreeCoeurPnom = SIMP (typ='R',statut='o',defaut=286.4,
+ fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"),
+ TmSortieCoeurPnom = SIMP (typ='R',statut='o',defaut=324.7,
+ fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"),
+ TmMoyenneCoeurPnom = SIMP (typ='R',statut='o',defaut=305.3,
+ fr="Temperature moyenne en Celsius du moderateur dans le coeur actif"),
+ TmMoyenneCuvePnom = SIMP (typ='R',statut='o',defaut=305.0,
+ fr="Temperature moyenne en Celsius du moderateur dans la cuve"),
+ TmMoyenneReflecteurPnom = SIMP (typ='R',statut='o',defaut=296.0,
+ fr="Temperature moyenne en Celsius du reflecteur radial"),
+ TcMoyennePnom = SIMP (typ='R',statut='o',defaut=600.0,
+ fr="Temperature moyenne en Celsius du combustible dans le coeur"),
+ TcCentrePnom = SIMP (typ='R',statut='o',defaut=1830.,
+ fr="Temperature au centre Pastille en Celsius en fct nominal"),
+ SectionEcoulementCoeur = SIMP (typ='R',statut='o',defaut=3.86,
+ fr="Section d'ecoulement du moderateur dans le coeur en m2"),
+ SurfaceEchangeCoeur = SIMP (typ='R',statut='o',defaut=4520.,
+ fr="Surface d'échange dans le coeur en m2"),
+ VolumeEauCuve = SIMP (typ='R',statut='o',defaut=105.8,
+ fr="Volume d'eau primaire m3 dans la cuve (coeur et internes en place)"),
+ VolumeEauPrimaire = SIMP (typ='R',statut='o',defaut=215.,
+ fr="Volume total d'eau primaire m3)"),
+ VolumeBallonRCV = SIMP (typ='R',statut='o',defaut=7.,
+ fr="Volume du ballon RCV m3)"),
+ DebitThermohConception = SIMP (typ='R',statut='o',defaut=63325.,
+ fr="Debit thermohydraulique de conception dans la cuve en m3/h"),
+ DebitMecaniqueConception = SIMP (typ='R',statut='o',defaut=70920.,
+ fr="Debit mecanique de conception dans la cuve en m3/h"),
+ BypassConception = SIMP (typ='R',statut='o',defaut=7.,
+ fr="Pourcentage de debit Conception dans le contournement du coeur en %"),
+ BypassSpin = SIMP (typ='R',statut='o',defaut=4.5,
+ fr="Pourcentage de debit dans le contournement du coeur en % utilise dans le SPIN"),
+ DebitBestEstimateBoucle = SIMP (typ='R',statut='o',defaut=21075.,
+ fr="Debit best-estimate par boucle en m3/h"),
+ DebitMassiqueNominal = SIMP (typ='R',statut='o',defaut=47675.,
+ fr="Debit massique nominal best-estimate dans la cuve en t/h"),
+ DebitEffMassiqueNominal = SIMP (typ='R',statut='o',defaut=45530.,
+ fr="Debit massique effectif du coeur en t/h"),
+ FluxMoyenChaleurCoeur = SIMP (typ='R',statut='o',defaut=60.,
+ fr="Flux de chaleur moyen dans le coeur W/cm2"),
+ FluxMaxChaleurCoeur = SIMP (typ='R',statut='o',defaut=128.,
+ fr="Flux de chaleur maximal dans le coeur W/cm2"),
+ PlinMoyen = SIMP (typ='R',statut='o',defaut=178.,
+ fr="Puissance lineique Moyenne en W/cm"),
+ PlinMax = SIMP (typ='R',statut='o',defaut=382.,
+ fr="Puissance lineique Maximum en W/cm"),
+ FacteurFQN = SIMP (typ='R',statut='o',defaut=2.69,
+ fr="Facteur de point chaud de conception FQN"),
+ FacteurFDH = SIMP (typ='R',statut='o',defaut=1.55,
+ fr="Facteur total d'élévation d'enthalpie FDH de conception"),
+ RECMinimalNominal = SIMP (typ='R',statut='o',defaut=1.78,
+ fr="REC minimal en fonctionnement nominal"),
+ VitesseMoyenneModerCoeur = SIMP (typ='R',statut='o',defaut=4.72,
+ fr="Vitesse moyenne dans le coeur en m/s"),
+ VitesseMassiqueModerCoeur = SIMP (typ='R',statut='o',defaut=328.,
+ fr="Vitesse massique moyenne dans le coeur en g/s.cm2"),
+ VitesseRechaufRefroid = SIMP (typ='R',statut='o',defaut=28.,
+ fr="Vitesse normale maximale de rechauffage ou de refroidissementnormal en Celsius/h"),
+ VitesseMaxRechaufRefroid = SIMP (typ='R',statut='o',defaut=56.,
+ fr="Vitesse maximale de rechauffage ou de refroidissementnormal en Celsius/h")
+ ) ; # Fin CARACTERISTIQUES_PALIER
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe SITE_NUCLEAIRE_EDF : Classe de definition d'un site nucleaire EDF (Tranches, paliers et numero EPN)
+# Le numero EPN correspond au code de la tranche, cette donnee figure dans le fichier ASN transmis par la Division Combustible
+# decrivant chaque recharge combustible (et identifie donc la tranche a laquelle elle est destinee)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SITE_NUCLEAIRE = OPER (nom="SITE_NUCLEAIRE", op=0, sd_prod=SiteNucleaire, niveau = 'ElementsTechnologiquesReacteur',
+ fr = "Definition d'un site nucleaire EDF et de ses tranches",
+ ang = "Definition of a nuclear power plant site",
+ NomSite = SIMP (typ='TXM',statut='o',fr="Nom du site nucleaire",defaut='TRICASTIN'),
+ Tranches = NUPL (max='**',elements=( SIMP (typ='I' ,statut='o',fr="Numero de la tranche nucleaire"),
+ SIMP (typ='TXM',statut='o',fr="Trigramme de la tranche nucleaire"),
+ SIMP (typ=CaracteristiquesPalier,statut='o',fr="Type de palier"),
+ SIMP (typ='I' ,statut='o',fr="Numero EPN de la tranche")))
+ ) ; # Fin SITE_NUCLEAIRE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ESPACE_VARIATIONS : Classe de definition de l'espace des parametres variables et sa discretisation.
+# De manière generale, un parametre peut valoriser un attribut quelconque de plusieurs objets. L'association
+# Parametre-Attributs se fait par l'attribut ObjetsVariations de la classe definie ci-dessous
+# de maniere purement textuelle sous la forme 'NomObjet.NomAttribut(.NomSousAttribut)[Index]'.
+# L'attribut variable peut etre un objet, auquel cas les valeurs de variation sont les noms textuels
+# des objets a remplacer successivement dans chaque calcul elementaire.
+# Il n'y a pas de verification de coherence au niveau de la saisie des donnees mais immediatement apres
+# lors de l'interpretation de l'ensemble de l'objet DonneesCasEtude .
+# Definition de la methode de balayage de cet espace (Suite d'options complementaires) :
+# 1) ParametresIndependants : Calculs independants en donnant successivement a chacun
+# des parametres leurs valeurs individuelles
+# 2) CoinsDomaine : Rajout des calculs aux limites extremes du domaine
+# 3) BordsDomaine : Rajout des calculs aux bords du domaine
+# 4) Grilles2D : Rajout des calculs sur les grilles 2D
+# passant par un point de reference
+# 5) CasParticuliers : Rajout de points specifiques de calcul
+# 6) EspaceComplet : Balayage complet du domaine des parametres
+# Par defaut, le cas de reference est le premier cas defini soit dans CasParticuliers si les cas sont fournis
+# de cette façon, soit par les premieres valeurs rentrees pour chacun des paramètres,
+# sauf entree explicite de l'attribut CasReference
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ESPACE_VARIATIONS = OPER (nom="ESPACE_VARIATIONS", op=0, sd_prod=EspaceVariations, niveau = 'ParametresCalcul',
+ fr = "Definition de l'espace des parametres et de leurs variations",
+ ang = "Definition of feedback or variable parameters",
+ regles = (AU_MOINS_UN ('Variations', 'CasParticuliers'),),
+ Variations = NUPL (max='**',statut='f',
+ elements=( SIMP (typ='TXM',statut='o',fr="Nom arbitraire du parametre a faire varier"),
+ SIMP (typ=('R','I','TXM'),max='**',statut='o',fr="Valeurs discretes de variation du parametre"))),
+ ObjetsVariations = NUPL (max='**',statut='o',fr="Association Parametre et attributs des objets du modele de donnees",
+ elements=( SIMP (typ='TXM',statut='o',fr="Nom arbitraire du parametre a faire varier"),
+ SIMP (typ='TXM',max='**',statut='o',fr="Objets, attributs et index associes au parametre"))),
+ MethodeBalayage = SIMP (
+ typ = 'TXM',
+ max = '**',
+ defaut = 'ParametresIndependants',
+ into = ('ParametresIndependants','CoinsDomaine','BordsDomaine','Grilles2D','CasParticuliers','EspaceComplet'),
+ statut = 'o'),
+ TypeVariation = SIMP (typ='TXM',defaut='Absolu',into=('Relatif','Absolu'),statut='o'),
+ CasParticuliers = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour les cas particuliers",
+ elements=(SIMP (typ='TXM',fr="Nom arbitraire du parametre a faire varier"),
+ SIMP (typ=('I','R','TXM'),fr="Valeur du parametre"))),
+ CasReference = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour le cas de reference",
+ elements=(SIMP (typ='TXM',fr="Nom arbitraire du parametre a faire varier"),
+ SIMP (typ=('I','R','TXM'),fr="Valeur du parametre")))
+ ) ; # Fin ESPACE_VARIATIONS
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DONNEES_IRRADIATION : Classe de definition des valeurs d'irradiation intervenant dans les phases de calcul ou d'edition
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DONNEES_IRRADIATION = OPER (nom="DONNEES_IRRADIATION",op=0,sd_prod=DonneesIrradiation,
+ niveau = 'ParametresCalcul',
+ fr = "Definition des donnees d'irradiation",
+ ang = "Definition of burnup values",
+ regles = (AU_MOINS_UN ('Irradiations', 'Refroidissement','InsertionGrappeX'),),
+ Unite = SIMP (typ='TXM',defaut='MWj/t',into=('MWj/t','Jours'),statut='o',fr="Unite pour les irradiations"),
+ Minimum = SIMP (typ='R',defaut=0.,statut='f',fr="Irradiation du debut de calcul"),
+ Maximum = SIMP (typ='R',defaut=100000.,statut='f',fr="Irradiation maximum des calculs"),
+ Irradiations = SIMP (typ='R',max='**',defaut=0.,statut='f',fr="Liste previsionnelle des irradiations"),
+ Refroidissement = FACT (statut='f',fr="Definition de la periode de refroidissement",
+ Instants = SIMP (typ='R',max='**',fr="Irradiations MWj/t de debut de refroidissement du combustible"),
+ Duree = SIMP (typ=('R','I'),max='**',fr="Nombre de jours de refroidissement correspondant aux instants de refroidissement")
+ ),
+ InsertionGrappeX = FACT (statut='f',fr="Simulation d'une insertion de grappe dans un assemblage seul (Mode X)",
+ TypeGrappe = SIMP (typ='TXM', statut='o',fr="Type de grappe inseree"),
+ IrradiationInsertion = SIMP (typ=('R','I'), statut='o',max='**',fr="Irradiations MWj/t de debut d'insertion de la grappe"),
+ IrradiationExtraction = SIMP (typ=('R','I'), statut='o',max='**',fr="Irradiations MWj/t d'extraction de la grappe"),
+ CoteAxiale = SIMP (typ='R', statut='f',fr="Cote axiale (cm) de la limite inferieure de la grappe aux instants d'insertion")
+ )
+ ) ; # Fin DONNEES_IRRADIATION
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONDITIONS_FONCTIONNEMENT_MOYENNES : Classe de definition des conditions de fonctionnement Reacteur pour une campagne donnee
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONDITIONS_FONCTIONNEMENT_MOYENNES = OPER (nom="CONDITIONS_FONCTIONNEMENT_MOYENNES",op=0,sd_prod=ConditionsFonctionnementMoyennes,
+ niveau = 'ParametresCalcul',
+ fr = "Definition des conditions de fonctionnement moyennes pour une campagne donnee",
+ ang = "Definition of a campaign operating conditions ",
+ IdentificateurCampagne = SIMP (typ='TXM',statut='f',fr="Identificateur de la campagne"),
+ DescriptifFonctionnement = SIMP (typ='TXM',statut='f',fr="Descriptif textuel arbitraire du mode de fonctionnement"),
+ regles = (UN_PARMI ('PuissanceThermiqueCoeur', 'PuissanceRelativeCoeur'),),
+ PuissanceThermiqueCoeur = SIMP (typ='R',statut='o',defaut=2775.,fr="Puissance thermique du reacteur en MWth"),
+ PuissanceRelativeCoeur = SIMP (typ='R',statut='o',defaut=100. ,fr="Puissance relative du reacteur en %"),
+ FluxSurfaciquePn = SIMP (typ='R',statut='o',defaut=59.74 ,fr="Flux a la surface du crayon en W/cm2"),
+ PressionEntreePrimaire = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression du moderateur en bars a l'entree du coeur actif"),
+ PressionSortiePrimaire = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression moyenne du moderateur en bars en sortie du coeur actif"),
+ TitreMoyenBore = SIMP (typ='R',statut='o',defaut= 500.,fr="Titre moyen en ppm en bore dans le moderateur"),
+#
+ TmEntreePnulle = SIMP (typ='R',statut='o',defaut=286.0,fr="Temperature en Celsius du moderateur a puissance nulle a l'entree du coeur"),
+ TmEntreePnom = SIMP (typ='R',statut='o',defaut=286.4,fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"),
+ DeltaTmEntreeSortiePnom = SIMP (typ='R',statut='o',defaut= 39.0,fr="Ecart en Celsius de temperature entre entree et sortie du coeur a puissance nominale"),
+ TmMoyenneCoeurPnom = SIMP (typ='R',statut='o',defaut=305.3,fr="Temperature moyenne en Celsius du moderateur dans le coeur actif"),
+ TmMoyenneCuvePnom = SIMP (typ='R',statut='f',defaut=305.0,fr="Temperature moyenne en Celsius du moderateur dans la cuve"),
+ TmMoyenneReflecteurPnom = SIMP (typ='R',statut='f',defaut=296.0,fr="Temperature moyenne en Celsius du reflecteur radial"),
+ TcMoyennePnom = SIMP (typ='R',statut='f',defaut=600.0,fr="Temperature moyenne en Celsius du combustible dans le coeur"),
+#
+ PositionGrappeHaute = SIMP (typ='I',statut='f',defaut=225 ,fr="Position haute des grappes, en nombre de pas extraits"),
+ DebitMesureParBoucle = FACT (statut='f',max='**',fr="Debit primaire mesure sur chaque boucle en m3/h",
+ DateEssai = SIMP (typ='I',min=3,max=3,fr="Date J M A de l'essai"),
+ Debits = SIMP (typ='R',min=3,max=4,fr="Valeurs des debits primaire par boucle en m3/h")
+ ),
+ NbTubesGVBouches = SIMP (typ='I',statut='f',min=3,max=4,fr="Nombre de tubes bouches pour chaque GV")
+ ) ; # Fin CONDITIONS_FONCTIONNEMENT_MOYENNES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CONDITIONS_TRANSITOIRE : Classe de definition des conditions de fonctionnement Reacteur pour une campagne donnee en transitoire
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CONDITIONS_TRANSITOIRE = OPER (nom="CONDITIONS_TRANSITOIRE", op=0, sd_prod=ConditionsTransitoire, niveau = 'ParametresCalcul',
+ fr = "Definition des conditions de fonctionnement en transitoire pour une campagne donnee",
+ ang = "Definition of a campaign dynamic operating conditions ",
+ IdentificateurCampagne = SIMP (typ='TXM',max='**',statut='f',fr="Identificateur de la campagne"),
+ NeutroniqueDiscretisation = SIMP (typ='R',max='**',statut='f',fr="Liste des pas de temps successifs pour le calcul neutronique (en s)"),
+ ThermohydrauliqueDiscretisation = SIMP (typ='R',statut='f',fr="Liste des pas de temps successifs pour le calcul thermohydraulique (en s)"),
+ DureeTransitoire = SIMP (typ='R',statut='o',fr="Duree totale en s du transitoire a simuler"),
+ PuissanceThermiqueRelative = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Puissance thermique relative du reacteur en %)"),
+ PressionPrimaireEntree = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Pression du moderateur en bars a l'entree du coeur actif)"),
+ TitreBore = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Titre en bore dans le moderateur (en ppm))"),
+ DebitPrimaire = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Debit primaire dans le coeur en m3/h)")
+# PositionsGrappes = SIMP (typ=PositionAxialeGrappesCommande,statut='f')
+# PositionsGrappes = FACT (max='**',statut='f',
+# RepereGrappeouGroupe = SIMP (typ='TXM',fr="Repere du groupe de grappes ou de la grappe"),
+# Positions = SIMP (typ='R',max='**',
+# fr="Couples (Instant en s, Position dans le coeur en nombre de pas extraits)"))
+ ) ; # Fin CONDITIONS_TRANSITOIRE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe POSITION_AXIALE_GRAPPES_COMMANDE : Classe de definition des positions axiales des grappes de commande
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+POSITION_AXIALE_GRAPPES_COMMANDE = OPER (nom="POSITION_AXIALE_GRAPPES_COMMANDE",op=0,sd_prod=PositionAxialeGrappesCommande,
+ niveau = 'ParametresCalcul',
+ fr = "Positions axiales des grappes de commande pour une campagne donnee ou pour un transitoire",
+ ang = "Control rod cluster axial positions for a campaign or for a static or dynamic calculation",
+ TypeDonnee = SIMP (typ='TXM',statut='o',defaut='Statique',into=('Statique','Cinetique','Campagne'),
+ fr="Indication de dependance ou non d'un parametre Temps ou Irradiation"),
+ UnitePosition = SIMP (typ='TXM',statut='o',defaut='PasExtrait',into=('PasExtrait', 'cm', 'Recouvrement')),
+ BlocStatique = BLOC (condition = "TypeDonnee=='Statique'",
+ PositionStatique = NUPL (max='**',statut='o',elements =(
+ SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"),
+ SIMP (typ=('R','I'),fr="Position axiale"))
+ )
+ ),
+ BlocCinetique = BLOC (condition = "TypeDonnee=='Cinetique'",
+ PositionCinetique = FACT (max='**',statut='o',
+ NomGrappeouGroupe = SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"),
+ CotesAxiales = SIMP (typ=('R','I'),max='**',
+ fr="Liste des Couples (Instant en s, Position axiale)")
+ )
+ ),
+ BlocCampagne = BLOC (condition = "TypeDonnee=='Campagne'",
+ PositionCampagne = FACT (max='**',statut='o',
+ NomGrappeouGroupe = SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"),
+ CotesAxiales = SIMP (typ=('R','I'),max='**',
+ fr="Liste des Couples (Irradiation MWj/t, Position axiale)")
+ )
+ )
+ ) ; # Fin POSITION_AXIALE_GRAPPES_COMMANDE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DATES_CLES_CAMPAGNE : Classe de definition des dates cles d'une campagne et de sa longueur
+# Definition des attributs :
+# LongueurNaturelleExperimentaleMWj_t : Irradiation moyenne coeur depuis le debut de la campagne jusqu'au moment du passage en
+# prolongation de campagne (valeur experimentale transmise par le site). En cas d'anticipation,
+# c'est la valeur recalee qui y est stockee.
+# LongueurNaturelleRecaleeMWj_t : Longueur naturelle previsionnelle estimee en cours de campagne (par le suivi du bore,
+# a chaque carte de flux)
+# LongueurNaturelleTheoriqueMWj_t : Longueur naturelle estimee par le code de coeur
+# LongueurAnticipationJepp : Longueur d'anticipation de campagne en Jours Equivalents Pleine Puissance
+# LongueurProlongationJepp : Longueur de prolongation de campagne en Jours Equivalents Pleine Puissance
+# LongueurTotaleExperimentaleMWj_t : Longueur totale de la campagne en MWj/t (Donnee transmise par le site)
+# TypePlanChargement : Type de plan pour la fluence cuve : Determine par les irradiations des assemblages places sur les axes medians
+# et sur les diagonales
+# - 3 Assemblages neufs aux bouts des deux axes : Plan Standard
+# - 3 Assemblages (Irradie, Neuf, Irradie) ou (Neuf, Irradie, Neuf) sur les axes : Fluence reduite (REP 900 ou N4)
+# - 2 assemblages irradies aux bouts des diagonales : Fluence reduite (REP 1300)
+# - 3 Assemblages irradies aux bouts des deux axes : Fluence Faible (REP 900 ou N4)
+# - 3 Assemblages irradies aux bouts des deux axes et
+# 2 assemblages irradies aux bouts des diagonales : Faible Fluence Generalisee
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DATES_CLES_CAMPAGNE = OPER (nom="DATES_CLES_CAMPAGNE", op=0, sd_prod=DatesClesCampagne, niveau = 'DonneesEtude',
+ fr = "Definition des dates cles d'une campagne et de ses longueurs caracteristiques",
+ ang = "Definition of the campaign dates and lengths",
+ IdentificateurCampagne = SIMP (typ='TXM',statut='o',defaut='CZ101',fr="Identificateur de la campagne"),
+ TypePlanChargement = SIMP (typ='TXM',statut='f',defaut='FluenceFaible',
+ into=('Standard','FluenceReduite','FluenceFaible','FaibleFluenceGeneralisee')),
+ DateDDC = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de debut de campagne"),
+ regles = (ENSEMBLE ('DatePnom','IrradiationDatePnom'),
+ ENSEMBLE ('DateCouplage','IrradiationDateCouplage'),
+ ENSEMBLE ('DatePassageEnProlongation','LongueurNaturelleExperimentale'),),
+ DatePnom = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A d'atteinte de la puissance nominale"),
+ IrradDatePnom = SIMP (typ='R', statut='f',fr="Irradiation de la campagne a la date d'atteinte de la puissance nominale"),
+ DateCouplage = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de couplage au reseau"),
+ IrradDateCouplage = SIMP (typ='R', statut='f',fr="Irradiation de la campagne atteinte a la date de couplage au reseau"),
+ DateFDC = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de fin de campagne reelle"),
+ LNatTheorique = SIMP (typ='R', statut='f',fr="Longueur naturelle theorique calculee de la campagne en MWj/t"),
+ LNatRecalee = SIMP (typ='R', statut='f',fr="Longueur naturelle recalee calculee de la campagne en MWj/t"),
+ DatePassageEnProlongation = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de passage en prolongation de campagne"),
+ LnatExperimentale = SIMP (typ='R', statut='f',fr="Longueur naturelle mesuree de la campagne en MWj/t"),
+ LongueurAnticipationJepp = SIMP (typ='R', statut='f',fr="Nombre de JEPP d'anticipation"),
+ LongueurProlongationJepp = SIMP (typ='R', statut='f',fr="Nombre de JEPP de prolongation"),
+ LongueurTotaleExperimentale = SIMP (typ='R', statut='f',fr="Longueur totale de la campagne en MWj/t")
+ ) ; # Fin DATES_CLES_CAMPAGNE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_AUTOPROTECTION : Classe de definition des donnees d'autoprotection du code de reseau
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_AUTOPROTECTION = OPER (nom="OPTIONS_AUTOPROTECTION",op=0,sd_prod=OptionsAutoprotection,
+ niveau = 'OptionsCodesCalcul',
+ fr = "Definition des donnees d'autoprotection des resonances",
+ ang = "Definition of resonance self shielding data",
+ TypeCombustible = SIMP (typ='TXM',max='**',statut='o',
+ fr="Type de combustible auquel s'appliquent ces options d'autoprotection"),
+ MethodeAutoprotection = SIMP (typ='TXM',into=('SanchezCoste','SousGroupes'),defaut='SanchezCoste',statut='f'),
+ EnergieSupAutoprotection = SIMP (typ='R',defaut=55.5952,statut='f',
+ fr="Energie superieure eV du premier groupe d'autoprotection, gpe 38 dans le cas a 99 groupes"),
+ IsotopesAutoproteges = NUPL (
+ max = '**',
+ elements = (SIMP (typ=Isotope,statut='o',fr="Nom de l'isotope a autoproteger"),
+ SIMP (typ='TXM',into=('Moyenne','Detaillee','Couronne'),statut='o'),
+ SIMP (typ='TXM',into=('Materiaux','Cellules'),statut='f',
+ fr="Choix d'autoprotection sur les materiaux ou les cellules"),
+ SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de materiaux ou de cellules concernes"))),
+ Irradiations = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs d'autoprotection"),
+ PoisonIrradiations = SIMP (typ='R',max='**',statut='f',
+ fr="Irradiations ou se font les calculs d'autoprotection des poisons integres au combustible")
+ ) ; # Fin OPTIONS_AUTOPROTECTION
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_CODE_RESEAU : Classe de definition des options du code de reseau
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_CODE_RESEAU = OPER (nom="OPTIONS_CODE_RESEAU", op=0, sd_prod=OptionsCodeReseau, niveau = 'OptionsCodesCalcul',
+ fr = "Definition des options des codes de calcul de reseau",
+ ang = "Definition of lattice code options",
+ MethodeCalcul = SIMP (typ='TXM',defaut='Multicellule',statut='o',
+ into=('Multicellule','Pij','Caracteristiques','Monte-Carlo/TRIPOLI','Monte-Carlo/MCNP'),
+ fr="Methode de calcul"),
+ ProcedureBibliothequeBase = SIMP (typ='TXM',defaut='CEA93_G99_V5',statut='o',
+ into=('CEA93_G99_V0','CEA93_G99_V2','CEA93_G99_V3','CEA93_G99_V4',
+ 'CEA93_G99_V5','CEA93_G99_V6','CEA93_G172_V4'),
+ fr="Nom de la procedure Bibliotheque"),
+ CorrectionTransport = SIMP (typ='TXM',defaut='APOLLO',statut='o',into=('APOLLO','WIMS','Non'),
+ fr="Demande ou non de correction de transport (de type APOLLO ou WIMS)"),
+ TypeBibliothequeBase = SIMP (typ='TXM',defaut='APOLLIB_2',statut='o',
+ into=('APOLLIB_1','APOLLIB_2','DRAGON','NJOY_89','NJOY_91','WIMS_D4','WIMS_AECL'),
+ fr="Format de la bibliotheque de donnees nucleaires multigroupes"),
+ TableProbabilites = SIMP (typ='TXM',defaut='CALENDF',statut='o',into=('CALENDF','SUBG','Non'),
+ fr="Calcul des tables de probabilites mathematiques CALENDF ou physiques SUBG"),
+ RegionPeripheriqueCellule = SIMP(typ='R',defaut=0.,statut='o',
+ fr="Proportion de Volume de la zone peripherique des cellules cylindrisees"),
+ OptionMulticellule = SIMP (typ='TXM',defaut='ROTH',statut='o',into=('ROTH','MULTICELLULE'),
+ fr="Option du calcul multicellule"),
+ OptionPij = SIMP (typ='TXM',defaut='&UP0 &ROTH',statut='o',into=('&UP0 &ROTH','&UP0 &HETE','&UP1 &HETE'),
+ fr="Option du calcul des Pij"),
+ ParametresIntegration = SIMP (typ='TXM',defaut='MAIL_INT 7 7 7 7',statut='f',
+ fr="Donnees du maillage d'integration en heterogene"),
+ ProportionNoyauxParDefaut = SIMP (typ='R',defaut=1.E-12,statut='o',
+ fr="Valeur initiale des concentrations des noyaux lourds non definis"),
+ OptionLaplacienB2 = SIMP (typ='TXM',defaut='CRITIQUE',statut='o',into=('CRITIQUE','NUL','IMPOSE'),
+ fr="Option du calcul des fuites homogenes"),
+ LaplacienB2 = SIMP (typ='R',defaut=0.,statut='o',fr="Valeur initiale du laplacien du calcul des fuites"),
+ OrdreAnisotropie = SIMP (typ='I',defaut=1 ,statut='o',fr="Ordre d'anisotropie des sections de transfert"),
+ Autoprotection = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
+ fr="Calcul d'autoprotection ou non"),
+ BlocAutoprotection = BLOC (condition = "Autoprotection=='Oui'",
+ DonneesAutoprotection = SIMP (typ=OptionsAutoprotection,statut='f',max='**',
+ fr="Nom des objets decrivant les isotopes a autoproteger et les options associees"),
+ RecalculAutoprotection = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
+ fr="Demande ou non de recalcul de l'autoprotection")),
+ Equivalence = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'),
+ fr="Demande ou non de calcul d'equivalence"),
+ NbGroupesEquivalence = SIMP (typ='I',max='**',defaut=(2,6,16),statut='o',
+ fr="Liste des nombres de groupes des calculs d'equivalence"),
+ EditionSaphyb = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'),
+ fr="Demande d'edition des bibliotheques de type Saphyb"),
+ EditionAssemblage = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
+ fr="Demande d'edition des sections efficaces homogeneisees sur l'ensemble du domaine"),
+ EditionCellule = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
+ fr="Demande d'edition des sections efficaces homogeneisees par cellule"),
+ EditionFluxDetaille = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
+ fr="Demande d'edition des flux moyens sur l'ensemble du domaine sur la maillage multigroupe detaille"),
+ EditionMilieu = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
+ fr="Demande d'edition des compositions isotopiques detaillees sur tous les milieux de calcul"),
+ EditionTrimaran = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'),
+ fr="Demande d'edition des sections efficaces pour TRIPOLI multigroupe"),
+ SpectreNeutrons = SIMP (typ='TXM',defaut='Prompt',statut='o',into=('Prompt','Retarde'),
+ fr="Type de spectre de neutrons pour le calcul de transport"),
+ ListeIsotopesEdites = SIMP (typ='TXM',statut='f',max='**',fr="Liste des initiales des symboles des isotopes a editer"),
+ FichierBickley = SIMP (typ='TXM',statut='f',fr="Nom du fichier des fonctions Bickley"),
+ EditionIsotopeHomogene = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'),
+ fr="Demande d'edition de constitution d'isotopes homogeneises sous forme APOLLIB"),
+ BlocHomoge = BLOC (condition = "EditionIsotopeHomogene=='Oui'",
+ RepertoireHomoge = SIMP (typ='TXM',statut='f',
+ fr="Nom du repertoire du fichier des isotopes homogenes sous forme APOLLIB"),
+ FichierHomoge = SIMP (typ='TXM',statut='f',fr="Nom du fichier des isotopes homogenes sous forme APOLLIB")),
+ Executable = NUPL (statut = 'f', elements = (
+ SIMP (typ='TXM',fr="Systeme d'exploitation"),
+ SIMP (typ='TXM',fr="Nom du fichier executable"))),
+ ProceduresApollo2 = FACT (statut='f',
+ OptionsListing = SIMP (typ='TXM',statut='f',fr="Commandes Gibiane des options d'edition listing"),
+ Evolution = SIMP (typ='TXM',statut='f',fr="Procedure d'evolution"),
+ Reprise = SIMP (typ='TXM',statut='f',fr="Procedure de reprise"),
+ Equivalence = SIMP (typ='TXM',statut='f',fr="Procedure d'equivalence"),
+ EditionCellule = SIMP (typ='TXM',statut='f',fr="Procedure d'edition par cellule"),
+ EditionHomoge = SIMP (typ='TXM',statut='f',fr="Procedure d'edition des isotopes Homoge")
+ ),
+ ProceduresSunset = FACT (statut='f',
+ Evolution = SIMP (typ='TXM',statut='f',fr="Procedure d'evolution"),
+ Reprise = SIMP (typ='TXM',statut='f',fr="Procedure de reprise")
+ )
+ ) ; # Fin OPTIONS_CODE_RESEAU
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_CODE_COEUR_STATIQUE : Classe de definition des options du code de coeur en statique
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_CODE_COEUR_STATIQUE = OPER (nom="OPTIONS_CODE_COEUR_STATIQUE", op=0, sd_prod=OptionsCodeCoeurStatique, niveau = 'OptionsCodesCalcul',
+ fr = "Definition des options des codes de calcul de coeur en statique",
+ ang = "Definition of core code static options",
+ DeltaReactivite = SIMP (typ='TXM',statut='o',defaut='DeltaRo',into=('DeltaRo','LogKeff'),
+ fr="Methode de calcul de variation de reactivite entre deux etats"),
+ OxMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe x d'un assemblage"),
+ OyMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe y d'un assemblage"),
+ OzMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe z d'un assemblage"),
+ ReactiviteVisee = SIMP (typ='R',defaut= 0.,statut='o',fr="Valeur en pcm de la reactivite visee en calcul critique"),
+ EfficaciteBoreEstimee = SIMP (typ='R',defaut= -6.,statut='o',fr="Valeur estimee en pcm/ppm de l'efficacite du bore"),
+ TitreBoreInitiale = SIMP (typ='R',defaut=600.,statut='o',fr="Valeur estimee en ppm du titre en bore du moderateur"),
+ Factorisation = SIMP (typ='TXM',defaut='Non',statut='o',into=('Coeur2D','Assemblage','Non'),
+ fr="Option ou non de factorisation par le flux fin Coeur ou Assemblage"),
+ AxialTypeReflecteurs = SIMP (typ='TXM',defaut='Equivalent',statut='o',into=('Equivalent','Homogeneise')),
+ RadialTypeReflecteurs = SIMP (typ='TXM',defaut='Equivalent',statut='o',into=('Equivalent','Homogeneise')),
+ ReflAxiauxEquivalents = BLOC (condition = "TypeReflecteursAxiaux=='Equivalent'",
+ ReflecteurInferieur = SIMP (typ=SectionsReflecteur,statut='o'),
+ MaillageInferieur = SIMP (typ=Maillage1D,statut='o'),
+ ReflecteurSuperieur = SIMP (typ=SectionsReflecteur,statut='o'),
+ MaillageSuperieur = SIMP (typ=Maillage1D,statut='o')
+ ),
+ ReflAxiauxHomogeneises = BLOC (condition = "TypeReflecteursAxiaux=='Homogeneise'",
+ AxialAbscisses = SIMP (typ='R' ,statut='o',max='**'),
+ AxialMateriaux = SIMP (typ=Materiau,statut='o',max='**')
+ ),
+ ReflRadialEquivalent = BLOC (condition = "TypeReflecteurRadial=='Equivalent'",
+ ReflecteurRadial = SIMP (typ=SectionsReflecteur,statut='o'),
+ Epaisseur = SIMP (typ='R' ,statut='o')
+ ),
+ ReflRadialHomogeneise = BLOC (condition = "TypeReflecteurRadial=='Homogeneise'",
+ RadialAbscisses = SIMP (typ='R' ,statut='o',max='**'),
+ RadialMateriaux = SIMP (typ=Materiau,statut='o',max='**')
+ ),
+ ApproximationMigration = SIMP (typ='TXM',defaut='SPn',statut='o',into=('SPn','Sn','Diffusion')),
+ BlocSPn = BLOC (condition = "ApproximationTransport=='SPn'",
+ SPnOrdreApproximation = SIMP (typ='I' ,defaut=1,statut='o',fr="Ordre n impair de la methode SPn"),
+ SPnElementFini = SIMP (typ='TXM',defaut='RTN0',statut='o',into=('RTN0','RTN1'),fr="Type d'element fini"),
+ SPnMaxIterDiffusion = SIMP (typ='I' ,defaut=1,into=(1,2,3,4,5),statut='o',
+ fr="Nombre maximal d'iterations de diffusion")
+ ),
+ BlocSn = BLOC (condition = "ApproximationTransport=='Sn'",
+ SnOrdreApproximation = SIMP (typ='I' ,defaut=4,statut='o',fr="Ordre n pair de la methode Sn"),
+ SnElementFini = SIMP (typ='TXM',defaut='RTN',statut='o',into=('RTN','BDM'),fr="Type d'element fini"),
+ SnAcceleration = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),fr="Acceleration par la diffusion"),
+ SnMaxIterDiffusion = SIMP (typ='I' ,defaut=20,statut='o',fr="Nombre maximal d'iterations de calcul de diffusion")
+ ),
+ BlocDiff = BLOC (condition = "ApproximationTransport=='Diffusion'",
+ MaxIterFlux = SIMP (typ='I',defaut= 5 ,statut='o',fr="Maximum d'iterations du calcul de flux"),
+ MaxIterKeff = SIMP (typ='I',defaut=50 ,statut='o',fr="Maximum d'iterations du calcul de keff"),
+ PrecPuissance = SIMP (typ='R',defaut=0.005 ,statut='o',fr="Precision sur la puissance"),
+ PrecKeff = SIMP (typ='R',defaut=0.0001 ,statut='o',fr="Precision sur keff")
+ ),
+ PrecisionValeurPropre = SIMP (typ='R',defaut=1.E-5,statut='o',fr="Precision sur la valeur propre"),
+ PrecisionFlux = SIMP (typ='R',defaut=1.E-3,statut='o',fr="Precision sur le flux"),
+ PrecisionMultigroupe = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision de la resolution multigroupe"),
+ PrecisionIterTermeDiffusion = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision des iterations sur le terme de diffusion"),
+ MaxIterEnergie = SIMP (typ='I',defaut=1,statut='o',
+ fr="Nombre maximal d'iterations pour la resolution Gauss Seidel en energie"),
+ MaxIterTermeDiffusion = SIMP (typ='I',defaut=1,statut='o',fr="Nombre maximal d'iterations sur le terme de diffusion"),
+ MaxIterDecompositionDomaine = SIMP (typ='I',defaut=1,statut='o',fr="Nombre d'iterations de decomposition de domaine"),
+ MaxIterKeffAvantCR = SIMP (typ='I',defaut=1,statut='o',fr="Nombre de calculs de keff avant appel aux contre-reactions")
+ ) ; # Fin OPTIONS_CODE_COEUR_STATIQUE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_CODE_COEUR_CINETIQUE : Classe de definition des options du code de coeur en cinetique
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_CODE_COEUR_CINETIQUE = OPER (nom="OPTIONS_CODE_COEUR_CINETIQUE", op=0, sd_prod=OptionsCodeCoeurCinetique, niveau = 'OptionsCodesCalcul',
+ fr = "Definition des options des codes de calcul de coeur en cinetique",
+ ang = "Definition of core code kinetic options",
+ NombrePrecurseurs = SIMP (typ='I',defaut=6,statut='o',fr="Nombre de groupes de precurseurs"),
+ GestionAutomatiquePasCinetique = SIMP (typ='TXM',defaut='Oui',into=('Oui','Non'),statut='o',
+ fr="Gestion automatique du pas de temps du calcul cinetique"),
+ BlocSansGestionPas = BLOC (condition = "GestionAutomatiquePasCinetique=='Non'",
+ DefinitionPasDeTemps = SIMP (typ='R',max='**',statut='o',
+ fr="Liste de couples (pas de temps, limite superieure de validite du pas de temps)"),
+ ),
+ PrecisionIterationFluxPrecurseurs = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision sur les iterations Flux Precurseurs"),
+ PrecisionParametreGestionAutomatique = SIMP (typ='R',defaut=0.0008,statut='o',fr="Precision sur les iterations Flux Precurseurs"),
+ MaxIterationsFluxPrecurseurs = SIMP (typ='I',defaut=50,statut='o',fr="Nombre maximal d'iterations Flux Precurseurs"),
+ ThetaSchemaCinetique = SIMP (typ='R',defaut=0.5,statut='o',fr="Valeur du parametre theta du schema cinetique")
+ ) ; # Fin OPTIONS_CODE_COEUR_CINETIQUE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_THERMIQUE_THERMOHYDRAULIQUE : Classe de definition des options du code de coeur en cinetique
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_THERMIQUE_THERMOHYDRAULIQUE = OPER (nom="OPTIONS_THERMIQUE_THERMOHYDRAULIQUE", op=0, sd_prod=OptionsThermiqueThermohydraulique, niveau = 'OptionsCodesCalcul',
+ fr = "Definition des options des modules de calcul de coeur thermique et thermohydraulique simplifiees",
+ ang = "Definition of thermohydraulic and thermic module options",
+ HGaineFluide = SIMP (typ='TXM',defaut='DITTUS_BOELTER',into=('FLICA','DITTUS_BOELTER'),statut='o',
+ fr="Option du Coefficient d'echange gaine-fluide (flux < au flux critique)"),
+ HGaineFluideEbullition = SIMP (typ='TXM',defaut='BST',into=('BST','TONG'),statut='o',
+ fr="Option du Coefficient d'echange gaine-fluide (Ebullition en film)"),
+ OptionHGapConstantTransitoire = SIMP (typ='TXM',defaut='Non',into=('Non','Oui'),statut='o',
+ fr="Option de constance du coefficient d'echange JeuPastilleGaine"),
+ OptionHGap = SIMP (typ='TXM',defaut='HGAP_88',into=('EJECTION','TUO2','PLIN_BU','FIXE','HGAP_88'),statut='o',
+ fr="Option de calcul du Coefficient d'echange du jeu pastille-gaine"),
+ BlocHgapTuo2 = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='TUO2'",
+ Tuo2Initiale = SIMP (typ='R',statut='o',
+ fr="Temperature initiale combustible pour le calcul du coefficient d'echange") ),
+ BlocHgapFixe = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='FIXE'",
+ Hgap = SIMP (typ='R',statut='o',defaut=5850.,fr="Valeur imposée du coefficient d'echange") ),
+ ConductiviteCombustible = SIMP (typ='TXM',defaut='HGAP_88',into=('STORA','WESTINGHOUSE','HGAP_88','COMETHE'),statut='o',
+ fr="Option du Coefficient de conductivite du combustible"),
+ CapaciteCalorifiqueCombustible = SIMP (typ='TXM',defaut='UO2_FRAMATOME',into=('UO2_BATES','UO2_FRAMATOME','UO2_THYC'),statut='o',
+ fr="Option du Coefficient de conductivite du combustible"),
+ MateriauGaine = SIMP (typ='TXM',defaut='ZIRCALOY_CYRANO',into=('ZIRCALOY_CYRANO', 'ZIRCALOY_THYC', 'INCOLOY_800',
+ 'CHROMESCO_3', 'INOX_16', 'INOX_321', 'INOX_347', 'INOX_347_OXYDE',
+ 'INCONEL_600', 'NICKEL_75', 'PLATINE'),statut='o',
+ fr="Materiau de la gaine pour le calcul du roCp de la gaine et de sa conductivite"),
+ FluxCritique = SIMP (typ='R',defaut=180.E4,statut='o',fr="Valeur du flux critique en W/m2"),
+ FractionPuissanceCombustible = SIMP (typ='R',defaut=0.974,statut='o',fr="Fraction de la puissance degagee dans le combustible"),
+ Creusement = SIMP (typ='TXM',defaut='Uniforme',statut='o',
+ into=('Uniforme','Runnals','Framatome','Twinkle','Mox','EDF','Specifique')),
+ BlocCreusement = BLOC (condition = "Creusement=='Specifique'",
+ RayonsCreusement = SIMP (typ='R',statut='o',fr="Rayons de definition du creusement de puissance (nz)"),
+ IrradiationsCreusement = SIMP (typ='R',statut='o',fr="Irradiations de definition du creusement de puissance (nbu)"),
+ EnrichissementsCreusement = SIMP (typ='R',statut='o',fr="Enrichissements de definition du creusement de puissance (nen)"),
+ PuissancesUO2 = SIMP (typ='R',max='**',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille UO2"),
+ PuissancesMOX = SIMP (typ='R',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille MOX") ),
+ PastilleDiscretisation = SIMP (typ='I',defaut=4,statut='o',fr="Nombre de points de discretisation radiale de la pastille combustible"),
+ GaineDiscretisation = SIMP (typ='I',defaut=2,statut='o',
+ fr="Nombre de points de discretisation radiale de la gaine de la pastille combustible"),
+ ThermiquePrecision = SIMP (typ='R',defaut=0.1,statut='o',fr="Precision en Celsius du calcul thermique radiale du crayon"),
+ ThermohydrauliquePrecision = SIMP (typ='R',defaut=0.01,statut='o',
+ fr="Precision en Celsius du calcul thermohydraulique de la temperature du moderateur"),
+ MaxIterThermique = SIMP (typ='I',defaut=100,statut='o',
+ fr="Nombre maximum d'iterations du calcul de thermique"),
+ MaxIterThermohydraulique = SIMP (typ='I',defaut=100,statut='o',
+ fr="Nombre maximum d'iterations du calcul de thermohydraulique"),
+ MethodeIntegrationThermohydraulique = SIMP (typ='TXM',defaut='Gauss',statut='o',into=('Gauss','NonGauss'),
+ fr="Methode d'integration thermohydraulique"),
+ PerteDeCharge = SIMP (typ='TXM',defaut='Non',statut='o',into=('Non','Oui'),
+ fr="Prise en compte ou non de la perte de charge axiale"),
+ TableEau = SIMP (typ='TXM',defaut='Thetis',statut='o',into=('Thetis','Interne'),
+ fr="Calcul des caracteristiques du moderateur par THETIS ou par des tables internes")
+ ) ; # Fin OPTIONS_THERMIQUE_THERMOHYDRAULIQUE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_CONTRE_REACTIONS_COEUR : Classe de definition des options du code de coeur en cinetique
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_CONTRE_REACTIONS_COEUR = OPER (nom="OPTIONS_CONTRE_REACTIONS_COEUR", op=0, sd_prod=OptionsContreReactionsCoeur, niveau = 'OptionsCodesCalcul',
+ fr = "Definition des options des modules de calcul de contre-reactions coeur",
+ ang = "Definition of feedback module options",
+ Iter2dCRN = SIMP (typ='I',defaut=30,statut='o',fr="Nombre maximal d'iterations de contre-reactions en 2D, si 0 pas de CRN"),
+ Iter3dCRN = SIMP (typ='I',defaut=15,statut='o',fr="Nombre maximal d'iterations de contre-reactions en 3D, si 0 pas de CRN"),
+ CoeffAttenuation = SIMP (typ='R',defaut=0.8,statut='o',fr="Coefficient d'attenuation des contre-reactions"),
+ PrecisionPuissance = SIMP (typ='R',defaut=1.E-4,statut='o',fr="Precision sur la puissance a la fin des iterations de contre-reactions"),
+ PrecisionKeff = SIMP (typ='R',defaut=1.E-5,statut='o',fr="Precision sur keff a la fin des iterations de contre-reactions"),
+ MethodeCalculSection = SIMP (typ='TXM',defaut='TabulationLineaire',into=('Spline1D','SplinenD','TabulationLineaire'),statut='o',
+ fr="Methode d'interpolation des sections efficaces avec Contre-reactions"),
+ FigerCRN = SIMP (typ='TXM',statut='f',max='**',fr="Liste des parametres de contre-reactions a figer")
+ ) ; # Fin OPTIONS_CONTRE_REACTIONS_COEUR
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe OPTIONS_CODES : Classe de definition des options generales et du type de calcul demande
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+OPTIONS_CODES = OPER (nom="OPTIONS_CODES", op=0, sd_prod=OptionsCodes, niveau = 'OptionsCodesCalcul',
+ fr = "Definition des options des codes de calcul",
+ ang = "Definition of calculation code options",
+ regles = (AU_MOINS_UN('OptionsReseau', 'OptionsStatiqueCoeur', 'OptionsCinetiqueCoeur','OptionsThermo', 'OptionsCRNCoeur'),),
+ OptionsReseau = SIMP (typ=OptionsCodeReseau ,statut='f', fr="Options du code de reseau"),
+ OptionsStatiqueCoeur = SIMP (typ=OptionsCodeCoeurStatique ,statut='f', fr="Options du code de coeur en statique"),
+ OptionsCinetiqueCoeur = SIMP (typ=OptionsCodeCoeurCinetique ,statut='f', fr="Options du code de coeur en cinetique"),
+ OptionsThermo = SIMP (typ=OptionsThermiqueThermohydraulique,statut='f', fr="Options des modules de thermique et thermohydraulique simplifiées)"),
+ OptionsCRNCoeur = SIMP (typ=OptionsContreReactionsCoeur ,statut='f', fr="Prise en compte des contre-reactions ou non")
+ ) ; # Fin OPTIONS_CODES
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESSOURCES_INFORMATIQUES : Classe de definition des ressources de calcul informatiques
+# Cette classe est liee aux possibilites du gestionnaire du traitement par lots et pour le moment
+# les attributs affiches sont dependants de LSF :
+# si on donne un type de serveur : bsub -R "type=USPARC" monjob
+# si on donne un modele de serveur : bsub -R "model=HPK640" monjob
+# si on donne un type de ressource : bsub -R "Solaris" monjob
+# si on donne des machines particulieres : bsub -m " Nommachine1 NomMachine2 " monjob
+# Dans le cas des machines particulieres, il est necessaire de fournir aussi le systeme d'exploitation
+# associe (ceci pour distinguer les fichiers necessaires en entree, leurs noms devant contenir
+# le nom du systeme d'exploitation (les fichiers etant differents a priori suivant l'OS utilise
+# et de format non portable)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESSOURCES_INFORMATIQUES = OPER (nom="RESSOURCES_INFORMATIQUES",sd_prod=RessourcesInformatiques,op=0,niveau = 'ConfigurationInformatique',
+ fr = "Definition des systemes d'exploitation et des calculateurs de l'etude",
+ ang = "Software operating system and computers used",
+ regles = (UN_PARMI('TypesServeursCibles', 'ModelesServeursCibles','OSCible','CalculateursCibles'),),
+ TypesServeursCibles = SIMP (typ='TXM',statut='f',max='**',defaut='USPARC' ,into=('SPARC', 'USPARC', 'PWR2', 'HPPA20', 'ALPHA'),
+ fr="Liste des types de serveurs cibles pour la soumission des calculs"),
+ ModelesServeursCibles = SIMP (typ='TXM',statut='f',max='**',defaut='U2200' ,into=('SS1000E','U2200','IBM3BT','HPK460','DEC5400','U1140'),
+ fr="Liste des modeles de serveurs cibles pour la soumission des calculs"),
+ OSCible = SIMP (typ='TXM',statut='f', defaut='solaris',into=('solaris','aix','usparc','alpha','hpux'),
+ fr="Type de ressource cible pour la soumission des calculs"),
+ CalculateursCibles = NUPL (statut='f',max='**',fr="Liste des noms des calculateurs cibles pour la soumission des calculs",
+ elements = (SIMP (typ='TXM',statut='o',fr="Nom du calculateur cible"),
+ SIMP (typ='TXM',statut='o',fr="Systeme d'exploitation de la machine cible",
+ defaut='solaris',into=('solaris','aix','usparc','alpha','hpux')))
+ )
+ ) ; # Fin RESSOURCES_INFORMATIQUES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DONNEES_CAS_ETUDE : Classe de definition des caracteristiques globales d'un cas de l'etude
+# Definition de la centrale (site, numero de tranche) et numero de campagne d'irradiation
+# Ces caracteristiques d'environnement de l'etude doivent permettre de recuperer l'ensemble
+# des parametres de fonctionnement nominales du reacteur sujet de l'etude (creation de
+# bibliotheques ou calcul de coeur)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DONNEES_CAS_ETUDE = OPER (nom="DONNEES_CAS_ETUDE", op=0, sd_prod=DonneesCasEtude, niveau = 'DonneesEtude',
+ fr = "Definition de la centrale sujet du cas de l'etude et des options globales du cas",
+ ang = "Definition of the power plant and of the global options of the calculation case",
+ TypeCode = SIMP (typ='TXM',defaut='Reseau',into=('Reseau','Coeur'),statut='o'),
+ SiteNucleaire = SIMP (typ=SiteNucleaire,defaut='TRICASTIN',statut='o'),
+ BlocCoeur = BLOC (condition = "TypeCode=='Coeur'",
+ NumeroTranche = SIMP (typ='I',defaut=1,statut='o',fr="Numero de la tranche nucleaire"),
+ NumeroCampagne = SIMP (typ='I',defaut=1,statut='o',fr="Numero de la campagne d'irradiation"),
+ IdentificateurCampagne = SIMP (typ='TXM',defaut='TN101',statut='o',fr="Identificateur de la campagne"),
+ DatesCampagne = SIMP (typ=DatesClesCampagne,statut='f',fr="Dates cles de la campagne"),
+ TypeGestion = SIMP (typ = 'TXM',
+ defaut = '370Q',
+ statut = 'f', fr="Type de gestion du combustible",
+ into = ('310Q','310T','325T','325Q','340Q','345AL',
+ '370Q','370T','400T','HMOX','MOXNT','TMOX')),
+ TypeSchemaGrappe = SIMP (typ = 'TXM',
+ defaut = '900CPYUO2',
+ statut = 'f',fr="Type de schema d'implantation des grappes",
+ into = ('900CP0','900CPYUO2INITIAL','900CPYUO2',
+ '900CPYUO2AL','900CPYMOX','1300','N4')),
+ TypeEvaluationSurete = SIMP (typ='TXM',defaut='900STD',statut='f',fr="Type d'evaluation de surete",
+ into=('900STD','900GARANCE','1300STD','1300GEMMES','N4STD')),
+ ModePilotage = SIMP (typ='TXM',defaut='G',statut='f',into=('A','G','X'),fr="Mode de pilotage de la tranche"),
+ ImplantationGrappe = SIMP (typ=ImplantationGrappesCommande,statut='f',fr="Schema d'implantation des grappes de commande dans le coeur"),
+ PositionAxialeGrappes = SIMP (typ=PositionAxialeGrappesCommande,statut='f',fr="Positions axiales des grappes de commande"),
+ PlanChargement = SIMP (typ=Reseau,statut='o',fr="Plan de chargement du reseau coeur"),
+ Penalites = SIMP (typ=PenaliteAssemblage,statut='f',max='**',fr="Liste des objets PenalitesAssemblage"),
+ ActivitesMesurees = SIMP (typ=ActivitesExperimentales,statut='f',fr="Carte d'activite experimentale"),
+# OptionsStatique = SIMP (typ=OptionsCodeCoeurStatique,statut='f'),
+# OptionsCinetique = SIMP (typ=OptionsCodeCoeurCinetique,statut='f'),
+ CodeCalculC = SIMP (typ='TXM',defaut='CodeSn',statut='o',fr="Type de code de coeur a utiliser")),
+ BlocReseau = BLOC (condition = "TypeCode=='Reseau'",
+ Assemblage = SIMP (typ=(AssemblageType,ReparationAssemblage),statut='o',fr="Objet Assemblage a reparer et a calculer"),
+# Options = SIMP (typ=OptionsCodeReseau,statut='f'),
+ CodeCalculR = SIMP (typ='TXM',defaut='SUNSET',statut='o',fr="Code de reseau a utiliser")),
+ Domaines = SIMP (typ=DecompositionDomaines ,statut='f',fr="Objet definissant la decomposition de domaines"),
+ ConditionsMoyennes = SIMP (typ=ConditionsFonctionnementMoyennes ,statut='f',fr="Objet definissant les conditions de fonctionnement moyennes"),
+ Transitoire = SIMP (typ=ConditionsTransitoire ,statut='f',fr="Objet contenant les conditions du transtoire"),
+ Variations = SIMP (typ=EspaceVariations ,statut='f',fr="Objet definissant l'espace de variations des parametres d'une etude parametrique"),
+ Irradiations = SIMP (typ=DonneesIrradiation ,statut='f',fr="Objet definissant les irradiations du calcul"),
+ Gestion = SIMP (typ=ParametresCalculGestion ,statut='f',fr="Parametres du calcul de gestion"),
+ Ajustement = SIMP (typ=DonneesAjustement ,statut='f',fr="Parametres d'ajustement du calcul"),
+ Accidents = SIMP (typ=DonneesAccidents ,statut='f',fr="Donnees des calculs d'accidents"),
+ Pilotage = SIMP (typ=DonneesPilotageGeneral ,statut='f',fr="Donnees generales de pilotage du reacteur"),
+ Calibrage = SIMP (typ=CalibrageGroupes ,statut='f',fr="Donnees de calibrage des groupes de commande du reacteur"),
+ Stretch = SIMP (typ=ProlongationCampagne ,statut='f',fr="Objet definissant la prolongation de campagne"),
+ Bibliotheques = SIMP (typ=FichierBibliothequeIsotopes ,statut='f',fr="Fichiers des bibliotheques de donnees de base"),
+ Ressources = SIMP (typ=RessourcesInformatiques ,statut='f',fr="Objet definissant les ressources informatiques a utiliser"),
+ ConditionLimite = SIMP (typ=GeneraleConditionLimite ,statut='o',fr="Objet definissant les conditions limites"),
+ Options = SIMP (typ=OptionsCodes ,statut='o',fr="Options des codes impliques dans le calcul"),
+ TypeCalcul = SIMP (typ='TXM',max='**',defaut='Evolution',statut='o',
+ into=('Evolution','EvolutionMicroscopique','EvolutionRefroidissement','Reprise','Statique','Cinetique',
+ 'BoreImpose','BoreCritique') ,fr="Type de calcul demande")
+ ) ; # Fin DONNEES_CAS_ETUDE
+class resultat(TObjet): pass
+class resultat2(resultat): pass
+CALCUL=OPER(nom="CALCUL",op=10,sd_prod=resultat,
+ niveau = 'Operateurs',
+ materiau=SIMP(typ=Materiau),
+ PRESSION=SIMP(defaut=10000.,typ="R")
+ );
+CALCUL2=OPER(nom="CALCUL2",op=11,sd_prod=resultat2,
+ niveau = 'Operateurs',
+ donnee=SIMP(typ=resultat),
+ materiau=SIMP(typ=Materiau),
+ );
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe SECTIONS_REFLECTEUR : Classe de definition des sections efficaces multigroupes des reflecteurs
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+SECTIONS_REFLECTEUR = OPER (nom="SECTIONS_REFLECTEUR",sd_prod=SectionsReflecteur,op=0,niveau = 'SectionsEfficaces',
+ fr = "Definition des sections efficaces equivalentes d'un reflecteur",
+ ang = "Equivalent reflector cross sections",
+ NbGroupesEnergie = SIMP (typ='I' ,statut='o',defaut=2,fr="Nombre de groupes d'energie"),
+ LimitesEnergie = SIMP (typ='R' ,statut='o',defaut=(0.,0.0625,1.E7),max='**',fr="Limites des groupes d'energie"),
+ DeltaLethargie = SIMP (typ='R' ,statut='o',max='**',fr="Largeur en lethargie des groupes d'energie"),
+ Sections = FACT (min=1, max='**', statut='o',
+ TypeSection = SIMP (typ='TXM',fr="Type de section efficace",statut='o',
+ into=( 'Totale','CorrectionTransport',
+ 'Absorption','Capture','N2N',
+ 'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes',
+ 'SectionDiffusionTotale','Transfert')),
+ Valeurs = SIMP (typ='R',min=1,max='**',statut='o',
+ fr="Valeurs des sections efficaces pour le reflecteur")
+ )
+ ) ; # Fin SECTIONS_REFLECTEUR
+# ----------------------------------------------------------------------------------------------------------------------------------
+# Classe MACROLIB : Classe de definition des sections efficaces multigroupes
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+MACROLIB = OPER (nom="MACROLIB",sd_prod=Macrolib,op=0,niveau = 'SectionsEfficaces',
+ fr = "Definition d'une macrolib",
+ ang = "Macrolib Definition",
+ Signature = SIMP (typ='TXM',statut='o',defaut="MACROLIB",fr="Signature de l'objet MACROLIB"),
+ NbMateriaux = SIMP (typ='I' ,statut='o',defaut=1,fr="Nombre de materiaux"),
+ NomsMateriaux = SIMP (typ='TXM',statut='o',max='**',fr="Noms des materiaux"),
+ OrdreAnisotropieMax = SIMP (typ='I' ,statut='o',defaut=1,fr="Ordre d'anisotropie"),
+ MaxIsotopesFissiles = SIMP (typ='I' ,statut='o',fr="Nombre maximum d'isotopes fissiles"),
+ NbTypesSections = SIMP (typ='I' ,statut='o',fr="Nombre de sections efficaces definies"),
+ CorrectionTransport = SIMP (typ='TXM',statut='o',defaut='Non',into=('Oui','Non'),fr="Indication de Correction de transport"),
+ NbGroupesPrecurseurs = SIMP (typ='I' ,statut='o',defaut=6,fr="Nombre de groupes de precurseurs de neutrons retardes"),
+ NbGroupesEnergie = SIMP (typ='I' ,statut='o',defaut=2,fr="Nombre de groupes d'energie"),
+ LimitesEnergie = SIMP (typ='R' ,statut='o',defaut=(0.,0.0625,1.E7),max='**',fr="Limites des groupes d'energie"),
+ DeltaLethargie = SIMP (typ='R' ,statut='o',max='**',fr="Largeur en lethargie des groupes d'energie"),
+ ListeSections = SIMP (typ='TXM',statut='o',max='**',fr="Liste des sections efficaces decrites dans la Macrolib",
+ into=('Totale','CorrectionTransport','Spectre','Vitesse',
+ 'Production','Fission','Energie','Absorption','Capture','N2N',
+ 'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes',
+ 'CoefficientEquivalence','ProductionRetardee','SpectreRetarde',
+ 'SectionDiffusionTotale','Transfert')),
+ ModeEntreeSections = SIMP (typ='TXM',statut='o',defaut='ParGroupe',into=('ParGroupe','ParMilieu'),
+ fr="Choix du mode d'entree des sections par groupe ou par milieu"),
+ SectionsParGroupe = BLOC (condition = "ModeEntreeSections=='ParGroupe'",
+ SectionsG = FACT (min=1, max='**', statut='o',
+ TypeSectionG = SIMP (typ='TXM',fr="Type de section efficace",statut='o',
+ into=('Totale','CorrectionTransport','Spectre','Vitesse',
+ 'Production','Fission','Energie','Absorption','Capture','N2N',
+ 'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes',
+ 'CoefficientEquivalence','ProductionRetardee','SpectreRetarde',
+ 'SectionDiffusionTotale','Transfert')),
+ Groupes = BLOC (condition = "TypeSection=='Transfert'",
+ NumerosGroupes = SIMP (typ='I',min=2,max=2,statut='o',
+ fr="Numeros des groupes de depart et d'arrivee")),
+ Groupe = BLOC (condition = "TypeSection!='Transfert'",
+ NumeroGroupe = SIMP (typ='I',statut='o',fr="Numero de groupe d'energie")),
+ BlocAnisotropie = BLOC (condition = "TypeSection=='Transfert' or TypeSection== 'SectionDiffusionTotale'",
+ OrdreAnisotropie = SIMP (typ='I',statut='o',defaut=1,
+ fr="Ordre d'anisotropie de la section de transfert")),
+ Valeurs = SIMP (typ='R',min=1,max='**',statut='o',
+ fr="Valeurs des sections efficaces pour tous les materiaux")
+ )
+ ),
+ SectionsParMateriau = BLOC (condition = "ModeEntreeSections=='ParMateriau'",
+ Materiau = SIMP (typ='TXM',statut='o',fr="Nom du materiau dont on valorise les sections efficaces"),
+ SectionsM = FACT (min=1, max='**', statut='o',fr="Entree des valeurs de chaque type de section efficace",
+ TypeSectionM = SIMP (typ='TXM',fr="Type de section efficace definie",statut='o',
+ into=('Totale','CorrectionTransport','Spectre','Vitesse',
+ 'Production','Fission','Energie','Absorption','Capture','N2N',
+ 'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes',
+ 'CoefficientEquivalence','ProductionRetardee','SpectreRetarde',
+ 'SectionDiffusionTotale','Transfert')),
+ BlocPasTransfert = BLOC (condition = "TypeSection not in ('Transfert','SectionDiffusionTotale')",
+ ValeursS = SIMP (typ='R',min=1,max='**',statut='o',
+ fr="Valeurs des sections efficaces pour tous les groupes")),
+ BlocDiffusion = BLOC (condition = "TypeSection=='SectionDiffusionTotale'",
+ OrdreAnisotropieD = SIMP (typ='I',statut='o',defaut=1,
+ fr="Ordre d'anisotropie de la section de diffusion totale"),
+ ValeursD = SIMP (typ='R',min=1,max='**',statut='o',
+ fr="Valeurs des sections de diffusion totale pour tous les groupes")),
+ BlocTransfert = BLOC (condition = "TypeSection=='Transfert'",
+ OrdreAnisotropieT = SIMP (typ='I',statut='o',defaut=1,
+ fr="Ordre d'anisotropie de la section de transfert"),
+ ValeursT = NUPL (min=1,max='**',statut='o',
+ elements=(SIMP (typ='I',min=2,max=2,fr="Groupes de depart et d'arrivee"),
+ SIMP (typ='R',fr="Valeur de la section de transfert")))
+ )
+ )
+ )
+ ) ; # Fin MACROLIB
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ASSEMBLAGE_COMBUSTIBLE_REEL : Classe de definition d'un assemblage combustible reel charge ou decharge d'un coeur REP
+# DefautFabrication : Champ texte indicateur precisant si l'assemblage appartient a un lot de fabrication
+# ayant un defaut impactant les resultats neutroniques
+# CleControle : Donnee fournie par la Division Combustible (Fichier ASN) et calculee a partir du nom de l'assemblage
+# IdentificateurInitial : En cas de remplacement de la structure de l'assemblage, ce dernier change de nom
+# (donnee transmise par le site)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ASSEMBLAGE_COMBUSTIBLE_REEL = OPER (nom="ASSEMBLAGE_COMBUSTIBLE_REEL",op=0,sd_prod=AssemblageCombustibleReel,
+ niveau = 'AssemblagesReels',
+ fr = "Definition d'un assemblage combustible a charger, charge en reacteur, ou decharge en coeur, en piscine ou pour retraitement",
+ ang = "Definition of a core loaded fuel assembly",
+ regles = (ENSEMBLE('Identificateur','CampagneResquelettage'),
+ ENSEMBLE('ProgrammeExperimental','NatureElementExperimental'),),
+ IdentInitial = SIMP (typ='TXM',statut='o',fr="Code d'identification initial de l'assemblage combustible en cas de resquelettage"),
+ Identificateur = SIMP (typ='TXM',statut='f',fr="Code d'identification de l'assemblage combustible apres resquelettage"),
+ CampagneResquelettage = SIMP (typ='I',statut='f',fr="Numero de la campagne de rechargement de l'assemblage resquelette"),
+ Constructeur = SIMP (typ='TXM',statut='o',into=('FRAMATOME','SIEMENS','ABB','ENUSA','WESTINGHOUSE','CEA','KWU','EXXON','ANF'),
+ fr="Constructeur de l'assemblage combustible"),
+ TypeTechnologique = SIMP (typ='TXM',defaut='AFA2GE',statut='o',
+ into=('ABB-97','AB-DEMOS','AB-LFA','AEF-XL',
+ 'AFA','AFA-XL','AFA-XL-N4','AFA2G','AFA2GE','AFA2GL','AFA2GLE','AFA3G','AA3GL','AGI','AGI-XL',
+ 'AKA','ALIX','BM','CEA','DEMONSTRATIONS','ENUSA-LFA','HTP','KWU','X1'),
+ fr="Type technologique de l'assemblage"),
+ TypeAssemblage = SIMP (typ=AssemblageType,statut='o',fr="Type de l'assemblage"),
+ CleControle = SIMP (typ='TXM',statut='o',fr="Cle de controle de l'assemblage"),
+ Engagement = SIMP (typ='TXM',statut='o',fr="Engagement de l'assemblage"),
+ NumeroLot = SIMP (typ='I', statut='o',fr="Numero du lot de combustible"),
+ TypeCombustibleDuLot = SIMP (typ='TXM',statut='f',fr="Type combustible et nom du lot (exemple 'MOX FMO1')"),
+ U235EnrichissementTheorique = SIMP (typ='R', statut='o',fr="Enrichissement theorique en U235 du combustible en %"),
+ PuEnrichissementTheorique = SIMP (typ='R', statut='o',fr="Enrichissement theorique en Pu du combustible en %",defaut=0.),
+ MasseTheoriqueNL = SIMP (typ='R', statut='o',fr="Masse theorique en g des noyaux lourds Z > 89 de l'assemblage"),
+ MasseInitialeNL = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g des noyaux lourds de l'assemblage a la date de reference"),
+ U232MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 232",defaut=0.),
+ U234MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 234",defaut=0.),
+ U235MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 235",defaut=0.),
+ U236MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 236",defaut=0.),
+ U238MasseInitiale = SIMP (typ='R', statut='o',fr="Masse initiale reelle en g d'uranium 238",defaut=0.),
+ BlocPu = BLOC (condition = "EnrichissementTheoriquePu > 0.",
+ DateReference = SIMP (typ='I',min=3,max=3,statut='o',fr="Date de reference Jour, Mois, An du lot MOX"),
+ DatePrevDivergence = SIMP (typ='I',min=3,max=3,statut='o',
+ fr="Date de divergence previsionnelle de la tranche chargee de cet assemblage MOX"),
+ DateDivergence = SIMP (typ='I',min=3,max=3,statut='o',
+ fr="Date de divergence reelle de la tranche chargee de cet assemblage MOX"),
+ U235EquivEnrichissement = SIMP (typ='R',statut='f',defaut=3.25,fr="Enrichissement en U235 equivalent"),
+ Pu239MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 239 a la date de reference"),
+ Pu240MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 240 a la date de reference"),
+ Pu241MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 241 a la date de reference"),
+ Pu24MasseInitiale2 = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 242 a la date de reference"),
+ Am241MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g d'americium 241 a la date de reference")
+ ),
+ AbsorbantFixe = SIMP (typ='TXM',statut='f',fr="Texte caracteristique des absorbants fixes inseres dans l'assemblage"),
+ DefautFabrication = SIMP (typ='TXM',statut='f',fr="Libelle du defaut de fabrication"),
+ ProgrammeExperimental = SIMP (typ='TXM',statut='f',fr="Nom du programme experimental s'il s'agit d'un assemblage experimental"),
+ NatureElementExperimental = SIMP (typ='TXM',statut='f',into=('Combustible','Grille','Structure'),fr="Nature de l'element experimental"),
+ LocalisationAssemblage = SIMP (typ='TXM',statut='f',into=('BR Coeur','BK Piscine','HAGUE'),fr="Localisation de l'assemblage"),
+ SituationAdministrative = SIMP (typ='TXM',statut='f',into=('SansParticularite','EnReservePourGestionFuture','EnAttenteReparationExamen',
+ 'aDispositionDAC','AccordCogema','IndisponibleSurSite'),
+ fr="Situation administrative de l'assemblage"),
+ EtatGCN = SIMP (typ='TXM',statut='f',into=('Evacuable 0','En attente 1','Rechargeable 2','PourAccordCogema 3'),
+ fr="Etat de l'assemblage au sens GCN"),
+ ContraintesPhysiques = NUPL ( max = '**',
+ statut = 'f',
+ elements = ( SIMP (typ='TXM',statut='o',fr="Texte precisant la contrainte",
+ into=('NonRechargeable','NonSain','aExaminer','aReparer',
+ 'Repare','aSubiExtraction','aPenaliser','NonInstrumentable','NonGrappable','Resquelette')),
+ SIMP (typ='TXM',statut='o',fr="Premiere Campagne concernee")
+ )
+ ),
+ ContraintesNbCycles = NUPL (max = '**', statut = 'f',
+ fr = "Liste des contraintes en nombre de cycles",
+ elements = ( SIMP (typ='TXM',statut='o',fr="Texte precisant la contrainte",
+ into=('NombreDeCyclesSuccessifsImperatif','NombreMaximumDeCycles')),
+ SIMP (typ='I',statut='o',fr="Nombre de cycles")
+ )
+ ),
+ Campagnes = NUPL (max = '**', statut = 'o',
+ fr = "Liste des campagnes d'irradiation subies par l'assemblage et etats correspondants",
+ elements = ( SIMP (typ='TXM',fr="Identificateur de la campagne"),
+ SIMP (typ='TXM',fr="Etat de l'assemblage")
+ )
+ ),
+ BibliothequesNeutroniques = NUPL (statut='f',elements=(SIMP (typ='TXM',
+ fr="Identificateur de non presence d'absorbants (TBH) ou d'insertion (24B, 12B, 8B, 12P, 12P0P, etc)"),
+ SIMP (typ='TXM',fr="Nom du fichier de la bibliotheque neutronique associee"))
+ ),
+ TypeDescriptionCalcul = SIMP (typ='TXM',statut='f',defaut='HomogeneAssemblage',into=('HomogeneAssemblage','ParCrayon')),
+ OxMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe x de l'assemblage"),
+ OyMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe y de l'assemblage"),
+ OzMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe z de l'assemblage, Origine en bas de la zone active"),
+ IrradiationHomogene = FACT (max='**',statut='f',fr="Taux d'irradiation pseudo-experimentale de l'assemblage",
+ TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"),
+ IrradiationCycle = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage lors du cycle en cours"),
+ Irradiations = SIMP (typ='R', max='**', statut='o', fr="Irradiations des mailles (MWj/t) (en partant du bas et a gauche et par plan)")
+ ),
+ IrradiationCrayon = FACT (max='**',statut='f',fr="Taux d'irradiation pseudo-experimentale des crayons de l'assemblage",
+ TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s de l'assemblage"),
+ IrradiationMoyenne = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"),
+ Irradiations = SIMP (typ='R', max='**', statut='o', fr="Irradiations des crayons (MWj/t) (en partant du bas et a gauche et par plan)")
+ ),
+ FluenceHomogene = FACT (max='**',statut='f',
+ TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s de l'assemblage"),
+ FluenceMoyenne = SIMP (typ='R', statut='o', fr="Fluence moyenne n/kb de l'assemblage"),
+ Fluences = SIMP (typ='R', max='**', statut='o', fr="Fluences des mailles (n/kb) (en partant du bas et a gauche et par plan)")
+ ),
+ FluenceCrayon = FACT (max='**',statut='f',
+ TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s de l'assemblage"),
+ FluenceMoyenne = SIMP (typ='R', statut='o', fr="Fluence moyenne n/kb de l'assemblage"),
+ Fluences = SIMP (typ='R', max='**', statut='o', fr="Fluences des crayons (n/kb) (en partant du bas et a gauche et par plan)")
+ ),
+ CompositionHomogene = FACT (max='**',statut='f',
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb de l'assemblage"),
+ Isotopes = SIMP (typ='TXM', statut='o', max='**',fr="Liste des noms des isotopes"),
+ Concentrations = SIMP (typ='R' , statut='o', max='**',
+ fr="Concentrations des isotopes pour chaque maille radiale et pour chaque plan axial")
+ ),
+ CompositionCrayon = FACT (max='**',statut='f',
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s de l'assemblage"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Isotopes = SIMP (typ='TXM', statut='o', max='**',fr="Liste des noms des isotopes"),
+ Concentrations = SIMP (typ='R' , statut='o', max='**',
+ fr="Concentrations des isotopes pour chaque crayon et pour chaque plan axial (du bas vers le haut)")
+ )
+ ) ; # Fin ASSEMBLAGE_COMBUSTIBLE_REEL
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe REPARATION_ASSEMBLAGE : Classe de definition des donnees de reparation d'un assemblage
+# Donnee de l'assemblage a reparer et des crayons de remplacement
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+REPARATION_ASSEMBLAGE = OPER (nom="REPARATION_ASSEMBLAGE", op=0, sd_prod=ReparationAssemblage, niveau = 'AssemblagesReels',
+ fr = "Donnee de reparation ou de restauration d'un assemblage",
+ ang = "Data for an assembly repair",
+ AssemblageInitial = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o',fr="Type de l'assemblage a reparer"),
+ IrradiationMoyenne = SIMP (typ='R',statut='o',fr="Taux d'irradiation moyenne MWj/t de l'assemblage a reparer"),
+ CrayonRemplacement = FACT (max='**',statut='o',
+ Position = SIMP (typ='I', min=2, max=2, statut='o', fr="Coordonnees x,y du crayon a remplacer dans l'assemblage"),
+ CelluleRemplacement = SIMP (typ=Cellule, statut='o', fr="Cellule de remplacement")
+ )
+ ) ; # Fin REPARATION_ASSEMBLAGE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PENALITE_ASSEMBLAGE : Classe de definition des penalites a appliquer aux puissances des crayons d'un assemblage
+# Trois possibilites : 1) de maniere uniforme
+# 2) a quelques crayons
+# 3) a l'ensemble des crayons et en fonction du taux d'irradiation de l'assemblage
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PENALITE_ASSEMBLAGE = OPER (nom="PENALITE_ASSEMBLAGE", op=0, sd_prod=PenaliteAssemblage, niveau = 'AssemblagesReels',
+ fr = "Penalites dues a la reparation ou a la restauration d'un assemblage",
+ ang = "Penalties applied to a repaired assembly",
+ Assemblage = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o',fr="Type de l'assemblage concerne par les penalites"),
+ regles = (UN_PARMI('UniformeDeltaP', 'CrayonDeltaP','CarteDeltaP'),),
+ UniformeDeltaP = SIMP (typ='R', statut='f', fr="Penalite en % a appliquer de maniere uniforme sur l'assemblage"),
+ CrayonDeltaP = FACT (statut='f',fr="Liste des penalites pour une liste particuliere de crayons d'un assemblage",
+ Crayons = SIMP (typ='I', statut='o', max='**', fr="Numeros des crayons de l'assemblage"),
+ DeltaP = SIMP (typ='R', statut='o', max='**', fr="Penalites en % a appliquer aux crayons listes")),
+ CarteDeltaP = FACT (max='**',statut='f',fr="Penalites pour l'ensemble des crayons de l'assemblage",
+ BuMoyen = SIMP (typ='R', statut='o',fr="Taux d'irradiation MWj/t de l'assemblage a reparer"),
+ DeltaP = SIMP (typ='R', statut='o', max='**', fr="Pourcentage de variation de puissance par crayon en %"))
+) ; # Fin PENALITE_ASSEMBLAGE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTATS_GLOBAUX_COEUR : Classe de stockage des resultats globaux du coeur
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESULTATS_GLOBAUX_COEUR = OPER (nom="RESULTATS_GLOBAUX_COEUR", op=0, sd_prod=ResultatsGlobauxCoeur, niveau = 'Resultats',
+ fr = "Resultats globaux du calcul de coeur",
+ ang = "Global Core Calculation Results",
+ ResultatsCoeur = FACT (max='**',statut='o',fr="Resultats globaux du calcul de coeur calcules a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', max='**', fr="Configuration du coeur : Liste des groupes ou grappes inseres"),
+ PasInsertion = SIMP (typ='I' , statut='o', max='**', fr="Niveau d'insertion des groupes ou grappes inseres en nombre de pas extraits"),
+ IndiceConvergence = SIMP (typ='I' , statut='o', fr="Indice de convergence du calcul"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ NiveauPuissance = SIMP (typ='R' , statut='o', fr="Niveau de puissance du calcul en %"),
+ TypeDeCalcul = SIMP (typ='TXM', statut='o', fr="Type de calcul de coeur Critique ou non"),
+ ParametreCritique = SIMP (typ='TXM', statut='o', fr="Parametre critique du calcul de coeur"),
+ TitreBore = SIMP (typ='R' , statut='o', fr="Titre en bore soluble du calcul de coeur en ppm"),
+ EfficaciteBore = SIMP (typ='R' , statut='o', fr="Efficacite differentielle du bore soluble pcm/ppm"),
+ Reactivite = SIMP (typ='R' , statut='o', fr="Reactivite du calcul en pcm"),
+ B2AxialRapide = SIMP (typ='R' , statut='o', fr="Laplacien axial rapide en cm-2"),
+ B2AxialThermique = SIMP (typ='R' , statut='o', fr="Laplacien axial thermique en cm-2"),
+ XeAntireactivite = SIMP (typ='R' , statut='o', fr="Antireactivite du xenon en pcm"),
+ FxyAssemblage = SIMP (typ='R' , statut='o', fr="Fxy Assemblage"),
+ DopplerCoefficient = SIMP (typ='R' , statut='o', fr="Coefficient Doppler en pcm/C"),
+ CTModerateur = SIMP (typ='R' , statut='o', fr="Coefficient Temperature moderateur en pcm/C"),
+ DopplerPuissance = SIMP (typ='R' , statut='o', fr="Coefficient Puissance Doppler seul en pcm/%P"),
+ CoeffPuissance = SIMP (typ='R' , statut='o', fr="Coefficient Puissance en pcm/%P"),
+ EfficDiffGrappes = SIMP (typ='R' , statut='f', max='**',
+ fr="Efficacites differentielles des grappes inserees, Couples de valeurs (Insertion,Efficacite differentielle)"),
+ Bite = SIMP (typ='R' , statut='f', fr="Position du bite en cours d'evolution, en nombre de pas extraits"),
+ RMBM = SIMP (typ='R' , statut='f', fr="Position Milieu de la bande de manoeuvre du groupe R, en nombre de pas extraits"),
+ FxyCrayon = SIMP (typ='R' , statut='f', fr="Fxy Crayon (apres factorisation eventuelle)"),
+ AssemblageChaud = SIMP (typ='R' , statut='f', fr="Assemblage portant le crayon chaud"),
+ LotAssemblageChaud = SIMP (typ='I' , statut='f', fr="Lot de l'assemblage portant le crayon chaud"),
+ NumeroCrayonChaud = SIMP (typ='I' , statut='f', fr="Numero du crayon chaud dans l'assemblage chaud"),
+ TmEntreeCoeur = SIMP (typ='R' , statut='o', fr="Temperature entree coeur en Celsius"),
+ TmMoyenneCuve = SIMP (typ='R' , statut='o', fr="Temperature moyenne cuve en Celsius"),
+ PressionEntreeCoeur = SIMP (typ='R' , statut='o', fr="Pression entree coeur en bars"),
+ PressionSortieCoeur = SIMP (typ='R' , statut='o', fr="Pression sortie coeur en bars"),
+ AOCoeur = SIMP (typ='R' , statut='o', fr="Axial Offset Coeur en %"),
+ DeltaICoeur = SIMP (typ='R' , statut='o', fr="Desequilibre Axial Coeur"),
+ AOXenon = SIMP (typ='R' , statut='o', fr="Axial Offset Xenon Coeur en %"),
+ AOIode = SIMP (typ='R' , statut='o', fr="Axial Offset Iode Coeur en %"),
+ FzCoeur = SIMP (typ='R' , statut='o', fr="Fz Coeur"),
+ FDH = SIMP (typ='R' , statut='o', fr="Facteur d'elevation d'enthalpie Coeur"),
+ FQ = SIMP (typ='R' , statut='o', fr="Facteur de point chaud Coeur Fq"),
+ FQCote = SIMP (typ='R' , statut='o', fr="Cote du Facteur de point chaud Coeur Fq"),
+ FQAssemblage = SIMP (typ='R' , statut='o', fr="Repere de l'assemblage portant le facteur de point chaud Fq"),
+ FQCrayon = SIMP (typ='R' , statut='o', fr="Numero de crayon de l'assemblage portant le facteur de point chaud Fq"),
+ FQLot = SIMP (typ='R' , statut='o', fr="Numero de lot de l'assemblage portant le facteur de point chaud Fq"),
+ TiltRadial4 = SIMP (typ='R' , statut='o', fr="Desequilibre radial par quart de coeur NE, NO, SO, SE", min=4,max=4),
+ TiltRadial8 = SIMP (typ='R' , statut='o',
+ fr="Desequilibre radial par huitieme de coeur, Origine en Ox et sens trigonometrique", min=8,max=8),
+ BetaTotal = SIMP (typ='R' , statut='f', fr="Contribution des neutrons retardes Beta total Coeur"),
+ BetaEffTotal = SIMP (typ='R' , statut='f', fr="Contribution des neutrons retardes Beta effectif total Coeur"),
+ ImportanceTotale = SIMP (typ='R' , statut='f', fr="Importance totale Coeur"),
+ TempsViePrompt = SIMP (typ='R' , statut='f', fr="Temps de vie effectif des neutrons prompts"),
+ ProductionU5 = SIMP (typ='R' , statut='f', fr="Contribution U235 a la production totale nuSf"),
+ ProductionU8 = SIMP (typ='R' , statut='f', fr="Contribution U238 a la production totale nuSf"),
+ ProductionPu = SIMP (typ='R' , statut='f', fr="Contribution Pu9+Pu0+Pu1+Pu2 a la production totale nuSf"),
+ Lambdai = SIMP (typ='R' , statut='f', fr="Constantes de decroissance moyennes des 6 groupes de precurseurs", min=6,max=6),
+ Betai = SIMP (typ='R' , statut='f', fr="Contribution des neutrons retardes Beta i des 6 groupes de precurseurs", min=6,max=6),
+ BetaiEff = SIMP (typ='R' , statut='f', fr="Contribution des neutrons retardes Beta i effectif des 6 groupes de precurseurs", min=6,max=6),
+ RoNordheim = FACT (statut='f', fr="Reactivite en fct du temps de doublement par la relation de Nordheim",
+ Temps = SIMP (typ='R', statut='o', max='**', fr="Liste des temps de doublement en s"),
+ Ro = SIMP (typ='R', statut='o', max='**', fr="Liste des reactivites correspondantes en pcm"))
+ )
+) ; # Fin RESULTATS_GLOBAUX_COEUR
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTAT_FLUX : Classe de stockage des resultats de flux et des courants (a revoir pour ces derniers)
+# L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESULTAT_FLUX = OPER (nom="RESULTAT_FLUX", op=0, sd_prod=ResultatFlux, niveau = 'Resultats',
+ fr = "Distributions de flux moyens et de courants",
+ ang = "Average Flux and current distributions",
+ NbAssemblages = SIMP (typ='I' , statut='o', fr="Nombre d'assemblages edites"),
+ OzNbValeurs = SIMP (typ='I' , statut='o', fr="Nombre de mailles axiales par assemblage"),
+ OzMaillage = SIMP (typ=Maillage1D , statut='o', fr="Maillage axial d'edition"),
+ NbGroupes = SIMP (typ='I' , statut='o', fr="Nombre de groupes d'energie"),
+ NbFluxBord = SIMP (typ='I' , statut='o', fr="Nombre de flux au bord par assemblage et par groupe d'energie"),
+ NbCourant = SIMP (typ='I' , statut='o', fr="Nombre de courants par assemblage et par groupe d'energie"),
+ Flux = FACT (max='**',statut='o',fr="Flux calcules a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Valeurs = SIMP (typ='R' , statut='o', max='**',
+ fr="Flux moyens par assemblage (en partant du bas a gauche) et par groupe")
+ ),
+ FluxBord = FACT (max='**',statut='f',fr="Flux moyens au bord des assemblages calcules a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Valeurs = SIMP (typ='R' , statut='o', max='**',
+ fr="Flux moyens au bord par assemblage (en partant du bas a gauche) et par groupe")
+ ),
+ Courant = FACT (max='**',statut='f',fr="Courants calcules a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Valeurs = SIMP (typ='R' , statut='o', max='**',
+ fr="Courants detailles par assemblage (en partant du bas a gauche) et par groupe")
+ )
+ ) ; # Fin RESULTAT_FLUX
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTAT_PUISSANCES : Classe de stockage des resultats de puissance
+# L'edition se fait sur les mailles actives du reseau associe a l'etude (PlanChargement)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESULTAT_PUISSANCES = OPER (nom="RESULTAT_PUISSANCES", op=0, sd_prod=ResultatPuissances, niveau = 'Resultats',
+ fr = "Distribution de puissance",
+ ang = "Power distributions",
+ NbAssemblages = SIMP (typ='I' , statut='o', fr="Nombre d'assemblages edites"),
+ OzNbValeurs = SIMP (typ='I' , statut='o', fr="Nombre de mailles axiales par assemblage"),
+ OzMaillage = SIMP (typ=Maillage1D , statut='o', fr="Maillage axial d'edition"),
+ Puissances = FACT (max='**',statut='o',fr="Puissances calculees a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Valeurs = SIMP (typ='R' , statut='o', max='**',
+ fr="Puissances (en partant du bas a gauche) par assemblage")
+ )
+) ; # Fin RESULTAT_PUISSANCES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTAT_RADIAL : Classe de stockage des resultats integres sur une zone axiale particuliere (par defaut, toute la zone active)
+# L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESULTAT_RADIAL = OPER (nom="RESULTAT_RADIAL", op=0, sd_prod=ResultatRadial, niveau = 'Resultats',
+ fr = "Distribution radiale 2D apres integration axiale d'un type de resultat",
+ ang = "Radial Result Distribution",
+ TypeResultat = SIMP (typ='TXM', statut='o', into=('Puissance','Flux','Activite','Irradiation','IrradiationGradient4','Importance',
+ 'FDHmax','FDHcrayon','TauxReaction','TauxReactionParGroupe','SectionEfficace',
+ 'SectionEfficaceParGroupe','Kinf','AntireactiviteXenon','AntireactiviteIode',
+ 'AOPuissance','Tc','TcMax','Tm','TmMax','RoModerateur','Tgaine'),
+ fr="Type de resultat"),
+# BlocGroupe = BLOC (condition = "TypeResultat in ['Flux','TauxReactionParGroupe','SectionEfficaceParGroupe']",
+ NumeroGroupe = SIMP (typ='I' , statut='o', max=2, fr="Numeros de groupe d'energie associes"),
+# ),
+# BlocSection = BLOC (condition = "TypeResultat in ['SectionEfficaceParGroupe','TauxReactionParGroupe','SectionEfficace','TauxReaction']",
+ TypeSection = SIMP (typ='TXM' , statut='o', fr="Type de section concerne"),
+# ),
+ CotesAxiales = SIMP (typ='R', statut='f', min=2,max=2, fr="Cotes axiales de la zone moyennee"),
+ Radial = FACT (max='**',statut='o',fr="Distribution radiale 2D calculee a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Valeurs = SIMP (typ=('R','I'), statut='o', max='**',
+ fr="Valeurs (en partant du bas a gauche) par assemblage")
+ )
+) ; # Fin RESULTAT_RADIAL
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTAT_AXIAL : Classe de stockage des resultats moyennes axialement sur l'ensemble du reseau combustible
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESULTAT_AXIAL = OPER (nom="RESULTAT_AXIAL", op=0, sd_prod=ResultatAxial, niveau = 'Resultats',
+ fr = "Distribution axiale moyenne coeur",
+ ang = "Average Core Axial Distribution",
+ OzNbValeurs = SIMP (typ='I', statut='o', fr="Nombre de mailles axiales"),
+ OzMaillage = SIMP (typ=Maillage1D, statut='o', fr="Maillage axial d'edition"),
+ TypeResultat = SIMP (typ='TXM', statut='o', into=('Puissance','Flux','Xenon','Iode','Courant','Fxy(z)','Q(z)'), fr="Type de resultat"),
+ BlocGroupe = BLOC (condition = "TypeResultat in ('Flux','Courant')",
+ NumeroGroupe = SIMP (typ='I' , statut='o', fr="Numero de groupe d'energie")),
+ Axial = FACT (max='**',statut='o',fr="Distribution axiale a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Valeurs = SIMP (typ='R' , statut='o', max='**',
+ fr="Distribution axiale moyenne (en partant du bas)")
+ )
+ ) ; # Fin RESULTAT_AXIAL
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTAT_IRRADIATIONS : Classe de stockage des resultats de taux d'irradiation
+# L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESULTAT_IRRADIATIONS = OPER (nom="RESULTAT_IRRADIATIONS", op=0, sd_prod=ResultatIrradiations, niveau = 'Resultats',
+ fr = "Distribution de taux d'irradiation",
+ ang = "Burnup distributions",
+ NbAssemblages = SIMP (typ='I', statut='o', fr="Nombre d'assemblages"),
+ OzNbValeurs = SIMP (typ='I', statut='o', fr="Nombre de valeurs d'irradiation par assemblage"),
+ OzMaillage = SIMP (typ=Maillage1D, statut='o', fr="Maillage axial d'edition des irradiations"),
+ Gradient = SIMP (typ='I', statut='o', defaut=4, fr="Nombre de valeurs d'irradiation par assemblage"),
+ Irradiation = FACT (max='**',statut='o',fr="Irradiations calculees a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Valeurs = SIMP (typ='R' , statut='o', max='**',
+ fr="Irradiations (en partant du bas a gauche) par assemblage")
+ )
+) ; # Fin RESULTAT_IRRADIATIONS
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTAT_ACTIVITES : Classe de stockage des resultats d'activite au centre des assemblages instrumentes
+# L'edition se fait sur une liste particuliere d'assemblages du reseau associe a l'etude (PlanChargement)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESULTAT_ACTIVITES = OPER (nom="RESULTAT_ACTIVITES", op=0, sd_prod=ResultatActivites, niveau = 'Resultats',
+ fr = "Distributions d'activite des detecteurs",
+ ang = "Detector Activity distributions",
+ NbAssemblages = SIMP (typ='I' , statut='o', fr="Nombre d'assemblages dont on fournit l'activite calculee"),
+ ReperesAssemblages = SIMP (typ='TXM' , statut='o', fr="Reperes des assemblages dont on fournit l'activite", max='**'),
+ OzNbValeurs = SIMP (typ='I' , statut='o', fr="Nombre de valeurs d'activite par assemblage"),
+ OzMaillage = SIMP (typ=Maillage1D , statut='o', fr="Maillage axial d'edition des activites"),
+ CarteActivite = FACT (max='**' , statut='o',fr="Activites calculees a un instant et pour une configuration donnee",
+ Configuration = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
+ TempsIrradiation = SIMP (typ='R' , statut='o', fr="Temps d'irradiation en s"),
+ IrradiationMoyenne = SIMP (typ='R' , statut='o', fr="Irradiation moyenne MWj/t"),
+ FluenceMoyenne = SIMP (typ='R' , statut='o', fr="Fluence moyenne n/kb"),
+ Valeurs = SIMP (typ='R' , statut='o', max='**',
+ fr="Activites par assemblage (en partant du bas) dans l'ordre de la liste fournie des assemblages")
+ )
+) ; # Fin RESULTAT_ACTIVITES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACTIVITES_EXPERIMENTALES : Classe de stockage des cartes d'activite mesuree au centre des assemblages instrumentes
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACTIVITES_EXPERIMENTALES = OPER (nom="ACTIVITES_EXPERIMENTALES", op=0, sd_prod=ActivitesExperimentales, niveau = 'ResultatsExperimentaux',
+ fr = "Distributions experimentales d'activite mesuree dans les detecteurs mobiles",
+ ang = "Measured Detector Activity distributions",
+ CaracteristiquesCarte = FACT (statut='o',fr="Caracteristiques de la carte d'Activite mesurees",
+ Site = SIMP (typ=SiteNucleaire, statut='o', fr="Site nucleaire de realisation de la carte de flux"),
+ Tranche = SIMP (typ='I', statut='o', fr="Numero de la tranche nucleaire"),
+ Campagne = SIMP (typ='I', statut='o', fr="Numero de la campagne d'irradiation"),
+ IrradiationMoyenne = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t au debut de la carte"),
+ TitreBoreSoluble = SIMP (typ='I', statut='o', fr="Titre en ppm en bore soluble du moderateur"),
+ EnergieProduite = SIMP (typ='R', statut='o', fr="Energie produite en MWh"),
+ NumeroCarte = SIMP (typ='I', statut='o', fr="Numero de la carte de flux"),
+ ValiditeCarte = SIMP (typ='TXM', statut='o', into=('Oui','Non'),fr="Validite ou non de la carte de flux"),
+ DateHeureCarte = SIMP (typ='I', min=5, max=5, statut='o', fr="Date (Jour Mois An) et heure (Heure Minute)de realisation de la carte de flux"),
+ PuissanceElectrique = SIMP (typ='R', statut='o', fr="Puissance electrique MW au debut de la carte de flux"),
+ PuissanceRelative = SIMP (typ='R', statut='o', fr="Puissance relative % au debut de la carte de flux"),
+ ModePilotage = SIMP (typ='TXM', statut='o', fr="Mode de pilotage du reacteur"),
+ GroupesInseres = SIMP (typ='TXM', statut='f', fr="Groupes inseres dans le coeur"),
+ PositionsGroupes = SIMP (typ='I' , statut='f', fr="Positions des groupes inseres dans le coeur en nb de pas extraits"),
+ NbPointsAxiaux = SIMP (typ='I' , statut='o', fr="Nombre de points mesures par trace axiale"),
+ NbPasses = SIMP (typ='I' , statut='o', fr="Nombre de passes de mesures"),
+ NbTracesAxiales = SIMP (typ='I' , statut='o', fr="Nombre de traces axiales d'activite mesuree"),
+ NbThermocouples = SIMP (typ='I' , statut='o', fr="Nombre de thermocouples"),
+ ReperesThermocouples = SIMP (typ='TXM', statut='f', max='**', fr="Reperes des thermocouples dans le coeur"),
+ NumerosThermocouples = SIMP (typ='I' , statut='f', max='**', fr="Numeros des thermocouples dans le coeur")
+ ),
+ ActivitesAxiales = FACT (statut='o',max='**',fr="Trace axiale d'activite mesuree",
+ RepereAssemblage = SIMP (typ='TXM', statut='o', fr="Repere de l'assemblage instrumente"),
+ HeureDeMesure = SIMP (typ='I', min=5, max=5, statut='o', fr="Date (Jour Mois An) et heure (Heure Minute)de realisation de la carte de flux"),
+ NumeroDetecteur = SIMP (typ='I', statut='o', fr="Numero du detecteur de mesure"),
+ NumeroFourreau = SIMP (typ='I', statut='o', fr="Numero de fourreau de mesure"),
+ NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"),
+ PuissanceThermique = SIMP (typ='R', statut='o', fr="Puissance thermique MWth au moment de la passe"),
+ ValeursActivites = SIMP (typ='R', statut='o', max='**',
+ fr="Trace d'activite dans l'assemblage (en partant du bas)"),
+ ),
+ ChambresExternes = FACT (statut='f',max='**',fr="Courants mesures dans les chambres externes",
+ NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"),
+ Courants = SIMP (typ='R', statut='o', max= '**', fr="Valeurs des courants mesures")
+ ),
+ Thermohydraulique = FACT (statut='f',max='**',fr="Temperatures et pressions mesurees dans les boucles primaires",
+ NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"),
+ TemperatureEntree = SIMP (typ='R', statut='o', min=3,max= 4, fr="Valeurs des temperatures mesurees en entree des boucles"),
+ TemperatureSortie = SIMP (typ='R', statut='o', min=3,max= 4, fr="Valeurs des temperatures mesurees en sortie des boucles"),
+ DeltaTemperature = SIMP (typ='R', statut='o', min=3,max= 4, fr="Ecarts de temperature mesurees sur les boucles"),
+ IndiceFctBoucles = SIMP (typ='I', statut='o', min=3,max= 4, fr="Indices de fonctionnement des boucles")
+ ),
+ Thermocouples = FACT (statut='f',max='**',fr="Temperatures mesurees par les thermocouples",
+ NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"),
+ Temperature = SIMP (typ='R', statut='o', max= '**', fr="Temperatures mesurees par les thermocouples")
+ )
+ ) ; # Fin ACTIVITES_EXPERIMENTALES
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTATS_ETUDE : Classe de definition des resultats d'une etude
+# Regroupement des resultats d'une etude en fonction des donnees
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+RESULTATS_ETUDE = OPER (nom="RESULTATS_ETUDE", op=0, sd_prod=ResultatsEtude, niveau = 'Resultats',
+ fr = "Resultats de tous les cas d'une etude",
+ ang = "Cases and associated Results",
+ Resultats = FACT (statut='o',max='**',
+ Donnees = SIMP (typ=DonneesCasEtude ,statut='o',fr="Objet DonneesGeneralesEtude auquel sont associes les objets resultats "),
+ Sections = SIMP (typ=Macrolib ,statut='f',max='**',fr="Liste des Objets Sections issus du calcul"),
+ Flux = SIMP (typ=ResultatFlux ,statut='f',max='**',fr="Liste des Objets Flux issus du calcul"),
+ Puissances = SIMP (typ=ResultatPuissances ,statut='f',max='**',fr="Liste des Objets Puissances"),
+ Activites = SIMP (typ=ResultatActivites ,statut='f',max='**',fr="Liste des Objets Activites"),
+ Irradiations = SIMP (typ=ResultatIrradiations ,statut='f',max='**',fr="Liste des Objets Irradiations"),
+ ResultatsGlobaux = SIMP (typ=ResultatsGlobauxCoeur ,statut='f',max='**',fr="Liste des Objets contenant les resultats globaux"),
+ ResultatsAxiaux = SIMP (typ=ResultatAxial ,statut='f',max='**',fr="Liste des Objets contenant les resultats axiaux"),
+ ResultatsRadiaux = SIMP (typ=ResultatRadial ,statut='f',max='**',fr="Liste des Objets contenant les resultats radiaux"),
+ Accidents = SIMP (typ=AccidentsResultats,statut='f', fr="Resultats des calculs d'accidents"),
+ Gestion = SIMP (typ=ResultatsCalculGestion,statut='f',max='**',fr="Liste des Objets contenant les resultats de calcul de gestion")
+ )
+ ) ; # Fin RESULTATS_ETUDE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DICTIONNAIRE_CAS_ETUDE : Classe de definition de l'ensemble des resultats d'une etude
+# Regroupement des resultats d'une etude en fonction des donnees
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DICTIONNAIRE_CAS_ETUDE = OPER (nom="DICTIONNAIRE_CAS_ETUDE", op=0, sd_prod=DictionnaireCasEtude, niveau = 'EtudeGenerale',
+ fr = "Dictionnaire des resultats de tous les cas d'une etude",
+ ang = "Cases and associated Results dictionary",
+ AssociationDonneesResultats = FACT (statut='o',max='**',
+ Donnees = SIMP (typ=DonneesCasEtude,statut='o',fr="Objet DonneesGeneralesEtude auquel sont associes les objets resultats"),
+ Resultats = SIMP (typ=ResultatsEtude,statut='o',max='**',fr="Liste des Objets regroupement des resultats")
+ )
+ ) ; # Fin DICTIONNAIRE_CAS_ETUDE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PROLONGATION_CAMPAGNE : Classe de definition des donnees de prolongation de campagne
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PROLONGATION_CAMPAGNE = OPER (nom="PROLONGATION_CAMPAGNE", op=0, sd_prod=ProlongationCampagne, niveau = 'DonneesPilotage',
+ fr = "Donnees de la prolongation de campagne ",
+ ang = "Stretch out Data",
+ NbPas = SIMP (typ='I',statut='o',fr="Nombre d'instants (en JEPP) descriptifs de la prolongation de campagne"),
+ Jepp = SIMP (typ='R',statut='o',max='**',fr="Instants descriptifs de la prolongation de campagne, en JEPP"),
+ Puissance = SIMP (typ='R',statut='o',max='**',fr="Niveaux de puissance % correspondant aux Jepp de la prolongation de campagne"),
+ Temperature = SIMP (typ='R',statut='o',max='**',fr="Temperatures Moderateur (Celsius) correspondant aux Jepp de la prolongation de campagne"),
+ PositionRegulation = SIMP (typ='R',statut='o',defaut=221.,fr="Position du groupe de regulation en nombre de pas extraits")
+ ) ; # Fin PROLONGATION_CAMPAGNE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DONNEES_PILOTAGE_GENERAL : Classe de definition des donnees de pilotage general du reacteur
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DONNEES_PILOTAGE_GENERAL = OPER (nom="DONNEES_PILOTAGE_GENERAL", op=0, sd_prod=DonneesPilotageGeneral, niveau = 'DonneesPilotage',
+ fr = "Donnees generales de pilotage du reacteur ",
+ ang = "General Reactor Control Data",
+ RegulationGroupe = SIMP (typ='TXM',statut='o',defaut='R' ,fr="Nom symbolique du groupe de regulation"),
+ PnomDdcLimitInsR = SIMP (typ='R' ,statut='o',defaut=180.,fr="Limite d'insertion R a Pnom DDC en nombre de pas extraits"),
+ PnomFdcLimitInsR = SIMP (typ='R' ,statut='o',defaut=180.,fr="Limite d'insertion R a Pnom FDC en nombre de pas extraits"),
+ PnulDdcLimitInsR = SIMP (typ='R' ,statut='o',defaut=195.,fr="Limite d'insertion R a Pnul DDC en nombre de pas extraits"),
+ PnulFdcLimitInsR = SIMP (typ='R' ,statut='o',defaut=195.,fr="Limite d'insertion R a Pnul FDC en nombre de pas extraits"),
+ PuissanceGroupes = SIMP (typ='TXM',statut='o',max='**',defaut=('G1','G2','N1','N2'),fr="Liste ordonnee des noms symboliques des groupes de compensation de puissance"),
+ Recouvrement = SIMP (typ='I' ,statut='o',max='**',defaut=(100,90,90),
+ fr="Liste ordonnee des valeurs de recouvrement des groupes de compensation de puissance, en nombre de pas d'insertion"),
+ BiteDefinition = SIMP (typ='R' ,statut='o',defaut=-2.5,
+ fr="Efficacite differentielle minimale de la regulation donnant la definition du bite, en pcm/pas"),
+ BiteFDCPosition = SIMP (typ='I' ,statut='o',defaut=225., fr="Position imposee du bite en FDC, en nombre de pas extraits"),
+ BiteLimiteBasse = SIMP (typ='I' ,statut='o',defaut=207., fr="Position limite basse du bite, en nombre de pas extraits"),
+ GrappeExtraite = SIMP (typ='R' ,statut='o',defaut=225., fr="Position Grappe extraite en nombre de pas extraits"),
+ GrappeInseree = SIMP (typ='R' ,statut='o',defaut=5., fr="Position Grappe inseree en nombre de pas extraits"),
+ PositionR1ereDiverg = SIMP (typ='R' ,statut='o',defaut=170., fr="Position du groupe de Regulation R a la 1ere divergence"),
+ BandeManoeuvre = SIMP (typ='R' ,statut='o',defaut=24., fr="Largeur de la bande de manoeuvre du groupe de Regulation R"),
+ ConfigModeA = SIMP (typ='TXM',statut='o',defaut=('D','CD','BCD','ABCD'),max='**', fr="Configuration des groupes en mode A"),
+ ConfigModeG = SIMP (typ='TXM',statut='o',defaut=('G1','G1G2','G1G2N1','G1G2N1N2','R','RG1','RG1G2','RG1G2N1','RG1G2N1N2'),
+ max='**', fr="Configuration des groupes en mode G"),
+ LimiteDomaineFct = SIMP (typ='I',statut='o',defaut=0.05,fr="Limite du domaine de fonctionnement"),
+ NbPtsSpin = SIMP (typ='I',statut='o',defaut=31,fr="Nombre de points SPIN"),
+ SeuilDnbrs = FACT (statut='o',fr="Seuil DNBRS",
+ PtsSpin = SIMP (typ='I',max='**',statut='o',fr="Liste des points Spin"),
+ Seuils = SIMP (typ='R',max='**',statut='o',fr="Liste des seuils DNBRS")),
+ CritereDNBRL = SIMP (typ='R',statut='o', fr="Critere sur le REC"),
+ AlarmeBasDnbr = SIMP (typ='R',statut='o',defaut=2.03, fr="Alarme Bas DNBR"),
+ CsteCalibrage = SIMP (typ='R',statut='o',defaut=-0.492, fr="Constante A de calibrage des grappes SPIN"),
+ DebitCalibrage = SIMP (typ='R',statut='o',defaut=99507., fr="Debit QCAL de calibrage de la puissance SPIN, m3/h"),
+ ConfigEpsilon = SIMP (typ='TXM',statut='o',defaut=('TBH','R','RG1','RG1G2','RG1G2N1','G1G2N1','G1G2','G1'),
+ max='**', fr="Configurations pour le calcul des epsilon(z)"),
+ IrradEpsilon = SIMP (typ='R',statut='o',defaut=(150.,20000.),max='**',fr="Irradiations MWj/t du calcul des epsilon(z)")
+ ) ; # Fin DONNEES_PILOTAGE_GENERAL
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DONNEES_AJUSTEMENT : Classe de definition des donnees d'ajustement des parametres de calcul
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DONNEES_AJUSTEMENT = OPER (nom="DONNEES_AJUSTEMENT", op=0, sd_prod=DonneesAjustement, niveau = 'DonneesEtude',
+ fr = "Donnees generales d'ajustement",
+ ang = "Adjustment Data",
+ PnomReactivite = SIMP (typ='R',statut='o',defaut=0.,fr="Facteur additif correctif de la reactivite du coeur a Pnom, en pcm"),
+ PnulReactivite = SIMP (typ='R',statut='o',defaut=0.,fr="Facteur additif correctif de la reactivite du coeur a Pnul, en pcm"),
+ SectionsBore = SIMP (typ='R',statut='o',defaut=1.,fr="Facteur multiplicatif correctif des sections du bore soluble du moderateur"),
+ AlphaIsotherme = SIMP (typ='R',statut='o',defaut=3.,fr="Facteur additif correctif du coefficient de temperature isotherme en pcm/C"),
+ Grappes = NUPL (max = '**', statut = 'f',
+ fr = "Liste des ajustements associes aux types de grappes de controle",
+ elements = (SIMP (typ='TXM',statut='o',fr="Type de grappe 0P 24B 8B 12B etc."),
+ SIMP (typ='R' ,statut='o',max='**',
+ fr="Coefficients multiplicatifs des sections d'absorption pour tous les groupes d'energie"))),
+ Configurations = NUPL (max = '**', statut = 'f',
+ fr = "Liste des ajustements associes aux configurations de groupes de grappes de controle",
+ elements = (SIMP (typ='TXM',statut='o',fr="Nom de la configuration"),
+ SIMP (typ='R' ,statut='o',max='**',
+ fr="Coefficient multiplicatif de l'efficacites de la configuration"))),
+ Samarium = NUPL (max = '**', statut = 'f',
+ fr = "Liste des couples (Irradiation, Correction Reactivite due au samarium)",
+ elements = (SIMP (typ='R',statut='o',fr="Taux d'irradiation en MWj/t"),
+ SIMP (typ='R',statut='o',fr="Correction de reactivite en pcm au taux d'irradiation precedent")))
+ ) ; # Fin DONNEES_AJUSTEMENT
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACCIDENT_DILUTION : Classe de definition des donnees du calcul d'accident de dilution
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACCIDENT_DILUTION = OPER (nom="ACCIDENT_DILUTION", op=0, sd_prod=AccidentDilution, niveau = 'DonneesDesAccidents',
+ fr = "Donnees de la simulation de l'accident de dilution",
+ ang = "Data for dilution accident simulation",
+ ConfigArretChaud = SIMP (typ='TXM',statut='o',defaut=('R','G1','G2','N1','N2'),max='**',
+ fr="Liste des groupes de grappes de la configuration a l'arret a chaud"),
+ ConfigArretFroid = SIMP (typ='TXM',statut='o',defaut=('G1','G2','N1','N2'),max='**',
+ fr="Liste des groupes de grappes de la configuration a l'arret a froid"),
+ ConfigFroidDepassement = SIMP (typ='TXM',statut='o',defaut=('G1','N1','N2'),max='**',
+ fr="Liste des groupes de la configuration a l'arret a froid en cas de depassement du delai"),
+ ConfigChaudDepassement = SIMP (typ='TXM',statut='o',defaut=('R','G1','N1','N2'),max='**',
+ fr="Liste des groupes de la configuration a l'arret a chaud en cas de depassement du delai"),
+ IrradDepassement = SIMP (typ='TXM',statut='o',max='**', fr="Liste des irradiations de calcul en cas de depassement du delai"),
+ SousCriticiteArret = SIMP (typ='R',statut='o', defaut=1000., fr="Sous-criticite a l'arret en pcm"),
+ CbDilutionCorrection = SIMP (typ='R',statut='o', defaut=100. , fr="Correction du titre en bore de dilution, en ppm"),
+ EfficaciteGrappesCorrection = SIMP (typ='R',statut='o', defaut=10. , fr="Correction de l'efficacite des grappes en %"),
+ DefautPuissanceCorrection = SIMP (typ='R',statut='o', defaut=10. , fr="Correction du defaut de puissance en %"),
+ DecalageGroupes = SIMP (typ='R',statut='o', defaut=10. , fr="Decalage des groupes, en nombre de pas extraits"),
+ PerteEfficacite = SIMP (typ='R',statut='o', defaut=1. , fr="Perte d'efficacite par pas des groupes, en pcm/pas"),
+ PmaxChaud = SIMP (typ='R',statut='o', defaut=35. , fr="Puissance relative maximum en dilution a chaud, en %"),
+ DebitChaud = SIMP (typ='R',statut='o', defaut=31. , fr="Debit de dilution a chaud en m3/h"),
+ DebitFroid = SIMP (typ='R',statut='o', defaut=31. , fr="Debit de dilution a froid en m3/h"),
+ DebitDilution = SIMP (typ='R',statut='o', defaut=60. , fr="Debit de dilution en puissance en m3/h"),
+ RoEauRCV = SIMP (typ='R',statut='o', defaut=1. , fr="Masse volumique de l'eau du ballon RCV en g/cm3"),
+ CRNFroid = SIMP (typ='R',statut='o', defaut=250. , fr="Effet des CRN en dilution a froid en pcm"),
+ TiltFroidMn = SIMP (typ='R',statut='o', defaut=-2. , fr="Provision sur le delai operateur due au tilt radial en accident a froid, en mn"),
+ TiltChaudMn = SIMP (typ='R',statut='o', defaut=-2. , fr="Provision sur le delai operateur due au tilt radial en accident a chaud, en mn"),
+ TiltFroidPpm = SIMP (typ='R',statut='o', defaut=5.,
+ fr="Majoration de la teneur en bore a la criticite due au tilt radial en accident a froid, en ppm"),
+ TiltChaudPpm = SIMP (typ='R',statut='o', defaut=22.,
+ fr="Majoration de la teneur en bore a la criticite due au tilt radial en accident a chaud, en ppm"),
+ TiltPnDdc = SIMP (typ='R',statut='o', defaut=53., fr="Provision due au tilt radial en accident a Pn DDDC, en pcm"),
+ DelaiOperateur = SIMP (typ='R',statut='o', defaut=15., fr="Delai d'intervention en accident a froid ou a chaud en mn"),
+ DelaiRechargement = SIMP (typ='R',statut='o', defaut=20., fr="Delai d'intervention en accident au rechargement en mn")
+ ) ; # Fin ACCIDENT_DILUTION
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACCIDENT_DILUTION_RESULTAT : Classe de definition des resultats du calcul d'accident de dilution
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACCIDENT_DILUTION_RESULTAT = OPER (nom="ACCIDENT_DILUTION_RESULTAT", op=0, sd_prod=AccidentDilutionResultat, niveau = 'ResultatsAccidents',
+ fr = "Resultats de la simulation de l'accident de dilution",
+ ang = "Results from dilution accident simulation",
+ EtatArret = SIMP (typ='TXM',statut='o', fr="Etat d'arret",into=('Chaud','Froid','Rechargement')),
+ BlocRechargement = BLOC (condition = "EtatArret=='Rechargement'",
+ Keff = SIMP (typ='R' ,statut='o', fr="Keff au rechargement"),
+ Ebore = SIMP (typ='R' ,statut='o', fr="Efficacite du bore au rechargement pcm/ppm")),
+ BlocArret = BLOC (condition = "EtatArret!='Rechargement'",
+ Configuration = SIMP (typ='TXM',statut='o', fr="Configuration a l'arret"),
+ Irradiation = SIMP (typ='R' ,statut='o', fr="Irradiation de calcul MWj/t"),
+ CbArret = SIMP (typ='R' ,statut='o', fr="Titre en bore a l'arret en ppm"),
+ Eb = SIMP (typ='R' ,statut='o', fr="Efficacite du bore a l'arret en pcm/ppm"),
+ CbArretUrgence = SIMP (typ='R' ,statut='o', fr="Titre en bore a l'arret d'urgence en ppm"),
+ CbCriticite = SIMP (typ='R' ,statut='o', fr="Titre en bore a l'instant de criticite en ppm"),
+ EfficaciteAU = SIMP (typ='R' ,statut='o', fr="Efficacite de l'arret d'urgence en pcm"),
+ DelaiIntervention = SIMP (typ='R' ,statut='o', fr="Delai d'intervention en mn"),
+ InstantCriticite = SIMP (typ='R' ,statut='f', fr="Instant de criticite en mn"),
+ IrradiationMin = SIMP (typ='R' ,statut='f', fr="Irradiation minimum MWj/t ou le delai d'intervention est suffisant"))
+ ) ; # Fin ACCIDENT_DILUTION_RESULTAT
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACCIDENT_RTV : Classe de definition des donnees du calcul d'accident de RTV
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACCIDENT_RTV = OPER (nom="ACCIDENT_RTV", op=0, sd_prod=AccidentRTV, niveau = 'DonneesDesAccidents',
+ fr = "Donnees de la simulation de l'accident de RTV",
+ ang = "Data for Steam Line Break accident simulation",
+ CodeCalcul = SIMP (typ='TXM' ,statut='o', defaut='COBRA',into=('COBRA','THYC','FLICA'),fr="Debit primaire en m3/h"),
+ DebitPrimaire = SIMP (typ='R' ,statut='o', defaut=70500. ,fr="Debit primaire en m3/h"),
+ DebitContournement = SIMP (typ='R' ,statut='o', defaut=4.5 ,fr="Debit de contournement en % du debit primaire"),
+ PressionPrimaire = SIMP (typ='R' ,statut='o', defaut=57.5 ,fr="Pression primaire en bars"),
+ TmMoyenne = SIMP (typ='R' ,statut='o', defaut=239.8 ,fr="Temperature moyenne moderateur en Celsius"),
+ TmPnul = SIMP (typ='R' ,statut='o', defaut=286. ,fr="Temperature moderateur a Pnul en Celsius"),
+ TmPnom = SIMP (typ='R' ,statut='o', defaut=287.8 ,fr="Temperature moderateur a Pnom en Celsius"),
+ BorePpm = SIMP (typ='R' ,statut='o', defaut=21.9 ,fr="Titre en bore du moderateur en ppm"),
+ NiveauPuissance = SIMP (typ='R' ,statut='o', defaut=14.1 ,fr="Puissance relative en %"),
+ GrappeCoincee = SIMP (typ='TXM' ,statut='o', defaut='F14' ,fr="Repere de la grappe coincee lors de l'accident"),
+ GrappesCorrespondance = SIMP (typ='TXM' ,statut='o', max='**' ,fr="Correspondance entre grappes coincees lors de l'accident"),
+ AnglesBouclesFroides = SIMP (typ='R' ,statut='o', defaut=(0., 120., 240.),max=4,fr="Positions angulaires des boucles froides"),
+ TmBoucles = SIMP (typ='R' ,statut='o', defaut=(216.8,250.8,250.8),max=4,fr="Temperatures des boucles"),
+ TmCanaux = SIMP (typ='R' ,statut='o', max='**',fr="Temperatures moyennes d'entree des canaux COBRA"),
+ TmAssemblages = SIMP (typ='R' ,statut='o', max='**',fr="Temperatures moyennes a l'entree des assemblages du coeur"),
+ OrientationBoucles = NUPL (max='**' ,statut='o',fr="Orientation des boucles suivant la grappe coincee",
+ elements = (SIMP (typ='TXM',statut='o', fr="Repere de la grappe"),
+ SIMP (typ='R' ,statut='o', fr="Orientation des boucles suivant la grappe coincee, en degres")))
+ ) ; # Fin ACCIDENT_RTV
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACCIDENT_CHUTE_GRAPPE : Classe de definition des donnees du calcul d'accident de chute de grappe(s)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACCIDENT_CHUTE_GRAPPE = OPER (nom="ACCIDENT_CHUTE_GRAPPE", op=0, sd_prod=AccidentChuteGrappe, niveau = 'DonneesDesAccidents',
+ fr = "Donnees de la simulation de l'accident de chute de grappes",
+ ang = "Data for rod insertion accident simulation",
+ RecMinimum = SIMP (typ='R',statut='o',defaut=1.225,fr="REC minimum"),
+ RoPenalite = SIMP (typ='R',statut='f',defaut=10.,fr="Penalite en % a appliquer aux variations de reactivite"),
+ RoPenaliteSupp = NUPL (statut='f',fr="Penalite supplementaire suivant la grappe chutee",elements = (
+ SIMP (typ='TXM',statut='o',fr="Repere de la grappe"),
+ SIMP (typ='R' ,statut='o',fr="Penalite supplementaire en %"))),
+ DroiteDetection = SIMP (typ='R',statut='o',min=4,max=4,defaut=(0.92, 50., 1.11, 250.),
+ fr="Droite de detection de la chute de grappe dans le plan (Tilt,DeltaRo)(2 points a definir tilt1,deltaro1 et tilt2,deltaro2)"),
+ CoeffDesalignement = SIMP (typ='R',statut='o',min=8,max=8,defaut=(1.010,1.040,1.040,1.040,1.110,1.040,1.110,1.000),
+ fr="Coefficients de desalignements K1 KP1 K2 KP2 K3 K4 K5 E"),
+ DeltaDnbrThermo = SIMP (typ='R',statut='o',min=2,max=2,defaut=(5.7, 0.),
+ fr="Variation du REC due aux effets thermohydrauliques, pour les chutes d'1 grappe et de 2 grappes"),
+ DeltaDnbrMax = SIMP (typ='R',statut='o',min=2,max=2,defaut=(39., 74.),
+ fr="Variation maximum du REC, pour les chutes d'1 grappe et de 2 grappes"),
+ RecEnveloppe = SIMP (typ='R',statut='o',defaut=(1., 2., 1.5), min=3, max=3,
+ fr="Definition du domaine REC pour la determination de l'enveloppe de la flyspeck : RecMin RecMax Pente"),
+ FxyIncertitude = SIMP (typ='R',statut='o',defaut=(0.,1.03,150.,1.03,2000.,1.061), max='**',
+ fr="Incertitude sur Fxy en fonction de l'irradiation (Couples (MWj/t, Facteur))")
+ ) ; # Fin ACCIDENT_CHUTE_GRAPPE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACCIDENT_CHUTE_GRAPPE_RESULTAT : Classe de definition des resultats du calcul d'accident de chute de grappe(s)
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACCIDENT_CHUTE_GRAPPE_RESULTAT = OPER (nom="ACCIDENT_CHUTE_GRAPPE_RESULTAT", op=0, sd_prod=AccidentChuteGrappeResultat, niveau='ResultatsAccidents',
+ fr = "Resultats de la simulation de l'accident de chute de grappes",
+ ang = "Rod insertion accident simulation Results",
+ Irradiation = SIMP (typ='R' ,statut='o', fr="Irradiation de calcul MWj/t"),
+ Chute = FACT (max='**' ,statut='f', fr="Resultats de la chute d'1 ou 2 grappes",
+ Grappes = SIMP (typ='TXM', statut='o', max=2, fr="Reperes des grappes chutees"),
+ DeltaRo = SIMP (typ='R',statut='o', fr="Antireactivite introduite par la chute des grappes, en pcm"),
+ DeltaRoPen = SIMP (typ='R',statut='o', fr="Antireactivite penalisee introduite par la chute des grappes, en pcm"),
+ Keff = SIMP (typ='R',statut='o', fr="Keff apres chute des grappes"),
+ KeffPen = SIMP (typ='R',statut='o', fr="Keff penalise apres la chute des grappes"),
+ DeltaFxy = SIMP (typ='R',statut='o', fr="Rapport Fxy/FxyTBH"),
+ Tilt2emeMinimum = SIMP (typ='R',statut='o', fr="Valeur du 2eme tilt minimum")),
+ ChuteMax = FACT (statut='f',fr="Valeurs maximales atteintes pour les chutes d'1 ou 2 grappes",
+ FDH = SIMP (typ='R' ,statut='o', fr="Facteur d'elevation d'enthalpie"),
+ DeltaRo = SIMP (typ='R' ,statut='o', fr="Antireactivite introduite par la chute des grappes, en pcm"),
+ DeltaRoPen = SIMP (typ='R' ,statut='o', fr="Antireactivite penalisee introduite par la chute des grappes, en pcm"),
+ Keff = SIMP (typ='R' ,statut='o', fr="Keff apres chute des grappes"),
+ KeffPen = SIMP (typ='R' ,statut='o', fr="Keff penalise apres la chute des grappes"),
+ DeltaFxy = SIMP (typ='R' ,statut='o', fr="Rapport Fxy/FxyTBH"),
+ PositionDeltaRo = SIMP (typ='TXM',statut='o', max=2,fr="Grappes associees a l'antireactivite max"),
+ PositionFxy = SIMP (typ='TXM',statut='o', max=2,fr="Grappes associees au Fxy/FxyTBH max"))
+ ) ; # Fin ACCIDENT_CHUTE_GRAPPE_RESULTAT
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACCIDENT_EJECTION : Classe de definition des donnees du calcul d'accident d'ejection d'une grappe
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACCIDENT_EJECTION = OPER (nom="ACCIDENT_EJECTION", op=0, sd_prod=AccidentEjection, niveau = 'DonneesDesAccidents',
+ fr = "Donnees de la simulation de l'accident d'ejection d'une grappe",
+ ang = "Data for rod ejection accident simulation",
+ Recouvrement = SIMP (typ='R', statut='o', defaut=100., fr="Recouvrement en ejection Mode A, en nombre de pas"),
+ DeltaRoPenalite = SIMP (typ='R', statut='o', defaut=1.10, fr="Facteur multiplicatif general des efficacites des grappes ejectees"),
+ FqPenalite = SIMP (typ='R', statut='o', defaut=1.12, fr="Facteur multiplicatif general des Fq"),
+ DeltaRoPenGrappe = FACT (statut='f', fr="Corrections specifiques aux grappes ejectees : Couples RepereGrappe,PenaliteDeltaro",
+ Grappes = SIMP (typ='TXM', statut='f', max='**', fr="Liste des grappes ejectees"),
+ Penalites = SIMP (typ='R' , statut='f', max='**', fr="Corrections des DeltaRo specifiques aux grappes ejectees")),
+ FqPenGrappe = FACT (statut='f', fr="Corrections specifiques aux grappes ejectees : Couples RepereGrappe,PenaliteFq",
+ Grappes = SIMP (typ='TXM', statut='f', max='**', fr="Liste des grappes ejectees"),
+ Penalites = SIMP (typ='R' , statut='f', max='**', fr="Corrections des Fq specifiques aux grappes ejectees"))
+ ) ; # Fin ACCIDENT_EJECTION
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACCIDENT_EJECTION_RESULTAT : Classe de definition des donnees du calcul d'accident d'ejection d'une grappe
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACCIDENT_EJECTION_RESULTAT = OPER (nom="ACCIDENT_EJECTION_RESULTAT", op=0, sd_prod=AccidentEjectionResultat, niveau = 'ResultatsAccidents',
+ fr = "Resultats de la simulation de l'accident d'ejection d'une grappe",
+ ang = "Rod ejection accident simulation Results",
+ Ejection = FACT (statut='o', max='**', fr="Resultats du calcul d'ejection d'une grappe",
+ Irradiation = SIMP (typ='R' , statut='o', fr="Irradiation MWj/t du calcul d'ejection"),
+ Puissance = SIMP (typ='R' , statut='o', fr="Niveau de du calcul d'ejection"),
+ Configuration = SIMP (typ='TXM', statut='o', max='**',fr="Configuration d'ejection (liste des groupes inseres)"),
+ Grappe = SIMP (typ='TXM', statut='o', fr="Repere de la grappe ejectee"),
+ Fxy = SIMP (typ='R' , statut='o', fr="Fxy dans la configuration d'ejection"),
+ Efficacite = SIMP (typ='R' , statut='o', fr="Efficacite de la grappe ejectee"),
+ Dollar = SIMP (typ='R' , statut='o', fr="Rapport DeltaRoEjectee/BetaTot"),
+ Fq = SIMP (typ='R' , statut='o', fr="Facteur de point chaud Fq"))
+ ) ; # Fin ACCIDENT_EJECTION_RESULTAT
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CRITERES_SURETE : Classe de definition des criteres de surete et des valeurs limites des parametres cles des accidents
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+CRITERES_SURETE = OPER (nom="CRITERES_SURETE", op=0, sd_prod=CriteresSurete, niveau = 'DonneesDesAccidents',
+ fr = "Criteres et valeurs limites des parametres cles de surete",
+ ang = "Safety Criteria and Accident Key Parameter Values",
+ FDHConception = SIMP (typ='R',statut='o',defaut=1.55 ,fr="Facteur d'elevation d'enthalpie de conception"),
+ RECMinimal = SIMP (typ='R',statut='o',defaut=1.225,fr="Valeur minimale du REC"),
+ FxyLimite = FACT (statut='o',fr="Liste des configurations de groupes et Fxy limites associes",
+ Configurations = SIMP (typ='TXM',max='**',statut='o',fr="Liste des configurations de groupes"),
+ Fxy = SIMP (typ='R' ,max='**',statut='o',fr="Valeurs limites de Fxy pour toutes les configurations"))
+ ) ; # Fin CRITERES_SURETE
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe DONNEES_ACCIDENTS : Agregation des donnees de tous les accidents et des criteres de surete
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+DONNEES_ACCIDENTS = OPER (nom="DONNEES_ACCIDENTS", op=0, sd_prod=DonneesAccidents, niveau = 'DonneesDesAccidents',
+ fr = "Package des classes des donnees de simulation de tous les accidents",
+ ang = "All Accident Simulation Data",
+ regles = (AU_MOINS_UN('Dilution', 'RTV', 'ChuteGrappe','Ejection', 'CriteresSurete'),),
+ Dilution = SIMP (typ=AccidentDilution ,statut='f', fr="Donnees de l'accident de dilution"),
+ RTV = SIMP (typ=AccidentRTV ,statut='f', fr="Donnees de l'accident de RTV"),
+ ChuteGrappe = SIMP (typ=AccidentChuteGrappe ,statut='f', fr="Donnees de l'accident de chute de grappe"),
+ Ejection = SIMP (typ=AccidentEjection ,statut='f', fr="Donnees de l'accident d'ejection"),
+ CriteresSurete = SIMP (typ=CriteresSurete ,statut='f', fr="Criteres de surete")
+ ) ; # Fin DONNEES_ACCIDENTS
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe ACCIDENTS_RESULTATS : Classe de definition des options generales et du type de calcul demande
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ACCIDENTS_RESULTATS = OPER (nom="ACCIDENTS_RESULTATS", op=0, sd_prod=AccidentsResultats, niveau = 'ResultatsAccidents',
+ fr = "Package des classes des resultats de simulation de tous les accidents",
+ ang = "All Accident Simulation Results",
+# regles = (AU_MOINS_UN('Dilution', 'RTV', 'ChuteGrappe','Ejection'),),
+ Dilution = SIMP (typ=AccidentDilutionResultat ,statut='f', fr="Resultats de la simulation de l'accident de dilution"),
+# RTV = SIMP (typ=AccidentRTVResultat ,statut='f', fr="Resultats de la simulation de l'accident de RTV"),
+ ChuteGrappe = SIMP (typ=AccidentChuteGrappeResultat ,statut='f', fr="Resultats de la simulation de l'accident de chute de grappe"),
+ Ejection = SIMP (typ=AccidentEjectionResultat ,statut='f', fr="Resultats de la simulation de l'accident d'ejection")
+ ) ; # Fin ACCIDENTS_RESULTATS
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe PARAMETRES_CALCUL_GESTION : Classe de definition de parametres de calcul de gestion du coeur
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+PARAMETRES_CALCUL_GESTION = OPER (nom="PARAMETRES_CALCUL_GESTION", op=0, sd_prod=ParametresCalculGestion, niveau = 'ParametresCalcul',
+ fr = "Parametres divers pour le calcul de gestion du coeur",
+ ang = "Core Management Calculation Parameters",
+ DecalageGroupes = SIMP (typ='R',statut='o',defaut=0.,fr="Valeur du decalage (en nombre de pas) des groupes a chaque campagne"),
+ ErreurMaxLnat = SIMP (typ='R',statut='o',defaut=5.,fr="Erreur maximale (MWj/t) du calcul de la longueur naturelle de campagne"),
+ ErreurBite = SIMP (typ='R',statut='o',defaut=5.,fr="Erreur maximale (en nombre de pas) du calcul de la position du bite en evolution"),
+ LnatCbDdc = SIMP (typ='R',statut='o',defaut=(7500., 758., 12060., 1300.), min=4, max=4,
+ fr="Loi lineaire Lnat fonction de CbDDC : 2 points a fournir (MWj/t, Cb)"),
+ TiltBuMax = SIMP (typ='R',statut='o',defaut=5.,fr="Pourcentage max de desequilibre radial admissible pour les calculs 1/4 coeur"),
+ CalculMarge = FACT (statut='o',fr="Parametres du calcul de la marge d'antireactivite",
+ MajorationDefP = SIMP (typ='R' ,statut='o',defaut= 10.,fr="Majoration % du defaut de puissance"),
+ Redistribution = SIMP (typ='R' ,statut='o',defaut=950.,fr="Effet de redistribution en pcm"),
+ EffetVide = SIMP (typ='R' ,statut='o',defaut= 50.,fr="Effet de vide en pcm"),
+ MinorationEFG = SIMP (typ='R' ,statut='o',defaut= 10.,fr="Minoration de l'efficacite des grappes en %"),
+ Regulation = SIMP (typ='R' ,statut='o',defaut=500.,fr="Antireactivite de la regulation en pcm"),
+ UsureGrappes = SIMP (typ='R' ,statut='o',defaut=100.,fr="Effet de l'usure des grappes en pcm"),
+ Calibrage = SIMP (typ='R' ,statut='o',defaut=280.,fr="Incertitude de calibrage en pcm")),
+ SousCriticiteDdc = SIMP (typ='R',statut='o',defaut=1000.,fr="Sous-criticite initiale en etat d'arret, en pcm"),
+ SousCriticiteFdc = SIMP (typ='R',statut='o',defaut=1770.,fr="Sous-criticite minimale en etat d'arret FDC bore nul, en pcm"),
+ CritereArChaud = SIMP (typ='R',statut='o',defaut= 690.,fr="Cb (ppm) de changement de critere sur la sous-criticite minimale en etat d'arret (Ex: 1000 a 1770 pcm)"),
+ MajorCbArret = SIMP (typ='R',statut='o',defaut= 100.,fr="Majoration (en ppm) des titres en bore en etat d'arret")
+ ) ; # Fin PARAMETRES_CALCUL_GESTION
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe RESULTATS_CALCUL_GESTION : Classe de stockage des resultats de calcul de gestion
+# -----------------------------------------------------------------------------------------------------------------------------------
+RESULTATS_CALCUL_GESTION = OPER (nom="RESULTATS_CALCUL_GESTION", op=0, sd_prod=ResultatsCalculGestion, niveau = 'Resultats',
+ fr = "Resultats divers des calculs de gestion du coeur",
+ ang = "Core Management Calculation Results",
+ Cb1ereDivergence = SIMP (typ='R',statut='f',defaut=0.,fr="Titre en bore a la premiere divergence, en ppm"),
+ CTMNegatif = FACT (statut='f',
+ Cbore = SIMP (typ='R',statut='o',fr="Titre en bore (ppm) garantissant un CTM negatif en DDC Pnul"),
+ Irrad = SIMP (typ='R',statut='o',fr="Irradiation MWj/t au-dela de laquelle le CTM est negatif a Pnul"),
+ Pmax = SIMP (typ='R',statut='o',defaut=100.,fr="Niveau % de puissance limite garantissant un CTM negatif en DDC"),
+ CTMP = SIMP (typ='R',statut='o',max='**',fr="CTM pcm/C en fonction du niveau de puissance en DDC (Serie de couples Pr, CTM)"),
+ Position = SIMP (typ='R',statut='o',max='**',
+ fr="Chevauchement des groupes conduisant a un CTM nul suivant la puissance (Couples Pr, Chevauchement)"))
+ ) ; # Fin RESULTATS_CALCUL_GESTION
+# -----------------------------------------------------------------------------------------------------------------------------------
+# Classe CALIBRAGE_GROUPES : Classe de stockage des positions de calibrage des groupes gris
+# -----------------------------------------------------------------------------------------------------------------------------------
+CALIBRAGE_GROUPES = OPER (nom="CALIBRAGE_GROUPES", op=0, sd_prod=CalibrageGroupes, niveau = 'DonneesPilotage',
+ fr = "Positions de calibrage des groupes gris et coefficients isothermes associes",
+ ang = "Grey Control Rod Cluster Positions Versus Power Level and Isothermal Coefficients",
+ PasPuissance = SIMP (typ='R', statut='o', defaut=5.,
+ fr="Pas en puissance (%) pour la donnee des positions de calibrage"),
+ Calibrage = FACT (statut='o',max='**',
+ Irradiation = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"),
+ Positions = SIMP (typ='I',statut='o',max='**',fr="Positions de calibrage pour tous les niveaux de puissance")),
+ AlphaIso = FACT (statut='o',max='**',
+ Irradiation = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"),
+ Coefficients = SIMP (typ='R',statut='o',max='**',fr="Coefficients isothermes pour tous les niveaux de puissance pcm/C")),
+ Chevauchement = FACT (statut='o',max='**',
+ Irradiation = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"),
+ Pas = SIMP (typ='I',statut='o',max='**',fr="Pas de chevauchement des groupes pour tous les niveaux de puissance")),
+ PnulDDCPosition = SIMP (typ='I',statut='o',max='**',fr="Positions de groupes gris dans les conditions d'essai de demarrage")
+ ) ; # Fin CALIBRAGE_GROUPES
--- /dev/null
+import os
+
+import prefs
+
+rep_cata = prefs.REPINI
+
+# Accès à la documentation
+path_doc = os.path.join(rep_cata,'..','Doc')
+exec_acrobat = "/usr/bin/acroread"
+# Utilisateur/Développeur
+isdeveloppeur = "NON"
+path_cata_dev = "/tmp/cata"
+# Répertoire temporaire
+rep_travail = "/tmp"
+
+# Choix des catalogues
+rep_mat="bidon"
+
+catalogues = (
+ ('DESCARTES','v1',os.path.join(rep_cata,'cata_descartes.py'),'python'),
+ ('DESCARTES','v2',os.path.join(rep_cata,'cata_descartes_new.py'),'python','defaut'),
+ )
+
--- /dev/null
+#!/usr/bin/env python
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+"""
+ Ce module sert à lancer EFICAS configuré pour Descartes
+"""
+# Modules Python
+import sys
+
+# Modules Eficas
+import prefs
+sys.path[:0]=[prefs.INSTALLDIR]
+
+import Editeur
+from Editeur import eficas_go
+
+if len(sys.argv) > 1 :
+ # on veut ouvrir un fichier directement au lancement d'Eficas
+ eficas_go.lance_eficas(code='DESCARTES',fichier = sys.argv[1])
+else:
+ # on veut ouvrir Eficas 'vide'
+ eficas_go.lance_eficas(code='DESCARTES')
+
--- /dev/null
+import os
+
+# REPINI sert à localiser le fichier editeur.ini
+# Obligatoire
+REPINI=os.path.dirname(os.path.abspath(__file__))
+
+# INSTALLDIR sert à localiser l'installation d'Eficas
+# Obligatoire
+INSTALLDIR=os.path.join(REPINI,'..')
+
+# CODE_PATH sert à localiser Noyau et Validation éventuellement
+# non contenus dans la distribution EFICAS
+# Par défaut on utilise les modules de INSTALLDIR
+# Peut valoir None (defaut)
+CODE_PATH = None
+#CODE_PATH = os.path.join(REPINI,'../../Superv')
+
+# ICONDIR sert à localiser le répertoire contenant les icones
+# Par défaut on utilise le répertoire icons dans Editeur
+ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
+
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+
+
--- /dev/null
+version = "6.3.20"
+date = "10/10/2002"
-#@ MODIF Interp Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Tkinter,ScrolledText
+# 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 généraux
représentatif de self.object
--> à surcharger par les différents items
"""
+ raise Exception("MESSAGE AU DEVELOPPEUR : il faut surcharger la methode get_objet_commentarise() pour la classe "+self.__class__.__name__)
pass
def isvalid(self):
def get_fr(self):
""" Retourne le fr de l'objet pointé par self """
- try:
- return self.object.get_fr()
- except:
- return ''
+ return self.object.get_fr()
def get_docu(self):
""" Retourne la clé de doc de l'objet pointé par self """
def GetText(self):
return " "
+ def additem(self,obj,pos):
+ # XXX Passer par addentite de MCList ???
+ self.object.insert(pos,obj)
+ item = self.make_objecttreeitem(self.appli, obj.nom + ":", obj)
+ return item
+
def suppitem(self,item):
if not self.object.isMCList():return 1
try :
+# 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.
+#
+#
+# ======================================================================
-#@ MODIF analyse_catalogue Accas DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 string import split,strip,lowercase,uppercase
import re,string,cPickle,os
from Noyau.N_CR import CR
#
-__Id__="$Id: analyse_catalogue.py,v 1.13.18.3 2001/06/19 12:24:48 iliade Exp $"
-__version__="$Name: FR_28_06_10_00 $"
+__Id__="$Id: analyse_catalogue.py,v 1.2 2002/05/15 15:31:58 eficas Exp $"
+__version__="$Name: $"
#
l_noms_commandes = ['OPER','PROC','MACRO','FORM']
l_noms_composes=['FACT','BLOC','NUPL','FORM']
l=[]
d={}
if len(self.children)==0:
- self.liste = l
- self.dico = d
+ self.ordre_mc = l
+ self.entites = d
return
try :
for child in self.children:
l.append(child.nom)
d[child.nom]=child
- self.liste = l
- self.dico = d
+ self.ordre_mc = l
+ self.entites = d
except:
print 'erreur :',self.nom,self.__class__
for cmd in self.liste_commandes:
l.append(cmd.nom)
d[cmd.nom]=cmd
- self.liste = l
- self.dico = d
+ self.ordre_mc = l
+ self.entites = d
def report(self):
""" retourne l'objet rapport du catalogue de commande """
cata_ordonne = analyse_catalogue(None,fic_cata)
f = open(fic_cata_p,'w+')
p = cPickle.Pickler(f)
- p.dump(cata_ordonne.dico)
+ p.dump(cata_ordonne.entites)
f.close()
if __name__ == "__main__" :
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe APPLI qui est la classe mère de
l'application EFICAS. Elle prend en charge l'organisation générale
"""
# Modules Python
import sys
+import types
import Pmw
import Tkinter
+from tkMessageBox import showinfo,askyesno,showerror
# Modules Eficas
import splash
import prefs
import fontes
+import tooltip
+import properties
+from widgets import Fenetre
+from Misc import MakeNomComplet
+
+VERSION="EFICAS v1.4"
class APPLI:
def __init__ (self,master,code='ASTER',fichier=None) :
self.top.protocol("WM_DELETE_WINDOW",self.exitEFICAS)
self.top.minsize(900,500)
self.top.geometry("900x500")
- self.top.title('EFICAS v1.1 pour '+self.code)
+ self.top.title(VERSION + ' pour '+self.code)
self.top.withdraw()
self.initializeTk(master)
Pmw.initialise(master)
self.format_fichier = Tkinter.StringVar()
self.message=''
self.cree_composants_graphiques()
- self.load_extensions()
- self.affiche_FAQ()
+ self.load_appli_composants() # Creation du BUREAU
splash.fini_splash()
+ self.affiche_FAQ()
+ # AY : cas ou le nom du fichier a été passé en argument
+ if fichier :
+ try :
+ self.bureau.openJDC( str(MakeNomComplet.FILENAME(fichier)) )
+ except Exception,e :
+ showerror( "ARGUMENT INVALIDE", str(e) )
+ # AY : fin
def send_message(self,message):
self.message=message
"""
Cree les constituants de l'application :
- menubar
- - tollbar
+ - toolbar
- bureau
- statusbar
"""
import statusbar
self.statusbar=statusbar.STATUSBAR(self.top)
- def load_extensions(self):
- splash._splash.configure(text = "Chargement des extensions")
- for mname in self.extensions:
- self.load_extension(mname)
+ def load_appli_composants(self):
+ splash._splash.configure(text = "Chargement des appli_composants")
+ for mname in self.appli_composants:
+ self.load_appli_composant(mname)
- def load_extension(self,mname):
+ def load_appli_composant(self,mname):
module=__import__(mname,globals(),locals())
factory=getattr(module,mname.upper())
- extension=factory(self,self.top)
- setattr(self,mname,extension)
- self.fill_menus(extension,extension.menu_defs)
- self.toolbar.creer_boutons_extension(extension.button_defs,extension)
+ appli_composant=factory(self,self.top)
+ setattr(self,mname,appli_composant)
+ self.fill_menus(appli_composant,appli_composant.menu_defs)
+ self.toolbar.creer_boutons_appli_composant(appli_composant.button_defs,appli_composant)
def affiche_FAQ(self):
import faq
root.option_add('*background', 'grey')
root.option_add('*foreground', 'black')
root.option_add('*EntryField.Entry.background', 'white')
+ root.option_add('*Entry*background', 'white')
root.option_add('*Listbox*background', 'white')
root.option_add('*Listbox*selectBackground', '#00008b')
root.option_add('*Listbox*selectForeground', 'white')
"""
Retourne un texte d'informations sur la session courante d'EFICAS
"""
- texte = 'EFICAS v1.1\n\n'
- texte = texte + 'EFICAS est un produit développé par \nEDF-Division Stratégie et Développement\n'
- texte = texte + 'Equipe : MTI/MMN\n\n'
- texte = texte + 'Code utilisé : %s\n' %self.code
+ texte = VERSION + '\n\n'
+ texte = texte + 'EFICAS est un produit développé par \nEDF-R&D\n'
+ texte = texte + 'Equipe : SINETICS\n\n'
+ texte = texte + 'Code utilisé : %s version %s\n' % (self.code,properties.version)
return texte
def efface_aide(self,event):
x=event.x
y=event.y
widget=event.widget
- self.aide = Tkinter.Label(widget ,text = aide,
- bg="yellow",relief="ridge",anchor='w')
- self.aide.place(in_=widget,
- relx=0.5,rely=0.5,anchor='center')
- print aide
- return
-
- def fill_menus(self,extension,defs):
+ self.aide=tooltip.TOOLTIP(widget)
+ self.aide.xoffset = 10
+ self.aide.yoffset = - widget.winfo_height()/2
+ self.aide.setText(aide)
+ self.aide._showTip()
+ return
+
+ def cree_menu(self,menu,itemlist,appli_composant):
+ """
+ Ajoute les items du tuple itemlist
+ dans le menu menu
+ """
+ number_item=0
+ radio=None
+ for item in itemlist:
+ number_item=number_item + 1
+ if not item :
+ menu.add_separator()
+ else:
+ label,method=item
+ if type(method) == types.TupleType:
+ # On a un tuple => on cree une cascade
+ menu_cascade=Tkinter.Menu(menu)
+ menu.add_cascade(label=label,menu=menu_cascade)
+ self.cree_menu(menu_cascade,method,appli_composant)
+ elif method[0] == '&':
+ # On a une chaine avec & en tete => on cree un radiobouton
+ command=getattr(appli_composant,method[1:])
+ menu.add_radiobutton(label=label,command=command)
+ if radio == None:radio=number_item
+ else:
+ command=getattr(appli_composant,method)
+ menu.add_command(label=label,command=command)
+ # Si au moins un radiobouton existe on invoke le premier
+ if radio:menu.invoke(radio)
+
+ def fill_menus(self,appli_composant,defs):
menudict=self.menubar.menudict
for mname,itemlist in defs:
menu=menudict.get(mname)
if not menu:continue
- for item in itemlist:
- if not item :
- menu.add_separator()
- else:
- label,method=item
- command=getattr(extension,method)
- menu.add_command(label=label,command=command)
-
-
+ self.cree_menu(menu,itemlist,appli_composant)
+
+ def update_jdc_courant(self):
+ self.bureau.update_jdc_courant()
+
+ def affiche_alerte(self,titre,message):
+ f=Fenetre(self, titre="Compte-rendu d'erreur", texte = titre + "\n\n" + message)
+ f.wait()
+
+
--- /dev/null
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module sert a retrouver l'ordre des mots cles d'un catalogue de
+ commandes
+"""
+if __name__ == "__main__" :
+ import sys
+ sys.path[:0]=[".."]
+ sys.path[:0]=["../Aster"]
+ sys.path[:0]=["../Saturne"]
+
+from Accas import NUPL
+
+def traite_entiteNUPL(entite):
+ """
+ Fonction speciale pour les nuplets (classe NUPL)
+ Cette fonction ajoute a l'objet entite un attribut de nom ordre_mc
+ qui est une liste vide.
+ """
+ entite.ordre_mc=[]
+
+def traite_entite(entite):
+ """
+ Cette fonction ajoute a l'objet entite un attribut de nom ordre_mc
+ qui est une liste contenant le nom des sous entites dans l'ordre
+ de leur apparition dans le catalogue.
+ L'ordre d'apparition dans le catalogue est donné par l'attribut _no
+ de l'entite
+ La fonction active le meme type de traitement pour les sous entites
+ de entite
+ """
+ l=[]
+ for k,v in entite.entites.items():
+ if isinstance(v,NUPL):
+ traite_entiteNUPL(v)
+ else:
+ traite_entite(v)
+ l.append((v._no,k))
+ l.sort()
+ entite.ordre_mc=[ item for index, item in l ]
+
+def analyse_niveau(cata_ordonne_dico,niveau):
+ """
+ Analyse un niveau dans un catalogue de commandes
+ """
+ if niveau.l_niveaux == ():
+ # Il n'y a pas de sous niveaux
+ for oper in niveau.entites:
+ traite_entite(oper)
+ cata_ordonne_dico[oper.nom]=oper
+ else:
+ for niv in niveau.l_niveaux:
+ analyse_niveau(cata_ordonne_dico,niv)
+
+def analyse_catalogue(cata):
+ """
+ Cette fonction analyse le catalogue cata pour construire avec l'aide
+ de traite_entite la structure de données ordre_mc qui donne l'ordre
+ d'apparition des mots clés dans le catalogue
+ Elle retourne un dictionnaire qui contient toutes les commandes
+ du catalogue indexées par leur nom
+ """
+ cata_ordonne_dico={}
+ if cata.JdC.l_niveaux == ():
+ # Il n'y a pas de niveaux
+ for oper in cata.JdC.commandes:
+ traite_entite(oper)
+ cata_ordonne_dico[oper.nom]=oper
+ else:
+ for niv in cata.JdC.l_niveaux:
+ analyse_niveau(cata_ordonne_dico,niv)
+ return cata_ordonne_dico
+
+
+if __name__ == "__main__" :
+ from Cata import cata_STA6
+ dico=analyse_catalogue(cata_STA6)
+ #import cata_saturne
+ #dico=analyse_catalogue(cata_saturne)
+
+ def print_entite(entite,dec=' '):
+ print dec,entite.nom,entite.__class__.__name__
+ for mocle in entite.ordre_mc:
+ print_entite(entite.entites[mocle],dec=dec+' ')
+
+ for k,v in dico.items():
+ print_entite(v,dec='')
+
+ print dico.keys()
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe BUREAU qui gere les JDC ouverts
"""
# Modules Eficas
import splash
+import prefs
import convert
import generator
+import AIDE
from jdcdisplay import JDCDISPLAY
-from utils import extension,stripPath,save_in_file
+from utils import extension_fichier,stripPath,save_in_file
from widgets import Fenetre,Ask_Format_Fichier
from fenetre_mc_inconnus import fenetre_mc_inconnus
('Mots-clés inconnus','mc_inconnus'),
]
),
+ ('Aide',[
+ ('Aide EFICAS','aideEFICAS'),
+ ]
+ ),
]
button_defs = (('New24',"newJDC","Création d'un nouveau fichier",'always'),
('Delete24',"delete","Supprime l'objet courant",'jdc'),
('Help24',"view_doc","Documentation de l'objet courant",'jdc')
)
+ try:
+ menu_defs=prefs.menu_defs['bureau']
+ except:
+ pass
+ try:
+ button_defs=prefs.button_defs['bureau']
+ except:
+ pass
def __init__(self,appli,parent):
self.parent=parent
def cree_cataitem(self):
"""
- On récupère dans l'extension readercata les variables
+ On récupère dans l'appli_composant readercata les variables
qui servent par la suite pour la création des JDC
"""
self.cataitem=self.appli.readercata.cataitem
CONTEXT.unset_current_step()
J=self.cata[0].JdC(cata=self.cata,
cata_ord_dico=self.cata_ordonne_dico,
- appli=self.appli)
+ appli=self.appli,
+ rep_mat=self.appli.CONFIGURATION.rep_mat,
+ )
self.JDCName=J.nom
+ self.fileName=None
self.ShowJDC(J,self.JDCName)
self.appli.toolbar.active_boutons()
if not hasattr(self,'JDC') : return
titre="rapport de validation du jeu de commandes courant"
cr = self.JDC.report()
+ self.update_jdc_courant()
elif mode == 'CATA':
from Noyau.N_CR import CR
cr = CR()
Demande à l'utilisateur quel JDC existant il veut ouvrir
"""
if self.code == 'ASTER':
- filetypes = ( ("format "+self.appli.format_fichier.get(), ".comm"),)
+ filetypes = ( ("format "+self.appli.format_fichier.get(), ".comm"),("Tous",'*'))
else:
filetypes = ( ("format "+self.appli.format_fichier.get(), ".py"),)
if not hasattr(self,'initialdir'):
- self.initialdir = self.appli.CONFIGURATION.rep_user
+ #self.initialdir = self.appli.CONFIGURATION.rep_user
+ self.initialdir = self.appli.CONFIGURATION.initialdir
if not file :
file = askopenfilename(title="Ouverture d'un fichier de commandes Aster",
defaultextension=".comm",
initialdir = self.initialdir)
if file != '':
self.fileName = file
- e=extension(file)
+ e=extension_fichier(file)
self.JDCName=stripPath(file)
self.initialdir = os.path.dirname(file)
else :
CONTEXT.unset_current_step()
J=self.cata[0].JdC(procedure=text,appli=self.appli,
cata=self.cata,cata_ord_dico=self.cata_ordonne_dico,
- nom = self.JDCName)
+ nom = self.JDCName,
+ rep_mat=self.appli.CONFIGURATION.rep_mat,
+ )
J.analyse()
txt_exception = J.cr.get_mess_exception()
if txt_exception :
# si le JDC ne contient rien (vide), on retourne ici
if len(self.JDC.etapes) == 0 : return
# dans le cas où le JDC est invalide, on affiche son CR
- cr = self.JDC.report()
- if not cr.estvide() :
+ if not self.JDC.isvalid():
+ #cr = self.JDC.report()
+ #if not cr.estvide() :
self.appli.top.update()
self.visuCR(mode='JDC')
sauvegarde = asksaveasfilename(title=titre,
defaultextension=defext,
filetypes = filtyp,
- initialdir = self.appli.CONFIGURATION.rep_user)
+ initialdir = self.appli.CONFIGURATION.initialdir)
+ #initialdir = self.appli.CONFIGURATION.rep_user)
if sauvegarde != '':
if not save_in_file(sauvegarde,self.jdc_fini) :
showinfo("Erreur","Problème à la sauvegarde du fichier "+`sauvegarde`)
"""
if not hasattr(self,'JDC') : return
titre = "fichier de commandes utilisateur"
- texte = self.JDC.procedure
- if texte == None:
+ #texte = self.JDC.procedure
+ #if texte == None:
+ if self.JDCDisplay_courant.fichier == None:
self.appli.affiche_infos("Pas de fichier initial")
- showerror("Impossible de visualiser le fichier initial","EFICAS ne peut visualiser le fichier \
- initial.\nIl s'agit d'un nouveau JDC")
+ showerror("Impossible de visualiser le fichier initial",
+ "EFICAS ne peut visualiser le fichier initial.\nIl s'agit d'un nouveau JDC")
return
+ f=open(self.JDCDisplay_courant.fichier,'r')
+ texte=f.read()
+ f.close()
self.visu_texte_JDC = Fenetre(self.appli,titre=titre,texte=texte)
def affichage_fichier_ini(self):
l_mc = self.JDCDisplay_courant.jdc.get_liste_mc_inconnus()
o = fenetre_mc_inconnus(l_mc)
l = o.wait_new_list()
+ #print "mc_inconnus_new_list: ",l
+ #CCAR: Il n' y a pas de retour vers le JDC
+
+ def aideEFICAS(self):
+ AIDE.go(master=self.parent)
+
+ def update_jdc_courant(self):
+ self.JDCDisplay_courant.update()
+
-#@ MODIF catabrowser Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
# Modules Python
import os
from Accas import FACT,BLOC,SIMP
#
-__version__="$Name: V1_1p1 $"
-__Id__="$Id: catabrowser.py,v 1.1.1.1 2001/12/04 15:38:22 eficas Exp $"
+__version__="$Name: $"
+__Id__="$Id: catabrowser.py,v 1.2 2002/05/15 15:31:58 eficas Exp $"
#
class Tableau:
incr = 10
def get_liste_mc_ordonnee(self):
""" Retourne la liste ordonnée (suivant le catalogue) brute des fils
de l'entite courante """
- if hasattr(self.objet_cata_ordonne,'liste'):
- return self.objet_cata_ordonne.liste
+ if hasattr(self.objet_cata_ordonne,'ordre_mc'):
+ return self.objet_cata_ordonne.ordre_mc
else :
l=self.objet_cata_ordonne.keys()
l.sort()
l_cles_fils = self.get_liste_mc_ordonnee()
for k in l_cles_fils :
if type(self.objet_cata_ordonne) == types.InstanceType :
- objet_cata = self.objet_cata_ordonne.dico[k]
+ objet_cata = self.objet_cata_ordonne.entites[k]
else :
objet_cata = self.objet_cata_ordonne.get(k,None)
item = make_objecttreeitem(self.appli,k + " : ",self.d_fils[k],
-#@ MODIF cataediteur Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
# Modules Python
import os
import definition_cata
#
-__version__="$Name: V1_1p1 $"
-__Id__="$Id: cataediteur.py,v 1.1.1.1 2001/12/04 15:38:22 eficas Exp $"
+__version__="$Name: $"
+__Id__="$Id: cataediteur.py,v 1.2 2002/05/15 15:31:58 eficas Exp $"
#
Fonte_Niveau = fontes.canvas_gras_italique
texte_infos = ''
for e in cmd.entites.keys() :
if e == name :
- texte_infos=cmd.entites[e].fr
+ texte_infos=getattr(cmd.entites[e],'fr')
break
if texte_infos == '' : texte_infos="Pas d'infos disponibles"
self.parent.appli.affiche_infos(texte_infos)
for k in l_cles_fils :
typ = TYPE_COMPLET(dico_fils[k])
if type(self.objet_cata_ordonne) == types.InstanceType :
- objet_cata = self.objet_cata_ordonne.dico[k]
+ objet_cata = self.objet_cata_ordonne.entites[k]
else :
objet_cata = self.objet_cata_ordonne.get(k,None)
item = make_objecttreeitem(self.appli,typ + " : ",dico_fils[k],objet_cata_ordonne = objet_cata)
return self.object.get_valeur_attribut('nom')
def get_liste_mc_ordonnee(self):
- return self.objet_cata_ordonne.liste
+ return self.objet_cata_ordonne.ordre_mc
def GetIconName(self):
if self.object.isvalid():
for k in l_cles_fils :
typ = TYPE_COMPLET(dico_fils[k])
if type(self.objet_cata_ordonne) == types.InstanceType :
- objet_cata = self.objet_cata_ordonne.dico[k]
+ objet_cata = self.objet_cata_ordonne.entites[k]
else :
objet_cata = self.objet_cata_ordonne.get(k,None)
item = make_objecttreeitem(self.appli,typ + " : ",dico_fils[k],objet_cata_ordonne = objet_cata)
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la fonction utilitaire centerwindow
qui sert à centrer une fenetre
-#@ MODIF compobloc Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Tkinter import *
import Pmw
-#@ MODIF compocomm Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Tkinter import *
import Pmw
Retourne la liste des fils de self
"""
return []
+
+
+ def get_objet_commentarise(self):
+ """
+ La méthode get_objet_commentarise() de la classe compocomm.COMMTreeItem
+ surcharge la méthode get_objet_commentarise de la classe Objecttreeitem.ObjectTreeItem
+ elle a pour but d'empecher l'utilisateur final de commentariser un commentaire.
+ """
+ raise Exception( 'Citoyen : tu peux "commentariser" une commande MAIS PAS UN COMMENTAIRE' )
import Extensions
treeitem =COMMTreeItem
-#@ MODIF compocommandecomm Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Tkinter import *
import Pmw
-#@ MODIF compofact Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Pmw
import Objecttreeitem
-#@ MODIF compoformule Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
# ======================================================================
"""
Ce module contient les classes permettant de définir les objets graphiques
self.option_menu_typ.place(relx=0.33,rely=0.23)
Label(self.frame_valeur,text= 'Arguments : ').place(relx=0.,rely=0.40)
self.entry_arg = Entry(self.frame_valeur)
- Label(self.frame_valeur,text= 'Expression : ').place(relx=0.,rely=0.55)
+ Label(self.frame_valeur,text= 'Expression : ').place(relx=0.,rely=0.65)
self.entry_exp = Entry(self.frame_valeur)
# binding sur les entries
self.entry_nom.bind("<Return>",self.verif_nom)
# 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_exp.place(relx=0.35,rely=0.55,relwidth=0.55)
- # affichage d'une phrase d'aide
- 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.7,anchor='n')
+
+ # affichage d'une phrase d'aide pour les arguments
+ aide = """Entrer les arguments sous la forme
+TYPE : VARIABLE séparés par des virgules (,)
+Exemple REEL:INST,ENTIER:COEF """
+ Label(self.frame_valeur,text=aide, justify="l").place(relx=0.5,rely=0.47,anchor='n')
+
+ self.entry_exp.place(relx=0.35,rely=0.65,relwidth=0.60)
+ # 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')
+
# affichage des nom, type retourné, arguments et corps de la FORMULE
self.display_valeur()
# affichage des boutons
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.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')
def change_valeur(self):
"""
-#@ MODIF compojdc Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
-#XXX est ce utile ?from Tkinter import *
import Pmw
import Objecttreeitem
import panels
from widgets import ListeChoix
-# XXX temporairement supprimé :from Accas import commentaire
class JDCPanel(panels.OngletPanel):
def init(self):
-#@ MODIF compomacro Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
# Modules Python
import os,sys,string
import Tkinter
import Pmw
from tkFileDialog import *
-from tkMessageBox import showinfo,showerror
+from tkMessageBox import showinfo,showerror,askyesno
import traceback
# Modules Eficas
import fontes
import compooper
import convert
-from widgets import Fenetre
+from widgets import Fenetre,FenetreYesNo
#
-__version__="$Name: V1_1p1 $"
-__Id__="$Id: compomacro.py,v 1.1.1.1 2001/12/04 15:38:22 eficas Exp $"
+__version__="$Name: $"
+__Id__="$Id: compomacro.py,v 1.9 2002/11/12 18:36:08 eficas Exp $"
#
class MACROPanel(panels.OngletPanel):
nb.add('Concept', tab_text='Nommer concept')
if ficini == 1:
nb.add('Fichierinit',tab_text = 'Fichier %s' %self.node.item.get_nom())
- nb.add('Commande', tab_text='Insérer Commande')
+ nb.add('Commande', tab_text='Nouvelle Commande')
nb.add('Commentaire',tab_text='Paramètre/Commentaire')
panneau=Pmw.PanedWidget(nb.page("Mocles"),
orient='horizontal')
self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
nb.tab('Mocles').focus_set()
nb.setnaturalsize()
- #self.monmenu=Tkinter.Menu(self.parent.appli.menubar,tearoff=0)
- #self.monmenu.add_command(label='Build',command=self.Build)
- #self.monmenu.add_command(label='View',command=self.View)
- #self.parent.appli.add_menu(label="Macro",menu=self.monmenu)
self.affiche()
- def Build(self):
- print "Build"
- self.node.item.object.Build()
-
- def View(self):
- print "View"
- MacroDisplay(self.parent.appli,self.node.item.object,self.node.item.object.nom)
-
def makeFichierPage(self,page):
- """\r
+ """
Affiche la page d'onglet correspondant au changement du fichier
dont a besoin la macro\r
"""
Tkinter.Button(page,text='Valider',command = self.change_fichier_init).place(relx=0.3,rely=0.8)
Tkinter.Button(page,text='Browse',command = self.browse_fichier_init).place(relx=0.5,rely=0.8)
Tkinter.Button(page,text='Annuler',command = self.annule_fichier_init).place(relx=0.7,rely=0.8)
- if hasattr(self.node.item.object,'fichier_init'):\r
- if self.node.item.object.fichier_init :\r
- self.entry.insert(0,self.node.item.object.fichier_init)
+ if hasattr(self.node.item.object,'fichier_ini'):
+ if self.node.item.object.fichier_ini :
+ self.entry.insert(0,self.node.item.object.fichier_ini)
self.entry.focus()
def convert_file(self,file):
"""
Effectue le changement de fichier d'initialisation s'il est valide
"""
- if not hasattr(self.node.item.object,'fichier_init'):
- self.node.item.object.fichier_init=None
- old_fic = self.node.item.object.fichier_init
+ if not hasattr(self.node.item.object,'fichier_ini'):
+ self.node.item.object.fichier_ini=None
+ self.node.item.object.fichier_text=None
+ self.node.item.object.fichier_err="Le fichier n'est pas defini"
+ self.node.item.object.contexte_fichier_init={}
+ self.node.item.object.recorded_units={}
+ self.node.item.object.fichier_unite="PasDefini"
+ import Extensions.jdc_include
+ self.node.item.object.JdC_aux=Extensions.jdc_include.JdC_include
+
+ old_fic = self.node.item.object.fichier_ini
+ old_text = self.node.item.object.fichier_text
+ old_err = self.node.item.object.fichier_err
+ old_context=self.node.item.object.contexte_fichier_init
+ old_units=self.node.item.object.recorded_units
+ old_etapes=self.node.item.object.etapes
+
new_fic = self.entry.get()
if not os.path.isfile(new_fic) :
showinfo("Fichier introuvable","Le fichier que vous avez saisi\n"+
return
# On convertit le fichier
text=self.convert_file(new_fic)
- if not text:return
+ # Si probleme a la lecture-conversion on arrete le traitement
+ if not text:
+ return
+ self.node.item.object.recorded_units={}
+
try:
- self.node.item.object.make_contexte(new_fic,text)
- self.parent.appli.affiche_infos("Fichier %s modifié" %self.node.item.get_nom())
+ self.node.item.object.make_contexte_include(new_fic,text)
except:
- #traceback.print_exc()
+ # Erreurs lors de l'evaluation de text dans un JDC auxiliaire
+ self.parent.appli.affiche_infos("Fichier invalide")
l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
- showinfo("Fichier invalide",
- "Erreur dans l'interprétation du nouveau fichier ...\n"+
- "L'ancien va être restauré\n"+string.join(l))
+ f=FenetreYesNo(self.parent.appli,titre="Fichier invalide : voulez vous retablir l ancien fichier ?",
+ texte="Erreur dans l'interprétation du nouveau fichier ...\n\n"+string.join(l),
+ yes="Retablir",no="Changer")
+ f.wait()
+ reponse=f.result
+ if reponse:
+ # On retablit l'ancien fichier
+ self.entry.delete(0,Tkinter.END)
+ self.node.item.object.fichier_ini=old_fic
+ self.node.item.object.fichier_text=old_text
+ self.node.item.object.fichier_err=old_err
+ self.node.item.object.contexte_fichier_init=old_context
+ self.node.item.object.recorded_units=old_units
+ self.node.item.object.etapes=old_etapes
+ self.parent.appli.affiche_infos("Fichier invalide ... Ancien fichier restauré")
+ if old_fic:
+ self.entry.insert(0,self.node.item.object.fichier_ini)
+ else:
+ # On conserve la memoire du nouveau fichier
+ # mais on n'utilise pas les concepts crees par ce fichier
+ # on met l'etape en erreur : fichier_err=string.join(l)
+ self.node.item.object.init_modif()
+ self.node.item.object.fichier_ini=new_fic
+ self.node.item.object.fichier_text=text
+ self.node.item.object.fichier_err=string.join(l)
+ # On enregistre la modification de fichier
+ self.node.item.object.record_unite()
+ #self.node.item.object.etapes=[]
+ self.node.item.object.g_context={}
+ # Le contexte du parent doit etre reinitialise car les concepts produits ont changé
+ self.node.item.object.parent.reset_context()
- self.entry.delete(0,Tkinter.END)
- self.parent.appli.affiche_infos("Fichier invalide")
+ self.node.item.object.old_contexte_fichier_init=old_context
+ self.node.item.object.contexte_fichier_init={}
+ self.node.item.object.reevalue_sd_jdc()
- if old_fic:
- # On convertit le fichier
- #text=self.convert_file(old_fic)
- #if not text:return
- #self.node.item.object.make_contexte(old_fic,text)
- self.node.item.object.fichier_init=old_fic
- self.entry.insert(0,self.node.item.object.fichier_init)
- self.parent.appli.affiche_infos("Fichier invalide ... Ancien fichier restauré")
+ self.node.item.object.fin_modif()
+ self.parent.appli.affiche_infos("Fichier invalide ... Nouveau fichier mémorisé")
+ self.node.update()
return
- # si on passe ici, c'est que le new_fic a bien été correctement
- # interprété ...
- self.node.item.object.fichier_init = new_fic
- # il faut lancer la réévaluation de tout le jdc ...
+
+ # L'evaluation de text dans un JDC auxiliaire s'est bien passé
+ # on peut poursuivre le traitement
+ self.node.item.object.init_modif()
+ self.node.item.object.fichier_ini = new_fic
+ self.node.item.object.fichier_text=text
+ self.node.item.object.fichier_err=None
+ # On enregistre la modification de fichier
+ self.node.item.object.record_unite()
+ # Le contexte du parent doit etre reinitialise car les concepts produits ont changé
+ self.node.item.object.parent.reset_context()
+
+ # Si des concepts ont disparu lors du changement de fichier, on demande leur suppression
+ self.node.item.object.old_contexte_fichier_init=old_context
self.node.item.object.reevalue_sd_jdc()
- self.node.racine.update()
+
+ self.node.item.object.fin_modif()
+ self.parent.appli.affiche_infos("Fichier %s modifié" %self.node.item.get_nom())
+ self.node.update()
def annule_fichier_init(self,event=None):
- """ retaure dans self.entry le nom de fichier_init"""
+ """ Restaure dans self.entry le nom de fichier_init"""
self.entry.delete(0,Tkinter.END)
- self.entry.insert(0,self.node.item.object.fichier_init)
+ self.entry.insert(0,self.node.item.object.fichier_ini)
def browse_fichier_init(self,event=None):
"""
Propose à l'utilisateur une Bsf et retourne le fichier
sélectionné dans self.entry
"""
- file = askopenfilename(title="Choix du fichier %s" %self.node.item.get_nom(),
- # filetypes = ( ("Aster", ".comm"),("Python", ".py")),
- # defaultextension=".comm"
- )
+ file = askopenfilename(title="Choix du fichier %s" %self.node.item.get_nom())
if file != '' :
self.entry.delete(0,Tkinter.END)
self.entry.insert(0,file)
Retourne le nom de l'icône à afficher dans l'arbre
Ce nom dépend de la validité de l'objet
"""
- if self.object.isactif():
+ if not self.object.isactif():
+ return "ast-white-square"
+ else:
if self.object.isvalid():
return "ast-green-square"
else:
return "ast-red-square"
- else:
- return "ast-white-square"
def GetLabelText(self):
""" Retourne 3 valeurs :
# item.object = MCSIMP, MCFACT, MCBLOC ou MCList
if item.object.isoblig() :
self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
+ print "Impossible de supprimer un mot-clé obligatoire"
return 0
else :
self.object.suppentite(item.object)
def verif_condition_bloc(self):
return self.object.verif_condition_bloc()
- def nomme_sd(self,nom):
- """ Lance la méthode de nommage de la SD """
- return self.object.nomme_sd(nom)
-
def get_noms_sd_oper_reentrant(self):
return self.object.get_noms_sd_oper_reentrant()
-import Accas
+class INCLUDETreeItem(MACROTreeItem):
+ rmenu_specs=[("View","makeView")]
+
+ def makeView(self,appli):
+ nom=self.object.nom
+ if hasattr(self.object,'fichier_ini'):
+ if self.object.fichier_ini is None:
+ nom=nom+' '+"Fichier non défini"
+ else:
+ nom=nom+' '+self.object.fichier_ini
+ macrodisplay.makeMacroDisplay(appli,self.object,nom)
+
+class INCLUDE_MATERIAUTreeItem(INCLUDETreeItem): pass
+class POURSUITETreeItem(INCLUDETreeItem): pass
+
treeitem=MACROTreeItem
+def treeitem(appli, labeltext, object, setfunction=None):
+ if object.nom == "INCLUDE_MATERIAU":
+ return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction)
+ elif object.nom == "INCLUDE":
+ return INCLUDETreeItem(appli, labeltext, object, setfunction)
+ elif object.nom == "POURSUITE":
+ return POURSUITETreeItem(appli, labeltext, object, setfunction)
+ else:
+ return MACROTreeItem(appli, labeltext, object, setfunction)
+
+import Accas
objet=Accas.MACRO_ETAPE
-class MacroDisplay:
- def __init__(self,appli,jdc,nom_jdc):
- self.fenetre = Tkinter.Toplevel()
- self.fenetre.configure(width = 800,height=500)
- self.fenetre.protocol("WM_DELETE_WINDOW", self.quit)
- self.fenetre.title("Visualisation Macro_Etape")
- self.jdc=jdc
- self.nom_jdc=nom_jdc
- self.appli=appli
- self.mainPart=Pmw.ScrolledCanvas(self.fenetre,
- hull_width=600,
- hull_height=500,
- borderframe=1)
- self.canvas=self.mainPart.component('canvas')
- Pmw.Color.changecolor(self.canvas,background='gray95')
- self.mainPart.pack(padx=10,pady=10,fill = 'both', expand = 1)
- self.item=MACRO2TreeItem(self.appli,nom_jdc,jdc)
- import treewidget
- self.tree = treewidget.Tree(self.appli,self.item,self.mainPart,command=None)
- self.tree.draw()
-
- def quit(self):
- self.fenetre.destroy()
-
+import macrodisplay
-#@ MODIF compomclist Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Tkinter import *
import Pmw
Retourne 1 si l'objet pointé par self est un MCFact, 0 sinon
"""
return 0
-
+
+ def isMCList(self):
+ """
+ Retourne 1 si l'objet pointé par self est une MCList, 0 sinon
+ """
+ return 1
+
+ def additem(self,obj,pos):
+ """
+ Ajoute un objet MCFACT à la MCList (self.object) à la position pos
+ """
+ self.object.init_modif()
+ obj.verif_existence_sd()
+ obj.reparent(self.object.parent)
+ self.object.insert(pos,obj)
+ item = self.make_objecttreeitem(self.appli, obj.nom + ":", obj)
+ return item
+
+ def suppitem(self,item):
+ """
+ Retire un objet MCFACT de la MCList (self.object)
+ """
+ self.object.init_modif()
+ self.object.remove(item.object)
+ # la liste peut être retournée vide !
+ message = "Mot-clé " + item.object.nom + " supprimé"
+ self.appli.affiche_infos(message)
+ return 1
+
import Accas
treeitem = MCListTreeItem
objet = Accas.MCList
-#@ MODIF componiveau Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Tkinter import *
-#@ MODIF componuplet Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
# Modules Python
import types
import panels
#
-__version__="$Name: V1_1p1 $"
-__Id__="$Id: componuplet.py,v 1.1.1.1 2001/12/04 15:38:22 eficas Exp $"
+__version__="$Name: $"
+__Id__="$Id: componuplet.py,v 1.1.1.1 2002/03/26 09:08:46 eficas Exp $"
#
myrepr = Repr()
-#@ MODIF compooper Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Tkinter import *
import Pmw
+import traceback
import Objecttreeitem
import panels
import fontes
choix = self.listbox.getcurselection()[0]
self.valeur_choisie.set(choix)
except:
- pass
+ traceback.print_exc()
+
def choose_valeur_from_list(self,command):
try:
self.valeur_choisie.set(choix)
apply(command,(),{})
except:
- pass
+ traceback.print_exc()
class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
panel = OPERPanel
def nomme_sd(self,nom):
""" Lance la méthode de nommage de la SD """
- return self.object.nomme_sd(nom)
+ test,mess= self.object.nomme_sd(nom)
+ if test:self.object.parent.reset_context()
+ return test,mess
def is_reentrant(self):
return self.object.is_reentrant()
commande_comment.jdc = commande_comment.parent = self.object.jdc
return commande_comment
+ def replace_child(self,old_item,new_item):
+ """
+ Remplace old_item.object par new_item.object dans les fils de self.object
+ """
+ index = self.object.mc_liste.index(old_item.object)
+ self.object.init_modif()
+ self.object.mc_liste.remove(old_item.object)
+ self.object.mc_liste.insert(index,new_item.object)
+ self.object.fin_modif()
+
import Accas
treeitem = EtapeTreeItem
objet = Accas.ETAPE
-#@ MODIF compoparam Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
# ======================================================================
"""
Ce module contient les classes permettant de définir les objets graphiques
-#@ MODIF compoparameval Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
# ======================================================================
"""
Ce module contient les classes permettant de définir les objets graphiques
-#@ MODIF compoproc Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 Tkinter import *
import Pmw
nb.pack(fill = 'both', expand = 1)
self.nb=nb
nb.add('Mocles', tab_text='Ajouter mots-clés')
- nb.add('Commande', tab_text='Insérer Commande')
+ nb.add('Commande', tab_text='Nouvelle Commande')
nb.add('Commentaire',tab_text='Paramètre/Commentaire')
panneau=Pmw.PanedWidget(nb.page("Mocles"),
orient='horizontal')
def verif_condition_bloc(self):
return self.object.verif_condition_bloc()
- def nomme_sd(self,nom):
- """ Lance la méthode de nommage de la SD """
- return self.object.nomme_sd(nom)
-
def get_noms_sd_oper_reentrant(self):
return self.object.get_noms_sd_oper_reentrant()
-#@ MODIF composimp Editeur DATE 05/09/2001 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
+# Modules Python
import string,types,os
from Tkinter import *
import Pmw
from tkFileDialog import *
from tkMessageBox import showinfo
from copy import copy,deepcopy
+import traceback
+# Modules Eficas
import Objecttreeitem
import prefs
import panels
nb.setnaturalsize()
# ----------------------------------------------------------------------------------------
-# Méthodes utlisées pour l'affectation de la valeur donnée par l'utilisateur
+# Méthodes utilisées pour l'affectation de la valeur donnée par l'utilisateur
# au mot-clé courant
# ----------------------------------------------------------------------------------------
def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
"""
- Enregistre val comme valeur de self.node.item.object SANS faire de test de validité
+ Enregistre val comme valeur de self.node.item.object SANS
+ faire de test de validité
"""
if self.parent.modified == 'n' : self.parent.init_modif()
if name != None:
valeur =name
else :
+ #XXX Pourquoi proceder ainsi ? Il n'est pas possible de mettre
+ # None comme valeur du mot cle.
+ # Probablement que ce debranchement permet de mettre record_valeur
+ # en call back, il faut donc aller chercher la valeur dans l'entry
valeur= self.entry.get()
self.entry.delete(0,END)
+ #XXX Pour permettre la mise a None du mot cle, on remet None si valeur == ''
+ if valeur == '':valeur=None
self.node.item.set_valeur(valeur,evaluation='non')
self.parent.appli.affiche_infos(mess)
if self.node.item.get_position()=='global':
self.node.racine.verif_all()
else :
self.node.parent.verif()
+ self.node.update()
if self.node.item.isvalid():
self.node.parent.select()
- self.node.update()
+
# ----------------------------------------------------------------------------------------
-# Méthodes utlisées pour la manipulation des items dans les listes de choix
+# Méthodes utilisées pour la manipulation des items dans les listes de choix
# ----------------------------------------------------------------------------------------
def selectValeur(self,name):
self.selected_valeur = name
return
liste_valeurs.append(self.selected_choix)
liste_choix = self.Liste_choix.get_liste()
- liste_choix.remove(self.selected_choix)
+ # PN en attendant mieux
+ if "TYPE_ANCRAGE" not in self.node.item.get_genealogie():
+ liste_choix.remove(self.selected_choix)
self.Liste_valeurs.put_liste(liste_valeurs)
self.Liste_choix.put_liste(liste_choix)
self.selected_choix = None
def deselectChoix(self,name):
self.selectChoix = None
+ def raisecmd(self,page):
+ try:
+ self.entry.focus()
+ except:
+ pass
+
class SHELLPanel(newSIMPPanel):
"""
Classe Panel utilisé pour les mots-clés simples qui attendent un shell pour valeur
Méthode qui récupère la liste des valeurs donnée par l'utilisateur
et l'affecte au mot-clé courant.
"""
- l_valeurs = self.Liste_valeurs.get_liste()
+ l1_valeurs = self.Liste_valeurs.get_liste()
+ # PN : remplacement des paramétres par leur nom (cf get_liste)
+ #
+ l_valeurs=[]
+ for val in l1_valeurs :
+ if val.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
+ v=val.nom
+ else:
+ v=val
+ l_valeurs.append(v)
+
+ print "l_valeurs = ", l_valeurs
longueur = len(l_valeurs)
if longueur < min or longueur > max :
self.parent.appli.affiche_infos("Valeur refusée : nombre d'éléments incorrect dans la liste")
else:
valeur = None
self.parent.appli.affiche_infos("Valeur acceptée")
+ print "valeur = " ,valeur
self.record_valeur(valeur)
if self.node.item.isvalid():
self.node.parent.select()
- # fermeture de la fenêtre de sélection\r
- if self.ajout_valeurs:\r
- self.ajout_valeurs.quit()\r
+ # fermeture de la fenêtre de sélection
+ if self.ajout_valeurs:
+ self.ajout_valeurs.quit()
def annule_modifs_valeur(self):
"""
RAZ de la liste des valeurs (annule toutes les valeurs saisies par l'utilisateur)
"""
self.node.select()
- # fermeture de la fenêtre de sélection\r
- if self.ajout_valeurs:\r
- self.ajout_valeurs.quit()\r
+ # fermeture de la fenêtre de sélection
+ if self.ajout_valeurs:
+ self.ajout_valeurs.quit()
def traite_reel(self,valeur):
"""
"""
Génère la page de saisie de plusieurs valeurs parmi un ensemble discret
de possibles
- """\r
+ """
self.ajout_valeurs = None
# On récupère la bulle d'aide du panneau, l'objet, min et max (cardinalité de la liste),
# la liste des choix et la liste des valeurs
+ aide = self.get_aide()
+ aide = justify_text(texte=aide)
bulle_aide=self.get_bulle_aide()
objet_mc = self.node.item.get_definition()
min,max = self.node.item.GetMinMax()
self.frame_choix.place(relx=0.6,rely=0.05,relwidth=0.35,relheight=0.7)
self.frame_boutons = Frame(page)
self.frame_boutons.place(relx=0.35,rely=0.87,relwidth=0.3,relheight=0.1)
+ self.frame_aide = Frame(page)
+ self.frame_aide.place(relx=0.1,rely=0.75,relwidth=0.9,relheight=0.1)
liste_commandes_valeurs = (("<Button-1>",self.selectValeur),
("<Button-3>",self.deselectValeur),
("<Double-Button-1>",self.sup_valeur))
for fram in (self.frame_valeurs,self.frame_boutons_fleches,self.frame_choix,self.frame_boutons):
fram.bind("<Button-3>",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
fram.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
+ self.frame_aide.update()
+ self.aide = Label(self.frame_aide,
+ text = aide,
+ justify='center',
+ anchor='center',
+ wraplength=int(self.frame_aide.winfo_width()*0.8))
+ self.aide.place(relx=0.5,rely=0.5,anchor='center',relwidth=1)
+
+ def get_aide(self):
+ """
+ Retourne la phrase d'aide indiquant de quel type de base doivent être les valeurs
+ que saisit l'utilisateur
+ """
+ mc = self.node.item.get_definition()
+ d_aides = { 'TXM' : 'chaînes de caractères',
+ 'R' : 'réels',
+ 'I' : 'entiers',
+ 'C' : 'complexes'}
+ type = mc.type[0]
+ if not d_aides.has_key(type) :
+ if mc.min == mc.max:
+ return str(mc.min)+" valeur(s) est(sont) attendue(s)"
+ else :
+ return "entrez entre "+str(mc.min)+" et "+str(mc.max)+" valeurs"
+ if mc.min == mc.max:
+ return "Une liste de "+str(mc.min)+" "+d_aides[type]+" est attendue"
+ else :
+ return "Entre "+str(mc.min)+" et "+str(mc.max)+" valeurs de type "+d_aides[type]+" sont attendues"
+ return " "
def get_bulle_aide(self):
"""
# Création de l'entry ou de la liste des SD
self.label = Label(self.frame_choix,text="Valeur :")
self.make_entry(frame = self.frame_choix,command = self.add_valeur_sans_into)
- self.label.place(relx=0.05,rely=0.5)\r
- # Création d'un bouton "Importer ..." sur le panel.\r
- bouton_valeurs_fichier = Button(self.frame_choix,\r
- text="Importer ...",\r
- command=self.select_in_file)\r
- bouton_valeurs_fichier.place(relx=0.28,rely=0.7,relwidth=0.6)\r
+ self.label.place(relx=0.05,rely=0.5)
+ # Création d'un bouton "Importer ..." sur le panel.
+ bouton_valeurs_fichier = Button(self.frame_choix,
+ text="Importer ...",
+ command=self.select_in_file)
+ bouton_valeurs_fichier.place(relx=0.28,rely=0.7,relwidth=0.6)
self.ajout_valeurs = None
# boutons Ajouter et Supprimer
bouton_add = Button(self.frame_boutons_fleches,
bouton_add.place(relx=0.3,rely=0.35)
bouton_sup.place(relx=0.3,rely=0.65)
# affichage de l'aide
+ self.frame_aide.update()
self.aide = Label(self.frame_aide,
text = aide,
justify='center',
- anchor='center')
+ anchor='center',
+ wraplength=int(self.frame_aide.winfo_width()*0.8))
self.aide.place(relx=0.5,rely=0.5,anchor='center',relwidth=1)
self.Liste_valeurs.affiche_liste()
# boutons Accepter et Annuler
command = self.annule_modifs_valeur)
for but in (bouton_accepter,bouton_annuler):
but.pack(side='left',padx=5)
-\r
- def select_in_file(self):\r
- """ Permet d'ouvrir un fichier choisi par l'utilisateur. """\r
- nom_fichier = askopenfilename(title="Choix fichier :")\r
- if nom_fichier == "":\r
- return\r
- try:\r
- f = open(nom_fichier, "rb")\r
- selection_texte = f.read()\r
- f.close()\r
- self.ajout_valeurs = FenetreDeSelection(self, self.node.item,\r
- titre="Sélection de valeurs",\r
- texte=selection_texte)\r
- except:\r
- showinfo("Erreur de fichier","impossible d'ouvir le fichier "+nom_fichier)\r
+
+ def select_in_file(self):
+ """ Permet d'ouvrir un fichier choisi par l'utilisateur. """
+ nom_fichier = askopenfilename(title="Choix fichier :")
+ if nom_fichier == "":
+ return
+ try:
+ f = open(nom_fichier, "rb")
+ selection_texte = f.read()
+ f.close()
+ self.ajout_valeurs = FenetreDeSelection(self,
+ self.node.item,
+ self.parent.appli,
+ titre="Sélection de valeurs",
+ texte=selection_texte)
+ except:
+ traceback.print_exc()
+ showinfo("Erreur de fichier","impossible d'ouvir le fichier "+nom_fichier)
def get_bulle_aide(self):
"""
if not test :
mess = "impossible d'évaluer : %s " %`valeur`
self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée :"+mess)
- return
elif self.node.item.isvalid() :
self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée')
+ if self.node.item.get_position()=='global':
+ self.node.etape.verif_all()
+ elif self.node.item.get_position()=='global_jdc':
+ self.node.racine.verif_all()
+ else :
+ self.node.parent.verif()
+ self.node.update()
self.node.parent.select()
else :
cr = self.node.item.get_cr()
mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
self.record_valeur(anc_val,mess=mess)
- return
- if self.node.item.get_position()=='global':
- self.node.etape.verif_all()
- elif self.node.item.get_position()=='global_jdc':
- self.node.racine.verif_all()
- else :
- self.node.parent.verif()
- self.node.update()
class UNIQUE_INTO_Panel(UNIQUE_Panel):
"""
Classe servant à définir le panneau associé aux objets qui attendent une valeur unique
d'un type dérivé d'ASSD
"""
+ def valid_valeur_automatique(self):
+ """
+ Réalise la validation d'un concept sans remonter dans le
+ node parent dans le cas ou il n'y a qu'un concept possible (liste de longueur 1)
+ Identique à valid_valeur moins appel de self.node.parent.select()
+ On pourrait supposer que le seul concept présent est valide et donc ne pas
+ réaliser tous les tests de vérification.
+ """
+ if self.parent.modified == 'n' : self.parent.init_modif()
+ valeur = self.get_valeur()
+ self.erase_valeur()
+ anc_val = self.node.item.get_valeur()
+ test = self.node.item.set_valeur(valeur)
+ if not test :
+ mess = "impossible d'évaluer : %s " %`valeur`
+ self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée :"+mess)
+ elif self.node.item.isvalid() :
+ self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée')
+ if self.node.item.get_position()=='global':
+ self.node.etape.verif_all()
+ elif self.node.item.get_position()=='global_jdc':
+ self.node.racine.verif_all()
+ else :
+ self.node.parent.verif()
+ self.node.update()
+ #self.node.parent.select()
+ else :
+ cr = self.node.item.get_cr()
+ mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
+ self.record_valeur(anc_val,mess=mess)
+
def makeValeurPage(self,page):
"""
Génère la page de saisie de la valeur du mot-clé simple courant qui doit être une
# Remplissage du panneau
self.valeur_choisie = StringVar()
self.valeur_choisie.set('')
+ min,max = self.node.item.GetMinMax()
+ if (min == 1 and min == max and len(liste_noms_sd)==1):
+ if self.valeur_choisie.get() != liste_noms_sd[0]:
+ self.valeur_choisie.set(liste_noms_sd[0])
+ self.valid_valeur_automatique()
+
self.frame_valeur = Frame(page)
self.frame_valeur.pack(fill='both',expand=1)
self.frame_valeur.bind("<Button-3>",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
self.listbox.place(relx=0.5,rely=0.3,relheight=0.4,anchor='center')
# affichage du bouton 'Nouveau concept'
self.b_co = Pmw.OptionMenu(self.frame_valeur,labelpos='w',label_text = "Nouveau concept : ",
- items = ('OUI','NON'),menubutton_width=10)
+ items = ('NON','OUI'),menubutton_width=10)
self.b_co.configure(command = lambda e,s=self : s.ask_new_concept())
self.b_co.place(relx=0.05,rely=0.6,anchor='w')
self.label_co = Label(self.frame_valeur,text='Nom du nouveau concept :')
self.l_resu = Label(self.frame_valeur,text='Structure de donnée choisie :')
self.valeur_choisie = StringVar()
self.label_valeur = Label(self.frame_valeur,textvariable=self.valeur_choisie)
- self.aide = Label(self.frame_valeur, text = aide)
+ self.frame_valeur.update()
+ self.aide = Label(self.frame_valeur,
+ text = aide,
+ wraplength=int(self.frame_valeur.winfo_width()*0.8),
+ justify='center')
self.aide.place(relx=0.5,rely=0.85,anchor='n')
- self.b_co.invoke('NON')
# affichage de la valeur courante
self.display_valeur()
pour valoriser le mot-clé simple courant ou cliquez sur NOUVEAU CONCEPT pour
entrer le nom d'un concept non encore existant"""
+ def valid_valeur(self):
+ """
+ Teste si la valeur fournie par l'utilisateur est une valeur permise :
+ - si oui, l'enregistre
+ - si non, restaure l'ancienne valeur
+ """
+ if self.parent.modified == 'n' : self.parent.init_modif()
+ valeur = self.get_valeur()
+ self.erase_valeur()
+ anc_val = self.node.item.get_valeur()
+ test_CO=self.node.item.is_CO(anc_val)
+ test = self.node.item.set_valeur(valeur)
+ if not test :
+ mess = "impossible d'évaluer : %s " %`valeur`
+ self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée :"+mess)
+ return
+ elif self.node.item.isvalid() :
+ self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée')
+ if test_CO:
+ # il faut egalement propager la destruction de l'ancien concept
+ self.node.item.delete_valeur_co(valeur=anc_val)
+ # et on force le recalcul des concepts de sortie de l'etape
+ self.node.item.object.etape.get_type_produit(force=1)
+ # et le recalcul du contexte
+ self.node.item.object.etape.parent.reset_context()
+ self.node.parent.select()
+ else :
+ cr = self.node.item.get_cr()
+ mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
+ self.record_valeur(anc_val,mess=mess)
+ return
+ if self.node.item.get_position()=='global':
+ self.node.etape.verif_all()
+ elif self.node.item.get_position()=='global_jdc':
+ self.node.racine.verif_all()
+ else :
+ self.node.parent.verif()
+ self.node.update()
+
def valid_nom_concept_co(self,event=None):
"""
Lit le nom donné par l'utilisateur au concept de type CO qui doit être
la valeur du MCS courant et stocke cette valeur
"""
+ if self.parent.modified == 'n' : self.parent.init_modif()
+ anc_val = self.node.item.get_valeur()
nom_concept = self.entry_co.get()
- self.node.item.set_valeur_co(nom_concept)
+ test,mess=self.node.item.set_valeur_co(nom_concept)
+ if not test:
+ # On n'a pas pu créer le concept
+ self.parent.appli.affiche_infos(mess)
+ return
+ elif self.node.item.isvalid() :
+ self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée')
+ self.node.parent.select()
+ else :
+ cr = self.node.item.get_cr()
+ mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
+ self.record_valeur(anc_val,mess=mess)
+ return
if self.node.item.get_position()=='global':
self.node.etape.verif_all()
elif self.node.item.get_position()=='global_jdc':
self.label_valeur.place_forget()
self.entry_co.focus()
elif new_concept == 'NON':
- self.label_co.place_forget()
- self.entry_co.place_forget()
- self.l_resu.place(relx=0.05,rely=0.7)
- self.label_valeur.place(relx=0.45,rely=0.7)
+ # On est passe de OUI à NON, on supprime la valeur
+# PN correction de bug (on passe de non a non et cela supprime la valeur)
+# ajout du if de le ligne suivane
+ if self.node.item.is_CO():
+ self.node.item.delete_valeur_co()
+ self.record_valeur(name=None,mess="Suppression CO enregistrée")
+ self.label_co.place_forget()
+ self.entry_co.place_forget()
+ self.l_resu.place(relx=0.05,rely=0.7)
+ self.label_valeur.place(relx=0.45,rely=0.7)
def display_valeur(self):
"""
Affiche la valeur de l'objet pointé par self
"""
valeur = self.node.item.get_valeur()
- if valeur == None : return # pas de valeur à afficher ...
+ if valeur == None or valeur == '':
+ self.valeur_choisie.set('')
+ return # pas de valeur à afficher ...
# il faut configurer le bouton si la valeur est un objet CO
# sinon afficher le nom du concept dans self.valeur_choisie
- if valeur.__class__.__name__ != 'CO':
- self.valeur_choisie.set(valeur.nom)
- else:
+ if self.node.item.is_CO():
self.b_co.invoke('OUI')
self.entry_co.insert(0,valeur.nom)
+ else:
+ self.valeur_choisie.set(valeur.nom)
+
+ def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
+ """
+ Enregistre val comme valeur de self.node.item.object SANS faire de test de validité
+ """
+ if self.parent.modified == 'n' : self.parent.init_modif()
+ if name != None:
+ valeur =name
+ else :
+ self.entry_co.delete(0,END)
+ valeur= self.entry_co.get()
+ self.node.item.set_valeur_co(valeur)
+ self.parent.appli.affiche_infos(mess)
+ # On met a jour le display dans le panneau
+ self.display_valeur()
+ if self.node.item.get_position()=='global':
+ self.node.etape.verif_all()
+ elif self.node.item.get_position()=='global_jdc':
+ self.node.racine.verif_all()
+ else :
+ self.node.parent.verif()
+ if self.node.item.isvalid():
+ self.node.parent.select()
+ self.node.update()
class UNIQUE_BASE_Panel(UNIQUE_Panel):
self.entry.bind("<Return>",lambda e,c=self.valid_valeur:c())
self.entry.focus()
# aide associée au panneau
- self.aide = Label(self.frame_valeur, text = aide)
+ self.frame_valeur.update()
+ self.aide = Label(self.frame_valeur,
+ text = aide,
+ wraplength=int(self.frame_valeur.winfo_width()*0.8),
+ justify='center')
self.aide.place(relx=0.5,rely=0.7,anchor='n')
# affichage de la valeur du MCS
self.display_valeur()
if valeur == None : return # pas de valeur à afficher ...
self.entry.delete(0,END)
self.entry.insert(0,valeur)
+ self.entry.focus()
class UNIQUE_COMP_Panel(UNIQUE_Panel):
"""
self.entry1.place(relx=0.27,rely = 0.5,relwidth=0.35)
self.entry2.place(relx=0.65,rely = 0.5,relwidth=0.35)
self.entry1.focus()
- self.aide = Label(self.frame_valeur, text = aide)
+ self.frame_valeur.update()
+ self.aide = Label(self.frame_valeur,
+ text = aide,
+ wraplength=int(self.frame_valeur.winfo_width()*0.8),
+ justify='center')
self.aide.place(relx=0.5,rely=0.7,anchor='n')
def get_bulle_aide(self):
elif self.wait_into():
# l'objet prend sa (ses) valeur(s) dans un ensemble discret de valeurs
min,max = self.GetMinMax()
- if max != 1 and ((min != 0 and min != max) or (min == 0)):
+ # PN :
+ # Remplacement du if ??
+ #if max != 1 and ((min != 0 and min != max) or (min == 0)):
+ assert (min <= max)
+ if max > 1 :
# l'objet attend une liste de valeurs
self.panel = PLUSIEURS_INTO_Panel
else:
else:
# on attend un entier, un réel ou une string
self.panel = UNIQUE_BASE_Panel
-
def SetText(self, text):
try:
Retourne le texte à afficher dans l'arbre représentant la valeur de l'objet
pointé par self
"""
- return self.object.GetText()
+ text= self.object.GetText()
+ return text
def wait_co(self):
"""
def GetMinMax(self):
""" Retourne les valeurs min et max de la définition de object """
return self.object.get_min_max()
-\r
- def GetMultiplicite(self):\r
- """ A préciser.\r
- Retourne la multiplicité des valeurs affectées à l'objet\r
- représenté par l'item. Pour le moment retourne invariablement 1.\r
- """\r
- return 1\r
-\r
- def GetType(self):\r
- """ Retourne le type de valeur attendu par l'objet représenté par l'item.\r
- """\r
- return self.object.get_type()\r
-\r
- def GetIntervalle(self):\r
- """ Retourne le domaine de valeur attendu par l'objet représenté par l'item.\r
- """\r
- return self.object.getintervalle()\r
-\r
- def IsInIntervalle(self,valeur):\r
- """ Retourne 1 si la valeur est dans l'intervalle permis par\r
- l'objet représenté par l'item.\r
- """\r
- return self.object.isinintervalle(valeur)\r
+
+ def GetMultiplicite(self):
+ """ A préciser.
+ Retourne la multiplicité des valeurs affectées à l'objet
+ représenté par l'item. Pour le moment retourne invariablement 1.
+ """
+ return 1
+
+ def GetType(self):
+ """
+ Retourne le type de valeur attendu par l'objet représenté par l'item.
+ """
+ return self.object.get_type()
+
+ def GetIntervalle(self):
+ """
+ Retourne le domaine de valeur attendu par l'objet représenté
+ par l'item.
+ """
+ return self.object.getintervalle()
+
+ def IsInIntervalle(self,valeur):
+ """
+ Retourne 1 si la valeur est dans l'intervalle permis par
+ l'objet représenté par l'item.
+ """
+ return self.object.isinintervalle(valeur)
def set_valeur_co(self,nom_co):
"""
Affecte au MCS pointé par self l'objet de type CO et de nom nom_co
"""
- self.object.set_valeur_co(nom_co)
+ return self.object.set_valeur_co(nom_co)
def get_sd_avant_du_bon_type(self):
"""
Retourne la liste des noms des SD présentes avant l'étape qui contient
le MCS pointé par self et du type requis par ce MCS
"""
- return self.object.jdc.get_sd_avant_du_bon_type(self.object.etape,self.object.definition.type)
+ return self.object.etape.parent.get_sd_avant_du_bon_type(self.object.etape,
+ self.object.definition.type)
def GetListeValeurs(self) :
""" Retourne la liste des valeurs de object """
- retourne 'valeur' (chaîne de caractères) sinon """
return self.object.eval_valeur(valeur)
+ def is_CO(self,valeur=None):
+ """
+ Indique si valeur est un concept produit de la macro
+ Cette méthode n'a de sens que pour un MCSIMP d'une MACRO
+ Si valeur vaut None on teste la valeur du mot cle
+ """
+ # Pour savoir si un concept est un nouveau concept de macro
+ # on regarde s'il est présent dans l'attribut sdprods de l'étape
+ # ou si son nom de classe est CO.
+ # Il faut faire les 2 tests car une macro non valide peut etre
+ # dans un etat pas tres catholique avec des CO pas encore types
+ # et donc pas dans sdprods (resultat d'une exception dans type_sdprod)
+ if not valeur:valeur=self.object.valeur
+ if valeur in self.object.etape.sdprods:return 1
+ if type(valeur) is not types.ClassType:return 0
+ if valeur.__class__.__name__ == 'CO':return 1
+ return 0
+
+ def delete_valeur_co(self,valeur=None):
+ """
+ Supprime la valeur du mot cle (de type CO)
+ il faut propager la destruction aux autres etapes
+ """
+ if not valeur : valeur=self.object.valeur
+ # XXX faut il vraiment appeler del_sdprod ???
+ #self.object.etape.parent.del_sdprod(valeur)
+ self.object.etape.parent.delete_concept(valeur)
+
import Accas
treeitem = SIMPTreeItem
objet = Accas.MCSIMP
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module sert pour charger les paramètres de configuration d'EFICAS
"""
print string.join(l[2:])
sys.exit()
for attr in self.l_nom_param:
- nom_attr,statut = attr
- valeur = d.get(nom_attr,None)
+ nom_attr,statut,defaut = attr
+ #valeur = d.get(nom_attr,None)
+ valeur = d.get(nom_attr,defaut)
if not valeur and statut=='o':
showerror("Erreur","Une erreur s'est produite dans la relecture du fichier de configuration : "
+ self.fic_ini+"\n EFICAS va vous demander les nouveaux paramètres")
traceback.print_exc()
return
for attr in self.l_nom_param:
- nom_attr,statut = attr
+ nom_attr,statut,defaut = attr
valeur = d.get(nom_attr,None)
if valeur :
setattr(self,nom_attr,valeur)
(label,nature,nom_var,defaut)
"""
self.l_param=[]
+ # répertoire initial pour OPEN/SAVE des fichiers de commande
+ # Par defaut, EFICAS utilise le repertoire utilisateur $HOME/Eficas_install
+ # Il est possible de specifier dans editeur.ini ou eficas.ini un autre chemin
+ # Ce peut etre un chemin absolu ou le repertoire courant (os.curdir)
+ if hasattr(self,'initialdir'):
+ self.l_param.append(("Répertoire initial pour Open/save des fichiers de commande",'rep','initialdir',self.initialdir))
+ else:
+ self.l_param.append(("Répertoire initial pour Open/save des fichiers de commande",'rep','initialdir',self.rep_user))
# répertoire de travail
if hasattr(self,'rep_travail'):
self.l_param.append(("Répertoire de travail",'rep','rep_travail',self.rep_travail))
self.l_nom_param=[]
statut='o'
for tup in self.l_param:
- #self.l_nom_param.append((tup[2],statut))
if tup[1] == 'YesNo':
# les paramètres suivant tup sont facultatifs ...
statut='f'
- self.l_nom_param.append((tup[2],statut))
+ self.l_nom_param.append((tup[2],statut,tup[3])) # nom,statut,defaut
def affichage_fichier_ini(self):
"""
-#@ MODIF definition_cata Accas DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
# Modules Python
import types
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe EFICAS qui est l'application
proprement dite. Elle est dérivée de la classe APPLI
import traceback
# Modules Eficas
+import patches
import appli
from widgets import Fenetre
class EFICAS(appli.APPLI):
- extensions=['readercata','bureau','browser','options']
+ try:
+ from prefs import appli_composants
+ except:
+ appli_composants=['readercata','bureau','browser','options']
def get_texte_infos(self):
texte=appli.APPLI.get_texte_infos(self)
self._ulfile.setentry('')
self.dialog.deactivate(result)
self.ulfile = None
- self.text=''
+ self.text=None
def get_file(self,unite=None,fic_origine = ''):
"""
showerror("Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier")
return None
+ def affiche_texte(self,entete,texte):
+ """Cette methode ouvre une fenetre modale dans laquelle on affiche un texte
+ """
+ self.affiche_infos(entete)
+ f=Fenetre(self, titre=entete, texte = texte)
+ f.wait()
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module permet de lancer l'application EFICAS en affichant
un ecran Splash pour faire patentier l'utilisateur
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module sert a afficher le texte du FAQ EFICAS
et à attendre l'acquittement par l'utilisateur
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
self.frame1.place(relx=0,rely=0,relheight=0.2,relwidth=1)
self.frame2.place(relx=0,rely=0.2,relheight=0.6,relwidth=1)
self.frame3.place(relx=0,rely=0.8,relheight=0.2,relwidth=1)
- self.frame21 = Frame(self.frame2)
- self.frame22 = Frame(self.frame2)
- self.frame21.place(relx=0,rely=0,relwidth=0.6,relheight=1)
- self.frame22.place(relx=0.6,rely=0,relwidth=0.4,relheight=1)
def init_label(self):
"""
Affichage du label dans la zone concernée
"""
txt = " Un ou plusieurs mots-clés inconnus ont été trouvés dans le fichier de commandes."
- txt = txt + "En cliquant sur leur nom, vous pourrez soit corriger l'orthographe soit supprimer ce mot-clé"
+ #txt = txt + "En cliquant sur leur nom, vous pourrez soit corriger l'orthographe soit supprimer ce mot-clé"
self.fenetre.update_idletasks()
Label(self.frame1,
text = txt,
"""
Affiche les mots-clés à modifier ou supprimer
"""
+ i=0
+ self.widgets=[]
for mc in self.l_mc :
# mc est une liste :
# mc contient comme premiers arguments l'étape et éventuellement les blocs, mcfact ...
# et contient comme 2 derniers éléments le nom du mot-clé et sa valeur
path_mc = self.get_path(mc[0:-2])
nom_mc = mc[-2]
- Label(self.frame21,text = path_mc).pack(side='left')
- e = Entry(self.frame22)
- e.pack(side='left')
+ lab=Label(self.frame2,text = path_mc)
+ lab.grid(row=i,column=1,sticky=W)
+ e = Entry(self.frame2)
+ e.grid(row=i,column=0,sticky=W)
e.insert(END,nom_mc)
- e.bind("<Button-1>",lambda event,en=e,m=mc,s=self : s.select_mc(m,en))
- e.bind("<Return>",lambda e,s=self : s.modifie_mc())
+ #e.bind("<Button-1>",lambda event,en=e,m=mc,s=self : s.select_mc(m,en))
+ #e.bind("<Return>",lambda e,s=self : s.modifie_mc())
e.configure(relief='flat',state='disabled')
+ self.widgets.append((e,lab))
+ i=i+1
def init_boutons(self):
"""
self.b_quit = Button(self.frame3,
text = "Fermer",
command = self.quit)
- self.b_mod.place(relx=0.25,rely=0.5,anchor='center')
- self.b_sup.place(relx=0.50,rely=0.5,anchor='center')
- self.b_quit.place(relx=0.75,rely=0.5,anchor='center')
+ #self.b_mod.place(relx=0.25,rely=0.5,anchor='center')
+ #self.b_sup.place(relx=0.50,rely=0.5,anchor='center')
+ #self.b_quit.place(relx=0.75,rely=0.5,anchor='center')
+ self.b_quit.place(relx=0.50,rely=0.5,anchor='center')
def wait_new_list(self):
"""
"""
txt = ''
for o in l_o :
- print o
txt = txt + o.nom+'/'
# on enlève le dernier slash en trop
txt = txt[0:-1]
"""
index = self.l_mc.index(self.mc_courant)
self.new_l_mc[index] = None
+ e,lab=self.widgets[index]
+ e.grid_remove()
+ lab.grid_remove()
self.desactive_boutons()
self.desactive_entry()
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
standard = ("Times",10)
standard_italique = ("Times",10,'italic')
standard_gras = ("Times",10,'bold')
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module joue le role de cache pour les images stockées
dans le repertoire ICONDIR
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module réalise toutes les mises à jour du chemin pour
les imports de modules Python
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe JDCDISPLAY qui réalise l'affichage
du jeu de commandes sous la forme d'un arbre et de panneaux qui portent
les informations attachées au noeud de l'arbre sélectionné
"""
# Modules Python
+import types
import Tkinter
import Pmw
self.jdc=jdc
self.nom_jdc=nom_jdc
self.fichier=None
+ self.panel_courant=None
if not appli:
class Appli:
self.modified='n'
self.pane=Pmw.PanedWidget(self.parent,orient='horizontal')
- self.pane.add('treebrowser',min=0.5)
- self.pane.add('selected',min=0.5)
+ self.pane.add('treebrowser',min=0.4,size=0.5)
+ self.pane.add('selected',min=0.4)
self.pane.pack(expand=1,fill='both')
self.tree=TREEITEMINCANVAS(jdc,nom_jdc,self.pane.pane('treebrowser'),
- self.appli,self.select_node)
+ self.appli,self.select_node,self.make_rmenu)
+
+ def make_rmenu(self,node,event):
+ if hasattr(node.item,'rmenu_specs'):
+ rmenu = Tkinter.Menu(self.pane.pane('treebrowser'), tearoff=0)
+ #node.select()
+ self.cree_menu(rmenu,node.item.rmenu_specs,node)
+ rmenu.tk_popup(event.x_root,event.y_root)
+
+ def cree_menu(self,menu,itemlist,node):
+ """
+ Ajoute les items du tuple itemlist
+ dans le menu menu
+ """
+ number_item=0
+ radio=None
+ for item in itemlist:
+ number_item=number_item + 1
+ if not item :
+ menu.add_separator()
+ else:
+ label,method=item
+ if type(method) == types.TupleType:
+ # On a un tuple => on cree une cascade
+ menu_cascade=Tkinter.Menu(menu)
+ menu.add_cascade(label=label,menu=menu_cascade)
+ self.cree_menu(menu_cascade,method,node)
+ elif method[0] == '&':
+ # On a une chaine avec & en tete => on cree un radiobouton
+ try:
+ command=getattr(node.item,method[1:])
+ menu.add_radiobutton(label=label,command=lambda a=self.appli,c=command:c(a))
+ if radio == None:radio=number_item
+ except:pass
+ else:
+ try:
+ command=getattr(node.item,method)
+ menu.add_command(label=label,command=lambda a=self.appli,c=command:c(a))
+ except:pass
+ # Si au moins un radiobouton existe on invoke le premier
+ if radio:menu.invoke(radio)
def select_node(self,node):
"""
Lance la génération du panneau contextuel de l'objet sélectionné
dans l'arbre
"""
+ if self.panel_courant:
+ # On detruit le panneau
+ self.panel_courant.destroy()
+ o=self.panel_courant
+ self.panel_courant=None
+ # Mettre à 1 pour verifier les cycles entre objets
+ # pour les panneaux
+ withCyclops=0
+ if withCyclops:
+ from Misc import Cyclops
+ z = Cyclops.CycleFinder()
+ z.register(o)
+ del o
+ z.find_cycles()
+ z.show_stats()
+ z.show_cycles()
+
+
if node.item.isactif():
if hasattr(node.item,"panel"):
- return node.item.panel(self,self.pane.pane('selected'),node)
+ self.panel_courant=node.item.panel(self,self.pane.pane('selected'),node)
else:
raise Exception("Le noeud sélectionné n'a pas de panel associé")
else:
- return panels.Panel_Inactif(self,self.pane.pane('selected'),node)
+ self.panel_courant = panels.Panel_Inactif(self,self.pane.pane('selected'),node)
+ return self.panel_courant
def init_modif(self):
"""
Ne permet que la copie d'objets de type Commande ou MCF
"""
objet_a_copier = self.appli.noeud_a_editer.item.get_copie_objet()
- if objet_a_copier.__class__.__name__ in ('ETAPE','PROC_ETAPE','MACRO_ETAPE'):
+ if objet_a_copier.__class__.__name__ in ('ETAPE','PROC_ETAPE','MACRO_ETAPE','FORM_ETAPE'):
self.doPaste_Commande(objet_a_copier)
elif objet_a_copier.__class__.__name__ == "MCFACT":
self.doPaste_MCF(objet_a_copier)
else:
showinfo("Copie impossible",
"Vous ne pouvez copier que des commandes ou des mots-clés facteurs !")
- return
+ return
def doPaste_Commande(self,objet_a_copier):
"""
- Réalise la copie de l'objet passé en argument qui est nécessairement une commande
+ Réalise la copie de l'objet passé en argument qui est nécessairement
+ une commande
"""
# il faut vérifier que le noeud sélectionné (noeud courant) est bien
# une commande ou un JDC sinon la copie est impossible ...
if self.node_selected.item.isCommande() :
child = self.node_selected.append_brother(objet_a_copier,retour='oui')
elif self.node_selected.item.isJdc() :
- child = self.node_selected.append_child(objet_a_copier,retour='oui')
+ child = self.node_selected.append_child(objet_a_copier,pos='first',
+ retour='oui')
else:
showinfo("Copie impossible",
"Vous ne pouvez coller la commande copiée à ce niveau de l'arborescence !")
child = self.node_selected.append_child(objet_a_copier,retour='oui')
elif self.node_selected.item.isMCList() :
# le noeud courant est une MCList
- child = self.node_selected.parent.append_child(objet_a_copier,retour='oui')
+ child = self.node_selected.parent.append_child(objet_a_copier,pos='first',retour='oui')
elif self.node_selected.item.isMCFact():
# le noeud courant est un MCFACT
- child = self.node_selected.parent.append_child(objet_a_copier,retour='oui')
+ if self.node_selected.parent.item.isMCList():
+ # le noeud selectionne est un MCFACT dans une MCList
+ child = self.node_selected.parent.append_child(objet_a_copier,
+ pos=self.node_selected.item,
+ retour='oui')
+ else:
+ # le noeud MCFACT selectionne n'est pas dans une MCList
+ child = self.node_selected.parent.append_child(objet_a_copier,retour='oui')
else:
showinfo("Copie impossible",
"Vous ne pouvez coller le mot-clé facteur copié à ce niveau de l'arborescence !")
# on rend la copie à nouveau possible en libérant le flag edit
self.edit="copier"
+ def update(self):
+ """Cette methode est utilisee par le JDC associe pour
+ signaler des modifications globales du JDC
+ """
+ self.tree.update()
+
--- /dev/null
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module contient la classe MacroDisplay qui realise l'affichage
+ des sous commandes d'une macro sous forme d'arbre
+"""
+# Modules Python
+import types
+import Tkinter,Pmw
+
+# Modules EFICAS
+import images
+import tooltip
+import Objecttreeitem
+from widgets import Fenetre
+
+class MACRO2TreeItem(Objecttreeitem.ObjectTreeItem):
+ def IsExpandable(self):
+ return 1
+
+ def GetText(self):
+ return " "
+
+ def GetIconName(self):
+ if self.object.isvalid():
+ return "ast-green-square"
+ else:
+ return "ast-red-square"
+
+ def keys(self):
+ return range(len(self.object.etapes))
+
+ def GetSubList(self):
+ sublist=[]
+ for key in self.keys():
+ liste = self.object.etapes
+ try:
+ value = liste[key]
+ except KeyError:
+ continue
+ def setfunction(value, key=key, object=liste):
+ object[key] = value
+ item = self.make_objecttreeitem(self.appli,value.ident() + " : ", value, setfunction)
+ sublist.append(item)
+ return sublist
+
+ def verif_condition_bloc(self):
+ # retourne la liste des sous-items dont la condition est valide
+ # sans objet pour le JDC
+ return [],[]
+
+ def get_l_noms_etapes(self):
+ """ Retourne la liste des noms des étapes de self.object"""
+ return self.object.get_l_noms_etapes()
+
+class MacroDisplay:
+ def __init__(self,appli,jdc,nom_jdc):
+ self.fenetre = Tkinter.Toplevel()
+ self.fenetre.configure(width = 800,height=500)
+ self.fenetre.protocol("WM_DELETE_WINDOW", self.quit)
+ self.fenetre.title("Visualisation Macro_Etape")
+ self.jdc=jdc
+ self.nom_jdc=nom_jdc
+ self.appli=appli
+ self.barre=Tkinter.Frame(self.fenetre,relief="ridge",bd=2)
+ self.barre.pack(expand=1,fill=Tkinter.X)
+ if self.jdc.fichier_text is not None:
+ b=Tkinter.Button(self.barre,image=images.get_image("Zoom24"),command=self.visufile)
+ b.pack(side='left')
+ tp=tooltip.TOOLTIP(b,"View file")
+ self.mainPart=Pmw.ScrolledCanvas(self.fenetre,
+ hull_width=600,
+ hull_height=500,
+ borderframe=1)
+ self.canvas=self.mainPart.component('canvas')
+ Pmw.Color.changecolor(self.canvas,background='gray95')
+ self.mainPart.pack(padx=10,pady=10,fill = 'both', expand = 1)
+ self.item=MACRO2TreeItem(self.appli,nom_jdc,jdc)
+ import treewidget
+ self.tree = treewidget.Tree(self.appli,self.item,self.mainPart,command=None,rmenu=self.make_rmenu)
+ self.tree.draw()
+
+ def visufile(self):
+ Fenetre(self.appli,titre="Source du fichier inclus",texte=self.jdc.fichier_text)
+
+ def make_rmenu(self,node,event):
+ if hasattr(node.item,'rmenu_specs'):
+ rmenu = Tkinter.Menu(self.canvas, tearoff=0)
+ self.cree_menu(rmenu,node.item.rmenu_specs,node)
+ rmenu.tk_popup(event.x_root,event.y_root)
+
+ def cree_menu(self,menu,itemlist,node):
+ """
+ Ajoute les items du tuple itemlist
+ dans le menu menu
+ """
+ number_item=0
+ radio=None
+ for item in itemlist:
+ number_item=number_item + 1
+ if not item :
+ menu.add_separator()
+ else:
+ label,method=item
+ if type(method) == types.TupleType:
+ # On a un tuple => on cree une cascade
+ menu_cascade=Tkinter.Menu(menu)
+ menu.add_cascade(label=label,menu=menu_cascade)
+ self.cree_menu(menu_cascade,method,node)
+ elif method[0] == '&':
+ # On a une chaine avec & en tete => on cree un radiobouton
+ try:
+ command=getattr(node.item,method[1:])
+ menu.add_radiobutton(label=label,command=lambda a=self.appli,c=command:c(a))
+ if radio == None:radio=number_item
+ except:pass
+ else:
+ try:
+ command=getattr(node.item,method)
+ menu.add_command(label=label,command=lambda a=self.appli,c=command:c(a))
+ except:pass
+ # Si au moins un radiobouton existe on invoke le premier
+ if radio:menu.invoke(radio)
+
+ def quit(self):
+ self.fenetre.destroy()
+
+def makeMacroDisplay(appli,jdc,nom_jdc):
+ return MacroDisplay(appli,jdc,nom_jdc)
+
+# 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 Tkinter import Menu
self.parent.configure(menu=self.menubar)
self.init()
- labels= ('Fichier','Edition','Jeu de commandes','Catalogue','Browsers','Options')
+ try:
+ from prefs import labels
+ except:
+ labels= ('Fichier','Edition','Jeu de commandes','Catalogue','Browsers','Options','Aide')
def init(self):
self.menudict={}
self.menudict[label]=menu
self.menubar.add_cascade(label=label,menu=menu)
- #self.optionmenu.add_command(label='Catalogue développeur',command=self.choix_cata_developpeur)
-
- #self.browsermenu.add_command(label='Browser catalogue',command = self.browser_catalogue)
- #self.browsermenu.add_command(label='Shell',command = self.shell)
- #self.browsermenu.add_command(label='Editeur catalogue',command = self.edite_catalogue)
-
-
-
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
# Modules Eficas
+# l'option affichage_commandes peut prendre les valeurs "groupes" ou "alphabetic"
+affichage_commandes="alphabetic"
class OPTIONS:
menu_defs=[
- ('Options',[
- ("Catalogue développeur",'choix_cata_developpeur'),
- ]
- )
+ ('Options',[
+ ("Affichage commandes",(("alphabétique",'&affichage_alpha'),("groupes",'&affichage_grp'))),
+ # ("Catalogue développeur",'choix_cata_developpeur'),
+ ]
+ )
]
button_defs=[]
self.appli=appli
self.parent=parent
+ def affichage_grp(self):
+ global affichage_commandes
+ affichage_commandes="groupes"
+
+ def affichage_alpha(self):
+ global affichage_commandes
+ affichage_commandes="alphabetic"
+
def choix_cata_developpeur(self):
"""
Cette méthode demande à l'utilisateur-développeur d'indiquer quel catalogue
-#@ MODIF panels Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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
import os
from Tkinter import *
import Pmw
+import tkMessageBox
+import time
from widgets import ListeChoix
+from widgets import ListeChoixParGroupes
+import prefs
+import options
SEPARATEUR = '-'*30
Elle est toujours dérivée.
"""
def __init__(self,parent,panneau,node) :
+ # Le parent d'un panel est un objet de la classe JDCDISPLAY ou derivee
+ # ou un objet qui a les attributs : appli (de classe APPLI ou derivee),
+ # modified et la methode init_modif
self.parent=parent
self.panneau = panneau
self.node=node
self.creer_boutons()
self.init()
+ def destroy(self):
+ Frame.destroy(self)
+ self.panneau=None
+ self.parent=None
+ # Because on herite de Frame
+ self.master=None
+ # On supprime explicitement les references aux objets Tk
+ self.nb=None
+ self.fr_but=None
+ self.bouton_cata=None
+ self.bouton_doc=None
+ self.bouton_com=None
+ self.bouton_sup=None
+ self.frame_eval=None
+ self.label=None
+ self.frame_boutons=None
+ self.frame_comment=None
+ self.frame_param=None
+ # On termine la suppression de facon brutale (objets Tk et non Tk)
+ for k in self.__dict__.keys():
+ # il est plus prudent de ne pas détruire le lien sur le Node
+ # si on voulait mettre l'attribut node à None, il faudrait
+ # que tous les appels à node.parent.select() apparaissent après
+ # toutes les autres actions liées au panel (node.item.isglobal(), ...)
+ if k != 'node' : setattr(self,k,None)
+
def creer_boutons(self):
"""
Méthode créant les boutons se trouvant dans la partie contextuelle d'EFICAS
"""
Suppression du noeud courant
"""
+ # On signale au parent du panel (le JDCDisplay) une modification
if self.parent.modified == 'n' : self.parent.init_modif()
- pere = self.node.parent
self.node.delete()
- pere.select()
def affiche(self):
""" Force l'affichage des fenêtres en cours """
texte_infos = ''
for e in cmd.entites.keys() :
if e == name :
- texte_infos=cmd.entites[e].fr
+ texte_infos=getattr(cmd.entites[e],prefs.lang)
break
if texte_infos == '' : texte_infos="Pas d'infos disponibles"
- #EFICAS.affiche_infos(texte_infos)
self.parent.appli.affiche_infos(texte_infos)
def defMC(self,name):
def selectCmd(self,name):
""" On retrouve la commande sous le curseur pour affichage du fr """
if name != 'COMMENTAIRE' and name != SEPARATEUR:
- #EFICAS.affiche_infos(self.parent.appli.cataitem.d_fils[name].fr)
- #self.parent.appli.affiche_infos(self.parent.appli.cataitem.d_fils[name].fr)
- self.parent.appli.affiche_infos(self.parent.jdc.get_cmd(name).fr)
+ texte_infos=getattr(self.parent.jdc.get_cmd(name),prefs.lang)
+ self.parent.appli.affiche_infos(texte_infos)
def defCmd(self,name):
"""
self._any.focus()
except:
pass
+ elif page == 'Commande':
+ try:
+ self.command_entry.component('entry').focus()
+ except:
+ pass
+
def affiche(self):
page=self.nb.getcurselection()
self.nb.page(page).focus_set()
- if page == 'Concept':self._any.component('entry').focus_set()
+ if page == 'Concept':
+ try:
+# _any est un pointeur sur entry
+# component est une methode de pmw
+# a priori, jamais ok
+ self._any.component('entry').focus_set()
+ except:
+ pass
self.tkraise()
# ------------------------------------------------------------------------
self._any.focus()
# aide associée au panneau
bulle_aide="""Tapez dans la zone de saisie le nom que vous voulez donner
- au concept retoruné par l'opérateur courant et pressez <Return> pour valider"""
+ au concept retounré par l'opérateur courant et pressez <Return> pour valider"""
page.bind("<Button-3>", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
page.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
but_apres.grid(column = 1,row =3)
def makeCommandePage(self,page):
+ """
+ Cree l'onglet
+ """
frame1 = Frame(page,height = 20)
frame1.pack(side='top',fill='x')
label = Label(frame1,text ="La commande choisie sera ajoutée\n APRES la commande courante")
label.pack(side='top')
frame2 = Frame(page)
frame2.pack(side='top',fill='both',expand=1)
- liste_cmd = self.get_liste_cmd()
liste_commandes = (("<Enter>",self.selectCmd),
("<Leave>",self.deselectCmd),
("<Double-Button-1>",self.defCmd))
- Liste = ListeChoix(self,frame2,liste_cmd,liste_commandes = liste_commandes,filtre='oui',titre = "Commandes")
+ if options.affichage_commandes == "alphabetic":
+ liste_cmd = self.get_liste_cmd()
+ Liste = ListeChoix(self,frame2,liste_cmd,liste_commandes = liste_commandes,
+ filtre='oui',titre = "Commandes")
+ else:
+ liste_groupes=self.node.item.object.niveau.definition.liste_groupes
+ dict_groupes=self.node.item.object.niveau.definition.dict_groupes
+ Liste = ListeChoixParGroupes(self,frame2,liste_groupes,dict_groupes,
+ liste_commandes = liste_commandes,
+ filtre='oui',titre = "Commandes")
Liste.affiche_liste()
+ self.command_entry=Liste.entry
# aide associée au panneau
bulle_aide="""Double-cliquez sur la commande que vous voulez ajouter au jeu de commandes"""
Liste.MCbox.bind("<Button-3>", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
"""
Crée la page correspondant à un objet de type JDC
"""
- liste_cmd = self.get_liste_cmd()
liste_commandes = (("<Enter>",self.selectCmd),
("<Leave>",self.deselectCmd),
("<Double-Button-1>",self.defCmdFirst))
- Liste = ListeChoix(self,page,liste_cmd,liste_commandes = liste_commandes,filtre='oui',titre = "Commandes")
+ if options.affichage_commandes == "alphabetic":
+ liste_cmd = self.get_liste_cmd()
+ Liste = ListeChoix(self,page,liste_cmd,liste_commandes = liste_commandes,
+ filtre='oui',titre = "Commandes")
+ else:
+ liste_groupes=self.node.item.object.niveau.definition.liste_groupes
+ dict_groupes=self.node.item.object.niveau.definition.dict_groupes
+ Liste = ListeChoixParGroupes(self,page,liste_groupes,dict_groupes,
+ liste_commandes = liste_commandes,
+ filtre='oui',titre = "Commandes")
Liste.affiche_liste()
# aide associée au panneau
bulle_aide="""Double-cliquez sur la commande que vous voulez ajouter au jeu de commandes"""
command = self.comment_commande).place(relx=0.5,rely=0.5,anchor='center')
def deselectMC(self,name):
- #EFICAS.affiche_infos('')
self.parent.appli.affiche_infos('')
def get_liste_cmd_old(self):
return listeCmd
def deselectCmd(self,name):
- #EFICAS.affiche_infos('')
self.parent.appli.affiche_infos('')
def execConcept(self):
# Pourquoi node.etape ???
#test,mess = self.node.etape.item.nomme_sd(nom)
test,mess = self.node.item.nomme_sd(nom)
- #EFICAS.affiche_infos(mess)
self.parent.appli.affiche_infos(mess)
self.node.racine.update()
"""
Cette méthode a pour but de commentariser la commande pointée par self.node
"""
- commande_comment = self.node.item.get_objet_commentarise()
- #XXX il faudrait ici aussi eviter l'appel à EFICAS
- self.parent.appli.bureau.JDCDisplay_courant.ReplaceObjectNode(self.node,commande_comment,None)
- #EFICAS.JDCDisplay_courant.ReplaceObjectNode(self.node,commande_comment,None)
+ # On traite par une exception le cas où l'utilisateur final cherche à désactiver
+ # (commentariser) un commentaire.
+ try :
+ commande_comment = self.node.item.get_objet_commentarise()
+ self.parent.appli.bureau.JDCDisplay_courant.ReplaceObjectNode(self.node,commande_comment,None)
+ except Exception,e:
+ tkMessageBox.showerror("TOO BAD",str(e))
+ return
class Panel_Inactif(Panel):
"""
self.bouton_sup.place(relx=0.5,rely=0.8,anchor='center')
+if __name__ == "__main__" : pass
--- /dev/null
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+"""
+ Ce module contient des modifications mineures du comportement
+ du noyau ou de validation
+"""
+import string
+
+if 1:
+ # Modification de la fonction justify_text de Noyau.N_CR
+ separateurs=(' ',',','/')
+ def split(ligne,cesure):
+ ligne= string.rstrip(ligne)
+ if len(ligne) <= cesure :
+ return ligne
+ else:
+ coupure=cesure
+ while ligne[coupure] not in separateurs and coupure > 0:
+ coupure = coupure - 1
+ if coupure == 0:
+ # Il faut augmenter la cesure
+ coupure =cesure
+ while ligne[coupure] not in separateurs and coupure < len(ligne)-1 :
+ coupure = coupure + 1
+ if coupure == len(ligne)-1:
+ return ligne
+ else:
+ return ligne[:coupure+1]+ '\n' + split(ligne[coupure+1:],cesure)
+
+ def justify_text(texte='',cesure=50):
+ texte = string.strip(texte)
+ liste_lignes = string.split(texte,'\n')
+ l=[split(l,cesure) for l in liste_lignes]
+ texte_justifie=string.join(l,'\n')
+ return texte_justifie
+ try:
+ import Noyau.N_CR
+ Noyau.N_CR.justify_text=justify_text
+ except:
+ pass
+
+def encadre_message(texte,motif):
+ """
+ Retourne la chaine de caractères texte entourée d'un cadre formés
+ d'éléments 'motif'
+ """
+ texte = justify_text(texte,cesure=80)
+ lignes = string.split(texte,'\n')
+ longueur = 0
+ for ligne in lignes :
+ if len(ligne)> longueur : longueur = len(ligne)
+ longueur = longueur + 4
+ txt = motif*longueur+'\n'
+ for ligne in lignes :
+ txt = txt + motif + ' '+ligne+' '*(longueur-len(motif+ligne)-2)+motif+'\n'
+ txt = txt + motif*longueur+'\n'
+ return txt
+
+if __name__ == "__main__":
+ print encadre_message(motif='!',
+texte="""- Il faut au moins un mot-clé parmi : ('DEBUT', 'POURSUITE')
+- Il faut au moins un mot-clé parmi : ('FIN',)
+- Il faut qu'au moins un objet de la liste : ('DEBUT', 'POURSUITE') soit suivi d'au moins un objet de la liste : ('FIN',)
+ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,yyyyyyyyyyyyyyyy
+""")
+
+
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module sert à lire un catalogue et à construire
un objet CataItem pour Eficas.
Il s'appuie sur la classe READERCATA
"""
# Modules Python
+import time
import os,sys,py_compile
import traceback
import cPickle
import analyse_catalogue
from Noyau.N_CR import CR
from widgets import Fenetre
+from utils import init_rep_cata_dev
#import catabrowser
+import autre_analyse_cata
+import uiinfo
class READERCATA:
self.code=self.appli.code
self.appli.format_fichier.set('python')
self.OpenCata()
-
self.cataitem=None
- #XXX CCAR : Pour le moment je ne construis pas le CATAItem
- #self.cataitem = catabrowser.CATAItem(self,"Catalogue "+self.code,
- #self.cata,
- #objet_cata_ordonne = self.cata_ordonne_dico)
def OpenCata(self):
"""
"""
message1 = "Compilation des fichiers Eficas \n\n Veuillez patienter ..."
splash._splash.configure(text = message1)
+ self.configure_barre(4)
if len(self.appli.CONFIGURATION.catalogues) == 1:
self.fic_cata = self.appli.CONFIGURATION.catalogues[0][2]
self.code = self.appli.CONFIGURATION.catalogues[0][0]
# 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'
+
+ splash._splash.configure(text = "Debut compil cata: %d s" % time.clock())
# compilation éventuelle du catalogue
test = self.compile_cata(self.fic_cata,self.fic_cata_c)
+ self.update_barre()
+ splash._splash.configure(text = "Fin compil cata: %d s" % time.clock())
if not test : showerror("Compilation catalogue","Impossible de compiler le catalogue %s" %self.fic_cata)
+
# import du catalogue
+ splash._splash.configure(text = "Debut import_cata: %d s" % time.clock())
self.cata = self.import_cata(self.fic_cata)
+ self.update_barre()
+ splash._splash.configure(text = "Fin import_cata: %d s" % time.clock())
if not self.cata : showerror("Import du catalogue","Impossible d'importer le catalogue %s" %self.fic_cata)
+
+ #
# analyse du catalogue (ordre des mots-clés)
- #XXX A priori ceci fait double emploi. Il faut d'abord calculer l'ordre
- # puis fabriquer le CATAItem
- #CCAR :self.catalo = catabrowser.CATAItem(self,"Catalogue",self.cata)
- self.Retrouve_Ordre_Cata_Standard()
+ #
+ splash._splash.configure(text = "Debut Retrouve_Ordre: %d s" % time.clock())
+ # Retrouve_Ordre_Cata_Standard fait une analyse textuelle du catalogue
+ # remplacé par Retrouve_Ordre_Cata_Standard_autre qui utilise une numerotation
+ # des mots clés à la création
+ #self.Retrouve_Ordre_Cata_Standard()
+ self.Retrouve_Ordre_Cata_Standard_autre()
+ self.update_barre()
+ splash._splash.configure(text = "Fin Retrouve_Ordre: %d s" % time.clock())
+ #
+ # analyse des données liées à l'IHM : UIinfo
+ #
+ uiinfo.traite_UIinfo(self.cata)
+ self.update_barre()
+ #
# chargement et analyse des catalogues développeur (le cas échéant)
+ #
if self.appli.CONFIGURATION.isdeveloppeur == 'OUI' :
init_rep_cata_dev(self.fic_cata,self.appli.CONFIGURATION.path_cata_dev)
fic_cata_dev = os.path.join(self.appli.CONFIGURATION.path_cata_dev,'cata_developpeur.py')
self.cata = (self.cata,)
else:
self.cata_dev =self.import_cata(fic_cata_dev)
- self.Retrouve_Ordre_Cata_Developpeur()
+ #self.Retrouve_Ordre_Cata_Developpeur()
+ self.Retrouve_Ordre_Cata_Developpeur_autre()
self.cata = (self.cata,self.cata_dev)
else:
self.cata = (self.cata,)
traceback.print_exc()
return 0
+ def Retrouve_Ordre_Cata_Standard_autre(self):
+ """
+ Construit une structure de données dans le catalogue qui permet
+ à EFICAS de retrouver l'ordre des mots-clés dans le texte du catalogue.
+ Pour chaque entité du catlogue on crée une liste de nom ordre_mc qui
+ contient le nom des mots clés dans le bon ordre
+ """
+ self.cata_ordonne_dico=autre_analyse_cata.analyse_catalogue(self.cata)
+
def Retrouve_Ordre_Cata_Standard(self):
"""
Retrouve l'ordre des mots-clés dans le catalogue, cad :
self.Get_Ordre_Cata(mode='cata')
self.appli.affiche_infos("Catalogue standard chargé")
+ def Retrouve_Ordre_Cata_Developpeur(self):
+ """
+ Retrouve l'ordre des mots-clés dans le catalogue, cad :
+ - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer
+ l'ordre des mots-clés dans le catalogue
+ - s'il n'a pas été modifié, relie le fichier pickle
+ """
+ if self.code != 'ASTER' : return
+ fic_cata = os.path.join(self.appli.CONFIGURATION.path_cata_dev,'cata_developpeur.py')
+ message="Chargement catalogue développeur présent dans :\n %s..." % self.appli.CONFIGURATION.path_cata_dev
+ splash._splash.configure(text = message,barre='oui')
+ cata_dev_ordonne = analyse_cata.analyse_catalogue(self,self.fic_cata)
+ self.cata_dev_ordonne_cr = cata_dev_ordonne.cr
+ cata_dev_ordonne_dico = cata_dev_ordonne.entites
+ self.cata_ordonne_dico.update(cata_dev_ordonne_dico)
+ self.appli.affiche_infos(" catalogue(s) développeur(s) chargé(s)" )
+
+ def Retrouve_Ordre_Cata_Developpeur_autre(self):
+ """
+ Retrouve l'ordre des mots-clés dans le catalogue, cad :
+ - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer
+ l'ordre des mots-clés dans le catalogue
+ - s'il n'a pas été modifié, relie le fichier pickle
+ """
+ if self.code != 'ASTER' : return
+ message="Chargement catalogue développeur présent dans :\n %s..." % self.appli.CONFIGURATION.path_cata_dev
+ splash._splash.configure(text = message,barre='oui')
+ cata_dev_ordonne_dico = autre_analyse_cata.analyse_catalogue(self.cata_dev)
+ self.cata_ordonne_dico.update(cata_dev_ordonne_dico)
+ self.appli.affiche_infos(" catalogue(s) développeur(s) chargé(s)" )
+
def Get_Ordre_Cata(self,mode='pickle'):
"""
Retrouve l'ordre du catalogue :
splash._splash.configure(text = "Analyse du catalogue",barre='oui')
cata_ordonne = analyse_catalogue.analyse_catalogue(self,self.fic_cata)
self.cata_ordonne_cr = cata_ordonne.cr
- self.cata_ordonne_dico = cata_ordonne.dico
+ self.cata_ordonne_dico = cata_ordonne.entites
splash._splash.configure(text = "Sauvegarde des informations sur le catalogue")
f = open(self.fic_cata_p,'w+')
p = cPickle.Pickler(f)
self.version_code = liste_choix[0]
return
# création d'une boîte de dialogue modale
- self.fenetre_choix_cata = Pmw.Dialog(self.parent,
+ self.fenetre_choix_cata = Pmw.Dialog(splash._splash, #avec self.parent, ne marche pas sous Windows
buttons=('OK','ANNULER'),
defaultbutton = 'OK',
title = "Choix d'une version du code %s" %self.code,
if time1 > time2:
try:
# le catalogue doit être recompilé avant d'être importé
- splash._splash.configure(text="Compilation du catalogue\nCela peut prendre une trentaine de secondes ...")
+ splash._splash.configure(text="Compilation du catalogue\nCela peut prendre plusieurs secondes ...")
py_compile.compile(cata)
except:
return 0
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module permet de créer, mettre à jour et détruire
un écran Splash
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
b.bind("<Enter>",lambda e,s=self,but=b,t=texte : s.affiche_balloon(e,but,t,pos='right'))
b.bind("<Leave>", self.efface_balloon)
- #self.creer_boutons()
-
- def creer_boutons(self):
- self.l_boutons = (('New24',self.appli.newJDC,"Création d'un nouveau fichier",'always'),
- ('Open24',self.appli.openJDC,"Ouverture d'un fichier existant",'always'),
- ('Save24',self.appli.saveJDC,"Sauvegarde du fichier courant",'always'),
- ('Zoom24',self.appli.visuJDC,"Visualisation du fichier de commandes",'always'),
- None,
- ('Copy24',self.appli.copy,"Copie l'objet courant",'jdc'),
- ('Cut24',self.appli.cut,"Coupe l'objet courant",'jdc'),
- ('Paste24',self.appli.paste,"Colle l'objet copié après l'objet courant",'jdc'),
- None,
- ('Delete24',self.appli.delete,"Supprime l'objet courant",'jdc'),
- ('Help24',self.appli.view_doc,"Documentation de l'objet courant",'jdc')
- )
- # liste des boutons à activer quand statut != 'always'
- self.l_boutons_a_activer = []
-
- for bouton in self.l_boutons :
- if not bouton :
- # on veut afficher un bouton vide (=espace entre boutons)
- Button(self.barreboutons,
- image = images.get_image('New24'),
- relief = 'flat').pack(side='left')
- continue
- nom_fic,commande,texte,statut = bouton
- b = Button(self.barreboutons,
- image = images.get_image(nom_fic),
- command = commande,
- relief='flat')
- b.pack(side='left')
- b.bind("<Enter>",lambda e,s=self,but=b,t=texte : s.affiche_balloon(e,but,t))
- b.bind("<Leave>", self.efface_balloon)
- if statut != 'always':
- self.l_boutons_a_activer.append(b)
- # bouton Infos à l'extrême droite de la barre des boutons
- b = Button(self.barreboutons,
- image = images.get_image('About24'),
- command = self.view_infos)
- b.pack(side='right')
- texte = "Infos EFICAS"
- b.bind("<Enter>",lambda e,s=self,but=b,t=texte : s.affiche_balloon(e,but,t,pos='right'))
- b.bind("<Leave>", self.efface_balloon)
- # inactive les boutons qui doivent l'être tant qu'aucun JDC courant
- self.inactive_boutons()
-
def inactive_boutons(self):
"""
Inactive les boutons de la liste self.l_boutons_a_activer
"""
self.fen_infos.destroy()
- def creer_boutons_extension(self,l_boutons,extension):
+ def creer_boutons_appli_composant(self,l_boutons,appli_composant):
for bouton in l_boutons :
if not bouton :
# on veut afficher un bouton vide (=espace entre boutons)
Button(self.barreboutons,
- image = images.get_image('New24'),
+ image = images.get_image('Sep'),
+ state='disabled',
relief = 'flat').pack(side='left')
continue
nom_fic,commande,texte,statut = bouton
- commande=getattr(extension,commande)
+ commande=getattr(appli_composant,commande)
b = Button(self.barreboutons,
image = images.get_image(nom_fic),
command = commande,
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module propose la classe TOOLTIP pour
mettre en oeuvre les bulles d'aide
"""
import Tkinter
+import types
+
+def destruct(obj):
+ # assist in breaking circular references
+ if obj is not None:
+ assert type(obj) is types.InstanceType
+ for k in obj.__dict__.keys():
+ obj.__dict__[k] = None
+ ##del obj.__dict__[k]
+
+def after(widget, ms, func, *args):
+ timer = apply(widget.after, (ms, func) + args)
+ command = widget._tclCommands[-1]
+ return (timer, command, widget)
+
+def after_cancel(t):
+ if t is not None:
+ t[2].after_cancel(t[0])
+ try:
+ t[2].deletecommand(t[1])
+ except Tkinter.TclError:
+ pass
class TOOLTIP:
- def __init__(self,widget):
+ def __init__(self,widget,text=None):
self.widget=widget
- self.text = None
+ self.text = text
self.timer = None
self.tooltip = None
self.label = None
self.tooltip.wm_geometry("%+d%+d" % (x, y))
self.tooltip.wm_deiconify()
+if __name__ == "__main__":
+ root=Tkinter.Tk()
+ label = Tkinter.Label(root, text="coucou")
+ label.pack()
+ tp=TOOLTIP(label,"texte d'aide")
+ root.mainloop()
+
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
import treewidget
class TREEITEMINCANVAS:
- def __init__(self,object,nom="",parent=None,appli=None,sel=None):
+ def __init__(self,object,nom="",parent=None,appli=None,sel=None,rmenu=None):
self.object=object
self.nom=nom
self.parent=parent
self.item=Objecttreeitem.make_objecttreeitem(self.appli,self.nom,self.object)
- self.canvas=Pmw.ScrolledCanvas(self.parent,borderframe=1)
+ self.canvas=Pmw.ScrolledCanvas(self.parent,borderframe=1,canvas_background='gray95')
self.canvas.pack(padx=10,pady=10,fill = 'both', expand = 1)
if not sel:
def sel(event=None):
return
- self.tree=treewidget.Tree(self.appli,self.item,self.canvas,command=sel)
+ self.tree=treewidget.Tree(self.appli,self.item,self.canvas,command=sel,rmenu=rmenu)
self.tree.draw()
def mainloop(self):
self.parent.mainloop()
+ def update(self):
+ """Cette methode est utilisee pour signaler une mise a jour des objets associes"""
+ self.tree.update()
-#@ MODIF treewidget Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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,string,re,types
+import os,sys,string,re,types,traceback
from Tkinter import *
import images
#
-__version__="$Name: V1_1p1 $"
-__Id__="$Id: treewidget.py,v 1.1.1.1 2001/12/04 15:38:23 eficas Exp $"
+__version__="$Name: $"
+__Id__="$Id: treewidget.py,v 1.11 2003/03/07 16:17:12 eficas Exp $"
#
Fonte_Standard = fontes.standard
class Tree :
- def __init__(self,appli,jdc_item,scrolledcanvas,command = None):
+ def __init__(self,appli,jdc_item,scrolledcanvas,command = None,rmenu=None):
self.item = jdc_item
self.scrolledcanvas = scrolledcanvas
self.canvas = self.scrolledcanvas.component('canvas')
self.canvas.bind("<Key-Next>", self.page_down)
self.canvas.bind("<Key-Up>", self.unit_up)
self.canvas.bind("<Key-Down>", self.unit_down)
+ self.canvas.bind("<1>", self.canvas_select)
self.tree = self
self.command = command
+ self.rmenu=rmenu
self.appli = appli
self.parent = None
self.racine = self
self.node_selected = None
self.build_children()
+ def canvas_select(self,event):
+ self.canvas.focus_set()
+
def page_up(self,event):
event.widget.yview_scroll(-1, "page")
def page_down(self,event):
def build_children(self):
""" Construit la liste des enfants de self """
self.children = []
- child = Node(self,self.item,self.command)
+ child = Node(self,self.item,self.command,self.rmenu)
self.children.append(child)
child.state='expanded'
for child in self.children:
child.draw(x,lasty)
lasty = child.lasty + 15
- child.trace_ligne()
- #self.update()
self.children[0].select()
self.resizescrollregion()
- def deselectall_old(self):
- """ déselectionne tous les éléments de l'arbre """
- for child in self.children:
- child.deselect()
-
def deselectall(self):
""" déselectionne tous les éléments de l'arbre """
if self.node_selected :
for child in self.children:
child.update()
+ def update_valid(self) :
+ """Cette methode a pour but de mettre a jour la validite du noeud
+ et de propager la demande de mise à jour à son parent
+ """
+ pass
+
def resizescrollregion(self):
- self.scrolledcanvas.resizescrollregion()
+ x0,y0,x1,y1=self.canvas.bbox(ALL)
+ # On ajoute une marge approximativement de la moitié du canvas
+ y1=y1+self.canvas.winfo_height()/2
+ self.canvas.configure(scrollregion = (x0,y0,x1,y1))
def select_next(self,event):
self.node_selected.select_next()
def verif_all(self):
for child in self.children :
self.verif_all_children()
+
+ def see(self,items):
+ x1, y1, x2, y2=apply(self.canvas.bbox, items)
+ while x2 > self.canvas.canvasx(0)+self.canvas.winfo_width():
+ old=self.canvas.canvasx(0)
+ self.canvas.xview_scroll( 1, 'units')
+ # avoid endless loop if we can't scroll
+ if old == self.canvas.canvasx(0):
+ break
+ while y2 > self.canvas.canvasy(0)+self.canvas.winfo_height():
+ old=self.canvas.canvasy(0)
+ self.canvas.yview_scroll( 1, 'units')
+ if old == self.canvas.canvasy(0):
+ break
+ # done in this order to ensure upper-left of object is visible
+ while x1 < self.canvas.canvasx(0):
+ old=self.canvas.canvasx(0)
+ self.canvas.xview_scroll( -1, 'units')
+ if old == self.canvas.canvasx(0):
+ break
+ while y1 < self.canvas.canvasy(0):
+ old=self.canvas.canvasy(0)
+ self.canvas.yview_scroll( -1, 'units')
+ if old == self.canvas.canvasy(0):
+ break
class Node :
- def __init__(self,parent,item,command=None):
+ def __init__(self,parent,item,command=None,rmenu=None):
self.parent = parent
self.item = item
self.command = command
+ self.rmenu=rmenu
self.tree = self.parent.tree
self.appli = self.parent.appli
self.canvas = self.parent.canvas
self.init()
- #self.build_children()
def init(self):
self.state='collapsed'
sublist = self.item._GetSubList()
if not sublist : return
for item in sublist :
- child = Node(self,item,self.command)
+ child = Node(self,item,self.command,self.rmenu)
self.children.append(child)
#-----------------------------------------------
self.tree.node_selected = self
if self.command:apply(self.command,(self,))
self.highlight()
- self.canvas.focus_force()
- #self.make_visible()
-
- def deselect_old(self, event=None):
- """ Déselectionne self """
- self.selected = 0
- if self.displayed == 1:
- self.dehighlight()
- for child in self.children:
- child.deselect()
+ self.make_visible()
def deselect(self, event=None):
""" Déselectionne self """
def make_visible(self):
""" Rend l'objet self visible cad déplace le scroll pour que self soit dans
- la fenêtre de visu"""
- x0,y0,x1,y1 = self.canvas.bbox(ALL)
- self.canvas.yview("moveto",self.y/y1)
+ la fenêtre de visu
+ """
+ lchild=self.last_child()
+ self.tree.see((self.image_id,lchild.image_id))
def select_next(self,ind=0):
""" on doit chercher à sélectionner dans l'ordre:
self.parent.children[index].select()
except:
self.parent.select()
+
+ def popup(self,event=None):
+ """
+ Declenche le traitement associé au clic droit de la souris
+ sur l'icone du Node
+ """
+ if not self.rmenu:return
+ apply(self.rmenu,(self,event))
+
#-----------------------------------------------
# Méthodes de recherche d'informations
#-----------------------------------------------
if image != None :
self.image_id = self.canvas.create_image(self.x+15,self.y,image = image)
self.canvas.tag_bind(self.image_id,"<1>",self.select)
+ self.canvas.tag_bind(self.image_id,"<3>",self.popup)
self.id.append(self.image_id)
else:
self.image_id = None
child.draw(x,y)
nb = child.get_nb_children()
y = y + 20*(nb+1)
+ self.trace_ligne()
def drawtext(self):
""" Affiche les deux zones de texte après l'icône de couleur de l'objet """
self.id.append(self.label_id)
# bindings sur le widget label
self.label.bind("<1>", self.select)
+ self.label.bind("<3>", self.popup)
self.label.bind("<Enter>",self.enter)
self.label.bind("<Leave>",self.leave)
# valeur de cet objet à afficher
nb = self.get_nb_children()
self.state = 'collapsed'
self.collapse_children()
- self.efface()
- try:
- self.move(-20*nb)
- except:
- pass
- self.draw(self.x,self.y)
+ self.redraw(-nb)
self.select()
- self.update()
-
+
def expand(self,event = None):
""" Expanse self et le retrace """
if not self.item.isactif() : return
if not self.children : self.build_children()
self.state = 'expanded'
nb = self.get_nb_children()
- self.move(20*nb)
- self.efface()
- self.draw(self.x,self.y)
+ self.redraw(nb)
self.select()
- self.update()
def redraw(self,nb):
""" Redessine self : nb est le décalage à introduire
# on efface self et on le redessine
self.efface()
self.draw(self.x,self.y)
- self.update()
+ # Il n'est pas nécessaire d'appeler update
+ # il suffit d'updater les coordonnees et de retracer les lignes
+ self.racine.update_coords()
+ self.racine.trace_ligne()
+ self.update_valid()
+ self.tree.resizescrollregion()
def update_coords(self):
""" Permet d'updater les coordonnes de self et de tous ses enfants"""
for child in self.children:
if child.displayed != 0 : child.update_texte()
+ def update_valid(self) :
+ """Cette methode a pour but de mettre a jour la validite du noeud
+ et de propager la demande de mise à jour à son parent
+ """
+ if self.image_id != None :
+ image = self.geticonimage()
+ self.canvas.itemconfig(self.image_id,image=image)
+ self.parent.update_valid()
+
def update(self,event=None) :
""" Classe Node :
Cette méthode est appelée pour demander l update d un noeud
try:
self.canvas.addtag_overlapping('move',bbox1[0],self.y +10,bbox1[2],bbox1[3])
except:
+ print "Erreur dans move :"
print self
print self.item
print self.item.object
print 'dy=',dy
# on déplace tous les items de dy
self.canvas.move('move',0,dy)
- # il faut réactualiser la zone de scroll
- self.tree.resizescrollregion()
def trace_ligne(self):
""" Dessine les lignes verticales entre frères et entre père et premier fils"""
try:
child.trace_ligne()
except:
+ print "Erreur dans trace_ligne :"
print child
print child.item.object
- def make_visible_OBSOLETE(self,nb):
- """ Cette méthode a pour but de rendre le noeud self (avec tous ses descendants
- affichés) visible dans le canvas """
- x = self.canvas.canvasx(self.canvas.cget('width'))
- y = self.canvas.canvasy(self.canvas.cget('height'))
- #print 'x,y =',x,y
- x0,y0,x1,y1 = self.canvas.bbox(ALL)
- #print 'x0,y1=',x0,y1
- y_deb = self.y
- nb = self.get_nb_children()
- y_fin = y_deb + 20*nb
- #print 'y_deb,y_fin=',y_deb,y_fin
-
+ def last_child(self):
+ lchild=self
+ if self.state == 'expanded' and self.children:
+ lchild= self.children[-1].last_child()
+ return lchild
+
#------------------------------------------------------------------
# Méthodes de création et destruction de noeuds
# Certaines de ces méthodes peuvent être appelées depuis l'externe
def full_creation(self,name,pos=None):
"""
- Interface avec ACCAS : création de l'objet de nom name et
- du noeud associé. Retourne le noeud fils ainsi créé
+ Interface avec ACCAS : création de l'objet de nom name et
+ du noeud associé. Retourne le noeud fils ainsi créé
"""
item = self.item.additem(name,pos)
if item == None or item == 0:
# impossible d'ajouter le noeud de nom : name
return 0
nature = item.get_nature()
- #if nature =="COMMANDE" or nature == "OPERATEUR" or nature == "PROCEDURE":
if nature in ("COMMANDE","OPERATEUR","PROCEDURE","COMMENTAIRE",
"PARAMETRE","COMMANDE_COMMENTARISEE","PARAMETRE_EVAL"):
# on veut ajouter une commande ou un commentaire ou un paramètre
# il ne faut pas rechercher un même objet déjà existant
# à modifier : il faut tester l'attribut 'repetable'
enfant = None
+ elif self.item.object.isMCList():
+ # Dans ce cas on ne fait pas de remplacement. On ne cherche pas un objet de meme nom
+ enfant=None
else :
enfant = self.get_node_fils(item.get_nom())
if enfant :
# un fils de même nom existe déjà : on remplace
# un MCFACT (ou une MCList) par une (autre) MCList
- child = Node(self,item,self.command)
+ child = Node(self,item,self.command,self.rmenu)
self.replace_node(enfant,child)
else :
- child = Node(self, item,self.command)
+ child = Node(self, item,self.command,self.rmenu)
if pos is None:
self.children.append(child)
else :
"""
if not self.children : self.build_children()
if pos == None :
- #pos = len(self.children)
if type(fils) == types.InstanceType:
pos = self.item.get_index_child(fils.nom)
else:
if child == 0 :
# on n'a pas pu créer le noeud fils
return 0
- child.displayed = 1
self.state = 'expanded'
+ child.displayed = 1
+ if child.item.isactif():
+ child.state = 'expanded'
+ if not child.children : child.build_children()
if verif == 'oui':
- if not child.children : child.build_children()
test = child.item.isMCList()
if test :
child.children[-1].verif_condition()
# on donne la position depuis l'extérieur
# (appel de append_child par append_brother par exemple)
index = pos
+ elif type(pos) == types.InstanceType:
+ # pos est un item. Il faut inserer name apres pos
+ index = self.item.get_index(pos) +1
else :
if type(name) == types.InstanceType:
index = self.item.get_index_child(name.nom)
nbnew = self.get_nb_children()
self.redraw(nbnew-nbold)
child.select()
- child.expand()
- #child.make_visible()
if retour == 'oui': return child
def delete_node_child(self,child):
print 'Erreur dans la destruction de ',self.item.get_nom(),' dans delete'
nbnew = pere.get_nb_children()
pere.redraw(nbnew-nbold)
+ pere.select()
def copynode(self,node,pos) :
""" node est le noeud à copier à la position pos de self ( = parent de node) """
try :
child.item.object.mc_liste = objet_copie.mc_liste
except:
- pass
+ traceback.print_exc()
+
#--------------------------------------------------------------
# Méthodes de vérification du contexte et de validité du noeud
#--------------------------------------------------------------
- def traite_mclist(self):
+ def traite_mclist_OLD(self):
""" Dans le cas d'une MCList il faut vérifier qu'elle n'est pas vide
ou réduite à un seul élément suite à une destruction
"""
# self représente une MCList
+ print "on passe par traite_mclist ",len(self.item)
if len(self.item) == 0 :
# la liste est vide : il faut la supprimer
self.delete()
noeud = self.children[0]
if self.parent.delete_child(self):
self.parent.append_node_child(noeud.item,pos=index,verif='non')
+ else:
+ print "destruction de self impossible !"
#if self.parent.delete_child(self):
# self.parent.copynode(self.children[0],index)
#else :
else :
return
+ def traite_mclist(self):
+ """ Dans le cas d'une MCList il faut vérifier qu'elle n'est pas vide
+ ou réduite à un seul élément suite à une destruction
+ """
+ # self représente une MCList
+ if len(self.item) == 0 :
+ # la liste est vide : il faut la supprimer
+ self.delete()
+ elif len(self.item) == 1:
+ # il ne reste plus qu'un élément dans la liste
+ # il faut supprimer la liste et créer directement l'objet
+ index = self.parent.children.index(self)
+ noeud = self.children[0]
+ noeud.parent = self.parent
+ self.parent.delete_node_child(self)
+ self.parent.item.replace_child(self.item,noeud.item)
+ self.parent.children.insert(index,noeud)
+ else :
+ return
+
def verif_all(self):
self.verif_all_children()
--- /dev/null
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module sert à construire les structures de données porteuses
+ des informations liées aux groupes de commandes
+"""
+import types
+
+class UIINFO:
+ """
+ Pour le moment la classe UIINFO ne sait traiter que des infos
+ portant sur la definition des groupes de commandes
+ Les autres informations sont ignorées
+ """
+ def __init__(self,parent,groupes=None,**args):
+ """
+ Initialiseur de la classe UIINFO.
+ Initialise a partir du dictionnaire UIinfo passé à
+ un objet ENTITE les attributs de la classe
+ """
+ # L'attribut parent stocke le lien vers l'objet ENTITE relié à UIINFO
+ self.parent=parent
+ self.groupes=groupes
+ if groupes == None:
+ # L'entite n'a pas de groupe associé. On lui associe le groupe "DEFAUT"
+ self.groupes=("DEFAUT",)
+ if type(self.groupes) != types.TupleType:
+ self.groupes=(self.groupes,)
+
+def traite_commande(commande,niveau):
+ """
+ Cette fonction cree l'attribut UI de l'objet commande
+ à partir des informations contenues dans UIinfo
+ """
+ uiinfo=commande.UIinfo or {}
+ UI=UIINFO(commande,**uiinfo)
+ commande.UI=UI
+ if "CACHE" in UI.groupes:
+ # La commande est cachee aux utilisateurs
+ #niveau.dict_groupes["CACHE"].append(commande.nom)
+ pass
+ else:
+ # On ajoute la commande dans tous les groupes specifies
+ for grp in UI.groupes:
+ if not niveau.dict_groupes.has_key(grp): niveau.dict_groupes[grp]=[]
+ niveau.dict_groupes[grp].append(commande.nom)
+
+def traite_niveau(niveau):
+ if niveau.l_niveaux == ():
+ # Il n'y a pas de sous niveaux. niveau.entites ne contient que des commandes
+ niveau.dict_groupes={}
+ for oper in niveau.entites:
+ traite_commande(oper,niveau)
+ # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes
+ # sans doublon
+ niveau.liste_groupes=niveau.dict_groupes.keys()
+ # On ordonne les listes alphabétiquement
+ niveau.liste_groupes.sort()
+ for v in niveau.dict_groupes.values():v.sort()
+ #print niveau.liste_groupes
+ #print niveau.dict_groupes
+ else:
+ for niv in niveau.l_niveaux:
+ traite_niveau(niv)
+
+def traite_UIinfo(cata):
+ """
+ Cette fonction parcourt la liste des commandes d'un catalogue (cata)
+ construit les objets UIINFO à partir de l'attribut UIinfo de la commande
+ et construit la liste complète de tous les groupes présents
+ """
+ #dict_groupes["CACHE"]=[]
+ #XXX Ne doit pas marcher avec les niveaux
+ if cata.JdC.l_niveaux == ():
+ # Il n'y a pas de niveaux
+ # On stocke la liste des groupes et leur contenu dans le JdC
+ # dans les attributs liste_groupes et dict_groupes
+ cata.JdC.dict_groupes={}
+ for commande in cata.JdC.commandes:
+ traite_commande(commande,cata.JdC)
+ # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes
+ # sans doublon
+ cata.JdC.liste_groupes=cata.JdC.dict_groupes.keys()
+ # On ordonne les listes alphabétiquement
+ cata.JdC.liste_groupes.sort()
+ for v in cata.JdC.dict_groupes.values():v.sort()
+ #print cata.JdC.liste_groupes
+ #print cata.JdC.dict_groupes
+ else:
+ # Le catalogue de commandes contient des définitions de niveau
+ for niv in cata.JdC.l_niveaux:
+ traite_niveau(niv)
+
+
+
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient des utilitaires divers
"""
-import os
+import os,re
+import glob
+import traceback
def substract_list(liste1,liste2):
"""
except:
return 0
-def extension(pathAndFile):
+def extension_fichier(pathAndFile):
""" Return ext if path/filename.ext is given """
return os.path.splitext(pathAndFile)[1][1:]
""" Return filename.ext if path/filename.ext is given """
return os.path.split(pathAndFile)[1]
+def init_rep_cata_dev(fic_cata,rep_goal):
+ """
+ Initialise le répertoire des catalogues développeurs (chemin d'accès donné
+ dans le fichier eficas.ini cad :
+ - le crée s'il n'existe pas encore
+ - copie dedans les 3 fichiers nécessaires :
+ * __init__.py (pour que ce répertoire puisse être interprété comme un package)
+ * entete.py (pour réaliser les import nécessaires à l'interprétation des catalogues)
+ * declaration_concepts.py (idem)
+ - crée le fichier cata_developpeur.py qui sera par la suite importé
+ """
+ try :
+ if not os.path.isdir(rep_goal) :
+ os.mkdir(rep_goal)
+ texte_entete = get_entete_cata(fic_cata)
+ # rep_goal doit contenir les catalogues du développeur sous la forme *.capy
+ # il faut créer le catalogue développeur par concaténation de entete,declaration_concepts
+ # et de tous ces fichiers
+ cur_dir = os.getcwd()
+ os.chdir(rep_goal)
+ l_cata_dev = glob.glob('*.capy')
+ if os.path.isfile('cata_developpeur.py') : os.remove('cata_developpeur.py')
+ if len(l_cata_dev) :
+ # des catalogues développeurs sont effectivement présents : on crée cata_dev.py dans rep_goal
+ str = ''
+ str = str + texte_entete+'\n'
+ for file in l_cata_dev :
+ str = str + open(file,'r').read() +'\n'
+ open('cata_developpeur.py','w+').write(str)
+ os.chdir(cur_dir)
+ except:
+ traceback.print_exc()
+ print "Impossible de transférer les fichiers requis dans :",rep_goal
+
+def get_entete_cata(fic_cata):
+ """ Retrouve l'entete du catalogue """
+ l_lignes = open(fic_cata,'r').readlines()
+ txt = ''
+ flag = 0
+ for ligne in l_lignes :
+ if re.match("# debut entete",ligne) : flag = 1
+ if re.match("# fin entete",ligne) : break
+ if not flag : continue
+ txt = txt + ligne
+ return txt
+
-#@ MODIF widgets Editeur DATE 05/09/2001 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
# ----------------------------------------------------------
# Cette classe sert à définir les widgets utilisés par
def wait(self):
self.fenetre.grab_set()
+ self.zone_texte.focus_set()
self.fenetre.wait_window(self.fenetre)
def quit(self):
""" Permet de sauvegarder le texte dans un fichier dont on a demandé le nom
à l'utilisateur """
file = asksaveasfilename(defaultextension = '.comm',
- initialdir = self.appli.CONFIGURATION.rep_user,
+ #initialdir = self.appli.CONFIGURATION.rep_user,
+ initialdir = self.appli.CONFIGURATION.initialdir,
title="Sauvegarde du "+self.titre)
if file != '':
if not save_in_file(file,self.texte) :
else:
showinfo("Sauvegarde effectuée","Sauvegarde effectuée dans le fichier %s" %file)
+class FenetreYesNo(Fenetre):
+ def __init__(self,appli,titre="",texte="",yes="Yes",no="No"):
+ self.appli=appli
+ self.fenetre = Toplevel()
+ self.fenetre.configure(width = 800,height=500)
+ self.fenetre.protocol("WM_DELETE_WINDOW", self.quit)
+ self.fenetre.title(titre)
+ self.texte = string.replace(texte,'\r\n','\n')
+ self.titre = titre
+ fonte=fontes.standardcourier10
+ # définition des frames
+ self.frame_texte = Frame(self.fenetre)
+ self.frame_boutons = Frame(self.fenetre)
+ self.frame_boutons.place(relx=0,rely=0, relwidth=1.,relheight=0.1)
+ self.frame_texte.place( relx=0,rely=0.1, relwidth=1, relheight=0.9)
+ # définition de la zone texte et du scrollbar
+ self.zone_texte = Text(self.frame_texte,font=fonte)
+ self.zone_texte.bind("<Key-Prior>", self.page_up)
+ self.zone_texte.bind("<Key-Next>", self.page_down)
+ self.zone_texte.bind("<Key-Up>", self.unit_up)
+ self.zone_texte.bind("<Key-Down>", self.unit_down)
+ self.scroll_v = Scrollbar (self.frame_texte,command = self.zone_texte.yview)
+ #self.scroll_h = Scrollbar (self.frame_texte,command = self.zone_texte.xview)
+ self.scroll_v.pack(side='right',fill ='y')
+ #self.scroll_h.pack(side='bottom',fill ='x')
+ self.zone_texte.pack(side='top',fill='both',expand=1,padx=5,pady=10)
+ self.zone_texte.configure(yscrollcommand=self.scroll_v.set)
+ # définition des boutons
+ self.but_yes = Button(self.frame_boutons,text = yes,command=self.yes)
+ self.but_no = Button(self.frame_boutons,text = no,command = self.no)
+ self.but_yes.place(relx=0.4,rely=0.5,anchor='center')
+ self.but_no.place(relx=0.6,rely=0.5,anchor='center')
+ # affichage du texte
+ self.affiche_texte(self.texte)
+ centerwindow(self.fenetre)
+
+ def yes(self):
+ self.result=1
+ self.quit()
+
+ def no(self):
+ self.result=0
+ self.quit()
+
class FenetreDeSelection(Fenetre):
- """ Classe dérivée de Fenêtre permettant la récupération d'une zone de texte sélectionnée.\r
- Cette classe est utilisée pour affecter une liste de valeurs à un mot-clé.\r
- """\r
- def __init__(self,panel,item,appli,titre="",texte=""):\r
- Fenetre.__init__(self,appli,titre=titre,texte=texte)\r
- self.fenetre.configure(width = 320,height=400)\r
+ """ Classe dérivée de Fenêtre permettant la récupération d'une zone de texte sélectionnée.
+ Cette classe est utilisée pour affecter une liste de valeurs à un mot-clé.
+ """
+ def __init__(self,panel,item,appli,titre="",texte=""):
+ Fenetre.__init__(self,appli,titre=titre,texte=texte)
+ self.fenetre.configure(width = 320,height=400)
centerwindow(self.fenetre)
self.panel = panel
self.item = item
self.fenetre.title(titre)
- self.but_save.configure(text="Ajouter",command=self.traite_selection)\r
- # séparateur par défaut\r
- self.separateur = ";"\r
- # création de la zone de saisie du séparateur\r
- l_separateurs_autorises = self.get_separateurs_autorises()\r
- self.choix_sep = Pmw.ComboBox(self.frame_boutons,\r
- label_text = "Séparateur :",\r
- labelpos = 'w',\r
- listheight = 100,\r
- selectioncommand = self.choose_separateur,\r
- scrolledlist_items = l_separateurs_autorises)\r
- self.choix_sep.component('entry').configure(width=6)\r
- self.choix_sep.place(relx=0.01,rely=0.5,anchor='w')\r
- self.choix_sep.selectitem(self.separateur)\r
- # Replacement\r
- self.but_quit.place_forget()\r
- self.but_save.place_forget()\r
- self.but_save.place(relx=0.6,rely=0.5,anchor='center')\r
- self.but_quit.place(relx=0.8,rely=0.5,anchor='center')\r
-\r
- def get_separateurs_autorises(self):\r
- """\r
- Retourne la liste des séparateurs autorisés\r
- """\r
- return ['espace',';',',']\r
-\r
- def choose_separateur(self,nom_sep):\r
- """\r
- Affecte à self.separateur le caractère séparateur correspondant à nom_sep\r
- """\r
- if nom_sep == 'espace' :\r
- self.separateur = ' '\r
- else:\r
- self.separateur = nom_sep\r
- \r
- def traite_selection(self):\r
- """ Cette méthode effectue tous les traitements nécessaires pour vérifier\r
- et affecter la liste de valeurs à l'objet réprésenté par self.item\r
- """\r
- # Récupère la liste des chaines de caractères de la zone sélectionnée\r
- message,liste = self.recupere_liste()\r
- if self.test_probleme(message,"Sélectionnez des données") == 0:\r
- return\r
- # Vérifie que le nombre de données est dans les limites attendues\r
- message = self.verif_liste(liste)\r
- if self.test_probleme(message,"Vérifiez le nombre de données") == 0:\r
- return\r
- # Crée une liste de valeurs du type attendu\r
- message,liste_valeurs = self.creation_liste_valeurs(liste)\r
- if self.test_probleme(message,"Vérifiez le type des données") == 0:\r
- return\r
- # Vérifie que chaque valeur est dans le domaine exigé\r
- message = self.verif_valeurs(liste_valeurs)\r
- if self.test_probleme(message,"Vérifiez le domaine des valeurs") == 0:\r
- return\r
- # Ajoute les valeurs dans la liste de valeurs du mot-clé\r
- self.ajouter_valeurs(liste_valeurs)\r
- self.appli.affiche_infos("Liste de valeurs acceptée")\r
-\r
- def test_probleme(self, message, message_eficas):\r
- """ Cette méthode affiche un message d'erreur si message != ''\r
- et retourne 0, sinon retourne 1 sans rien afficher.\r
- """\r
- if message != "":\r
- showinfo("Problème",message)\r
- self.fenetre.tkraise()\r
- self.appli.affiche_infos(message_eficas)\r
- return 0\r
- else:\r
- return 1\r
-\r
- def recupere_liste(self):\r
- """ Cette méthode récupère le texte de la zone sélectionnée, construit et\r
- retourne une liste avec les chaines qui se trouvent entre les séparateurs.\r
- S'il n'y a pas de données selectionnées, elle retourne un message d'erreur\r
- et une liste vide.\r
- """\r
- message = ""\r
- try:\r
- selection=self.fenetre.selection_get()\r
- except:\r
- message = "Pas de donnée sélectionnée"\r
- return message,None\r
- # les retours chariots doivent être interprétés comme des séparateurs\r
- selection = string.replace(selection,'\n',self.separateur)\r
- # on splitte la sélection suivant le caractère séparateur\r
- liste_chaines = string.split(selection,self.separateur)\r
- l_chaines = []\r
- for chaine in liste_chaines:\r
- chaine = string.strip(chaine)\r
- if chaine != '' : l_chaines.append(chaine)\r
- return message,l_chaines\r
-\r
- def verif_liste(self, liste):\r
- """ Cette méthode effectue des tests sur le nombre d'éléments de la liste\r
- et retourne 1 si la liste est correcte, sinon 0 et le message d'erreur\r
- correspondant.\r
- """\r
- message = ""\r
- # nombre d'éléments sélectionnés\r
- nombre_elements = len(liste)\r
- # nombre d'éléments déja dans la liste du panel\r
- nombre_in_liste = len(self.panel.Liste_valeurs.get_liste())\r
- multiplicite = self.item.GetMultiplicite()\r
- if (nombre_elements % multiplicite) != 0:\r
- message = "Vous devez sélectionner "+str(multiplicite)+" * n données"\r
- return message\r
- nombre_valeurs = nombre_elements / multiplicite\r
- cardinalite = self.item.GetMinMax()\r
- if nombre_valeurs < cardinalite[0]:\r
- message = "Vous devez sélectionner au moins "+str(cardinalite[0])+" valeurs"\r
- return message\r
- if cardinalite[1] != "**" and nombre_valeurs > (long(cardinalite[1])-nombre_in_liste):\r
- message = "La liste ne peut avoir plus de "+str(cardinalite[1])+" valeurs"\r
- return message\r
-\r
- return message\r
-\r
- def creation_liste_valeurs(self, liste):\r
- """ Cette méthode crée et retourne une liste de valeurs du type attendu\r
- par le mot-clé. La liste de valeurs est créée à partir de la liste\r
- de chaines de caractères transmise.\r
- """\r
- type_attendu = self.item.GetType()[0]\r
- if type_attendu == 'R':\r
- return self.convertir(liste, f_conversion= float)\r
- elif type_attendu == 'I':\r
- return self.convertir(liste, f_conversion= int)\r
- elif type_attendu == 'TXM':\r
- return self.convertir(liste)\r
- else:\r
- message = "Seuls les entiers, les réels et les chaines de caractères sont convertis"\r
- return message,None\r
-\r
- def convertir(self, liste, f_conversion=None):\r
- """ Cette méthode essaie de convertir les éléments de la liste avec la\r
- fonction f_conversion si elle existe, et retourne la liste des\r
- éléments dans le type voulu en cas de succès, sinon retourne None.\r
- """\r
- liste_valeurs = []\r
- message = ""\r
- for chaine in liste:\r
- if f_conversion:\r
- try:\r
- liste_valeurs.append(f_conversion(chaine))\r
- except:\r
- message = "Impossible de convertir "+chaine+" dans le type attendu"\r
- return message,None\r
- else:\r
- liste_valeurs.append(chaine)\r
- return message,liste_valeurs\r
-\r
- def verif_valeurs(self, liste_valeurs):\r
- """ Cette méthode teste tous les éléments de la liste, et retourne 1 si chaque\r
- élément est dans le domaine voulu.\r
- """\r
- message = ""\r
- for valeur in liste_valeurs:\r
- test = self.item.IsInIntervalle(valeur)\r
- if test == 0:\r
- intervalle = str(self.item.GetIntervalle()[0])+","+str(self.item.GetIntervalle()[1])\r
- message = "La valeur "+str(valeur)+" n'est pas dans l'intervalle ["+intervalle+"]"\r
- return message\r
- return message\r
-\r
- def ajouter_valeurs(self, liste_valeurs):\r
- """ Cette méthode ajoute les nouvelles valeurs à la liste existante."""\r
- liste = self.panel.Liste_valeurs.get_liste()\r
- liste.extend(liste_valeurs)\r
+ self.but_save.configure(text="Ajouter",command=self.traite_selection)
+ # séparateur par défaut
+ self.separateur = ";"
+ # création de la zone de saisie du séparateur
+ l_separateurs_autorises = self.get_separateurs_autorises()
+ self.choix_sep = Pmw.ComboBox(self.frame_boutons,
+ label_text = "Séparateur :",
+ labelpos = 'w',
+ listheight = 100,
+ selectioncommand = self.choose_separateur,
+ scrolledlist_items = l_separateurs_autorises)
+ self.choix_sep.component('entry').configure(width=6)
+ self.choix_sep.place(relx=0.01,rely=0.5,anchor='w')
+ self.choix_sep.selectitem(self.separateur)
+ # Replacement
+ self.but_quit.place_forget()
+ self.but_save.place_forget()
+ self.but_save.place(relx=0.6,rely=0.5,anchor='center')
+ self.but_quit.place(relx=0.8,rely=0.5,anchor='center')
+
+ def get_separateurs_autorises(self):
+ """
+ Retourne la liste des séparateurs autorisés
+ """
+ return ['espace',';',',']
+
+ def choose_separateur(self,nom_sep):
+ """
+ Affecte à self.separateur le caractère séparateur correspondant à nom_sep
+ """
+ if nom_sep == 'espace' :
+ self.separateur = ' '
+ else:
+ self.separateur = nom_sep
+
+ def traite_selection(self):
+ """ Cette méthode effectue tous les traitements nécessaires pour vérifier
+ et affecter la liste de valeurs à l'objet réprésenté par self.item
+ """
+ # Récupère la liste des chaines de caractères de la zone sélectionnée
+ message,liste = self.recupere_liste()
+ if self.test_probleme(message,"Sélectionnez des données") == 0:
+ return
+ # Vérifie que le nombre de données est dans les limites attendues
+ message = self.verif_liste(liste)
+ if self.test_probleme(message,"Vérifiez le nombre de données") == 0:
+ return
+ # Crée une liste de valeurs du type attendu
+ message,liste_valeurs = self.creation_liste_valeurs(liste)
+ if self.test_probleme(message,"Vérifiez le type des données") == 0:
+ return
+ # Vérifie que chaque valeur est dans le domaine exigé
+ message = self.verif_valeurs(liste_valeurs)
+ if self.test_probleme(message,"Vérifiez le domaine des valeurs") == 0:
+ return
+ # Ajoute les valeurs dans la liste de valeurs du mot-clé
+ self.ajouter_valeurs(liste_valeurs)
+ self.appli.affiche_infos("Liste de valeurs acceptée")
+
+ def test_probleme(self, message, message_eficas):
+ """ Cette méthode affiche un message d'erreur si message != ''
+ et retourne 0, sinon retourne 1 sans rien afficher.
+ """
+ if message != "":
+ showinfo("Problème",message)
+ self.fenetre.tkraise()
+ self.appli.affiche_infos(message_eficas)
+ return 0
+ else:
+ return 1
+
+ def recupere_liste(self):
+ """ Cette méthode récupère le texte de la zone sélectionnée, construit et
+ retourne une liste avec les chaines qui se trouvent entre les séparateurs.
+ S'il n'y a pas de données selectionnées, elle retourne un message d'erreur
+ et une liste vide.
+ """
+ message = ""
+ try:
+ selection=self.fenetre.selection_get()
+ except:
+ message = "Pas de donnée sélectionnée"
+ return message,None
+ # les retours chariots doivent être interprétés comme des séparateurs
+ selection = string.replace(selection,'\n',self.separateur)
+ # on splitte la sélection suivant le caractère séparateur
+ liste_chaines = string.split(selection,self.separateur)
+ l_chaines = []
+ for chaine in liste_chaines:
+ chaine = string.strip(chaine)
+ if chaine != '' : l_chaines.append(chaine)
+ return message,l_chaines
+
+ def verif_liste(self, liste):
+ """ Cette méthode effectue des tests sur le nombre d'éléments de la liste
+ et retourne 1 si la liste est correcte, sinon 0 et le message d'erreur
+ correspondant.
+ """
+ message = ""
+ # nombre d'éléments sélectionnés
+ nombre_elements = len(liste)
+ # nombre d'éléments déja dans la liste du panel
+ nombre_in_liste = len(self.panel.Liste_valeurs.get_liste())
+ multiplicite = self.item.GetMultiplicite()
+ if (nombre_elements % multiplicite) != 0:
+ message = "Vous devez sélectionner "+str(multiplicite)+" * n données"
+ return message
+ nombre_valeurs = nombre_elements / multiplicite
+ cardinalite = self.item.GetMinMax()
+ if nombre_valeurs < cardinalite[0]:
+ message = "Vous devez sélectionner au moins "+str(cardinalite[0])+" valeurs"
+ return message
+ if cardinalite[1] != "**" and nombre_valeurs > (long(cardinalite[1])-nombre_in_liste):
+ message = "La liste ne peut avoir plus de "+str(cardinalite[1])+" valeurs"
+ return message
+
+ return message
+
+ def creation_liste_valeurs(self, liste):
+ """ Cette méthode crée et retourne une liste de valeurs du type attendu
+ par le mot-clé. La liste de valeurs est créée à partir de la liste
+ de chaines de caractères transmise.
+ """
+ type_attendu = self.item.GetType()[0]
+ if type_attendu == 'R':
+ return self.convertir(liste, f_conversion= float)
+ elif type_attendu == 'I':
+ return self.convertir(liste, f_conversion= int)
+ elif type_attendu == 'TXM':
+ return self.convertir(liste)
+ else:
+ message = "Seuls les entiers, les réels et les chaines de caractères sont convertis"
+ return message,None
+
+ def convertir(self, liste, f_conversion=None):
+ """ Cette méthode essaie de convertir les éléments de la liste avec la
+ fonction f_conversion si elle existe, et retourne la liste des
+ éléments dans le type voulu en cas de succès, sinon retourne None.
+ """
+ liste_valeurs = []
+ message = ""
+ for chaine in liste:
+ if f_conversion:
+ try:
+ liste_valeurs.append(f_conversion(chaine))
+ except:
+ message = "Impossible de convertir "+chaine+" dans le type attendu"
+ return message,None
+ else:
+ liste_valeurs.append(chaine)
+ return message,liste_valeurs
+
+ def verif_valeurs(self, liste_valeurs):
+ """ Cette méthode teste tous les éléments de la liste, et retourne 1 si chaque
+ élément est dans le domaine voulu.
+ """
+ message = ""
+ for valeur in liste_valeurs:
+ test = self.item.IsInIntervalle(valeur)
+ if test == 0:
+ intervalle = str(self.item.GetIntervalle()[0])+","+str(self.item.GetIntervalle()[1])
+ message = "La valeur "+str(valeur)+" n'est pas dans l'intervalle ["+intervalle+"]"
+ return message
+ return message
+
+ def ajouter_valeurs(self, liste_valeurs):
+ """ Cette méthode ajoute les nouvelles valeurs à la liste existante."""
+ liste = self.panel.Liste_valeurs.get_liste()
+ liste.extend(liste_valeurs)
self.panel.Liste_valeurs.put_liste(liste)
class Formulaire:
- """\r
+ """
Cette classe permet de créer une boîte Dialog dans laquelle
- on affiche un formulaire à remplir par l'utilisateur\r
+ on affiche un formulaire à remplir par l'utilisateur
"""
- def __init__(self,fen_pere,obj_pere=None,titre="",texte="",items=(),mode='query',commande=None):\r
+ def __init__(self,fen_pere,obj_pere=None,titre="",texte="",items=(),mode='query',commande=None):
if items in ((),[]) : return
self.items = items
self.titre = titre
self.command = commande
self.display()
- def display(self):\r
+ def display(self):
self.init_validateurs()
self.init_fenetre()
self.init_texte()
self.init_items_formulaire()
self.fenetre.activate(geometry='centerscreenalways')
-\r
- def init_validateurs(self):\r
- """\r
- Crée le dictionnaire des validateurs des objets reconnus par le formulaire\r
- """\r
- self.d_validateurs = {}\r
- self.d_validateurs['rep'] = self.repvalidator\r
- self.d_validateurs['file'] = self.filevalidator\r
- self.d_validateurs['cata']= self.catavalidator\r
+
+ def init_validateurs(self):
+ """
+ Crée le dictionnaire des validateurs des objets reconnus par le formulaire
+ """
+ self.d_validateurs = {}
+ self.d_validateurs['rep'] = self.repvalidator
+ self.d_validateurs['file'] = self.filevalidator
+ self.d_validateurs['cata']= self.catavalidator
- def init_fenetre(self):\r
- """\r
- Crée la fenêtre Dialog\r
+ def init_fenetre(self):
+ """
+ Crée la fenêtre Dialog
"""
if self.mode == 'query':
buttons=('Valider','Annuler')
buttons=buttons,
defaultbutton = defaultbutton,
title = self.titre,
- command = self.execute)\r
+ command = self.execute)
self.fenetre.withdraw()
- def init_texte(self):\r
- """\r
- Crée le label qui affiche le texte à l'intérieur du panneau\r
+ def init_texte(self):
"""
- fonte=fontes.standard\r
- fr_texte = Frame(self.fenetre.interior(),height=60)\r
+ Crée le label qui affiche le texte à l'intérieur du panneau
+ """
+ fonte=fontes.standard
+ fr_texte = Frame(self.fenetre.interior(),height=60)
fr_texte.pack(side='top',fill='x',expand=1)
Label(fr_texte,text = self.texte, font=fonte).place(relx=0.5,rely=0.5,anchor='center')
-\r
- def init_items_formulaire(self):\r
- """\r
- Crée et affiche les items dans la boîte de dialogue\r
- """\r
- self.radiobut = 0\r
- self.widgets = []\r
- self.item_widgets = {}\r
- length_maxi = 0\r
+
+ def init_items_formulaire(self):
+ """
+ Crée et affiche les items dans la boîte de dialogue
+ """
+ self.radiobut = 0
+ self.widgets = []
+ self.item_widgets = {}
+ length_maxi = 0
for item in self.items:
- if len(item[0])>length_maxi : length_maxi = len(item[0])\r
- window = self.fenetre.interior()\r
- for item in self.items :\r
- label,nature,nom_var,defaut = item\r
- # création de la frame\r
- fr_item = Frame(window,height=40,width=700)\r
- fr_item.pack(side='top',fill='x',expand=1)\r
- # création du label\r
- Label(fr_item,text = label).place(relx=0.05,rely=0.4)\r
+ if len(item[0])>length_maxi : length_maxi = len(item[0])
+ window = self.fenetre.interior()
+ for item in self.items :
+ label,nature,nom_var,defaut = item
+ # création de la frame
+ fr_item = Frame(window,height=40,width=700)
+ fr_item.pack(side='top',fill='x',expand=1)
+ # création du label
+ Label(fr_item,text = label).place(relx=0.05,rely=0.4)
if nature in ('rep','file','cata'):
- # création de l'entry\r
- e_item = Entry(fr_item) \r
- e_item.place(relx=0.5,rely=0.4,relwidth=0.45)\r
- self.widgets.append(e_item)\r
- self.item_widgets[item] = e_item\r
- if defaut : e_item.insert(0,str(defaut))\r
- elif nature == 'YesNo':\r
- # création de la StringVar\r
- var = StringVar()\r
- setattr(self,'item_'+nom_var,var)\r
- var.set(defaut)\r
- # création du radiobouton\r
- rb1 = Radiobutton(fr_item,text='OUI',variable=var,value='OUI')\r
- rb2 = Radiobutton(fr_item,text='NON',variable=var,value='NON')\r
- rb1.place(relx=0.65,rely=0.5,anchor='center')\r
- rb2.place(relx=0.80,rely=0.5,anchor='center')\r
- self.widgets.append((rb1,rb2))\r
- self.item_widgets[item] = var\r
- # détermination de la méthode à appliquer sur les boutons\r
- if self.mode == 'query':\r
- function = self.active\r
- elif self.mode == 'display':\r
- function = self.inactive\r
- else:\r
- return\r
- # on applique la méthode sur les boutons (activation ou désactivation) \r
- for widget in self.widgets :\r
- if type(widget) == types.TupleType:\r
- for widg in widget :\r
- apply(function,(widg,),{})\r
- else:\r
- apply(function,(widget,),{})\r
-\r
- def active(self,widget):\r
- """\r
- Active le widget passé en argument\r
- """\r
- widget.configure(state='normal',bg='white')\r
-\r
- def inactive(self,widget):\r
- """\r
- Inactive le widget passé en argument\r
- """\r
- if not isinstance(widget,Radiobutton) :\r
- widget.configure(state='disabled',bg='gray95')\r
- else :\r
- widget.configure(state='disabled')\r
-\r
-# --------------------------------------------------------------------------------\r
-# Validateurs des noms de répertoire, de fichiers et de catalogues\r
-# --------------------------------------------------------------------------------\r
+ # création de l'entry
+ e_item = Entry(fr_item)
+ e_item.place(relx=0.5,rely=0.4,relwidth=0.45)
+ self.widgets.append(e_item)
+ self.item_widgets[item] = e_item
+ if defaut : e_item.insert(0,str(defaut))
+ elif nature == 'YesNo':
+ # création de la StringVar
+ var = StringVar()
+ setattr(self,'item_'+nom_var,var)
+ var.set(defaut)
+ # création du radiobouton
+ rb1 = Radiobutton(fr_item,text='OUI',variable=var,value='OUI')
+ rb2 = Radiobutton(fr_item,text='NON',variable=var,value='NON')
+ rb1.place(relx=0.65,rely=0.5,anchor='center')
+ rb2.place(relx=0.80,rely=0.5,anchor='center')
+ self.widgets.append((rb1,rb2))
+ self.item_widgets[item] = var
+ # détermination de la méthode à appliquer sur les boutons
+ if self.mode == 'query':
+ function = self.active
+ elif self.mode == 'display':
+ function = self.inactive
+ else:
+ return
+ # on applique la méthode sur les boutons (activation ou désactivation)
+ for widget in self.widgets :
+ if type(widget) == types.TupleType:
+ for widg in widget :
+ apply(function,(widg,),{})
+ else:
+ apply(function,(widget,),{})
+
+ def active(self,widget):
+ """
+ Active le widget passé en argument
+ """
+ widget.configure(state='normal',bg='white')
+
+ def inactive(self,widget):
+ """
+ Inactive le widget passé en argument
+ """
+ if not isinstance(widget,Radiobutton) :
+ widget.configure(state='disabled',bg='gray95')
+ else :
+ widget.configure(state='disabled')
+
+# --------------------------------------------------------------------------------
+# Validateurs des noms de répertoire, de fichiers et de catalogues
+# -------------------------------------------------------------------------------
def repvalidator(self,text):
- """\r
- Teste si text peut faire référence à un répertoire ou non\r
- Retourne 1 si valide, 0 sinon\r
- """\r
+ """
+ Teste si text peut faire référence à un répertoire ou non
+ Retourne 1 si valide, 0 sinon
+ """
return os.path.isdir(text),'Répertoire introuvable : %s' %text
def filevalidator(self,text):
- """\r
- Teste si text peut faire référence à un fichier ou non\r
- Retourne 1 si valide, 0 sinon\r
- """\r
+ """
+ Teste si text peut faire référence à un fichier ou non
+ Retourne 1 si valide, 0 sinon
+ """
return os.path.isfile(text),'Fichier introuvable : %s' %text
-\r
- def catavalidator(self,text):\r
- """\r
- Teste si text est un chemin d'accès valide à un catalogue\r
- Retourne 1 si valide, 0 sinon\r
- """\r
- return os.path.isfile(text),"Catalogue introuvable : %s" %text\r
-\r
-# --------------------------------------------------------------------------------\r
-# Méthodes callbacks des boutons et de fin\r
-# --------------------------------------------------------------------------------\r
+
+ def catavalidator(self,text):
+ """
+ Teste si text est un chemin d'accès valide à un catalogue
+ Retourne 1 si valide, 0 sinon
+ """
+ return os.path.isfile(text),"Catalogue introuvable : %s" %text
+
+# --------------------------------------------------------------------------------
+# Méthodes callbacks des boutons et de fin
+# --------------------------------------------------------------------------------
- def execute(self,txt):\r
- """\r
- Cette commande est activée à chaque clic sur un bouton.\r
- Redirige l'action sur la bonne méthode en fonction du bouton activé\r
+ def execute(self,txt):
+ """
+ Cette commande est activée à chaque clic sur un bouton.
+ Redirige l'action sur la bonne méthode en fonction du bouton activé
"""
if txt == 'Valider':
self.fini()
print "Nom de bouton inconnu"
self.quit()
- def fini(self):\r
- """\r
- Commande qui termine le panneau et sauvegarde les nouvelles options\r
- dans l'objet resultat (dictionnaire)\r
+ def fini(self):
+ """
+ Commande qui termine le panneau et sauvegarde les nouvelles options
+ dans l'objet resultat (dictionnaire)
"""
dico={}
- for item,widget in self.item_widgets.items():\r
- nom_var = item[2]\r
+ for item,widget in self.item_widgets.items():
+ nom_var = item[2]
type_var = item[1]
- valeur = widget.get()\r
- if self.d_validateurs.has_key(type_var):\r
- test = self.d_validateurs[type_var](valeur)\r
- if not test :\r
- # une entrée n'est pas valide --> on la met en surbrillance et on quitte la méthode\r
- # sans tuer la fenêtre bien sûr\r
- widget.selection_range(0,END)\r
+ valeur = widget.get()
+ if self.d_validateurs.has_key(type_var):
+ test = self.d_validateurs[type_var](valeur)
+ if not test :
+ # une entrée n'est pas valide --> on la met en surbrillance et on quitte la méthode
+ # sans tuer la fenêtre bien sûr
+ widget.selection_range(0,END)
return
dico[nom_var] = valeur
self.fenetre.destroy()
- self.resultat=dico\r
+ self.resultat=dico
def quit(self):
self.fenetre.destroy()
def affiche_liste(self):
""" Affiche la liste dans la fenêtre"""
- i=0
+ liste_labels=[]
self.MCbox.config(state=NORMAL)
self.MCbox.delete(1.0,END)
for objet in self.liste :
elif type(objet) in (types.StringType,types.IntType):
mot = objet
elif type(objet) == types.FloatType :
- mot = repr_float(objet)
+ #mot = repr_float(objet)
+ mot = str(objet)
else:
mot=`objet`
label = Label(self.MCbox,
text = mot,
fg = 'black',bg = 'gray95',justify = 'left')
self.dico_labels[mot]=label
+ liste_labels.append(label)
self.MCbox.window_create(END,
window=label,
stretch = 1)
label.bind(self.liste_commandes[0][0],lambda e,s=self,c=self.liste_commandes[0][1],x=objet,l=label : s.selectitem(x,l,c))
label.bind(self.liste_commandes[1][0],lambda e,s=self,c=self.liste_commandes[1][1],x=objet,l=label : s.deselectitem(l,x,c))
label.bind(self.liste_commandes[2][0],lambda e,s=self,c=self.liste_commandes[2][1],x=objet,l=label : s.chooseitem(x,l,c))
- try :
- self.liste_marques.index(i)
- self.markitem(label)
- except:
+
+ for marque in self.liste_marques:
+ try:
+ self.markitem(liste_labels[marque])
+ except:
pass
- i=i+1
+
self.MCbox.config(state=DISABLED)
self.selection = None
def get_liste_old(self):
return self.liste
+ # PN attention à la gestion des paramétres
+ # cela retourne H = 1 , et ni H, ni 1
+ # print repr(val)
+ # print val.__class__.__name__
def get_liste(self):
l=[]
for val in self.liste:
try:
- val = eval(val)
- l.append(val)
+ v = eval(val)
+ l.append(v)
except:
l.append(val)
return l
self.progress.update()
class Ask_Format_Fichier :
- """\r
+ """
Cette classe permet de créer une fenêtre Toplevel dans laquelle
- on propose le choix du format de fichier de commandes à ouvrir\r
+ on propose le choix du format de fichier de commandes à ouvrir
"""
def __init__(self,appli):
self.fenetre = Toplevel()
def quit(self):
self.quit = 1
+
+class ListeChoixParGroupes(ListeChoix) :
+ """
+ Cette classe est utilisée pour afficher une liste de commandes classées par
+ groupes. L'utilisateur peut réaliser des actions de selection
+ qui déclenchent des actions spécifiées par les bindings contenus dans liste_commandes
+ """
+ def __init__(self,parent,page,liste_groupes,dict_groupes,liste_commandes=[],liste_marques =[],
+ active ='oui',filtre='non',titre=''):
+ self.parent = parent
+ self.page = page
+ self.liste_groupes = liste_groupes
+ self.dict_groupes = dict_groupes
+ self.dico_labels={}
+ self.selection = None
+ self.liste_commandes = liste_commandes
+ self.liste_marques = liste_marques
+ self.arg_selected=''
+ self.active = active
+ self.titre = titre
+ self.filtre = filtre
+ self.init()
+
+ def affiche_liste(self):
+ """ Affiche la liste dans la fenêtre"""
+ liste_labels=[]
+ self.MCbox.config(state=NORMAL)
+ self.MCbox.delete(1.0,END)
+ for grp in self.liste_groupes:
+ # On itère sur les groupes
+ if grp == "CACHE":continue
+ liste_commandes=self.dict_groupes[grp]
+ text="GROUPE<<<<<<<< "+grp+" "
+ text=text+">"*max(0,30-len(text))
+ label = Label(self.MCbox,
+ text = text,
+ fg = 'black',bg = 'gray95',justify = 'left')
+ # On stocke la relation entre le nom de la commande et le label
+ self.dico_labels[grp]=label
+ liste_labels.append(label)
+ self.MCbox.window_create(END,
+ window=label,
+ stretch = 1)
+ self.MCbox.insert(END,'\n')
+ for cmd in liste_commandes:
+ label = Label(self.MCbox,
+ text = cmd,
+ 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.MCbox.window_create(END,
+ window=label,
+ stretch = 1)
+ self.MCbox.insert(END,'\n')
+ if self.active == 'oui':
+ label.bind(self.liste_commandes[0][0],
+ lambda e,s=self,c=self.liste_commandes[0][1],x=cmd,l=label : s.selectitem(x,l,c))
+ label.bind(self.liste_commandes[1][0],
+ lambda e,s=self,c=self.liste_commandes[1][1],x=cmd,l=label : s.deselectitem(l,x,c))
+ label.bind(self.liste_commandes[2][0],
+ lambda e,s=self,c=self.liste_commandes[2][1],x=cmd,l=label : s.chooseitem(x,l,c))
+
+ for marque in self.liste_marques:
+ try:
+ self.markitem(liste_labels[marque])
+ except:
+ pass
+
+ self.MCbox.config(state=DISABLED)
+ self.selection = None
+
+ def entry_changed(self,event=None):
+ """
+ Cette méthode est invoquée chaque fois que l'utilisateur modifie le contenu
+ de l'entry et frappe <Return>
+ """
+ if self.arg_selected != '' : self.deselectitem(self.dico_labels[self.arg_selected])
+ filtre = self.entry.get()+"*"
+ FILTRE = string.upper(filtre)
+ #
+ # On cherche d'abord dans les noms de groupe
+ # puis dans les noms de commande groupe par groupe
+ #
+ for grp in self.liste_groupes:
+ if fnmatch.fnmatch(grp,filtre) or fnmatch.fnmatch(grp,FILTRE) :
+ index = self.MCbox.index(self.dico_labels[grp])
+ self.MCbox.see(index)
+ # On ne selectionne pas le groupe
+ #self.arg_selected = grp
+ # On a trouve un groupe on arrete la recherche
+ return
+
+ for grp in self.liste_groupes:
+ for cmd in self.dict_groupes[grp] :
+ if fnmatch.fnmatch(cmd,filtre) or fnmatch.fnmatch(cmd,FILTRE) :
+ self.highlightitem(self.dico_labels[cmd])
+ index = self.MCbox.index(self.dico_labels[cmd])
+ self.MCbox.see(index)
+ self.arg_selected = cmd
+ # On a trouve une commande on arrete la recherche
+ return
+
dans des sous-répertoires de nom exNNN où NNN est le numéro
de l'exemple
+ex18 :
+ Cet exemple test met en oeuvre le convertisseur asterV5
""" Retourne 1 si sd est du bon type par rapport à la classe """
return 0
+class cata:
+ def __init__(self):
+ CONTEXT.unset_current_cata()
+ CONTEXT.set_current_cata(self)
+
+ def enregistre(self,commande):
+ return
+
+c=cata()
+
OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
a=SIMP(typ='I'),
c=SIMP(typ='I',position='global'),
import convert
p=convert.plugins['asterv5']()
-p.readfile('totalmod.comm')
+p.readfile('torsion.comm')
+#p.readfile('totalmod.comm')
if not p.cr.estvide():
print p.cr
sys.exit(0)
--- /dev/null
+ DEBUT();
+
+
+ INCLUDE(UNITE: 80);
+
+TPS = 1. ;
+
+
+
+SY = 90. ;
+
+
+
+A = 1. ;
+H = 0.01 ;
+N = 50 ;
+T = 0.01 ;
+TD = DEFI_VALEUR(R8: EVAL(T*180./PI)) ;
+CT = DEFI_VALEUR(R8: EVAL(COS(T))) ;
+ST = DEFI_VALEUR(R8: EVAL(SIN(T))) ;
+MST= DEFI_VALEUR(R8: EVAL(-ST));
+RAT= DEFI_VALEUR(R8: EVAL(H/A));
+
+
+K_REF = DEFI_VALEUR( R8: EVAL(0.9845615*Q1) );
+EPS_Y = DEFI_VALEUR( R8: EVAL( (1./K_REF)**5. ));
+YOUNG = DEFI_VALEUR( R8: EVAL(SY/EPS_Y) );
+
+!FORMULE( REEL: (
+ RP(REEL:EPSI) = K_REF * SY * EPSI**0.2
+ ) );
+
+ECH_EPSI = DEFI_LIST_REEL (
+ DEBUT: EPS_Y
+ INTERVALLE: (
+ JUSQU_A: 3.
+ NOMBRE : 300
+ )
+ ) ;
+
+TRAC = CALC_FONC_INTERP (
+ FONCTION: RP
+ LIST_PARA : ECH_EPSI
+ PROL_GAUCHE: 'LINEAIRE'
+ PROL_DROIT : 'LINEAIRE'
+ ) ;
+
+
+ PRE_GIBI();
+ MA = LIRE_MAILLAGE();
+
+&MA = DEFI_GROUP
+ (
+ MAILLAGE: MA
+ CREA_GROUP_NO:
+ (
+ TOUT_GROUP_MA: 'OUI'
+ )
+ ) ;
+
+
+ CUIVRE = DEFI_MATERIAU
+ (
+ ELAS :
+ (
+ E : YOUNG
+ NU: 0.3
+ )
+ TRACTION : (
+ SIGM: TRAC
+ )
+ NON_LOCAL: (
+ LONG_CARA: LC
+ )
+ ) ;
+
+ CHMAT = AFFE_MATERIAU
+ (
+ MAILLAGE: MA
+ AFFE :
+ (
+ GROUP_MA: TRANCHE
+ MATER : CUIVRE
+ )
+ ) ;
+
+
+ MO_MECA = AFFE_MODELE
+ (
+ MAILLAGE: MA
+ AFFE :
+ (
+ GROUP_MA : TRANCHE
+ PHENOMENE : 'MECANIQUE'
+ MODELISATION : '3D_SI'
+ )
+ ) ;
+
+ MO_DELO = AFFE_MODELE (
+ MAILLAGE: MA
+ AFFE:
+ (
+ GROUP_MA: TRANCHE
+ PHENOMENE: 'NON_LOCAL'
+ MODELISATION: '3D'
+ )
+ ) ;
+
+
+!FORMULE ( REEL : ( UX_IMP(REEL: INST, REEL:X, REEL:Y) =
+ -INST*RAT*Y
+ ));
+!FORMULE ( REEL : ( UY_IMP(REEL: INST, REEL:X, REEL:Y) =
+ INST*RAT*X
+ ));
+!FORMULE ( REEL : ( UZ_IMP(REEL:X, REEL:Y) = 0. ));
+
+
+ ANCRAGE = AFFE_CHAR_MECA (
+ MODELE : MO_MECA
+ FACE_IMPO:
+ (
+ GROUP_MA: BAS
+ DX: 0.
+ DY: 0.
+ DZ: 0.
+ )
+ ) ;
+
+ TORSION = AFFE_CHAR_MECA_F (
+ MODELE : MO_MECA
+ FACE_IMPO:
+ (
+ GROUP_MA: HAUT
+ DX : UX_IMP
+ DY : UY_IMP
+ DZ : UZ_IMP
+ )
+ ) ;
+
+
+ SYMETRIE = AFFE_CHAR_MECA (
+ MODELE: MO_MECA
+ LIAISON_GROUP: (
+ GROUP_MA_1 : SYM_CY_0
+ GROUP_MA_2 : SYM_CY_1
+ SANS_GROUP_NO: (HAUT, BAS)
+ DDL_1 : ('DX' 'DY' )
+ DDL_2 : ('DX' )
+ COEF_MULT_1 : (CT MST)
+ COEF_MULT_2 : (-1.)
+ COEF_IMPO : 0.
+ CENTRE : (0. 0. 0.)
+ ANGL_NAUT : (TD 0. 0.)
+ SOMMET : 'OUI'
+ )
+ LIAISON_GROUP: (
+ GROUP_MA_1 : SYM_CY_0
+ GROUP_MA_2 : SYM_CY_1
+ SANS_GROUP_NO: (HAUT, BAS)
+ DDL_1 : ('DX' 'DY' )
+ DDL_2 : ('DY' )
+ COEF_MULT_1 : (ST CT)
+ COEF_MULT_2 : (-1.)
+ COEF_IMPO : 0.
+ CENTRE : (0. 0. 0.)
+ ANGL_NAUT : (TD 0. 0.)
+ SOMMET : 'OUI'
+ )
+ LIAISON_GROUP: (
+ GROUP_MA_1 : SYM_CY_0
+ GROUP_MA_2 : SYM_CY_1
+ SANS_GROUP_NO: (HAUT, BAS)
+ DDL_1 : ('DZ')
+ DDL_2 : ('DZ')
+ COEF_MULT_1 : (1.)
+ COEF_MULT_2 : (-1.)
+ COEF_IMPO : 0.
+ CENTRE : (0. 0. 0.)
+ ANGL_NAUT : (TD 0. 0.)
+ SOMMET : 'OUI'
+ )
+ ) ;
+
+
+ INSTANTS = DEFI_LIST_REEL
+ (
+ DEBUT: 0.
+ INTERVALLE:
+ (JUSQU_A: TPS NOMBRE: 50)
+ ) ;
+
+
+
+ EVOL = STAT_NON_LINE
+ (
+ MODELE: MO_MECA
+ CHAM_MATER: CHMAT
+ EXCIT :
+ (CHARGE: TORSION)
+ (CHARGE: ANCRAGE)
+ (CHARGE: SYMETRIE)
+ INCREMENT:
+ (
+ LIST_INST: INSTANTS
+ SUBD_PAS : 5
+ SUBD_PAS_MINI: 0.0001
+ )
+ COMP_INCR:
+ (
+ RELATION: 'PLAS_GRAD_TRAC'
+ DEFORMATION: 'PETIT'
+ )
+ NEWTON:
+ (
+ MATRICE:'ELASTIQUE'
+ )
+ CONVERGENCE:
+ (
+ RESI_GLOB_RELA: 1.E-4
+ ITER_GLOB_MAXI: 500
+ ITER_INTE_MAXI: 250
+ RESI_INTE_RELA: 1.E-9
+ )
+ ARCHIVAGE: (
+ ARCH_ETAT_INIT: 'OUI'
+ LIST_INST : INSTANTS
+ )
+
+ MODELE_NON_LOCAL: MO_DELO
+ LAGR_NON_LOCAL: (
+ RESI_PRIM_ABSO: 1.E-9
+ RESI_DUAL_ABSO: 1.E-4
+ RHO: 1000.
+ ITER_PRIM_MAXI: 100
+ ITER_DUAL_MAXI: 10
+ )
+ ) ;
+
+
+
+&EVOL = CALC_ELEM (
+ MODELE: MO_MECA
+ CHAM_MATER: CHMAT
+ RESULTAT : EVOL
+ OPTION: ('SIEF_ELNO_ELGA' 'VARI_ELNO_ELGA')
+ ) ;
+
+&EVOL = CALC_NO (
+ RESULTAT: EVOL
+ OPTION: ('FORC_NODA'
+ 'SIEF_NOEU_ELGA' 'VARI_NOEU_ELGA')
+ ) ;
+
+
+ECHAN = INTE_MAIL_3D (
+ MAILLAGE : MA
+ DEFI_SEGMENT: (
+ GROUP_NO_ORIG: O1
+ GROUP_NO_EXTR: A1
+ )
+ ) ;
+
+ PLAS_CUM = POST_RELEVE_T (
+ ACTION: (
+ INTITULE : 'P'
+ CHEMIN : ECHAN
+ RESULTAT : EVOL
+ NOM_CHAM : 'VARI_NOEU_ELGA'
+ NOM_CMP : 'V1'
+ INST : TPS
+ OPERATION: 'EXTRACTION'
+ )
+ ) ;
+
+
+ SIGMA = POST_RELEVE_T (
+ ACTION: (
+ INTITULE : 'SIYZ'
+ CHEMIN : ECHAN
+ RESULTAT : EVOL
+ NOM_CHAM : 'SIEF_NOEU_ELGA'
+ NOM_CMP : 'SIYZ'
+ INST : TPS
+ OPERATION: 'EXTRACTION'
+ )
+ ) ;
+
+
+
+ MOM_A = POST_RELEVE_T (
+ ACTION: (
+ INTITULE : 'MOMENT'
+ GROUP_NO : HAUT
+ RESULTAT : EVOL
+ NOM_CHAM : 'FORC_NODA'
+ RESULTANTE: ('DX' 'DY' 'DZ')
+ MOMENT : ('DRX' 'DRY' 'DRZ')
+ POINT : (0. 0. H)
+ TOUT_ORDRE: 'OUI'
+ OPERATION : 'EXTRACTION'
+ )
+ ) ;
+
+ MOM_KA_A = RECU_FONCTION (
+ TABLE : MOM_A
+ PARA_X: 'INST'
+ PARA_Y: 'MOMENT_Z'
+ ) ;
+
+!FORMULE ( REEL:( MA3_KA(REEL: INST) = MOM_KA_A(INST)*360/TD/A**3/SY));
+
+
+
+ DEFUFI(
+ IMPRESSION: (
+ NOM: 'POST_PY'
+ UNITE: 81
+ )
+ ) ;
+
+
+
+ IMPR_COURBE(
+ FORMAT: 'AGRAF'
+ FICHIER: 'POST_PY'
+ COURBE: (
+ FONCTION : MA3_KA
+ LIST_PARA: INSTANTS
+ )
+ ) ;
+
+
+ FIN();
+
+
+IMPR_TABLE(TABLE:SIGMA);
+IMPR_TABLE(TABLE:PLAS_CUM);
+
+ FIN();
\ No newline at end of file
def affiche_infos(self,message):
self.statusbar.showtext(message)
- print message
+ #print message
return
def efface_aide(self,event):
return
def affiche_aide(self,event,aide):
- print aide
+ #print aide
return
import prefs
import sys
-sys.path[:0]=['../..','../../Editeur','../../..']
+sys.path[:0]=['../..','../../Editeur','../../Aster' ]
+
+from Cata import cata_STA6
+cata=cata_STA6
-from Cata import cata
from analyse_catalogue import analyse_catalogue
from Appli import Appli
text=f.read()
f.close()
-fic_cata="../../../Cata/cata.py"
+fic_cata="../../Aster/Cata/cata_STA6.py"
cata_ordonne = analyse_catalogue(None,fic_cata)
+
j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a",
- cata_ord_dico=cata_ordonne.dico)
+ cata_ord_dico=cata_ordonne.entites)
+
j.compile()
if not j.cr.estvide():
print j.cr
# INSTALLDIR sert à localiser faqs.txt et les modules Eficas
#INSTALLDIR=os.path.join(REPINI,'..','Editeur')
+
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+
--- /dev/null
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os
+
+# REPINI sert à localiser le fichier editeur.ini
+# Obligatoire
+REPINI=os.path.dirname(os.path.abspath(__file__))
+
+# INSTALLDIR sert à localiser l'installation d'Eficas
+# Obligatoire
+INSTALLDIR=os.path.join(REPINI,'..')
+
+# CODE_PATH sert à localiser Noyau et Validation éventuellement
+# non contenus dans la distribution EFICAS
+# Par défaut on utilise les modules de INSTALLDIR
+# Peut valoir None (defaut)
+CODE_PATH = None
+#CODE_PATH = os.path.join(REPINI,'../../Superv')
+
+# ICONDIR sert à localiser le répertoire contenant les icones
+# Par défaut on utilise le répertoire icons dans Editeur
+ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
+
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+
+labels= ('Fichier','Edition','Jeu de commandes',
+# 'Catalogue','Browsers',
+ 'Options',
+ 'Aide',
+ )
+
+appli_composants=['readercata','bureau',
+# 'browser',
+ 'options',
+ ]
+
+menu_defs={ 'bureau': [
+ ('Fichier',[
+ ('Nouveau','newJDC'),
+ ('Ouvrir','openJDC'),
+ ('Enregistrer','saveJDC'),
+ ('Enregistrer sous','saveasJDC'),
+ None,
+ ('Fermer','closeJDC'),
+ ('Quitter','exitEFICAS'),
+ ]
+ ),
+ ('Edition',[
+ ('Copier','copy'),
+ ('Couper','cut'),
+ ('Coller','paste'),
+ ]
+ ),
+ ('Jeu de commandes',[
+ ('Rapport de validation','visuCRJDC'),
+ # ('Fichier à plat','visu_a_plat'),
+ ('Fichier format v6','visuJDC_py'),
+ ('Fichier source','visu_txt_brut_JDC'),
+ ('Paramètres Eficas','affichage_fichier_ini'),
+ ('Mots-clés inconnus','mc_inconnus'),
+ ]
+ ),
+ ('Aide',[
+ ('Aide EFICAS','aideEFICAS'),
+ ]
+ ),
+ ]
+ }
+
+# 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.
+#
+#
+# ======================================================================
-#@ MODIF commande_comm Accas DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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,traceback,string
self.definition=self
self.nom = ''
self.niveau = self.parent.niveau
+ self.actif=1
+ self.state="unchanged"
#self.appel = N_utils.callee_where(niveau=2)
if reg=='oui' : self.register()
"""
return []
+ def reparent(self,parent):
+ """
+ Cette methode sert a reinitialiser la parente de l'objet
+ """
+ self.parent=parent
+ self.jdc=parent.get_jdc_root()
+ self.etape=self
+
+ def verif_existence_sd(self):
+ """
+ Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+ avant étape, sinon enlève la référence à ces concepts
+ --> sans objet pour les commandes commentarisées
+ """
+ pass
+
+ def control_sdprods(self,d):
+ """sans objet pour les commandes commentarisées"""
+ pass
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe COMMENTAIRE qui sert dans EFICAS
pour gérer les commentaires dans un JDC
self.nom=''
self.niveau = self.parent.niveau
self.actif=1
+ self.state="unchanged"
self.register()
def register(self):
"""
return []
+ def get_sdprods(self,nom_sd):
+ """
+ Retourne les concepts produits par la commande
+ """
+ return None
+ def verif_existence_sd(self):
+ pass
+
+ def get_fr(self):
+ """
+ Retourne le commentaire lui meme tronque a la 1ere ligne
+ """
+ return self.valeur.split('\n',1)[0]
+
+ def control_sdprods(self,d):
+ """sans objet """
+ pass
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe ETAPE_NIVEAU qui sert à
concrétiser les niveaux au sein d'un JDC
import traceback
from Noyau import N_OBJECT
+import prefs
class ETAPE_NIVEAU(N_OBJECT.OBJECT):
self.etapes_niveaux = []
self.dict_niveaux={}
self.editmode = 0
+ self.state="undetermined"
self.build_niveaux()
def build_niveaux(self):
self.jdc.suppentite(etape)
+ def get_fr(self):
+ """
+ Retourne le texte d'aide dans la langue choisie
+ """
+ try :
+ return getattr(self.definition,prefs.lang)
+ except:
+ return ''
+
-#@ MODIF interpreteur_formule Accas DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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,re,sys,exceptions,types
texte = [texte,]
for text_arg in texte:
text_arg = string.replace(text_arg,'\n','')
+ # Enleve les espaces
+ text_arg = string.replace(text_arg,' ','')
try:
self.l_operateurs.append(self.split_operateurs(text_arg))
except InterpreteurException,e:
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe mixin qui porte les méthodes
pour traiter les niveaux au sein d'un JDC
--- /dev/null
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+"""
+ Ce module contient la classe JDC_INCLUDE qui sert a inclure
+ dans un jeu de commandes une partie de jeu de commandes
+ au moyen de la fonctionnalite INCLUDE ou INCLUDE_MATERIAU
+ Quand l'utilisateur veut inclure un fichier il faut versifier
+ que le jeu de commandes inclus est valide et compatible
+ avec le contexte avant et apres l'insertion
+"""
+from Accas import JDC,ASSD,AsException,JDC_CATA
+
+
+class JDC_POURSUITE(JDC):
+ def __init__(self,definition=None,procedure=None,cata=None,
+ cata_ord_dico=None,parent=None,
+ nom='SansNom',appli=None,context_ini=None,
+ jdc_pere=None,etape_include=None,prefix_include=None,
+ recorded_units=None,old_recorded_units=None,**args):
+
+ JDC.__init__(self, definition=definition,
+ procedure=procedure,
+ cata=cata,
+ cata_ord_dico=cata_ord_dico,
+ parent=parent,
+ nom=nom,
+ appli=appli,
+ context_ini=context_ini,
+ **args
+ )
+ self.jdc_pere=jdc_pere
+ self.etape_include=etape_include
+ self.prefix_include=prefix_include
+ if recorded_units is not None:self.recorded_units=recorded_units
+ if old_recorded_units is not None:self.old_recorded_units=old_recorded_units
+
+ def NommerSdprod(self,sd,sdnom,restrict='non'):
+ """
+ Nomme la SD apres avoir verifie que le nommage est possible : nom
+ non utilise
+ Ajoute un prefixe s'il est specifie (INCLUDE_MATERIAU)
+ Si le nom est deja utilise, leve une exception
+ Met le concept créé dans le concept global g_context
+ """
+ if self.prefix_include:
+ if sdnom != self.prefix_include:sdnom=self.prefix_include+sdnom
+ o=self.sds_dict.get(sdnom,None)
+ if isinstance(o,ASSD):
+ raise AsException("Nom de concept deja defini : %s" % sdnom)
+
+ # Il faut verifier en plus que le jdc_pere apres l'etape etape_include
+ # ne contient pas deja un concept de ce nom
+ #if self.jdc_pere.get_sd_apres_etape(sdnom,etape=self.etape_include):
+ # Il existe un concept apres self => impossible d'inserer
+ # raise AsException("Nom de concept deja defini : %s" % sdnom)
+
+ # 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
+
+ # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC
+ if restrict == 'non':
+ self.g_context[sdnom]=sd
+
+class JDC_INCLUDE(JDC_POURSUITE):
+ def active_etapes(self):
+ for e in self.etapes:
+ e.active()
+
+class JDC_CATA_INCLUDE(JDC_CATA):
+ class_instance=JDC_INCLUDE
+
+class JDC_CATA_POURSUITE(JDC_CATA):
+ class_instance=JDC_POURSUITE
+
+from Accas import AU_MOINS_UN,A_CLASSER
+
+JdC_include=JDC_CATA_INCLUDE(code='ASTER', execmodul=None)
+
+JdC_poursuite=JDC_CATA_POURSUITE(code='ASTER', execmodul=None,
+ regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
+ AU_MOINS_UN('FIN'),
+ A_CLASSER(('DEBUT','POURSUITE'),'FIN')
+ )
+ )
+
+
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
self.niveau = None
self.etape = None
self.state = 'undetermined'
+ self.actif=1
self.mc_liste=self.build_mc()
def build_mc(self):
#XXX et global_jdc ??
mc_liste.append(objet)
k=k+1
+ # Un nuplet n'a pas de mots inconnus
+ self.reste_val={}
return mc_liste
def isvalid(self,cr='non'):
def isoblig(self):
return self.definition.statut=='o'
+ def get_fr(self):
+ """
+ Retourne le texte d'aide dans la langue choisie
+ """
+ try :
+ return getattr(self.definition,prefs.lang)
+ except:
+ return ''
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe NIVEAU qui sert à définir
des groupes de commandes dans le catalogue
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe de définition pour les nuplets NUPL
"""
# Modules Eficas
from Noyau import N_ENTITE,N_MCLIST,N_CR
+from Ihm import I_ENTITE
import mcnuplet
-class NUPL(N_ENTITE.ENTITE):
+class NUPL(N_ENTITE.ENTITE,I_ENTITE.ENTITE):
"""
"""
class_instance = mcnuplet.MCNUPLET
def __init__(self,fr="",ang="",docu="",statut='f',defaut=None,min=0,max=1,
elements=None):
N_ENTITE.ENTITE.__init__(self)
+ I_ENTITE.ENTITE.__init__(self)
self.fr=fr
self.ang=ang
self.docu=docu
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe PARAMETRE qui sert à définir
des objets paramètres qui sont compréhensibles et donc affichables
self.definition=self
self.jdc = self.parent = CONTEXT.get_current_step()
self.niveau=self.parent.niveau
+ self.actif=1
+ self.state='undetermined'
self.register()
def interprete_valeur(self,val):
"""
return []
+ def verif_existence_sd(self):
+ pass
+ def control_sdprods(self,d):
+ """sans objet """
+ pass
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe PARAMETRE_EVAL qui sert à définir
des objets paramètres qui sont compréhensibles et donc affichables
self.jdc = self.parent = CONTEXT.get_current_step()
self.definition=self
self.niveau = self.parent.niveau
+ self.actif=1
+ self.state='undetermined'
# Ceci est-il indispensable ???
#self.appel = N_utils.callee_where(niveau=2)
self.register()
"""
if not val : return None
d={}
+ val = string.strip(val)
+ if val[-1] == ';' : val = val[0:-1]
d['EVAL'] = Accas.EVAL
try:
valeur = eval(val,{},d)
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le chargeur dynamique de plugins (emprunté à HappyDoc)
"""
--- /dev/null
+# 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.
+#
+#
+# ======================================================================
+
+class ASSD:
+ def __repr__(self):
+ return "concept %s de type %s" % (self.get_name(),self.__class__.__name__)
+# 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.
+#
+#
+# ======================================================================
"""
"""
+# 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.
+#
+#
+# ======================================================================
+_no=0
+
+def number_entite(entite):
+ """
+ Fonction qui attribue un numero unique a tous les objets du catalogue
+ Ce numero permet de conserver l'ordre des objets
+ """
+ global _no
+ _no=_no+1
+ entite._no=_no
+
class ENTITE:
+ def __init__(self):
+ number_entite(self)
+
def get_docu(self):
if hasattr(self,'docu') :
if self.docu != "" : return self.docu
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
+import sys
import string,types
from copy import copy
+# import rajoutés suite à l'ajout de Build_sd --> à résorber
+import traceback
+import Noyau
+from Noyau import N_Exception
+from Noyau.N_Exception import AsException
+# fin import à résorber
+
# Modules EFICAS
import I_MCCOMPO
class ETAPE(I_MCCOMPO.MCCOMPO):
- def __init__(self):
- self.niveau=self.jdc
-
def ident(self):
return self.nom
- def get_fr(self):
- """
- Retourne l'attribut fr de self.definition
- """
- try:
- return self.definition.fr
- except:
- return ''
-
def get_sdname(self):
if CONTEXT.debug : print "SDNAME ",self.reuse,self.sd,self.sd.get_name()
+ sdname=''
if self.reuse != None:
sdname= self.reuse.get_name()
else:
- sdname=self.sd.get_name()
+ if self.sd:sdname=self.sd.get_name()
if string.find(sdname,'sansnom') != -1 or string.find(sdname,'SD_') != -1:
# dans le cas où la SD est 'sansnom' ou 'SD_' on retourne la chaîne vide
return ''
"""
Met l'état de l'étape à : modifié
Propage la modification au parent
- Si la fonction op_init existe, l'active
"""
# Une action
# doit etre realisée apres init_modif et la validite reevaluée
ex : INCLUDE et POURSUITE
"""
if self.isvalid() :
- if type(self.definition.op_init) == types.FunctionType :
- apply(self.definition.op_init,(self,self.master.g_context))
- self.state = 'modified'
-
+ d=self.parent.get_contexte_apres(self)
+ if self.parent:
+ self.parent.fin_modif()
+
def nomme_sd(self,nom) :
"""
Cette méthode a pour fonction de donner un nom (nom) au concept
if len(nom) > 8 and self.jdc.definition.code == 'ASTER':
return 0,"Nom de concept trop long (maxi 8 caractères)"
self.init_modif()
- # Cas particulier des opérateurs réentrants
+ #
+ # On verifie d'abord si les mots cles sont valides
+ #
if not self.isvalid(sd='non') : return 0,"Nommage du concept refusé : l'opérateur n'est pas valide"
+ #
+ # Cas particulier des opérateurs obligatoirement réentrants
+ #
if self.definition.reentrant == 'o':
- self.sd = self.reuse = self.jdc.get_sdprod(nom)
+ self.sd = self.reuse = self.jdc.get_sd_avant_etape(nom,self)
if self.sd != None :
+ self.sdnom=self.sd.nom
return 1,"Concept existant"
else:
return 0,"Opérateur réentrant mais concept non existant"
+ #
+ # Cas particulier des opérateurs facultativement réentrants
+ #
+ old_reuse=None
if self.definition.reentrant == 'f' :
sd = self.jdc.get_sd_avant_etape(nom,self)
if sd != None :
- self.sd = self.reuse = sd
- return 1,"Opérateur facultativement réentrant et concept existant trouvé"
+ # FR : il faut tester que la sd trouvée est du bon type !!!!!!!!!!!!!!!!!
+ if isinstance(sd,self.get_type_produit()) :
+ self.sd = self.reuse = sd
+ self.sdnom = sd.nom
+ return 1,"Opérateur facultativement réentrant et concept existant trouvé"
+ else:
+ return 0,"Concept déjà existant et de mauvais type"
else :
- # il faut éventuellement enlever le lien vers une SD existante car si on passe ici
+ # il faut enlever le lien vers une SD existante car si on passe ici
# cela signifie que l'opérateur n'est pas utilisé en mode réentrant.
- # Si on ne fait pas cela, le nom de l'opérateur réutilisé est aussi modifié
- # et on ne peut plus modifier la SD de l'opérateur
+ # Si on ne fait pas cela, on risque de modifier une SD produite par un autre opérateur
if self.reuse :
- self.sd = self.reuse = None
- # l'opérateur n'est pas réentrant ou facultativement reentrant mais pas dans ce cas
+ old_reuse=self.reuse
+ self.sd = self.reuse = self.sdnom = None
+ #
+ # On est dans le cas ou l'opérateur n'est pas réentrant ou est facultativement reentrant
+ # mais est utilisé en mode non réentrant
+ #
if self.sd == None :
if self.parent.get_sd_autour_etape(nom,self):
- # On force self.valid a 0 car l appel a isvalid precedent l a mis a 1
- # mais ceci indique seulement une validité partielle
- # isvalid ne devrait peut etre pas mettre l attribut valid à 1 si sd == 'non'
- self.valid=0
- return 0,"Nommage du concept refuse : un concept de meme nom existe deja"
- # Il n'existe pas de sd de nom sdnom. On peut donc créer le concept retourné.
- # Il est créé sans nom mais enregistré dans la liste des concepts existants
- self.get_sd_prod()
- self.sd.nom = nom
- return 1,"Nommage du concept effectué"
- else :
- old_nom=self.sd.nom
- if string.find(old_nom,'sansnom') :
- # Dans le cas où old_nom == sansnom, isvalid retourne 0 alors que ...
- # par contre si le concept existe et qu'il s'appelle sansnom c'est que l'étape est valide
- # on peut donc le nommer sans test préalable
- self.sd.nom=nom
- return 1,"Nommage du concept effectué"
- if self.isvalid() :
- # Normalement l appel de isvalid a mis a jour le concept produit (son type)
- # Il suffit de spécifier l attribut nom de sd pour le nommer si le nom n est pas
- # deja attribué
- if self.parent.get_sd_autour_etape(nom,self):
+ # Un concept de ce nom existe dans le voisinage de l'etape courante
+ # On retablit l'ancien concept reentrant s'il existait
+ if old_reuse:
+ self.sd=self.reuse=old_reuse
+ self.sdnom=old_reuse.nom
return 0,"Nommage du concept refuse : un concept de meme nom existe deja"
else:
- self.sd.nom=nom
+ # Il n'existe pas de concept de ce nom dans le voisinage de l'etape courante
+ # On peut donc créer le concept retourné.
+ # Il est créé sans nom mais enregistré dans la liste des concepts existants
+ self.get_sd_prod()
+ # Il suffit de changer son attribut nom pour le nommer
+ self.sd.nom = nom
+ self.sdnom=nom
return 1,"Nommage du concept effectué"
- else:
- # Normalement on ne devrait pas passer ici
- return 0,'Normalement on ne devrait pas passer ici'
+ else :
+ old_nom=self.sd.nom
+ if string.find(old_nom,'sansnom') :
+ # Dans le cas où old_nom == sansnom, isvalid retourne 0 alors que ...
+ # par contre si le concept existe et qu'il s'appelle sansnom c'est que l'étape est valide
+ # on peut donc le nommer sans test préalable
+ if self.parent.get_sd_autour_etape(nom,self):
+ return 0,"Nommage du concept refuse : un concept de meme nom existe deja"
+ else:
+ self.sd.nom=nom
+ self.sdnom=nom
+ return 1,"Nommage du concept effectué"
+ if self.isvalid() :
+ # Normalement l appel de isvalid a mis a jour le concept produit (son type)
+ # Il suffit de spécifier l attribut nom de sd pour le nommer si le nom n est pas
+ # deja attribué
+ if self.parent.get_sd_autour_etape(nom,self):
+ return 0,"Nommage du concept refuse : un concept de meme nom existe deja"
+ else:
+ self.sd.nom=nom
+ self.sdnom=nom
+ return 1,"Nommage du concept effectué"
+ else:
+ # Normalement on ne devrait pas passer ici
+ return 0,'Normalement on ne devrait pas passer ici'
def get_sdprods(self,nom_sd):
"""
Il faut ajouter la sd si elle existe au contexte global du JDC
et à la liste des sd
"""
+ if self.actif:return
self.actif = 1
if not self.sd : return
- # XXX Pourquoi faut-il faire ce qui suit ??? par defaut les etapes sont actives
try:
self.jdc.append_sdprod(self.sd)
except:
self.jdc.del_sdprod(self.sd)
self.jdc.delete_concept_after_etape(self,self.sd)
+ def control_sdprods(self,d):
+ """
+ Cette methode doit updater le contexte fournit par
+ l'appelant en argument (d) en fonction de sa definition
+ tout en verifiant que ses concepts produits ne sont pas
+ deja definis dans le contexte
+ """
+ if type(self.definition.op_init) == types.FunctionType:
+ apply(self.definition.op_init,(self,d))
+ if self.sd:
+ if d.has_key(self.sd.nom):
+ # Le concept est deja defini
+ if self.reuse and self.reuse is d[self.sd.nom]:
+ # Le concept est reutilise : situation normale
+ pass
+ else:
+ # Redefinition du concept, on l'annule
+ #XXX on pourrait simplement annuler son nom pour conserver les objets
+ # l'utilisateur n'aurait alors qu'a renommer le concept (faisable??)
+ self.sd=self.reuse=self.sdnom=None
+ self.init_modif()
+ else:
+ # Le concept n'est pas defini, on peut updater d
+ d[self.sd.nom]=self.sd
+
def supprime_sdprods(self):
"""
Fonction:
Une procedure n'en a aucun
Une macro en a en général plus d'un
"""
- # XXX pour les macros il faudrait peut etre aussi
- # supprimer les concepts a droite du = ???
if not self.is_reentrant() :
# l'étape n'est pas réentrante
# le concept retourné par l'étape est à supprimer car il était
for child in self.mc_liste :
child.delete_concept(sd)
+ def replace_concept(self,old_sd,sd):
+ """
+ Inputs :
+ old_sd=concept remplace
+ sd = nouveau concept
+ Fonction :
+ Mettre a jour les mots cles de l etape et eventuellement
+ le concept produit si reuse
+ suite au remplacement du concept old_sd
+ """
+ if self.reuse and self.reuse == old_sd:
+ self.sd=self.reuse=sd
+ self.init_modif()
+ for child in self.mc_liste :
+ child.replace_concept(old_sd,sd)
+
def make_register(self):
"""
Initialise les attributs jdc, id, niveau et réalise les
enregistrements nécessaires
Pour EFICAS, on tient compte des niveaux
+ Surcharge la methode make_register du package Noyau
"""
if self.parent :
self.jdc = self.parent.get_jdc_root()
etape.state = 'modified'
etape.reuse = None
etape.sdnom = None
+ etape.etape=etape
etape.mc_liste=[]
for objet in self.mc_liste:
new_obj = objet.copy()
+ new_obj.reparent(etape)
etape.mc_liste.append(new_obj)
return etape
l.extend(child.get_sd_utilisees())
return l
+ def get_genealogie(self):
+ """
+ Retourne la liste des noms des ascendants de l'objet self
+ en s'arretant à la première ETAPE rencontrée
+ """
+ return [self.nom]
+
+ def reparent(self,parent):
+ """
+ Cette methode sert a reinitialiser la parente de l'objet
+ """
+ self.parent=parent
+ self.jdc=parent.get_jdc_root()
+ self.etape=self
+ for mocle in self.mc_liste:
+ mocle.reparent(self)
+
+ def verif_existence_sd(self):
+ """
+ Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+ avant étape, sinon enlève la référence à ces concepts
+ """
+ for motcle in self.mc_liste :
+ motcle.verif_existence_sd()
+
+ def Build_sd(self,nom):
+ """
+ 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 est défini. Dans ce cas, l'étape demande au parent la création et
+ le nommage du concept.
+
+ """
+ if not self.isactif():return
+ # FR : attention cette méthode ne devrait pas se trouver là car elle surcharge celle qui
+ # se trouve dans N_ETAPE.py et elle est partie intégrante du noyau, mais, suite à l'absence de
+ # test de validité de l'opérateur avant d'essayer de déterminer la sd produite, on n'arrivait
+ # pas à relire avec EFICAS un fichier contenant une étape encore incomplète du style :
+ # sansnom = AFFE_CHAR_CINE(MODELE=None)
+ # Suite à la stabilisation du noyau d'Aster, je n'ai pas eu d'autre solution que de surcharger
+ # cette méthode ici en rajoutant le test manquant ...
+ # CCAR : cette modification ne corrige le probleme qu'en partie. Il faudrait probablement
+ # supprimer les erreurs fatales (exception ) et retourner systematiquement un objet produit
+ # meme en cas d'erreur et reporter l'emission du message d'erreur a la phase de validation
+ #
+ if not self.isvalid(sd='non') : return
+ self.sdnom=nom
+ try:
+ if self.parent:
+ sd= self.parent.create_sdprod(self,nom)
+ if type(self.definition.op_init) == types.FunctionType:
+ apply(self.definition.op_init,(self,self.parent.g_context))
+ else:
+ sd=self.get_sd_prod()
+ # On n'utilise pas self.definition.op_init car self.parent
+ # n'existe pas
+ 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
+ if self.jdc and self.jdc.par_lot == "NON" :
+ self.Execute()
+ return sd
+ except AsException,e:
+ # Une erreur s'est produite lors de la construction du concept
+ # Comme on est dans EFICAS, on essaie de poursuivre quand meme
+ # Si on poursuit, on a le choix entre deux possibilités :
+ # 1. on annule la sd associée à self
+ # 2. on la conserve mais il faut la retourner
+ # En plus il faut rendre coherents sdnom et sd.nom
+ self.sd=None
+ self.sdnom=None
+ self.state="unchanged"
+ self.valid=0
+ return self.sd
+
+ #raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
+ # 'fichier : ',self.appel[1],e)
+ except EOFError:
+ # XXX Normalement le contexte courant doit etre le parent.
+ # Il n'y a pas de raison de remettre le contexte au parent
+ #self.reset_current_step()
+ raise
+ except :
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
+ 'fichier : ',self.appel[1]+'\n',
+ string.join(l))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# 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.
+#
+#
+# ======================================================================
"""
"""
if not regle_active : return liste_a_purger
for mc in self.mcs:
- if mc in liste_a_purger:
+ # Il ne faut pas purger un mot cle present. Sa cardinalite est verifiee par ailleurs
+ if mc in liste_a_purger and mc not in liste_mc_presents:
liste_a_purger.remove(mc)
return liste_a_purger
--- /dev/null
+# 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 I_ASSD import ASSD
+
+class FONCTION(ASSD):
+ def __init__(self,etape=None,sd=None,reg='oui'):
+ #ASSD.__init__(self,etape=etape,sd=sd,reg=reg)
+ if reg=='oui':
+ self.jdc.register_fonction(self)
+
+ def get_formule(self):
+ """
+ Retourne une formule décrivant self sous la forme d'un tuple :
+ (nom,type_retourne,arguments,corps)
+ """
+ if hasattr(self.etape,'get_formule'):
+ # on est dans le cas d'une formule Aster
+ return self.etape.get_formule()
+ else:
+ # on est dans le cas d'une fonction
+ return (self.nom,'REEL','(REEL:x)','''bidon''')
+
+# On ajoute la classe formule pour etre cohérent avec la
+# modification de C Durand sur la gestion des formules dans le superviseur
+# On conserve l'ancienne classe fonction (ceinture et bretelles)
+class fonction(FONCTION) : pass
+class formule(FONCTION) : pass
+
+# 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,traceback
else:
return ''
+ def get_formule(self):
+ """
+ Retourne un tuple décrivant la formule :
+ (nom,type_retourne,arguments,corps)
+ """
+ t,a,c = self.analyse_formule()
+ n = self.get_nom()
+ return (n,t,a,c)
+
def verif_arguments(self,arguments = None):
"""
Vérifie si les arguments passés en argument (si aucun prend les arguments courants)
Inputs :
sd=concept detruit
Fonction :
- Mettre a jour les mos cles de l etape et eventuellement le concept produit si reuse
+ Mettre a jour les mots cles de l etape et eventuellement le concept produit si reuse
suite à la disparition du concept sd
Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils,
sauf les objets FORM_ETAPE qui doivent vérifier que le concept détruit n'est pas
"""
self.init_modif()
+ def replace_concept(self,old_sd,sd):
+ """
+ Inputs :
+ old_sd=concept remplace
+ sd = nouveau concept
+ Fonction :
+ Les objets FORM_ETAPE devraient vérifier que le concept remplacé n'est pas
+ utilisé dans le corps de la fonction
+ """
+ self.init_modif()
+
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
# Modules Eficas
import I_OBJECT
-from Noyau.N_ASSD import assd
+from Noyau.N_ASSD import ASSD
from Noyau.N_ETAPE import ETAPE
-from Noyau.N_CO import CO
from Noyau.N_Exception import AsException
from Extensions import commentaire,parametre,parametre_eval
self.niveau=self
self.params=[]
self.fonctions=[]
+ self._etape_context=None
+ self.recorded_units={}
+ self.old_recorded_units={}
def get_cmd(self,nomcmd):
"""
l=[]
for k,v in d.items():
if type(v) != types.InstanceType : continue
- if assd in types_permis or CO in types_permis :
- l.append(k)
- continue
- for type_ok in types_permis:
- if type_ok in ('R','I','C','TXM') and v in self.params : l.append(k)
- elif type_ok == 'R' and v.__class__.__name__ == 'reel' : l.append(k)
- elif type_ok == 'I' and v.__class__.__name__ == 'entier' : l.append(k)
- elif type_ok == 'C' and v.__class__.__name__ == 'complexe' : l.append(k)
- elif type_ok == 'TXM' and v.__class__.__name__ == 'chaine' : l.append(k)
- elif type(type_ok) != types.ClassType : continue
- elif v.__class__ == type_ok or issubclass(v.__class__,type_ok): l.append(k)
+ # On considère que seul assd indique un type quelconque pas CO
+ elif self.assd in types_permis :
+ l.append(k)
+ elif self.est_permis(v,types_permis):
+ l.append(k)
l.sort()
return l
+ def est_permis(self,v,types_permis):
+ for type_ok in types_permis:
+ if type_ok in ('R','I','C','TXM') and v in self.params :
+ return 1
+ elif type_ok == 'R' and v.__class__.__name__ == 'reel' :
+ return 1
+ elif type_ok == 'I' and v.__class__.__name__ == 'entier' :
+ return 1
+ elif type_ok == 'C' and v.__class__.__name__ == 'complexe' :
+ return 1
+ elif type_ok == 'TXM' and v.__class__.__name__ == 'chaine' :
+ return 1
+ elif type(type_ok) != types.ClassType :
+ continue
+ elif v.__class__ == type_ok or issubclass(v.__class__,type_ok):
+ return 1
+ return 0
+
def addentite(self,name,pos):
"""
Ajoute une entite :
if pos == None : pos = 0
self.etapes.insert(pos,objet)
self.editmode=0
+ self.reset_context()
self.active_etapes()
return objet
elif name == "PARAMETRE_EVAL":
if pos == None : pos = 0
self.etapes.insert(pos,objet)
self.editmode=0
+ self.reset_context()
self.active_etapes()
return objet
elif type(name)==types.InstanceType:
# existante (par copie donc)
# on est donc nécessairement en mode editeur ...
objet = name
- objet.jdc = objet.parent = self
- #XXX current_step n'existe plus. A priori le parent devrait etre self
- # ainsi que le step courant.
- #objet.parent = self.current_step
+ # Il ne faut pas oublier de reaffecter le parent d'obj (si copie)
+ objet.reparent(self)
self.set_current_step()
if isinstance(objet,ETAPE):
if objet.nom_niveau_definition == 'JDC':
objet.parent.dict_niveaux[objet.nom_niveau_definition].register(objet)
objet.niveau = objet.parent.dict_niveaux[objet.nom_niveau_definition]
self.etapes.insert(pos,objet)
+ # il faut vérifier que les concepts utilisés par objet existent bien
+ # à ce niveau d'arborescence
+ objet.verif_existence_sd()
self.active_etapes()
self.editmode=0
+ self.reset_context()
return objet
else :
# On veut ajouter une nouvelle commande
cmd=self.get_cmd(name)
# L'appel a make_objet n'a pas pour effet d'enregistrer l'étape
# auprès du step courant car editmode vaut 1
+ # Par contre elle a le bon parent grace a set_current_step
e=cmd.make_objet()
if pos == None : pos = 0
self.etapes.insert(pos,e)
self.reset_current_step()
self.editmode=0
+ self.reset_context()
self.active_etapes()
return e
except:
def get_sd_avant_etape(self,nom_sd,etape):
return self.get_contexte_avant(etape).get(nom_sd,None)
- def get_sd_apres_etape(self,nom_sd,etape):
+ def get_sd_apres_etape_avec_detruire(self,nom_sd,sd,etape,avec='non'):
+ """
+ Cette méthode retourne la SD sd de nom nom_sd qui est éventuellement
+ définie apres etape en tenant compte des concepts detruits
+ Si avec vaut 'non' exclut etape de la recherche
+ """
+ ietap=self.etapes.index(etape)
+ if avec == 'non':ietap=ietap+1
+ d={nom_sd:sd}
+ for e in self.etapes[ietap:]:
+ if e.isactif():
+ e.update_context(d)
+ autre_sd=d.get(nom_sd,None)
+ if autre_sd is None:
+ # Le concept a ete detruit
+ return None
+ if autre_sd is not sd :
+ # L'etape produit un concept de meme nom
+ if hasattr(e,'reuse') and e.reuse == autre_sd:
+ # Le concept est reutilise, ce n'est pas un produit de l'etape
+ continue
+ else:
+ # Le concept est produit par l'etape
+ return autre_sd
+ # On n'a rien trouve. Pas de concept de nom nom_sd
+ return None
+
+ def get_sd_apres_etape(self,nom_sd,etape,avec='non'):
"""
Cette méthode retourne la SD de nom nom_sd qui est éventuellement
- définie apres etape
+ définie apres etape
+ Si avec vaut 'non' exclut etape de la recherche
"""
ietap=self.etapes.index(etape)
- for e in self.etapes[ietap+1:]:
+ if avec == 'non':ietap=ietap+1
+ for e in self.etapes[ietap:]:
sd=e.get_sdprods(nom_sd)
if sd:
if hasattr(e,'reuse'):
return sd
return None
- def get_sd_autour_etape(self,nom_sd,etape):
+ def get_sd_autour_etape(self,nom_sd,etape,avec='non'):
"""
Fonction: retourne la SD de nom nom_sd qui est éventuellement
définie avant ou apres etape
Permet de vérifier si un concept de meme nom existe dans le périmètre
d'une étape
+ Si avec vaut 'non' exclut etape de la recherche
"""
sd=self.get_sd_avant_etape(nom_sd,etape)
if sd:return sd
- return self.get_sd_apres_etape(nom_sd,etape)
+ return self.get_sd_apres_etape(nom_sd,etape,avec)
+
+ def get_contexte_avant(self,etape):
+ """
+ Retourne le dictionnaire des concepts connus avant etape
+ On tient compte des commandes qui modifient le contexte
+ comme DETRUIRE ou les macros
+ Si etape == None, on retourne le contexte en fin de JDC
+ """
+ # L'étape courante pour laquelle le contexte a été calculé est
+ # mémorisée dans self.index_etape_courante
+ # XXX on pourrait faire mieux dans le cas PAR_LOT="NON" : en
+ # mémorisant l'étape
+ # courante pendant le processus de construction des étapes.
+ # Si on insère des commandes (par ex, dans EFICAS), il faut préalablement
+ # remettre ce pointeur à 0
+ if etape:
+ index_etape=self.etapes.index(etape)
+ else:
+ index_etape=len(self.etapes)
+ if index_etape >= self.index_etape_courante:
+ # On calcule le contexte en partant du contexte existant
+ d=self.current_context
+ if self.index_etape_courante==0 and self.context_ini:
+ d.update(self.context_ini)
+ liste_etapes=self.etapes[self.index_etape_courante:index_etape]
+ else:
+ d=self.current_context={}
+ if self.context_ini:d.update(self.context_ini)
+ liste_etapes=self.etapes
+
+ for e in liste_etapes:
+ if e is etape:
+ break
+ if e.isactif():
+ e.update_context(d)
+ self.index_etape_courante=index_etape
+ return d
+
+ def get_contexte_apres(self,etape):
+ """
+ Retourne le dictionnaire des concepts connus apres etape
+ On tient compte des commandes qui modifient le contexte
+ comme DETRUIRE ou les macros
+ Si etape == None, on retourne le contexte en fin de JDC
+ """
+ if not etape: return self.get_contexte_avant(etape)
+
+ d=self.get_contexte_avant(etape)
+ if etape.isactif():etape.update_context(d)
+ self.index_etape_courante=self.index_etape_courante+1
+ return d
def active_etapes(self):
"""
un jeu de commandes
"""
self.init_modif()
+ # On memorise le contexte avant l'etape a supprimer
+ d=self.get_contexte_avant(etape)
+ index_etape=self.etapes.index(etape)
+
self.etapes.remove(etape)
if etape.niveau is not self:
# Dans ce cas l'étape est enregistrée dans un niveau
etape.supprime_sdprods()
self.active_etapes()
- def del_sdprod(self,sd):
- """
- Supprime la SD sd de la liste des sd et des dictionnaires de contexte
- """
- if sd in self.sds : self.sds.remove(sd)
- if self.g_context.has_key(sd.nom) : del self.g_context[sd.nom]
-
- def delete_concept(self,sd):
- """
- Inputs :
- sd=concept detruit
- Fonction :
- Mettre a jour les etapes du JDC suite à la disparition du
- concept sd
- Seuls les mots cles simples MCSIMP font un traitement autre
- que de transmettre aux fils
- """
- for etape in self.etapes :
- etape.delete_concept(sd)
+ # Apres suppression de l'etape il faut controler que les etapes
+ # suivantes ne produisent pas des concepts DETRUITS dans op_init de etape
+ for e in self.etapes[index_etape:]:
+ e.control_sdprods(d)
+
+ self.reset_context()
+ self.fin_modif()
def analyse(self):
self.compile()
"""
self.params.append(param)
+ def register_fonction(self,fonction):
+ """
+ Cette méthode sert à ajouter une fonction dans la liste des fonctions
+ """
+ self.fonctions.append(fonction)
+
def delete_param(self,param):
"""
Supprime le paramètre param de la liste des paramètres
nom = form.nom
if not nom : continue
if d.has_key(nom): l_fonctions.append(form.get_formule())
+
+ # on ajoute les concepts produits par DEFI_VALEUR
+ # XXX On pourrait peut etre faire plutot le test sur le type
+ # de concept : entier, reel, complexe, etc.
+ for k,v in d.items():
+ if hasattr(v,'etape') and v.etape.nom in ('DEFI_VALEUR',):
+ l_constantes.append(k)
+
# on retourne les deux listes
return l_constantes,l_fonctions
if self.appli:
self.appli.send_message(message)
-#XXX ne semble pas servir pour JDC
-# def reevalue_sd_jdc(self):
- #"""
- #Avec la liste des SD qui ont été supprimées, propage la disparition de ces
- #SD dans toutes les étapes et descendants
- #"""
- #l_sd = self.diff_contextes()
- #if len(l_sd) == 0 : return
- #for sd in l_sd:
- #self.jdc.delete_concept(sd)
-
def init_modif(self):
"""
Méthode appelée au moment où une modification va être faite afin de
self.state = 'modified'
def fin_modif(self):
+ self.isvalid()
pass
def get_liste_mc_inconnus(self):
fproc=open(file,'r')
text=fproc.read()
fproc.close()
+ if file == None : return None,None
text=string.replace(text,'\r\n','\n')
linecache.cache[file]=0,0,string.split(text,'\n'),file
return file,text
+
+ def get_genealogie(self):
+ """
+ Retourne la liste des noms des ascendants de l'objet self
+ jusqu'à la première ETAPE parent.
+ """
+ return []
+
+ def NommerSdprod(self,sd,sdnom,restrict='non'):
+ """
+ Nomme la SD apres avoir verifie que le nommage est possible :
+ nom non utilise
+ Si le nom est deja utilise, leve une exception
+ Met le concept créé dans le concept global g_context
+ """
+ # XXX En mode editeur dans EFICAS, le nommage doit etre géré différemment
+ # Le dictionnaire g_context ne représente pas le contexte
+ # effectif avant une étape.
+ # Il faut utiliser get_contexte_avant avec indication de l'étape
+ # traitée.
+ # Cette etape est indiquee par l'attribut _etape_context qui a ete
+ # positionné préalablement par un appel à set_etape_context
+
+ if CONTEXT.debug : print "JDC.NommerSdprod ",sd,sdnom
+
+ if self._etape_context:
+ o=self.get_contexte_avant(self._etape_context).get(sdnom,None)
+ else:
+ o=self.sds_dict.get(sdnom,None)
+
+ if isinstance(o,ASSD):
+ raise AsException("Nom de concept deja defini : %s" % sdnom)
+
+ # 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
+
+ # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC
+ if restrict == 'non':
+ self.g_context[sdnom]=sd
+
+
+ def set_etape_context(self,etape):
+ """
+ Positionne l'etape qui sera utilisee dans NommerSdProd pour
+ decider si le concept passé pourra etre nommé
+ """
+ self._etape_context=etape
+
+ def reset_context(self):
+ """
+ Cette methode reinitialise le contexte glissant pour pouvoir
+ tenir compte des modifications de l'utilisateur : création
+ de commandes, nommage de concepts, etc.
+ """
+ self.current_context={}
+ self.index_etape_courante=0
+
+ def del_sdprod(self,sd):
+ """
+ Supprime la SD sd de la liste des sd et des dictionnaires de contexte
+ """
+ if sd in self.sds : self.sds.remove(sd)
+ if self.g_context.has_key(sd.nom) : del self.g_context[sd.nom]
+ if self.sds_dict.has_key(sd.nom) : del self.sds_dict[sd.nom]
+
+ def del_param(self,param):
+ """
+ Supprime le paramètre param de la liste des paramètres
+ et du contexte gobal
+ """
+ if param in self.params : self.params.remove(param)
+ if self.g_context.has_key(param.nom) : del self.g_context[param.nom]
+
+ def del_fonction(self,fonction):
+ """
+ Supprime la fonction fonction de la liste des fonctions
+ et du contexte gobal
+ """
+ if fonction in self.fonctions : self.fonctions.remove(fonction)
+ if self.g_context.has_key(fonction.nom) : del self.g_context[fonction.nom]
+
+ def append_sdprod(self,sd):
+ """
+ Ajoute la SD sd à la liste des sd en vérifiant au préalable qu'une SD de
+ même nom n'existe pas déjà
+ """
+ if sd == None or sd.nom == None:return
+
+ o=self.sds_dict.get(sd.nom,None)
+ if isinstance(o,ASSD):
+ raise AsException("Nom de concept deja defini : %s" % sd.nom)
+ self.sds_dict[sd.nom]=sd
+ self.g_context[sd.nom] = sd
+ if sd not in self.sds : self.sds.append(sd)
+
+ def append_param(self,param):
+ """
+ Ajoute le paramètre param à la liste des params
+ et au contexte global
+ """
+ # il faudrait vérifier qu'un paramètre de même nom n'existe pas déjà !!!
+ if param not in self.params : self.params.append(param)
+ self.g_context[param.nom]=param
+
+ def append_fonction(self,fonction):
+ """
+ Ajoute la fonction fonction à la liste des fonctions
+ et au contexte global
+ """
+ # il faudrait vérifier qu'une fonction de même nom n'existe pas déjà !!!
+ if fonction not in self.fonctions : self.fonctions.append(fonction)
+ self.g_context[fonction.nom]=fonction
+
+ def delete_concept_after_etape(self,etape,sd):
+ """
+ Met à jour les étapes du JDC qui sont après etape en fonction
+ de la disparition du concept sd
+ """
+ index = self.etapes.index(etape)+1
+ if index == len(self.etapes) :
+ return # etape est la dernière étape du jdc ...on ne fait rien !
+ for child in self.etapes[index:]:
+ child.delete_concept(sd)
+
+ def delete_concept(self,sd):
+ """
+ Inputs :
+ sd=concept detruit
+ Fonction :
+ Mettre a jour les etapes du JDC suite à la disparition du
+ concept sd
+ Seuls les mots cles simples MCSIMP font un traitement autre
+ que de transmettre aux fils
+ """
+ for etape in self.etapes :
+ etape.delete_concept(sd)
+
+ def replace_concept_after_etape(self,etape,old_sd,sd):
+ """
+ Met à jour les étapes du JDC qui sont après etape en fonction
+ du remplacement du concept sd
+ """
+ index = self.etapes.index(etape)+1
+ if index == len(self.etapes) :
+ return # etape est la dernière étape du jdc ...on ne fait rien !
+ for child in self.etapes[index:]:
+ child.replace_concept(old_sd,sd)
+
+ def dump_state(self):
+ print "dump_state"
+ print "JDC.state: ",self.state
+ for etape in self.etapes :
+ print etape.nom+".state: ",etape.state
+
+ def change_unit(self,unit,etape,old_unit):
+ if self.recorded_units.has_key(old_unit):del self.recorded_units[old_unit]
+ self.record_unit(unit,etape)
+
+ def record_unit(self,unit,etape):
+ """Enregistre les unites logiques incluses et les infos relatives a l'etape"""
+ if unit is None:
+ # Cas de POURSUITE
+ self.recorded_units[None]=(etape.fichier_ini ,etape.fichier_text,etape.recorded_units)
+ else:
+ self.recorded_units[unit]=(etape.fichier_ini ,etape.fichier_text,etape.recorded_units)
+
+#ATTENTION cette methode surcharge la methode du package Validation : a reintegrer
+ def isvalid(self,cr='non'):
+ """
+ Méthode booléenne qui retourne 0 si le JDC est invalide, 1 sinon
+ """
+ # FR : on prend en compte l'état du JDC ('unchanged','modified','undetermined')
+ # afin d'accélérer le test de validité du JDC
+ if self.state == 'unchanged':
+ return self.valid
+ else:
+ valid = 1
+ texte,test = self.verif_regles()
+ if test == 0:
+ if cr == 'oui': self.cr.fatal(string.strip(texte))
+ valid = 0
+ if valid :
+ for e in self.etapes:
+ if not e.isactif() : continue
+ if not e.isvalid():
+ valid = 0
+ break
+ self.state="unchanged"
+ self.valid = valid
+ return self.valid
+
+# 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 Noyau import N_JDC_CATA
class JDC_CATA:
+# 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.
+#
+#
+# ======================================================================
"""
"""
# Modules Python
+import sys
import traceback,types,string
# Modules Eficas
import I_ETAPE
from Noyau.N_ASSD import ASSD
+# import rajoutés suite à l'ajout de Build_sd --> à résorber
+import Noyau, Validation.V_MACRO_ETAPE
+from Noyau import N_Exception
+from Noyau.N_Exception import AsException
+# fin import à résorber
+
class MACRO_ETAPE(I_ETAPE.ETAPE):
def __init__(self):
- I_ETAPE.ETAPE.__init__(self)
+ self.typret=None
+ self.recorded_units={}
+
+ def copy(self):
+ """ Méthode qui retourne une copie de self non enregistrée auprès du JDC
+ et sans sd
+ On surcharge la methode de ETAPE pour exprimer que les concepts crees
+ par la MACRO d'origine ne sont pas crees par la copie mais eventuellement
+ seulement utilises
+ """
+ etape=I_ETAPE.ETAPE.copy(self)
+ etape.sdprods=[]
+ return etape
def get_sdprods(self,nom_sd):
"""
Fonction : retourne le concept produit par l etape de nom nom_sd
s il existe sinon None
"""
- if self.sd:
- if self.sd.nom == nom_sd:
- return self.sd
+ if self.sd and self.sd.nom == nom_sd :return self.sd
for co in self.sdprods:
- if co.nom==nom_sd:return co
+ if co.nom == nom_sd:return co
+ if type(self.definition.op_init) == types.FunctionType:
+ d={}
+ apply(self.definition.op_init,(self,d))
+ return d.get(nom_sd,None)
return None
- def make_contexte(self,fichier,text):
- """
- Cette méthode sert à créer un contexte en interprétant un texte source
- Python
- """
- # on récupère le contexte d'un nouveau jdc dans lequel on interprete text
- contexte = self.get_contexte_jdc(fichier,text)
- if contexte == None :
- raise Exception("Impossible de relire le fichier")
- else:
- self.g_context = contexte
- if hasattr(self,'contexte_fichier_init'):
- self.old_contexte_fichier_init = self.contexte_fichier_init
- self.contexte_fichier_init = contexte
- # XXX la validité ne doit pas etre forcée à 1. Que faut-il faire exactement ???
- self.init_modif()
- #self.valid = 1
- #self.state = 'unchanged'
-
def get_contexte_jdc(self,fichier,text):
"""
Interprète text comme un texte de jdc et retourne le
contexte final
cad le dictionnaire des sd disponibles à la dernière étape
Si text n'est pas un texte de jdc valide, retourne None
+ ou leve une exception
--> utilisée par ops.POURSUITE et INCLUDE
"""
try:
- # on essaie de créer un objet JDC...
+ # on essaie de créer un objet JDC auxiliaire avec un contexte initial
context_ini = self.parent.get_contexte_avant(self)
+ # Indispensable avant de creer un nouveau JDC
CONTEXT.unset_current_step()
- j=self.jdc.definition(procedure=text,cata=self.jdc.cata,
- nom=fichier,
- context_ini = context_ini,
- appli=self.jdc.appli)
+ args=self.jdc.args
+ prefix_include=None
+ if hasattr(self,'prefix'):
+ prefix_include=self.prefix
+ # ATTENTION : le dictionnaire recorded_units sert à memoriser les unites des
+ # fichiers inclus. Il est preferable de garder le meme dictionnaire pendant
+ # tout le traitement et de ne pas le reinitialiser brutalement (utiliser clear plutot)
+ # si on ne veut pas perdre la memoire des unites.
+ # En principe si la memorisation est faite au bon moment il n'est pas necessaire
+ # de prendre cette precaution mais ce n'est pas vrai partout.
+ old_recorded_units=self.recorded_units.copy()
+ self.recorded_units.clear()
+
+ j=self.JdC_aux( procedure=text,cata=self.jdc.cata,
+ nom=fichier,
+ context_ini = context_ini,
+ appli=self.jdc.appli,
+ jdc_pere=self.jdc,etape_include=self,
+ prefix_include=prefix_include,
+ recorded_units=self.recorded_units,
+ old_recorded_units=old_recorded_units,**args)
+
j.analyse()
+ # On récupère les étapes internes (pour validation)
+ self.etapes=j.etapes
except:
traceback.print_exc()
+ # On force le contexte (etape courante) à self
+ CONTEXT.unset_current_step()
+ CONTEXT.set_current_step(self)
return None
- CONTEXT.set_current_step(self)
+
if not j.cr.estvide():
- raise Exception("Impossible de relire le fichier\n"+str(j.cr))
+ # Erreurs dans l'INCLUDE. On garde la memoire du fichier mais on n'insere pas les concepts
+ # On force le contexte (etape courante) à self
+ CONTEXT.unset_current_step()
+ CONTEXT.set_current_step(self)
+ raise Exception("Impossible de relire le fichier\n"+str(j.cr))
- #XXX la validité d'un source inclus n'est pas identique à celle d'un JDC complet
- # impossible de la tester en dehors du JDC d'accueil
- #cr=j.report()
- #if not cr.estvide():
- # raise Exception("Le fichier contient des erreurs\n"+str(j.cr))
+ cr=j.report()
+ if not cr.estvide():
+ # On force le contexte (etape courante) à self
+ CONTEXT.unset_current_step()
+ CONTEXT.set_current_step(self)
+ raise Exception("Le fichier include contient des erreurs\n"+str(j.cr))
+
+ # On recupere le contexte apres la derniere etape
j_context=j.get_contexte_avant(None)
- # XXX j.g_context doit donner le meme résultat
- # On retourne le contexte apres la derniere etape
- # XXX j.supprime() ???
+
+ # Cette verification n'est plus necessaire elle est integree dans le JDC_INCLUDE
self.verif_contexte(j_context)
- # Le contexte est acceptable. On récupère les étapes internes (pour validation)
- self.etapes=j.etapes
+
+ # On remplit le dictionnaire des concepts produits inclus
+ # en retirant les concepts présents dans le contexte initial
+ # On ajoute egalement le concept produit dans le sds_dict du parent
+ # sans verification car on est sur (verification integrée) que le nommage est possible
+ self.g_context.clear()
+ for k,v in j_context.items():
+ if not context_ini.has_key(k) or context_ini[k] != v:
+ self.g_context[k]=v
+ self.parent.sds_dict[k]=v
+
+
+ # On recupere le contexte courant
+ self.current_context=j.current_context
+ self.index_etape_courante=j.index_etape_courante
+
+ # XXX j.supprime() ???
+ # On rétablit le contexte (etape courante) à self
+ CONTEXT.unset_current_step()
+ CONTEXT.set_current_step(self)
+
return j_context
def verif_contexte(self,context):
"""
for nom_sd,sd in context.items():
if not isinstance(sd,ASSD):continue
- if self.parent.get_sd_apres_etape(nom_sd,etape=self):
- # Il existe un concept apres self => impossible d'inserer
+ #if self.parent.get_sd_apres_etape(nom_sd,etape=self):
+ if self.parent.get_sd_apres_etape_avec_detruire(nom_sd,sd,etape=self):
+ # Il existe un concept produit par une etape apres self => impossible d'inserer
+ # On force le contexte (etape courante) à self
+ CONTEXT.unset_current_step()
+ CONTEXT.set_current_step(self)
raise Exception("Impossible d'inclure le fichier. Un concept de nom " +
"%s existe déjà dans le jeu de commandes." % nom_sd)
def reevalue_sd_jdc(self):
"""
Avec la liste des SD qui ont été supprimées, propage la
- disparition de ces SD dans totues les étapes et descendants
+ disparition de ces SD dans toutes les étapes et descendants
"""
- l_sd = self.diff_contextes()
- if len(l_sd) == 0 : return
- for sd in l_sd:
- self.jdc.delete_concept(sd)
+ l_sd_supp,l_sd_repl = self.diff_contextes()
+ for sd in l_sd_supp:
+ self.parent.delete_concept_after_etape(self,sd)
+ for old_sd,sd in l_sd_repl:
+ self.parent.replace_concept_after_etape(self,old_sd,sd)
def diff_contextes(self):
"""
Réalise la différence entre les 2 contextes
old_contexte_fichier_init et contexte_fichier_init
- cad retourne la liste des sd qui ont disparu
+ cad retourne la liste des sd qui ont disparu ou ne derivent pas de la meme classe
+ et des sd qui ont ete remplacees
"""
- if not hasattr(self,'old_contexte_fichier_init'):return []
+ if not hasattr(self,'old_contexte_fichier_init'):return [],[]
l_sd_suppressed = []
+ l_sd_replaced = []
for old_key in self.old_contexte_fichier_init.keys():
if not self.contexte_fichier_init.has_key(old_key):
if isinstance(self.old_contexte_fichier_init[old_key],ASSD):
l_sd_suppressed.append(self.old_contexte_fichier_init[old_key])
- return l_sd_suppressed
+ else:
+ if isinstance(self.old_contexte_fichier_init[old_key],ASSD):
+ # Un concept de meme nom existe
+ old_class=self.old_contexte_fichier_init[old_key].__class__
+ if not isinstance(self.contexte_fichier_init[old_key],old_class):
+ # S'il n'est pas d'une classe derivee, on le supprime
+ l_sd_suppressed.append(self.old_contexte_fichier_init[old_key])
+ else:
+ l_sd_replaced.append((self.old_contexte_fichier_init[old_key],self.contexte_fichier_init[old_key]))
+ return l_sd_suppressed,l_sd_replaced
+ def control_sdprods(self,d):
+ """
+ Cette methode doit updater le contexte fournit par
+ l'appelant en argument (d) en fonction de sa definition
+ tout en verifiant que ses concepts produits ne sont pas
+ deja definis dans le contexte
+ """
+ if hasattr(self,"fichier_unite"):
+ self.update_fichier_init(self.fichier_unite)
+ self.init_modif()
+
+ if type(self.definition.op_init) == types.FunctionType:
+ apply(self.definition.op_init,(self,d))
+ if self.sd:
+ if d.has_key(self.sd.nom):
+ # Le concept est deja defini
+ if self.reuse and self.reuse is d[self.sd.nom]:
+ # Le concept est reutilise : situation normale
+ pass
+ else:
+ # Redefinition du concept, on l'annule
+ #XXX on pourrait simplement annuler son nom pour conserver les objets
+ # l'utilisateur n'aurait alors qu'a renommer le concept (faisable??)
+ self.sd=self.reuse=self.sdnom=None
+ self.init_modif()
+ else:
+ # Le concept n'est pas defini, on peut updater d
+ d[self.sd.nom]=self.sd
+ # On verifie les concepts a droite du signe =
+ for co in self.sdprods:
+ if d.has_key(co.nom) and co is not d[co.nom] :
+ self.delete_concept(co)
+ else:
+ d[co.nom]=co
+
+
def supprime_sdprods(self):
"""
Fonction:
# Si la macro a des etapes et des concepts inclus, on les detruit
for nom_sd,co in self.g_context.items():
if not isinstance(co,ASSD):continue
- print "Delete: ",self.nom,co.nom
self.parent.del_sdprod(co)
self.parent.delete_concept(co)
# On met g_context à blanc
self.g_context={}
+#ATTENTION : cette methode surcharge celle de Noyau (a garder en synchro)
+ def Build_sd(self,nom):
+ """
+ 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 est défini. Dans ce cas, l'étape demande au parent la
+ création et le nommage du concept.
+
+ """
+ if not self.isactif():return
+ # CCAR : meme modification que dans I_ETAPE
+ if not self.isvalid(sd='non') : return
+ self.sdnom=nom
+ try:
+ # On positionne la macro self en tant que current_step pour que les
+ # étapes créées lors de l'appel à sd_prod et à op_init aient la macro
+ # comme parent
+ self.set_current_step()
+ if self.parent:
+ sd= self.parent.create_sdprod(self,nom)
+ if type(self.definition.op_init) == types.FunctionType:
+ apply(self.definition.op_init,(self,self.parent.g_context))
+ else:
+ sd=self.get_sd_prod()
+ 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
+ self.reset_current_step()
+ # Si on est arrive ici, l'etape est valide
+ self.state="unchanged"
+ self.valid=1
+ if self.jdc and self.jdc.par_lot == "NON" :
+ self.Execute()
+ return sd
+ except AsException,e:
+ self.reset_current_step()
+ # Une erreur s'est produite lors de la construction du concept
+ # Comme on est dans EFICAS, on essaie de poursuivre quand meme
+ # Si on poursuit, on a le choix entre deux possibilités :
+ # 1. on annule la sd associée à self
+ # 2. on la conserve mais il faut qu'elle soit correcte et la retourner
+ # En plus il faut rendre coherents sdnom et sd.nom
+ # On choisit de retourner None et de mettre l'etape invalide
+ self.sd=None
+ self.sdnom=None
+ self.state="unchanged"
+ self.valid=0
+ return self.sd
+ #raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
+ # 'fichier : ',self.appel[1],e)
+ except EOFError:
+ raise
+ except :
+ self.reset_current_step()
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
+ 'fichier : ',self.appel[1]+'\n',
+ string.join(l))
+
+ def make_contexte_include(self,fichier,text):
+ """
+ Cette méthode sert à créer un contexte en interprétant un texte source
+ Python
+ """
+ # on récupère le contexte d'un nouveau jdc dans lequel on interprete text
+ contexte = self.get_contexte_jdc(fichier,text)
+ if contexte == None :
+ raise Exception("Impossible de construire le jeu de commandes correspondant au fichier")
+ else:
+ # Pour les macros de type include : INCLUDE, INCLUDE_MATERIAU et POURSUITE
+ # l'attribut g_context est un dictionnaire qui contient les concepts produits par inclusion
+ # l'attribut contexte_fichier_init est un dictionnaire qui contient les concepts produits
+ # en sortie de macro. g_context est obtenu en retirant de contexte_fichier_init les concepts
+ # existants en debut de macro contenus dans context_ini (dans get_contexte_jdc)
+ # g_context est utilisé pour avoir les concepts produits par la macro
+ # contexte_fichier_init est utilisé pour avoir les concepts supprimés par la macro
+ self.contexte_fichier_init = contexte
+
+ def reevalue_fichier_init(self):
+ """Recalcule les concepts produits par le fichier enregistre"""
+ old_context=self.contexte_fichier_init
+ try:
+ self.make_contexte_include(self.fichier_ini ,self.fichier_text)
+ except:
+ l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+ self.fichier_err = string.join(l)
+ #self.etapes=[]
+ self.g_context={}
+
+ self.old_contexte_fichier_init=old_context
+ self.contexte_fichier_init={}
+ self.reevalue_sd_jdc()
+ return
+
+ # L'evaluation s'est bien passee
+ self.fichier_err = None
+ self.old_contexte_fichier_init=old_context
+ self.reevalue_sd_jdc()
+
+ def update_fichier_init(self,unite):
+ """Reevalue le fichier init sans demander (dans la mesure du possible) a l'utilisateur
+ les noms des fichiers
+ Ceci suppose que les relations entre unites et noms ont été memorisees préalablement
+ """
+
+ self.fichier_err=None
+ self.old_contexte_fichier_init=self.contexte_fichier_init
+
+ if unite != self.fichier_unite or not self.parent.recorded_units.has_key(unite):
+ # Changement d'unite ou Nouvelle unite
+ f,text=self.get_file(unite=unite,fic_origine=self.parent.nom)
+ units={}
+ if f is not None:
+ self.fichier_ini = f
+ self.fichier_text=text
+ self.recorded_units=units
+ if self.fichier_ini is None and self.jdc.appli:
+ self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus",
+ message="Ce fichier ne sera pas pris en compte\n"+"Le fichier associé n'est pas défini")
+ else:
+ # Meme unite existante
+ f,text,units=self.parent.recorded_units[unite]
+ self.fichier_ini = f
+ self.fichier_text=text
+ self.recorded_units=units
+
+ if self.fichier_ini is None:
+ # Le fichier n'est pas défini
+ self.fichier_err="Le fichier associé n'est pas défini"
+ self.parent.change_unit(unite,self,self.fichier_unite)
+ self.g_context={}
+ self.contexte_fichier_init={}
+ self.parent.reset_context()
+ self.reevalue_sd_jdc()
+ return
+
+ try:
+ self.make_contexte_include(self.fichier_ini,self.fichier_text)
+ # Les 3 attributs fichier_ini fichier_text recorded_units doivent etre corrects
+ # avant d'appeler change_unit
+ self.parent.change_unit(unite,self,self.fichier_unite)
+ except:
+ # Erreurs lors de l'evaluation de text dans un JDC auxiliaire
+ l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+ # On conserve la memoire du nouveau fichier
+ # mais on n'utilise pas les concepts crees par ce fichier
+ # on met l'etape en erreur : fichier_err=string.join(l)
+ self.fichier_err=string.join(l)
+ self.parent.change_unit(unite,self,self.fichier_unite)
+ self.g_context={}
+ self.contexte_fichier_init={}
+
+ # Le contexte du parent doit etre reinitialise car les concepts produits ont changé
+ self.parent.reset_context()
+ # Si des concepts ont disparu lors du changement de fichier, on demande leur suppression
+ self.reevalue_sd_jdc()
+
+ def record_unite(self):
+ if self.nom == "POURSUITE":
+ self.parent.record_unit(None,self)
+ else:
+ if hasattr(self,'fichier_unite') :
+ self.parent.record_unit(self.fichier_unite,self)
+
+ def make_poursuite(self):
+ """ Cette methode est appelée par la fonction sd_prod de la macro POURSUITE
+ """
+ if not hasattr(self,'fichier_ini') :
+ # Si le fichier n'est pas defini on le demande
+ f,text=self.get_file_memo(fic_origine=self.parent.nom)
+ # On memorise le fichier retourne
+ self.fichier_ini = f
+ self.fichier_unite = None
+ self.fichier_text = text
+ self.fichier_err=None
+ import Extensions.jdc_include
+ self.JdC_aux=Extensions.jdc_include.JdC_poursuite
+ self.contexte_fichier_init={}
+
+ if f is None:
+ self.fichier_err="Le fichier POURSUITE n'est pas defini"
+ self.parent.record_unit(None,self)
+ raise Exception(self.fichier_err)
+
+ try:
+ self.make_contexte_include(self.fichier_ini,self.fichier_text)
+ self.parent.record_unit(None,self)
+ except:
+ l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+ if self.jdc.appli:
+ self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier poursuite",
+ message="Ce fichier ne sera pas pris en compte\n"+string.join(l)
+ )
+ self.parent.record_unit(None,self)
+ self.g_context={}
+ self.fichier_err = string.join(l)
+ self.contexte_fichier_init={}
+ raise
+
+ else:
+ # Si le fichier est deja defini on ne reevalue pas le fichier
+ # et on leve une exception si une erreur a été enregistrée
+ self.update_fichier_init(None)
+ if self.fichier_err is not None: raise Exception(self.fichier_err)
+
+ def get_file(self,unite=None,fic_origine=''):
+ """Retourne le nom du fichier et le source correspondant a l'unite unite
+ Initialise en plus recorded_units
+ """
+ units={}
+ if self.jdc :
+ f,text=self.jdc.get_file(unite=unite,fic_origine=fic_origine)
+ else:
+ f,text=None,None
+ self.recorded_units=units
+ return f,text
+
+ def get_file_memo(self,unite=None,fic_origine=''):
+ """Retourne le nom du fichier et le source correspondant a l'unite unite
+ Initialise en plus recorded_units
+ """
+ units={}
+ if self.parent.old_recorded_units.has_key(unite):
+ f,text,units=self.parent.old_recorded_units[unite]
+ self.recorded_units=units
+ return f,text
+ elif self.jdc :
+ f,text=self.jdc.get_file(unite=unite,fic_origine=fic_origine)
+ else:
+ f,text=None,None
+ self.recorded_units=units
+ if f is None and self.jdc.appli:
+ self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus",
+ message="Ce fichier ne sera pas pris en compte\n"+"Le fichier associé n'est pas défini")
+ return f,text
+
+#ATTENTION : cette methode surcharge celle de Noyau (a garder en synchro)
+ def make_include(self,unite=None):
+ """
+ Inclut un fichier dont l'unite logique est unite
+ Cette methode est appelee par la fonction sd_prod de la macro INCLUDE
+ Si l'INCLUDE est invalide, la methode doit produire une exception
+ Sinon on retourne None. Les concepts produits par l'INCLUDE sont
+ pris en compte par le JDC parent lors du calcul du contexte (appel de ???)
+ """
+
+ # On supprime l'attribut unite qui bloque l'evaluation du source de l'INCLUDE
+ # car on ne s'appuie pas sur lui dans EFICAS mais sur l'attribut fichier_ini
+ del self.unite
+ # Si unite n'a pas de valeur, l'etape est forcement invalide. On peut retourner None
+ if not unite : return
+
+ if not hasattr(self,'fichier_ini') :
+ # Si le fichier n'est pas defini on le demande
+ f,text=self.get_file_memo(unite=unite,fic_origine=self.parent.nom)
+ # On memorise le fichier retourne
+ self.fichier_ini = f
+ self.fichier_text = text
+ self.contexte_fichier_init={}
+ self.fichier_unite=unite
+ self.fichier_err=None
+ import Extensions.jdc_include
+ self.JdC_aux=Extensions.jdc_include.JdC_include
+
+ if f is None:
+ self.fichier_err="Le fichier INCLUDE n est pas defini"
+ self.parent.record_unit(unite,self)
+ raise Exception(self.fichier_err)
+
+ try:
+ self.make_contexte_include(self.fichier_ini ,self.fichier_text)
+ self.parent.record_unit(unite,self)
+ except:
+ l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+ if self.jdc.appli:
+ self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus",
+ message="Ce fichier ne sera pas pris en compte\n"+string.join(l)
+ )
+ self.parent.record_unit(unite,self)
+ self.g_context={}
+ self.fichier_err = string.join(l)
+ self.contexte_fichier_init={}
+ raise
+
+ else:
+ # Si le fichier est deja defini on ne reevalue pas le fichier
+ # et on leve une exception si une erreur a été enregistrée
+ self.update_fichier_init(unite)
+ self.fichier_unite=unite
+ if self.fichier_err is not None: raise Exception(self.fichier_err)
+
+
+#ATTENTION : cette methode surcharge celle de Noyau (a garder en synchro)
+ def make_contexte(self,fichier,text):
+ """
+ Cette méthode sert à créer un contexte pour INCLUDE_MATERIAU
+ en interprétant un texte source Python
+ Elle est appelee par la fonction sd_prd d'INCLUDE_MATERIAU
+ """
+ # On supprime l'attribut mat qui bloque l'evaluation du source de l'INCLUDE_MATERIAU
+ # car on ne s'appuie pas sur lui dans EFICAS mais sur l'attribut fichier_ini
+ if hasattr(self,'mat'):del self.mat
+ self.fichier_ini =fichier
+ self.fichier_unite =fichier
+ self.fichier_text=text
+ self.fichier_err=None
+ self.contexte_fichier_init={}
+ # On specifie la classe a utiliser pour le JDC auxiliaire
+ import Extensions.jdc_include
+ self.JdC_aux=Extensions.jdc_include.JdC_include
+ try:
+ self.make_contexte_include(self.fichier_ini ,self.fichier_text)
+ self.parent.record_unit(self.fichier_unite,self)
+ except:
+ l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+ self.fichier_err = string.join(l)
+ self.parent.record_unit(self.fichier_unite,self)
+ self.g_context={}
+ self.contexte_fichier_init={}
+ raise
+
+#ATTENTION : cette methode surcharge celle de Noyau (a garder en synchro)
+ def update_sdprod(self,cr='non'):
+ # Cette methode peut etre appelee dans EFICAS avec des mots cles de
+ # la commande modifies. Ceci peut conduire a la construction ou
+ # a la reconstruction d'etapes dans le cas d'INCLUDE ou d'INCLUDE_MATERIAU
+ # Il faut donc positionner le current_step avant l'appel
+ CONTEXT.unset_current_step()
+ CONTEXT.set_current_step(self)
+ valid=Validation.V_MACRO_ETAPE.MACRO_ETAPE.update_sdprod(self,cr=cr)
+ CONTEXT.unset_current_step()
+ return valid
+
+# 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 I_MCCOMPO
class MCBLOC(I_MCCOMPO.MCCOMPO):
def makeobjet(self):
+# 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,types
else:
return self.nom
- def get_genealogie(self):
- """
- Retourne la liste des noms des ascendants (noms de MCSIMP,MCFACT,MCBLOC
- ou ETAPE) de self jusqu'au premier objet etape rencontré
- """
- l=[]
- objet = self
- while objet.definition.label != 'JDC' :
- if not objet.isMCList() :
- l.append(string.strip(objet.nom))
- else :
- pass
- # Si objet.etape == etape c'est que objet est l'étape origine de la généalogie
- if objet.etape == objet: break
- objet = objet.parent
- l.reverse()
- return l
-
def get_liste_mc_ordonnee(self,liste,dico):
"""
Retourne la liste ordonnée (suivant le catalogue) des mots-clés
"""
for arg in liste:
objet_cata = dico[arg]
- dico=objet_cata.dico
- return objet_cata.liste
+ dico=objet_cata.entites
+ return objet_cata.ordre_mc
def filtre_liste_mc(self,liste_brute):
"""
liste.remove(k)
if self.definition.entites[k].label=='BLOC':
liste.remove(k)
+ # Pour corriger les exces qui pourraient etre commis dans la methode purge_liste
+ # des regles, on essaie de compenser comme suit :
+ # on ajoute les mots cles facteurs presents dont l'occurence n'est pas atteinte
+ for k in liste_mc_presents:
+ if k in liste:continue
+ objet = self.get_child(k,restreint = 'oui')
+ if isinstance(objet,MCFACT):
+ # un mot-clé facteur ne peut pas être répété plus de self.max fois
+ if objet.definition.max > 1:
+ liste.append(k)
+ elif isinstance(objet,MCList):
+ nb_occur_maxi = objet[0].definition.max
+ if len(objet) < nb_occur_maxi:
+ liste.append(k)
return liste
def liste_mc_presents(self):
"""
self.init_modif()
if type(name)==types.StringType :
+ # on est en mode création d'un motcle
if self.ispermis(name) == 0 : return 0
objet=self.definition.entites[name](val=None,nom=name,parent=self)
if hasattr(objet.definition,'position'):
elif objet.definition.position == 'global_jdc' :
self.append_mc_global_jdc(objet)
else :
+ # dans ce cas on est en mode copie d'un motcle
objet = name
+ objet.verif_existence_sd()
# si un objet de même nom est déjà présent dans la liste
# et si l'objet est répétable
# il faut créer une MCList et remplacer l'objet de la liste
new_obj.init(objet.nom,self)
new_obj.append(old_obj)
new_obj.append(objet)
+ # Il ne faut pas oublier de reaffecter le parent d'obj
+ objet.reparent(self)
self.mc_liste.remove(old_obj)
self.mc_liste.insert(index,new_obj)
self.fin_modif()
# une liste d'objets de même type existe déjà
#print "une liste d'objets de même type existe déjà"
old_obj.append(objet)
+ # Il ne faut pas oublier de reaffecter le parent d'obj
+ objet.reparent(self)
self.fin_modif()
return old_obj
if pos == None :
self.mc_liste.append(objet)
else :
self.mc_liste.insert(pos,objet)
+ # Il ne faut pas oublier de reaffecter le parent d'obj (si copie)
+ objet.reparent(self)
self.fin_modif()
return objet
for child in self.mc_liste :
child.delete_concept(sd)
+ def replace_concept(self,old_sd,sd):
+ """
+ Inputs :
+ old_sd=concept remplace
+ sd = nouveau concept
+ Fonction :
+ Mettre a jour les fils de l objet suite au remplacement du
+ concept old_sd
+ """
+ for child in self.mc_liste :
+ child.replace_concept(old_sd,sd)
+
def delete_mc_global(self,mc):
"""
Supprime le mot-clé mc de la liste des mots-clés globaux de l'étape
def copy(self):
""" Retourne une copie de self """
objet = self.makeobjet()
+ # FR : attention !!! avec makeobjet, objet a le même parent que self
+ # ce qui n'est pas du tout bon dans le cas d'une copie !!!!!!!
+ # FR : peut-on passer par là autrement que dans le cas d'une copie ???
+ # FR --> je suppose que non
+ # XXX CCAR : le pb c'est qu'on vérifie ensuite quel parent avait l'objet
+ # Il me semble preferable de changer le parent a la fin quand la copie est acceptee
objet.valeur = copy(self.valeur)
objet.val = copy(self.val)
objet.mc_liste=[]
for obj in self.mc_liste:
new_obj = obj.copy()
+ new_obj.reparent(objet)
objet.mc_liste.append(new_obj)
return objet
for child in self.mc_liste :
if child.isvalid() : continue
l_child = child.get_liste_mc_inconnus()
- if l_child :
+ for mc in l_child:
l = [self]
- l.extend(l_child)
+ l.extend(mc)
l_mc.append(l)
return l_mc
liste_retraits = []
dict = self.cree_dict_valeurs(self.mc_liste)
for k,v in self.definition.entites.items():
- #dict = self.cree_dict_valeurs(self.mc_liste)
if v.label=='BLOC' :
- if v.verif_presence(dict) :
+ globs= self.jdc and self.jdc.condition_context or {}
+ if v.verif_presence(dict,globs):
# le bloc doit être présent
if not self.get_child(k,restreint = 'oui'):
# le bloc n'est pas présent et il doit être créé
liste_retraits.append(k)
return liste_ajouts,liste_retraits
+ def reparent(self,parent):
+ """
+ Cette methode sert a reinitialiser la parente de l'objet
+ """
+ self.parent=parent
+ self.jdc=parent.get_jdc_root()
+ self.etape=parent.etape
+ for mocle in self.mc_liste:
+ mocle.reparent(self)
+
+ def verif_existence_sd(self):
+ """
+ Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+ avant étape, sinon enlève la référence à ces concepts
+ """
+ for motcle in self.mc_liste :
+ motcle.verif_existence_sd()
+# 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 I_MCCOMPO
class MCFACT(I_MCCOMPO.MCCOMPO):
def isrepetable(self):
+# 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 copy import copy
class MCList:
return 0
def isoblig(self):
- for i in self.data:
- if i.isoblig():return 1
- return 0
+ """
+ Une MCList n'est jamais obligatoire (même si le MCFACT qu'elle représente l'est
+ """
+ return 0
+ #for i in self.data:
+ # if i.isoblig():return 1
+ #return 0
def liste_mc_presents(self):
return []
for child in self.data :
child.delete_concept(sd)
+ def replace_concept(self,old_sd,sd):
+ """
+ Inputs :
+ old_sd=concept remplacé
+ sd=nouveau concept
+ Fonction :
+ Mettre a jour les fils de l objet suite au remplacement
+ du concept old_sd
+ """
+ for child in self.data :
+ child.replace_concept(old_sd,sd)
+
def copy(self):
+ """
+ Réalise la copie d'une MCList
+ """
liste = self.data[0].definition.list_instance()
- # XXX Pas de parent ??
- liste.init(self.nom)
+ # FR -->Il faut spécifier un parent pour la méthode init qui attend 2 arguments ...
+ liste.init(self.nom,self.parent)
for objet in self:
new_obj = objet.copy()
+ # Pour etre coherent avec le constructeur de mots cles facteurs N_FACT.__call__
+ # dans lequel le parent de l'element d'une MCList est le parent de la MCList
+ new_obj.reparent(self.parent)
liste.append(new_obj)
return liste
for mcfact in self.data :
if mcfact.isvalid() : continue
l_child = mcfact.get_liste_mc_inconnus()
- if l_child :
- l = [self]
- l.extend(l_child)
- l_mc.append(l)
+ for mc in l_child:
+ l = [self]
+ l.extend(mc)
+ l_mc.append(l)
return l_mc
def verif_condition_regles(self,liste_presents):
# Sans objet pour une liste de mots clés facteurs
return [],[]
+ def init_modif(self):
+ """
+ Met l'état de l'objet à modified et propage au parent
+ qui vaut None s'il n'existe pas
+ """
+ self.state = 'modified'
+ if self.parent:
+ self.parent.init_modif()
+
+ def get_etape(self):
+ """
+ Retourne l'étape à laquelle appartient self
+ Un objet de la catégorie etape doit retourner self pour indiquer que
+ l'étape a été trouvée
+ XXX double emploi avec self.etape ???
+ """
+ if self.parent == None: return None
+ return self.parent.get_etape()
+
+ def get_genealogie(self):
+ """
+ Retourne la liste des noms des ascendants.
+ Un objet MCList n'est pas enregistré dans la genealogie.
+ XXX Meme si le MCFACT fils ne l'est pas lui non plus ????
+ """
+ if self.parent:
+ return self.parent.get_genealogie()
+ else:
+ return []
+
+ def get_liste_mc_ordonnee_brute(self,liste,dico):
+ """
+ Retourne la liste ordonnée (suivant le catalogue) BRUTE des mots-clés
+ d'une entité composée dont le chemin complet est donné sous forme
+ d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
+ """
+ for arg in liste:
+ objet_cata = dico[arg]
+ dico=objet_cata.entites
+ return objet_cata.ordre_mc
+
+ def reparent(self,parent):
+ """
+ Cette methode sert a reinitialiser la parente de l'objet
+ """
+ self.parent=parent
+ self.jdc=parent.jdc
+ self.etape=parent.etape
+ for mcfact in self.data:
+ mcfact.reparent(parent)
+
+ def verif_existence_sd(self):
+ """
+ Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+ avant étape, sinon enlève la référence à ces concepts
+ """
+ for motcle in self.data :
+ motcle.verif_existence_sd()
+
+ def get_sd_utilisees(self):
+ """
+ Retourne la liste des concepts qui sont utilisés à l'intérieur de self
+ ( comme valorisation d'un MCS)
+ """
+ l=[]
+ for motcle in self.data:
+ l.extend(motcle.get_sd_utilisees())
+ return l
+
+ def get_fr(self):
+ """
+ Retourne la chaine d'aide contenue dans le catalogue
+ en tenant compte de la langue
+ """
+ try :
+ return self.data[0].get_fr()
+ except:
+ return ''
+
+# 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 types,string
import traceback
from copy import copy
myrepr.maxother = 100
from Noyau.N_utils import repr_float
+
+# Attention : les classes ASSD,.... peuvent etre surchargées
+# dans le package Accas. Il faut donc prendre des précautions si
+# on utilise les classes du Noyau pour faire des tests (isxxxx, ...)
+# Si on veut créer des objets comme des CO avec les classes du noyau
+# ils n'auront pas les conportements des autres packages (pb!!!)
+# Il vaut mieux les importer d'Accas mais problème d'import circulaire,
+# on ne peut pas les importer au début.
+# On fait donc un import local quand c'est nécessaire (peut occasionner
+# des pbs de prformance).
from Noyau.N_ASSD import ASSD,assd
from Noyau.N_GEOM import GEOM,geom
from Noyau.N_CO import CO
-from Noyau.N_EVAL import EVAL
+# fin attention
+
from Extensions import parametre
import I_OBJECT
if self.valeur == None :
return None
elif type(self.valeur) == types.FloatType :
- txt = repr_float(self.valeur)
+ #txt = repr_float(self.valeur)
+ # Normalement str fait un travail correct
+ txt = str(self.valeur)
elif type(self.valeur) in (types.ListType,types.TupleType) :
txt='('
i=0
for val in self.valeur:
if type(val) == types.FloatType :
- txt=txt + i*',' + repr_float(val)
+ # Normalement str fait un travail correct
+ #txt=txt + i*',' + repr_float(val)
+ txt=txt + i*',' + str(val)
elif type(val) == types.InstanceType and isinstance(val,ASSD):
txt = txt + i*',' + val.get_name()
else:
if isinstance(txt,parametre.PARAMETRE):
return str(txt)
return repr(txt)
- # il faut tronquer txt au delà d'un certain nombre de caractères
- # et avant tout retour chariot (txt peut être une chaîne de caractères
+ # txt peut etre une longue chaine sur plusieurs lignes.
+ # Il est possible de tronquer cette chaine au premier \n et
+ # de limiter la longueur de la chaine a 30 caracteres. Cependant
+ # ceci provoque une perte d'information pour l'utilisateur
+ # Pour le moment on retourne la chaine telle que
+ return txt
+
+ # Partie de code inaccessible (pour memoire)
+ # txt est tronquee au dela d'un certain nombre de caractères
+ # et avant tout retour chariot (txt peut etre une chaine de caractères
# sur plusieurs lignes (ex:shell)
txt = string.split(txt,'\n')[0]
if len(txt) < 30 :
"""
for typ in self.definition.type:
if type(typ) == types.ClassType :
- if typ is CO : return 1
+ if issubclass(typ,CO) :
+ return 1
return 0
def wait_assd(self):
"""
for typ in self.definition.type:
if type(typ) == types.ClassType :
- if typ in (GEOM,ASSD,geom,assd) or issubclass(typ,GEOM) :
+ if typ.__name__ in ("GEOM","ASSD","geom","assd") or issubclass(typ,GEOM) :
return 1
return 0
self.val = new_valeur
self.valeur = valeur
self.init_modif()
+ self.fin_modif()
return 1
else:
# On n'a pas trouve de concept ni réussi à évaluer la valeur
# type de nom new_valeur
if self.wait_co():
try:
+ # Pour avoir la classe CO avec tous ses comportements
+ from Accas import CO
self.valeur=CO(new_valeur)
except:
traceback.print_exc()
return 0
- self.val=self.valeur
self.init_modif()
+ self.val=self.valeur
+ self.fin_modif()
return 1
elif type(new_valeur)==types.StringType and self.wait_TXM():
+ self.init_modif()
self.val = new_valeur
self.valeur = new_valeur
- self.init_modif()
+ self.fin_modif()
return 1
else:
return 0
else :
# on ne fait aucune vérification ...
+ self.init_modif()
try:
self.valeur = eval(new_valeur)
self.val = eval(new_valeur)
- self.init_modif()
+ self.fin_modif()
return 1
except:
self.valeur = new_valeur
self.val = new_valeur
- self.init_modif()
+ self.fin_modif()
return 1
def eval_valeur(self,new_valeur):
return sd,1
else:
d={}
+ # On veut EVAL avec tous ses comportements. On utilise Accas. Perfs ??
+ from Accas import EVAL
d['EVAL']=EVAL
try :
objet = eval(new_valeur,d)
return objet,1
except Exception:
+# PN :
+# - Ajout de quote autour de la valeur en cas de chaine de caracteres
+ if type(new_valeur)==types.StringType and self.wait_TXM():
+ new_valeur="'"+new_valeur+"'"
+ try :
+ objet = eval(new_valeur,d)
+ return objet,1
+ except :
+ return None,0
if CONTEXT.debug : traceback.print_exc()
return None,0
self.val=None
self.init_modif()
+ def replace_concept(self,old_sd,sd):
+ """
+ Inputs :
+ old_sd=concept remplacé
+ sd=nouveau concept
+ Fonction :
+ Met a jour la valeur du mot cle simple suite au remplacement
+ du concept old_sd
+ """
+ if type(self.valeur) == types.TupleType :
+ if old_sd in self.valeur:
+ self.valeur=list(self.valeur)
+ i=self.valeur.index(old_sd)
+ self.valeur[i]=sd
+ self.init_modif()
+ elif type(self.valeur) == types.ListType:
+ if old_sd in self.valeur:
+ i=self.valeur.index(old_sd)
+ self.valeur[i]=sd
+ self.init_modif()
+ else:
+ if self.valeur == old_sd:
+ self.valeur=sd
+ self.val=sd
+ self.init_modif()
+
def copy(self):
""" Retourne une copie de self """
objet = self.makeobjet()
- #XXX est ce utile ??
- objet.valeur = copy(self.valeur)
- objet.val = copy(self.val)
+ # 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):
+ objet.valeur = copy(self.valeur)
+ else:
+ objet.valeur = self.valeur
+ objet.val = objet.valeur
return objet
def makeobjet(self):
if issubclass(self.valeur.__class__,ASSD) : l.append(self.valeur)
return l
+
+ def set_valeur_co(self,nom_co):
+ """
+ Affecte à self l'objet de type CO et de nom nom_co
+ """
+ step=self.etape.parent
+ if nom_co == None or nom_co == '':
+ new_objet=None
+ else:
+ # Pour le moment on importe en local le CO de Accas.
+ # Si problème de perfs, il faudra faire autrement
+ from Accas import CO
+ # Avant de créer un concept il faut s'assurer du contexte : step
+ # courant
+ sd= step.get_sd_autour_etape(nom_co,self.etape,avec='oui')
+ if sd:
+ # Si un concept du meme nom existe deja dans la portée de l'étape
+ # on ne crée pas le concept
+ return 0,"un concept de meme nom existe deja"
+ # Il n'existe pas de concept de meme nom. On peut donc le créer
+ # Il faut néanmoins que la méthode NommerSdProd de step gère les
+ # contextes en mode editeur
+ # Normalement la méthode du Noyau doit etre surchargée
+ # On déclare l'étape du mot clé comme etape courante pour NommerSdprod
+ cs= CONTEXT.get_current_step()
+ CONTEXT.unset_current_step()
+ CONTEXT.set_current_step(step)
+ step.set_etape_context(self.etape)
+ new_objet = CO(nom_co)
+ CONTEXT.unset_current_step()
+ CONTEXT.set_current_step(cs)
+ self.init_modif()
+ self.valeur = new_objet
+ self.val = new_objet
+ self.fin_modif()
+ step.reset_context()
+ # On force l'enregistrement de new_objet en tant que concept produit
+ # de la macro en appelant get_type_produit avec force=1
+ self.etape.get_type_produit(force=1)
+ return 1,"Concept créé"
+
+ def reparent(self,parent):
+ """
+ Cette methode sert a reinitialiser la parente de l'objet
+ """
+ self.parent=parent
+ self.jdc=parent.jdc
+ self.etape=parent.etape
+
+ def verif_existence_sd(self):
+ """
+ Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+ avant étape, sinon enlève la référence à ces concepts
+ """
+ l_sd_avant_etape = self.jdc.get_contexte_avant(self.etape).values()
+ if type(self.valeur) in (types.TupleType,types.ListType) :
+ l=[]
+ for sd in self.valeur:
+ if isinstance(sd,ASSD) :
+ if sd in l_sd_avant_etape :
+ l.append(sd)
+ else:
+ l.append(sd)
+ self.valeur=l
+ # Est ce init_modif ou init_modif_up
+ # Normalement init_modif va avec fin_modif
+ self.init_modif()
+ self.fin_modif()
+ else:
+ if isinstance(self.valeur,ASSD) :
+ if self.valeur not in l_sd_avant_etape :
+ self.valeur = None
+ self.init_modif()
+ self.fin_modif()
+
+ def get_min_max(self):
+ """
+ Retourne les valeurs min et max admissibles pour la valeur de self
+ """
+ return self.definition.min,self.definition.max
+
+
+ def get_type(self):
+ """
+ Retourne le type attendu par le mot-clé simple
+ """
+ return self.definition.type
+
+#ATTENTION : toutes les methodes ci apres sont des surcharges du Noyau et de Validation
+# Elles doivent etre reintegrees des que possible
+
+ def isvalid(self,cr='non'):
+ """
+ Cette méthode retourne un indicateur de validité de l'objet
+ de type MCSIMP
+
+ - 0 si l'objet est invalide
+
+ - 1 si l'objet est valide
+
+ Le paramètre cr permet de paramétrer le traitement.
+ Si cr == 'oui'
+ la méthode construit également un comte-rendu de validation
+ dans self.cr qui doit avoir été créé préalablement.
+ """
+ if self.state == 'unchanged':
+ return self.valid
+ else:
+ valid = 1
+ if hasattr(self,'valid'):
+ old_valid = self.valid
+ else:
+ old_valid = None
+ v=self.valeur
+ # presence
+ if self.isoblig() and v == None :
+ if cr == 'oui' :
+ self.cr.fatal(string.join(("Mot-clé : ",self.nom," obligatoire non valorisé")))
+ valid = 0
+ # type,into ...
+ valid = self.verif_type(cr=cr)*self.verif_into(cr=cr)*self.verif_card(cr=cr)
+ self.valid = valid
+ self.state = 'unchanged'
+ # Si la validité du mot clé a changé, on le signale à l'objet parent
+ if not old_valid:
+ self.init_modif_up()
+ elif old_valid != self.valid :
+ self.init_modif_up()
+ return self.valid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# 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
+
+import prefs
+import Noyau
class OBJECT:
+ from Noyau.N_CO import CO
+ from Noyau.N_ASSD import assd
+
def isMCList(self):
"""
Retourne 1 si self est une MCList (liste de mots-clés),
"""
return [],[]
+ def get_genealogie(self):
+ """
+ Retourne la liste des noms des ascendants (noms de MCSIMP,MCFACT,MCBLOC
+ ou ETAPE) de self jusqu'au premier objet etape rencontré
+ """
+ if self.parent:
+ l=self.parent.get_genealogie()
+ l.append(string.strip(self.nom))
+ return l
+ else:
+ return [string.strip(self.nom)]
+
+ def reparent(self,parent):
+ """
+ Cette methode sert a reinitialiser la parente de l'objet
+ """
+ self.parent=parent
+ self.jdc=parent.jdc
+
+ def get_fr(self):
+ """
+ Retourne la chaine d'aide contenue dans le catalogue
+ en tenant compte de la langue
+ """
+ try :
+ return getattr(self.definition,prefs.lang)
+ except:
+ return ''
+
+# 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.
+#
+#
+# ======================================================================
"""
"""
if self.mcs[0] in liste_mc_presents:regle_active=1
if not regle_active : return liste_a_purger
- for mc in self.mcs:
- if mc in liste_a_purger:
+ # Il ne faut pas purger le mot cle present
+ for mc in self.mcs[1:]:
+ if mc in liste_a_purger :
liste_a_purger.remove(mc)
return liste_a_purger
+# 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.
+#
+#
+# ======================================================================
"""
"""
+# 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 I_ETAPE
+
+
+# import rajoutés suite à l'ajout de Build_sd --> à résorber
+import sys
+import traceback,types,string
+import Noyau
+from Noyau import N_Exception
+from Noyau.N_Exception import AsException
+# fin import à résorber
+
class PROC_ETAPE(I_ETAPE.ETAPE):
def get_sdname(self):
return ""
for child in self.mc_liste :
child.delete_concept(sd)
+ def replace_concept(self,old_sd,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)
+
+ def Build_sd(self):
+ """
+ Cette methode applique la fonction op_init au contexte du parent
+ et lance l'exécution en cas de traitement commande par commande
+ Elle doit retourner le concept produit qui pour une PROC est toujours None
+ En cas d'erreur, elle leve une exception : AsException ou EOFError
+ """
+ if not self.isactif():return
+ try:
+ if self.parent:
+ if type(self.definition.op_init) == types.FunctionType:
+ apply(self.definition.op_init,(self,self.parent.g_context))
+ else:
+ pass
+ if self.jdc.par_lot == "NON" :
+ self.Execute()
+ except AsException,e:
+ raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
+ 'fichier : ',self.appel[1],e)
+ except EOFError:
+ raise
+ except :
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
+ 'fichier : ',self.appel[1]+'\n',
+ string.join(l))
+# 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
+# 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.
+#
+#
+# ======================================================================
"""
"""
if not regle_active : return liste_a_purger
# Si un des mots clés est présent, on les enlève tous
+ # sauf celui ci
for mc in self.mcs:
- if mc in liste_a_purger:
+ if mc in liste_a_purger and mc not in liste_mc_presents:
liste_a_purger.remove(mc)
return liste_a_purger
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce package contient les fonctionnalités supplémentaires nécessaires
pour l'éditeur graphique EFICAS
--- /dev/null
+
+
+ =================================================
+ Procédure d'installation d'EFICAS
+ =================================================
+
+Pré-requis :
+------------
+
+ - Python 2.1 ou supérieur avec Tkinter
+ - PMW 8.0.5 ou supérieur
+
+Installation :
+--------------
+
+1°) copiez le fichier eficas.tar.gz dans un répertoire temporaire
+
+2°) Décompressez ce fichier comme suit :
+
+ gunzip eficas.tar.gz
+ tar xvf eficas.tar
+
+3°) Vous devriez désormais voir 4 éléments :
+
+ - 1 fichier README_install
+ - 1 fichier install.py
+ - 1 fichier code_aster.gif
+ - 1 répertoire /Eficas
+
+4°) Reportez-vous au fichier README_install pour la suite des actions à entreprendre.
--- /dev/null
+\r
+\r
+ =================================================\r
+ Procédure d'installation d'EFICAS \r
+ =================================================\r
+\r
+Pour lancer la procédure d'installation, tapez :\r
+\r
+ python install.py\r
+\r
+Vous pouvez remplacer 'python' par le chemin d'accès de votre interpréteur Python.\r
+\r
+La procédure d'installation commence par vérifier que votre système contient bien les\r
+pré-requis pour EFICAS (cf README)\r
+\r
+La procédure va vous demander un certain nombre de chemins d'accès nécessaires à l'établissement du\r
+fichier de configuration d'EFICAS qui s'appelle editeur.ini et qui se trouvera, une fois EFICAS,\r
+installé, dans le répertoire Eficas/Aster\r
+\r
+- Répertoire d'installation : répertoire dans lequel vous voulez installer Eficas\r
+- Répertoire de travail : répertoire de travail temporaire d'EFICAS\r
+- Répertoire matériaux : répertoire dans lequel se trouvent les catalogues matériaux d'ASTER\r
+- Répertoire doc Aster : répertoire dans lequel se trouve le manuel U4 de la doc Aster (format pdf)\r
+ ex : /logiciels/aster/NEW6/doc/pdf/u4\r
+- Exécutable Acrobat Reader : chemin d'accès complet à l'exécutable Acrobat Reader\r
+\r
+\r
+Catalogues Aster : EFICAS installe par défaut le catalogue Aster v6 qui se trouve en\r
+ Eficas/Aster/Cata.\r
+ Si vous voulez en installer d'autres, il faut qu'ils se trouvent dans ce même répertoire\r
+ ou qu'il y ait un lien dans ce répertoire vers le fichier.\r
+ Pour ajouter d'autres catalogues, il faut aller modifier directement le fichier editeur.ini\r
+\r
+ \r
+\r
+Lancement d'EFICAS : le fichier à lancer est Eficas/Aster/eficas_aster.py\r
+ il faut le lancer précédé du chemin d'accès à l'interpréteur Python comme\r
+ pour la procédure d'installation.\r
+\r
+\r
--- /dev/null
+SUCCES,ECHEC = 1,0\r
+OUI,NON = 1,0\r
+\r
+## constantes pour les tests de versions \r
+\r
+python_min = 20\r
+tcl_min = 83\r
+tk_min = 83\r
+pmw_min = 85\r
+test = 0\r
+\r
+try:\r
+ import sys,string,re,types,traceback\r
+ import os,commands\r
+except Exception,e:\r
+ print "Mauvaise installation de Python"\r
+ print str(e)\r
+\r
+REPERTOIRE = os.path.abspath(os.curdir)\r
+\r
+def strip_points(chaine):\r
+ """\r
+ Enlève les caractères autres que les chiffres des chaînes\r
+ """\r
+ x=""\r
+ for i in range(len(chaine)):\r
+ try:\r
+ dummy = float(chaine[i])\r
+ x=x+chaine[i]\r
+ except:\r
+ pass\r
+ return x\r
+\r
+class Test_Environnement :\r
+ def __init__(self):\r
+ self.l_errors = []\r
+\r
+ def test_plate_forme(self):\r
+ """\r
+ Teste que la plate-forme est bien supportée\r
+ """\r
+ if os.name not in ('nt','posix'):\r
+ self.l_errors.append("La plate-forme %s n'est pas supportée" %os.name)\r
+ \r
+ def test_version_python(self):\r
+ """\r
+ Test de la version de python\r
+ """\r
+ version = sys.version\r
+ n = string.index(version,"(") - 1\r
+ vpyt = strip_points(version[0:n])[0:2] ## recupere les 2 premiers caracteres\r
+ if int(vpyt)<python_min :\r
+ self.l_errors.append("La version %s de python n'est plus supportée" %version[0:n])\r
+\r
+ def test_tcl_tk(self):\r
+ """\r
+ Test des versions de tcl et tk\r
+ """\r
+ try:\r
+ import Tkinter\r
+ vtcl = Tkinter.tkinter.TCL_VERSION\r
+ vtk = Tkinter.tkinter.TK_VERSION\r
+ # version tcl\r
+ x = strip_points(vtcl)\r
+ if int(x)<tcl_min :\r
+ self.l_errors.append("La version %s de tcl n'est plus supportée" %vtcl)\r
+ # version tk\r
+ x = strip_points(vtk)\r
+ if int(x)<tk_min :\r
+ self.l_errors.append("La version %s de tk n'est plus supportée" %vtk)\r
+ except Exception,e:\r
+ self.l_errors.append("Tkinter n'est pas installé")\r
+ print str(e)\r
+\r
+ def test_Pmw(self):\r
+ """\r
+ Test de la version de Pmw\r
+ """\r
+ try:\r
+ import Pmw\r
+ vpmw = Pmw._version\r
+ x = strip_points(vpmw)\r
+ if int(x)<pmw_min :\r
+ self.l_errors.append("La version %s de Pmw n'est plus supportée" %vpmw)\r
+ except:\r
+ self.l_errors.append("Pmw n'est pas installé")\r
+\r
+ def test(self):\r
+ """\r
+ Active les tests de version Python, versions Tcl/Tk et Pmw\r
+ """\r
+ self.test_plate_forme()\r
+ self.test_version_python()\r
+ self.test_tcl_tk()\r
+ self.test_Pmw()\r
+ if not len(self.l_errors):\r
+ print "Environnement Ok"\r
+ return 1\r
+ else :\r
+ print "Il manque des prérequis"\r
+ print "EFICAS ne peut pas être installé"\r
+ print "Erreurs : ",string.join(self.l_errors)\r
+ return 0\r
+\r
+class Slider:\r
+ def __init__(self, master=None, orientation="horizontal", min=0, max=100,\r
+ width=100, height=25, autoLabel="true", appearance="sunken",\r
+ fillColor="blue", background="black", labelColor="yellow",\r
+ labelText="", labelFormat="%d%%", value=50, bd=2):\r
+ # preserve various values\r
+ self.master=master\r
+ self.orientation=orientation\r
+ self.min=min\r
+ self.max=max\r
+ self.width=width\r
+ self.height=height\r
+ self.autoLabel=autoLabel\r
+ self.fillColor=fillColor\r
+ self.labelColor=labelColor\r
+ self.background=background\r
+ self.labelText=labelText\r
+ self.labelFormat=labelFormat\r
+ self.value=value\r
+ self.frame=Tkinter.Frame(master, relief=appearance, bd=bd)\r
+ self.canvas=Tkinter.Canvas(self.frame, height=height, width=width, bd=0,\r
+ highlightthickness=0, background=background)\r
+ self.scale=self.canvas.create_rectangle(0, 0, width, height,\r
+ fill=fillColor)\r
+ self.label=self.canvas.create_text(self.canvas.winfo_reqwidth() / 2,\r
+ height / 2, text=labelText,\r
+ anchor="c", fill=labelColor)\r
+ self.update()\r
+ self.canvas.pack(side='top', fill='x', expand='no')\r
+\r
+ def update(self):\r
+ # Trim the values to be between min and max\r
+ value=self.value\r
+ if value > self.max:\r
+ value = self.max\r
+ if value < self.min:\r
+ value = self.min\r
+ # Preserve the new value\r
+ c=self.canvas\r
+ # Adjust the rectangle\r
+ if self.orientation == "horizontal":\r
+ c.coords(self.scale,0, 0,float(value) / self.max * self.width, self.height)\r
+ else:\r
+ c.coords(self.scale,0, self.height - (float(value) / self.max*self.height),self.width, self.height)\r
+ # Now update the colors\r
+ c.itemconfig(self.scale, fill=self.fillColor)\r
+ c.itemconfig(self.label, fill=self.labelColor)\r
+ # And update the label\r
+ if self.autoLabel=="true":\r
+ c.itemconfig(self.label, text=self.labelFormat % value)\r
+ else:\r
+ c.itemconfig(self.label, text=self.labelFormat % self.labelText)\r
+ c.update_idletasks()\r
+try :\r
+ import Tkinter\r
+ import Pmw\r
+ from tkMessageBox import showinfo,askyesno,showerror,askretrycancel\r
+except:\r
+ pass\r
+\r
+class SplashScreen(Tkinter.Toplevel):\r
+ """ Provides a splash screen. Usage:\r
+ Subclass and override 'CreateWidgets()'\r
+ In constructor of main window/application call\r
+ - S = SplashScreen(main=self) (if caller is Toplevel)\r
+ - S = SplashScreen(main=self.master) (if caller is Frame)\r
+ - S.quit() after you are done creating your widgets etc.\r
+ """\r
+ def __init__(self, master,**args):\r
+ Tkinter.Toplevel.__init__(self, master, relief='groove',borderwidth=5)\r
+ self.protocol("WM_DELETE_WINDOW",lambda x=0: x+x ) # pour ne pas détruire la fenêtre en pleine copie de fichiers\r
+ self.main = master\r
+ if self.main != None :\r
+ self.main.withdraw()\r
+ self.frame = Tkinter.Frame(self)\r
+ self.frame.pack(expand=1,fill='both')\r
+ self.init(args)\r
+ self.geometry("300x200")\r
+ self.resizable(0,0)\r
+ self.CreateWidgets()\r
+\r
+ def init(self,args={}):\r
+ self.text = Tkinter.StringVar()\r
+ self.text.set('')\r
+ self.icone = 'Editeur/icons/logo_edf.gif'\r
+ self.barre = 'non'\r
+ if args == {} : return\r
+ if args.has_key('text'):\r
+ self.text.set(args['text'])\r
+ if args.has_key('titre'):\r
+ self.title(args['titre'])\r
+ if args.has_key('code'):\r
+ self.code = args['code']\r
+ else:\r
+ self.code = 'inconnu'\r
+ if self.code == 'ASTER' :\r
+ self.icone = 'Editeur/icons/code_aster.gif'\r
+ \r
+ def CreateWidgets(self):\r
+ fic_image = os.path.join("./", self.icone)\r
+ if os.path.exists(fic_image):\r
+ self.catIcon = Tkinter.PhotoImage(file=os.path.join("./", self.icone))\r
+ Tkinter.Label(self.frame, image=self.catIcon).pack(side=Tkinter.TOP)\r
+ else:\r
+ Tkinter.Label(self.frame, text = "EFICAS pour Code_Aster").pack(side=Tkinter.TOP)\r
+ self.label = Tkinter.Label(self.frame, textvariable=self.text)\r
+ self.label.pack(side=Tkinter.TOP,expand=1,fill='both')\r
+ self.progress = Slider(self.frame,value=0,max=100,orientation='horizontal',\r
+ fillColor='blue',width=200,height=30,\r
+ background='white',labelColor='red')\r
+\r
+ def update_barre(self,event=None):\r
+ """ Permet de faire avancer la barre de progression """\r
+ try:\r
+ self.progress.value = self.progress.value+self.increment\r
+ self.progress.update()\r
+ #self.after(100,self.update_barre)\r
+ except:\r
+ pass\r
+\r
+ def configure_barre(self):\r
+ """ Calcule l'incrément de progression de la barre en fonction\r
+ du nombre d'opérations à effectuer afin que le compteur\r
+ soit à 100% à la fin des opérations"""\r
+ self.increment = 100./self.ratio\r
+ self.progress.update()\r
+\r
+ def configure(self,**args):\r
+ if args.has_key('text'):\r
+ self.text.set(args['text'])\r
+ if args.has_key('titre'):\r
+ self.title(args['titre'])\r
+ if args.has_key('barre'):\r
+ old = self.barre\r
+ self.barre = args['barre']\r
+ if self.barre == 'oui' and old == 'non':\r
+ self.progress.frame.pack(in_=self.frame,side='top')\r
+ elif self.barre == 'non' and old == 'oui':\r
+ self.progress.frame.pack_forget()\r
+ if args.has_key('ratio'):\r
+ self.ratio = args['ratio']\r
+ self.configure_barre()\r
+ self.update()\r
+ \r
+ def quit(self):\r
+ self.progress = None\r
+ self.withdraw()\r
+ self.main.update()\r
+ self.main.deiconify()\r
+\r
+def centerwindow(window,parent = 'avec'):\r
+ if parent =='avec':\r
+ parent = window.winfo_parent()\r
+ if type(parent) == types.StringType:\r
+ try:\r
+ parent = window._nametowidget(parent)\r
+ except:\r
+ parent = window\r
+ # Find size of window.\r
+ window.update_idletasks()\r
+ width = window.winfo_width()\r
+ height = window.winfo_height()\r
+ if width == 1 and height == 1:\r
+ # If the window has not yet been displayed, its size is\r
+ # reported as 1x1, so use requested size.\r
+ width = window.winfo_reqwidth()\r
+ height = window.winfo_reqheight()\r
+ # Place in centre of screen:\r
+ if parent =='avec' :\r
+ x = (window.winfo_screenwidth() - width) / 2 - parent.winfo_vrootx()\r
+ y = (window.winfo_screenheight() - height) / 3 - parent.winfo_vrooty()\r
+ else:\r
+ x = (window.winfo_screenwidth() - width) / 2 \r
+ y = (window.winfo_screenheight() - height) / 3\r
+ if x < 0:\r
+ x = 0\r
+ if y < 0:\r
+ y = 0\r
+ window.geometry('+%d+%d' % (x, y))\r
+ \r
+class config_item:\r
+ """\r
+ Classe utilisée pour représenter chaque option de configuration\r
+ """\r
+ def __init__(self, pere, nom):\r
+ self.nom = nom\r
+ self.pere = pere\r
+ self.entree_value = None\r
+ self.default = None\r
+ self.test = None\r
+ self.pere.register_item(self)\r
+\r
+ def get_valeur(self):\r
+ return os.path.abspath(self.entree.get())\r
+ \r
+ def set_entree(self,entree):\r
+ self.entree = entree\r
+ self.pere.register_entree(entree)\r
+\r
+class Config(Tkinter.Toplevel):\r
+ """\r
+ Classe principale : une instance de Config est utilisée pour\r
+ créer l'interface. Toutes les actions (création de répertoire, copie\r
+ de fichiers ...) sont réalisées par des méthodes de Config ou de ses\r
+ composants\r
+ """\r
+ pat_rep = re.compile(r'^(rep_)([\w_]*)') # expression réguliere pour reconnaitre les\r
+ # les options qui désignent des répertoires\r
+ def __init__(self, parent):\r
+ self.master = parent\r
+ Tkinter.Toplevel.__init__(self,None)\r
+ parent.withdraw()\r
+ self.title("Installation d'EFICAS")\r
+ self.geometry("500x320+0+0")\r
+ centerwindow(self)\r
+ self.install_running = 0\r
+ #évite que la fenêtre puisse être détruite en pleine copie de fichiers\r
+ self.protocol("WM_DELETE_WINDOW",self.exit )\r
+ # création des frames\r
+ self.frame_gen = Tkinter.Frame(self,bd=1,relief='groove')\r
+ self.frame_gen.place(relx=0,rely=0,relwidth=1,relheight=0.9 )\r
+ self.frame_but = Tkinter.Frame(self,bd=1,relief='groove')\r
+ self.frame_but.place(relx=0,rely=0.9 ,relheight=0.1 ,relwidth=1)\r
+ # création des items de configuration\r
+ self.make_items_config()\r
+ # remplissage de la frame générale\r
+ self.make_frame_gen()\r
+ # remplissage de la frame boutons\r
+ self.make_frame_but()\r
+ # création boîtes de dialogue\r
+ self.init_complementaire()\r
+ # init système\r
+ self.init_systeme()\r
+ \r
+ def make_items_config(self):\r
+ """\r
+ Création des objets Config_item\r
+ """\r
+ self.items = []\r
+ self.items_a_creer = []\r
+ self.liste_rep_crees = []\r
+ self.entrees = []\r
+ # designation, texte d'invite , option par defaut(unix), option par defaut(windows), flag obligatoire/facultatif\r
+ self.l_tx_items = (('rep_install' ,\r
+ "Répertoire d'installation :",\r
+ '',\r
+ '',\r
+ 'o'),\r
+ ('rep_travail' ,\r
+ 'Répertoire de travail :',\r
+ 'tmp',\r
+ 'tmp',\r
+ 'f'),\r
+ ('rep_mat' ,\r
+ 'Répertoire matériaux :',\r
+ None,\r
+ None,\r
+ 'f'),\r
+ ('rep_docaster' ,\r
+ "Chemin d'accès à la doc Aster :" ,\r
+ None,\r
+ None,\r
+ 'f'\r
+ ),\r
+ ('acrobat' ,\r
+ 'Exécutable Acrobat Reader :',\r
+ '/usr/bin/acroread',\r
+ 'acrobat.exe',\r
+ 'o')\r
+ )\r
+\r
+ for item in self.l_tx_items:\r
+ nom_item = item[0]\r
+ setattr(self,nom_item,config_item(self,nom_item))\r
+\r
+ def make_frame_gen(self):\r
+ """\r
+ Création des zones de saisie des paramètres généraux\r
+ """\r
+ # Création du label titre de la frame\r
+ self.information = Tkinter.Label(self.frame_gen,text="CONFIGURATION D'EFICAS")\r
+ self.information.pack(side="top",pady=10)\r
+ # création des widgets de saisie des items\r
+ for txt in self.l_tx_items:\r
+ nom_item = txt[0]\r
+ txt_item = txt[1]\r
+ if os.name == 'nt':\r
+ default_value = txt[3]\r
+ else:\r
+ default_value = txt[2]\r
+ item = getattr(self,nom_item)\r
+ wdg_item = Pmw.EntryField(self.frame_gen,\r
+ labelpos = 'w',\r
+ label_text = txt_item,\r
+ command = lambda s=self,i=item : s.select_next_entry(i.entree))\r
+ item.default_value = default_value\r
+ item.statut = txt[4]\r
+ item.set_entree(wdg_item)\r
+ # on affiche les entrées\r
+ for entree in self.entrees:\r
+ entree.pack(fill='x', expand=1, padx=10, pady=5)\r
+ Pmw.alignlabels(self.entrees)\r
+ self.entrees[0].focus_set()\r
+ #self.rep_cata_dev.entree.configure(entry_state = 'disabled')\r
+ self.display_defaults()\r
+ \r
+ def make_frame_but(self):\r
+ """\r
+ Création des boutons de commande Installer et Annuler\r
+ """\r
+ self.validButton = Tkinter.Button(self.frame_but, text = 'Installer', command = self.run_install)\r
+ self.exitButton = Tkinter.Button(self.frame_but,\r
+ text = 'Annuler',\r
+ command = lambda s=self : s.exit(annule='oui'))\r
+ self.exitButton.place(relx=0.35,rely=0.5,anchor='center')\r
+ self.validButton.place(relx=0.65,rely=0.5,anchor='center')\r
+\r
+ def init_complementaire(self):\r
+ """\r
+ Création de widgets complémentaires (boîtes de dialogue ...)\r
+ """\r
+ self.erreur_dialog = Pmw.Dialog(self,\r
+ buttons = ('Modifier', 'Annuler'),\r
+ defaultbutton = 'Modifier',\r
+ title = 'Erreur',\r
+ command = self.erreur_exec)\r
+ self.erreur_dialog.withdraw()\r
+ self.fatale_dialog = Pmw.Dialog(self,\r
+ buttons = ('Annuler',),\r
+ title = 'Fatal',\r
+ command = self.fatale_exec)\r
+ self.fatale_dialog.withdraw()\r
+ self.info_dialog = Pmw.Dialog(self,\r
+ buttons = ('Ok',),\r
+ title = 'Attention')\r
+ self.info_dialog.configure(command=self.info_dialog.withdraw())\r
+ self.info_dialog.withdraw()\r
+ self.attente = SplashScreen(None,code="ASTER")\r
+ self.attente.withdraw()\r
+\r
+ def init_systeme(self):\r
+ """\r
+ Détermine les commandes à exécuter en fonction de l'OS\r
+ """\r
+ self.d_commandes = {}\r
+ if os.name == 'nt':\r
+ self.d_commandes['decompress'] = "unzip.exe "\r
+ self.d_commandes['copy'] = "copy "\r
+ self.d_commandes['delete'] = "del "\r
+ elif os.name == 'posix':\r
+ self.d_commandes['decompress'] = "gunzip "\r
+ self.d_commandes['copy'] = "cp "\r
+ self.d_commandes['delete'] = "rm "\r
+\r
+ def run_install(self):\r
+ """\r
+ Lance l'installation proprement dite d'EFICAS\r
+ """\r
+ self.install_running = 1\r
+ self.afficher_splash()\r
+ self.deactivate_entries() # Les entrees et les boutons sont desactivees\r
+ self.deactivate_buttons() # pendant les operations d'installation\r
+ #self.decompress_archive()\r
+ #if not os.path.exists(os.path.join(REPERTOIRE,'Eficas')):\r
+ # self.afficher_fatale("Il manque des fichiers d'EFICAS")\r
+ # self.install_running = 0\r
+ # return\r
+ self.nb_fichiers = self.compte_fichiers(REPERTOIRE)\r
+ if self.nb_fichiers == 0:\r
+ self.afficher_fatale("Il manque des fichiers d'EFICAS")\r
+ self.install_running = 0\r
+ return\r
+ # essaie de creer les repertoires.\r
+ try:\r
+ if self.make_dirs() == ECHEC : \r
+ self.activate_entries() \r
+ self.activate_buttons() \r
+ self.install_running = 0\r
+ return\r
+ except:\r
+ self.install_running = 0\r
+ self.afficher_fatale("Impossible de créer certains répertoires")\r
+ \r
+ # affiche la fenêtre avec la barre de progression\r
+ self.afficher_copie_fichiers() \r
+ # essaie de copier les fichiers d'EFICAS\r
+ try:\r
+ if self.move_files() == ECHEC: \r
+ self.afficher_echec("Impossible de copier les fichiers d'EFICAS")\r
+ self.activate_buttons()\r
+ self.install_running = 0\r
+ return\r
+ except :\r
+ traceback.print_exc()\r
+ self.install_running = 0\r
+ self.afficher_fatale("Impossible de copier certains fichiers")\r
+\r
+ #self.rm_temp_dirs() # efface les répertoires temporaires\r
+ try:\r
+ self.creer_fic_conf() # crée le fichier eficas.conf\r
+ except:\r
+ afficher_info("Impossible de créer le fichier de configuration\n Il est possible de le faire a la main")\r
+# self.install_running = 0\r
+ self.afficher_install_terminee() # A ce stade tout est fait et il ne reste plus qu'à attendre\r
+ # un clic de souris pour sortir\r
+\r
+ def display_defaults(self):\r
+ """\r
+ Affiche les valeurs par défaut dans les zones de saisie\r
+ """\r
+ # racine indique la racine de l'arborescence\r
+ if os.name == 'nt':\r
+ racine = 'C:\\'\r
+ else:\r
+ racine = os.environ['HOME']\r
+ # remplit les zones de saisie avec les options par défaut\r
+ for item in self.items:\r
+ if item.default_value == None : continue\r
+ item.default_value = os.path.join(racine,item.default_value)\r
+ item.entree.insert(0,item.default_value)\r
+\r
+ def register_item(self,item):\r
+ """\r
+ Enregistre l'item dans la liste des items et éventuellement\r
+ dans la liste des items à créer (répertoires)\r
+ """\r
+ self.items.append(item)\r
+ if self.pat_rep.match(item.nom) :\r
+ self.items_a_creer.append(item)\r
+\r
+ def register_entree(self,entree):\r
+ """\r
+ Enregistre la zone de saisie dans la liste des zones\r
+ """\r
+ self.entrees.append(entree)\r
+\r
+ def select_next_entry(self,entree):\r
+ """\r
+ Place le focus dans l'entry suivant celle passée en argument\r
+ """\r
+ index = self.entrees.index(entree)+1\r
+ if index != len(self.entrees):\r
+ self.entrees[index].component('entry').focus()\r
+\r
+ def activate_entries(self):\r
+ """\r
+ Active les entrées. Les zones de saisie deviennent éditables.\r
+ """\r
+ for item in self.entrees:\r
+ item.configure(entry_state='normal')\r
+\r
+ def deactivate_entries(self):\r
+ """\r
+ Désactive les entrées. Les zones ne sont plus éditables.\r
+ """\r
+ for item in self.entrees: # Les entrees sont desactivees\r
+ item.configure(entry_state='disabled') # pendant les operations d'installation\r
+\r
+ def activate_buttons(self):\r
+ """\r
+ active les boutons valider et annuler\r
+ """\r
+ self.validButton.configure(state = 'normal')\r
+ self.exitButton.configure(state = 'normal')\r
+\r
+ def deactivate_buttons(self):\r
+ """\r
+ désactive des boutons valider de annuler\r
+ """\r
+ self.validButton.configure(state = 'disabled')\r
+ self.exitButton.configure(state = 'disabled')\r
+\r
+ def erreur_exec(self, result):\r
+ """\r
+ Callback exécuté lorsque l'utilisateur clique sur un des boutons\r
+ Modifier/Annuler de la fenêtre de dialogue qui lui présente les erreurs\r
+ """\r
+ self.erreur_dialog.deactivate(result)\r
+ self.removedir()\r
+ if result == 'Annuler':\r
+ self.install_running = 0\r
+ self.exit(annule='non')\r
+\r
+ def fatale_exec(self, result):\r
+ """\r
+ Callback exécuté lorsque l'utilisateur clique sur le bouton\r
+ Quitter de la fenêtre de dialogue qui lui présente les erreurs fatales\r
+ Seule solution : sortir de l'installation\r
+ """\r
+ self.fatale_dialog.deactivate(result)\r
+ self.install_running = 0\r
+ self.exit(annule='oui')\r
+ \r
+ def test_confirmation(self,flag,nom):\r
+ """\r
+ Callback activé par le clic sur bouton fenêtre demandant confirmation\r
+ avant création répertoire facultatif\r
+ """\r
+ if flag == 'NON':\r
+ self.confirmation.destroy()\r
+ self.TEST_confirmation_avant_creation = NON\r
+ return \r
+ else :\r
+ self.confirmation.destroy()\r
+ self.TEST_confirmation_avant_creation = OUI \r
+ \r
+ def afficher_fatale(self, message):\r
+ """\r
+ Affiche les erreurs fatales\r
+ """\r
+ self.attente.withdraw()\r
+ w = Tkinter.Label(self.fatale_dialog.interior(),text = message, pady = 5)\r
+ w.pack(expand = 1, fill = 'both', padx = 4, pady = 4)\r
+ self.fatale_dialog.configure(deactivatecommand = w.destroy)\r
+ self.fatale_dialog.activate()\r
+\r
+ def afficher_echec(self, message):\r
+ """\r
+ Affiche un message d'erreur\r
+ Par construction, dès que l'on passe par cette méthode, on sort de l'installation\r
+ en passant le flag install_running à 0\r
+ """\r
+ self.attente.withdraw()\r
+ w = Tkinter.Label(self.erreur_dialog.interior(),text = message, pady = 5)\r
+ w.pack(expand = 1, fill = 'both', padx = 4, pady = 4)\r
+ self.erreur_dialog.configure(deactivatecommand = w.destroy)\r
+ self.erreur_dialog.activate()\r
+\r
+ def confirmation_avant_creation(self,repertoire):\r
+ """\r
+ Affiche une boite de dialogue pour confirmer la création\r
+ d'un répertoire facultatif.\r
+ """\r
+ self.attente.withdraw()\r
+ self.confirmation = Pmw.Dialog(self,\r
+ buttons = ('OUI', 'NON'),\r
+ defaultbutton = 'OUI',\r
+ title = "Répertoire inexistant",\r
+ command = lambda f,s=self,r=repertoire : s.test_confirmation(f,r))\r
+ self.confirmation.withdraw()\r
+ Tkinter.Label(self.confirmation.interior(),\r
+ text="Le répertoire %s n'existe pas \n Voulez-vous le créer ?" %repertoire).pack(side='top')\r
+ self.confirmation.activate(geometry='centerscreenalways')\r
+ return self.TEST_confirmation_avant_creation\r
+ \r
+ def afficher_splash(self):\r
+ """\r
+ Afficher la boite de message \r
+ """\r
+ self.attente.deiconify()\r
+ self.attente.tkraise()\r
+ centerwindow(self.attente)\r
+ self.attente.configure(titre="Installation d'EFICAS",\r
+ text="Vérification intégrité sources Eficas",\r
+ barre="non")\r
+ \r
+ def afficher_info(self,message):\r
+ """\r
+ Afficher une boite de warning\r
+ """\r
+ w = Tkinter.Label(self.info_dialog.interior(),text = message, pady = 5)\r
+ w.pack(expand = 1, fill = 'both', padx = 4, pady = 4)\r
+ self.info_dialog.configure(deactivatecommand = w.destroy)\r
+ self.info_dialog.activate()\r
+ \r
+ def afficher_copie_fichiers(self):\r
+ """\r
+ Afficher la boite de message avec la barre de progression\r
+ """\r
+ self.attente.deiconify()\r
+ self.attente.tkraise()\r
+ self.attente.configure(titre="Installation d'EFICAS",\r
+ text="copie des fichiers",\r
+ barre="oui")\r
+ self.attente.ratio = self.nb_fichiers\r
+ self.attente.configure_barre()\r
+\r
+ def afficher_install_terminee(self):\r
+ """\r
+ Afficher le message Installation terminée\r
+ """\r
+ self.withdraw()\r
+ self.attente.configure(titre="Installation d'EFICAS",\r
+ text="Installation terminée",\r
+ barre="non")\r
+ self.exitButton.place_forget()\r
+ self.validButton.place_forget()\r
+ self.validButton = Tkinter.Button(self.attente.frame,\r
+ text = 'Quitter',\r
+ command = self.exit)\r
+ self.validButton.pack(side='top',pady=5)\r
+ self.install_running = 0\r
+\r
+ def decompress_archive(self) :\r
+ """\r
+ Décompresse l'archive d'EFICAS dans un répertoire temporaire (.)\r
+ """\r
+ print "decompress_archive"\r
+ #try:\r
+ commande = os.path.join(REPERTOIRE,self.d_commandes['decompress'])\r
+ fichier = os.path.join(REPERTOIRE,"eficas.zip")\r
+ print 'commande =',commande\r
+ print 'fichier =',fichier\r
+ os.execv(commande,("eficas.zip",))\r
+ #except:\r
+ # self.affiche_echec("Erreur dans la décompression")\r
+\r
+ def normaliser_chemin(self, nom):\r
+ """\r
+ Retourne le chemin d'accès complet à nom\r
+ """\r
+ return os.path.abspath(os.path.expanduser(nom))\r
+\r
+ def discriminer_noms(self):\r
+ """\r
+ Emet un message d'alerte si des zones de saisie ne sont pas remplies\r
+ ou si des noms de répertoires à créer sont identiques.\r
+ """\r
+ liste_noms = []\r
+ for item in self.items_a_creer:\r
+ nom = item.entree.get()\r
+ if nom == self.rep_install.entree.get(): # il faut ajouter 'Eficas' au chemin du repertoire\r
+ nom = os.path.join(nom,"Eficas") # d'installation\r
+ liste_noms.append(nom)\r
+\r
+ test = SUCCES\r
+ for item in self.items_a_creer:\r
+ nom = item.entree.get()\r
+ if len(nom) == 0 :\r
+ test = ECHEC\r
+ message = "attention : certains répertoires n'ont pas de nom"\r
+ self.afficher_echec(message)\r
+ item.entree.component('entry').focus()\r
+ break\r
+\r
+ if test == ECHEC :\r
+ return test\r
+\r
+ for item in self.items_a_creer:\r
+ nom = item.entree.get()\r
+ if liste_noms.count(nom) >1 :\r
+ test = ECHEC\r
+ message = "attention : certains répertoires ont le même nom"\r
+ self.afficher_echec(message)\r
+ item.entree.component('entry').focus()\r
+ break\r
+\r
+ return test\r
+\r
+ def compte_fichiers(self,path):\r
+ """\r
+ Dénombre les fichiers présents dans le répertoire Eficas (et ses sous-répertoires)\r
+ """\r
+ nb = 0\r
+ l_fic = os.listdir(path)\r
+ l_rep = []\r
+ for fic in l_fic :\r
+ if os.path.isdir(os.path.join(path,fic)):\r
+ l_rep.append(fic)\r
+ else:\r
+ nb = nb+1\r
+ for rep in l_rep :\r
+ nb = nb + self.compte_fichiers(os.path.join(path,rep))\r
+ return nb\r
+\r
+ def creer_fic_conf(self):\r
+ """\r
+ Crée le fichier editeur.ini a partir des données saisies\r
+ par l'administrateur.\r
+ """\r
+ fichier_conf = os.path.join(self.normaliser_chemin(self.rep_install.get_valeur()),"Eficas/Aster/editeur.ini")\r
+ f = open(fichier_conf,'w')\r
+ f.write("path_doc = "+'"'+self.normaliser_chemin(self.rep_docaster.get_valeur())+'"\n')\r
+ f.write("exec_acrobat = "+'"'+self.normaliser_chemin(self.acrobat.get_valeur())+'"\n')\r
+ f.write('isdeveloppeur = "NON"\n')\r
+ f.write("rep_travail = "+'"'+self.normaliser_chemin(self.rep_travail.get_valeur())+'"\n')\r
+ f.write("rep_cata = "+'"'+os.path.join(self.normaliser_chemin(self.rep_install.get_valeur()),"Eficas/Aster/Cata/")+'"\n') # attention au dernier slash\r
+ f.write("rep_mat = "+'"'+self.normaliser_chemin(self.rep_mat.get_valeur())+'"\n')\r
+ cata = """catalogues = (('ASTER','v6',rep_cata + 'cata_STA6.py','python','defaut'),)\n"""\r
+ f.write(cata)\r
+ f.close()\r
+ \r
+\r
+ def move_files(self):\r
+ """\r
+ Déplace les fichiers Eficas du répertoire temporaire vers\r
+ leur répertoire de destination\r
+ """\r
+ # création du répertoire Eficas\r
+ rep_eficas = os.path.join(self.rep_install.get_valeur(),'Eficas')\r
+ self.copy_rep(REPERTOIRE,rep_eficas)\r
+\r
+ def copy_rep(self,rep_dep,rep_arr):\r
+ """\r
+ Copie le répertoire path_dep et ses sous-répertoires dans path_arr\r
+ """\r
+ l_fichiers = os.listdir(rep_dep)\r
+ if not os.path.exists(rep_arr) :\r
+ # création du répertoire d'arrivée quand il n'existe pas \r
+ self.mkdirs(rep_arr)\r
+ for fic in l_fichiers :\r
+ nom_complet_dep = os.path.join(rep_dep,fic)\r
+ nom_complet_arr = os.path.join(rep_arr,fic)\r
+ if os.path.isfile(nom_complet_dep):\r
+ commande_copie = self.d_commandes['copy']+nom_complet_dep+' '+nom_complet_arr\r
+ commande_delete= self.d_commandes['delete']+nom_complet_dep\r
+ try:\r
+ os.system(commande_copie)\r
+ #os.system(commande_delete)\r
+ self.attente.update_barre()\r
+ except Exception,e:\r
+ pass\r
+ elif os.path.isdir(nom_complet_dep):\r
+ self.copy_rep(nom_complet_dep,nom_complet_arr)\r
+\r
+ def rm_temp_dirs(self):\r
+ """\r
+ Détruit le répertoire temporaire de l'archive d'Eficas\r
+ """\r
+ rep_arch = os.path.join(REPERTOIRE,'Eficas')\r
+ self.rm_r(rep_arch)\r
+\r
+ def make_dirs(self):\r
+ """\r
+ Crée les répertoires d'accueil des fichiers d'EFICAS\r
+ """\r
+ # création des répertoires dont l'utilisateur a donné le nom\r
+ if self.discriminer_noms() == ECHEC:\r
+ return ECHEC\r
+ for item in self.items_a_creer:\r
+ if not item.entree.get():\r
+ continue\r
+ nom = item.get_valeur()\r
+ if nom == self.normaliser_chemin(self.rep_install.entree.get()): # il faut ajouter 'Eficas' au chemin du repertoire\r
+ nom = os.path.join(nom,"Eficas") # d'installation\r
+ item.test = self.essai_creer(nom,item.statut)\r
+ if item.test == ECHEC :\r
+ item.entree.component('entry').focus()\r
+ return ECHEC\r
+ return SUCCES\r
+\r
+ def essai_creer(self, nom, statut):\r
+ """\r
+ Essaie de créer le répertoire nom s'il n'existe pas déjà.\r
+ Si statut == 'f' et si le fichier n'existe pas, demande\r
+ confirmation avant création\r
+ """\r
+ repertoire = self.normaliser_chemin(nom) # repertoire = chemin absolu de nom\r
+ if os.path.exists(repertoire):\r
+ if statut == 'o' :\r
+ self.afficher_echec("Un fichier ou répertoire de nom "+ repertoire+ " existe déjà !\n"+\r
+ "L'installation ne peut continuer")\r
+ return ECHEC\r
+ else:\r
+ return SUCCES\r
+\r
+ if statut == 'f' :\r
+ # on demande confirmation de création à l'utilisateur\r
+ test = self.confirmation_avant_creation(repertoire)\r
+ if test == NON:\r
+ return SUCCES\r
+\r
+ try:\r
+ test = self.mkdirs(repertoire)\r
+ return SUCCES\r
+ except Exception,e:\r
+ message = "La création de "+repertoire+" a échoué :\n %s \n Vérifiez vos droits d'écriture" %str(e) # message d'erreur\r
+ self.afficher_echec(message)\r
+ return ECHEC\r
+\r
+ def mkdirs(self,rep):\r
+ """\r
+ Création récursive des répertoires d'installation.\r
+ Les noms des répertoires crées sont stockés dans\r
+ une liste dont se sert la méthode removedir pour\r
+ restaurer l'environnement initial en cas d'annulation.\r
+ """\r
+ if rep==os.path.dirname(rep):\r
+ return SUCCES\r
+\r
+ if os.path.exists(os.path.dirname(rep)):\r
+ os.mkdir(rep)\r
+ self.liste_rep_crees.append(rep)\r
+ return SUCCES\r
+ else:\r
+ test = self.mkdirs(os.path.dirname(rep))\r
+ if test == SUCCES:\r
+ os.mkdir(rep)\r
+ self.liste_rep_crees.append(rep)\r
+ return SUCCES\r
+ else:\r
+ return ECHEC\r
+\r
+ def rm_r(self,path):\r
+ """\r
+ Detruit récursivement path\r
+ """\r
+ if not os.path.exists(path):\r
+ return\r
+ try:\r
+ if len(os.listdir(path))!=0:\r
+ for entree in os.listdir(path):\r
+ entree = os.path.join(path,entree)\r
+ self.rm_r(entree)\r
+ os.rmdir(path)\r
+ except Exception,e:\r
+ self.afficher_info("Impossible de détruire le répertoire : "+path+"\n"+"\n"+str(e)+"\n L'installation continue néanmoins")\r
+\r
+ def removedir(self):\r
+ """\r
+ Destruction des répertoires déja crées (en cas d'annulation)\r
+ """\r
+ for rep in self.liste_rep_crees:\r
+ self.rm_r(rep)\r
+ self.liste_rep_crees = []\r
+\r
+ def exit(self,annule='non'):\r
+ """\r
+ Tente de sortir de l'application.\r
+ Echoue si installation en cours\r
+ """\r
+ if self.install_running :\r
+ # l'installation est en cours --> on interdit la sortie\r
+ self.afficher_info("Impossible de quitter tant que l'installation est en cours\n Veuillez patienter")\r
+ else:\r
+ if annule == 'oui' : self.removedir()\r
+ self.master.quit()\r
+\r
+if __name__ == '__main__':\r
+ test = Test_Environnement().test()\r
+ if not test :\r
+ # environnement incomplet --> on sort de la procédure d'installation\r
+ sys.exit()\r
+ else:\r
+ import Tkinter\r
+ import Pmw\r
+ root = Tkinter.Tk()\r
+ Pmw.initialise(root)\r
+ try:\r
+ principal = Config(root)\r
+ root.mainloop()\r
+ except Exception,e:\r
+ print "Erreur non prévue rencontrée : ",str(e)\r
+ print "Veuillez prévenir la maintenance"\r
+ sys.exit()\r
--- /dev/null
+MMA=LIRE_MAILLAGE()
+MA=LIRE_MAILLAGE()
--- /dev/null
+MMA=LIRE_MAILLAGE()
+MA=LIRE_MAILLAGE()
+DETRUIRE(CONCEPT=_F(NOM=MA))
--- /dev/null
+YYY=LIRE_MAILLAGE()
+YY=LIRE_MAILLAGE()
--- /dev/null
+YYY=LIRE_MAILLAGE()
+MACRO3(MAIL2=MA)
+YY=LIRE_MAILLAGE()
--- /dev/null
+# Changer l'include 14
+# 1 en reprenant le meme fichier
+# 2 en prenant le fichier incl.17 qui contient une commande DETRUIRE
+# 3 en remplacant le fichier incl.23 par incl.26
+# 4 en remplacant incl.17 par incl.13
+
+DEBUT()
+INCLUDE(UNITE=14)
+DETRUIRE()
+INCLUDE(UNITE=23)
+DETRUIRE()
+FIN()
+
--- /dev/null
+DEBUT()
+INCLUDE(UNITE=24)
+FIN()
--- /dev/null
+POURSUITE()
+MMA=LIRE_MAILLAGE()
+INCLUDE(UNITE=23)
+FIN()
--- /dev/null
+DEBUT()
+MA=LIRE_MAILLAGE()
+INCLUDE(UNITE=22)
+FIN()
--- /dev/null
+XXX=LIRE_MAILLAGE()
+XX=LIRE_MAILLAGE()
+INCLUDE(UNITE=24)
--- /dev/null
+YYY=LIRE_MAILLAGE()
+YY=LIRE_MAILLAGE()
--- /dev/null
+VVV=LIRE_MAILLAGE()
+VV=LIRE_MAILLAGE()
--- /dev/null
+DEBUT()
+INCLUDE_MATERIAU(NOM_AFNOR='A42',
+ TYPE_MODELE='REF',
+ VARIANTE='C',
+ TYPE_VALE='NOMI',
+ NOM_MATER='M',
+ )
+INCLUDE_MATERIAU(NOM_AFNOR='A42',
+ TYPE_MODELE='REF',
+ VARIANTE='F',
+ TYPE_VALE='NOMI',
+ NOM_MATER='N',
+ )
+FIN()
--- /dev/null
+POURSUITE()
+MA=LIRE_MAILLAGE()
+INCLUDE_MATERIAU(NOM_AFNOR='A42',
+ TYPE_MODELE='REF',
+ VARIANTE='C',
+ TYPE_VALE='NOMI',
+ NOM_MATER='MAT',
+ )
+FIN()
--- /dev/null
+POURSUITE()
+MA=LIRE_MAILLAGE()
+FIN()
--- /dev/null
+MMA=LIRE_MAILLAGE()
+MA=LIRE_MAILLAGE()
--- /dev/null
+INCLUDE(UNITE=16)
+MA=LIRE_MAILLAGE()
--- /dev/null
+MMA=LIRE_MAILLAGE()
+MA=LIRE_MAILLAGE()
--- /dev/null
+# Changer unite 15 par incl.14
+DEBUT()
+INCLUDE(UNITE=15)
+MA=LIRE_MAILLAGE()
+FIN()
import Accas
from Accas import *
+#CONTEXT.debug=1
+
import ops
-JdC = JDC_CATA(code='SATURNE',
+JdC = JDC_CATA(code='ASTER',
execmodul=None,
regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
AU_MOINS_UN('FIN'),
A_CLASSER(('DEBUT','POURSUITE'),'FIN')
)
- );
+ )
# P. RASCLE MMN
# remarques diverses sur le catalogue Saturne
# - dans les blocs, il faut au moins un mot clé de statut obligatoire
# probleme de rafraichissement des blocs dépendants quand la valeur d'un mot cle global (ITURB) passe de 1 à 0
+# Type le plus general
+class entier (ASSD):pass
+class reel (ASSD):pass
+class complexe(ASSD):pass
+class liste (ASSD):pass
+class chaine (ASSD):pass
+
+# Type geometriques
+class no (GEOM):pass
+class grno(GEOM):pass
+class ma (GEOM):pass
+class grma(GEOM):pass
+
+
class sonde(ASSD):pass
class varsca(ASSD):pass
class flusca(ASSD):pass
class resti(ASSD):pass
class maillage(ASSD):pass
-class listr8 (ASSD):pass
+class modele(ASSD):pass
+class matr_asse(ASSD):pass
+class cham_elem_sief_r(ASSD):pass
+class theta_geom(ASSD):pass
+class cham_mater(ASSD):pass
+class cara_elem(ASSD):pass
+class char_ther(ASSD):pass
+class char_meca(ASSD):pass
+class nume_ddl(ASSD):pass
+class char_acou(ASSD):pass
+class listr8 (ASSD):pass
+class matr_elem(ASSD):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
+class mater (ASSD):pass
+
+
+# fonction :
+#--------------------------------
+class para_sensi(fonction):pass
+class fonction_c(fonction):pass
+
+# matr_asse :
+#--------------------------------
+class matr_asse(ASSD):pass
+class matr_asse_depl_c(matr_asse):pass
+class matr_asse_depl_r(matr_asse):pass
+class matr_asse_gene_r(matr_asse):pass
+class matr_asse_gene_c(matr_asse):pass
+class matr_asse_pres_c(matr_asse):pass
+class matr_asse_pres_r(matr_asse):pass
+class matr_asse_temp_c(matr_asse):pass
+class matr_asse_temp_r(matr_asse):pass
+
# fin entete
COMPLEXE = SIMP(typ = 'shell',max=1),
) ;
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-f1",
+ fr="Affectation des éléments finis sur le maillage",reentrant='n',
+ MAILLAGE =SIMP(statut='o',typ=(maillage) ),
+ INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+ VERIF =SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD") ),
+ );
+NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-f",reentrant='n',
+ fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
+ MATR_RIGI =SIMP(statut='f',typ=(matr_elem_depl_r ,matr_elem_depl_c,
+ matr_elem_temp_r,matr_elem_pres_c),max=100 ),
+ MODELE =SIMP(statut='f',typ=modele ),
+ b_modele =BLOC(condition = "MODELE != None",
+ CHARGE =SIMP(statut='f',max='**',typ=(char_meca,char_ther,char_acou, ),),
+ ),
+ 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 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_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)),
+) ;
+
DEFI_SONDE = OPER(nom="DEFI_SONDE",op= 1,sd_prod=sonde,
docu="U2D1",
fr="définition d'une sonde historique avec ses coordonnées",
) ;
+def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
+ SOLVEUR,NUME_DDL,CHARGE,INST,**args):
+ """
+ Ecriture de la macro MACRO_MATR_ASSE
+ """
+ ier=0
+ # 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.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'):
+ ier=ier+1
+ self.cr.fatal("Avec methode LDLT, RENUM doit etre SANS ou RCMK.")
+ return ier
+ elif methode=='MULT_FRONT':
+ if SOLVEUR['RENUM']:
+ renum=SOLVEUR['RENUM']
+ else:
+ renum='MDA'
+ if renum not in ('MDA','MD','METIS'):
+ ier=ier+1
+ self.cr.fatal("Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK.")
+ return ier
+ elif methode=='GCPC':
+ if SOLVEUR['RENUM']:
+ renum=SOLVEUR['RENUM']
+ else:
+ renum='SANS'
+ if renum not in ('SANS','RCMK'):
+ ier=ier+1
+ self.cr.fatal("Avec methode GCPC, RENUM doit etre SANS ou RCMK.")
+ return ier
+ 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
+
+ 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') :
+ ier=ier+1
+ self.cr.fatal("LA PREMIERE OPTION DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR")
+ return ier
+
+ if m['SIEF_ELGA']!=None and option!='RIGI_GEOM':
+ ier=ier+1
+ self.cr.fatal("SIEF_ELGA N EST ADMIS QU AVEC L OPTION RIGI_GEOM")
+ return ier
+
+ if m['MODE_FOURIER']!=None and option not in ('RIGI_MECA','RIGI_FLUI_STRU','RIGI_THER'):
+ ier=ier+1
+ self.cr.fatal("MODE_FOURIER N EST ADMIS QU AVEC UNE DES OPTIONS RIGI_MECA RIGI_FLUI_STRU RIGI_THER")
+ return ier
+
+ if (m['THETA']!=None or m['PROPAGATION']!=None) and option!='RIGI_MECA_LAGR':
+ ier=ier+1
+ self.cr.fatal("PROPAGATION ET,OU THETA NE SONT ADMIS QU AVEC L OPTION RIGI_MECA_LAGR")
+ return ier
+ motscles={'OPTION':option}
+ if option == 'AMOR_MECA':
+ if (not lrigel or not lmasel):
+ ier=ier+1
+ self.cr.fatal("""POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE
+ RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)""")
+ return ier
+ 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
+ if m['SIEF_ELGA'] : motscles['SIEF_ELGA'] =m['SIEF_ELGA']
+ if m['MODE_FOURIER']: motscles['MODE_FOURIER']=m['MODE_FOURIER']
+ if m['THETA'] : motscles['THETA'] =m['THETA']
+ if m['PROPAGATION'] : motscles['PROPAGATION'] =m['PROPAGATION']
+ __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'])
+ mm=ASSE_MATRICE(MATR_ELEM=__a,NUME_DDL=num)
+ return ier
+
+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")
+ self.type_sdprod(NUME_DDL,nume_ddl)
+ 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,docu="U4.61.21-c",
+ sd_prod=macro_matr_asse_prod,
+ fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
+ MODELE =SIMP(statut='o',typ=modele),
+ 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)),
+ INST =SIMP(statut='f',typ='R'),
+ NUME_DDL =SIMP(statut='o',typ=(nume_ddl,CO)),
+ SOLVEUR =FACT(statut='d',min=01,max=01,
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",
+ into=("LDLT","MULT_FRONT","GCPC")),
+ RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")),
+ ),
+ MATR_ASSE =FACT(statut='o',min=01,max='**',
+ MATRICE =SIMP(statut='o',typ=(matr_asse,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",)
+ ),
+ SIEF_ELGA =SIMP(statut='f',typ=cham_elem_sief_r),
+ MODE_FOURIER =SIMP(statut='f',typ='I'),
+ THETA =SIMP(statut='f',typ=theta_geom),
+ PROPAGATION =SIMP(statut='f',typ='R'),
+ ),
+ TITRE =SIMP(statut='f',typ='TXM',max='**'),
+ INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+) ;
+
+
+def defi_valeur_prod(self,IS=None,R8=None,TX=None,C8=None,LS=None):
+ if IS != None : return entier
+ if R8 != None : return reel
+ if TX != None : return chaine
+ if C8 != None : return complexe
+ if LS != None : return liste
+ raise AsException("type de concept resultat non prevu")
+
+DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod,
+ fr="Affectation d une valeur à une variable Superviseur",
+ docu="U4.31.04-e1",reentrant='f',
+ regles=(UN_PARMI('IS','R8','TX','C8','LS'),),
+ IS =SIMP(statut='f',typ='I',max='**'),
+ R8 =SIMP(statut='f',typ='R',max='**'),
+ TX =SIMP(statut='f',typ='TXM',max='**'),
+ C8 =SIMP(statut='f',typ='C',max='**'),
+ LS =SIMP(statut='f',typ='L',max='**'),
+) ;
+
+def macro2_prod(self,MODELE,**args):
+ return maillage
+
+MACRO2 =MACRO(nom="MACRO2",op= -5 ,docu="U4.61.21-c",
+ sd_prod=macro2_prod,
+ fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
+ MODELE =SIMP(statut='o',typ=modele),
+);
+
+def macro3_prod(self,MAILLAGE,MAIL2,**args):
+ self.type_sdprod(MAIL2,maillage)
+ if not MAILLAGE:return None
+ return maillage
+
+MACRO3 =MACRO(nom="MACRO3",op= -5 ,docu="U4.61.21-c",
+ sd_prod=macro3_prod,
+ fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
+ MAILLAGE =SIMP(statut='f',typ=maillage),
+ MAIL2 =SIMP(statut='o',typ=(CO,maillage)),
+);
+
+def errmacro_prod(self,MAILLAGE,**args):
+ #Erreur de programmation
+ a=1/0
+ return maillage
+
+ERRMACRO =MACRO(nom="ERRMACRO",op= -5 ,docu="U4.61.21-c",
+ sd_prod=errmacro_prod,
+ fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
+ MAILLAGE =SIMP(statut='o',typ=maillage),
+);
+
+def erroper_prod(self,MAILLAGE,**args):
+ #Erreur de programmation
+ a=1/0
+ return maillage
+
+ERROPER =OPER(nom="ERROPER",op= -5 ,docu="U4.61.21-c",
+ sd_prod=erroper_prod,
+ fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
+ MAILLAGE =SIMP(statut='o',typ=maillage),
+);
+
+def errproc_init(self,MAILLAGE,**args):
+ #Erreur de programmation
+ a=1/0
+
+ERRPROC =PROC(nom="ERRPROC",op= -5 ,docu="U4.61.21-c",
+ op_init=errproc_init,
+ fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
+ MAILLAGE =SIMP(statut='o',typ=maillage),
+);
+
+class concept(ASSD):pass
+
+def op1_prod(x,**args):
+ if x == 0:return concept
+ if x == 1:return concept
+ raise AsException("type de concept resultat non prevu")
+
+OP1 = OPER(nom='OP1',op=1,sd_prod=op1_prod,reentrant='f',
+ a=SIMP(statut='o',typ='I',into=(0,1,2)),
+ b=SIMP(typ=concept),
+ ccc=FACT(statut='d',d=SIMP(typ='I'),e=SIMP(typ='I')),
+ b_1=BLOC(condition="a==0",
+ x=SIMP(statut='o',typ='I',into=(0,1)),
+ c=FACT(d=SIMP(typ='I'),e=SIMP(typ='I')),
+ ),
+ b_2=BLOC(condition="a==1",
+ x=SIMP(statut='o',typ='I',into=(0,1)),
+ b_2=BLOC(condition="1",
+ cc=FACT(d=SIMP(typ='I'),e=SIMP(typ='I')),
+ c=FACT(d=SIMP(typ='I'),e=SIMP(typ='I')),
+ ),
+ ),
+ );
+
+
+def op2_prod(self,x,**args):
+ if x == 0:return concept
+ if x == 1:return concept
+ raise AsException("type de concept resultat non prevu")
+
+OP2 = MACRO(nom='OP2',op=1,sd_prod=op2_prod,reentrant='f',
+ a=SIMP(statut='o',typ='I',into=(0,1,2)),
+ b=SIMP(typ=concept),
+ ccc=FACT(statut='d',d=SIMP(typ='I'),e=SIMP(typ='I')),
+ b_1=BLOC(condition="a==0",
+ x=SIMP(statut='o',typ='I',into=(0,1)),
+ c=FACT(d=SIMP(typ='I'),e=SIMP(typ='I')),
+ ),
+ b_2=BLOC(condition="a==1",
+ x=SIMP(statut='o',typ='I',into=(0,1)),
+ b_2=BLOC(condition="1",
+ cc=FACT(d=SIMP(typ='I'),e=SIMP(typ='I')),
+ c=FACT(d=SIMP(typ='I'),e=SIMP(typ='I')),
+ ),
+ ),
+ );
+
+DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-d",
+ UIinfo={"groupes":("Gestion du travail",)},
+ fr="Destruction d un concept utilisateur dans la base GLOBALE",
+ op_init=ops.detruire,
+ CONCEPT =FACT(statut='o',min=01,
+ NOM =SIMP(statut='o',typ=assd,max='**'),
+ ),
+);
+
+INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-a",
+ UIinfo={"groupes":("Modélisation",)},
+ fr=" ",
+ 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',min=1,max=99,
+ COMPOR =SIMP(statut='o',typ='TXM' ),
+ TEMP_EVAL =SIMP(statut='o',typ='R' ),
+ ),
+ INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
+) ;
+
+def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args):
+ if VALE != None : return fonction
+ if VALE_C != None : return fonction_c
+ if VALE_PARA != None : return fonction
+ if NOEUD_PARA != None : return fonction
+ raise AsException("type de concept resultat non prevu")
+
+DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
+ ,fr="Définition des valeurs réelles ou complexes d une fonction réelle",
+ docu="U4.31.02-g3",reentrant='n',
+ UIinfo={"groupes":("Fonction",)},
+ regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),),
+ NOM_PARA =SIMP(statut='o',typ='TXM',
+ into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
+ "INST","X","Y","Z","EPSI","META","FREQ","PULS",
+ "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
+ "PGAZ","PCAP","VITE") ),
+ 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,
+ 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 ),
+ ),
+ 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 ),
+ 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='**'),
+) ;
+
+DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
+ fr="Définition des paramètres décrivant le comportement d un matériau",
+ docu="U4.43.01-g4",reentrant='n',
+ 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',
+ 'SURF_ETAT_SATU','CAM_CLAY_THM','SURF_ETAT_NSAT'),
+ EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
+ ),
+#
+# comportement élastique
+#
+ ELAS =FACT(statut='f',min=0,max=1,
+ 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',min=0,max=1,
+ regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),),
+ E =SIMP(statut='o',typ=fonction),
+ NU =SIMP(statut='o',typ=fonction),
+ 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),
+ AMOR_ALPHA =SIMP(statut='f',typ=fonction),
+ AMOR_BETA =SIMP(statut='f',typ=fonction),
+ AMOR_HYST =SIMP(statut='f',typ=fonction),
+ 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),
+ VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
+ VERI_P2 =SIMP(statut='c',typ='TXM',defaut="INST",into=("TEMP","INST",) ),
+ VERI_P3 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ),
+ VERI_P4 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ),
+ ),
+#
+# comportement thermique
+#
+ THER_NL =FACT(statut='f',min=0,max=1,
+ regles=(UN_PARMI('BETA','RHO_CP', ),),
+ LAMBDA =SIMP(statut='o',typ=fonction),
+ BETA =SIMP(statut='f',typ=fonction),
+ RHO_CP =SIMP(statut='f',typ=fonction),
+ VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
+ ),
+ THER_HYDR =FACT(statut='f',min=0,max=1,
+ LAMBDA =SIMP(statut='o',typ=fonction),
+ BETA =SIMP(statut='f',typ=fonction),
+ AFFINITE =SIMP(statut='o',typ=fonction),
+ CHALHYDR =SIMP(statut='o',typ='R'),
+ QSR_K =SIMP(statut='o',typ='R'),
+ VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("HYDR",) ),
+ VERI_P2 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ),
+ ),
+ THER =FACT(statut='f',min=0,max=1,
+ LAMBDA =SIMP(statut='o',typ='R'),
+ RHO_CP =SIMP(statut='f',typ='R'),
+ ),
+ THER_FO =FACT(statut='f',min=0,max=1,
+ LAMBDA =SIMP(statut='o',typ=fonction),
+ RHO_CP =SIMP(statut='f',typ=fonction),
+ VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
+ ),
+)
+
+RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-e",
+ UIinfo={"groupes":("Gestion du travail",)},
+ fr="Retour au fichier de commandes appelant",
+) ;
+
path_cata_dev = "/tmp/cata"
# Répertoire temporaire
rep_travail = "/tmp"
+# Répertoire initial
+initialdir=os.curdir
# Choix des catalogues
rep_mat="bidon"
+rep_mat="/home01/chris/ASTER/projet_Eficas/Devel/SUPER6_3/TestsAster/materiau"
catalogues = (
- ('SATURNE','v1',os.path.join(rep_cata,'cata_saturne2.py'),'asterv5'),
- ('SATURNE','v2',os.path.join(rep_cata,'cata_saturne.py'),'python','defaut'),
+ ('ASTER','v1',os.path.join(rep_cata,'cata_saturne2.py'),'asterv5'),
+ ('ASTER','v2',os.path.join(rep_cata,'cata_saturne.py'),'python','defaut'),
)
Ce module sert à lancer EFICAS configuré pour Code_Mini
"""
# Modules Python
-import sys
+import sys,os
# Modules Eficas
import prefs
sys.path[:0]=[prefs.INSTALLDIR]
+args=sys.argv[1:]
+for a in args:
+ if a == "-display":
+ os.environ['DISPLAY']=args[args.index("-display")+1]
+
+import Misc.Trace
import Editeur
from Editeur import eficas_go
-if len(sys.argv) > 1 :
- # on veut ouvrir un fichier directement au lancement d'Eficas
- eficas_go.lance_eficas(code='SATURNE',fichier = sys.argv[1])
+def main():
+ #Misc.Trace.begin_trace()
+ if len(sys.argv) > 1 :
+ # on veut ouvrir un fichier directement au lancement d'Eficas
+ eficas_go.lance_eficas(code='ASTER',fichier = sys.argv[1])
+ else:
+ # on veut ouvrir Eficas 'vide'
+ eficas_go.lance_eficas(code='ASTER')
+ Misc.Trace.end_trace()
+
+def hidez():
+ from Misc import Cyclops
+ z = Cyclops.CycleFinder()
+ z.run(main)
+ z.find_cycles()
+ z.show_stats()
+ z.show_cycles()
+ # z.show_cycleobjs()
+ # z.show_sccs()
+ z.show_arcs()
+
+withCyclops=0
+
+if withCyclops:
+ hidez()
else:
- # on veut ouvrir Eficas 'vide'
- eficas_go.lance_eficas(code='SATURNE')
+ main()
+
+#@ 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.
#
-__version__="$Name: FR_28_06_10_00 $"
-__Id__="$Id: ops.py,v 1.12.18.3 2001/06/19 12:24:51 iliade Exp $"
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 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)
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
+ # 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()
+ # 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 sd_prod pour la macro INCLUDE
"""
+ if not UNITE : return
if hasattr(self,'unite'):return
self.unite=UNITE
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)
if m.group(3) == "EVAL":
ll.append(" "+m.group(1)+' = EVAL("'+m.group(4)+"("+str(TEMP)+')"),')
elif m.group(3) == "SUPPR":
- pass
+ pass
else:
- ll.append(l)
+ 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
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:
- self.mat=mat
+ 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["rep_mat"]
+ 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
# 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
- code=compile(self.text,f,'exec')
if self.jdc.par_lot == 'NON':
# On est en mode commande par commande
# On teste la validite de la commande avec interruption eventuelle
# commandes car le prefixe PRFXCO doit etre initialise dans le Fortran
self.codex.opsexe(self,0,-1,-self.definition.op)
- d={}
- self.g_context = d
- self.contexte_fichier_init = d
- exec code in self.parent.g_context,d
+ self.make_contexte(f,self.text)
+
# Peut valoir None (defaut)
CODE_PATH = None
#CODE_PATH = os.path.join(REPINI,'../../Superv')
+#CODE_PATH = "/home01/chris/projet_Eficas/Devel/SUPER6_3/Aster6_3/bibpyt"
# ICONDIR sert à localiser le répertoire contenant les icones
# Par défaut on utilise le répertoire icons dans Editeur
ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+
+
--- /dev/null
+version = "6.3.20"
+date = "10/10/2002"
--- /dev/null
+# Auteur : A. Yessayan
+# Date : jeudi 06/03/2003 a 14:36:00
+
+"""
+
+Module MakeNomComplet
+---------------------
+ Construction du nom complet d'un fichier dans un répertoire existant.
+ Le fichier n'existe pas forcément mais le répertoire doit OBLIGATOIREMENT
+ exister.
+
+ Usage :
+ import MakeNomComplet
+
+ txt="main.py"
+ txt="./main.py"
+ txt="/tmp/main.py"
+ try :
+ nom_complet=str(MakeNomComplet.FILNAME( txt ))
+ dir_name = MakeNomComplet.dirname(txt)
+ fic_name = MakeNomComplet.basename(txt)
+ except Exception,e:
+ print txt,' est un nom INVALIDE'
+ print str(e)
+
+"""
+
+try :
+ from developpeur import DEVELOPPEUR
+except :
+ DEVELOPPEUR=None
+
+if DEVELOPPEUR :
+ import developpeur
+ developpeur.sortie.write( "import de "+__name__+" : $Id: MakeNomComplet.py,v 1.1 2003/03/06 16:09:53 eficas Exp $" )
+ developpeur.sortie.write( "\n" )
+
+
+import string
+import os
+import os.path
+import types
+import re
+
+class FILENAME :
+ def __init__( self , s ) :
+ assert(type(s)==types.StringType)
+ assert(len(s)>0)
+ self.text = s
+ self.rep=None
+ self.file=None
+ liste=string.split( self.text , '/' )
+ l=len(liste)
+ assert(l>=1)
+ if l == 1 :
+ rep="."
+ else :
+ # evaluation des eventuels paramètres shell : DEBUT
+ l_evalue=[]
+ for d in liste :
+ if len(d) and d[0]=='$' :
+ d=re.sub( "[\${}]" , "" , d )
+ d=os.getenv(d)
+ l_evalue.append(d)
+ # evaluation des eventuels paramètres shell : FIN
+
+ rep=string.join( l_evalue[0:l-1] , '/' )
+ try :
+ self.rep = self.getcwd_( rep )
+ self.file = liste[-1]
+ except Exception,e :
+ raise Exception( "nom de repertoire INVALIDE : "+rep )
+
+ def getcwd_ ( self , rep ) :
+ prev = os.getcwd()
+ os.chdir( rep )
+ wd = os.getcwd()
+ os.chdir( prev )
+ return wd
+
+ def dirname( self ) :
+ return self.rep
+
+ def basename( self ) :
+ return self.file
+
+ def __str__ ( self ) :
+ return self.rep+'/'+self.file
+
+
+
+
+def dirname( s ) :
+ """
+ retourne dans une string, le nom complet du répertoire
+ du fichier dont le nom est passe dans s.
+ S'il n' y a pas de chemin dans s, c'ets le nom complet
+ du répertoire courant qui est retourné.
+ N.B. : ce repertoire doit exister
+ """
+ f=FILENAME(s)
+ return f.dirname()
+
+
+def basename( s ) :
+ """
+ retourne dans une string, le nom simple du fichier dont le nom
+ est passe dans s.
+ N.B. : le repertoire (s'il ya un chemin dans s) doit exister
+ """
+ f=FILENAME(s)
+ return f.basename()
+
+
+if __name__ == "__main__" :
+
+ import sys
+
+ import MakeNomComplet
+
+ s="${PWD}/MakeNomComplet.py"
+ print dirname( s )
+ print basename( s )
+ print str(MakeNomComplet.FILENAME(s))
+
+ print dirname( "MakeNomComplet.py" )
+ print basename( "MakeNomComplet.py" )
+
+ print dirname( "./MakeNomComplet.py" )
+ print basename( "./MakeNomComplet.py" )
+
+
+ try :
+ print basename( "/toto/main.py" )
+ print "ERREUR"
+ sys.exit(5)
+ except Exception,e :
+ print str(e)
+ print "OKAY"
+ pass
+ print "FIN NORMALE DE "+__name__
+ sys.exit(0)
def end_trace():
sys.settrace(None)
+def filter(filename):
+ return (filename[-10:] == 'Tkinter.py') or (filename[:21] == '/home01/chris/pkg/Pmw')
+
+cara="+"
+ldec=2
+dec = cara*ldec
+curframe=None
+
+def compute_level(frame):
+ """Calcule le niveau dans la pile d'execution"""
+ level=0
+ while frame is not None:
+ frame=frame.f_back
+ level=level+1
+ return level-1
+
+
def dispatch_call(frame, arg):
""" Cette fonction est appelée par trace_dispatch
pour tracer les appels à des fonctions ou méthodes
"""
+ global dec,curframe
+ try:
+ dec = cara*ldec*compute_level(frame)
+ name = frame.f_code.co_name
+ if not name: name = '???'
+ if not filter(frame.f_code.co_filename):
+ print dec +' call', name, frame.f_lineno,frame.f_code.co_filename
+ # La trace des appels suivants est decalee de +
+ dec=dec+cara*ldec
+ except:
+ print "Pb dans dispatch_call: ",frame,curframe
+ return trace_dispatch
+
+def dispatch_exception(frame, arg):
+ """ Cette fonction est appelée par trace_dispatch
+ pour tracer les exceptions
+ """
+ global dec,curframe
+ try:
+ dec = cara*ldec*(compute_level(frame)+1)
+ name = frame.f_code.co_name
+ if not name: name = '???'
+ if not filter(frame.f_code.co_filename):
+ print dec+' exception', name, frame.f_lineno,frame.f_code.co_filename,arg[0],arg[1]
+ except:
+ print "Pb dans dispatch_exception: ",frame,curframe
+ return trace_dispatch
+
+def dispatch_return(frame, arg):
+ """ Cette fonction est appelée par trace_dispatch
+ pour tracer les retours de fonction
+ """
+ global dec,curframe
+# print dec+' return', arg
+ dec = cara*ldec*compute_level(frame)
+ return trace_dispatch
+
+def dispatch_line(frame, arg):
+ """ Cette fonction est appelée par trace_dispatch
+ pour tracer les lignes de source
+ """
+ import linecache
name = frame.f_code.co_name
if not name: name = '???'
- print '+++ call', name, arg
+ fn=frame.f_code.co_filename
+ line = linecache.getline(fn, frame.f_lineno)
+ print dec,name,frame.f_lineno,':',line.strip()
+ return trace_dispatch
def trace_dispatch(frame,event,arg):
""" Cette fonction sert à tracer tous les appels
à des fonctions ou à des méthodes.
"""
- if event == 'call':
- return dispatch_call(frame, arg)
+ if event == 'call': return dispatch_call(frame, arg)
+ if event == 'return': return dispatch_return(frame, arg)
+# if event == 'line': return dispatch_line(frame, arg)
+ if event == 'exception': return dispatch_exception(frame, arg)
return trace_dispatch
+def a(x):
+ b(x)
+
+def b(x):
+ return x
+
+def d(x):
+ return 1/x
+
+def e():
+ try:
+ c=1/0
+ except:
+ pass
+
+def f():
+ try:
+ c=1/0
+ except:
+ b(10)
+ raise
+
+def g():
+ try:
+ f()
+ except:
+ pass
+
+def _test():
+ begin_trace()
+ a(5)
+ try:
+ d(0)
+ except:
+ pass
+ b(4)
+ g()
+ e()
+ end_trace()
+ b(3)
+
+if __name__ == "__main__":
+ _test()
+
l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
raise AsException("Catalogue entite : ", self.nom,", de pere : ", self.pere.nom,
'\n',"Erreur dans la condition : ", self.condition,string.join(l))
+ except TypeError:
+ # erreur 'normale' : un mot-clé est en fait un morceau de mot clef : TYPE_CHAM[0:2] par exemple
+ if CONTEXT.debug:
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ print "WARNING : Erreur a l'evaluation de la condition "+string.join(l)
+ return 0
except:
l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
raise AsException("Catalogue entite : ", self.nom,", de pere : ", self.pere.nom,
# On ne nomme le concept que dans le cas de non reutilisation
# d un concept
sd.nom=nom
+ if self.jdc and self.jdc.par_lot == "NON" :
+ self.Execute()
+ return sd
except AsException,e:
raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
'fichier : ',self.appel[1],e)
except EOFError:
+ # XXX Normalement le contexte courant doit etre le parent.
+ # Il n'y a pas de raison de remettre le contexte au parent
+ #self.reset_current_step()
raise
except :
l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
'fichier : ',self.appel[1]+'\n',
string.join(l))
- self.Execute()
- return sd
-
def Execute(self):
"""
- Cette methode est un point d'entree prevu pour realiser une execution immediatement
- apres avoir construit les mots cles et le concept produit.
- Par defaut, elle ne fait rien. Elle doit etre surchargee dans une autre partie du programme.
+ Cette methode est prevue pour faire une execution dans le cas
+ ou par_lot == 'NON'
+ Par defaut, elle ne fait rien
"""
return
else:
sd_prod=self.definition.sd_prod
# on teste maintenant si la SD est réutilisée ou s'il faut la créer
- if self.definition.reentrant != 'n' and self.reuse:
- # Le concept produit est specifie reutilise (reuse=xxx). C'est une erreur mais non fatale.
- # Elle sera traitee ulterieurement.
+ if self.reuse:
+ # Il est preferable de traiter cette erreur ultérieurement : ce n'est pas une erreur fatale
+ #if AsType(self.reuse) != sd_prod:
+ # raise AsException("type de concept reutilise incompatible avec type produit")
self.sd=self.reuse
else:
self.sd= sd_prod(etape=self)
- # Si l'operateur est obligatoirement reentrant et reuse n'a pas ete specifie, c'est une erreur.
- # On ne fait rien ici. L'erreur sera traiter par la suite.
+ # Si reuse n'a pas ete donné, c'est une erreur. Ne pas corriger afin de la detecter ensuite
+ #if self.definition.reentrant == 'o':
+ # self.reuse = self.sd
return self.sd
def get_type_produit(self):
self.current_context={}
self.condition_context={}
self.index_etape_courante=0
- self.UserError="UserError"
def compile(self):
"""
s= traceback.format_exception_only("Erreur de nom",e)[0][:-1]
message = "erreur de syntaxe, %s ligne %d" % (s,l[-1][1])
if CONTEXT.debug :
+ #prbanner(message)
traceback.print_exc()
self.cr.exception(message)
CONTEXT.unset_current_step()
- except self.UserError,exc_val:
- self.traiter_user_exception(exc_val)
- CONTEXT.unset_current_step()
-
except :
# erreur inattendue
# sys_exc_typ,sys_exc_value,sys_exc_frame = sys_exc.info()
# (tuple de 3 éléments)
- if CONTEXT.debug : traceback.print_exc()
-
- exc_typ,exc_val,exc_fr=sys.exc_info()
- l=traceback.format_exception(exc_typ,exc_val,exc_fr)
+ if CONTEXT.debug :
+ traceback.print_exc()
+ #prbanner("erreur non prevue et non traitee prevenir \
+ # la maintenance "+self.nom)
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
+ sys.exc_info()[2])
self.cr.exception("erreur non prevue et non traitee prevenir la maintenance "+
self.nom+'\n'+ string.join(l))
- del exc_typ,exc_val,exc_fr
CONTEXT.unset_current_step()
- def traiter_user_exception(self,exc_val):
- """Cette methode realise un traitement sur les exceptions utilisateur
- Par defaut il n'y a pas de traitement. La méthode doit etre
- surchargée pour en introduire un.
- """
- return
-
def register(self,etape):
"""
Cette méthode ajoute etape dans la liste des etapes : self.etapes
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) :
+ if sd != None and etape.reuse == None:
# ATTENTION : On ne nomme la SD que dans le cas de non reutilisation
- # d un concept. Commande non reentrante ou reuse absent.
+ # d un concept
self.NommerSdprod(sd,nomsd)
return sd
Met le concept créé dans le concept global g_context
"""
if CONTEXT.debug : print "JDC.NommerSdprod ",sd,sdnom
-
o=self.sds_dict.get(sdnom,None)
if isinstance(o,ASSD):
raise AsException("Nom de concept deja defini : %s" % sdnom)
if os.path.exists("fort."+str(unite)):
file= "fort."+str(unite)
if file == None :
- raise AsException("Impossible de trouver le fichier correspondant"
- " a l unite %s" % unite)
+ raise AsException("Impossible de trouver le fichier correspondant \
+ a l unite %s" % unite)
if not os.path.exists(file):
raise AsException("%s n'est pas un fichier existant" % unite)
fproc=open(file,'r')
# d un concept
sd.nom=nom
self.reset_current_step()
+ if self.jdc and self.jdc.par_lot == "NON" :
+ self.Execute()
+ return sd
except AsException,e:
self.reset_current_step()
raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
'fichier : ',self.appel[1],e)
- except (EOFError,self.jdc.UserError):
- # Le retablissement du step courant n'est pas strictement necessaire. On le fait pour des raisons de coherence
- self.reset_current_step()
+ except EOFError:
+ #self.reset_current_step()
raise
except :
self.reset_current_step()
'fichier : ',self.appel[1]+'\n',
string.join(l))
- self.Execute()
- return sd
-
def get_sd_prod(self):
"""
Retourne le concept résultat d'une macro étape
# les concepts produits dans self.sdprods, il faut le mettre à zéro avant de l'appeler
self.sdprods=[]
sd_prod= apply(sd_prod,(self,),d)
- except (EOFError,self.jdc.UserError):
+ except EOFError:
raise
except:
if CONTEXT.debug: traceback.print_exc()
raise AsException("impossible d affecter un type au resultat\n",string.join(l[2:]))
# on teste maintenant si la SD est réutilisée ou s'il faut la créer
- if self.definition.reentrant != 'n' and self.reuse:
- # Le concept produit est specifie reutilise (reuse=xxx). C'est une erreur mais non fatale.
- # Elle sera traitee ulterieurement.
+ if self.reuse:
+ # Il est preferable de traiter cette erreur ultérieurement : ce n'est pas une erreur fatale
+ #if AsType(self.reuse) != sd_prod:
+ # raise AsException("type de concept reutilise incompatible avec type produit")
self.sd=self.reuse
else:
if sd_prod == None:
else:
self.sd= sd_prod(etape=self)
self.typret=sd_prod
- # Si la commande est obligatoirement reentrante et reuse n'a pas ete specifie, c'est une erreur.
- # On ne fait rien ici. L'erreur sera traitee par la suite.
+ # Si reuse n'a pas ete donné, c'est une erreur. Ne pas corriger afin de la detecter ensuite
+ #if self.definition.reentrant == 'o':
+ # self.reuse = self.sd
return self.sd
def get_type_produit(self,force=0):
# On force également le nom stocké dans l'attribut sdnom : on lui donne le nom
# du concept associé à nomsd
etape.sdnom=sd.nom
- elif etape.definition.reentrant != 'n' and etape.reuse != None:
+ elif etape.reuse != None:
# On est dans le cas d'une commande avec reutilisation d'un concept existant
# get_sd_prod fait le necessaire : verifications, associations, etc. mais ne cree
# pas un nouveau concept. Il retourne le concept reutilise
# les macros devrait peut etre etre déplacée dans Build ???
if CONTEXT.debug : print "MACRO.NommerSdprod: ",sd,sdnom
-
if hasattr(self,'prefix'):
# Dans le cas de l'include_materiau on ajoute un prefixe au nom du concept
if sdnom != self.prefix:sdnom=self.prefix+sdnom
if self.Outputs.has_key(sdnom):
# Il s'agit d'un concept de sortie de la macro produit par une sous commande
sdnom=self.Outputs[sdnom].nom
- elif sdnom != '' and sdnom[0] == '_':
+ elif sdnom[0] == '_':
# Si le nom du concept commence par le caractere _ on lui attribue
# un identificateur JEVEUX construit par gcncon et respectant
# la regle gcncon legerement adaptee ici
apply(self.definition.op_init,(self,self.parent.g_context))
else:
pass
+ if self.jdc.par_lot == "NON" :
+ self.Execute()
except AsException,e:
raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
'fichier : ',self.appel[1],e)
'fichier : ',self.appel[1]+'\n',
string.join(l))
- self.Execute()
- return None
-
def supprime(self):
"""
Méthode qui supprime toutes les références arrières afin que l'objet puisse
+++ /dev/null
-#@ MODIF N_VALIDATOR Noyau DATE 09/09/2003 AUTEUR DURAND C.DURAND
-# 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.
-# ======================================================================
-"""
- Ce module contient toutes les classes necessaires pour
- implanter le concept de validateur dans Accas
-"""
-import types,exceptions
-
-class ValError ( exceptions.Exception ):
- pass
-
-class Valid:
- """
- Cette classe est la classe mere des validateurs Accas
- Elle doit etre derivee
- Elle ne presente que la signature des methodes
- indispensables pour son bon fonctionnement
-
- @ivar cata_info: raison de la validite ou de l'invalidite du validateur meme
- @type cata_info: C{string}
- """
- def __init__(self,*tup,**args):
- """
- Cette methode sert a initialiser les attributs du validateur
- """
- self.cata_info=""
- raise "Must be implemented"
-
- def info(self):
- return "valeur valide"
-
- def verif(self,valeur):
- """
- Cette methode sert a verifier si la valeur passee en argument est consideree
- comme valide ou non par le validateur. Dans le premier cas le validateur retourne 1
- (valide) sinon 0 (invalide).
-
- @type valeur: tout type python
- @param valeur: valeur du mot cle a valider
- @rtype: C{boolean}
- @return: indicateur de validite 1 (valide) ou 0 (invalide)
- """
- raise "Must be implemented"
-
- def error(self,valeur):
- return 0
-
- def verif_cata(self):
- """
- Cette methode sert a realiser des verifications du validateur lui meme.
- Elle est facultative et retourne 1 (valide) par defaut.
- Elle retourne 0 si le validateur est lui meme invalide si par exemple ses
- parametres de definition ne sont pas corrects.
- La raison de l'invalidite est stockee dans l'attribut cata_info.
-
- @rtype: C{boolean}
- @return: indicateur de validite 1 (valide) ou 0 (invalide)
- """
- return 1
-
-class RangeVal(Valid):
- """
- Exemple de classe validateur : verification qu'une valeur
- est dans un intervalle.
- 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,low,high):
- self.low=low
- self.high=high
- self.cata_info="%s doit etre inferieur a %s" %(low,high)
-
- def info(self):
- return "valeur dans l'intervalle %s , %s" %(self.low,self.high)
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- for val in valeur:
- if val < self.low :return 0
- if val > self.high:return 0
- return 1
- else:
- if valeur < self.low :return 0
- if valeur > self.high:return 0
- return 1
-
- def verif_cata(self):
- if self.low > self.high : return 0
- return 1
-
-class CardVal(Valid):
- """
- Exemple de classe validateur : verification qu'une liste est
- d'une longueur superieur a un minimum (min) et inferieure
- a un maximum (max).
- Susceptible de remplacer les attributs "min" "max" dans les
- catalogues
- """
- def __init__(self,min='**',max='**'):
- self.min=min
- self.max=max
- self.cata_info="%s doit etre inferieur a %s" % (min,max)
-
- def info(self):
- return "longueur comprise entre %s et %s" % (self.min,self.max)
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- if self.max != '**' and len(valeur) > self.max:return 0
- if self.min != '**' and len(valeur) < self.min:return 0
- return 1
- else:
- if self.max != '**' and 1 > self.max:return 0
- if self.min != '**' and 1 < self.min:return 0
- return 1
-
- def verif_cata(self):
- if self.min != '**' and self.max != '**' and self.min > self.max : return 0
- return 1
-
-class PairVal(Valid):
- """
- Exemple de classe validateur : verification qu'une valeur
- est paire.
- Pour une liste on verifie que tous les elements sont
- pairs
- """
- def __init__(self):
- self.cata_info=""
-
- def info(self):
- return "valeur paire"
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- for val in valeur:
- if val % 2 != 0:return 0
- return 1
- else:
- if valeur % 2 != 0:return 0
- return 1
-
-class EnumVal(Valid):
- """
- Exemple de classe validateur : verification qu'une valeur
- est prise dans une liste de valeurs.
- Susceptible de remplacer l attribut "into" dans les catalogues
- """
- def __init__(self,into=()):
- if type(into) not in (types.ListType,types.TupleType): into=(into,)
- self.into=into
- self.cata_info=""
-
- def info(self):
- return "valeur dans %s" % `self.into`
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- for val in valeur:
- if val not in self.into:return 0
- return 1
- else:
- if valeur not in self.into:return 0
- return 1
-
-class NoRepeat(Valid):
- """
- Verification d'absence de doublons dans la liste.
- """
- def __init__(self):
- self.cata_info=""
-
- def info(self):
- return ": présence de doublon dans la liste"
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- liste=list(valeur)
- for val in liste:
- if liste.count(val)!=1 : return 0
- return 1
- else:
- return 1
-
-class LongStr(Valid):
- """
- Verification de la longueur d une chaine
- """
- def __init__(self,low,high):
- self.low=low
- self.high=high
- self.cata_info=""
-
- def info(self):
- return "longueur de la chaine entre %s et %s" %(self.low,self.high)
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- for val in valeur:
- if len(val) < self.low :return 0
- if len(val) > self.high:return 0
- return 1
- else:
- if len(valeur) < self.low :return 0
- if len(valeur) > self.high:return 0
- return 1
-
-class OrdList(Valid):
- """
- Verification qu'une liste est croissante ou decroissante
- """
- def __init__(self,ord):
- self.ord=ord
- self.cata_info=""
-
- def info(self):
- return "liste %s" % self.ord
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- if self.ord=='croissant':
- var=valeur[0]
- for val in valeur[1:]:
- if val<var:return 0
- var=val
- return 1
- elif self.ord=='decroissant':
- var=valeur[0]
- for val in valeur[1:]:
- if val>var:return 0
- var=val
- return 1
- else:
- return 1
-
-
-CoercableFuncs = { types.IntType: int,
- types.LongType: long,
- types.FloatType: float,
- types.ComplexType: complex,
- types.UnicodeType: unicode }
-
-class TypeVal(Valid):
- """
- 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.
- """
- def __init__(self, aType):
- if type(aType) != types.TypeType:
- aType=type(aType)
- self.aType=aType
- try:
- self.coerce=CoercableFuncs[ aType ]
- except:
- self.coerce = self.identity
-
- def info(self):
- return "valeur de %s" % self.aType
-
- def identity ( self, value ):
- if type( value ) == self.aType:
- return value
- raise ValError
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- for val in valeur:
- try:
- self.coerce(val)
- except:
- return 0
- return 1
- else:
- try:
- self.coerce(valeur)
- except:
- return 0
- return 1
-
-class InstanceVal(Valid):
- """
- Cette classe est un validateur qui controle qu'une valeur est
- bien une instance (au sens Python) d'une classe
- Pour une liste on verifie chaque element de la liste
- """
- def __init__(self,aClass):
- if type(aClass) == types.InstanceType:
- aClass=aClass.__class__
- self.aClass=aClass
-
- def info(self):
- return "valeur d'instance de %s" % self.aClass.__name__
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- for val in valeur:
- if not isinstance(val,self.aClass): return 0
- return 1
- if not isinstance(valeur,self.aClass): return 0
- return 1
-
-def ImpairVal(valeur):
- """
- Cette fonction est un validateur. Elle verifie que la valeur passee
- est bien un nombre impair.
- """
- if type(valeur) in (types.ListType,types.TupleType):
- for val in valeur:
- if val % 2 != 1:return 0
- return 1
- else:
- if valeur % 2 != 1:return 0
- return 1
-
-ImpairVal.info="valeur impaire"
-
-class F1Val(Valid):
- """
- Cette classe est un validateur de dictionnaire (mot cle facteur ?). Elle verifie
- que la somme des cles A et B vaut une valeur donnee
- en parametre du validateur
- """
- def __init__(self,somme=10):
- self.somme=somme
- self.cata_info=""
-
- def info(self):
- return "valeur %s pour la somme des cles A et B " % self.somme
-
- def verif(self,valeur):
- if type(valeur) in (types.ListType,types.TupleType):
- for val in valeur:
- if not val.has_key("A"):return 0
- if not val.has_key("B"):return 0
- if val["A"]+val["B"] != self.somme:return 0
- return 1
- else:
- if not valeur.has_key("A"):return 0
- if not valeur.has_key("B"):return 0
- if valeur["A"]+valeur["B"] != self.somme:return 0
- return 1
-
-class FunctionVal(Valid):
- """
- Cette classe est un validateur qui est initialise avec une fonction
- """
- def __init__(self,function):
- self.function=function
-
- def info(self):
- return self.function.info
-
- def verif(self,valeur):
- return self.function(valeur)
-
-class OrVal(Valid):
- """
- Cette classe est un validateur qui controle une liste de validateurs
- Elle verifie qu'au moins un des validateurs de la liste a valide la valeur
- """
- def __init__(self,validators=()):
- if type(validators) not in (types.ListType,types.TupleType): validators=(validators,)
- self.validators=[]
- for validator in validators:
- if type(validator) == types.FunctionType:
- self.validators.append(FunctionVal(validator))
- else:
- self.validators.append(validator)
- self.cata_info=""
-
- def info(self):
- return "\n ou ".join([v.info() for v in self.validators])
-
- def verif(self,valeur):
- for validator in self.validators:
- v=validator.verif(valeur)
- if v :
- return 1
- return 0
-
- def verif_cata(self):
- infos=[]
- for validator in self.validators:
- v=validator.verif_cata()
- if not v :infos.append(validator.cata_info)
- if infos:
- self.cata_info="\n".join(infos)
- return 0
- self.cata_info=""
- return 1
-
-class AndVal(Valid):
- """
- Cette classe est un validateur qui controle une liste de validateurs
- Elle verifie que tous les validateurs de la liste sont positifs
- """
- def __init__(self,validators=()):
- if type(validators) not in (types.ListType,types.TupleType): validators=(validators,)
- self.validators=[]
- for validator in validators:
- if type(validator) == types.FunctionType:
- self.validators.append(FunctionVal(validator))
- else:
- self.validators.append(validator)
- self.cata_info=""
-
- def info(self):
- return " et ".join([v.info() for v in self.validators])
-
- def verif(self,valeur):
- for validator in self.validators:
- v=validator.verif(valeur)
- if not v :
- self.local_info=validator.info()
- return 0
- return 1
-
- def verif_cata(self):
- infos=[]
- for validator in self.validators:
- v=validator.verif_cata()
- if not v :infos.append(validator.cata_info)
- if infos:
- self.cata_info="\n".join(infos)
- return 0
- self.cata_info=""
- return 1
-
-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
- """
- valids=[]
- for validator in validators:
- if type(validator) == types.FunctionType:
- valids.append(FunctionVal(validator))
- elif type(validator) == types.TupleType:
- valids.append(OrVal(do_liste(validator)))
- elif type(validator) == types.ListType:
- valids.append(AndVal(do_liste(validator)))
- else:
- valids.append(validator)
- return valids
-
-def validatorFactory(validator):
- if type(validator) == types.FunctionType:
- return FunctionVal(validator)
- elif type(validator) == types.TupleType:
- return OrVal(do_liste(validator))
- elif type(validator) == types.ListType:
- return AndVal(do_liste(validator))
- else:
- return validator
# Par défaut on utilise le répertoire icons dans Editeur
ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+
--- /dev/null
+version = "6.3.20"
+date = "10/10/2002"
--- /dev/null
+# debut entete
+import Accas
+from Accas import *
+#
+JdC = JDC_CATA(code='SYRTHES',
+ execmodul=None,
+ niveaux=(NIVEAU(nom='generalites',label='Généralités',valide_vide=0),
+ NIVEAU(nom='gest_calc',label='Gestion du calcul',valide_vide=0,actif="generalites == 1"),
+ NIVEAU(nom='gest_sort',label='Gestion des sorties'),
+ NIVEAU(nom='choix_num',label='Choix numériques',valide_vide=0),\r
+ NIVEAU(nom='prop_phys',label='Propriétés physiques',valide_vide=0,actif='choix_num==1'),\r
+ NIVEAU(nom='cond_init',label='Conditions initiales',valide_vide=0,actif='prop_phys==1'),\r
+ NIVEAU(nom='cond_limi',label='Conditions aux limites',valide_vide=0,actif='cond_init==1'),\r
+ NIVEAU(nom='flux_volu',label='Flux volumiques',valide_vide=0,actif='cond_limi==1'),\r
+ NIVEAU(nom='soli_mouv',label='Solides en mouvement'),\r
+ NIVEAU(nom='couplages',label='Couplages'),\r
+ NIVEAU(nom='rayonnement',label='Rayonnement',valide_vide=0,actif='flux_volu==1'),\r
+ NIVEAU(nom='cond_lim_ray',label='Conditions limites rayonnement',valide_vide=0,actif='rayonnement==1'),\r
+ NIVEAU(nom='in_out_ray',label='Entrées/Sorties rayonnement',valide_vide=0,actif='rayonnement==1'),\r
+ NIVEAU(nom='fichiers',label='Fichiers pour le calcul'))
+ )
+
+
+GENERALITES = PROC(nom='GENERALITES',op=10,\r
+ fr="Définition des principales options du calcul",\r
+ niveau='generalites',
+ TYPE_DE_CALCUL=SIMP(typ='TXM',\r
+ statut='o',\r
+ into=('Syrthes thermique solide seule','Syrthes couplé'),\r
+ defaut='Syrthes thermique solide seule',\r
+ position='global_jdc'),
+ TITRE = SIMP(statut='f',typ='TXM'),
+ DIMENSION = SIMP(statut='o',\r
+ typ='I',\r
+ into=(2,3),\r
+ defaut=2,\r
+ position='global_jdc'),
+ b_axys = BLOC(condition="TYPE_DE_CALCUL=='Syrthes thermique solide seule'",\r
+ AXE_SYMETRIE = SIMP(statut='o',\r
+ typ='TXM',\r
+ into=('AUCUN','OX','OY'),\r
+ defaut='AUCUN')));\r
+\r
+GESTION_DU_CALCUL = PROC(nom='GESTION_DU_CALCUL',op=10,\r
+ fr="Gestion des pas de temps et éventuellement du couplage fluide/solide",\r
+ niveau='gest_calc',\r
+ CALCUL_SYRTHES_SEUL = BLOC(condition="TYPE_DE_CALCUL == 'Syrthes thermique solide seule'",\r
+ PAS_DE_TEMPS_SOLIDE = SIMP(typ='I',statut='o'),\r
+ NB_PAS_DE_TEMPS = SIMP(typ='I',statut='o'),\r
+ SUITE_DE_CALCUL = SIMP(typ='TXM',statut='o',into=('OUI','NON'),defaut='NON')),\r
+ CALCUL_SYRTHES_COUPLE = BLOC(condition="TYPE_DE_CALCUL =='Syrthes couplé'",\r
+ CORRESPONDANCE_MAILLAGES_F_S = SIMP(statut='o',\r
+ typ='TXM',\r
+ into=('calcul','lecture sur fichier','calcul et écriture sur fichier'),\r
+ defaut='calcul et écriture sur fichier'),\r
+ PAS_DE_TEMPS_SOLIDE = SIMP(typ='TXM',\r
+ statut='o',\r
+ into=('fixé indépendamment','égal à celui du fluide'),\r
+ defaut='égal à celui du fluide'),\r
+ CHOIX_FREQUENCE_CALCUL_SOLIDE = SIMP(typ='TXM',\r
+ statut='o',\r
+ into=('calcul solide à chaque pas de temps',\r
+ 'calcul solide tous les n pas de temps fluide',\r
+ 'calcul fluide tous les n pas de temps solide'),\r
+ defaut='calcul solide à chaque pas de temps'),\r
+ frequence_calcul = BLOC(condition="CHOIX_FREQUENCE_CALCUL_SOLIDE != 'calcul solide à chaque pas de temps'",\r
+ FREQUENCE = SIMP(statut='o',\r
+ typ='I')))\r
+ \r
+ );\r
+\r
+GESTION_DES_SORTIES = PROC(nom="GESTION_DES_SORTIES",op=10,\r
+ fr="Gestion des résultats du code",\r
+ niveau='gest_sort',\r
+ IMPRESSIONS_SOLIDE=SIMP(statut='o',typ='TXM',\r
+ into=('aucune','minimales','normales','détaillées'),\r
+ defaut='normales'),\r
+ RESULTATS_DOMAINE_SOLIDE=FACT(statut='o',\r
+ FICHIER_CHRONOLOGIQUE=SIMP(typ='TXM',statut='o',\r
+ into=('aucune sortie','tous les n pas de temps'),\r
+ defaut='aucune sortie'),\r
+ pas_de_temps=BLOC(condition="FICHIER_CHRONOLOGIQUE=='tous les n pas de temps'",\r
+ PAS_DE_TEMPS=SIMP(statut='o',typ='I')),\r
+ FICHIER_LISTING=SIMP(statut='o',typ='TXM',\r
+ into=('aucune sortie',),\r
+ defaut='aucune sortie'),\r
+ HISTORIQUE_SOLIDE=SIMP(statut='o',typ='TXM',\r
+ into=('OUI','NON'),\r
+ defaut='NON'),\r
+ historique=BLOC(condition="HISTORIQUE_SOLIDE=='OUI'",\r
+ NOMBRE_CAPTEURS=SIMP(statut='o',typ='I'),\r
+ FREQUENCE_ECRITURE=SIMP(statut='o',typ='I',defaut=1),\r
+ LISTE_NOEUDS = FACT(statut='o',max='**',\r
+ NOEUDS=SIMP(statut='o',max='**',typ='I'),\r
+ COMMENTAIRE=SIMP(statut='o',typ='TXM',defaut=""))),\r
+ ),\r
+ RESULTATS_DOMAINE_FLUIDE=BLOC(condition="TYPE_DE_CALCUL=='Syrthes couplé'",\r
+ ECRITURE_MAILLAGE_PEAU_FLUIDE=SIMP(statut='o',into=('OUI','NON'),\r
+ defaut='NON',typ='TXM'),\r
+ ECRITURE_RESULTATS_PEAU_FLUIDE=SIMP(statut='o',into=('OUI','NON'),\r
+ defaut='NON',typ='TXM'),\r
+ ECRITURE_CHRONO_PEAU_FLUIDE=SIMP(statut='o',into=('OUI','NON'),\r
+ defaut='NON',typ='TXM'))\r
+ );\r
+\r
+CHOIX_NUMERIQUES=PROC(nom="CHOIX_NUMERIQUES",op=10,\r
+ fr="Modification des options du solveur",\r
+ niveau='choix_num',\r
+ SOLVEUR_SOLIDE = FACT(statut='o',\r
+ NOMBRE_ITERATIONS=SIMP(statut='o',typ='I'),\r
+ PRECISION=SIMP(statut='o',typ='R'))\r
+ );\r
+\r
+PROPRIETES_PHYSIQUES=PROC(nom="PROPRIETES_PHYSIQUES",op=10,\r
+ fr="Définition des propriétés physiques des matériaux",\r
+ niveau='prop_phys',\r
+ DEFINITION_PAR = SIMP(statut='o',typ='TXM',into=('NOEUD','ELEMENT','NOEUD PAR ELEMENT'),\r
+ defaut='ELEMENT'),\r
+ ISOTROPIE = SIMP(statut='o', typ='TXM', into=('Matériaux isotropes',\r
+ 'Matériaux anisotropes',\r
+ 'Matériaux orthotropes'),\r
+ defaut='Matériaux isotropes'),\r
+ proprietes_des_materiaux_isotropes = BLOC(condition="ISOTROPIE=='Mat\351riaux isotropes'", \r
+ DEFINITION_MASSE_VOLUMIQUE=FACT(statut='o',max='**',\r
+ MASSE_VOLUMIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CHALEUR_SPECIFIQUE=FACT(statut='o',max='**',\r
+ CHALEUR_SPECIFIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CONDUCTIVITE_THERMIQUE=FACT(statut='o',max='**',\r
+ CONDUCTIVITE_THERMIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM'))\r
+ ),\r
+ proprietes_des_materiaux_orthotropes_2D = BLOC(condition="ISOTROPIE=='Mat\351riaux orthotropes' and DIMENSION==2",\r
+ DEFINITION_MASSE_VOLUMIQUE=FACT(statut='o',max='**',\r
+ MASSE_VOLUMIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CHALEUR_SPECIFIQUE=FACT(statut='o',max='**',\r
+ CHALEUR_SPECIFIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CONDUCTIVITE_THERMIQUE=FACT(statut='o',max='**',\r
+ CONDUCTIVITE_EN_X = SIMP(statut='o',typ='R'),\r
+ CONDUCTIVITE_EN_Y = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM'))\r
+ ),\r
+ proprietes_des_materiaux_orthotropes_3D = BLOC(condition="ISOTROPIE=='Mat\351riaux orthotropes' and DIMENSION==3",\r
+ DEFINITION_MASSE_VOLUMIQUE=FACT(statut='o',max='**',\r
+ MASSE_VOLUMIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CHALEUR_SPECIFIQUE=FACT(statut='o',max='**',\r
+ CHALEUR_SPECIFIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CONDUCTIVITE_THERMIQUE=FACT(statut='o',max='**',\r
+ CONDUCTIVITE_EN_X = SIMP(statut='o',typ='R'),\r
+ CONDUCTIVITE_EN_Y = SIMP(statut='o',typ='R'),\r
+ CONDUCTIVITE_EN_Z = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM'))\r
+ ),\r
+ proprietes_des_materiaux_anisotropes_2D = BLOC(condition="ISOTROPIE=='Mat\351riaux anisotropes' and DIMENSION==2",\r
+ DEFINITION_MASSE_VOLUMIQUE=FACT(statut='o',max='**',\r
+ MASSE_VOLUMIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CHALEUR_SPECIFIQUE=FACT(statut='o',max='**',\r
+ CHALEUR_SPECIFIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CONDUCTIVITE_THERMIQUE=FACT(statut='o',max='**',\r
+ CONDUCTIVITE_EN_X = SIMP(statut='o',typ='R'),\r
+ CONDUCTIVITE_EN_Y = SIMP(statut='o',typ='R'),\r
+ ANGLE_SUIVANT_Z = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM'))\r
+ ),\r
+ proprietes_des_materiaux_anisotropes_3D = BLOC(condition="ISOTROPIE=='Mat\351riaux anisotropes' and DIMENSION==3",\r
+ DEFINITION_MASSE_VOLUMIQUE=FACT(statut='o',max='**',\r
+ MASSE_VOLUMIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CHALEUR_SPECIFIQUE=FACT(statut='o',max='**',\r
+ CHALEUR_SPECIFIQUE = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM')),\r
+ DEFINITION_CONDUCTIVITE_THERMIQUE=FACT(statut='o',max='**',\r
+ CONDUCTIVITE_EN_X = SIMP(statut='o',typ='R'),\r
+ CONDUCTIVITE_EN_Y = SIMP(statut='o',typ='R'),\r
+ CONDUCTIVITE_EN_Z = SIMP(statut='o',typ='R'),\r
+ ANGLE_SUIVANT_X = SIMP(statut='o',typ='R'),\r
+ ANGLE_SUIVANT_Y = SIMP(statut='o',typ='R'),\r
+ ANGLE_SUIVANT_Z = SIMP(statut='o',typ='R'),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES=SIMP(statut='f',typ='TXM'))\r
+ ),\r
+ );\r
+\r
+CONDITIONS_INITIALES=PROC(nom="CONDITIONS_INITIALES",op=10,\r
+ fr="Définition des conditions initiales",\r
+ niveau='cond_init',\r
+ Temperature_initiale = FACT(statut='o',max='**',\r
+ TEMPERATURE = SIMP(typ='R',statut='o',defaut=20),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**',defaut=-1),\r
+ COMMENTAIRES = SIMP(statut='f',typ='TXM')\r
+ )\r
+ );\r
+\r
+\r
+CONDITIONS_LIMITES = PROC(nom='CONDITIONS_LIMITES',op=10,\r
+ niveau='cond_limi',\r
+ fr="Définition des conditions aux limites",\r
+ NOEUD_OU_FACE = SIMP(statut='o',typ='TXM',into=('NOEUD','FACE'),defaut='FACE'),\r
+ FLUX_SURFACIQUE=FACT(max='**',\r
+ FLUX=SIMP(statut='o',typ='R',defaut=0),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES = SIMP(statut='f',typ='TXM')\r
+ ),\r
+ DIRICHLET=FACT(max='**',\r
+ TEMPERATURE=SIMP(statut='o',typ='R',defaut=20),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES = SIMP(statut='f',typ='TXM')\r
+ ),\r
+\r
+ COEFFICIENT_ECHANGE=FACT(max='**',\r
+ TEMPERATURE=SIMP(statut='o',typ='R',defaut=20),\r
+ COEFFICIENT = SIMP(statut='o',typ='R',defaut=0),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES = SIMP(statut='f',typ='TXM')\r
+ ),\r
+ RESISTANCE_CONTACT=FACT(max='**',\r
+ RESISTANCE = SIMP(statut='o',typ='R',defaut=0),\r
+ REFERENCES = SIMP(statut='o',typ='I',max='**'),\r
+ COMMENTAIRES = SIMP(statut='f',typ='TXM')\r
+ ),\r
+ );
+
--- /dev/null
+import os
+
+import prefs
+
+rep_cata = prefs.REPINI
+
+# Accès à la documentation
+path_doc = os.path.join(rep_cata,'..','Doc')
+exec_acrobat = "/usr/bin/acroread"
+# Utilisateur/Développeur
+isdeveloppeur = "NON"
+path_cata_dev = "/tmp/cata"
+# Répertoire temporaire
+rep_travail = "/tmp"
+
+# Choix des catalogues
+rep_mat="bidon"
+
+catalogues = (
+ ('SYRTHES','v1',os.path.join(rep_cata,'cata_syrthes.py'),'python','defaut'),
+ )
+
--- /dev/null
+#!/usr/bin/env python
+"""
+ Ce module sert à lancer EFICAS configuré pour Syrthes
+"""
+# Modules Python
+import sys
+
+# Modules Eficas
+import prefs
+sys.path[:0]=[prefs.INSTALLDIR]
+
+import Editeur
+from Editeur import eficas_go
+
+if len(sys.argv) > 1 :
+ # on veut ouvrir un fichier directement au lancement d'Eficas
+ eficas_go.lance_eficas(code='SYRTHES',fichier = sys.argv[1])
+else:
+ # on veut ouvrir Eficas 'vide'
+ eficas_go.lance_eficas(code='SYRTHES')
+
--- /dev/null
+import os
+
+# REPINI sert à localiser le fichier editeur.ini
+# Obligatoire
+REPINI=os.path.dirname(os.path.abspath(__file__))
+
+# INSTALLDIR sert à localiser l'installation d'Eficas
+# Obligatoire
+INSTALLDIR=os.path.join(REPINI,'..')
+
+# CODE_PATH sert à localiser Noyau et Validation éventuellement
+# non contenus dans la distribution EFICAS
+# Par défaut on utilise les modules de INSTALLDIR
+# Peut valoir None (defaut)
+CODE_PATH = None
+#CODE_PATH = os.path.join(REPINI,'../../Superv')
+
+# ICONDIR sert à localiser le répertoire contenant les icones
+# Par défaut on utilise le répertoire icons dans Editeur
+ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
+
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+
+
--- /dev/null
+version = "6.3.20"
+date = "10/10/2002"
-#@ MODIF __init__ Tools DATE 15/02/2001 AUTEUR YESSAYAN A.YESSAYAN
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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.
+#
+#
# ======================================================================
__all__=['foztools']
--- /dev/null
+"""
+ $Id: __init__.py,v 1.3 2003/02/06 15:11:22 eficas Exp $
+
+ Le package UTILITES contient les fonctions permettant
+ d'instrumenter un script :
+ - MESSAGE (module message)
+ - SCRUTE (module scrute)
+ - PAUSE (module pause)
+"""
+
+
+##__all__ = [ "ici" , "message" , "scrute" , "pause" , "appels" ]
+
+try :
+ from developpeur import *
+except :
+ pass
+from ici import *
+from execute import *
+from pause import *
+from scrute import *
+from message import *
+from appels import *
+from modification import *
+
+
+
+if __name__ == "__main__" :
+ MODIFICATION( "toto" )
+ developpeur.write( dir()+'\n' )
+ developpeur.write( "import du package effectué !" +'\n' )
--- /dev/null
+"""
+Module appels
+-------------
+ le module appels ...
+"""
+
+try :
+ from developpeur import DEVELOPPEUR
+except :
+ DEVELOPPEUR=None
+
+def NULL( *l_args, **d_args ) : pass
+
+if DEVELOPPEUR :
+
+ import developpeur
+ developpeur.sortie.write( "import de "+__name__+" : $Id$" )
+ developpeur.sortie.write( "\n" )
+
+ import sys
+ import re
+ import ici
+ import funcname
+
+
+ def Alonge( chaine , longueur ) :
+ return chaine+' ' # provisoirement on ne complete pas la chaine
+ k=len(chaine)
+ while( k<longueur ) :
+ chaine = chaine + ' '
+ k+=1
+ return chaine
+
+ def APPELS( dec="" ) :
+
+ """
+ Fonction APPELS
+ ---------------
+ La fonction APPELS ...
+ ..
+
+
+ Usage :
+ from appels import APPELS
+ APPELS()
+ """
+
+ ### try :
+ ### 1/0
+ ### except :
+ ### import traceback
+ ### trace=traceback.extract_stack()
+ ### print trace
+
+ nombre_de_blancs=None
+
+ import traceback
+ trace=traceback.extract_stack()
+
+ trace.reverse()
+
+ decalage=dec
+ sys.stderr.flush()
+ sys.stdout.flush()
+
+ developpeur.sortie.write( 3*'\n' )
+ developpeur.sortie.write( decalage )
+ developpeur.sortie.write( "LISTE des appels" )
+ developpeur.sortie.write( '\n' )
+ developpeur.sortie.flush()
+ if len(trace)>2 :
+ decalage += '\t'
+
+ # Recherche du plus long nom de fichier pour la mise en forme
+ lmax=0
+ for e in trace[2:-1] :
+ fic,numero,fonc,inst = e
+ position=fic+":"+str(numero)+":"
+ if len(position)>lmax : lmax=len(position)
+ lmax += 1 # Pour eloigner les informations du nom du fichier
+
+ for e in trace[1:-1] :
+ fic,numero,fonc,inst = e
+ position = chaine=fic+":"+str(numero)+":"
+ position = Alonge( chaine=position , longueur=lmax )
+ developpeur.sortie.write( decalage+position)
+ developpeur.sortie.flush()
+ fname=funcname.FUNCNAME(fic,numero)
+ developpeur.sortie.write( str(fname) )
+ developpeur.sortie.write( ' : ' )
+ developpeur.sortie.write( inst )
+ developpeur.sortie.write( '\n' )
+ developpeur.sortie.flush()
+ decalage += ""
+
+ fic,numero,fonc,inst = trace[-1]
+ position = chaine=fic+":"+str(numero)+":"
+ position = Alonge( chaine=position , longueur=lmax )
+ developpeur.sortie.write( decalage+position)
+ developpeur.sortie.flush()
+ fname="__main__"
+ developpeur.sortie.write( str(fname) )
+ developpeur.sortie.write( ' : ' )
+ developpeur.sortie.write( inst )
+ developpeur.sortie.write( 3*'\n' )
+ developpeur.sortie.flush()
+
+
+ return
+
+else :
+ APPELS = NULL
+
+
+
+if __name__ == "__main__" :
+ TOTO=NULL
+ TOTO( dec="" )
--- /dev/null
+"""
+ Ce module permet de définir la variable DEVELOPPEUR indiquant
+ que l'utilisateur courant fait partie de la liste des développeurs.
+ Ce qui lui donne un accès aux versions actives des fonctions
+ ICI, MESSAGE, SCRUTE, ... définies dans le module Utilites
+ à condition qu'ils utilisent le module sur une station cli*.
+
+ Pour ajouter un nouveau développeur, il faut modifier le dictionaire
+ d_dev ci-dessous
+"""
+
+
+DEVELOPPEUR=None
+
+import os
+def hostname() :
+ return os.uname()[1]
+group_eficas=108
+group_salome=107
+
+
+# Test pour identifier un utilisateur développeur d'Eficas
+groups = os.getgroups()
+test_devel = hostname()[0:3]=="cli" and ( group_eficas in groups or group_salome in groups )
+if test_devel :
+ d_dev = { 10618 : "antoine" , 10621 : "Pascale" , 20132 : "chris" , 10214 : "salome" }
+ if os.getuid() in d_dev.keys() :
+ DEVELOPPEUR=d_dev[ os.getuid() ]
+ import sys
+ sortie=sys.stderr
+ sortie.write( "import de "+__name__+" : $Id$" )
+ sortie.write( "\n" )
+
+
+if __name__ == "__main__" :
+ print DEVELOPPEUR
--- /dev/null
+"""
+Module exec
+-----------
+ le module exec ...
+"""
+
+try :
+ from developpeur import DEVELOPPEUR
+except :
+ DEVELOPPEUR=None
+
+if DEVELOPPEUR :
+
+ import message
+ import scrute
+ import types
+ import developpeur
+ developpeur.sortie.write( "import de "+__name__+" : $Id$" )
+ developpeur.sortie.write( "\n" )
+ developpeur.sortie.flush()
+
+
+ class EXEC :
+
+ def __init__ ( self, texte, contexte=None, verbeux=1 ) :
+
+ assert( type(texte) == types.StringType )
+ if contexte == None :
+ contexte = globals()
+
+ if verbeux :
+ message.MESSAGE( "execution de "+texte )
+ try :
+ exec texte in contexte
+ except Exception,e :
+ if verbeux :
+ import traceback
+ traceback.print_exc()
+ developpeur.sortie.write( "\n\n\n" )
+ message.MESSAGE( "Exception interceptee" )
+ scrute.SCRUTE( texte )
+ scrute.SCRUTE( contexte )
+ scrute.SCRUTE( e.__class__.__name__ )
+ scrute.SCRUTE( str(e) )
+ developpeur.sortie.write( "\n\n\n" )
+ developpeur.sortie.flush()
+ raise
+
+
+else :
+ class EXEC : pass
+
+
+
+
+if __name__ == "__main__" :
+ class Ex(Exception) : pass
+ def toto() :
+ print "toto"
+ raise Ex( "y a bel et bien un erreur" )
+
+ def tutu() :
+ s = "toto()"
+ EXEC( s , verbeux=1)
+
+ try :
+ tutu()
+ except Exception,ee :
+ scrute.SCRUTE(str(ee))
+ scrute.SCRUTE(ee.__class__)
+ pass
--- /dev/null
+import re,types
+import sys
+
+sortie=sys.stderr
+sortie.write( "import de "+__name__+" : $Id$" )
+sortie.write( "\n" )
+
+def get_nombre_de_blancs( str ) :
+ nombre_de_blancs=0
+ if str :
+ nombre_de_blancs=len(re.sub( "[^ ].*$" , "" , str ))
+ return nombre_de_blancs
+
+
+
+def get_classname( filename, lineno ) :
+ """
+ Cette méthode sert à trouver dans quelle classe (le cas échéant)
+ se trouve l'instruction numéro lineno dans le fichier filename.
+ """
+ classname = ""
+ current_func = ""
+ assert(type(filename)==types.StringType)
+ ####print "RECHERCHE de la classe de "+filename+" ligne : ",lineno
+ if lineno>0 :
+ try :
+ f=open( filename , 'r' )
+ except Exception,e :
+ print ">>>>",str(e)
+ sys.stdout.flush()
+ sys.exit(17)
+
+ s = f.read()
+ f.close()
+ l_lines = s.split( '\n' )
+ k=1
+ inst = l_lines[lineno]
+ nb_blancs= get_nombre_de_blancs( inst )
+
+ for line in l_lines :
+ if k == lineno :
+ break
+ elif re.search( "^ *def ", line ) != None :
+ if get_nombre_de_blancs( line ) < nb_blancs :
+ current_func=re.sub( "^ *def *" , "" , line )
+ current_func=re.sub( " *\(.*$" , "" , current_func )
+ elif re.search( "^class ", line ) != None :
+ classname = re.sub( "^class *" , "" , line )
+ classname = re.sub( " *[(:].*$" , "" , classname )
+ current_func = ""
+ elif current_func != "" and re.search( "^[^ \t]", line ) != None :
+ current_func = ""
+ classname = ""
+ k = k+1
+ if current_func == "" : current_func="__main__"
+ return classname ,current_func
+
+
+
+
+class FUNCNAME :
+
+ """
+ Conversion des 3 informations nom de méthode, nom de fichier
+ numéro de ligne en un nom complet de méthode
+ """
+
+ def __init__ ( self , *args ) :
+
+ # le premier argument est optionnel (c'est un nom de fonction
+ # qu'on peut reconstituer avec le nom du fichier et le numéro de ligne.
+ k=0
+ self.name = None
+ if len(args)>2 :
+ if args[k] != "" : self.name = args[k]
+ k = k+1
+
+ assert(args[k]!=None)
+ assert(args[k]!="")
+ self.filename = args[k] # recuperation du nom du fichier source
+
+ k = k+1
+ assert(args[k]>0)
+ self.lineno = args[k] # recupération du numero de ligne
+
+ self.classname,funcname = get_classname( self.filename, self.lineno )
+ if self.name == None : self.name = funcname
+ ###assert(funcname==self.name or self.name=="main" or self.name=="<lambda>" ), "attendue '"+self.name+"' - trouvee '"+funcname+"'"
+
+ def __str__ ( self ) :
+ if self.classname != "" :
+ name=self.classname+"."+self.name
+ else :
+ name=self.name
+ return name
+
+
+if __name__ == "__main__" :
+ print 'FUNCNAME("","funcname.py", 68)='+str(FUNCNAME("","funcname.py", 63) )
+ print 'FUNCNAME("funcname.py", 68)='+str(FUNCNAME("funcname.py", 63) )
--- /dev/null
+"""
+Module ici
+----------
+ le module ici propose la fonction ICI pour afficher
+ le fichier courant et le numéro de la ligne courante.
+"""
+
+try :
+ from developpeur import DEVELOPPEUR
+except :
+ DEVELOPPEUR=None
+
+def NULL( *l_args, **d_args ) : pass
+
+if DEVELOPPEUR :
+
+ import developpeur
+ developpeur.sortie.write( "import de "+__name__+" : $Id$" )
+ developpeur.sortie.write( "\n" )
+
+ import sys
+
+ def ICI(offset=1) :
+
+ """
+ Fonction ICI
+ ------------
+ La fonction ICI affiche sur la stderr, le nom du fichier qui l'appelle,
+ le numéro de la ligne ou elle est appelée et retourne ces deux informations.
+
+ Usage :
+ from ici import ICI
+ ICI()
+ filename,lineno=ICI()
+
+ N.B. : la fonction ICI n'est opérante que pour les développeurs
+ """
+
+ sys.stdout.flush()
+ sys.stderr.flush()
+ try :
+ 1/0
+ except :
+ ###f=sys.exc_info()[2].tb_frame.f_back
+ ###lineno=f.f_lineno
+ ###code=f.f_code
+ ###filename=code.co_filename
+
+ import traceback
+ trace=traceback.extract_stack()
+
+ indice = len(trace)-(2+offset)
+ if indice<0 : indice=0
+
+
+ assert( indice<len(trace) ),"valeur de offset INVALIDE : "+str(offset)+" taille de la table "+len(trace)
+ file_name, lineno, func_name, dummytxt = trace[ indice ]
+
+ assert( (indice>0) or (func_name=="?") )
+ if func_name=="?" : func_name = "main"
+
+ if offset >= 0 :
+ import funcname
+ developpeur.sortie.write( file_name+':'+str(lineno)+': ('+str(funcname.FUNCNAME(func_name,file_name,lineno))+') : ' )
+ developpeur.sortie.flush()
+
+ return file_name,lineno
+
+
+else :
+ ICI = NULL
--- /dev/null
+"""
+Module message
+--------------
+ le module message propose la fonction MESSAGE pour afficher
+ sur la stderr, le texte passé en argument.
+ N.B. : la fonction MESSAGE n'est opérante que pour les développeurs
+ (la variable DEVELOPPEUR doit être définie)
+"""
+
+try :
+ from developpeur import DEVELOPPEUR
+except :
+ DEVELOPPEUR=None
+
+def NULL( *l_args, **d_args ) : pass
+
+if DEVELOPPEUR :
+
+ import developpeur
+ developpeur.sortie.write( "import de "+__name__+" : $Id$" )
+ developpeur.sortie.write( "\n" )
+
+ import sys
+ import ici
+
+ def MESSAGE( text , offset=1 ) :
+
+ """
+ Fonction MESSAGE
+ ----------------
+ La fonction MESSAGE affiche sur la stderr, le texte passé en argument.
+ Elle précise également le nom du fichier et le numéro de la ligne où
+ elle a été appelée.
+
+ Usage :
+ from message import MESSAGE
+
+ MESSAGE("debut du traitement")
+ MESSAGE( "Exception interceptée "+str(e) )
+ """
+
+ ici.ICI( offset )
+ developpeur.sortie.write( str(text)+'\n' )
+ developpeur.sortie.flush()
+ return
+
+
+
+ def DEBUT() :
+
+ """
+ Fonction DEBUT
+ --------------
+ La fonction DEBUT affiche sur la stderr, le texte signalant le début
+ d'un traitement
+
+ Usage :
+ from message import *
+ DEBUT()
+ N.B. : la fonction DEBUT n'est opérante que pour les développeurs
+ """
+
+ developpeur.sortie.write( '\n\n' )
+ MESSAGE("DEBUT du traitement [",offset=2)
+ return
+
+
+
+ def FIN() :
+
+ """
+ Fonction FIN
+ ------------
+ La fonction FIN affiche sur la stderr, le texte signalant la fin
+ d'un traitement
+
+ Usage :
+ from message import *
+ FIN()
+
+ N.B. : la fonction FIN n'est opérante que pour les développeurs
+ """
+
+ MESSAGE("] FIN du traitement",offset=2)
+ return
+
+else :
+ MESSAGE= NULL
+ DEBUT = NULL
+ FIN = NULL
--- /dev/null
+"""
+Module intervention
+-------------------
+ Permet aux développeurs de signer leur intervention à
+ destination des autres développeurs.
+"""
+
+try :
+ from developpeur import DEVELOPPEUR
+except :
+ DEVELOPPEUR=None
+
+def NULL( *l_args, **d_args ) : pass
+
+
+if DEVELOPPEUR :
+
+ import developpeur
+ developpeur.sortie.write( "import de "+__name__+" : $Id$" )
+ developpeur.sortie.write( "\n" )
+ import ici
+
+ def MODIFICATION( text , offset=1 ) :
+
+ """
+ Fonction MODIFICATION
+ ---------------------
+
+ Usage :
+ from utilites import MODIFICATION
+
+ utilites.MODIFICATION("auteur,date et intention")
+ """
+
+ ici.ICI( offset )
+ developpeur.sortie.write( "MODIFICATION "+str(text)+'\n' )
+ developpeur.sortie.flush()
+ return
+
+
+else :
+ MODIFICATION = NULL
+
+
+if __name__ == "__main__" :
+ MODIFICATION( "baratin inutile" )
--- /dev/null
+"""
+Module pause
+------------
+ le module pause propose la fonction PAUSE pour effectuer
+ une attente.
+"""
+try :
+ from developpeur import DEVELOPPEUR
+except :
+ DEVELOPPEUR=None
+
+def NULL( *l_args, **d_args ) : pass
+
+if DEVELOPPEUR :
+
+ import developpeur
+ developpeur.sortie.write( "import de "+__name__+" : $Id$" )
+ developpeur.sortie.write( "\n" )
+
+ import sys
+ import ici
+
+ def PAUSE( secondes ) :
+
+ """
+
+ Fonction PAUSE
+ ----------------
+ La fonction PAUSE permet d'interrompre le traitement pendant un délai
+ passé en argument. La localisation de l'appel est tracée sur la stderr
+
+ Usage :
+ from pause import PAUSE
+
+ PAUSE(secondes=5)
+ """
+
+ if secondes > 0 :
+ developpeur.sortie.write( "\n\n\n" )
+ ici.ICI()
+
+ developpeur.sortie.write( "pause de "+str(secondes)+" secondes" )
+ developpeur.sortie.write( "\n\n\n" )
+ developpeur.sortie.flush()
+
+ import time
+ time.sleep( secondes )
+
+ developpeur.sortie.flush()
+
+ return
+
+else :
+ PAUSE = NULL
+
+
+if __name__ == "__main__" :
+ print
+ print "PAUSE(secondes=-1)"
+ PAUSE(secondes=-1)
+ print "PAUSE(secondes=0)"
+ PAUSE(secondes=0)
+ print "PAUSE(secondes=2)"
+ PAUSE(secondes=2)
--- /dev/null
+"""
+Module scrute
+-------------
+ Le module scrute propose la fonction SCRUTE qui affiche sur
+ la stderr, la valeur de l'objet (passé en argument)
+ précédée le nom de l'objet.
+ Il propose également la fonction EXAMINE qui détaille sur
+ la stderr le contenu d'un objet
+
+ N.B. : les fonctions SCRUTE e EXAMINE ne sont opérantes que pour les développeurs
+ (la variable DEVELOPPEUR doit être définie)
+"""
+
+try :
+ from developpeur import DEVELOPPEUR
+except :
+ DEVELOPPEUR=None
+
+def NULL( *l_args, **d_args ) : pass
+
+if DEVELOPPEUR :
+
+ import developpeur
+ developpeur.sortie.write( "import de "+__name__+" : $Id$" )
+ developpeur.sortie.write( "\n" )
+ import re
+ import linecache
+ import ici
+ import sys
+
+ def SCRUTE( valeur ) :
+
+ """
+ Fonction SCRUTE
+ ---------------
+ La fonction SCRUTE affiche sur la stderr, la valeur (passée en argument)
+ d'une variable précédée de son nom.
+ L'affichage précise également le nom du fichier et le numéro
+ de la ligne où la fonction SCRUTE a été appelée.
+
+ N.B. : le type de la variable doit posséder de préférence une méthode __str__
+
+ Usage :
+ from scrute import SCRUTE
+ r=1.0
+ SCRUTE(r)
+ SCRUTE(r+1)
+ SCRUTE(f(r))
+ Erreur :
+ SCRUTE(r) ; SCRUTE(f(r)) # ==> ERREUR
+ """
+
+
+ filename,lineno=ici.ICI()
+
+ line = linecache.getline( filename, lineno )
+
+ ll=re.sub( "\s*#.*$" , '' ,line)
+
+ l_occurrences=[]
+ l_occurrences=re.findall( "SCRUTE" , ll )
+ assert(len(l_occurrences)>0),__name__+" : pas de SCRUTE trouvé !"
+ assert(len(l_occurrences)<=1),\
+ __name__+" : "+str(len(l_occurrences))+" SCRUTE sur la même ligne ; c'est LIMITE à 1 !"
+
+ ll=re.sub( "\s*;.*$" , '' ,line)
+ regex='^.*SCRUTE[^(]*\('
+ l=re.sub( regex , '' ,ll)
+ regex='\)[^)]*$'
+ nom_objet=re.sub( regex , '' ,l)
+
+ try :
+ developpeur.sortie.write( nom_objet+'=' )
+ s=str(valeur)
+ developpeur.sortie.write( s )
+ developpeur.sortie.write( " ("+str(type(valeur))+")" )
+ except : pass
+ developpeur.sortie.write( '\n' )
+ developpeur.sortie.flush()
+
+ return
+
+ def makeClassName( ob ) :
+ import types
+ if type(ob) == types.InstanceType :
+ return str(ob.__class__)
+ else :
+ return str(type(ob))
+
+
+ def EXAMINE( ob ) :
+ """
+ Affiche sur la developpeur.sortie le contenu d'un objet
+
+ Usage :
+ class KLASS : pass
+ import Utilites
+ object=KLASS()
+ Utilites.EXAMINE(object)
+ """
+
+ appel_EXAMINE=1
+ f = sys._getframe( appel_EXAMINE )
+ context=f.f_locals
+
+ filename,lineno=ici.ICI()
+ line = linecache.getline( filename, lineno )
+ nom=re.sub( "^.*EXAMINE *\(", "" , line )
+ nom=re.sub( " *[,\)].*$", "" , nom )
+ nom=re.sub( "\n", "" , nom )
+ developpeur.sortie.write( "Examen de "+nom+" de type "+makeClassName(ob)+"\n" )
+
+ for att in dir(ob) :
+ st=nom+'.'+att
+ developpeur.sortie.write( '\t'+st+' = ' )
+ developpeur.sortie.flush()
+ commande="import developpeur;developpeur.sortie.write( str("+st+")+'\\n' )"
+ try :
+ exec commande in context
+ except :
+ commande="import sys; sys.stderr.write( str("+st+")+'\\n' )"
+ exec commande in context
+
+ return
+
+
+else :
+
+ SCRUTE = NULL
+ EXAMINE = NULL
"""
"""
- def valid_child(self):
- """ Cette methode teste la validite des mots cles de l'etape """
- for child in self.mc_liste :
- if not child.isvalid():
- return 0
- return 1
-
- def valid_regles(self,cr):
- """ Cette methode teste la validite des regles de l'etape """
- text_erreurs,test_regles = self.verif_regles()
- if not test_regles :
- if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs)))
- return 0
- return 1
-
- def valid_sdnom(self,cr):
- """ Cette methode teste la validite du nom du concept produit par l'etape """
- valid=1
- if self.sd.nom != None :
- if self.jdc and self.jdc.definition.code == 'ASTER' and len(self.sd.nom) > 8 :
- # le nom de la sd doit avoir une longueur <= 8 caractères pour ASTER
- if cr == 'oui' :
- self.cr.fatal("Le nom de concept %s est trop long (8 caractères maxi)" %self.sd.nom)
- valid = 0
- if string.find(self.sd.nom,'sansnom') != -1 :
- # la SD est 'sansnom' : --> erreur
- if cr == 'oui' :
- self.cr.fatal("Pas de nom pour le concept retourné")
- valid = 0
- elif string.find(self.sd.nom,'SD_') != -1 :
- # la SD est 'SD_' cad son nom = son id donc pas de nom donné par utilisateur : --> erreur
- if cr == 'oui' :
- self.cr.fatal("Pas de nom pour le concept retourné")
- valid = 0
- return valid
-
- def get_valid(self):
- if hasattr(self,'valid'):
- return self.valid
- else:
- self.valid=None
- return None
-
- def set_valid(self,valid):
- old_valid=self.get_valid()
- self.valid = valid
- self.state = 'unchanged'
- if not old_valid or old_valid != self.valid :
- self.init_modif_up()
-
def isvalid(self,sd='oui',cr='non'):
"""
Methode pour verifier la validité de l'objet ETAPE. Cette méthode
if self.state == 'unchanged' :
return self.valid
else:
- valid=self.valid_child()
- valid=valid * self.valid_regles(cr)
-
+ valid = 1
+ # on teste les enfants
+ for child in self.mc_liste :
+ if not child.isvalid():
+ valid = 0
+ break
+ # on teste les règles de self
+ text_erreurs,test_regles = self.verif_regles()
+ if not test_regles :
+ if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs)))
+ valid = 0
if self.reste_val != {}:
if cr == 'oui' :
self.cr.fatal("Mots cles inconnus :" + string.join(self.reste_val.keys(),','))
valid=0
-
if sd == "non":
# Dans ce cas, on ne teste qu'une validité partielle (sans tests sur le concept produit)
# Conséquence : on ne change pas l'état ni l'attribut valid, on retourne simplement
# l'indicateur de validité valid
return valid
-
- if self.definition.reentrant == 'n' and self.reuse:
- # Il ne peut y avoir de concept reutilise avec un OPER non reentrant
- if cr == 'oui' : self.cr.fatal('Operateur non reentrant : ne pas utiliser reuse ')
- valid=0
+ #
+ # On complète les tests avec ceux sur le concept produit
+ #
+ if hasattr(self,'valid'):
+ old_valid = self.valid
+ else:
+ old_valid = None
if self.sd == None:
# Le concept produit n'existe pas => erreur
if cr == 'oui' : self.cr.fatal("Concept retourné non défini")
valid = 0
else:
- valid = valid * self.valid_sdnom(cr)
-
+ # on teste, si elle existe, le nom de la sd (sa longueur doit etre <= 8 caractères)
+ # la SD existe déjà : on regarde son nom
+ if self.sd.nom != None :
+ if len(self.sd.nom) > 8 and self.jdc.definition.code == 'ASTER' :
+ if cr == 'oui' :
+ self.cr.fatal("Le nom de concept %s est trop long (8 caractères maxi)" %self.sd.nom)
+ valid = 0
+ if string.find(self.sd.nom,'sansnom') != -1 :
+ # la SD est 'sansnom' : --> erreur
+ if cr == 'oui' :
+ self.cr.fatal("Pas de nom pour le concept retourné")
+ valid = 0
+ elif string.find(self.sd.nom,'SD_') != -1 :
+ # la SD est 'SD_' cad son nom = son id donc pas de nom donné par utilisateur : --> erreur
+ if cr == 'oui' :
+ self.cr.fatal("Pas de nom pour le concept retourné")
+ valid = 0
if valid:
valid = self.update_sdprod(cr)
-
- self.set_valid(valid)
-
+ self.valid = valid
+ self.state = 'unchanged'
+ if old_valid:
+ if old_valid != self.valid : self.init_modif_up()
return self.valid
def update_sdprod(self,cr='non'):
if self.definition.reentrant == 'o':
if cr == 'oui' : self.cr.fatal('Commande obligatoirement reentrante : specifier reuse=concept')
valid=0
+ #self.reuse = self.sd
return valid
if self.state == 'unchanged' :
return self.valid
else:
- valid=self.valid_child()
- valid=valid * self.valid_regles(cr)
-
+ valid = 1
+ # on teste les mots cles de la commande
+ for child in self.mc_liste :
+ if not child.isvalid():
+ valid = 0
+ break
+ # on teste les règles de la commande
+ text_erreurs,test_regles = self.verif_regles()
+ if not test_regles :
+ if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs)))
+ valid = 0
if self.reste_val != {}:
if cr == 'oui' :
self.cr.fatal("Mots cles inconnus :" + string.join(self.reste_val.keys(),','))
valid=0
-
if sd == "non":
# Dans ce cas, on ne calcule qu'une validite partielle, on ne modifie pas l'état de self
# on retourne simplement l'indicateur valid
return valid
-
+ if hasattr(self,'valid'):
+ old_valid = self.valid
+ else:
+ old_valid = None
+ # on teste, si elle existe, le nom de la sd (sa longueur doit etre <= 8 caractères)
if self.sd != None :
- valid = valid * self.valid_sdnom(cr)
-
- if self.definition.reentrant == 'n' and self.reuse:
- # Il ne peut y avoir de concept reutilise avec une MACRO non reentrante
- if cr == 'oui' : self.cr.fatal('Macro-commande non reentrante : ne pas utiliser reuse ')
- valid=0
-
+ # la SD existe déjà : on regarde son nom
+ if self.sd.get_name() != None :
+ if len(self.sd.nom) > 8 :
+ if cr == 'oui' :
+ self.cr.fatal("Le nom de concept %s est trop long (8 caractères maxi)" %self.sd.nom)
+ valid = 0
+ if string.find(self.sd.nom,'sansnom') != -1 :
+ # la SD est 'sansnom' : --> erreur
+ if cr == 'oui' :
+ self.cr.fatal("Pas de nom pour le concept retourné")
+ valid = 0
+ elif string.find(self.sd.nom,'SD_') != -1 :
+ # la SD est 'SD_' cad son nom = son id donc pas de nom donné par utilisateur : --> erreur
+ if cr == 'oui' :
+ self.cr.fatal("Pas de nom pour le concept retourné")
+ valid = 0
if valid:
valid = self.update_sdprod(cr)
-
# Si la macro comprend des etapes internes, on teste leur validite
for e in self.etapes:
if not e.isvalid():
valid=0
break
-
- self.set_valid(valid)
-
+ self.valid = valid
+ self.state = 'unchanged'
+ if old_valid:
+ if old_valid != self.valid : self.init_modif_up()
return self.valid
def update_sdprod(self,cr='non'):
if self.definition.reentrant == 'o':
if cr == 'oui' : self.cr.fatal('Commande obligatoirement reentrante : specifier reuse=concept')
valid=0
+ #self.reuse = self.sd
return valid
def report(self):
-#@ MODIF V_MCSIMP Validation DATE 09/09/2003 AUTEUR DURAND C.DURAND
+#@ MODIF V_MCSIMP Validation DATE 20/01/2003 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
self.cr.fatal(string.join(("Mot-clé : ",self.nom," obligatoire non valorisé")))
valid = 0
# type,into ...
- valid = self.verif_type(val=v,cr=cr)*self.verif_into(cr=cr)*self.verif_card(cr=cr)
- #
- # On verifie les validateurs s'il y en a
- #
- if self.definition.validators and not self.definition.validators.verif(self.valeur):
- if cr == 'oui' :
- self.cr.fatal(string.join(("Mot-clé : ",self.nom,"devrait avoir ",self.definition.validators.info())))
- valid=0
- # fin des validateurs
- #
+ valid = self.verif_type(cr=cr)*self.verif_into(cr=cr)*self.verif_card(cr=cr)
self.valid = valid
self.state = 'unchanged'
# Si la validité du mot clé a changé, on le signale à l'objet parent
- if not old_valid or old_valid != self.valid :
- self.init_modif_up()
+ if old_valid:
+ if old_valid != self.valid : self.init_modif_up()
return self.valid
def isoblig(self):
def verif_type(self,val=None,cr='non'):
"""
FONCTION :
- Cette methode verifie que le type de l'argument val est en conformite avec celui
- qui est declare dans la definition du mot cle simple.
- Elle a plusieurs modes de fonctionnement liés à la valeur de cr.
- Si cr vaut 'oui' : elle remplit le compte-rendu self.cr sinon elle ne le remplit pas.
+ Cette méthode a plusieurs modes de fonctionnement liés à la valeur de val et de cr.
+ Si cr ne vaut pas 'oui' : elle ne remplit pas le compte-rendu self.cr
+ Si val vaut None, elle vérifie le type de self.valeur
+ Si val ne vaut pas None, elle vérifie le type de val
PARAMETRE DE RETOUR :
- Cette méthode retourne une valeur booléenne qui vaut 1 si le type de val est correct ou 0 sinon
+ Cette méthode retourne une valeur booléenne qui vaut 1 si le type est correct ou 0 sinon
"""
- valeur = val
+ if val != None:
+ valeur = val
+ else:
+ valeur = self.valeur
if valeur == None :
if cr == 'oui':
self.cr.fatal("None n'est pas une valeur autorisée")
+# 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.
+#
+#
+# ======================================================================
+
#!/bin/env python -d
#!/tools/net/app/Python-1.5.2/bin/python1.5
+# 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.
+#
+#
+# ======================================================================
+
try:
import mx.TextTools
import sys
-#@ MODIF conv Parsers DATE 17/10/2001 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 sys,string
-import TextTools
+try :
+ import TextTools
+except :
+ ""
from tables import ERRORS
#
-__version__="$Name: V1_1p1 $"
-__Id__="$Id: conv.py,v 1.1.1.1 2001/12/04 15:38:23 eficas Exp $"
+__version__="$Name: $"
+__Id__="$Id: conv.py,v 1.2 2003/07/01 10:26:14 salome Exp $"
#
Keywords=('MAILLE_1','MAILLE_2','MAILLE_ESCL','MAILLE_FOND','MAILLE_MAIT','MAILLE_ORIG','MAILLE',
def conver(text):
from tables import aster_script
import re
+ # On ajoute un '\n' en fin au cas ou il serait absent
+ text=text+'\n'
text=string.upper(text)
result, taglist, next = TextTools.tag(text,aster_script)
# Pour vérifier les résultats intermédiaires décommenter la ligne suivante
-#@ MODIF tables Parsers DATE 15/02/2001 AUTEUR YESSAYAN A.YESSAYAN
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
"""
Ce fichier définit une table de tags à utiliser avec le package
mxTextTools pour décoder un fichier au format Asterv5.
XXX Ce fichier doit etre corrigé pour incorporer deux modifications
réalisées dans la version V1_1p1 d'EFICAS
"""
-from TextTools import *
+try :
+ from TextTools import *
+except :
+ ""
#
__version__="$Name: $"
-__Id__="$Id: tables.tag,v 1.11.18.1 2001/06/15 17:20:24 iliade Exp $"
+__Id__="$Id: tables.py,v 1.2 2003/07/01 10:26:14 salome Exp $"
#
err0='ERR0 , erreur non identifiee : '
err8='ERR8 , signe = ou ( attendu : '
err9='ERR9 , ( attendue : '
err10='ERR10 , vexpr attendue : '
+err11='ERR11 , ) attendue : '
ERRORS=(err0,err1,err2,err3,err4,err5,err6,err7,err8,err9,
- err10)
-
-white_set=set(whitespace)
-
-delim=" ();:=,!&*/%\n"
-
-whitespace = \
- (None,AllIn,' \t')
-
-opt_whitespace = \
- whitespace + (MatchOk,)
-
-t_opt_whitespace = \
- whitespace + (+1,)
-
-t_opt_whitenl = \
- (None,AllIn,' \t\n\r',+1)
-
-t_err = (
- (None,AllNotIn,';',+1),
- (None,Is,';'),
- (None,Skip,-1),
-)
-
-commespaces = \
- ('comments',Table,(
- (None,IsInSet,white_set,+1,+4),
- (None,Is,'%',MatchFail),
- # <comment>
- (None,AllNotIn,'\n\r',+1),
- (None,AllIn,'\n\r',+1),
- # <blancs>
- (None,AllInSet,white_set,+1),
- (None,Is,'%',MatchOk,-3),
- ))
-
-t_commespaces = (
- (None,IsInSet,white_set,+1,+4),
- (None,Is,'%',MatchFail),
- # <comment>
- (None,AllNotIn,'\n\r',+1),
- (None,AllIn,'\n\r',+1),
- # <blancs>
- (None,AllInSet,white_set,+1),
- (None,Is,'%',MatchOk,-3),
-)
-
-x_commespaces = \
- ('comments',Table,(
- # <debut>
- (None,Is,'%',+3,+1),
- (None,AllNotIn,'\n\r',+1),
- (None,AllIn,'\n\r',+1,-2),
- (None,AllInSet,white_set,+1,-3),
- ))
-
-t_ident = \
- ('ident',Table,(
- (None,IsIn,alpha+'_'),
- (None,AllIn,alpha+'_'+number,MatchOk),
- ))
-
-t_identificateur = (
- (None,IsIn,alpha+'_'),
- (None,AllIn,alpha+'_'+number,MatchOk),
-)
-
-t_identmc = (
- (None,IsIn,alpha+'_'),
- (None,AllIn,alpha+'_'+number,+1),
- (None,Table,t_commespaces,+1),
- (None,Is,':',MatchFail),
-)
-
-n_ident = \
- (None,Table,(
- (None,IsIn,alpha+'_'),
- (None,AllIn,alpha+'_'+number,MatchOk),
- ))
-
-n_string = \
- (None,Table,(
- (None,Is,"'"),
- # <loop>
- (None,AllNotIn,"'",+1),
- (None,Word,"''",+1,-1),
- (None,Is,"'",MatchFail,MatchOk),
- ))
-
-t_number = \
- ('num',Table,(
- (None,IsIn,'-+',+1),
- (None,Is,'.',+2),
- (None,IsIn,number,MatchFail,+4),
- # <entiere>
- (None,IsIn,number,MatchFail),
- (None,AllIn,number,+1),
- (None,Is,'.',+2),
- # <decimal>
- (None,AllIn,number,+1),
- # <exposant> # si pas exposant termine number trouve
- (None,IsIn,'deDE',MatchOk),
- (None,IsIn,'-+',+1),
- (None,AllIn,number,MatchFail,MatchOk),
- ))
-
-n_number = \
- (None,Table,(
- (None,IsIn,'-+',+1),
- (None,Is,'.',+2),
- (None,IsIn,number,MatchFail,+4),
- # <entiere>
- (None,IsIn,number,MatchFail),
- (None,AllIn,number,+1),
- (None,Is,'.',+2),
- # <decimal>
- (None,AllIn,number,+1),
- # <exposant> # si pas exposant termine number trouve
- (None,IsIn,'deDE',MatchOk),
- (None,IsIn,'-+',+1),
- (None,AllIn,number,MatchFail,MatchOk),
- ))
-
-t_complexe = \
- ('CPLX',Table,(
- ("RI",Word,'RI',+7),
- commespaces + (+1,),
- t_number + (MatchFail,), # ce n est pas un complexe
- commespaces + (+1,), # a partir d ici c est un complexe => produire erreurs
- (None,Is,',',+1),
- commespaces + (+1,),
- t_number + (MatchFail,MatchOk),
- # <mp>
- ("MP",Word,'MP',MatchFail),
- commespaces + (+1,),
- t_number + (MatchFail,), # ce n est pas un complexe
- commespaces + (+1,), # a partir d ici c est un complexe => produire erreurs
- (None,Is,',',+1),
- commespaces + (+1,),
- t_number + (MatchFail,MatchOk),
- # <err>
- (err7,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_vexpr = (
- ('par',Is,'(',+5,+1),
- commespaces + (+1,),
- ('vexpr',Table,ThisTable,+26),
- commespaces + (+1,),
- ('par2',Is,')',+25,+15),
- t_number + (+1,+14),
- t_complexe + (+1,+13),
- ('sign',IsIn,'+-',+3,+1),
- commespaces + (+1,),
- ('vexpr',Table,ThisTable,+19,+10),
- ("PI",Word,'PI',+1,+9),
- t_ident + (MatchFail,),
- commespaces + (+1,),
- ('listpar',Is,'(',+6,+1), # on peut avoir une liste de parametres
- # <params>
- commespaces + (+1,),
- ('param',Table,ThisTable,+13),
- commespaces + (+1,),
- (None,Is,',',+1,-3),
- ('finlist',Is,')',+11),
- # <op>
- commespaces + (+1,),
- ('exp',Word,'**',+3,+1),
- commespaces + (+1,),
- ('vexpr',Table,ThisTable,+6,MatchOk),
- ('op',IsIn,'+-*/',+3,+1),
- commespaces + (+1,),
- ('vexpr',Table,ThisTable,+3,MatchOk),
- (None,Jump,To,MatchOk),
- # <err>
- (err0,Table,t_err,MatchFail,MatchOk),
- # <err10>
- (err10,Table,t_err,MatchFail,MatchOk),
- # <err9>
- (err9,Table,t_err,MatchFail,MatchOk),
-)
-
-t_liste_param = \
- ('liste',Table,(
- t_ident,
- commespaces + (+1,),
- (None,Is,'('),
- commespaces + (+1,),
- t_vexpr + (MatchFail,),
- # <suite>
- commespaces + (+1,),
- (None,Is,',',+3),
- commespaces + (+1,),
- t_vexpr + (+3,-3),
- # <fin>
- commespaces + (+1,),
- (None,Is,')',+1,MatchOk),
- # <err>
- (err7,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_eval_expr = \
- ('EVAL',Table,(
- (None,Word,'EVAL'),
- commespaces + (+1,),
- (None,Is,'(',+5),
- commespaces + (+1,),
- ('vexpr',Table,t_vexpr,+3),
- commespaces + (+1,),
- (None,Is,')',+1,MatchOk),
- # <err>
- (err7,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_entier = \
- ('entier',Table,(
- (None,IsIn,number),
- (None,AllIn,number,+1),
- (None,IsIn,delim,MatchFail,+1),
- (None,Skip,-1),
- ))
-
-t_comment = \
- ('comment',Table,(
- (None,Is,'%'),
- (None,AllNotIn,'\n\r',+1),
- (None,AllIn,'\n\r',MatchOk),
- ))
-
-t_nullline = \
- ('Null',AllIn,' ;\t\n\r')
-
-t_passline = \
- ('passline',Table,(
- (None,AllNotIn,newline,+1),
- (None,IsIn,newline),
- ))
-
-t_reste = \
- ('reste',Table,(
- (None,AllNotIn,';',+1),
- ))
-
-t_rest2 = \
- ('reste',Table,(
- (None,AllNotIn,';',+1),
- (None,Is,';'),
- (None,AllNotIn,'\n',+1),
- (None,Is,'\n',MatchOk,MatchOk),
- ))
-
-t_formule = \
- ('formule',Table,(
- commespaces + (+1,),
- (None,Word,'!FORMULE'),
- commespaces + (+1,),
- (None,Is,'(',+32),
- commespaces + (+1,),
- ('type',Table,t_identificateur,+29),
- commespaces + (+1,),
- (None,Is,':',+27),
- commespaces + (+1,),
- (None,Is,'(',+26),
- commespaces + (+1,),
- ('id',Table,t_identificateur,+23),
- commespaces + (+1,),
- (None,Is,'(',+22),
- # <params>
- commespaces + (+1,),
- ('typ',Table,t_identmc,+1),
- commespaces + (+1,),
- ('id',Table,t_identificateur,+17),
- commespaces + (+1,),
- (None,Is,',',+1,-5),
- commespaces + (+1,),
- (None,Is,')',-7),
- commespaces + (+1,),
- (None,Is,'=',+11),
- commespaces + (+1,),
- ('vexpr',Table,t_vexpr,+9),
- commespaces + (+1,),
- (None,Is,')',+8),
- commespaces + (+1,),
- (None,Is,')',+6),
- commespaces + (+1,),
- (None,Is,';',+3),
- (None,AllNotIn,'\n',+1),
- (None,Is,'\n',MatchOk,MatchOk),
- # <err>
- (err0,Table,t_err,MatchFail,MatchOk),
- # <err9>
- (err9,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_nom_ope = \
- ('nom_ope',Table,(
- (None,Word,'EVAL',+1,MatchFail), # EVAL n est pas un nom d operateur, il est reserve
- (None,IsIn,alpha+'_'),
- (None,AllIn,alpha+'_'+number,+1),
- commespaces + (+1,),
- (None,Is,'(',MatchFail),
- (None,Skip,-1),
- ))
-
-t_arg = \
- ('arg',Table,(
- n_string + (+1,MatchOk),
- n_ident,
- ))
-
-t_larg = \
- ('larg',Table,(
- (None,Is,'(',MatchFail),
- # <arg>
- commespaces + (+1,),
- t_complexe + (+1,+4),
- t_number + (+1,+3),
- t_eval_expr + (+1,+2),
- t_arg + (MatchFail,+1),
- # <suite>
- commespaces + (+1,),
- (None,Is,',',+1),
- (None,Is,')',-7,MatchOk),
- ))
-
-t_mcf = \
- ('mcf',Table,(
- (None,Is,'(',MatchFail),
- ("comments",Table,t_commespaces,+1),
- (None,Is,')',+1,MatchOk),
- t_ident + (MatchFail,),
- ("comments",Table,t_commespaces,+1),
- (None,Is,':',MatchFail), # a partir d ici on est dans un mot cle facteur (erreurs eventuelles)
- # <args>
- ("comments",Table,t_commespaces,+1),
- t_larg + (+1,+5),
- t_complexe + (+1,+4),
- t_number + (+1,+3),
- t_eval_expr + (+1,+2),
- t_arg + (+8,),
- # <suite>
- ("comments",Table,t_commespaces,+1),
- (None,Is,',',+1),
- ("comments",Table,t_commespaces,+1),
- (None,Is,')',+1,MatchOk),
- t_ident + (+3,),
- ("comments",Table,t_commespaces,+1),
- (None,Is,':',+1,-12),
- # <err>
- (err7,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_comm = \
- ('comm',Table,( # on attend les arguments entre () sinon erreur
- (None,Is,'(',+21),
- commespaces + (+1,),
- (None,Is,')',+1,MatchOk),
- # <call>
- t_ident + (+18,),
- commespaces + (+1,),
- (None,Is,':',+16),
- commespaces + (+1,),
- t_mcf + (+5,),
- # <mcfsuite>
- commespaces + (+1,),
- (None,Is,',',+1),
- commespaces + (+1,),
- t_mcf + (+7,-3),
- # <args>
- t_larg + (+1,+5),
- t_complexe + (+1,+4),
- t_number + (+1,+3),
- t_eval_expr + (+1,+2),
- t_arg + (+5,),
- # <suite>
- commespaces + (+1,),
- # <sep>
- (None,Is,',',+1),
- commespaces + (+1,),
- (None,Is,')',-17,MatchOk),
- # <err>
- (err1,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_affe = \
- ('affe',Table,(
- commespaces + (+1,),
- t_larg + (+1,+6),
- t_complexe + (+1,+5),
- t_number + (+1,+4),
- t_eval_expr + (+1,+3),
- t_arg + (+1,+2),
- (None,Jump,To,+2),
- # <suite>
- (None,Jump,To,MatchOk),
- # <err>
- (err0,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_reuse = \
- ('reuse',Table,(
- t_opt_whitespace,
- t_ident,
- t_opt_whitespace,
- (None,Is,'=',+5),
- t_opt_whitespace,
- t_nom_ope + (+2,+1),
- # <comm>
- t_comm + (MatchFail,MatchOk),
- # <affe>
- t_affe + (MatchFail,MatchOk),
- # <err>
- (err8,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_noreuse = \
- ('noreuse',Table,(
- t_opt_whitespace,
- t_ident,
- t_opt_whitenl,
- (None,Is,'=',+3,+1), # on a affaire a un operateur ou une affectation
- t_opt_whitespace,
- t_nom_ope + (+4,+3),
- (None,Is,'(',+5,+1),
- (None,Skip,-1),
- # <comm>
- t_comm + (+2,MatchOk),
- # <affe>
- t_affe + (+1,MatchOk),
- # <err>
- (err0,Table,t_err,MatchFail,MatchOk),
- # <err8>
- (err8,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_fin = \
- ('commande',Table,(
- ('noreuse',Table,(
- t_opt_whitespace,
- ('ident',Word,"FIN"),
- t_opt_whitenl,
- (None,Is,'(',MatchFail), # On est vraiment sur d avoir la commande FIN apres avoir identifie (
- # On recule d un caractere pour identifier les arguments entre parenthèses
- (None,Skip,-1),
- t_comm + (+1,MatchOk),
- (err0,Table,t_err,MatchFail,MatchOk),
- )),
- commespaces + (+1,),
- (None,Is,';',+1,MatchOk),
- # <err>
- (err0,Table,t_err,MatchFail,MatchOk),
- ))
-
-t_commande = \
- ('commande',Table,(
- t_opt_whitespace,
- (None,Is,'&',+2,+1),
- t_reuse + (MatchFail,+2),
- t_noreuse + (MatchFail,),
- # <fin>
- commespaces + (+1,),
- (None,Is,';',+1,MatchOk),
- # <err>
- (err0,Table,t_err,MatchFail,MatchOk),
- ))
-
-aster_script = (
- # <top>
- t_nullline + (+1,+0),
- t_comment + (+1,-1),
- t_formule + (+1,-2),
- t_fin + (+1,+4),
- t_commande + (+1,-4),
- t_passline + (+1,-5),
- (None,EOF,Here,-6),
- # <AfterFin>
- t_nullline + (+1,+0),
- t_passline + (+1,-1),
- (None,EOF,Here,-2),
-)
-
-
-
+ err10,err11)
+
+try :
+ delim=" ();:=,!&*/%\n"
+
+ whitespace = \
+ (None,AllIn,' \t')
+
+ opt_whitespace = \
+ whitespace + (MatchOk,)
+
+ t_opt_whitespace = \
+ whitespace + (+1,)
+
+ t_opt_whitenl = \
+ (None,AllIn,' \t\n\r',+1)
+
+ t_err = (
+ (None,AllNotIn,';',+1),
+ (None,Is,';'),
+ (None,Skip,-1),
+ )
+
+ commespaces = \
+ ('comments',Table,(
+ (None,IsInSet,white_set,+1,+4),
+ (None,Is,'%',MatchFail),
+ # <comment>
+ (None,AllNotIn,'\n\r',+1),
+ (None,AllIn,'\n\r',+1),
+ # <blancs>
+ (None,AllInSet,white_set,+1),
+ (None,Is,'%',MatchOk,-3),
+ ))
+
+ t_commespaces = (
+ (None,IsInSet,white_set,+1,+4),
+ (None,Is,'%',MatchFail),
+ # <comment>
+ (None,AllNotIn,'\n\r',+1),
+ (None,AllIn,'\n\r',+1),
+ # <blancs>
+ (None,AllInSet,white_set,+1),
+ (None,Is,'%',MatchOk,-3),
+ )
+
+ x_commespaces = \
+ ('comments',Table,(
+ # <debut>
+ (None,Is,'%',+3,+1),
+ (None,AllNotIn,'\n\r',+1),
+ (None,AllIn,'\n\r',+1,-2),
+ (None,AllInSet,white_set,+1,-3),
+ ))
+
+ t_ident = \
+ ('ident',Table,(
+ (None,IsIn,alpha+'_'),
+ (None,AllIn,alpha+'_'+number,MatchOk),
+ ))
+
+ t_identificateur = (
+ (None,IsIn,alpha+'_'),
+ (None,AllIn,alpha+'_'+number,MatchOk),
+ )
+
+ t_identmc = (
+ (None,IsIn,alpha+'_'),
+ (None,AllIn,alpha+'_'+number,+1),
+ (None,Table,t_commespaces,+1),
+ (None,Is,':',MatchFail),
+ )
+
+ n_ident = \
+ (None,Table,(
+ (None,IsIn,alpha+'_'),
+ (None,AllIn,alpha+'_'+number,MatchOk),
+ ))
+
+ n_string = \
+ (None,Table,(
+ (None,Is,"'"),
+ # <loop>
+ (None,AllNotIn,"'",+1),
+ (None,Word,"''",+1,-1),
+ (None,Is,"'",MatchFail,MatchOk),
+ ))
+
+ t_number = \
+ ('num',Table,(
+ (None,IsIn,'-+',+1),
+ (None,Is,'.',+2),
+ (None,IsIn,number,MatchFail,+4),
+ # <entiere>
+ (None,IsIn,number,MatchFail),
+ (None,AllIn,number,+1),
+ (None,Is,'.',+2),
+ # <decimal>
+ (None,AllIn,number,+1),
+ # <exposant> # si pas exposant termine number trouve
+ (None,IsIn,'deDE',MatchOk),
+ (None,IsIn,'-+',+1),
+ (None,AllIn,number,MatchFail,MatchOk),
+ ))
+
+ n_number = \
+ (None,Table,(
+ (None,IsIn,'-+',+1),
+ (None,Is,'.',+2),
+ (None,IsIn,number,MatchFail,+4),
+ # <entiere>
+ (None,IsIn,number,MatchFail),
+ (None,AllIn,number,+1),
+ (None,Is,'.',+2),
+ # <decimal>
+ (None,AllIn,number,+1),
+ # <exposant> # si pas exposant termine number trouve
+ (None,IsIn,'deDE',MatchOk),
+ (None,IsIn,'-+',+1),
+ (None,AllIn,number,MatchFail,MatchOk),
+ ))
+
+ t_complexe = \
+ ('CPLX',Table,(
+ ("RI",Word,'RI',+7),
+ commespaces + (+1,),
+ t_number + (MatchFail,), # ce n est pas un complexe
+ commespaces + (+1,), # a partir d ici c est un complexe => produire erreurs
+ (None,Is,',',+1),
+ commespaces + (+1,),
+ t_number + (MatchFail,MatchOk),
+ # <mp>
+ ("MP",Word,'MP',MatchFail),
+ commespaces + (+1,),
+ t_number + (MatchFail,), # ce n est pas un complexe
+ commespaces + (+1,), # a partir d ici c est un complexe => produire erreurs
+ (None,Is,',',+1),
+ commespaces + (+1,),
+ t_number + (MatchFail,MatchOk),
+ # <err>
+ (err7,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ # Table pour identifier le keyword PI
+
+ t_PI = \
+ ('PI',Table,(
+ (None,Word,'PI',MatchFail),
+ (None,IsIn,alpha+'_'+number,MatchOk,+1),
+ (None,Skip,-1),
+ (None,Jump,To,MatchFail),
+ ))
+
+ t_vexpr = (
+ ('par',Is,'(',+5,+1),
+ commespaces + (+1,),
+ ('vexpr',Table,ThisTable,+26),
+ commespaces + (+1,),
+ ('par2',Is,')',+25,+15),
+ t_number + (+1,+14),
+ t_complexe + (+1,+13),
+ ('sign',IsIn,'+-',+3,+1),
+ commespaces + (+1,),
+ ('vexpr',Table,ThisTable,+19,+10),
+ t_PI + (+1,+9),
+ t_ident + (MatchFail,),
+ commespaces + (+1,),
+ ('listpar',Is,'(',+6,+1), # on peut avoir une liste de parametres
+ # <params>
+ commespaces + (+1,),
+ ('param',Table,ThisTable,+13),
+ commespaces + (+1,),
+ (None,Is,',',+1,-3),
+ ('finlist',Is,')',+11),
+ # <op>
+ commespaces + (+1,),
+ ('exp',Word,'**',+3,+1),
+ commespaces + (+1,),
+ ('vexpr',Table,ThisTable,+6,MatchOk),
+ ('op',IsIn,'+-*/',+3,+1),
+ commespaces + (+1,),
+ ('vexpr',Table,ThisTable,+3,MatchOk),
+ (None,Jump,To,MatchOk),
+ # <err>
+ (err0,Table,t_err,MatchFail,MatchOk),
+ # <err10>
+ (err10,Table,t_err,MatchFail,MatchOk),
+ # <err9>
+ (err9,Table,t_err,MatchFail,MatchOk),
+ )
+
+ t_liste_param = \
+ ('liste',Table,(
+ t_ident,
+ commespaces + (+1,),
+ (None,Is,'('),
+ commespaces + (+1,),
+ t_vexpr + (MatchFail,),
+ # <suite>
+ commespaces + (+1,),
+ (None,Is,',',+3),
+ commespaces + (+1,),
+ t_vexpr + (+3,-3),
+ # <fin>
+ commespaces + (+1,),
+ (None,Is,')',+1,MatchOk),
+ # <err>
+ (err7,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_eval_expr = \
+ ('EVAL',Table,(
+ (None,Word,'EVAL'),
+ commespaces + (+1,),
+ (None,Is,'(',+5),
+ commespaces + (+1,),
+ ('vexpr',Table,t_vexpr,+3),
+ commespaces + (+1,),
+ (None,Is,')',+1,MatchOk),
+ # <err>
+ (err7,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_entier = \
+ ('entier',Table,(
+ (None,IsIn,number),
+ (None,AllIn,number,+1),
+ (None,IsIn,delim,MatchFail,+1),
+ (None,Skip,-1),
+ ))
+
+ t_comment = \
+ ('comment',Table,(
+ (None,Is,'%'),
+ (None,AllNotIn,'\n\r',+1),
+ (None,AllIn,'\n\r',MatchOk),
+ ))
+
+ t_nullline = \
+ ('Null',AllIn,' ;\t\n\r')
+
+ t_passline = \
+ ('passline',Table,(
+ (None,AllNotIn,newline,+1),
+ (None,IsIn,newline),
+ ))
+
+ t_reste = \
+ ('reste',Table,(
+ (None,AllNotIn,';',+1),
+ ))
+
+ t_rest2 = \
+ ('reste',Table,(
+ (None,AllNotIn,';',+1),
+ (None,Is,';'),
+ (None,AllNotIn,'\n',+1),
+ (None,Is,'\n',MatchOk,MatchOk),
+ ))
+
+ t_formule = \
+ ('formule',Table,(
+ commespaces + (+1,),
+ (None,Word,'!FORMULE'),
+ commespaces + (+1,),
+ (None,Is,'(',+32),
+ commespaces + (+1,),
+ ('type',Table,t_identificateur,+29),
+ commespaces + (+1,),
+ (None,Is,':',+27),
+ commespaces + (+1,),
+ (None,Is,'(',+26),
+ commespaces + (+1,),
+ ('id',Table,t_identificateur,+23),
+ commespaces + (+1,),
+ (None,Is,'(',+22),
+ # <params>
+ commespaces + (+1,),
+ ('typ',Table,t_identmc,+1),
+ commespaces + (+1,),
+ ('id',Table,t_identificateur,+17),
+ commespaces + (+1,),
+ (None,Is,',',+1,-5),
+ commespaces + (+1,),
+ (None,Is,')',-7),
+ commespaces + (+1,),
+ (None,Is,'=',+11),
+ commespaces + (+1,),
+ ('vexpr',Table,t_vexpr,+9),
+ commespaces + (+1,),
+ (None,Is,')',+9),
+ commespaces + (+1,),
+ (None,Is,')',+7),
+ commespaces + (+1,),
+ (None,Is,';',+3),
+ (None,AllNotIn,'\n',+1),
+ (None,Is,'\n',MatchOk,MatchOk),
+ # <err>
+ (err0,Table,t_err,MatchFail,MatchOk),
+ # <err9>
+ (err9,Table,t_err,MatchFail,MatchOk),
+ # <err11>
+ (err11,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_nom_ope = \
+ ('nom_ope',Table,(
+ (None,Word,'EVAL',+1,MatchFail), # EVAL n est pas un nom d operateur, il est reserve
+ (None,IsIn,alpha+'_'),
+ (None,AllIn,alpha+'_'+number,+1),
+ commespaces + (+1,),
+ (None,Is,'(',MatchFail),
+ (None,Skip,-1),
+ ))
+
+ t_arg = \
+ ('arg',Table,(
+ n_string + (+1,MatchOk),
+ n_ident,
+ ))
+
+ t_larg = \
+ ('larg',Table,(
+ (None,Is,'(',MatchFail),
+ # <arg>
+ commespaces + (+1,),
+ t_complexe + (+1,+4),
+ t_number + (+1,+3),
+ t_eval_expr + (+1,+2),
+ t_arg + (MatchFail,+1),
+ # <suite>
+ commespaces + (+1,),
+ (None,Is,',',+1),
+ (None,Is,')',-7,MatchOk),
+ ))
+
+ t_mcf = \
+ ('mcf',Table,(
+ (None,Is,'(',MatchFail),
+ ("comments",Table,t_commespaces,+1),
+ (None,Is,')',+1,MatchOk),
+ t_ident + (MatchFail,),
+ ("comments",Table,t_commespaces,+1),
+ (None,Is,':',MatchFail), # a partir d ici on est dans un mot cle facteur (erreurs eventuelles)
+ # <args>
+ ("comments",Table,t_commespaces,+1),
+ t_larg + (+1,+5),
+ t_complexe + (+1,+4),
+ t_number + (+1,+3),
+ t_eval_expr + (+1,+2),
+ t_arg + (+8,),
+ # <suite>
+ ("comments",Table,t_commespaces,+1),
+ (None,Is,',',+1),
+ ("comments",Table,t_commespaces,+1),
+ (None,Is,')',+1,MatchOk),
+ t_ident + (+3,),
+ ("comments",Table,t_commespaces,+1),
+ (None,Is,':',+1,-12),
+ # <err>
+ (err7,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_comm = \
+ ('comm',Table,( # on attend les arguments entre () sinon erreur
+ (None,Is,'(',+21),
+ commespaces + (+1,),
+ (None,Is,')',+1,MatchOk),
+ # <call>
+ t_ident + (+18,),
+ commespaces + (+1,),
+ (None,Is,':',+16),
+ commespaces + (+1,),
+ t_mcf + (+5,),
+ # <mcfsuite>
+ commespaces + (+1,),
+ (None,Is,',',+1),
+ commespaces + (+1,),
+ t_mcf + (+7,-3),
+ # <args>
+ t_larg + (+1,+5),
+ t_complexe + (+1,+4),
+ t_number + (+1,+3),
+ t_eval_expr + (+1,+2),
+ t_arg + (+5,),
+ # <suite>
+ commespaces + (+1,),
+ # <sep>
+ (None,Is,',',+1),
+ commespaces + (+1,),
+ (None,Is,')',-17,MatchOk),
+ # <err>
+ (err1,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_affe = \
+ ('affe',Table,(
+ commespaces + (+1,),
+ t_larg + (+1,+6),
+ t_complexe + (+1,+5),
+ t_number + (+1,+4),
+ t_eval_expr + (+1,+3),
+ t_arg + (+1,+2),
+ (None,Jump,To,+2),
+ # <suite>
+ (None,Jump,To,MatchOk),
+ # <err>
+ (err0,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_reuse = \
+ ('reuse',Table,(
+ t_opt_whitespace,
+ t_ident,
+ t_opt_whitespace,
+ (None,Is,'=',+5),
+ t_opt_whitespace,
+ t_nom_ope + (+2,+1),
+ # <comm>
+ t_comm + (MatchFail,MatchOk),
+ # <affe>
+ t_affe + (MatchFail,MatchOk),
+ # <err>
+ (err8,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_noreuse = \
+ ('noreuse',Table,(
+ t_opt_whitespace,
+ t_ident,
+ t_opt_whitenl,
+ (None,Is,'=',+3,+1), # on a affaire a un operateur ou une affectation
+ t_opt_whitespace,
+ t_nom_ope + (+4,+3),
+ (None,Is,'(',+5,+1),
+ (None,Skip,-1),
+ # <comm>
+ t_comm + (+2,MatchOk),
+ # <affe>
+ t_affe + (+1,MatchOk),
+ # <err>
+ (err0,Table,t_err,MatchFail,MatchOk),
+ # <err8>
+ (err8,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_fin = \
+ ('commande',Table,(
+ ('noreuse',Table,(
+ t_opt_whitespace,
+ ('ident',Word,"FIN"),
+ t_opt_whitenl,
+ (None,Is,'(',MatchFail), # On est vraiment sur d avoir la commande FIN apres avoir identifie (
+ # On recule d un caractere pour identifier les arguments entre parenthèses
+ (None,Skip,-1),
+ t_comm + (+1,MatchOk),
+ (err0,Table,t_err,MatchFail,MatchOk),
+ )),
+ commespaces + (+1,),
+ (None,Is,';',+1,MatchOk),
+ # <err>
+ (err0,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ t_commande = \
+ ('commande',Table,(
+ t_opt_whitespace,
+ (None,Is,'&',+2,+1),
+ t_reuse + (MatchFail,+2),
+ t_noreuse + (MatchFail,),
+ # <fin>
+ commespaces + (+1,),
+ (None,Is,';',+1,MatchOk),
+ # <err>
+ (err0,Table,t_err,MatchFail,MatchOk),
+ ))
+
+ aster_script = (
+ # <top>
+ t_nullline + (+1,+0),
+ t_comment + (+1,-1),
+ t_formule + (+1,-2),
+ t_fin + (+1,+4),
+ t_commande + (+1,-4),
+ t_passline + (+1,-5),
+ (None,EOF,Here,-6),
+ # <AfterFin>
+ t_nullline + (+1,+0),
+ t_passline + (+1,-1),
+ (None,EOF,Here,-2),
+ )
+
+except:
+ print "Textools non importe"
+
-#@ MODIF tables Parsers DATE 15/02/2001 AUTEUR YESSAYAN A.YESSAYAN
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
"""
Ce fichier définit une table de tags à utiliser avec le package
mxTextTools pour décoder un fichier au format Asterv5.
#
__version__="$Name: $"
-__Id__="$Id: tables.tag,v 1.11.18.1 2001/06/15 17:20:24 iliade Exp $"
+__Id__="$Id: tables.tag,v 1.1.1.1 2002/03/26 09:08:45 eficas Exp $"
#
err0='ERR0 , erreur non identifiee : '
err8='ERR8 , signe = ou ( attendu : '
err9='ERR9 , ( attendue : '
err10='ERR10 , vexpr attendue : '
+err11='ERR11 , ) attendue : '
ERRORS=(err0,err1,err2,err3,err4,err5,err6,err7,err8,err9,
- err10)
+ err10,err11)
white_set=set(whitespace)
<err>
err7 = Table t_err F:MatchFail T:MatchOk
+# Table pour identifier le keyword PI
+
+t_PI is:
+ 'PI' = Table is:
+ Word 'PI' F:MatchFail
+ IsIn alpha+'_'+number F:MatchOk T:next
+ Skip back
+ Jump To MatchFail
+
t_vexpr = Table is:
'par' = Is '(':
commespaces F:next
'sign' = IsIn '+-':
commespaces F:next
'vexpr' = Table ThisTable F:<err10> T:<op>
- "PI" = Word 'PI' F:next T:<op>
+ t_PI F:next T:<op>
t_ident F:MatchFail
commespaces F:next
'listpar' = Is '(': # on peut avoir une liste de parametres
commespaces F:next
'vexpr' = Table t_vexpr F:<err>
commespaces F:next
- Is ')' F:<err9>
+ Is ')' F:<err11>
commespaces F:next
- Is ')' F:<err9>
+ Is ')' F:<err11>
commespaces F:next
Is ';' F:<err>
AllNotIn '\n' F:next
err0 = Table t_err F:MatchFail T:MatchOk
<err9>
err9 = Table t_err F:MatchFail T:MatchOk
+ <err11>
+ err11 = Table t_err F:MatchFail T:MatchOk
t_nom_ope is:
'nom_ope' = Table is:
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce package contient tous les convertisseurs de formats d'entrée
en objets compréhensibles par EFICAS.
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin convertisseur de fichier
au format asterv5 pour EFICAS.
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin convertisseur de fichier
au format ini pour EFICAS.
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin convertisseur de fichier
au format python pour EFICAS.
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin convertisseur de fichier
au format python pour EFICAS.
-#@ MODIF parseur_python Parsers DATE 05/09/2001 AUTEUR DURAND C.DURAND
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
+# 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 sys,string,re
def analyse(self):
"""
- Transforme dans self.fichier les commentaires Python (#...) par un objet
- commentaire qui pourra donc être interprété par EFICAS.
- Stocke le résultat dans self.texte
+ Eclate la chaine self.texte en self.l_objets une liste lignes d'instructions
+ et de commentaires (parmi lesquels des instructions "commentarisées").
"""
- #l_lignes = open(self.fichier,'r').readlines()
+ #AY##l_lignes = open(self.fichier,'r').readlines()
l_lignes = string.split(self.texte,'\n')
commentaire_courant = None
commande_courante = None
# on crée un objet commande_commentarisee_courante
commande_commentarisee_courante = COMMANDE_COMMENTARISEE(self)
commande_commentarisee_courante.append_text(ligne)
+ # si la ligne courante se termine par un ';', on décide - par hypothèse et peut-être à tort - que
+ # la commande commentarisée courante est terminée !!
+ if re.search( '; *$', ligne ) != None :
+ commande_commentarisee_courante = None
continue
else:
# on a un double commentaire en fin de ligne
else:
#--> poursuite d'une affectation
affectation_courante.append_text(ligne)
-
+
+
def get_texte(self):
"""
Retourne le texte issu de l'analyse
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient la classe Formatage qui permet le formatage d'une
liste de chaines de caractères dans une syntaxe représentative d'un
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce package contient tous les générateurs de formats de sortie
à partir des objets d' EFICAS.
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin generateur de fichier au format
aplat pour EFICAS.
text = ''
init = self.init + self.sep + obj.nom
old_init=self.init
- for data in self.data :
+ for data in obj.data :
i=i+1
self.init = init + self.sep + "occurrence n°"+`i`
text = text + self.generator(data)
if type(obj.valeur) in (types.TupleType,types.ListType) :
# On est en présence d'une liste de valeur
rep = '('
- for val in self.valeur:
+ for val in obj.valeur:
if type(val) == types.InstanceType :
rep = rep + self.generator(val) +','
else:
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin generateur de fichier au format asterv5 pour EFICAS.
elif self.wait_geom(obj):
s = s + val
elif type(val) == types.FloatType :
- s = s + self.repr_float(val)
+ #s = s + self.repr_float(val)
+ s = s + str(val)
else :
s = s + `val`
s = s + ')'
elif self.wait_geom(obj):
s = obj.valeur
elif type(obj.valeur) == types.FloatType :
- s = self.repr_float(obj.valeur)
+ #s = self.repr_float(obj.valeur)
+ s = str(obj.valeur)
else :
s = `obj.valeur`
s=obj.nom+':'+s+' '
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin generateur de fichier
au format ini pour EFICAS.
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin generateur de fichier au format pyth pour EFICAS.
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
"""
Ce module contient le plugin generateur de fichier au format
python pour EFICAS.
Cette méthode convertit un COMMENTAIRE
en une liste de chaines de caractères à la syntaxe python
"""
- l_lignes = string.split(obj.valeur,'\n')
+ # modification pour répondre à la demande de C. Durand, d'éviter
+ # l'ajout systématique d'un dièse, à la suite du commentaire
+ # Dans la chaine de caracteres obj.valeur, on supprime le dernier
+ # saut de ligne
+ sans_saut = re.sub("\n$","",obj.valeur)
+ l_lignes = string.split(sans_saut,'\n')
txt=''
for ligne in l_lignes:
txt = txt + '#'+ligne+'\n'
+
+ # suppression du dernier saut de ligne
+ txt = re.sub("\n$","",txt)
return txt
def generPARAMETRE_EVAL(self,obj):
for arg in liste :
l.append(arg)
else:
- # on a est en présence d'un MCSIMP : on récupère une string
+ # on est en présence d'un MCSIMP : on récupère une string
text =self.generator(v)
l.append(v.nom+'='+text)
# il faut être plus subtil dans l'ajout de la virgule en différenciant
if hasattr(obj.etape,'sdprods'):
if val in obj.etape.sdprods :
s = s + "CO('"+ self.generator(val) +"')"
+ elif val.__class__.__name__ == 'CO':
+ s = s + "CO('"+ self.generator(val) +"')"
else:
s = s + self.generator(val)
elif isinstance(val,PARAMETRE):
s = s + val.nom
else:
s = s + self.generator(val)
+ elif type(val) == types.FloatType :
+ # Pour un flottant on utilise str qui a une precision de
+ # "seulement" 12 chiffres : evite les flottants du genre 0.599999999999998
+ s = s + str(val)
else :
s = s + `val`
s = s + ','
if hasattr(obj.etape,'sdprods'):
if val in obj.etape.sdprods :
s = "CO('"+ self.generator(val) +"')"
+ elif val.__class__.__name__ == 'CO':
+ s = "CO('"+ self.generator(val) +"')"
else:
s = self.generator(val)
elif isinstance(val,PARAMETRE):
else:
s = self.generator(val)
elif type(val) == types.FloatType :
- # Pour un réel on fait un formattage spécial
- # XXX bizarrement ce n'est pas fait pour une liste
- s = repr_float(val)
+ #s = repr_float(val)
+ s = str(val)
else :
s = `val`
s= s + ','
--- /dev/null
+import glob,os
+
+copyright="""# 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.
+#
+#
+# ======================================================================
+"""
+
+listfich=glob.glob('*')
+for fich in listfich:
+ if not os.path.isfile(fich):continue
+ print "Lecture ",fich
+ f=open(fich,'r')
+ text=f.read()
+ f.close()
+ os.rename(fich,fich+'.bak')
+
+ text=copyright + text
+
+ f2=open(fich,'w')
+ f2.write(text)
+ f2.close()
+