'cc_apres_update_valid'.
Sprout from master 2003-03-07 16:17:12 UTC eficas 'CCAR: Coorection de la mise à jour de validité des nodes lors d'une suppression'
Delete:
AIDE/__init__.py
AIDE/aide_gui.py
AIDE/aide_objets.py
AIDE/fichiers/INSTALL
AIDE/fichiers/NEWS
AIDE/fichiers/faqs.txt
AIDE/fichiers/includes.txt
AIDE/fichiers/index.html
AIDE/index_aide.py
AIDE/viewer.py
Accas/A_ASSD.py
Accas/A_AU_MOINS_UN.py
Accas/A_A_CLASSER.py
Accas/A_BLOC.py
Accas/A_ENSEMBLE.py
Accas/A_ETAPE.py
Accas/A_EVAL.py
Accas/A_EXCLUS.py
Accas/A_FACT.py
Accas/A_FORM.py
Accas/A_FORM_ETAPE.py
Accas/A_JDC.py
Accas/A_JDC_CATA.py
Accas/A_MACRO.py
Accas/A_MACRO_ETAPE.py
Accas/A_MCBLOC.py
Accas/A_MCFACT.py
Accas/A_MCLIST.py
Accas/A_MCNUPLET.py
Accas/A_MCSIMP.py
Accas/A_NUPLET.py
Accas/A_OPER.py
Accas/A_PRESENT_ABSENT.py
Accas/A_PRESENT_PRESENT.py
Accas/A_PROC.py
Accas/A_PROC_ETAPE.py
Accas/A_SIMP.py
Accas/A_UN_PARMI.py
Accas/__init__.py
Aster/Cata/Macro/__init__.py
Aster/Cata/Macro/ajout_quad_gmsh.py
Aster/Cata/Macro/macr_lign_coupe_ops.py
Aster/Cata/Macro/macr_recal_ops.py
Aster/Cata/Macro/macro_cara_poutre_ops.py
Aster/Cata/Macro/macro_elas_mult_ops.py
Aster/Cata/Macro/macro_matr_asse_ops.py
Aster/Cata/Macro/macro_miss_3d_ops.py
Aster/Cata/Macro/macro_mode_meca_ops.py
Aster/Cata/Macro/macro_proj_base_ops.py
Aster/Cata/Macro/pre_gmsh_ops.py
Aster/Cata/Macro/reca_algo.py
Aster/Cata/Macro/reca_interp.py
Aster/Cata/Macro/reca_message.py
Aster/Cata/Macro/recal.py
Aster/Cata/__init__.py
Aster/Cata/asterexec.py
Aster/Cata/cata.py
Aster/Cata/cata_STA5.py
Aster/Cata/cata_STA6.py
Aster/Cata/ops.py
Aster/INSTALL
Aster/LICENSE.TERMS
Aster/NEWS
Aster/README
Aster/Tests/README
Aster/Tests/Recette/efica01a.11
Aster/Tests/Recette/efica01a.com0
Aster/Tests/Recette/efica01a.comm
Aster/Tests/err.comm
Aster/Tests/err2.comm
Aster/Tests/err3.comm
Aster/Tests/incl.11
Aster/Tests/incl.12
Aster/Tests/incl.13
Aster/Tests/incl1.comm
Aster/Tests/inclmat.comm
Aster/Tests/inclmat2.comm
Aster/Tests/torsion.comm
Aster/__init__.py
Aster/ahlv100a.comm
Aster/alphasdist.py
Aster/editeur.ini
Aster/eficas_aster.py
Aster/prefs.py
Aster/properties.py
Aster/sdist.py
Aster/totalmod.comm
Descartes/cata_descartes.py
Descartes/cata_descartes_new.py
Descartes/editeur.ini
Descartes/eficas_descartes.py
Descartes/prefs.py
Descartes/properties.py
Editeur/Interp.py
Editeur/Objecttreeitem.py
Editeur/__init__.py
Editeur/analyse_catalogue.py
Editeur/appli.py
Editeur/autre_analyse_cata.py
Editeur/browser.py
Editeur/bureau.py
Editeur/catabrowser.py
Editeur/cataediteur.py
Editeur/centerwindow.py
Editeur/compobloc.py
Editeur/compocomm.py
Editeur/compocommandecomm.py
Editeur/compofact.py
Editeur/compoformule.py
Editeur/compojdc.py
Editeur/compomacro.py
Editeur/compomclist.py
Editeur/componiveau.py
Editeur/componuplet.py
Editeur/compooper.py
Editeur/compoparam.py
Editeur/compoparameval.py
Editeur/compoproc.py
Editeur/composimp.py
Editeur/configuration.py
Editeur/definition_cata.py
Editeur/eficas.py
Editeur/eficas_go.py
Editeur/faq.py
Editeur/faqs.txt
Editeur/fenetre_mc_inconnus.py
Editeur/fontes.py
Editeur/icons/About24.gif
Editeur/icons/Copy24.gif
Editeur/icons/Cut24.gif
Editeur/icons/Delete24.gif
Editeur/icons/Help24.gif
Editeur/icons/New24.gif
Editeur/icons/Open24.gif
Editeur/icons/Paste24.gif
Editeur/icons/Save24.gif
Editeur/icons/Sep.gif
Editeur/icons/Zoom24.gif
Editeur/icons/arrow_left.gif
Editeur/icons/arrow_right.gif
Editeur/icons/ast-green-ball.gif
Editeur/icons/ast-green-los.gif
Editeur/icons/ast-green-percent.gif
Editeur/icons/ast-green-square.gif
Editeur/icons/ast-green-text.gif
Editeur/icons/ast-red-ball.gif
Editeur/icons/ast-red-los.gif
Editeur/icons/ast-red-percent.gif
Editeur/icons/ast-red-square.gif
Editeur/icons/ast-red-text.gif
Editeur/icons/ast-white-percent.gif
Editeur/icons/ast-white-square.gif
Editeur/icons/ast-white-text.gif
Editeur/icons/ast-yel-ball.gif
Editeur/icons/ast-yel-los.gif
Editeur/icons/ast-yel-percent.gif
Editeur/icons/ast-yel-square.gif
Editeur/icons/ast-yellow-text.gif
Editeur/icons/code_aster.gif
Editeur/icons/code_descartes.gif
Editeur/icons/code_saturne.gif
Editeur/icons/logo_edf.gif
Editeur/icons/minusnode.gif
Editeur/icons/plusnode.gif
Editeur/images.py
Editeur/import_code.py
Editeur/jdcdisplay.py
Editeur/macrodisplay.py
Editeur/menubar.py
Editeur/options.py
Editeur/patches.py
Editeur/readercata.py
Editeur/splash.py
Editeur/statusbar.py
Editeur/toolbar.py
Editeur/tooltip.py
Editeur/treeitemincanvas.py
Editeur/uiinfo.py
Editeur/utils.py
Editeur/widgets.py
Exemples/README
Exemples/__init__.py
Exemples/cyclops/__init__.py
Exemples/cyclops/main.py
Exemples/cyclops2/__init__.py
Exemples/cyclops2/main.py
Exemples/cyclops3/__init__.py
Exemples/cyclops3/cata.py
Exemples/cyclops3/main.py
Exemples/eficas/__init__.py
Exemples/eficas/cas.py
Exemples/eficas/cata.py
Exemples/eficas/fort.11
Exemples/eficas/main.py
Exemples/ex1/__init__.py
Exemples/ex1/main.py
Exemples/ex10/__init__.py
Exemples/ex10/main.py
Exemples/ex11/__init__.py
Exemples/ex11/main.py
Exemples/ex12/__init__.py
Exemples/ex12/cata.py
Exemples/ex12/main.py
Exemples/ex13/__init__.py
Exemples/ex13/cata.py
Exemples/ex13/main.py
Exemples/ex14/__init__.py
Exemples/ex14/cata.py
Exemples/ex14/main.py
Exemples/ex15/__init__.py
Exemples/ex15/cata.py
Exemples/ex15/cata1.py
Exemples/ex15/main.py
Exemples/ex18/__init__.py
Exemples/ex18/main.py
Exemples/ex18/torsion.comm
Exemples/ex18/totalmod.comm
Exemples/ex19/__init__.py
Exemples/ex19/ahlv100a.comm
Exemples/ex19/main.py
Exemples/ex19/titi.comm
Exemples/ex2/__init__.py
Exemples/ex2/main.py
Exemples/ex20/__init__.py
Exemples/ex20/ahlv100a.comm
Exemples/ex20/main.py
Exemples/ex20/prefs.py
Exemples/ex21/Appli.py
Exemples/ex21/__init__.py
Exemples/ex21/ahlv100a.comm
Exemples/ex21/check.py
Exemples/ex21/main.py
Exemples/ex21/prefs.py
Exemples/ex22/README
Exemples/ex22/__init__.py
Exemples/ex22/main.py
Exemples/ex22/main2.py
Exemples/ex22/main3.py
Exemples/ex22/titi.comm
Exemples/ex22/totalmod.comm
Exemples/ex22/toto.comm
Exemples/ex22/tutu.comm
Exemples/ex22/tyty.comm
Exemples/ex23/__init__.py
Exemples/ex23/ahlv100a.comm
Exemples/ex23/main.py
Exemples/ex23/main2.py
Exemples/ex23/titi.comm
Exemples/ex23/toto.comm
Exemples/ex24/__init__.py
Exemples/ex24/essai_saturne.py
Exemples/ex24/essai_saturne2.py
Exemples/ex24/essai_saturne4.py
Exemples/ex24/include.py
Exemples/ex24/kk.py
Exemples/ex24/main.py
Exemples/ex24/titi.comm
Exemples/ex3/__init__.py
Exemples/ex3/main.py
Exemples/ex3/parse.py
Exemples/ex3/toto.ini
Exemples/ex4/__init__.py
Exemples/ex4/main.py
Exemples/ex4/toto.ini
Exemples/ex4/toto.pyth
Exemples/ex5/__init__.py
Exemples/ex5/main.py
Exemples/ex5/titi.ini
Exemples/ex5/titi.pyth
Exemples/ex5/toto.ini
Exemples/ex5/toto.pyth
Exemples/ex6/__init__.py
Exemples/ex6/main.py
Exemples/ex7/__init__.py
Exemples/ex7/main.py
Exemples/ex8/__init__.py
Exemples/ex8/main.py
Exemples/ex9/__init__.py
Exemples/ex9/main.py
Exemples/profile/__init__.py
Exemples/profile/main.py
Exemples/profile/prefs.py
Exemples/profile/resul
Extensions/__init__.py
Extensions/commande_comm.py
Extensions/commentaire.py
Extensions/etape_niveau.py
Extensions/interpreteur_formule.py
Extensions/jdc.py
Extensions/jdc_include.py
Extensions/mcnuplet.py
Extensions/niveau.py
Extensions/nuplet.py
Extensions/parametre.py
Extensions/parametre_eval.py
Extensions/pluginloader.py
Ihm/I_ASSD.py
Ihm/I_A_CLASSER.py
Ihm/I_ENTITE.py
Ihm/I_ETAPE.py
Ihm/I_EXCLUS.py
Ihm/I_FONCTION.py
Ihm/I_FORM_ETAPE.py
Ihm/I_JDC.py
Ihm/I_JDC_CATA.py
Ihm/I_MACRO_ETAPE.py
Ihm/I_MCBLOC.py
Ihm/I_MCCOMPO.py
Ihm/I_MCFACT.py
Ihm/I_MCLIST.py
Ihm/I_MCSIMP.py
Ihm/I_OBJECT.py
Ihm/I_PRESENT_ABSENT.py
Ihm/I_PRESENT_PRESENT.py
Ihm/I_PROC_ETAPE.py
Ihm/I_REGLE.py
Ihm/I_UN_PARMI.py
Ihm/__init__.py
Installation/Doc_technique_install.doc
Installation/README
Installation/README_install
Installation/install.py
Minicode/Test1/incl.13
Minicode/Test1/incl.14
Minicode/Test1/incl.17
Minicode/Test1/incl.23
Minicode/Test1/incl.26
Minicode/Test1/main.comm
Minicode/Test2/deb0.comm
Minicode/Test2/deb1.comm
Minicode/Test2/deb2.comm
Minicode/Test2/incl.22
Minicode/Test2/incl.23
Minicode/Test2/incl.24
Minicode/Test2/inclmat.comm
Minicode/Test2/main.comm
Minicode/Test2/main2.comm
Minicode/Test3/incl.14
Minicode/Test3/incl.15
Minicode/Test3/incl.16
Minicode/Test3/main.comm
Minicode/cata_saturne.py
Minicode/cata_saturne2.py
Minicode/editeur.ini
Minicode/eficas_mini.py
Minicode/ops.py
Minicode/prefs.py
Minicode/properties.py
Misc/Cyclops.py
Misc/MakeNomComplet.py
Misc/Trace.py
Misc/__init__.py
Misc/timing.py
Noyau/N_ASSD.py
Noyau/N_BLOC.py
Noyau/N_CO.py
Noyau/N_CR.py
Noyau/N_ENTITE.py
Noyau/N_ETAPE.py
Noyau/N_EVAL.py
Noyau/N_Exception.py
Noyau/N_FACT.py
Noyau/N_FONCTION.py
Noyau/N_FORM.py
Noyau/N_FORM_ETAPE.py
Noyau/N_GEOM.py
Noyau/N_JDC.py
Noyau/N_JDC_CATA.py
Noyau/N_MACRO.py
Noyau/N_MACRO_ETAPE.py
Noyau/N_MCBLOC.py
Noyau/N_MCCOMPO.py
Noyau/N_MCFACT.py
Noyau/N_MCLIST.py
Noyau/N_MCSIMP.py
Noyau/N_OBJECT.py
Noyau/N_OPER.py
Noyau/N_PROC.py
Noyau/N_PROC_ETAPE.py
Noyau/N_REGLE.py
Noyau/N_SIMP.py
Noyau/N__F.py
Noyau/N_utils.py
Noyau/__init__.py
Noyau/context.py
Noyau/nommage.py
Noyau/properties.py
README
Saturne/cata_saturne.py
Saturne/editeur.ini
Saturne/eficas_saturne.py
Saturne/essai_saturne.py
Saturne/essai_saturne2.py
Saturne/essai_saturne4.py
Saturne/prefs.py
Saturne/properties.py
Syrthes/cata_syrthes.py
Syrthes/editeur.ini
Syrthes/eficas_syrthes.py
Syrthes/prefs.py
Syrthes/properties.py
Tools/__init__.py
Tools/foztools/__init__.py
Tools/foztools/foztools.py
Tools/foztools/slider.py
Utilites/__init__.py
Utilites/appels.py
Utilites/developpeur.py
Utilites/execute.py
Utilites/funcname.py
Utilites/ici.py
Utilites/message.py
Utilites/modification.py
Utilites/pause.py
Utilites/scrute.py
Validation/V_AU_MOINS_UN.py
Validation/V_A_CLASSER.py
Validation/V_ENSEMBLE.py
Validation/V_ETAPE.py
Validation/V_EXCLUS.py
Validation/V_JDC.py
Validation/V_MACRO_ETAPE.py
Validation/V_MCBLOC.py
Validation/V_MCCOMPO.py
Validation/V_MCFACT.py
Validation/V_MCLIST.py
Validation/V_MCSIMP.py
Validation/V_PRESENT_ABSENT.py
Validation/V_PRESENT_PRESENT.py
Validation/V_PROC_ETAPE.py
Validation/V_UN_PARMI.py
Validation/__init__.py
convert/Parserv5/Makefile
convert/Parserv5/README
convert/Parserv5/Translate.py
convert/Parserv5/__init__.py
convert/Parserv5/conv.py
convert/Parserv5/tables.py
convert/Parserv5/tables.tag
convert/__init__.py
convert/convert_asterv5.py
convert/convert_ini.py
convert/convert_pyth.py
convert/convert_python.py
convert/parseur_python.py
generator/Formatage.py
generator/__init__.py
generator/generator_aplat.py
generator/generator_asterv5.py
generator/generator_ini.py
generator/generator_pyth.py
generator/generator_python.py
insercopyright.py
+++ /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 et _pickled.py
-
-
-
-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.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 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 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
+++ /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 Noyau import N_REGLE
-from Validation import V_AU_MOINS_UN
-from Ihm import I_REGLE
-
-class AU_MOINS_UN(V_AU_MOINS_UN.AU_MOINS_UN,I_REGLE.REGLE,N_REGLE.REGLE):
- """
- La classe utilise l'initialiseur de REGLE. Il n'est pas
- nécessaire d'expliciter son initialiseur car
- V_AU_MOINS_UN.AU_MOINS_UN n'en a pas
- """
+++ /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 Noyau import N_REGLE
-from Validation import V_A_CLASSER
-from Ihm import I_A_CLASSER
-
-class A_CLASSER(V_A_CLASSER.A_CLASSER,N_REGLE.REGLE,I_A_CLASSER.A_CLASSER):
- """
- La classe utilise l'initialiseur du module V_.
- Il faut absolument que V_A_CLASSER soit en premier dans l'héritage
- """
+++ /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 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)
-
+++ /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 Noyau import N_REGLE
-from Validation import V_ENSEMBLE
-from Ihm import I_REGLE
-
-class ENSEMBLE(I_REGLE.REGLE,V_ENSEMBLE.ENSEMBLE,N_REGLE.REGLE):
- """
- La classe utilise l'initialiseur de REGLE. Il n'est pas
- nécessaire d'expliciter son initialiseur car
- V_ENSEMBLE.ENSEMBLE n'en a pas
- """
+++ /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 Noyau import N_ETAPE
-from Validation import V_ETAPE
-from Ihm import I_ETAPE
-
-class ETAPE(I_ETAPE.ETAPE,V_ETAPE.ETAPE,
- N_ETAPE.ETAPE):
- def __init__(self,oper=None,reuse=None,args={}):
- # Pas de constructeur pour B_ETAPE.ETAPE
- N_ETAPE.ETAPE.__init__(self,oper,reuse,args)
- V_ETAPE.ETAPE.__init__(self)
+++ /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 Noyau import N_EVAL
-
-class EVAL(N_EVAL.EVAL):
- def __init__(self,str):
- N_EVAL.EVAL.__init__(self,str)
+++ /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 Noyau import N_REGLE
-from Validation import V_EXCLUS
-from Ihm import I_EXCLUS
-
-class EXCLUS(I_EXCLUS.EXCLUS,V_EXCLUS.EXCLUS,N_REGLE.REGLE):
- """
- La classe utilise l'initialiseur de REGLE. Il n'est pas
- nécessaire d'expliciter son initialiseur car
- V_EXCLUS.EXCLUS n'en a pas
- """
+++ /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 Noyau import N_FACT
-from Ihm import I_ENTITE
-import A_MCFACT
-import A_MCLIST
-
-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)
-
+++ /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 Noyau import N_FORM
-from Ihm import I_ENTITE
-import A_FORM_ETAPE
-
-class FORM(N_FORM.FORM,I_ENTITE.ENTITE):
- class_instance=A_FORM_ETAPE.FORM_ETAPE
+++ /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 Noyau import N_FORM_ETAPE
-from Validation import V_MACRO_ETAPE
-from Ihm import I_FORM_ETAPE
-
-class FORM_ETAPE(I_FORM_ETAPE.FORM_ETAPE,V_MACRO_ETAPE.MACRO_ETAPE,N_FORM_ETAPE.FORM_ETAPE):
- def __init__(self,oper=None,reuse=None,args={}):
- N_FORM_ETAPE.FORM_ETAPE.__init__(self,oper,reuse,args)
- V_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
- I_FORM_ETAPE.FORM_ETAPE.__init__(self)
-
+++ /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 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)
- I_JDC.JDC.__init__(self)
- jdc.JDC.__init__(self)
+++ /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 Noyau import N_JDC_CATA
-import A_JDC
-from Ihm import I_JDC_CATA
-
-class JDC_CATA(I_JDC_CATA.JDC_CATA,N_JDC_CATA.JDC_CATA):
- class_instance=A_JDC.JDC
- def __init__(self,*pos,**kw):
- N_JDC_CATA.JDC_CATA.__init__(self,*pos,**kw)
- I_JDC_CATA.JDC_CATA.__init__(self)
+++ /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 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)
-
+++ /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 Noyau import N_MACRO_ETAPE
-from Validation import V_MACRO_ETAPE
-from Ihm import I_MACRO_ETAPE
-
-class MACRO_ETAPE(I_MACRO_ETAPE.MACRO_ETAPE,
- V_MACRO_ETAPE.MACRO_ETAPE,
- N_MACRO_ETAPE.MACRO_ETAPE):
- def __init__(self,oper=None,reuse=None,args={}):
- N_MACRO_ETAPE.MACRO_ETAPE.__init__(self,oper,reuse,args)
- V_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
- I_MACRO_ETAPE.MACRO_ETAPE.__init__(self)
+++ /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 Noyau import N_MCBLOC
-from Validation import V_MCBLOC
-from Ihm import I_MCBLOC
-
-class MCBLOC(I_MCBLOC.MCBLOC,N_MCBLOC.MCBLOC,V_MCBLOC.MCBLOC):
- def __init__(self,val,definition,nom,parent):
- N_MCBLOC.MCBLOC.__init__(self,val,definition,nom,parent)
- V_MCBLOC.MCBLOC.__init__(self)
+++ /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 Noyau import N_MCFACT
-from Validation import V_MCFACT
-from Ihm import I_MCFACT
-
-class MCFACT(I_MCFACT.MCFACT,N_MCFACT.MCFACT,V_MCFACT.MCFACT):
- def __init__(self,val,definition,nom,parent):
- N_MCFACT.MCFACT.__init__(self,val,definition,nom,parent)
- V_MCFACT.MCFACT.__init__(self)
+++ /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 Noyau import N_MCLIST
-from Validation import V_MCLIST
-from Ihm import I_MCLIST
-
-class MCList(I_MCLIST.MCList,N_MCLIST.MCList,V_MCLIST.MCList):
- def __init__(self):
- N_MCLIST.MCList.__init__(self)
+++ /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 Extensions import mcnuplet
-from Ihm import I_MCCOMPO
-
-class MCNUPLET(mcnuplet.MCNUPLET,I_MCCOMPO.MCCOMPO):
- def __init__(self,*pos,**args):
- mcnuplet.MCNUPLET.__init__(self,*pos,**args)
+++ /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 Noyau import N_MCSIMP
-from Validation import V_MCSIMP
-from Ihm import I_MCSIMP
-
-class MCSIMP(I_MCSIMP.MCSIMP,N_MCSIMP.MCSIMP,V_MCSIMP.MCSIMP):
- def __init__(self,val,definition,nom,parent):
- N_MCSIMP.MCSIMP.__init__(self,val,definition,nom,parent)
- V_MCSIMP.MCSIMP.__init__(self)
+++ /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 Extensions import nuplet
-import A_MCLIST
-import A_MCNUPLET
-
-class NUPL(nuplet.NUPL):
- class_instance=A_MCNUPLET.MCNUPLET
- list_instance=A_MCLIST.MCList
+++ /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 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)
+++ /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 Noyau import N_REGLE
-from Validation import V_PRESENT_ABSENT
-from Ihm import I_PRESENT_ABSENT
-
-class PRESENT_ABSENT(I_PRESENT_ABSENT.PRESENT_ABSENT,V_PRESENT_ABSENT.PRESENT_ABSENT,
- N_REGLE.REGLE):
- """
- La classe utilise l'initialiseur de REGLE. Il n'est pas
- nécessaire d'expliciter son initialiseur car
- V_PRESENT_ABSENT.PRESENT_ABSENT n'en a pas
- """
+++ /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 Noyau import N_REGLE
-from Validation import V_PRESENT_PRESENT
-from Ihm import I_PRESENT_PRESENT
-
-class PRESENT_PRESENT(I_PRESENT_PRESENT.PRESENT_PRESENT,
- V_PRESENT_PRESENT.PRESENT_PRESENT,
- N_REGLE.REGLE):
- """
- La classe utilise l'initialiseur de REGLE. Il n'est pas
- nécessaire d'expliciter son initialiseur car
- V_PRESENT_PRESENT.PRESENT_PRESENT n'en a pas
- """
+++ /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 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)
-
+++ /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 Noyau import N_PROC_ETAPE
-from Validation import V_PROC_ETAPE
-from Ihm import I_PROC_ETAPE
-
-class PROC_ETAPE(I_PROC_ETAPE.PROC_ETAPE,
- V_PROC_ETAPE.PROC_ETAPE,
- N_PROC_ETAPE.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)
+++ /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 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)
-
+++ /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 Noyau import N_REGLE
-from Validation import V_UN_PARMI
-from Ihm import I_UN_PARMI
-
-class UN_PARMI(I_UN_PARMI.UN_PARMI,V_UN_PARMI.UN_PARMI,N_REGLE.REGLE):
- """
- La classe utilise l'initialiseur de REGLE. Il n'est pas
- nécessaire d'expliciter son initialiseur car
- V_UN_PARMI.UN_PARMI n'en a pas
- """
+++ /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 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
- avec les classes MIXIN qui implémentent les fonctionnalités qui ont été séparées
- du noyau pour des raisons de modularité afin de faciliter la maintenance et
- l'extensibilité.
-
- De plus toutes les classes utilisables par les applications sont remontées au
- niveau du package afin de rendre le plus indépendant possible l'utilisation des
- classes et leur implémentation.
-"""
-from A_JDC_CATA import JDC_CATA
-from A_OPER import OPER
-from A_PROC import PROC
-from A_MACRO import MACRO
-from A_FORM import FORM
-from A_BLOC import BLOC
-from A_FACT import FACT
-from A_SIMP import SIMP
-from A_EVAL import EVAL
-from A_NUPLET import NUPL
-
-from A_JDC import JDC
-from A_ETAPE import ETAPE
-from A_PROC_ETAPE import PROC_ETAPE
-from A_MACRO_ETAPE import MACRO_ETAPE
-from A_FORM_ETAPE import FORM_ETAPE
-from A_MCFACT import MCFACT
-from A_MCLIST import MCList
-from A_MCBLOC import MCBLOC
-from A_MCSIMP import MCSIMP
-
-# Les règles
-from A_AU_MOINS_UN import AU_MOINS_UN
-from A_UN_PARMI import UN_PARMI
-from A_PRESENT_PRESENT import PRESENT_PRESENT
-from A_PRESENT_ABSENT import PRESENT_ABSENT
-from A_EXCLUS import EXCLUS
-from A_ENSEMBLE import ENSEMBLE
-from A_A_CLASSER import A_CLASSER
-
-from A_ASSD import ASSD,assd
-from A_ASSD import GEOM,geom
-from A_ASSD import FONCTION, fonction
-from A_ASSD import CO
-
-from Noyau.N__F import _F
-
-from Noyau.N_Exception import AsException
-from Noyau.N_utils import AsType
-from Extensions.niveau import NIVEAU
-from Extensions.etape_niveau import ETAPE_NIVEAU
-from Extensions.commentaire import COMMENTAIRE
-from Extensions.parametre import PARAMETRE
-from Extensions.parametre_eval import PARAMETRE_EVAL
-from Extensions.commande_comm import COMMANDE_COMM
-from Extensions.mcnuplet import MCNUPLET
-
+++ /dev/null
-#@ MODIF __init__ Macro DATE 27/03/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.
-#
-#
-# ======================================================================
+++ /dev/null
-#@ MODIF ajout_quad_gmsh Macro DATE 11/06/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.
-# ======================================================================
-
-# script PYTHON de modification d'un fichier de maillage GMSH (*.msh)
-# pour transformer les mailles lineiques en mailles quadratiques
-# SEG2->SEG3 / TRIA3->TRIA6 / QUAD4->QUAD8,
-# TETRA4 -> TETRA10 / PENTA6 -> PENTA15 / PYRAM5 -> PYRAM13
-
-def ajout_quad_gmsh(texte):
-
- import os,sys,copy
-
- try:
-# construction du dictionnaire nom du noeud / coordonnees : dict_no
-# construction de la liste des noeuds : l_no
-
- typ_mail={}
- typ_mail['LI']=['1']
- typ_mail['2D']=['2','3']
- typ_mail['3D']=['4','5','6','7']
- typ_mail['PO']=['15']
-
- texte_eclate=texte.split('\n')
- nbno=int(texte_eclate[texte_eclate.index('$NOD')+1])
- l_no=texte_eclate[texte_eclate.index('$NOD')+2:texte_eclate.index('$ENDNOD')]
- dict_no={}
- for i in texte_eclate[texte_eclate.index('$NOD')+2:texte_eclate.index('$ENDNOD')]:
- cc=i.split(' ')
- dict_no[cc[0]]=[]
- for j in cc[1:]:dict_no[cc[0]].append(float(j))
-
- l_el1=texte_eclate[texte_eclate.index('$ELM')+2:texte_eclate.index('$ENDELM')]
- nbel =texte_eclate[texte_eclate.index('$ELM')+1]
-
-
-# construction du dictionnaire : element / liste des aretes de l'element : elems_aretes
-# et de son inverse : aretes / elements contenant cette arete : aretes_elems
-
- aretes_elems={}
- elems_aretes={}
- l_el=[]
- for elem in l_el1 :
- connec0=elem.split(' ')[5:]
- while '' in connec0 : connec0.remove('')
- aa=elem.split(' ')[:4]
-
-# attention : indicateur de type de maille : ajouter 7 pour passer
-# de TRIA3 a TRIA6, de SEG2 a SEG3, de QUAD4 a QUAD8 (voir inigms.f)
-
-# si maille POI1, on ne fait rien
-
- if aa[1] not in typ_mail['PO'] : typel=str(int(aa[1])+7)
- else : typel=aa[1]
- nom_elem=aa[0]+' '+typel+' '+aa[2]+' '+aa[3]
- segments=[]
-
-# traitement des mailles lineaires : un seul segment
- if aa[1] in typ_mail['LI']:
- segments.append([int(connec0[0]),int(connec0[1])])
-
-# traitement des mailles planes (TRI3 QUA4) : on cree les segments en prenant les noeuds consecutivement, puis on ferme
- elif aa[1] in typ_mail['2D']:
- for i in range(len(connec0)-1) : segments.append([int(connec0[i]),int(connec0[i+1])])
- segments.append([int(connec0[-1]),int(connec0[0])])
-
-# traitement des mailles TETRA4 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
- elif aa[1]=='4':
- for i in range(0,2) : segments.append([int(connec0[i]),int(connec0[i+1])])
- segments.append([int(connec0[2]),int(connec0[0])])
- for i in range(0,3) : segments.append([int(connec0[3]),int(connec0[i])])
-
-# traitement des mailles HEXA8 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
- elif aa[1]=='5':
- for i in range(0,3) : segments.append([int(connec0[i]),int(connec0[i+1])])
- segments.append([int(connec0[3]),int(connec0[0])])
- for i in range(4,7) : segments.append([int(connec0[i]),int(connec0[i+1])])
- segments.append([int(connec0[7]),int(connec0[4])])
- for i in range(0,4) : segments.append([int(connec0[i]),int(connec0[i+4])])
-
-# traitement des mailles PENTA6 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
- elif aa[1]=='6':
- for i in range(0,2) : segments.append([int(connec0[i]),int(connec0[i+1])])
- segments.append([int(connec0[2]),int(connec0[0])])
- for i in range(3,5) : segments.append([int(connec0[i]),int(connec0[i+1])])
- segments.append([int(connec0[5]),int(connec0[3])])
- for i in range(0,3) : segments.append([int(connec0[i]),int(connec0[i+3])])
-
-# traitement des mailles PYRA5 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
- elif aa[1]=='7':
- for i in range(0,3) : segments.append([int(connec0[i]),int(connec0[i+1])])
- segments.append([int(connec0[3]),int(connec0[0])])
- for i in range(0,4) : segments.append([int(connec0[4]),int(connec0[i])])
-
- elems_aretes[nom_elem]=[]
- for seg in segments :
- elems_aretes[nom_elem].append(copy.copy(seg))
- seg.sort()
- for seg in segments :
- if aretes_elems.has_key(tuple(seg)):aretes_elems[tuple(seg)].append(nom_elem)
- else :aretes_elems[tuple(seg)]=[nom_elem]
- l_el.append(nom_elem)
-
-# construction de la liste complete des aretes
-
- l_ar=aretes_elems.keys()
- l_ar.sort()
-
-# numero du plus grand noeud :
- nmax=int(l_no[-1].split(' ')[0])
-
-# nouveau nombre total de noeuds :
- ndtot=nbno+len(l_ar)
-
-# insertion des noeuds milieux dans le dictionnaire "aretes" et la liste "l_no" :
- ind=nmax
- for i in l_ar:
- ind=ind+1
- x=(dict_no[str(i[0])][0]+dict_no[str(i[1])][0])/2
- y=(dict_no[str(i[0])][1]+dict_no[str(i[1])][1])/2
- z=(dict_no[str(i[0])][2]+dict_no[str(i[1])][2])/2
- l_no.append(str(ind)+' '+str(x)+' '+str(y)+' '+str(z))
- for elem in aretes_elems[i]:
- for ar in elems_aretes[elem]:
- k=copy.copy(ar)
- k.sort()
- kk=tuple(k)
- if i==kk:
- ar.insert(1,ind)
-
-# re-ecriture du fichier avec les noeuds milieux :
-
- resu='$NOD\n'+str(ndtot)+'\n'
- for i in l_no:
- resu=resu+i+'\n'
- resu=resu+'$ENDNOD\n'+'$ELM\n'+nbel+'\n'
- for i in l_el:
- aa=i.split(' ')[:4]
- if aa[1] not in typ_mail['PO']:
- typ=str(int(aa[1])-7)
- else : typ=aa[1]
- if elems_aretes[i]!=[]:
- resu=resu+i
-
-# traitement des mailles lineaires : d'abord les noeuds sommets, puis le noeud milieu
- if typ in typ_mail['LI']:
- resu=resu+' 3 '
- for j in elems_aretes[i]:
- resu=resu+str(j[0])+' '+str(j[2])+' '+str(j[1])+' '
-
-# traitement des mailles planes (TRI3 QUA4) : d'abord les noeuds sommets, puis, dans le meme ordre, les noeuds milieux
- elif typ in typ_mail['2D']:
- resu=resu+' '+str(len(elems_aretes[i])*2)+' '
- for j in elems_aretes[i]:
- resu=resu+str(j[0])+' '
- for j in elems_aretes[i]:
- resu=resu+str(j[1])+' '
-
-# traitement des mailles TETRA4 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
- elif typ=='4':
- resu=resu+' 10 '
- for j in elems_aretes[i][:4]:
- resu=resu+str(j[0])+' '
- resu=resu+str(elems_aretes[i][0][1])+' '
- resu=resu+str(elems_aretes[i][1][1])+' '
- resu=resu+str(elems_aretes[i][2][1])+' '
- resu=resu+str(elems_aretes[i][3][1])+' '
- resu=resu+str(elems_aretes[i][4][1])+' '
- resu=resu+str(elems_aretes[i][5][1])+' '
-
-# traitement des mailles HEXA8 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
- elif typ=='5':
- resu=resu+' 20 '
- for j in elems_aretes[i][:8]:
- resu=resu+str(j[0])+' '
- resu=resu+str(elems_aretes[i][0][1])+' '
- resu=resu+str(elems_aretes[i][1][1])+' '
- resu=resu+str(elems_aretes[i][2][1])+' '
- resu=resu+str(elems_aretes[i][3][1])+' '
-
- resu=resu+str(elems_aretes[i][8][1])+' '
- resu=resu+str(elems_aretes[i][9][1])+' '
- resu=resu+str(elems_aretes[i][10][1])+' '
- resu=resu+str(elems_aretes[i][11][1])+' '
-
- resu=resu+str(elems_aretes[i][4][1])+' '
- resu=resu+str(elems_aretes[i][5][1])+' '
- resu=resu+str(elems_aretes[i][6][1])+' '
- resu=resu+str(elems_aretes[i][7][1])+' '
-
-# traitement des mailles PENTA6 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
- elif typ=='6':
- resu=resu+' 15 '
- for j in elems_aretes[i][:6]:
- resu=resu+str(j[0])+' '
- resu=resu+str(elems_aretes[i][0][1])+' '
- resu=resu+str(elems_aretes[i][1][1])+' '
- resu=resu+str(elems_aretes[i][2][1])+' '
-
- resu=resu+str(elems_aretes[i][6][1])+' '
- resu=resu+str(elems_aretes[i][7][1])+' '
- resu=resu+str(elems_aretes[i][8][1])+' '
-
- resu=resu+str(elems_aretes[i][3][1])+' '
- resu=resu+str(elems_aretes[i][4][1])+' '
- resu=resu+str(elems_aretes[i][5][1])+' '
-
-# traitement des mailles PYRA5 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
- elif typ=='7':
- resu=resu+' 13 '
- for j in elems_aretes[i][:4]:
- resu=resu+str(j[0])+' '
- resu=resu+str(elems_aretes[i][0][1])+' '
- resu=resu+str(elems_aretes[i][1][1])+' '
- resu=resu+str(elems_aretes[i][2][1])+' '
-
- resu=resu+str(elems_aretes[i][6][1])+' '
- resu=resu+str(elems_aretes[i][7][1])+' '
- resu=resu+str(elems_aretes[i][8][1])+' '
-
- resu=resu+str(elems_aretes[i][3][1])+' '
- resu=resu+str(elems_aretes[i][4][1])+' '
- resu=resu+str(elems_aretes[i][5][1])+' '
-
- else:
-# traitement des mailles POI1 : on recopie la connectivite telle quelle, sans ajouter de nouveau noeud
- resu=resu+l_el1[l_el.index(i)]
-
- resu=resu+'\n'
-
- resu=resu+'$ENDELM\n'
- return resu
- except :
- return 0
+++ /dev/null
-#@ MODIF macr_lign_coupe_ops Macro DATE 28/08/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.
-# ======================================================================
-
-########################################################################
-# script PYTHON de creation d un maillage de ligne de coupe
-
-def crea_mail_lig_coup(lignes):
-
- import os,sys,copy
-
- try:
-# construction du maillage au format Aster des segments de lignes de coupe
-
- nblig=len(lignes)
- dimension=len(lignes[0][0])
-
- resu='TITRE\n'
- titre='Maillage ligne de coupe'+'\n'
- resu=resu+'FINSF\n'
- resu=resu+'COOR_'+str(dimension)+'D\n'
-
-# creation des noeuds
- nbno=0
- for i in range(nblig):
- pt1 = lignes[i][0]
- pt2 = lignes[i][1]
- nbp_lig_coupe = lignes[i][2]
- for j in range(nbp_lig_coupe):
- if dimension==2:
- x=pt1[0]+j*(pt2[0]-pt1[0])/(nbp_lig_coupe-1)
- y=pt1[1]+j*(pt2[1]-pt1[1])/(nbp_lig_coupe-1)
- nbno=nbno+1
- noeud=' N'+str(nbno)+' '+str(x)+' '+str(y)+'\n'
- resu=resu+noeud
- elif dimension==3:
- x=pt1[0]+j*(pt2[0]-pt1[0])/(nbp_lig_coupe-1)
- y=pt1[1]+j*(pt2[1]-pt1[1])/(nbp_lig_coupe-1)
- z=pt1[2]+j*(pt2[2]-pt1[2])/(nbp_lig_coupe-1)
- nbno=nbno+1
- noeud=' N'+str(nbno)+' '+str(x)+' '+str(y)+' '+str(z)+'\n'
- resu=resu+noeud
- resu=resu+'FINSF\n'
-
-# creation des mailles
- nbma=0
- for i in range(nblig):
- nbp_lig_coupe = lignes[i][2]
- resu=resu+'SEG2\n'
- for j in range(nbp_lig_coupe-1):
- nbma=nbma+1
- maille=' M'+str(nbma)+' N'+str(nbma+i)+' N'+str(nbma+1+i)+'\n'
- resu=resu+maille
- resu=resu+'FINSF\n'
-
-# creation des groupes de mailles (1 par ligne de coupe)
- nbma=0
- for i in range(nblig):
- resu=resu+'GROUP_MA\n'
- resu=resu+' LICOU'+str(i+1)
- nbp_lig_coupe = lignes[i][2]
- for j in range(nbp_lig_coupe-1):
- nbma=nbma+1
- resu=resu+' M'+str(nbma)
- resu=resu+'\n'
- resu=resu+'FINSF\n'
- resu=resu+'FIN\n'
-
- return resu
-
- except :
- return 0
-
-########################################################################
-def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,MODELE,
- NOM_CHAM,**args):
- """
- Ecriture de la macro MACR_LIGN_COUPE
- """
- import os
- from Accas import _F
- from Noyau.N_utils import AsType
- ier=0
-
- # On importe les definitions des commandes a utiliser dans la macro
- LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE')
- DEFI_GROUP =self.get_cmd('DEFI_GROUP')
- AFFE_MODELE =self.get_cmd('AFFE_MODELE')
- PROJ_CHAMP =self.get_cmd('PROJ_CHAMP')
- POST_RELEVE_T =self.get_cmd('POST_RELEVE_T')
-
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- lignes=[]
- for m in LIGN_COUPE :
- lignes.append((m['COOR_ORIG'],m['COOR_EXTR'],m['NB_POINTS']))
-
- # Création du maillage des NB_POINTS segments entre COOR_ORIG et COOR_EXTR
- # par appel au script python crea_mail_lig_coup
- # le maillage est ensuite recopié dans l unité logique UNITE_MAILLAGE
-
- resu_mail=crea_mail_lig_coup(lignes)
- cur_dir=os.getcwd()
- nomFichierSortie =cur_dir+'/fort.'+str(UNITE_MAILLAGE)
- fproc=open(nomFichierSortie,'w')
- fproc.write(resu_mail)
- fproc.close()
-
- # Lecture du maillage de seg2 contenant toutes les lignes de coupe
-
- __macou=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,);
-
- motscles={}
- iocc=1
- motscles['CREA_GROUP_NO']=[]
- for m in LIGN_COUPE :
- motscles['CREA_GROUP_NO'].append(_F(GROUP_MA='LICOU'+str(iocc),) )
- iocc=iocc+1
- __macou=DEFI_GROUP( reuse =__macou , MAILLAGE=__macou , **motscles );
-
- if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') :
- __mocou=AFFE_MODELE(MAILLAGE=__macou,
- AFFE=_F(TOUT='OUI',
- PHENOMENE='MECANIQUE',
- MODELISATION='BARRE',),);
- elif AsType(RESULTAT).__name__ in ('evol_ther',) :
- __mocou=AFFE_MODELE(MAILLAGE=__macou,
- AFFE=_F(TOUT='OUI',
- PHENOMENE='THERMIQUE',
- MODELISATION='PLAN',),);
-
- __recou=PROJ_CHAMP(METHODE='ELEM',
- RESULTAT=RESULTAT,
- MODELE_1=MODELE,
- MODELE_2=__mocou,
- NOM_CHAM=NOM_CHAM,);
-
- # Production d'une table par ligne de coupe
- # Toutes les tables sont des concepts sortant de la macro définies
- # dans chaque occurence du mcfact lign_coupe
-
- iocc=1
- for m in LIGN_COUPE :
- self.DeclareOut('tt',m['TABLE'])
- tt=POST_RELEVE_T(ACTION=_F(INTITULE = 'lig. coupe'+str(iocc),
- RESULTAT = __recou,
- GROUP_NO = 'LICOU'+str(iocc),
- NOM_CHAM = NOM_CHAM,
- TOUT_CMP = 'OUI',
- OPERATION = 'EXTRACTION', ),);
- iocc=iocc+1
-
- return ier
+++ /dev/null
-#@ MODIF macr_recal_ops Macro DATE 24/09/2002 AUTEUR PABHHHH N.TARDIEU
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, LIST_PARA, RESU_CALC,
- ITER_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI,
- GRAPHIQUE, **args ):
- """Macro commande réalisant le recalage de modèles Aster""",
- # Initialisation du compteur d'erreurs
- import string
- import Numeric
- import copy
- import types
- import Macro
- import Cata
- from Cata import cata
- from Macro.recal import gestion,transforme_list_Num,EXTRACT,calcul_F
- from Macro.reca_message import *
- from Macro.reca_algo import *
- from Macro.reca_interp import *
- ier=0
- # La macro compte pour 1 dans l'execution des commandes
- self.icmd=1
- self.DeclareOut('nomres',self.sd)
-
- # Gestion des erreurs de syntaxe
- texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP)
- if (texte_erreur != ""):
- ier=ier+1
- self.cr.fatal(texte_erreur)
-
- # On declare toutes les commandes Aster
- for k,v in cata.__dict__.items() :
- if type(v)==types.InstanceType:
- if v.__class__.__name__ in ('OPER','MACRO'):
- self.current_context[k]= v
- self.current_context['_F']=cata.__dict__['_F']
- self.g_context['EXTRACT']=EXTRACT
-
- #initialisation
- iter = 0
- para,val,borne_inf,borne_sup = transforme_list_Num(LIST_PARA,RESU_EXP)
- val_init = copy.copy(val)
- L_init = calcul_F(self,UNITE_ESCL,para,val,RESU_CALC)
- #instance de la classe gérant l'affichage des resultats du calcul de l'optimisation
- Mess = Message(para,RESU_EXP,copy.copy(val_init),UNITE_RESU)
- #instances des classes pour le calcul de l'erreur et le dimensionnemnt/adim
- Simul = Sim_exp(RESU_EXP)
- Dim = Dimension(copy.copy(val_init),para)
- L_J_init,erreur = Simul.multi_interpole(L_init, RESU_CALC)
- J_init = Simul.norme_J(copy.copy(L_J_init),copy.copy(L_J_init),UNITE_RESU)
- J = J_init
- A = Simul.sensibilite(self,UNITE_ESCL,L_init,val,para,RESU_CALC,PARA_DIFF_FINI,UNITE_RESU)
- A = Dim.adim_sensi(A)
- l = lambda_init(Numeric.matrixmultiply(Numeric.transpose(A),A))
- gradient_init =calcul_gradient(A,erreur) #utile pour le test de convergence, on prend les valeurs dimensionner
- residu = test_convergence(gradient_init,erreur,A)
- Mess.affiche_result_iter(iter,J,val,residu,UNITE_RESU)
-
- #boucle principale de l'algo
- epsilon = 10.*RESI_GLOB_RELA
- while((residu > RESI_GLOB_RELA) & (iter<ITER_MAXI)): #boucle principale de l'algo
- iter = iter +1
- testbornes = 0 #variable pour tester si les paramatres sont dans les bornes
- while(testbornes == 0 ) : #boucle secondaire pour avoir des valeurs bornees
- d = Levenberg(val,A,erreur,l) # Résolution,d est adimensionné
- d = Dim.redim(d)
- testbornes,l = test_bornes(l,val,d,borne_inf,borne_sup)
- #actualisation
- new_val = copy.copy(val + d)
- L_F = calcul_F(self,UNITE_ESCL,para,new_val,RESU_CALC)
- new_L_J,new_erreur = Simul.multi_interpole(L_F, RESU_CALC)
- new_J = Simul.norme_J(L_J_init,new_L_J,UNITE_RESU)
- l = actualise_lambda(l,new_J,J)
- val = copy.copy(new_val)
- erreur = copy.copy(new_erreur)
- J = new_J
- A = Simul.sensibilite(self,UNITE_ESCL,L_F,val,para,RESU_CALC,PARA_DIFF_FINI,UNITE_RESU)
- A = Dim.adim_sensi(A)
- residu = test_convergence(gradient_init,erreur,A)
- Mess.affiche_result_iter(iter,J,val,residu,UNITE_RESU)
- if GRAPHIQUE:
- GRAPHE_UL_OUT=GRAPHIQUE['UNITE']
- interactif=(GRAPHIQUE['INTERACTIF']=='OUI')
- graphique(L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif)
- Mess.affiche_etat_final_convergence(iter,ITER_MAXI,RESI_GLOB_RELA,residu,UNITE_RESU)
- calcul_etat_final(A,iter,ITER_MAXI,RESI_GLOB_RELA,residu,Mess,UNITE_RESU)
- # creations de la liste de reels contenant les valeurs des parametres a convergence
- lival=[]
- for i in range(len(val)):
- lival.append(val[i])
- nomres=DEFI_LIST_REEL(VALE=lival)
- return
+++ /dev/null
-#@ MODIF macro_cara_poutre_ops Macro DATE 25/06/2002 AUTEUR JMBHH01 J.M.PROIX
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-def macro_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
- GROUP_MA,ORIG_INER,NOEUD,GROUP_MA_INTE,
- LONGUEUR,MATERIAU,LIAISON,
- **args):
- """
- Ecriture de la macro MACRO_CARA_POUTRE
- """
- 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
- LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE')
- DEFI_GROUP =self.get_cmd('DEFI_GROUP')
- CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE')
- AFFE_MODELE =self.get_cmd('AFFE_MODELE')
- DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU')
- AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU')
- DEFI_FONCTION =self.get_cmd('DEFI_FONCTION')
- DEFI_CONSTANTE =self.get_cmd('DEFI_CONSTANTE')
- AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER')
- AFFE_CHAR_THER_F=self.get_cmd('AFFE_CHAR_THER_F')
- THER_LINEAIRE =self.get_cmd('THER_LINEAIRE')
- CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM')
- CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM')
- NUME_DDL =self.get_cmd('NUME_DDL')
- ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR')
- POST_ELEM =self.get_cmd('POST_ELEM')
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- # Le concept sortant (de type tabl_cara_geom) est nommé 'nomres' dans
- # le contexte de la macro
-
- self.DeclareOut('nomres',self.sd)
-
- if GROUP_MA_BORD and GROUP_MA:
- if not LIAISON:
- ier=ier+1
- self.cr.fatal("Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU")
- return ier
-
- __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,)
-
- __nomamo=AFFE_MODELE(MAILLAGE=__nomlma,
- AFFE=_F(TOUT='OUI',
- PHENOMENE='MECANIQUE',
- MODELISATION='D_PLAN',), )
-
- __nomdma=DEFI_MATERIAU(ELAS=_F(E=1.0,NU=0.,RHO=1.0),)
-
-
- __nomama=AFFE_MATERIAU(MAILLAGE=__nomlma,
- AFFE=_F(TOUT='OUI',
- MATER=__nomdma,), )
-
-# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION :
-# ------------------------------------------------------
-
- motsimps={}
- if GROUP_MA : motsimps['GROUP_MA'] = GROUP_MA
- if SYME_X : motsimps['SYME_X'] = SYME_X
- if SYME_Y : motsimps['SYME_Y'] = SYME_Y
- motsimps['ORIG_INER'] = ORIG_INER
- mfact=_F(TOUT='OUI',**motsimps)
- nomres=POST_ELEM(MODELE=__nomamo,
- CHAM_MATER=__nomama,
- CARA_GEOM=mfact )
-
-# nb : si GROUP_MA n existe pas : le mot clé est ignoré
-
-#
-# ==================================================================
-# --- = CALCUL DE LA CONSTANTE DE TORSION SUR TOUT LE MAILLAGE =
-# --- = OU DU CENTRE DE TORSION/CISAILLEMENT =
-# --- = DES COEFFICIENTS DE CISAILLEMENT =
-# --- = ET DE L INERTIE DE GAUCHISSEMENT =
-# --- = ON CREE UN MODELE PLAN 2D THERMIQUE REPRESENTANT LA SECTION =
-# --- = DE LA POUTRE CAR ON A A RESOUDRE DES E.D.P. AVEC DES LAPLACIENS=
-# ==================================================================
-
- if GROUP_MA_BORD and not GROUP_MA:
-
-# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS
-# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE :
-# ---------------------------------------------------------
- motscles={}
- if type(GROUP_MA_BORD)==types.StringType:
- motscles['CREA_GROUP_NO']=_F(GROUP_MA=GROUP_MA_BORD,)
- else:
- motscles['CREA_GROUP_NO']=[]
- for grma in GROUP_MA_BORD:
- motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=grma,))
- __nomlma=DEFI_GROUP(reuse=__nomlma,
- MAILLAGE=__nomlma,
- **motscles)
-
-
-# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES
-# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL
-# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION :
-# ---------------------------------------------------------------
-
- __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma,
- REPERE=_F(TABLE=nomres,
- NOM_ORIG='CDG', ), )
-
-# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE
-# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE :
-# ------------------------------------------------------
-
- __nomoth=AFFE_MODELE(MAILLAGE=__nomapi,
- AFFE=_F(TOUT='OUI',
- PHENOMENE='THERMIQUE',
- MODELISATION='PLAN',), )
-
-# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON DEFINIT UN
-# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT :
-# --- LAMBDA = 1, RHO*CP = 0 :
-# ----------------------
-
- __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0,RHO_CP=0.,),)
-
-# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT :
-# ---------------------------------------------------------
-
- __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi,
- AFFE=_F(TOUT='OUI',
- MATER=__nomath,), )
-
-#
-# ------------------------------------------------------------
-# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION -
-# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2 -
-# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION : -
-# --- - LAPLACIEN(PHI) = -2 DANS LA SECTION -
-# --- - PHI = 0 SUR LE CONTOUR : -
-# ------------------------------------------------------------
-#
-# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR
-# --- DE LA SECTION
-# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION :
-# -------------------------------------------------------
-
- motscles={}
- if GROUP_MA_INTE:
- motscles['LIAISON_UNIF']=_F(GROUP_MA=GROUP_MA_INTE,DDL='TEMP'),
- __chart1=AFFE_CHAR_THER(MODELE=__nomoth,
- TEMP_IMPO =_F(GROUP_NO=GROUP_MA_BORD,
- TEMP=0. ),
- SOURCE =_F(TOUT='OUI',
- SOUR=2.0),
- **motscles )
-
-# --- POUR CHAQUE TROU DE LA SECTION :
-# --- .ON A IMPOSE QUE PHI EST CONSTANT SUR LE CONTOUR INTERIEUR
-# --- EN FAISANT LE LIAISON_UNIF DANS LE AFFE_CHAR_THER PRECEDENT
-# --- .ON IMPOSE EN PLUS D(PHI)/DN = 2*AIRE(TROU)/L(TROU)
-# --- OU D/DN DESIGNE LA DERIVEE PAR RAPPORT A LA
-# --- NORMALE ET L DESIGNE LA LONGUEUR DU BORD DU TROU :
-# -------------------------------------------------------
-
- if GROUP_MA_INTE:
- __tbaire=POST_ELEM(MODELE=__nomoth,
- AIRE_INTERNE=_F(GROUP_MA_BORD=GROUP_MA_INTE,), )
-
- motscles={}
- motscles['FLUX_REP']=[]
- if type(GROUP_MA_INTE)==types.StringType:
- motscles['FLUX_REP']=_F(GROUP_MA=GROUP_MA_INTE,CARA_TORSION=__tbaire)
- else:
- motscles['FLUX_REP']=[]
- for grma in GROUP_MA_INTE:
- motscles['FLUX_REP'].append(_F(GROUP_MA=grma,CARA_TORSION=__tbaire),)
- __chart2=AFFE_CHAR_THER(MODELE=__nomoth,**motscles)
-
-# --- RESOLUTION DE LAPLACIEN(PHI) = -2
-# --- AVEC PHI = 0 SUR LE CONTOUR :
-# ----------------------------------------
-
- motscles={}
- motscles['EXCIT']=[_F(CHARGE=__chart1,),]
- if GROUP_MA_INTE:
- motscles['EXCIT'].append(_F(CHARGE=__chart2,))
- __tempe1=THER_LINEAIRE(MODELE=__nomoth,
- CHAM_MATER=__chmath,
- SOLVEUR=_F(STOP_SINGULIER='NON',),
- **motscles )
-
-#
-# ----------------------------------------------
-# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT -
-# --- - ET DES COEFFICIENTS DE CISAILLEMENT : -
-# ----------------------------------------------
-#
-# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR
-# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE
-# --- PAR UNE FONCTION EGALE A Y :
-# --------------------------
-
- __fnsec1=DEFI_FONCTION(NOM_PARA='X',
- VALE=(0.,0.,10.,10.),
- PROL_DROITE='LINEAIRE',
- PROL_GAUCHE='LINEAIRE',
- )
-
- __fnsec0=DEFI_CONSTANTE(VALE=0.,)
-
-# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION
-# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION :
-# --------------------------------------------------
-
-
- motscles={}
- if NOEUD:
- motscles['TEMP_IMPO']=(_F(NOEUD=NOEUD,TEMP=__fnsec0))
- __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth,
- SOURCE=_F(TOUT='OUI',
- SOUR=__fnsec1,),
- **motscles )
-
-# --- RESOLUTION DE LAPLACIEN(PHI) = -Y
-# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR :
-# ------------------------------------------------
-
- __tempe2=THER_LINEAIRE(MODELE=__nomoth,
- CHAM_MATER=__chmath,
- EXCIT=_F(CHARGE=__chart2,),
- SOLVEUR=_F(STOP_SINGULIER='NON',),
- )
-
-# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR
-# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE
-# --- PAR UNE FONCTION EGALE A Z :
-# --------------------------
-
- __fnsec2=DEFI_FONCTION(NOM_PARA='Y',
- VALE=(0.,0.,10.,10.),
- PROL_DROITE='LINEAIRE',
- PROL_GAUCHE='LINEAIRE',
- )
-
-# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION
-# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION :
-# --------------------------------------------------
-
- motscles={}
- if NOEUD:
- motscles['TEMP_IMPO']=_F(NOEUD=NOEUD,TEMP=__fnsec0)
- __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth,
- SOURCE=_F(TOUT='OUI',
- SOUR=__fnsec2,),
- **motscles)
-
-# --- RESOLUTION DE LAPLACIEN(PHI) = -Z
-# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR :
-# ------------------------------------------------
-
- __tempe3=THER_LINEAIRE(MODELE=__nomoth,
- CHAM_MATER=__chmath,
- EXCIT=_F(CHARGE=__chart3,),
- SOLVEUR=_F(STOP_SINGULIER='NON',),
- )
-
-# --- CALCUL DE LA CONSTANTE DE TORSION :
-# ---------------------------------
-
- motscles={}
- if GROUP_MA_INTE:
- motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres,
- LAPL_PHI=__tempe1,
- TOUT='OUI',
- OPTION='CARA_TORSION',
- GROUP_MA_INTE=GROUP_MA_INTE,)
- else:
- motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres,
- LAPL_PHI=__tempe1,
- TOUT='OUI',
- OPTION='CARA_TORSION', )
- nomres=POST_ELEM(reuse=nomres,
- MODELE=__nomoth,
- CHAM_MATER=__chmath,
- **motscles )
-
-# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU
-# --- CENTRE DE CISAILLEMENT/TORSION :
-# ------------------------------
-
- nomres=POST_ELEM(reuse=nomres,
- MODELE=__nomoth,
- CHAM_MATER=__chmath,
- CARA_POUTRE=_F(CARA_GEOM=nomres,
- LAPL_PHI_Y=__tempe2,
- LAPL_PHI_Z=__tempe3,
- TOUT='OUI',
- OPTION='CARA_CISAILLEMENT',), )
-
-#
-# ------------------------------------------------------------
-# --- - CALCUL DE L INERTIE DE GAUCHISSEMENT PAR RESOLUTION DE -
-# --- - LAPLACIEN(OMEGA) = 0 DANS LA SECTION -
-# --- - AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ SUR LE -
-# --- - CONTOUR DE LA SECTION -
-# --- - NY ET NZ SONT LES COMPOSANTES DU VECTEUR N NORMAL -
-# --- - A CE CONTOUR -
-# --- - ET SOMME_S(OMEGA.DS) = 0 -
-# --- - OMEGA EST LA FONCTION DE GAUCHISSEMENT -
-# --- - L INERTIE DE GAUCHISSEMENT EST SOMME_S(OMEGA**2.DS) -
-# ------------------------------------------------------------
-#
-# --- CREATION D UN MAILLAGE DONT LES COORDONNEES SONT EXPRIMEES
-# --- DANS LE REPERE PRINCIPAL D INERTIE MAIS AVEC COMME ORIGINE
-# --- LE CENTRE DE TORSION DE LA SECTION, ON VA DONC UTILISER
-# --- LE MAILLAGE DE NOM NOMAPI DONT LES COORDONNEES SONT
-# --- EXPRIMEES DANS LE REPERE PRINCIPAL D'INERTIE, L'ORIGINE
-# --- ETANT LE CENTRE DE GRAVITE DE LA SECTION (QUI EST DONC
-# --- A CHANGER) :
-# ----------
-
- __nomapt=CREA_MAILLAGE(MAILLAGE=__nomapi,
- REPERE=_F(TABLE=nomres,
- NOM_ORIG='TORSION',) )
-
-# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE
-# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE :
-# ------------------------------------------------------
-
- __nomot2=AFFE_MODELE(MAILLAGE=__nomapt,
- AFFE=_F(TOUT='OUI',
- PHENOMENE='THERMIQUE',
- MODELISATION='PLAN', ) )
-
-# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT :
-# ---------------------------------------------------------
-
- __chmat2=AFFE_MATERIAU(MAILLAGE=__nomapt,
- AFFE=_F(TOUT='OUI',
- MATER=__nomath, ), )
-
-# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR
-# --- LA COMPOSANTE SELON Y DU FLUX A IMPOSER SUR LE CONTOUR
-# --- PAR UNE FONCTION EGALE A -X :
-# ---------------------------
-
- __fnsec3=DEFI_FONCTION(NOM_PARA='X',
- VALE=(0.,0.,10.,-10.),
- PROL_DROITE='LINEAIRE',
- PROL_GAUCHE='LINEAIRE',
- )
-
-# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR
-# --- LA COMPOSANTE SELON X DU FLUX A IMPOSER SUR LE CONTOUR
-# --- PAR UNE FONCTION EGALE A Y :
-# --------------------------
-
- __fnsec4=DEFI_FONCTION(NOM_PARA='Y',
- VALE=(0.,0.,10.,10.),
- PROL_DROITE='LINEAIRE',
- PROL_GAUCHE='LINEAIRE',
- )
-
-# --- DANS LE BUT D IMPOSER LA RELATION LINEAIRE ENTRE DDLS
-# --- SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION
-# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE
-# --- N = 0, N ETANT L EFFORT NORMAL)
-# --- ON CALCULE LE VECTEUR DE CHARGEMENT DU A UN TERME SOURCE EGAL
-# --- A 1., LES TERMES DE CE VECTEUR SONT EGAUX A
-# --- SOMME_SECTION(NI.DS) ET SONT DONC LES COEFFICIENTS DE
-# --- LA RELATION LINEAIRE A IMPOSER.
-# --- ON DEFINIT DONC UN CHARGEMENT DU A UN TERME SOURCE EGAL A 1 :
-# -----------------------------------------------------------
-
- __chart4=AFFE_CHAR_THER(MODELE=__nomot2,
- SOURCE=_F(TOUT='OUI',
- SOUR=1.0), )
-
-# --- ON CALCULE LE VECT_ELEM DU AU CHARGEMENT PRECEDENT
-# --- IL S AGIT DES VECTEURS ELEMENTAIRES DONT LE TERME
-# --- AU NOEUD COURANT I EST EGAL A SOMME_SECTION(NI.DS) :
-# --------------------------------------------------
-
- __vecel=CALC_VECT_ELEM(CHARGE=__chart4,
- OPTION='CHAR_THER'
- )
-
-# --- ON CALCULE LE MATR_ELEM DES MATRICES ELEMENTAIRES
-# --- DE CONDUCTIVITE UNIQUEMENT POUR GENERER LE NUME_DDL
-# --- SUR-LEQUEL S APPUIERA LE CHAMNO UTILISE POUR ECRIRE LA
-# --- RELATION LINEAIRE ENTRE DDLS :
-# ----------------------------
-
- __matel=CALC_MATR_ELEM(MODELE=__nomot2,
- CHAM_MATER=__chmat2,
- CHARGE=__chart4,
- OPTION='RIGI_THER',)
-
-# --- ON DEFINIT LE NUME_DDL ASSOCIE AU MATR_ELEM DEFINI
-# --- PRECEDEMMENT POUR CONSTRUIRE LE CHAMNO UTILISE POUR ECRIRE LA
-# --- RELATION LINEAIRE ENTRE DDLS :
-# ----------------------------
-
- __numddl=NUME_DDL(MATR_RIGI=__matel,
- METHODE='LDLT', )
-
-# --- ON CONSTRUIT LE CHAMNO QUI VA ETRE UTILISE POUR ECRIRE LA
-# --- RELATION LINEAIRE ENTRE DDLS :
-# ----------------------------
-
- __chamno=ASSE_VECTEUR(VECT_ELEM=__vecel,
- NUME_DDL=__numddl, )
-
-# --- ON IMPOSE LA RELATION LINEAIRE ENTRE DDLS
-# --- SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION
-# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE
-# --- N = 0, N ETANT L EFFORT NORMAL)
-# --- POUR IMPOSER CETTE RELATION ON PASSE PAR LIAISON_CHAMNO,
-# --- LES TERMES DU CHAMNO (I.E. SOMME_SECTION(NI.DS))
-# --- SONT LES COEFFICIENTS DE LA RELATION LINEAIRE :
-# ---------------------------------------------
-
- __chart5=AFFE_CHAR_THER(MODELE=__nomot2,
- LIAISON_CHAMNO=_F(CHAM_NO=__chamno,
- COEF_IMPO=0.), )
-
-# --- LE CHARGEMENT EST UN FLUX REPARTI NORMAL AU CONTOUR
-# --- DONT LES COMPOSANTES SONT +Z (I.E. +Y) ET -Y (I.E. -X)
-# --- SELON LA DIRECTION NORMALE AU CONTOUR :
-# -------------------------------------
-
- __chart6=AFFE_CHAR_THER_F(MODELE=__nomot2,
- FLUX_REP=_F(GROUP_MA=GROUP_MA_BORD,
- FLUX_X =__fnsec4,
- FLUX_Y =__fnsec3,), )
-
-# --- RESOLUTION DE LAPLACIEN(OMEGA) = 0
-# --- AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ SUR LE CONTOUR DE LA SECTION
-# --- ET SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION
-# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE
-# --- N = 0, N ETANT L EFFORT NORMAL) :
-# -------------------------------
-
- __tempe4=THER_LINEAIRE(MODELE=__nomot2,
- CHAM_MATER=__chmat2,
- EXCIT=(_F(CHARGE=__chart5,),
- _F(CHARGE=__chart6,),),
- SOLVEUR=_F(METHODE='LDLT',
- RENUM='SANS',
- STOP_SINGULIER='NON',), )
-
-# --- CALCUL DE L INERTIE DE GAUCHISSEMENT :
-# -------------------------------------
-
- nomres=POST_ELEM(reuse=nomres,
- MODELE=__nomot2,
- CHAM_MATER=__chmat2,
- CARA_POUTRE=_F(CARA_GEOM=nomres,
- LAPL_PHI=__tempe4,
- TOUT='OUI',
- OPTION='CARA_GAUCHI'), )
-
-#
-# ==================================================================
-# --- = CALCUL DE LA CONSTANTE DE TORSION SUR CHAQUE GROUPE =
-# --- = ET DU CENTRE DE TORSION/CISAILLEMENT =
-# --- = DES COEFFICIENTS DE CISAILLEMENT =
-# ==================================================================
-#
-
-
- if GROUP_MA_BORD and GROUP_MA:
-
- if type(GROUP_MA_BORD)==types.StringType :
- l_group_ma_bord=[GROUP_MA_BORD,]
- else:
- l_group_ma_bord= GROUP_MA_BORD
- if type(GROUP_MA)==types.StringType :
- l_group_ma=[GROUP_MA,]
- else:
- l_group_ma= GROUP_MA
-
- if NOEUD:
- if type(NOEUD)==types.StringType :
- l_noeud=[NOEUD,]
- else:
- l_noeud= NOEUD
-
- if len(l_group_ma)!=len(l_group_ma_bord):
- ier=ier+1
- self.cr.fatal("GROUP_MA et GROUP_MA_BORD incoherents")
- return ier
- if NOEUD and (len(l_group_ma)!=len(l_noeud)):
- ier=ier+1
- self.cr.fatal("GROUP_MA et NOEUD incoherents")
- return ier
-
- for i in range(0,len(l_group_ma_bord)):
-
-# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS
-# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE :
-# ---------------------------------------------------------
-
- __nomlma=DEFI_GROUP(reuse=__nomlma,
- MAILLAGE=__nomlma,
- CREA_GROUP_NO=_F(GROUP_MA=l_group_ma_bord[i],) )
-
-
-# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES
-# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL
-# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION :
-# ---------------------------------------------------------------
-
- __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma,
- REPERE=_F(TABLE=nomres,
- NOM_ORIG='CDG',
- GROUP_MA=l_group_ma[i], ), )
-
-# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE
-# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE :
-# ------------------------------------------------------
-
- __nomoth=AFFE_MODELE(MAILLAGE=__nomapi,
- AFFE=_F(GROUP_MA=l_group_ma[i],
- PHENOMENE='THERMIQUE',
- MODELISATION='PLAN', ) )
-
-# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON DEFINIT UN
-# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT :
-# --- LAMBDA = 1, RHO*CP = 0 :
-# ----------------------
-
- __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0,
- RHO_CP=0.0, ), )
-
-# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT :
-# ---------------------------------------------------------
-
- __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi,
- AFFE=_F(TOUT='OUI',
- MATER=__nomath ), )
-
-#
-# ------------------------------------------------------------
-# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION -
-# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2 -
-# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION : -
-# --- - LAPLACIEN(PHI) = -2 DANS LA SECTION -
-# --- - PHI = 0 SUR LE CONTOUR : -
-# ------------------------------------------------------------
-#
-# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR
-# --- DE LA SECTION
-# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION :
-# -------------------------------------------------------
-
- __chart1=AFFE_CHAR_THER(MODELE=__nomoth,
- TEMP_IMPO=_F(GROUP_NO=l_group_ma_bord[i],
- TEMP=0.0 ),
- SOURCE=_F(TOUT='OUI',
- SOUR=2.0 ) )
-
-# --- RESOLUTION DE LAPLACIEN(PHI) = -2
-# --- AVEC PHI = 0 SUR LE CONTOUR :
-# ----------------------------------------
-
- __tempe1=THER_LINEAIRE(MODELE=__nomoth,
- CHAM_MATER=__chmath,
- EXCIT=_F(CHARGE=__chart1, ),
- SOLVEUR=_F(STOP_SINGULIER='NON',) )
-
-#
-# ----------------------------------------------
-# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT -
-# --- - ET DES COEFFICIENTS DE CISAILLEMENT : -
-# ----------------------------------------------
-#
-# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR
-# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE
-# --- PAR UNE FONCTION EGALE A Y :
-# --------------------------
-
- __fnsec1=DEFI_FONCTION(NOM_PARA='X',
- VALE=(0.,0.,10.,10.),
- PROL_DROITE='LINEAIRE',
- PROL_GAUCHE='LINEAIRE', )
-
- __fnsec0=DEFI_CONSTANTE(VALE=0.,)
-
-# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION
-# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION :
-# --------------------------------------------------
-
- __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth,
- TEMP_IMPO=_F(NOEUD=l_noeud[i],
- TEMP=__fnsec0),
- SOURCE=_F(TOUT='OUI',
- SOUR=__fnsec1) )
-
-# --- RESOLUTION DE LAPLACIEN(PHI) = -Y
-# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR :
-# ------------------------------------------------
-
- __tempe2=THER_LINEAIRE(MODELE=__nomoth,
- CHAM_MATER=__chmath,
- EXCIT=_F(CHARGE=__chart2, ),
- SOLVEUR=_F(STOP_SINGULIER='NON',) )
-
-# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR
-# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE
-# --- PAR UNE FONCTION EGALE A Z :
-# --------------------------
-
- __fnsec2=DEFI_FONCTION(NOM_PARA='Y',
- VALE=(0.,0.,10.,10.),
- PROL_DROITE='LINEAIRE',
- PROL_GAUCHE='LINEAIRE', )
-
-# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION
-# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION :
-# --------------------------------------------------
-
- __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth,
- TEMP_IMPO=_F(NOEUD=l_noeud[i],
- TEMP=__fnsec0),
- SOURCE=_F(TOUT='OUI',
- SOUR=__fnsec2) )
-
-# --- RESOLUTION DE LAPLACIEN(PHI) = -Z
-# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR :
-# ------------------------------------------------
-
- __tempe3=THER_LINEAIRE(MODELE=__nomoth,
- CHAM_MATER=__chmath,
- EXCIT=_F(CHARGE=__chart3, ),
- SOLVEUR=_F(STOP_SINGULIER='NON',) )
-
-# --- CALCUL DE LA CONSTANTE DE TORSION :
-# ---------------------------------
-
- nomres=POST_ELEM(reuse=nomres,
- MODELE=__nomoth,
- CHAM_MATER=__chmath,
- CARA_POUTRE=_F(CARA_GEOM=nomres,
- LAPL_PHI=__tempe1,
- GROUP_MA=l_group_ma[i],
- OPTION='CARA_TORSION' ), )
-
-# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU
-# --- CENTRE DE CISAILLEMENT/TORSION :
-# ------------------------------
-
- nomres=POST_ELEM(reuse=nomres,
- MODELE=__nomoth,
- CHAM_MATER=__chmath,
- CARA_POUTRE=_F(CARA_GEOM=nomres,
- LAPL_PHI_Y=__tempe2,
- LAPL_PHI_Z=__tempe3,
- GROUP_MA=l_group_ma[i],
- LONGUEUR=LONGUEUR,
- MATERIAU=MATERIAU,
- LIAISON =LIAISON,
- OPTION='CARA_CISAILLEMENT' ), )
-
- return ier
-
+++ /dev/null
-#@ MODIF macro_elas_mult_ops Macro DATE 11/06/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.
-# ======================================================================
-
-def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL,
- CHAR_MECA_GLOBAL,CHAR_CINE_GLOBAL,LIAISON_DISCRET,
- CAS_CHARGE,SOLVEUR,**args):
- """
- Ecriture de la macro MACRO_ELAS_MULT
- """
- ier=0
- import types
- from Accas import _F
-
- # On met le mot cle NUME_DDL dans une variable locale pour le proteger
- numeddl=NUME_DDL
- # On importe les definitions des commandes a utiliser dans la macro
- CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM')
- NUME_DDL =self.get_cmd('NUME_DDL')
- ASSE_MATRICE =self.get_cmd('ASSE_MATRICE')
- FACT_LDLT =self.get_cmd('FACT_LDLT')
- CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM')
- ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR')
- RESO_LDLT =self.get_cmd('RESO_LDLT')
- CREA_RESU =self.get_cmd('CREA_RESU')
- CALC_ELEM =self.get_cmd('CALC_ELEM')
- CALC_NO =self.get_cmd('CALC_NO')
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- # Le concept sortant (de type mult_elas ou fourier_elas) est nommé
- # 'nomres' dans le contexte de la macro
-
- self.DeclareOut('nomres',self.sd)
-
- ielas = 0
- ifour = 0
- for m in CAS_CHARGE:
- if m['NOM_CAS']:
- ielas=1 # mot clé NOM_CAS présent sous CAS_CHARGE
- tyresu = 'MULT_ELAS'
- else:
- ifour=1 # mot clé MODE_FOURIER présent sous CAS_CHARGE
- tyresu = 'FOURIER_ELAS'
- if ielas==1 and ifour==1:
- ier=ier+1
- self.cr.fatal("""On ne peut avoir a la fois NOM_CAS et MODE_FOURIER""")
- return ier
-
- if (numeddl in self.sdprods) or (numeddl==None):
- # Si le concept numeddl est dans self.sdprods ou n est pas nommé
- # il doit etre produit par la macro
- # il faudra donc appeler la commande NUME_DDL
- lnume = 1
- else:
- lnume = 0
-
- if ielas==1 :
- motscles={}
- if CHAR_MECA_GLOBAL: motscles['CHARGE'] =CHAR_MECA_GLOBAL
- elif CHAR_CINE_GLOBAL: motscles['CHARGE'] =CHAR_CINE_GLOBAL
- if CHAM_MATER : motscles['CHAM_MATER']=CHAM_MATER
- if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM
- __nomrig=CALC_MATR_ELEM(OPTION='RIGI_MECA',MODELE=MODELE,**motscles)
-
- if lnume:
- # On peut passer des mots cles egaux a None. Ils sont ignores
- motscles={}
- if SOLVEUR:
- motscles['METHODE'] =SOLVEUR['METHODE']
- motscles['RENUM'] =SOLVEUR['RENUM']
- else:
- motscles['METHODE'] ='MULT_FRONT'
- motscles['RENUM'] ='METIS'
- if numeddl!=None:
- self.DeclareOut('num',numeddl)
- num=NUME_DDL(MATR_RIGI=__nomrig,**motscles)
- else:
- _num=NUME_DDL(MATR_RIGI=__nomrig,**motscles)
- num=_num
- else:
- num=numeddl
-
- __nomras=ASSE_MATRICE(MATR_ELEM=__nomrig,NUME_DDL=num)
-
- __nomraf=FACT_LDLT(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER'])
-
-#####################################################################
-# boucle sur les items de CAS_CHARGE
-
- nomchn=[]
- iocc=0
- for m in CAS_CHARGE:
- iocc=iocc+1
-
- if ifour:
- motscles={}
- if CHAR_MECA_GLOBAL: motscles['CHARGE'] =CHAR_MECA_GLOBAL
- elif CHAR_CINE_GLOBAL: motscles['CHARGE'] =CHAR_CINE_GLOBAL
- if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER
- if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM
- motscles['MODE_FOURIER'] =m['MODE_FOURIER']
- __nomrig=CALC_MATR_ELEM(OPTION='RIGI_MECA',MODELE=MODELE,**motscles)
-
- if lnume:
- _num=NUME_DDL(MATR_RIGI=__nomrig,METHODE=SOLVEUR['METHODE'],RENUM=SOLVEUR['RENUM'])
- num=_num
- lnume=0
-
- __nomras=ASSE_MATRICE(MATR_ELEM=__nomrig,NUME_DDL=num)
-
- __nomraf=FACT_LDLT(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER'])
-
-
- if m['VECT_ASSE']==None :
- motscles={}
- if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER
- if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM
- if ifour : motscles['MODE_FOURIER'] =m['MODE_FOURIER']
- if m['CHAR_MECA'] : motscles['CHARGE'] =m['CHAR_MECA']
- elif m['CHAR_CINE'] : motscles['CHARGE'] =m['CHAR_CINE']
- __nomvel=CALC_VECT_ELEM(OPTION='CHAR_MECA',**motscles)
- __nomasv=ASSE_VECTEUR(VECT_ELEM=__nomvel,NUME_DDL=num)
- else :
- __nomasv=m['VECT_ASSE']
-
-
- __nomchn=RESO_LDLT(MATR_FACT=__nomraf,CHAM_NO=__nomasv,TITRE=m['SOUS_TITRE'])
- nomchn.append(__nomchn)
-
-# fin de la boucle sur les items de CAS_CHARGE
-#####################################################################
-
- motscles={}
- iocc=0
- if ielas :
- motscles['AFFE']=[]
- for m in CAS_CHARGE:
- motscles['AFFE'].append(_F(CHAM_GD=nomchn[iocc],
- NOM_CAS=m['NOM_CAS'],) )
- iocc=iocc+1
- else :
- motscles['AFFE']=[]
- for m in CAS_CHARGE:
- motscles['AFFE'].append(_F(CHAM_GD=nomchn[iocc],
- NUME_MODE=m['MODE_FOURIER'],
- TYPE_MODE=m['TYPE_MODE'],) )
- iocc=iocc+1
- nomres=CREA_RESU(OPERATION='AFFE',TYPE_RESU=tyresu,NOM_CHAM='DEPL',**motscles)
-
-#####################################################################
-# boucle sur les items de CAS_CHARGE pour CALC_ELEM ete CALC_NO
-
- iocc=0
- for m in CAS_CHARGE:
- iocc=iocc+1
-
- if m['OPTION']:
- nbel=0
- nbno=0
- liste_el=[]
- liste_no=[]
- if type(m['OPTION'])==types.StringType:
- if m['OPTION'] in ('FORC_NODA','REAC_NODA',
- 'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL',
- 'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',):
- nbno=nbno+1
- liste_no.append(m['OPTION'])
- else:
- nbel=nbel+1
- liste_el.append(m['OPTION'])
- else:
- for opt in m['OPTION']:
- if opt in ('FORC_NODA','REAC_NODA',
- 'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL',
- 'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',):
- nbno=nbno+1
- liste_no.append(opt)
- else:
- nbel=nbel+1
- liste_el.append(opt)
-
- lreac=0
- if nbel:
- motscles={}
- if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER
- if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM
- if ielas:
- motscles['NOM_CAS']=m['NOM_CAS']
- else:
- motscles['NUME_MODE']=m['MODE_FOURIER']
- motscles['EXCIT']=[]
- if m['CHAR_MECA'] :
- for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt))
- elif m['CHAR_CINE'] :
- for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt))
- if CHAR_MECA_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_MECA_GLOBAL))
- elif CHAR_CINE_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_CINE_GLOBAL))
- nomres=CALC_ELEM(reuse=nomres,
- RESULTAT=nomres,
- MODELE=MODELE,
- NIVE_COUCHE=m['NIVE_COUCHE'],
- NUME_COUCHE=m['NUME_COUCHE'],
- OPTION=tuple(liste_el),
- **motscles)
- if nbno:
- motscles={}
- if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER
- if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM
- if ielas:
- motscles['NOM_CAS']=m['NOM_CAS']
- else:
- motscles['NUME_MODE']=m['MODE_FOURIER']
- motscles['EXCIT']=[]
- if m['CHAR_MECA'] :
- for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt))
- elif m['CHAR_CINE'] :
- for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt))
- if CHAR_MECA_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_MECA_GLOBAL))
- elif CHAR_CINE_GLOBAL: motscles['EXCIT'].append(_F(CHARGE=CHAR_CINE_GLOBAL))
- nomres=CALC_NO(reuse=nomres,
- RESULTAT=nomres,
- MODELE=MODELE,
- OPTION=tuple(liste_no),
- **motscles)
-
-# fin de la boucle sur les items de CAS_CHARGE
-#####################################################################
- return ier
-
+++ /dev/null
-#@ MODIF macro_matr_asse_ops Macro DATE 15/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.
-# ======================================================================
-
-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
-
-# decalage eventuel en premiere position dans la liste de l occurence de MATR_ASSE contenant
-# l option de rigidite
- try :
- for m in MATR_ASSE:
- option=m['OPTION']
- if option in ('RIGI_MECA','RIGI_MECA_LAGR','RIGI_THER','RIGI_ACOU') :
- decal=m
- MATR_ASSE.remove(decal)
- MATR_ASSE.insert(0,decal)
- break
- except: pass
-
- iocc=0
- for m in MATR_ASSE:
- iocc=iocc+1
- option=m['OPTION']
- if iocc == 1 and lnume == 1 and option not in ('RIGI_MECA','RIGI_MECA_LAGR',
- 'RIGI_THER','RIGI_ACOU') :
- ier=ier+1
- self.cr.fatal("UNE DES OPTIONS 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
-
+++ /dev/null
-#@ MODIF macro_miss_3d_ops Macro DATE 11/06/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.
-# ======================================================================
-
-def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS,
- UNITE_MODELE_SOL,UNITE_RESU_IMPE,
- PROJET,REPERTOIRE,OPTION,**args):
- """
- Ecriture de la macro MACRO_MISS_3D
- """
- 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
- FERMER =self.get_cmd('FERMER')
- EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL')
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- FERMER(UNITE=UNITE_IMPR_ASTER)
-
- import aster
- loc_fic=aster.repout()
- miss3d=loc_fic+'miss3d'
-
- if OPTION['TOUT']!=None:
- MODUL2='COMPLET'
- elif OPTION['MODULE']=='CALC_IMPE':
- MODUL2='CALC_IMPE'
- elif OPTION['MODULE']=='MISS_EVOL':
- MODUL2='MISS_PTAS'
- elif OPTION['MODULE']=='PRE_MISS':
- MODUL2='GTASTER'
-
- ETUDE = PROJET
- BASE = REPERTOIRE
- paste = 'fort.'+str(UNITE_IMPR_ASTER)
- popti = 'fort.'+str(UNITE_OPTI_MISS)
- pdsol = 'fort.'+str(UNITE_MODELE_SOL)
- primp = 'fort.'+str(UNITE_RESU_IMPE)
-
- EXEC_LOGICIEL(
- LOGICIEL=miss3d,
- ARGUMENT=(_F(NOM_PARA=MODUL2),
- _F(NOM_PARA=ETUDE),
- _F(NOM_PARA=BASE),
- _F(NOM_PARA=paste),
- _F(NOM_PARA=popti),
- _F(NOM_PARA=pdsol),
- _F(NOM_PARA=primp) ),
- )
-
- return ier
+++ /dev/null
-#@ MODIF macro_mode_meca_ops Macro DATE 11/09/2002 AUTEUR VABHHTS J.PELLET
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-def macro_mode_meca_ops(self,MATR_A,MATR_B,INFO,METHODE,OPTION,CALC_FREQ,
- VERI_MODE,NORM_MODE,FILTRE_MODE,IMPRESSION,**args):
- """
- Ecriture de la macro MACRO_MODE_MECA
- """
- from Accas import _F
- ier=0
-
- # on protege le contenu du mot cle NORM_MODE pour eviter les confusions
- # avec la commande du meme nom
-
- normode=NORM_MODE
-
- # On importe les definitions des commandes a utiliser dans la macro
- MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT')
- NORM_MODE =self.get_cmd('NORM_MODE')
- IMPR_RESU =self.get_cmd('IMPR_RESU')
- EXTR_MODE =self.get_cmd('EXTR_MODE')
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- nompro=None
- iocc=0
- if CALC_FREQ['FREQ']:
- nnfreq=len(CALC_FREQ['FREQ'])
- else:
- lborne=[]
- nnfreq= CALC_FREQ['NB_BLOC_FREQ']+1
- zlborn=(CALC_FREQ['FREQ_MAX']-CALC_FREQ['FREQ_MIN'])/(nnfreq-1)
- for i in range(0,nnfreq):
- lborne.append(CALC_FREQ['FREQ_MIN']+i*zlborn)
-
- motscles={}
- motscles['FILTRE_MODE']=[]
- for i in range(0,nnfreq-1):
- motscit={}
- motscfa={}
- if CALC_FREQ['DIM_SOUS_ESPACE']: motscfa['DIM_SOUS_ESPACE']=CALC_FREQ['DIM_SOUS_ESPACE']
- if CALC_FREQ['COEF_DIM_ESPACE']: motscfa['COEF_DIM_ESPACE']=CALC_FREQ['COEF_DIM_ESPACE']
- if CALC_FREQ['FREQ']:
- motscfa['FREQ']=(CALC_FREQ['FREQ'][i],CALC_FREQ['FREQ'][i+1])
- else:
- motscfa['FREQ']=(lborne[i],lborne[i+1])
- motscit['CALC_FREQ']=_F(OPTION ='BANDE',
- SEUIL_FREQ =CALC_FREQ['SEUIL_FREQ'],
- NPREC_SOLVEUR =CALC_FREQ['NPREC_SOLVEUR'],
- NMAX_ITER_SHIFT =CALC_FREQ['NMAX_ITER_SHIFT'],
- PREC_SHIFT =CALC_FREQ['PREC_SHIFT'],
- **motscfa)
- motscit['VERI_MODE']=_F(STOP_ERREUR=VERI_MODE['STOP_ERREUR'],
- SEUIL =VERI_MODE['SEUIL'],
- STURM =VERI_MODE['STURM'],
- PREC_SHIFT =VERI_MODE['PREC_SHIFT'])
- motscit['STOP_FREQ_VIDE']=CALC_FREQ['STOP_FREQ_VIDE']
-
- if METHODE=='TRI_DIAG':
- if args.has_key('NMAX_ITER_ORTHO'):
- motscit['NMAX_ITER_ORTHO'] =args['NMAX_ITER_ORTHO']
- if args.has_key('PREC_ORTHO'):
- motscit['PREC_ORTHO'] =args['PREC_ORTHO']
- if args.has_key('PREC_LANCZOS'):
- motscit['PREC_LANCZOS'] =args['PREC_LANCZOS']
- if args.has_key('MAX_ITER_QR'):
- motscit['NMAX_ITER_QR'] =args['NMAX_ITER_QR']
- elif METHODE=='JACOBI':
- if args.has_key('NMAX_ITER_BATHE'):
- motscit['NMAX_ITER_BATHE'] =args['NMAX_ITER_BATHE']
- if args.has_key('PREC_BATHE'):
- motscit['PREC_BATHE'] =args['PREC_BATHE']
- if args.has_key('NMAX_ITER_JACOBI'):
- motscit['NMAX_ITER_JACOBI']=args['NMAX_ITER_JACOBI']
- if args.has_key('PREC_JACOBI'):
- motscit['PREC_JACOBI'] =args['PREC_JACOBI']
- elif METHODE=='SORENSEN':
- if args.has_key('NMAX_ITER_SOREN'):
- motscit['NMAX_ITER_SOREN'] =args['NMAX_ITER_SOREN']
- if args.has_key('PARA_ORTHO_SOREN'):
- motscit['PARA_ORTHO_SOREN']=args['PARA_ORTHO_SOREN']
- if args.has_key('PREC_SOREN'):
- motscit['PREC_SOREN'] =args['PREC_SOREN']
-
- __nomre0=MODE_ITER_SIMULT(MATR_A =MATR_A,
- MATR_B =MATR_B,
- INFO =INFO,
- METHODE =METHODE,
- OPTION =OPTION,
- **motscit)
-
- __nomre0=NORM_MODE(reuse =__nomre0,
- MASS_INER =normode['MASS_INER'],
- MODE =__nomre0,
- NORME =normode['NORME'],
- INFO =normode['INFO'],)
-
- if IMPRESSION['TOUT_PARA']=='OUI':
- IMPR_RESU(RESU=_F(RESULTAT=__nomre0,
- TOUT_ORDRE='OUI',
- TOUT_CHAM ='NON',
- TOUT_PARA ='OUI',) )
-
- if FILTRE_MODE :
- motscles['FILTRE_MODE'].append(_F(MODE =__nomre0,
- CRIT_EXTR =FILTRE_MODE['CRIT_EXTR'],
- SEUIL =FILTRE_MODE['SEUIL'], ))
- else:
- motscles['FILTRE_MODE'].append(_F(MODE =__nomre0,
- TOUT_ORDRE='OUI',) )
-
- motscles['IMPRESSION']=_F(CUMUL =IMPRESSION['CUMUL'],
- CRIT_EXTR=IMPRESSION['CRIT_EXTR'],)
- self.DeclareOut('nomres',self.sd)
- nomres=EXTR_MODE(**motscles)
- return ier
+++ /dev/null
-#@ MODIF macro_proj_base_ops Macro DATE 11/06/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.
-# ======================================================================
-
-def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,**args):
- """
- Ecriture de la macro MACRO_PROJ_BASE
- """
- ier=0
- # On importe les definitions des commandes a utiliser dans la macro
- NUME_DDL_GENE =self.get_cmd('NUME_DDL_GENE')
- PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE')
- PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE')
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- nompro=None
- iocc=0
- if MATR_ASSE_GENE:
- for m in MATR_ASSE_GENE:
- iocc=iocc+1
- if (iocc==1 or (m['PROFIL']!=nompro)):
- _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=m['PROFIL'])
- nompro=m['PROFIL']
- motscles={}
- if m['MATR_ASSE'] : motscles['MATR_ASSE'] =m['MATR_ASSE']
- elif m['MATR_ASSE_GENE']: motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE']
- else:
- ier=ier+1
- self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
- return ier
- self.DeclareOut('mm',m['MATRICE'])
- mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles)
-
- iocc=0
- if VECT_ASSE_GENE:
- for v in VECT_ASSE_GENE:
- iocc=iocc+1
- if (iocc==1 and not MATR_ASSE_GENE):
- _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE='DIAG')
- motscles={}
- if v['VECT_ASSE'] : motscles['VECT_ASSE'] =v['VECT_ASSE']
- elif v['VECT_ASSE_GENE']: motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE']
- else:
- ier=ier+1
- self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
- return ier
- motscles['TYPE_VECT']=v['TYPE_VECT']
- self.DeclareOut('vv',v['VECTEUR'])
- vv=PROJ_VECT_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles)
-
- return ier
+++ /dev/null
-#@ MODIF pre_gmsh_ops Macro DATE 11/06/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.
-# ======================================================================
-
-def pre_gmsh_ops(self,UNITE_MAILLAGE,UNITE_GMSH,MODI_QUAD,**args):
- """
- Ecriture de la macro PRE_GMSH
- """
- import os
- from Macro.ajout_quad_gmsh import ajout_quad_gmsh
- ier=0
-
- PRE_GMSH_LECT =self.get_cmd('PRE_GMSH_LECT')
-
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- if MODI_QUAD=='OUI':
- cur_dir=os.getcwd()
- unit = str(UNITE_GMSH)
- nomFichierGmsh = cur_dir+'/fort.'+unit
- nomFichierMail = cur_dir+'/sortie'
-
-# récupération du fichier .msh complet mis dans la string 'texte'
-
- fproc=open(nomFichierGmsh,'r')
- texte=fproc.read()
- fproc.close()
-
- resu=ajout_quad_gmsh(texte)
- if not resu:
- ier=ier+1
- self.cr.fatal("Erreur dans la methode python de transformation mailles lineaires-quadratiques")
- return ier
-
- fsort=open(nomFichierMail,'w')
- fsort.write(resu)
- fsort.close()
- os.system('cp '+nomFichierMail+' '+nomFichierGmsh)
-
- PRE_GMSH_LECT(UNITE_MAILLAGE = UNITE_MAILLAGE,
- UNITE_GMSH = UNITE_GMSH )
-
- return ier
-
+++ /dev/null
-#@ MODIF reca_algo Macro DATE 24/09/2002 AUTEUR PABHHHH N.TARDIEU
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-import Numeric
-import copy
-import LinearAlgebra
-
-
-
-def calcul_gradient(A,erreur):
- grad = Numeric.dot(Numeric.transpose(A),erreur)
- return grad
-
-
-#-------------------------------------------
-#classe gérant l'adimensionnement et le dimensionnemnt
-class Dimension:
- #le constructeur calcul la matrice D et son inverse
- def __init__(self,val_initiales,para):
- self.val_init = val_initiales
- dim =len(self.val_init)
- self.D = Numeric.zeros((dim,dim),Numeric.Float)
- for i in range(dim):
- self.D[i][i] = self.val_init[i]
- self.inv_D=LinearAlgebra.inverse(self.D)
-
-
- def adim_sensi(self,A):
- for i in range(A.shape[0]):
- for j in range(A.shape[1]):
- A[i,j] = A[i,j] * self.val_init[j]
- return A
-
-
-
- def redim_sensi(self,A):
- for i in range(A.shape[0]):
- for j in range(A.shape[1]):
- A[i,j] = A[i,j] / self.val_init[j]
- return A
-
-
- def adim(self,tab):
- tab_adim = Numeric.dot(self.inv_D,copy.copy(tab))
- return tab_adim
-
-
- def redim(self,tab_adim):
- tab = Numeric.dot(self.D,tab_adim)
- return tab
-
-#------------------------------------------
-def cond(matrix):
- e=LinearAlgebra.eigenvalues(matrix)
- size=len(e)
- e=Numeric.sort(e)
- try:
- condi=e[size-1]/e[0]
- except ZeroDivisionError:
- condi=0.0
- return condi
-
-#-----------------------------------------
-def norm(matrix):
- e=LinearAlgebra.eigenvalues(matrix)
- size=len(e)
- e=Numeric.sort(e)
- norm=e[size-1]
- return norm
-
-#-----------------------------------------
-def lambda_init(matrix):
-# Routine qui calcule la valeur initial du parametre
-# de regularisation l. On le choisit tel que
-# l = alpha*[plus grande valeur propre de AtA]
-# ou alpha = 1.e-3 si AtA est singuliere et 1.e-16 sinon
- condi=cond(matrix)
- id=Numeric.identity(matrix.shape[0])
- if (condi==0.0):
- l=1.e-3*norm(matrix)
- else:
- l=1.e-16*norm(matrix)
- return l
-
-#-----------------------------------------
-
-def Levenberg(val,A,erreur,l):
- #on resoud un systeme lineaire afin que l'on puisse réactualiser les valeurs des parametres
- dim_val = len(val)
- id = Numeric.identity(dim_val)
- delta = LinearAlgebra.solve_linear_equations(Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id ,-1*Numeric.matrixmultiply(Numeric.transpose(A),erreur))
- return delta
-
-def test_bornes(l,val,d,borne_inf,borne_sup):
- test=1
- for i in range(len(val)):
- if((val[i] + d[i] < borne_inf[i]) or (val[i] + d[i] > borne_sup[i])):
- test = 0
- if (test == 0):
- l= l*2
- return test,l
-
-def actualise_lambda(l,new_J,J):
- if (new_J<J):
- l = l/10.
- else:
- l = l*10.
- return l
-
-
-def test_convergence(gradient_init,erreur,A):
- gradient = calcul_gradient(A,erreur)
- epsilon = Numeric.dot(gradient,gradient)/Numeric.dot(gradient_init,gradient_init)
- epsilon = epsilon**0.5
- return epsilon
-
-
-#fonction appellée quand la convergence est atteinte
-#on calcule le Hessien et les valeurs propres et vecteurs propre associés à l'inverse du Hessien
-# a est la sensibilite
-#le hessien=At*A
-def calcul_etat_final(A,iter,max_iter,prec,residu,Messg,ul_out):
- if ((iter < max_iter) or (residu < prec)):
- Hessien = Numeric.matrixmultiply(Numeric.transpose(A),A)
- valeurs_propres,vecteurs_propres = LinearAlgebra.eigenvectors(Hessien)
- Messg.affiche_calcul_etat_final(Hessien,valeurs_propres,vecteurs_propres,ul_out)
+++ /dev/null
-#@ MODIF reca_interp Macro DATE 24/09/2002 AUTEUR PABHHHH N.TARDIEU
-# 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 Numeric
-import Macro
-from Macro.recal import *
-
-#===========================================================================================
-# INTERPOLATION, CALCUL DE SENSIBILITE, ETC....
-
-#--------------------------------------
-class Sim_exp :
-
- def __init__ (self,result_exp) :
- self.resu_exp = result_exp
-
-# Distance verticale d'un point M à une ligne brisée composée de n points
-
- def DistVertAdimPointLigneBrisee (self, M, points) :
- # M = Point (2 colonnes, 1 ligne)
- # points = Tableau de n points (2 colonnes, n lignes)
- # on suppose qu'il existe au moins 2 points,
- # et que les points sont classés selon les abscisses croissantes
- n = len(points)
- if ( M[0] < points[0][0] ) or ( M[0] > points[n-1][0] ) :
- return 0.
- i = 1
- while M[0] > points[i][0] :
- i = i+1
- y_proj_vert = (M[0]-points[i-1][0]) * (points[i][1]-points[i-1][1]) / (points[i][0]-points[i-1][0]) + points[i-1][1]
- d = (M[1] - y_proj_vert)
- # Attention: la distance n'est pas normalisée
- # Attention: problème si points[0][0] = points[1][0] = M[0]
- # Attention: problème si M[1] = 0
- return d
-
-
-# La Fonction Interpole ,interpole une et une seule F_calc sur F_exp et renvoie l'erreur seulement
- def Interpole (self, F_calc,experience) : #ici on passe en argument "une" experience
- n = 0
- resu_num = F_calc
- n_exp = len(experience) # nombre de points sur la courbe expérimentale num.i
- stockage = Numeric.ones(n_exp, Numeric.Float) # matrice de stockage des erreurs en chaque point
- for j in xrange(n_exp) :
- d = self.DistVertAdimPointLigneBrisee(experience[j], resu_num)
- try:
- stockage[n] = d/experience[j][1]
- except ZeroDivisionError:
- stockage[n] = d
- n = n + 1 # on totalise le nombre de points valables
- err = Numeric.ones(n, Numeric.Float)
- for i in xrange(n) :
- err[i] = stockage[i]
- return err
-
- #cette fonction appelle la fonction interpole et retourne les sous fonctionnelle J et l'erreur
- def multi_interpole(self,L_F, reponses): #on interpole toutes les reponses une à une en appelent la methode interpole
- L_erreur=[]
- for i in range(len(reponses)):
- err = self.Interpole(L_F[i],self.resu_exp[i])
- L_erreur.append(err)
- #on transforme L_erreur en tab num
- dim=[]
- J=[]
- for i in range(len(L_erreur)):
- dim.append(len(L_erreur[i]))
- dim_totale = Numeric.sum(dim)
- L_J = self.calcul_J(L_erreur)
- a=0
- erreur = Numeric.zeros((dim_totale),Numeric.Float)
- for n in range(len(L_erreur)):
- for i in range(dim[n]):
- erreur[i+a] = L_erreur[n][i]
- a = dim[n]
- del(L_erreur) #on vide la liste puisqu'on n'en a plus besoin
- return L_J,erreur
-
- #cette fonction retourne seulement l'erreur ,je l'appelle dans la methode sensibilité
- #on interpole toutes les reponses une à une en appelent la methode interpole
- def multi_interpole_sensib(self,L_F,reponses):
- L_erreur=[]
- for i in range(len(reponses)):
- err = self.Interpole(L_F[i],self.resu_exp[i])
- L_erreur.append(err)
- #on transforme L_erreur en tab num
- return L_erreur
-
- def calcul_J(self,L_erreur):
- L_J = []
- for i in range(len(L_erreur)):
- total = 0
- for j in range(len(L_erreur[i])):
- total = total + L_erreur[i][j]**2
- L_J.append(total)
- return L_J
-
- def norme_J(self,L_J_init,L_J,unite_resu):
- #cette fonction calcul une valeur normée de J
- for i in range(len(L_J)):
- try:
- L_J[i] = L_J[i]/L_J_init[i]
- except ZeroDivisionError:
- fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
- fic.write('\012 Problème de division par zéro dans la normalisation de la fonctionnelle.')
- fic.write('\012 Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :'+ str(L_J_init))
- fic.close()
- FIN()
-
- J = Numeric.sum(L_J)
- J = J/len(L_J)
- return J
-
- def sensibilite(self,objet,UL,F,val,para,reponses,pas,unite_resu):
- F_interp=self.multi_interpole_sensib(F, reponses) #F_interp est une liste contenant des tab num des reponses interpolés
- L_A=[] #creation de la liste des matrices de sensibilités
- for i in range(len(reponses)):
- L_A.append(Numeric.zeros((len(self.resu_exp[i]),len(val)),Numeric.Float) )
- #calcul de la sensibilité
- fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
- fic.write('\012Calcul de la sensibilité par rapport à :')
- fic.close()
- for k in range(len(val)): #pour une colone de A
- h = val[k]*pas
- val[k] = val[k] + h
- F_perturbe = calcul_F(objet,UL,para,val,reponses)
- fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
- fic.write(' '+para[k])
- fic.close()
- F_perturbe_interp =self.multi_interpole_sensib(F_perturbe, reponses)
- val[k] = val[k] - h
- for j in range(len(reponses)):
- for i in range(len(self.resu_exp[j])):
- try:
- L_A[j][i,k] = -1*(F_interp[j][i] - F_perturbe_interp[j][i])/h
- except ZeroDivisionError:
- fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
- fic.write('\012 Probleme de division par zéro dans le calcul de la matrice de sensiblité')
- fic.write('\012 Le parametre '+para[k]+'est nul ou plus petit que la précision machine')
- fic.close()
- FIN()
- #on construit la matrice de sensiblité sous forme d'un tab num
- dim =[]
- for i in range(len(L_A)):
- dim.append(len(L_A[i]))
- dim_totale = Numeric.sum(dim)
- a=0
- A = Numeric.zeros((dim_totale,len(val)),Numeric.Float)
- for n in range(len(L_A)):
- for k in range(len(val)):
- for i in range(dim[n]):
- A[i+a][k] = L_A[n][i,k]
- a=dim[n]
- del(L_A) #on ecrase tout ce qu'il y a dans L_A puisqu'on n'en a plus besoin
- return A
-
-
-
+++ /dev/null
-#@ MODIF reca_message Macro DATE 24/09/2002 AUTEUR PABHHHH N.TARDIEU
-# 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
-
-#===========================================================================================
-# AFFICHAGE DES MESSAGES
-
-class Message :
- """classe gérant l'affichage des messages concernant le déroulement de l'optmisation """
- #Constructeur de la classe
- def __init__(self,para,val_init,resu_exp,ul_out):
- self.nom_para = para
- self.res_exp = resu_exp
- res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
- res.write(' <INFO> MACR_RECAL V1.0 \012\012\012')
- res.close()
-
-
- def affiche_result_iter(self,iter,J,val,residu,ul_out):
- res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
- res.write('\012=======================================================\012')
- res.write('Iteration '+str(iter)+' :\012')
- res.write('\012=> Fonctionnelle = '+str(J))
- res.write('\012=> Résidu = '+str(residu))
- res.write('\012=> Paramètres = ')
- for i in range(len(val)):
- res.write('\012 '+ self.nom_para[i]+' = '+str(val[i]) )
- res.write('\012=======================================================\012\012')
- res.close()
-
- def affiche_etat_final_convergence(self,iter,max_iter,prec,residu,ul_out):
- res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
- if ((iter < max_iter) or (residu < prec)):
- res.write('\012=======================================================\012')
- res.write(' CONVERGENCE ATTEINTE ')
- res.write('\012=======================================================\012')
- res.close()
- else:
- res.write("\012=======================================================\012")
- res.write(' CONVERGENCE NON ATTEINTE ')
- res.write("\012 Le nombre maximal d'itération ("+str(max_iter)+") a été dépassé")
- res.write('\012=======================================================\012')
- res.close()
- def affiche_calcul_etat_final(self,Hessien,valeurs_propres,vecteurs_propres,ul_out):
- res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
- res.write('\012Hessien adimensionnel de la fonctionnelle cout: \012')
- res.write(str(Hessien))
- res.write('\012\012Valeurs propres du Hessien:\012')
- res.write(str( valeurs_propres))
- res.write('\012\012Vecteurs propres associés:\012')
- res.write(str(vecteurs_propres))
-
-
-
+++ /dev/null
-#@ MODIF recal Macro DATE 24/09/2002 AUTEUR PABHHHH N.TARDIEU
-# 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 copy
-import Numeric
-import types
-import Gnuplot
-import Cata
-from Cata.cata import *
-from Accas import _F
-
-import os
-
-
-#===========================================================================================
-# DIVERS UTILITAIRES POUR LA MACRO
-
-#transforme_list_Num tranforme transforme les donneés entrées par l'utilsateur en tableau Numeric
-def transforme_list_Num(parametres,res_exp):
- dim_para = len(parametres) #donne le nb de parametres
- val_para = Numeric.zeros(dim_para,Numeric.Float)
- borne_inf = Numeric.zeros(dim_para,Numeric.Float)
- borne_sup = Numeric.zeros(dim_para,Numeric.Float)
- para = []
- for i in range(dim_para):
- para.append(parametres[i][0])
- val_para[i] = parametres[i][1]
- borne_inf[i] = parametres[i][2]
- borne_sup[i] = parametres[i][3]
-
- return para,val_para,borne_inf,borne_sup
-
-def mes_concepts(list_concepts=[],base=None):
- # Fonction qui liste les concepts créés
- for e in base.etapes:
- if e.__class__.__name__ == 'MACRO_ETAPE':
- list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e))
- elif e.sd != None:
- nom_concept=e.sd.get_name()
- if not(nom_concept in list_concepts):
- list_concepts.append( nom_concept )
- return tuple(list_concepts)
-
-
-def detr_concepts(objet):
- liste_concepts=mes_concepts(base=objet.parent)
- for e in liste_concepts:
- nom = string.strip(e)
- DETRUIRE( CONCEPT =objet.g_context['_F'](NOM = nom))
- if objet.jdc.g_context.has_key(nom) : del objet.jdc.g_context[nom]
- del(liste_concepts)
-
-
-def calcul_F(objet,UL,para,val,reponses):
- fic = open('fort.'+str(UL),'r')
- #On stocke le contenu de fort.UL dans la variable fichier qui est un string
- fichier=fic.read()
- #On stocke le contenu initial de fort.UL dans la variable fichiersauv
- fichiersauv=copy.copy(fichier)
- fic.close()
-
- #L est une liste ou l'on va stocker le fichier modifié
- #idée générale :on délimite des 'blocs' dans fichier
- #on modifie ou non ces blocs suivant les besoins
- #on ajoute ces blocs dans la liste L
- L=[]
-
- try:
- #cherche l'indice de DEBUT()
- index_deb=string.index(fichier,'DEBUT(')
- while( fichier[index_deb]!='\012'):
- index_deb=index_deb+1
- fichier = fichier[index_deb+1:]
- #on restreind fichier en enlevant 'DEBUT();'
- except :
- #on va dans l'except si on a modifié le fichier au moins une fois
- pass
-
- try:
- #cherche l'indice de FIN()
- index_fin = string.index(fichier,'FIN(')
- fichier = fichier[:index_fin]
- #on restreind fichier en enlevant 'FIN();'
- except :
- #on va dans l'except si on a modifié le fichier au moins une fois
- index_retour = string.index(fichier,'RETOUR')
- fichier=fichier[:index_retour]
- #--------------------------------------------------------------------------------
- #on cherche à délimiter le bloc des parametres dans le fichier
- #Tout d'abord on cherche les indices d'apparition des paras dans le fichier
- #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise
- #avec le meme ordre de son fichier de commande
- index_para = Numeric.zeros(len(para))
- for i in range(len(para)):
- index_para[i] = string.index(fichier,para[i])
- #On range les indices par ordre croissant afin de déterminer
- #les indice_max et indice_min
- index_para = Numeric.sort(index_para)
- index_first_para = index_para[0]
- index_last_para = index_para[len(index_para)-1]
-
-
- #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation
- bloc_inter ='\012'
- for i in range(len(para)-1):
- j = index_para[i]
- k = index_para[i+1]
- while(fichier[j]!= '\012'):
- j=j+1
- bloc_inter=bloc_inter + fichier[j:k] + '\012'
-
- #on veut se placer sur le premier retour chariot que l'on trouve sur la ligne du dernier para
- i = index_last_para
- while(fichier[i] != '\012'):
- i = i + 1
- index_last_para = i
- #on délimite les blocs suivants:
- pre_bloc = fichier[:index_first_para] #fichier avant premier parametre
- post_bloc = fichier[ index_last_para+ 1:] #fichier après dernier parametre
-
- #on ajoute dans L tous ce qui est avant le premier paramètre
- L.append(pre_bloc)
- #On ajoute à L tous ce qui est entre les parametres
- L.append(bloc_inter)
- #On ajoute la nouvelle valeur des parametres
- dim_para=len(para)
- for j in range(dim_para):
- L.append(para[j]+'='+str(val[j]) + ';' + '\012')
-
- L.append(post_bloc)
- #--------------------------------------------------------------------------------
- #on va ajouter la fonction EXTRACT
- #et on stocke les réponses calculées dans la liste Lrep
- #qui va etre retournée par la fonction calcul_F
- objet.g_context['Lrep'] = []
- L.append('Lrep=[]'+'\012')
- for i in range(len(reponses)):
- L.append('F = EXTRACT('+str(reponses[i][0])+','+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\012')
- L.append('Lrep.append(F)'+'\012')
- #on ajoute à RETOUR
- L.append('RETOUR();\012')
-
- #ouverture du fichier fort.3 et mise a jour de celui ci
- x=open('fort.'+str(UL),'w')
- x.writelines('from Accas import _F \012from Cata.cata import * \012')
- x.writelines(L)
- x.close()
- del(L)
- del(pre_bloc)
- del(post_bloc)
- del(fichier)
-
- INCLUDE(UNITE = str(UL))
- detr_concepts(objet)
- # on remet le fichier dans son etat initial
- x=open('fort.'+str(UL),'w')
- x.writelines(fichiersauv)
- x.close()
- return objet.g_context['Lrep']
-
-#----------------------------------------------------------
-
-
-def EXTRACT(Table,Para,Champ):
-# Definition des variables
- #Table = reponse[0]
- #Para = reponse[1]
- #Champ = reponse[2]
- Result = [[None]*2]
- nb_temp = 0
-# Boucle de lecture sur les temps
- while 1:
-# Si on n'a pas lu tous les temps
- try:
-# alors on lit les 2 champs abscisse et ordonnee
- Result[nb_temp][0] = Table[Para,nb_temp+1]
- Result[nb_temp][1] = Table[Champ,nb_temp+1]
- nb_temp = nb_temp + 1
-# on ajoute une dimension temporelle supplementaire au resultat
- Result.append([None]*2)
-# Si on a lu tous les temps alors on sort de la boucle
- except KeyError:
- break
-# on renvoie le resultat en fin
- Rep = Result[0:nb_temp]
- F=Numeric.zeros((len(Rep),2),Numeric.Float) #on transforme Rep en array Numeric
- for i in range(len(Rep)):
- for j in range(2) :
- F[i][j] = Rep[i][j]
- del(Rep)
- del(Result)
- return F
-
-
-#-------------------------------------------
-def graphique(L_F,res_exp,reponses,iter,UL_out,interactif):
- graphe=[]
- impr=Gnuplot.Gnuplot()
- Gnuplot.GnuplotOpts.prefer_inline_data=1
- impr('set data style linespoints')
- impr('set grid')
- impr('set pointsize 2.')
- impr('set terminal postscript color')
- impr('set output "fort.'+str(UL_out)+'"')
- for i in range(len(L_F)):
- if interactif:
- graphe.append(Gnuplot.Gnuplot(persist=0))
- graphe[i]('set data style linespoints')
- graphe[i]('set grid')
- graphe[i]('set pointsize 2.')
- graphe[i].xlabel(reponses[i][1])
- graphe[i].ylabel(reponses[i][2])
- graphe[i].title(reponses[i][0]+' Iteration '+str(iter))
- graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
- graphe[i]('pause 5')
-#
- impr.xlabel(reponses[i][1])
- impr.ylabel(reponses[i][2])
- impr.title(reponses[i][0]+' Iteration '+str(iter))
- impr.plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
-
-
-#===========================================================================================
-# CONTROLE DES ENTREES UTILISATEUR
-
-def erreur_de_type(code_erreur,X):
- #code_erreur ==0 --> X est une liste
- #code erreur ==1 --> X est un char
- #code erreur ==2 --> X est un float
- #test est un boolean (test = 0 défaut et 1 si un test if est verifier
- txt=""
- if(code_erreur == 0 ):
- if type(X) is not types.ListType:
- txt="\012Cette entrée: " +str(X)+" n'est pas une liste valide"
- if(code_erreur == 1 ):
- if type(X) is not types.StringType:
- txt="\012Cette entrée: " +str(X)+" n'est pas une chaine de caractère valide ; Veuillez la ressaisir en lui appliquant le type char de python"
- if(code_erreur == 2 ):
- if type(X) is not types.FloatType:
- txt="\012Cette entrée: " +str(X)+" n'est pas une valeur float valide ; Veuillez la ressaisir en lui appliquant le type float de python"
- return txt
-
-
-def erreur_dimension(PARAMETRES,REPONSES):
-#On verifie que la dimension de chaque sous_liste de parametre est 4
-#et que la dimension de chaque sous_liste de REPONSES est 3
- txt=""
- for i in range(len(PARAMETRES)):
- if (len(PARAMETRES[i]) != 4):
- txt=txt + "\012La sous-liste de la variable paramètre numéro " + str(i+1)+" n'est pas de longueur 4"
- for i in range(len(REPONSES)):
- if (len(REPONSES[i]) != 3):
- txt=txt + "\012La sous-liste de la variable réponse numéro " + str(i+1)+" n'est pas de longueur 3"
- return txt
-
-
-def compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP):
- # X et Y sont deux arguments qui doivent avoir la meme dimension
- # pour éviter l'arret du programme
- txt=""
- if( len(REPONSES) != len(RESU_EXP)):
- txt="\012Vous avez entré " +str(len(REPONSES))+ " réponses et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de réponses que de résultats expérimentaux"
- return txt
-
-
-def verif_fichier(UL,PARAMETRES,REPONSES):
-#On verifie les occurences des noms des PARAMETRES et REPONSES
-#dans le fichier de commande ASTER
- txt=""
- fichier = open('fort.'+str(UL),'r')
- fic=fichier.read()
- for i in range(len(PARAMETRES)):
- if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))):
- txt=txt + "\012Le paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER"
- for i in range(len(REPONSES)):
- if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))):
- txt=txt + "\012La réponse "+REPONSES[i][0]+" que vous avez entrée pour la phase d optimisation n'a pas été trouvée dans votre fichier de commandes ASTER"
- return txt
-
-
-def verif_valeurs_des_PARAMETRES(PARAMETRES):
-#On verifie que pour chaque PARAMETRES de l'optimisation
-# les valeurs entrées par l'utilisateur sont telles que :
-# val_inf<val_sup
-# val_init appartient à [val_inf, val_sup]
-# val_init!=0
- #verification des bornes
- txt=""
- for i in range(len(PARAMETRES)):
- if( PARAMETRES[i][2] >PARAMETRES[i][3]):
- txt=txt + "\012La borne inférieure "+str(PARAMETRES[i][2])+" de "+PARAMETRES[i][0]+ "est plus grande que sa borne supérieure"+str(PARAMETRES[i][3])
- #verification de l'encadrement de val_init
- for i in range(len(PARAMETRES)):
- if( (PARAMETRES[i][1] < PARAMETRES[i][2]) or (PARAMETRES[i][1] > PARAMETRES[i][3])):
- txt=txt + "\012La valeur initiale "+str(PARAMETRES[i][1])+" de "+PARAMETRES[i][0]+ " n'est pas dans l'intervalle [borne_inf,born_inf]=["+str(PARAMETRES[i][2])+" , "+str(PARAMETRES[i][3])+"]"
- #verification que val_init !=0
- for i in range(len(PARAMETRES)):
- if (PARAMETRES[i][1] == 0. ):
- txt=txt + "\012Problèmes de valeurs initiales pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur initiale nulle mais un ordre de grandeur."
- return txt
-
-
-
-
-def gestion(UL,PARAMETRES,REPONSES,RESU_EXP):
- #Cette methode va utiliser les methodes de cette classe declarée ci_dessus
- #test est un boolean: test=0 -> pas d'erreur
- # test=1 -> erreur détectée
-
- texte=""
- #On vérifie d'abord si PARAMETRES, REPONSES, RESU_EXP sont bien des listes au sens python
- #test de PARAMETRES
- texte = texte + erreur_de_type(0,PARAMETRES)
- #test de REPONSES
- texte = texte + erreur_de_type(0,REPONSES)
- #test de RESU_EXP
- texte = texte + erreur_de_type(0,RESU_EXP)
-
- #On vérifie si chaque sous liste de PARAMETRES, REPONSES, possède le type adéquat
- #test des sous_listes de PARAMETRES
- for i in range(len(PARAMETRES)):
- texte = texte + erreur_de_type(0,PARAMETRES[i])
- #test des sous_listes de REPONSES
- for i in range(len(REPONSES)):
- texte = texte + erreur_de_type(0,REPONSES[i])
-
- #On verifie si la dimension de chaque sous-liste de : PARAMETRES, REPONSES
- #il faut que:la dimension d'une sous-liste de PARAMETRES = 4
- #et que la dimension d'une sous liste de REPONSES = 3
- texte = texte + erreur_dimension(PARAMETRES,REPONSES)
-
- #on verifie que l'on a autant de réponses que de résultats expérimentaux
- texte = texte + compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP)
-
- #on verifie les types des arguments de chaque sous liste de PARAMETRES et REPONSES
- #verification du type stringet type float des arguments de PARAMETRES
- for i in range(len(PARAMETRES)):
- texte = texte + erreur_de_type(1,PARAMETRES[i][0])
- for k in [1,2,3]:
- texte = texte + erreur_de_type(2,PARAMETRES[i][k])
-
- #verification du type string pour les arguments de REPONSES
- for i in range(len(REPONSES)):
- for j in range(len(REPONSES[i])):
- texte = texte + erreur_de_type(1,REPONSES[i][j])
-
- #verification du fichier de commndes ASTER
- texte = texte + verif_fichier(UL,PARAMETRES,REPONSES)
-
- #verifiaction des valeurs des PARAMETRES entrées par l'utilisteur
- texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES)
-
- return texte
-
-
+++ /dev/null
-#@ MODIF __init__ Cata DATE 27/03/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.
-# ======================================================================
-#
+++ /dev/null
-#& MODIF COMMANDE DATE 30/01/2002 AUTEUR VABHHTS J.TESELET
-# 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.
-# ======================================================================
-import Accas
-from Accas import *
-from Accas import _F
-
-import ops
-
-try:
- import aster
-except:
- pass
-
-#
-__version__="$Name: $"
-__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $"
-#
-JdC = JDC_CATA(code='ASTER',
- execmodul=None,
- regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
- AU_MOINS_UN('FIN'),
- A_CLASSER(('DEBUT','POURSUITE'),'FIN')))
-# Type le plus general
-class entier (ASSD):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
-
-
-
-# Autres
-
-class cabl_precont (ASSD):pass
-class cara_elem (ASSD):pass
-class cara_pout (ASSD):pass
-class cham_mater (ASSD):pass
-class char_acou (ASSD):pass
-class char_cine_acou (ASSD):pass
-class char_cine_meca (ASSD):pass
-class char_cine_ther (ASSD):pass
-class char_meca (ASSD):pass
-class char_ther (ASSD):pass
-class courbe (ASSD):pass
-class fond_fiss (ASSD):pass
-class interf_dyna_clas(ASSD):pass
-class interspfact (ASSD):pass
-class listis (ASSD):pass
-class listr8 (ASSD):pass
-class macr_elem_dyna (ASSD):pass
-class macr_elem_stat (ASSD):pass
-class mater (ASSD):pass
-class melasflu (ASSD):pass
-class modele (ASSD):pass
-class modele_gene (ASSD):pass
-class nume_ddl (ASSD):pass
-class nume_ddl_gene (ASSD):pass
-class obstacle (ASSD):pass
-class spectre (ASSD):pass
-class surface (ASSD):pass
-class tran_gene (ASSD):pass
-class type_flui_stru (ASSD):pass
-class valeur (ASSD):pass
-
-# maillage :
-#--------------------------------
-class maillage(ASSD):pass
-class squelette (maillage):pass
-
-
-# cham_gd (carte,cham_no,cham_elem)
-#--------------------------------
-
-class cham_gd(ASSD):pass
-
-# cham_gd/carte :
-#--------------------------------
-class carte(cham_gd):pass
-class carte_dbel_r (carte):pass
-class carte_depl_c (carte):pass
-class carte_depl_f (carte):pass
-class carte_depl_r (carte):pass
-class carte_durt_r (carte):pass
-class carte_ener_r (carte):pass
-class carte_epsi_r (carte):pass
-class carte_erreur (carte):pass
-class carte_flux_r (carte):pass
-class carte_g_depl_r (carte):pass
-class carte_geom_r (carte):pass
-class carte_hydr_r (carte):pass
-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 carte_sief_r (carte):pass
-class carte_sour_r (carte):pass
-class carte_temp_f (carte):pass
-class carte_temp_r (carte):pass
-class carte_var2_r (carte):pass
-class carte_vnor_c (carte):pass
-
-
-# cham_gd/cham_elem :
-#--------------------------------
-class cham_elem(cham_gd):pass
-class cham_elem_crit_r(cham_elem):pass
-class cham_elem_dbel_r(cham_elem):pass
-class cham_elem_depl_c(cham_elem):pass
-class cham_elem_depl_f(cham_elem):pass
-class cham_elem_depl_r(cham_elem):pass
-class cham_elem_dommag(cham_elem):pass
-class cham_elem_durt_r(cham_elem):pass
-class cham_elem_ener_r(cham_elem):pass
-class cham_elem_epsi_c(cham_elem):pass
-class cham_elem_epsi_r(cham_elem):pass
-class cham_elem_erreur(cham_elem):pass
-class cham_elem_flux_r(cham_elem):pass
-class cham_elem_g_depl(cham_elem):pass
-class cham_elem_geom_r(cham_elem):pass
-class cham_elem_hydr_r(cham_elem):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_elem_sief_c(cham_elem):pass
-class cham_elem_sief_r(cham_elem):pass
-class cham_elem_sour_r(cham_elem):pass
-class cham_elem_temp_f(cham_elem):pass
-class cham_elem_temp_r(cham_elem):pass
-class cham_elem_vari_r(cham_elem):pass
-class cham_elem_vnor_c(cham_elem):pass
-
-
-# cham_gd/cham_no :
-#--------------------------------
-class cham_no(cham_gd):pass
-class cham_no_dbel_r (cham_no):pass
-class cham_no_depl_c (cham_no):pass
-class cham_no_depl_f (cham_no):pass
-class cham_no_depl_r (cham_no):pass
-class cham_no_durt_r (cham_no):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_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_hydr_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 cham_no_pres_r (cham_no):pass
-class cham_no_sief_r (cham_no):pass
-class cham_no_sour_r (cham_no):pass
-class cham_no_temp_c (cham_no):pass
-class cham_no_temp_f (cham_no):pass
-class cham_no_temp_r (cham_no):pass
-class cham_no_vanl_r (cham_no):pass
-class cham_no_var2_r (cham_no):pass
-class cham_no_vnor_c (cham_no):pass
-
-
-# resultat : (evol,mode_stat,mode_meca)
-#--------------------------------
-
-class resultat(ASSD):
- def __getitem__(self,key):
- return aster.getpara(self.get_name(),"RESULTAT",key[0],key[1])
-
-class acou_harmo (resultat):pass
-class base_modale (resultat):pass
-class comb_fourier (resultat):pass
-class dyna_harmo (resultat):pass
-class dyna_trans (resultat):pass
-class fourier_elas (resultat):pass
-class harm_gene (resultat):pass
-class mode_acou (resultat):pass
-class mode_cycl (resultat):pass
-class mode_flamb (resultat):pass
-class mode_gene (resultat):pass
-class mult_elas (resultat):pass
-class theta_geom (resultat):pass
-
-# resultat/evol :
-#--------------------------------
-class evol(resultat):pass
-class evol_char(evol):pass
-class evol_elas(evol):pass
-class evol_noli(evol):pass
-class evol_ther(evol):pass
-class evol_varc(evol):pass
-
-# resultat/mode_stat :
-#--------------------------------
-class mode_stat(resultat):pass
-class mode_stat_depl(mode_stat):pass
-class mode_stat_acce(mode_stat):pass
-class mode_stat_forc(mode_stat):pass
-
-
-# resultat/mode_meca :
-#--------------------------------
-class mode_meca(resultat):pass
-class mode_meca_c(mode_meca):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
-
-# matr_elem :
-#--------------------------------
-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
-
-
-
-
-# table : (tabl_fonc)
-#--------------------------------
-
-class table(ASSD):
- def __getitem__(self,key):
- return aster.getpara(self.get_name(),"TABLE",key[0],key[1])
-
-class tabl_aire_int (table):pass
-class tabl_calc_g_loca(table):pass
-class tabl_calc_g_th (table):pass
-class tabl_cara_geom (table):pass
-class tabl_char_limite(table):pass
-class tabl_ener_elas (table):pass
-class tabl_ener_pot (table):pass
-class tabl_ener_cin (table):pass
-class tabl_ener_ext (table):pass
-class tabl_ener_totale(table):pass
-class tabl_indic_ener (table):pass
-class tabl_indic_seuil(table):pass
-class tabl_intsp (table):pass
-class tabl_mass_iner (table):pass
-class tabl_post_alea (table):pass
-class tabl_post_dyna (table):pass
-class tabl_post_f_alea(table):pass
-class tabl_post_fatig (table):pass
-class tabl_post_gouj2e(table):pass
-class tabl_post_k (table):pass
-class tabl_post_rccm (table):pass
-class tabl_post_rele (table):pass
-class tabl_post_simpli(table):pass
-class tabl_post_usur (table):pass
-class tabl_reca_weib (table):pass
-class tabl_rice_tracey(table):pass
-class tabl_texture (table):pass
-class tabl_trc (table):pass
-class tabl_weibull (table):pass
-
-# table/tabl_fonc
-#--------------------------------
-class tabl_fonc (table):pass
-class tabl_fonc_max (tabl_fonc):pass
-class tabl_fonc_noci (tabl_fonc):pass
-class tabl_fonc_rms (tabl_fonc):pass
-
-
-# vect_asse :
-#--------------------------------
-class vect_asse(ASSD):pass
-class vect_asse_gene(vect_asse):pass
-
-
-# vect_elem :
-#--------------------------------
-class vect_elem(ASSD):pass
-class vect_elem_depl_r(vect_elem):pass
-class vect_elem_pres_c(vect_elem):pass
-class vect_elem_pres_r(vect_elem):pass
-class vect_elem_temp_r(vect_elem):pass
-
-#& MODIF COMMANDE DATE 22/11/2001 AUTEUR VABHHTS J.PELLET
-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-f1",reentrant='n',
- 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='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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',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',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",
- "RZ1","RT1","AI1","JG1","IYR21","IZR21","A2",
- "IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
- "RZ2","RT2","AI2","JG2","IYR22","IZR22","H",
- "HZ","HY","EP","EPY","EPZ","H1","HZ1","HY1",
- "EP1","EPY1","EPZ1","H2","HZ2","HY2","EP2",
- "EPY2","EPZ2","R","R1","R2") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
- ),
- b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
- 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") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"),
- ),
- b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- 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",) ),
- MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- FCX =SIMP(statut='f',typ=(fonction) ),
- ),
-
- BARRE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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"),max=6 ),
- VALE =SIMP(statut='o',typ='R',max=6 ),
- ),
- b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- 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) ),
- ),
-
- COQUE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA' ),
- PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
- 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='f',typ='R',defaut= 0.8333333E0),
- COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
- COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ),
- EXCENTREMENT =SIMP(statut='f',typ='R' ),
- INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-
- CABLE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('A','SECTION') ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ),
- A =SIMP(statut='f',typ='R' ),
- SECTION =SIMP(statut='f',typ='R' ),
- FCX =SIMP(statut='f',typ=(fonction) ),
- ),
-
- DISCRET =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
- 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',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",
- "M_T_L", "M_TR_N", "M_TR_L",
- "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
- "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- ),
-
- ORIENTATION =FACT(statut='f',min=01,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='**'),
- 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='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
-
- DEFI_ARC =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
- 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
- PRESENT_PRESENT('ORIE_ARC','RAYON'),
- EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
- EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
- EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
- EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
- PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
- PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
- MAILLE =SIMP(statut='f',typ=ma,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,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,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'),
- COEF_FLEX_XY =SIMP(statut='f',typ='R'),
- INDI_SIGM_XY =SIMP(statut='f',typ='R'),
- COEF_FLEX_XZ =SIMP(statut='f',typ='R'),
- INDI_SIGM_XZ =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
-
- MASSIF =FACT(statut='f',min=01,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,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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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 ),
- A_FLUI =SIMP(statut='o',typ='R'),
- A_CELL =SIMP(statut='o',typ='R'),
- COEF_ECHELLE =SIMP(statut='o',typ='R'),
- ),
-
- GRILLE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- EXCLUS('ANGL_REP','ORIG_AXE'),
- EXCLUS('EXCENTREMENT','DIST_N'),
- ENSEMBLE('ORIG_AXE','AXE')),
- 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'),
- POUR_CENT_L =SIMP(statut='f',typ='R'),
- POUR_CENT_T =SIMP(statut='f',typ='R'),
- DIST_N =SIMP(statut='f',typ='R'),
- EXCENTREMENT =SIMP(statut='f',typ='R'),
- ORIG_AXE =SIMP(statut='f',typ='R',max='**'),
- AXE =SIMP(statut='f',typ='R',max='**'),
- COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
- GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,min=1,max=1 ),
- ),
-
- RIGI_PARASOL =FACT(statut='f',min=01,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='**'),
- FONC_GROUP =SIMP(statut='f',typ=(fonction) ),
- COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
- REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
- 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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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'),
- PAS_N =SIMP(statut='o',typ='R'),
- ANGL_REP =SIMP(statut='o',typ='R',max='**'),
- COEF_ECHELLE =SIMP(statut='o',typ='R'),
- ),
-
-
- 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'),),
-
- 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,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',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='**'),
-
- CARA =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
- VALE =SIMP(statut='o',typ='R',max='**'),
- COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2),
- ),
-
-
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-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',
- 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='**',
- 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='**'),
- 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',min=01,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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- VNOR =SIMP(statut='o',typ='C' ),
- ),
- IMPE_FACE =FACT(statut='f',min=01,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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- IMPE =SIMP(statut='o',typ='C' ),
- ),
- 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='o',typ='TXM',max='**'),
- ),
-) ;
-#& MODIF COMMANDE DATE 21/06/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args):
- if MECA_IMPO != None : return char_cine_meca
- if THER_IMPO != None : return char_cine_ther
- if ACOU_IMPO != None : return char_cine_acou
- raise AsException("type de concept resultat non prevu")
-
-AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
- ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
- docu="U4.44.03-e",reentrant='n',
- 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='**',
- 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,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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- ),
- THER_IMPO =FACT(statut='f',min=01,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,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',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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 21/12/2000 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.
-# ======================================================================
-def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
- if MECA_IMPO != None : return char_cine_meca
- if THER_IMPO != None : return char_cine_ther
- raise AsException("type de concept resultat non prevu")
-
-AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod
- ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
- docu="U4.44.03-e",reentrant='n',
- 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='**',
- 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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,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 ),
- TEMP =SIMP(statut='f',typ=fonction ),
- PHI =SIMP(statut='f',typ=fonction ),
- ),
- THER_IMPO =FACT(statut='f',min=01,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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- TEMP_SUP =SIMP(statut='f',typ=fonction ),
- TEMP =SIMP(statut='f',typ=fonction ),
- TEMP_INF =SIMP(statut='f',typ=fonction ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 24/01/2002 AUTEUR SMICHEL S.MICHEL-PONNELLE
-# 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.
-# ======================================================================
-# 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-f1",reentrant='n',
- 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_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) ),
- 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 ),
- 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 ),
- SECH_CALCULEE =SIMP(statut='f',fr="Champ de séchage 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 ),
-
- 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='**'),
- 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",) ),
- 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_INTE =SIMP(statut='f',typ='I',defaut= 2),
- 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),
- 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_INTE =SIMP(statut='f',typ='I',defaut= 2),
- 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'),
- 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),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),),),
- 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_INTE =SIMP(statut='f',typ='I',defaut= 2),
- 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'),
- 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),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),),),
- 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")),
- COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
- MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
- 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),),),
- ),
-
- 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'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PRE1 =SIMP(statut='f',typ='R' ),
- PRE2 =SIMP(statut='f',typ='R' ),
- UI2 =SIMP(statut='f',typ='R' ),
- UI3 =SIMP(statut='f',typ='R' ),
- UI4 =SIMP(statut='f',typ='R' ),
- UI5 =SIMP(statut='f',typ='R' ),
- UI6 =SIMP(statut='f',typ='R' ),
- UO2 =SIMP(statut='f',typ='R' ),
- UO3 =SIMP(statut='f',typ='R' ),
- UO4 =SIMP(statut='f',typ='R' ),
- UO5 =SIMP(statut='f',typ='R' ),
- UO6 =SIMP(statut='f',typ='R' ),
- VI2 =SIMP(statut='f',typ='R' ),
- VI3 =SIMP(statut='f',typ='R' ),
- VI4 =SIMP(statut='f',typ='R' ),
- VI5 =SIMP(statut='f',typ='R' ),
- VI6 =SIMP(statut='f',typ='R' ),
- VO2 =SIMP(statut='f',typ='R' ),
- VO3 =SIMP(statut='f',typ='R' ),
- VO4 =SIMP(statut='f',typ='R' ),
- VO5 =SIMP(statut='f',typ='R' ),
- VO6 =SIMP(statut='f',typ='R' ),
- WI2 =SIMP(statut='f',typ='R' ),
- WI3 =SIMP(statut='f',typ='R' ),
- WI4 =SIMP(statut='f',typ='R' ),
- WI5 =SIMP(statut='f',typ='R' ),
- WI6 =SIMP(statut='f',typ='R' ),
- WO2 =SIMP(statut='f',typ='R' ),
- WO3 =SIMP(statut='f',typ='R' ),
- WO4 =SIMP(statut='f',typ='R' ),
- WO5 =SIMP(statut='f',typ='R' ),
- WO6 =SIMP(statut='f',typ='R' ),
- WO =SIMP(statut='f',typ='R' ),
- WI1 =SIMP(statut='f',typ='R' ),
- WO1 =SIMP(statut='f',typ='R' ),
- GONF =SIMP(statut='f',typ='R' ),
- ),
-
- 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',),
- AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
- 'TEMP','PRE1','PRE2','DNOR','DTAN'),
- EXCLUS('DNOR','DX'),
- EXCLUS('DNOR','DY'),
- EXCLUS('DNOR','DZ'),
- EXCLUS('DNOR','DRX'),
- EXCLUS('DNOR','DRY'),
- EXCLUS('DNOR','DRZ'),
- EXCLUS('DTAN','DX'),
- EXCLUS('DTAN','DY'),
- EXCLUS('DTAN','DZ'),
- EXCLUS('DTAN','DRX'),
- EXCLUS('DTAN','DRY'),
- EXCLUS('DTAN','DRZ'),),
-# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- DNOR =SIMP(statut='f',typ='R' ),
- DTAN =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PRE1 =SIMP(statut='f',typ='R' ),
- PRE2 =SIMP(statut='f',typ='R' ),
- ),
-
- 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' ),
- ),
-
- 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,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_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='**'),
-
- 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",) ),
- ),
-
- 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,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é",
- 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",) ),
- 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",
- min=1,max='**',
- regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
- 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' ),
- ),
-
- 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,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' ),
- ),
-
- 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' ),
- ),
-
- 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_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('FX','N','VY','VZ'),
- PRESENT_ABSENT('FY','N','VY','VZ'),
- PRESENT_ABSENT('FZ','N','VY','VZ'),
- PRESENT_ABSENT('N','FX','FY','FZ'),
- PRESENT_ABSENT('VY','FX','FY','FZ'),
- PRESENT_ABSENT('VZ','FX','FY','FZ'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- FY =SIMP(statut='f',typ='R' ),
- FZ =SIMP(statut='f',typ='R' ),
-
- N =SIMP(statut='f',typ='R' ),
- VY =SIMP(statut='f',typ='R' ),
- VZ =SIMP(statut='f',typ='R' ),
-
- ),
-
- FORCE_TUYAU =FACT(statut='f',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,max='**'),
- 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='**',
- 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='**'),
- 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_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='**'),
- 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") ),
- ),
- 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",
- 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='**'),
-
- 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' ),
- ),
-
- 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",
- 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_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 ),
- ),
-
- 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",) ),
- ),
-
- 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='**'),
- MAILLE =SIMP(statut='f',typ=ma,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='**',
- 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='**'),
- PRES =SIMP(statut='f',typ='R' ),
- CISA_2D =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 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca,
- fr="Affectation de charges et conditions aux limites mécaniques complexes",
- docu="U4.44.05-c",reentrant='n',
- 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='**',
- 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",) ),
- 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' ),
- DRX =SIMP(statut='f',typ='C' ),
- DRY =SIMP(statut='f',typ='C' ),
- DRZ =SIMP(statut='f',typ='C' ),
- GRX =SIMP(statut='f',typ='C' ),
- PRES =SIMP(statut='f',typ='C' ),
- PHI =SIMP(statut='f',typ='C' ),
- ),
- FORCE_POUTRE =FACT(statut='f',min=01,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('FX','N','VY','VZ',),
- PRESENT_ABSENT('FY','N','VY','VZ',),
- PRESENT_ABSENT('FZ','N','VY','VZ',),
- PRESENT_ABSENT('N','FX','FY','FZ',),
- PRESENT_ABSENT('VY', 'FX','FY','FZ',),
- PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- FZ =SIMP(statut='f',typ='C' ),
- N =SIMP(statut='f',typ='C' ),
- VY =SIMP(statut='f',typ='C' ),
- VZ =SIMP(statut='f',typ='C' ),
- ),
- LIAISON_DDL =FACT(statut='f',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='o',typ='TXM',max='**'),
- COEF_MULT =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ='C' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
- fr="Affectation de charges et conditions aux limites mécaniques fonction d une grandeur",
- docu="U4.44.01-f",reentrant='n',
- 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") ),
-
- 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'),),
- 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='**'),
- 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) ),
- ),
- 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='**'),
- 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',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",) ),
- ),
- 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='**'),
- ANGL_NAUT =SIMP(statut='o',typ='R',max=3),
- 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) ),
- ),
- 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",) ),
- ),
- 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='**'),
- 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),
- ),
-
- 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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,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) ),
- 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'),),
- 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_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,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) ),
- ),
- 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,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) ),
- ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- PRES =SIMP(statut='f',typ=(fonction) ),
- CISA_2D =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") ),
- ),
- 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('FX','N','VY','VZ'),
- PRESENT_ABSENT('FY','N','VY','VZ'),
- PRESENT_ABSENT('FZ','N','VY','VZ'),
- PRESENT_ABSENT('N','FX','FY','FZ'),
- PRESENT_ABSENT('VY','FX','FY','FZ'),
- PRESENT_ABSENT('VZ','FX','FY','FZ'),),
-# rajout d un mot cle REPERE : / GLOBAL / LOCAL
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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) ),
- FY =SIMP(statut='f',typ=(fonction) ),
- FZ =SIMP(statut='f',typ=(fonction) ),
- N =SIMP(statut='f',typ=(fonction) ),
- 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'),),
- 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=(fonction) ),
- ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- VNOR =SIMP(statut='o',typ=(fonction) ),
- ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- IMPE =SIMP(statut='o',typ=(fonction) ),
- ),
- 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) ),
- 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_INTE =SIMP(statut='f',typ='I',defaut= 2),
- 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'),
- 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=(fonction) ),
- FLUN_HYDR1 =SIMP(statut='f',typ=(fonction) ),
- FLUN_HYDR2 =SIMP(statut='f',typ=(fonction) ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
- fr=" ",
- docu="",reentrant='n',
- 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='**',
- 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 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-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-f",reentrant='n',
- 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='**',
- 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,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'), ),
- 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='**',
- 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,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'),
- CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ),
- ),
- ECHANGE =FACT(statut='f',min=01,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
- PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
- ENSEMBLE('COEF_H','TEMP_EXT',),
- ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
- ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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_INF =SIMP(statut='f',typ='R'),
- COEF_H_SUP =SIMP(statut='f',typ='R'),
- TEMP_EXT_SUP =SIMP(statut='f',typ='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='**',
- 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='R' ),
- FLUX_Y =SIMP(statut='f',typ='R' ),
- FLUX_Z =SIMP(statut='f',typ='R' ),
- ),
- LIAISON_GROUP =FACT(statut='f',min=01,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_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='**'),
- DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP",) ),
- COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ='R' ),
- SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- TRAN =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- CENTRE =SIMP(statut='f',typ='R',max='**'),
- ),
- 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='**',
- 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,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='**' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-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-f",reentrant='n',
- 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) ),
- ),
- 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,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) ),
- 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'),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- FLUN =SIMP(statut='f',typ=(fonction) ),
- FLUN_INF =SIMP(statut='f',typ=(fonction) ),
- FLUN_SUP =SIMP(statut='f',typ=(fonction) ),
- FLUX_X =SIMP(statut='f',typ=(fonction) ),
- 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'),),
- 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='o',typ=(fonction) ),
- ),
- 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','TEMP_EXT'),
- ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
- ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- COEF_H =SIMP(statut='f',typ=(fonction) ),
- TEMP_EXT =SIMP(statut='f',typ=(fonction) ),
- COEF_H_INF =SIMP(statut='f',typ=(fonction) ),
- TEMP_EXT_INF =SIMP(statut='f',typ=(fonction) ),
- COEF_H_SUP =SIMP(statut='f',typ=(fonction) ),
- TEMP_EXT_SUP =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'),),
- 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) ),
- 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=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_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('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='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP") ),
- COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'),
- DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP") ),
- COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ=(fonction) ),
- SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- TRAN =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- CENTRE =SIMP(statut='f',typ='R',max='**'),
- ),
- 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",) ),
- 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) ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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',
- MAILLAGE =SIMP(statut='o',typ=maillage),
- MODELE =SIMP(statut='f',typ=modele),
- AFFE =FACT(statut='o',min=01,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='**'),
- 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 30/01/2002 AUTEUR VABHHTS J.TESELET
-# 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-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',
- 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,
- 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='**',
- 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='**'),
- 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","NON_LOCAL") ),
- 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_FLUI_PESA",
- "2D_FLUI_STRU",
- "2D_FLUIDE",
- "3D",
- "3D_ABSO",
- "3D_CONTACT",
- "3D_FAISCEAU",
- "3D_FLUI_ABSO",
- "3D_FLUIDE",
- "3D_HHM" ,
- "3D_HM",
- "3D_INCO",
- "3D_JOINT_CT",
- "3D_SI",
- "3D_THH",
- "3D_THHM",
- "3D_THM",
- "APPUI_REP",
- "ASSE_GRIL",
- "AXIS",
- "AXIS_FLUI_STRU",
- "AXIS_FLUIDE",
- "AXIS_FOURIER",
- "AXIS_HHM",
- "AXIS_HM",
- "AXIS_INCO",
- "AXIS_SI",
- "AXIS_THH",
- "AXIS_THHM",
- "AXIS_THM",
- "BARRE",
- "2D_BARRE",
- "C_PLAN",
- "C_PLAN_SI",
- "CABLE",
- "CABLE_POULIE",
- "COQUE_3D",
- "COQUE_AXIS",
- "COQUE_C_PLAN",
- "COQUE_D_PLAN",
- "CONT_DVP_2D",
- "CONT_DVP_3D",
- "D_PLAN",
- "D_PLAN_ABSO",
- "D_PLAN_HHM",
- "D_PLAN_HM",
- "D_PLAN_INCO",
- "D_PLAN_SI",
- "D_PLAN_THH",
- "D_PLAN_THHM",
- "D_PLAN_THM",
- "DIS_T",
- "DIS_TR",
- "DKT",
- "DST",
- "FLUI_STRU",
- "GRILLE",
- "POU_C_T",
- "POU_D_E",
- "POU_D_EM",
- "POU_D_T",
- "POU_D_T_GD",
- "POU_D_TG",
- "Q4G",
- "TUYAU",
- "TUYAU_3M",
- "TUYAU_6M"
- ) ) ),
-
- b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'",
- fr="modelisations thermiques",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "3D_DIAG",
- "AXIS",
- "AXIS_DIAG",
- "AXIS_FOURIER",
- "COQUE",
- "COQUE_AXIS",
- "COQUE_PLAN",
- "PLAN",
- "PLAN_DIAG",
- ),),),
-
- b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
- fr="modelisations acoustiques",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "PLAN"
- ), ),),
-
- b_non_local =BLOC( condition = "PHENOMENE=='NON_LOCAL'",
- fr="modelisations non locales",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "AXIS",
- "C_PLAN",
- "D_PLAN",
- ) ), ),
- ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-f",
- fr="Interrogation sur le catalogue des commandes et les concepts produits",
- regles=(AU_MOINS_UN('COMMANDE','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,
- INITEL =SIMP(statut='f',typ='TXM',defaut="NON",
- into=("OUI","NON",) ),
- ),
- COMMANDE =FACT(statut='f',min=01,max='**',
- NOM =SIMP(fr="liste des noms de commande",
- statut='f',typ='TXM',max='**',defaut="*"),
- OPTION =SIMP(fr="option d'édition de commande",
- statut='f',typ='TXM',defaut="CATALOGUE",
- into=("CATALOGUE","A_REMPLIR","NUMERO",) ),
- ),
- CONCEPT =FACT(statut='f',min=01,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 16/01/2002 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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',
- MAILLAGE =SIMP(statut='o',typ=maillage,min=2,max=2 ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-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',
- 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
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def asse_matrice_prod(MATR_ELEM,**args):
- if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
- if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
- if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
- if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
- raise AsException("type de concept resultat non prevu")
-
-ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
- fr="Construction d une matrice assemblée",docu="U4.61.22-f",reentrant='n',
- 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
-# 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.
-# ======================================================================
-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',
- NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ),
- CHAR_SOUS_STRUC =FACT(statut='o',min=01,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
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def asse_vecteur_prod(VECT_ELEM,**args):
- if AsType(VECT_ELEM) == vect_elem_depl_r : return cham_no_depl_r
- if AsType(VECT_ELEM) == vect_elem_temp_r : return cham_no_temp_r
- if AsType(VECT_ELEM) == vect_elem_pres_r : return cham_no_pres_r
- if AsType(VECT_ELEM) == vect_elem_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu ")
-
-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',
- 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
-# 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.
-# ======================================================================
-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,
- regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
- PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'),
-# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ')
- PRESENT_PRESENT('KRX','KRY'),
- PRESENT_PRESENT('KRX','KRZ'),
- PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
- PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
- PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
- METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- GROUP_NO_RADIER =SIMP(statut='f',typ=grno,max='**'),
- GROUP_MA_RADIER =SIMP(statut='f',typ=grma,max='**'),
- FONC_GROUP =SIMP(statut='f',typ=fonction ),
- COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
- KX =SIMP(statut='o',typ='R' ),
- KY =SIMP(statut='o',typ='R' ),
- KZ =SIMP(statut='o',typ='R' ),
- KRX =SIMP(statut='f',typ='R' ),
- KRY =SIMP(statut='f',typ='R' ),
- KRZ =SIMP(statut='f',typ='R' ),
- GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
- NOEUD_CENTRE =SIMP(statut='f',typ=no),
- COOR_CENTRE =SIMP(statut='f',typ='R',max=03),
- ),
- AMOR_INTERNE =FACT(statut='o',min=01,max=01,
- 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_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 16/01/2002 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-def calc_cham_elem_prod(OPTION,**args):
-
-# options mecaniques
- if OPTION == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r
- if OPTION == "ECIN_ELEM_DEPL" : return cham_elem_ener_r
- if OPTION == "EFGE_ELNO_CART" : return cham_elem_sief_r
- if OPTION == "EFGE_ELNO_DEPL" : return cham_elem_sief_r
- if OPTION == "ENDO_ELNO_SIGM" : return cham_elem_sief_r
- if OPTION == "EPOT_ELEM_DEPL" : return cham_elem_ener_r
- if OPTION == "ENEL_ELGA" : return cham_elem_ener_r
- if OPTION == "ENEL_ELNO_ELGA" : return cham_elem_ener_r
- if OPTION == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r
- if OPTION == "EQUI_ELGA_EPSI" : return cham_elem_epsi_r
- if OPTION == "EQUI_ELGA_SIGM" : return cham_elem_sief_r
- if OPTION == "EQUI_ELNO_EPSI" : return cham_elem_epsi_r
- if OPTION == "EQUI_ELNO_SIGM" : return cham_elem_sief_r
- if OPTION == "PRES_DBEL_DEPL" : return cham_elem_dbel_r
- if OPTION == "SIEF_ELGA_DEPL" : return cham_elem_sief_r
- if OPTION == "SIEF_ELGA_LAGR" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_CART" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_DEPL" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_LAGR" : return cham_elem_sief_r
- if OPTION == "SIPO_ELNO_DEPL" : return cham_elem_sief_r
-
-# options thermiques
-
- if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r
- if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_r
- if OPTION == "SOUR_ELGA_ELEC" : return cham_elem_sour_r
-
-# options acoustiques
-
- if OPTION == "PRES_ELNO_DBEL" : return cham_elem_dbel_r
- if OPTION == "PRES_ELNO_REEL" : return cham_elem_pres_r
- if OPTION == "PRES_ELNO_IMAG" : return cham_elem_pres_r
-
-# autres options
-
- if OPTION == "COOR_ELGA" : return cham_elem_geom_r
-
- raise AsException("type de concept resultat non prevu")
-
-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-f",reentrant='n',
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
-
- regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
-
-#
-#
-# introduire un mot cle de type modelisation : mécanique,thermique,...
-#
-
- OPTION =SIMP(statut='o',typ='TXM',
- into=("DEGE_ELNO_DEPL","ECIN_ELEM_DEPL","EFGE_ELNO_CART",
- "EFGE_ELNO_DEPL","ENDO_ELNO_SIGM","EPOT_ELEM_DEPL",
- "ENEL_ELGA", "ENEL_ELNO_ELGA","EPSI_ELNO_DEPL",
- "EQUI_ELGA_EPSI","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
- "EQUI_ELNO_SIGM","PRES_DBEL_DEPL","SIEF_ELGA_DEPL",
- "SIEF_ELGA_LAGR","SIGM_ELNO_CART","SIGM_ELNO_DEPL",
- "SIGM_ELNO_LAGR","SIPO_ELNO_DEPL",
- "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",
- "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
- "COOR_ELGA"), ),
-
- b_dege_elno_depl =BLOC(condition="OPTION=='DEGE_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ),
- ),
-
- b_ecin_elem_depl =BLOC(condition="OPTION=='ECIN_ELEM_DEPL'",
- regles=(UN_PARMI('VITE','DEPL',),ENSEMBLE('DEPL','FREQ',),),
- FREQ =SIMP(statut='f',typ='R'),
- VITE =SIMP(statut='f',typ=cham_no_depl_r),
- DEPL =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c)),
- ),
-
- b_efge_elno_cart =BLOC(condition="OPTION=='EFGE_ELNO_CART'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ),
- ),
-
- b_efge_elno_depl =BLOC(condition="OPTION=='EFGE_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ),
- ),
-
- b_endo_elno_sigm =BLOC(condition="OPTION=='ENDO_ELNO_SIGM'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_epot_elem_depl =BLOC(condition="OPTION=='EPOT_ELEM_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- ),
-
- b_enel_elga =BLOC(condition="OPTION=='ENEL_ELGA'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_enel_elno_elga =BLOC(condition="OPTION=='ENEL_ELNO_ELGA'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_epsi_elno_depl =BLOC(condition="OPTION=='EPSI_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- ),
-
- b_equi_elga_epsi =BLOC(condition="OPTION=='EQUI_ELGA_EPSI'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_epsi_r,) ),
- ),
-
- b_equi_elga_sigm =BLOC(condition="OPTION=='EQUI_ELGA_SIGM'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_equi_elno_epsi =BLOC(condition="OPTION=='EQUI_ELNO_EPSI'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_epsi_r,) ),
- ),
-
- b_equi_elno_sigm =BLOC(condition="OPTION=='EQUI_ELNO_SIGM'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_pres_dbel_depl =BLOC(condition="OPTION=='PRES_DBEL_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_c,)),
- ),
-
- b_sief_elga_depl =BLOC(condition="OPTION=='SIEF_ELGA_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- ),
-
- b_sief_elga_lagr =BLOC(condition="OPTION=='SIEF_ELGA_LAGR'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- THETA =SIMP(statut='o',typ=(theta_geom,)),
- PROPAGATION =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),
-
- b_sigm_elno_cart =BLOC(condition="OPTION=='SIGM_ELNO_CART'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_sigm_elno_depl =BLOC(condition="OPTION=='SIGM_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,) ),
- ),
-
- b_sigm_elno_lagr =BLOC(condition="OPTION=='SIGM_ELNO_LAGR'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- THETA =SIMP(statut='o',typ=(theta_geom,)),
- PROPAGATION =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),
-
- b_sipo_elno_depl =BLOC(condition="OPTION=='SIPO_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- ),
-
- b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP','SOUR_ELGA_ELEC',)",
- TEMP =SIMP(statut='o',typ=(cham_no_temp_r,)),
- ),
-
- b_acoustique =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)",
- PRES =SIMP(statut='o',typ=(cham_no_pres_c,)),
- ),
-
-
-
- EXCIT =FACT(statut='f',min=01,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),
- COEF_MULT =SIMP(statut='f',typ='R'), ),
-
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0),
- ACCE =SIMP(statut='f',typ=cham_no_depl_r),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1),
- NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ANGLE =SIMP(statut='f',typ='I',defaut= 0),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def calc_char_cine_prod(CHAR_CINE,**args):
- if AsType(CHAR_CINE) == char_cine_meca : return cham_no_depl_r
- if AsType(CHAR_CINE) == char_cine_ther : return cham_no_temp_r
- if AsType(CHAR_CINE) == char_cine_acou : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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
-# 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.
-# ======================================================================
-def calc_char_seisme_prod(MATR_MASS,**args ):
- if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod,
- docu="U4.63.01-e",reentrant='n',
- 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é"),
- MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
- b_mode_stat =BLOC ( condition = "MODE_STAT != None",
- regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 04/12/2001 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-def calc_elem_prod(RESULTAT,**args):
- if AsType(RESULTAT) != None : return AsType(RESULTAT)
- raise AsException("type de concept resultat non prevu")
-
-CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,docu="U4.81.01-f1",reentrant='f',
- 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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
-
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
-
- 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',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',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',max='**',
- into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
- "SIGM_ELNO_TUYO","SIGM_ELNO_CART","DEGE_ELNO_DEPL","EFGE_ELNO_CART",
- "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","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL",
- "EPGR_ELNO","EPGR_ELGA","DURT_ELGA_META","DURT_ELNO_META",
- "SIGM_ELNO_COQU","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",
- "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2",
- "VNOR_ELEM_DEPL","SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA",
- "VARI_ELNO_ELGA","VARI_ELNO_TUYO","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
- "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
- "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
- "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","ENEL_ELGA","ENEL_ELNO_ELGA","SIEF_ELNO_ELGA",
- "DEUL_ELGA_TEMP","DETE_ELNO_DLTE","DEUL_ELGA_DEPL","DEDE_ELNO_DLDE",
- "DESI_ELNO_DLSI","PMPB_ELNO_SIEF","PMPB_ELGA_SIEF",
- "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","HYDR_ELNO_ELGA",
- "SOUR_ELGA_ELEC",
- "PRES_ELNO_DBEL","PRES_DBEL_DEPL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
- "INTE_ELNO_ACTI","INTE_ELNO_REAC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM"
- ) ),
- RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
- mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,
- evol_noli,mult_elas,fourier_elas,
- evol_ther,base_modale,
- acou_harmo,mode_acou,mode_flamb) ),
- 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,char_ther,char_acou) ),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- FONC_MULT_C =SIMP(statut='f',typ=fonction_c),
- COEF_MULT =SIMP(statut='f',typ='R'),
- COEF_MULT_C =SIMP(statut='f',typ='C'),
- PHAS_DEG =SIMP(statut='f',typ='R'),
- PUIS_PULS =SIMP(statut='f',typ='I'),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- ),
- NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
- into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 ),
- 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),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
-
- TEMP_INIT =FACT(statut='f',min=1,max='**',
- regles=(EXCLUS('META_INIT','EVOL_THER'),),
- META_INIT =SIMP(statut='f',typ=carte_meta_r),
- EVOL_THER =SIMP(statut='f',typ=evol_ther,),
- NUME_INIT =SIMP(statut='f',typ='I'),
- ),
- PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57,),
- 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
-# 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.
-# ======================================================================
-CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=cham_elem_dommag,reentrant='n',
- fr="Calcul d un champ de dommage subi par une structure",
- docu="U4.83.02-c",
- regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
- OPTION =SIMP(statut='o',typ='TXM',
- into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
- "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
- "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
- HISTOIRE =FACT(statut='o',min=01,max=01,
- RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ),
- EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",into=("VMIS_SG","INVA_2_SG") ),
- ),
- DOMMAGE =SIMP(statut='o',typ='TXM',
- into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON","TAHERI_MIXTE",) ),
- MATER =SIMP(statut='o',typ=(mater) ),
- TAHERI_NAPPE =SIMP(statut='f',typ=(fonction) ),
- TAHERI_FONC =SIMP(statut='f',typ=(fonction) ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 23/04/2001 AUTEUR MCOURTOI M.COURTOIS
-# 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.
-# ======================================================================
-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,
- 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,
-
- regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- 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,
- 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 03/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.
-# ======================================================================
-CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
- docu="U4.32.01-d1",reentrant='f',
- regles=(UN_PARMI('VALE_R','LIST_PARA'),),
- FONCTION =SIMP(statut='o',typ=fonction ),
- NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE_R =SIMP(statut='f',typ='R',max='**'),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG","INT") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-) ;
-#& MODIF COMMANDE DATE 03/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.
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,RMS,NOCI_SEISME,MAX,COMB,COMB_C,ENVELOPPE,SPEC_OSCI,ASSE,FFT,COMPOSE,**args):
- if (RMS != None) : return tabl_fonc_rms
- if (MAX != None) : return tabl_fonc_max
- if (NOCI_SEISME != None): return tabl_fonc_noci
- if (INTEGRE != None) : return fonction
- if (DERIVE != 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
- 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-e1",reentrant='n',
- regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','COMB_C','ENVELOPPE','RMS',
- 'NOCI_SEISME','COMPOSE','EXTRACTION','ASSE','FFT' ),),
- 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) )
- ),
- 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 ),
- ),
- 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),
- COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
- ),
- 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 ),
- INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
- INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- NOCI_SEISME =FACT(statut='f',min=1,max=1,
- FONCTION =SIMP(statut='f',typ=fonction ),
- SPEC_OSCI =SIMP(statut='f',typ=fonction ),
- 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'),
- INST_FIN =SIMP(statut='f',typ='R'),
- NATURE =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE") ),
- COEF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PESANTEUR =SIMP(statut='f',typ='R',defaut= 9.81E+0 ),
- FREQ_INIT =SIMP(statut='f',typ='R',defaut= 4.E-1 ),
- FREQ_FIN =SIMP(statut='f',typ='R',defaut= 10.E+0 ),
- AMOR_REDUIT =SIMP(statut='f',typ='R'),
- LIST_FREQ =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- NORME =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
- BORNE_INF =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
- BORNE_SUP =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
- b_acce_reel =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
- 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 ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- NORME =SIMP(statut='f',typ='R',defaut= 9.81E+0,fr="Valeur de la norme du spectre d oscillateur" ),
- NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
- NATURE_FONC =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
- ),
- MAX =FACT(statut='f',min=1,max=1,fr="Calcul des extrémas locaux d une fonction",
- FONCTION =SIMP(statut='o',typ=fonction ),
- ),
- COMB =FACT(statut='f',min=1,max='**',fr="Calcul d une combinaison linéaire réelle de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction ),
- COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
- ),
- 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) ),
- COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
- COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
- ),
- b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)",
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- ),
- 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),
- FONC_PARA =SIMP(statut='o',typ=fonction),
- ),
- 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',min=1,max=1,fr="Calcul de l enveloppe d une famille de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
- ),
- ASSE =FACT(statut='f',min=1,max=1,fr="Création à partir de la concatenation de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
- ),
- NOM_PARA =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS",
- "AMOR","ABSC") ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS",
- "AMOR","ABSC") ),
- INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-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-a",reentrant ='n',
-
- regles=(EXCLUS('MODE_MECA','MODELE_GENE'),
- PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'),
- UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'),
- UN_PARMI('MONO_APPUI','MODE_STAT')),
-
- MODELE_FLUIDE =SIMP(statut='o',typ=modele ),
- MODELE_INTERFACE=SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='o',typ=char_ther ),
- MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
- NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ),
- DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NUME_MODE_MECA =SIMP(statut='f',typ='I',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,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',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") ),
- ),
- b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0), ),
-
- ) ;
-#& MODIF COMMANDE DATE 12/09/2001 AUTEUR MCOURTOI M.COURTOIS
-# 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.
-# ======================================================================
-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-e1",reentrant='n',
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- FOND =SIMP(statut='o',typ=fond_fiss),
- regles=(UN_PARMI('RESULTAT','DEPL'),
- UN_PARMI('R_INF','R_INF_FO'),
- PRESENT_PRESENT('R_INF','R_SUP'),
- PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
-
- DEPL =SIMP(statut='f',typ=cham_no_depl_r),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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") ),
- ),
- ),
-
- 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,
- RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
- into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
-
- COMP_INCR =FACT(statut='f',min=01,max=01,
- RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
- into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_CINE_LINE =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
-
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- 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_LGLO","G_BILINEAIRE","CALC_G_MAX") ),
- b_g =BLOC(condition="OPTION=='CALC_G'",
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ),
- ),
- b_g_lglo =BLOC(condition="OPTION=='CALC_G_LGLO'",
- PROPAGATION =SIMP(statut='o',typ='R'),
- THETA =SIMP(statut='o',typ=theta_geom),
- DIRE_THETA =SIMP(statut='f',typ=cham_no_depl_r),
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ),
- ),
- b_g_bilin =BLOC(condition="OPTION=='G_BILINEAIRE'",
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- 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='**',
- NUME_ORDRE =SIMP(statut='o',typ='I'),
- VALE_MIN =SIMP(statut='o',typ='R'),
- VALE_MAX =SIMP(statut='o',typ='R'),
- ),
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- ),
-
- DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
-
- R_INF =SIMP(statut='f',typ='R'),
- R_SUP =SIMP(statut='f',typ='R'),
- R_INF_FO =SIMP(statut='f',typ=fonction),
- R_SUP_FO =SIMP(statut='f',typ=fonction),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 12/09/2001 AUTEUR MCOURTOI M.COURTOIS
-# 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.
-# ======================================================================
-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-e1",reentrant='n',
- regles=(UN_PARMI('RESULTAT','DEPL'),
- EXCLUS('COMP_ELAS','COMP_INCR'),),
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- THETA =SIMP(statut='o',typ=theta_geom),
- DEPL =SIMP(statut='f',typ=cham_no_depl_r),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),),
-
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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") ),
- ),
- ),
-
- 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,
- RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
- into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- COMP_INCR =FACT(statut='f',min=01,max=01,
- RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
- into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_CINE_LINE =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- 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='**',
- NUME_ORDRE =SIMP(statut='o',typ='I'),
- VALE_MIN =SIMP(statut='o',typ='R'),
- VALE_MAX =SIMP(statut='o',typ='R'),
- ),
- ),
- b_calc_k_g =BLOC(condition="OPTION=='CALC_K_G'",
- FOND =SIMP(statut='o',typ=fond_fiss),
- ),
- b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'",
- PROPAGATION =SIMP(statut='o',typ='R'),
- ),
- b_calc_dg =BLOC(condition="OPTION=='CALC_DG'",
- SENSIBILITE =FACT(statut='f',min=01,max=01,
- 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
-# 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.
-# ======================================================================
-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',
- INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- INST_FIN =SIMP(statut='o',typ='R' ),
- DUREE_ANALYSE =SIMP(statut='f',typ='R' ),
- DUREE_DECALAGE =SIMP(statut='f',typ='R' ),
- NB_POIN =SIMP(statut='o',typ='I' ),
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- 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
-# 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.
-# ======================================================================
-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',
- regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
- PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
- PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),),
- MODELE_FLUIDE =SIMP(statut='o',typ=modele ),
- MODELE_INTERFACE=SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='o',typ=char_ther ),
- MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ),
- MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
- NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ),
- DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NUME_MODE_MECA =SIMP(statut='f',typ='I',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',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") ),
- ),
- b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& MODIF COMMANDE DATE 11/12/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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def calc_matr_elem_prod(OPTION,**args):
- if OPTION == "RIGI_MECA" : return matr_elem_depl_r
- if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r
- if OPTION == "RIGI_MECA_LAGR" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MDEP_R" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MDNS_R" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MTEM_R" : return matr_elem_temp_r
- if OPTION == "MASS_ID_MTNS_R" : return matr_elem_temp_r
- if OPTION == "MASS_MECA" : return matr_elem_depl_r
- if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r
- if OPTION == "RIGI_GEOM" : return matr_elem_depl_r
- if OPTION == "RIGI_ROTA" : return matr_elem_depl_r
- if OPTION == "AMOR_MECA" : return matr_elem_depl_r
- if OPTION == "IMPE_MECA" : return matr_elem_depl_r
- if OPTION == "ONDE_FLUI" : return matr_elem_depl_r
- if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c
- if OPTION == "RIGI_THER" : return matr_elem_temp_r
- if OPTION == "MASS_THER" : return matr_elem_temp_r
- if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r
- if OPTION == "RIGI_ACOU" : return matr_elem_pres_c
- if OPTION == "MASS_ACOU" : return matr_elem_pres_c
- if OPTION == "AMOR_ACOU" : return matr_elem_pres_c
- raise AsException("type de concept resultat non prevu")
-
-CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod
- ,fr="Calcul des matrices élémentaires",docu="U4.61.01-f",reentrant='n',
- OPTION =SIMP(statut='o',typ='TXM',
- into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
- "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
- "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU",
- "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU",
- "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R",
- "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST",
- "RIGI_MECA_LAGR") ),
-
- b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
- regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- CHARGE =SIMP(statut='f',typ=char_meca,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,max='**' ),
- b_charge =BLOC(condition = "CHARGE != None",
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- THETA =SIMP(statut='o',typ=theta_geom ),
- PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-
- b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
- regles=(AU_MOINS_UN('MODELE','CHARGE'),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
- CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
- b_charge =BLOC(condition = "CHARGE != None",
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ),
-
- b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ",
- MODELE =SIMP(statut='o',typ=modele ),
- # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
-
- b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'",
- MODELE =SIMP(statut='o',typ=modele ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 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,max='**' ),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-
- b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'",
- regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
- ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
- MODELE =SIMP(statut='o',typ=modele ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
- MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
- CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
- ),
-
- b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
- MODELE =SIMP(statut='o',typ=modele ),
- CHARGE =SIMP(statut='o',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 ),
- ),
-
- b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'",
- regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- CHARGE =SIMP(statut='f',typ=char_ther,max='**' ),
- ),
-
- b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'",
- MODELE =SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
-
- 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 ,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 ,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,max='**' ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- ),
-) ;
-#& MODIF COMMANDE DATE 27/06/2001 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,docu="U4.85.01-a",reentrant='o',
- 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',),),
- 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',min=01,max='**',
- RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ),
- ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,) ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma),
- MAILLE =SIMP(statut='f',typ=ma),
- ),
- OPTION =SIMP(statut='f',typ='TXM'
- ,into=("META_ELNO_TEMP",) ),
-) ;
-#& MODIF COMMANDE DATE 04/12/2001 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def calc_no_prod(RESULTAT,**args):
- if AsType(RESULTAT) != None : return AsType(RESULTAT)
- raise AsException("type de concept resultat non prevu")
-
-CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,docu="U4.81.02-e1",reentrant='o',
- RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
- mode_acou,mode_stat,mode_stat_depl,mode_stat_acce,
- mode_stat_forc,evol_ther,evol_noli,base_modale,
- mult_elas,fourier_elas,mode_flamb ) ),
- 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',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',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',max='**',
- into=("FORC_NODA","REAC_NODA",
- "DCHA_NOEU_SIGM",
- "DEGE_NOEU_DEPL",
- "DETE_NOEU_DLTE",
- "DEDE_NOEU_DLDE",
- "DESI_NOEU_DLSI",
- "DURT_NOEU_META",
- "EFGE_NOEU_CART","EFGE_NOEU_DEPL",
- "ENDO_NOEU_SINO",
- "ENEL_NOEU_ELGA",
- "EPMG_NOEU_DEPL",
- "EPSA_NOEU",
- "EPSG_NOEU" ,"EPSG_NOEU_DEPL",
- "EPSI_NOEU_DEPL","EPSI_NOEU_DPGE",
- "EPSP_NOEU" ,"EPSP_NOEU_ZAC",
- "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM",
- "ERRE_NOEU_ELGA",
- "FLUX_NOEU_TEMP",
- "GRAD_NOEU_THETA",
- "HYDR_NOEU_ELGA",
- "INTE_NOEU_ACTI","INTE_NOEU_REAC",
- "META_NOEU_TEMP",
- "PMPB_NOEU_SIEF",
- "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL",
- "RADI_NOEU_SIGM",
- "SIEF_NOEU" ,"SIEF_NOEU_ELGA",
- "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL","SIGM_NOEU_DPGE",
- "SIGM_NOEU_SIEF","SIGM_NOEU_VARI","SIGM_NOEU_ZAC",
- "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF",
- "SIRE_NOEU_DEPL",
- "VARI_NOEU" ,"VARI_NOEU_ELGA",) ),
-
- b_forc_reac =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\
- (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""",
- MODELE =SIMP(statut='o',typ=modele),
- ),
-
- CHAM_MATER =SIMP(statut='f',typ=cham_mater),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- 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),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- TAILLE_BLOC =SIMP(statut='f',typ='R' ,defaut= 400. ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-d",reentrant='n',
- fr="Affectation d un champ sur le maillage (mécanique de la rupture)",
- regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
- PRESENT_PRESENT('THETA_3D','FOND_3D'),
- PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
- EXCLUS('DIRECTION','DIRE_THETA'),),
- OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
- MODELE =SIMP(statut='o',typ=(modele) ),
- FOND_3D =SIMP(statut='f',typ=(fond_fiss) ),
- THETA_3D =FACT(statut='f',min=01,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,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'),
- MODULE_FO =SIMP(statut='f',typ=fonction),
- R_INF_FO =SIMP(statut='f',typ=fonction),
- R_SUP_FO =SIMP(statut='f',typ=fonction),
- ),
- 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='**',
- regles=(UN_PARMI('GROUP_NO','NOEUD'),),
- 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',min=01,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,
- 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
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def calc_vect_elem_prod(OPTION,**args):
- if OPTION == "CHAR_MECA" : return vect_elem_depl_r
- if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r
- if OPTION == "CHAR_THER" : return vect_elem_temp_r
- if OPTION == "CHAR_ACOU" : return vect_elem_pres_c
- if OPTION == "FORC_NODA" : return vect_elem_depl_r
- raise AsException("type de concept resultat non prevu")
-
-CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,docu="U4.61.02-f",reentrant='n',
- fr="Calcul des seconds membres élémentaires",
- OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU",
- "FORC_NODA","CHAR_MECA_LAGR") ),
- b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'",
- regles=(AU_MOINS_UN('CHARGE','MODELE'),),
- CHARGE =SIMP(statut='f',typ=char_meca,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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
- SOUS_STRUC =FACT(statut='o',min=01,
- regles=(UN_PARMI('TOUT','MAILLE'),),
- CAS_CHARGE =SIMP(statut='o',typ='TXM' ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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,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,max='**'),
- ),
-
- b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'",
- SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- MODELE =SIMP(statut='f',typ=modele),
- ),
-
- b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'",
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- THETA =SIMP(statut='o',typ=theta_geom),
- PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args):
-
- if COMB_R != None:
- vale=COMB_R.get_child('CHAM_ELEM').get_valeur()
- elif COMB_C != None:
- vale=COMB_C.get_child('CHAM_ELEM').get_valeur()
- elif COMB_FOURIER != None:
- vale=COMB_FOURIER.get_child('CHAM_ELEM').get_valeur()
- else :
- raise AsException("type de concept resultat non prevu")
-
- if AsType(vale) == cham_elem_sief_r : return cham_elem_sief_r
- if AsType(vale) == cham_elem_flux_r : return cham_elem_flux_r
- if AsType(vale) == cham_elem_epsi_r : return cham_elem_epsi_r
- if AsType(vale) == cham_elem_ener_r : return cham_elem_ener_r
- if AsType(vale) == cham_elem_crit_r : return cham_elem_crit_r
- if AsType(vale) == cham_elem_dbel_r : return cham_elem_dbel_r
- if AsType(vale) == cham_elem_pres_r : return cham_elem_pres_r
- if AsType(vale) == cham_elem_sief_c : return cham_elem_sief_c
- raise AsException("type de concept resultat non prevu")
-
-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",
- regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),
- PRESENT_PRESENT('COMB_FOURIER','ANGL'),),
- COMB_R =FACT(statut='f',min=01,max='**',
- PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
- COEF_R =SIMP(statut='o',typ='R'),
- CHAM_ELEM =SIMP(statut='o',
- typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r,
- 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='**',
- 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='**',
- 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") ),
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r ) ),
- ),
- ANGL =SIMP(statut='f',typ='R' ),
-) ;
-
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args):
- if COMB_C != None:
- type_mat = AsType(COMB_C.get_child('CHAM_NO').get_valeur())
- if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_c
- if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_c
- if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_c
- elif COMB_R != None:
- type_mat = AsType(COMB_R.get_child('CHAM_NO').get_valeur())
- if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_r
- if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_r
- if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_r
- if type_mat == matr_asse_gene_r : return matr_asse_gene_r
- elif COMB_FOURIER != None:
- type_mat = AsType(COMB_FOURIER.get_child('CHAM_NO').get_valeur())
- if type_mat == cham_no_temp_r : return cham_no_temp_r
- if type_mat == cham_no_depl_r : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-
-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',
- regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),),
- COMB_R =FACT(statut='f',min=01,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='**',
- 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='**',
- 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' ),
- TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
- ),
- b_angl = BLOC ( condition = "COMB_FOURIER != None",
- ANGL =SIMP(statut='o',typ='R' ),
- ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
- docu="U4.83.31-c",reentrant='n',
- RESULTAT =SIMP(statut='o',typ=fourier_elas ),
- ANGL =SIMP(statut='o',typ='R',max='**'),
- NOM_CHAM =SIMP(statut='o',typ='TXM',max=05,
- into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ),
-) ;
-#& MODIF COMMANDE DATE 10/07/2001 AUTEUR ACBHHCD G.DEVESA
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def comb_matr_asse_prod(COMB_R,COMB_C,**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_gene_c,matr_asse_gene_r) : return matr_asse_gene_c
- if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c
- if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
- elif COMB_R != None:
- type_mat = AsType(COMB_R.get_child('MATR_ASSE').get_valeur())
- if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
- if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
- if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
- if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
- 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-f",reentrant='f',
- regles=(UN_PARMI('COMB_R','COMB_C' ),),
- COMB_R =FACT(statut='f',min=01,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='**',
- 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' ),
- ),
- SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
-) ;
-#& MODIF COMMANDE DATE 28/03/2001 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-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-d",reentrant='n',
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'),
- UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- MODE_CORR =SIMP(statut='f',typ=mode_stat_acce ),
-
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
-
- 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='**',
- 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,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- AXE =SIMP(statut='f',fr="Excitation suivant un seul axe",
- typ='R',max=03),
- TRI_AXE =SIMP(statut='f',fr="Excitation suivant les trois axes mais avec le meme spectre",
- typ='R',max=03),
- 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),
- ),
- 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),
- ),
- 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),
- ),
- NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
- ),
- COMB_MODE =FACT(statut='o',min=01,max=01,
- 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,
- TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
- ),
- COMB_MULT_APPUI =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TYPE =SIMP(statut='o',typ='TXM',into=("QUAD","LINE","ABS") ),
- ),
- DEPL_MULT_APPUI =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO'),
- AU_MOINS_UN('DX','DY','DZ' ),),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,), ),
- NOEUD_REFE =SIMP(statut='f',typ=no),
- 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',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',min=01,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 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-def crea_champ_prod(TYPE_CHAM,**args):
- 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
- 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-a1",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",
- "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',)),
- 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'),),
- 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',),
- 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='**'),
- ),
- ),
- b_asse =BLOC(condition = "OPERATION == 'ASSE'",
- regles=(UN_PARMI('MAILLAGE','MODELE'),EXCLUS('MAILLAGE','PROL_ZERO'),),
- 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',),
- PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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='**' ),
- CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- COEF_R =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- ),
- 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'",
- 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'),),
- 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',
- 'NOEUD_CMP','NOM_CAS','ANGL', ),),
- 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",
- "GTHE_ELNO_ELGA","GRAD_NOEU_THETA",
- "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),
- 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='**' ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage,
- docu="U4.23.02-c",reentrant='n',
- 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",
- 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_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',min=01,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='**'),
- 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',min=01,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,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',min=01,max=01,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",
- regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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 ),
- ),
- REPERE =FACT(statut='f',min=01,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" ),
- NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
- NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ),
- b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
- GROUP_MA =SIMP(statut='f',typ=grma,
- fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
- ),
- ),
- ECLA_PG =FACT(statut='f',min=01,max=01,
- 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 07/01/2002 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.
-# ======================================================================
-def crea_resu_prod(TYPE_RESU,**args):
- if TYPE_RESU == "EVOL_ELAS" : return evol_elas
- if TYPE_RESU == "EVOL_NOLI" : return evol_noli
- if TYPE_RESU == "EVOL_THER" : return evol_ther
- if TYPE_RESU == "MULT_ELAS" : return mult_elas
- if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
- if TYPE_RESU == "EVOL_VARC" : return evol_varc
- 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-d1",reentrant='f',
- 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",),
- fr="choix de la fonction a activer",),
-
- b_affe =BLOC(condition = "OPERATION == 'AFFE'",
-
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
- "EVOL_THER","EVOL_VARC",) ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","TEMP","IRRA","HYDR_ELGA",),max=1 ),
- AFFE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOM_CAS','NUME_MODE','LIST_INST','INST',),),
- CHAM_GD =SIMP(statut='f',typ=(cham_gd)),
- NUME_ORDRE_INIT =SIMP(statut='f',typ='I'),
- 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',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- NUME_INIT =SIMP(statut='f',typ='I'),
- NUME_FIN =SIMP(statut='f',typ='I'),
- ),
- ),
-
- b_ecla_pg =BLOC(condition = "OPERATION == 'ECLA_PG'",
-
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ),
-
- ECLA_PG =FACT(statut='f',min=01,max=01,
- 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",) ),
- 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',defaut="OUI",into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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",),max='**' ),
- RESU_INIT =SIMP(statut='o',typ=evol_noli),
- INST_INIT =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'),
- MAILLAGE_INIT =SIMP(statut='o',typ=maillage,),
- RESU_FINAL =SIMP(statut='o',typ=evol_noli,),
- MAILLAGE_FINAL =SIMP(statut='o',typ=maillage,),
- PERM_CHAM =FACT(statut='o',min=01,max=01,
- GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
- GROUP_MA_INIT =SIMP(statut='o',typ=grma),
- TRAN =SIMP(statut='o',typ='R',max='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- ),
- ),
-
- b_prol_rtz =BLOC(condition = "OPERATION == 'PROL_RTZ'",
-
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ),
-
- PROL_RTZ =FACT(statut='f',min=01,max=01,
- 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',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") ),
- ),
- 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),
- ),
- ),
-
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-f1",repetable='n',
- fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
- sd_prod=ops.DEBUT,
-
- PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
- into=("OUI","NON"),defaut="OUI"),
- BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX",
- statut='f',min=01,max=03,
- FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM',
- into=('GLOBALE','VOLATILE','LOCALE'),),
- TITRE =SIMP(statut='f',typ='TXM'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=01,max=03,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=01,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- CODE =FACT("définition d un nom pour l'esemble d'une étude",
- statut='f',min=01,max=01,
- NOM =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=01,max=01,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TEST',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
- GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
- TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
- TAILLE =SIMP(statut='f',typ='I'),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
- PARTITION =SIMP(statut='f',typ='R'),
- ),
- );
-#& MODIF COMMANDE DATE 19/12/2001 AUTEUR CIBHHPD D.NUNEZ
-# 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.
-# ======================================================================
-DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale,
- docu="U4.64.02-e",reentrant='f',
- regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),),
- CLASSIQUE =FACT(statut='f',min=01,max=01,
- 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='**',
- regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),),
- MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ),
- NMAX_MODE =SIMP(statut='f',typ='I',defaut= 999 ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
- MULT_ELAS =SIMP(statut='f',typ=mult_elas ),
- BASE_MODALE =SIMP(statut='f',typ=base_modale ),
- ),
- DIAG_MASS =FACT(statut='f',min=01,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,) ),
- ),
-# le bloc conditionnel remplace-t-il PRESENT_PRESENT('RITZ','NUME_REF'),
-# PRESENT_ABSENT('INTERF_DYNA','CLASSIQUE'),
- b_ritz =BLOC(condition = "RITZ != None",
- INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ),
- NUME_REF =SIMP(statut='o',typ=nume_ddl ),
- ),
- 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
-# 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.
-# ======================================================================
-DEFI_CABLE_BP=OPER(nom="DEFI_CABLE_BP",op= 180,sd_prod=cabl_precont,
- fr=" ",
- docu="U4.42.04-a",reentrant='n',
- MODELE =SIMP(statut='o',typ=modele ),
- 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',min=1,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
- MAILLE =SIMP(statut='f',typ=ma,min=2,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma),
- 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") ),
- ),
- 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,max=1,
- R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-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',
- NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE =SIMP(statut='o',typ='R',max=01 ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-e",reentrant='n',
- fr="Définition d une coque composite couche par couche",
- COUCHE =FACT(statut='o',min=01,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,
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT",) ),
- ),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
- docu="U4.25.01-d",reentrant='n',
- regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
- FAISCEAU_TRANS =FACT(statut='f',min=01,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 ),
- PROF_RHO_F_INT =SIMP(statut='f',typ=fonction ),
- PROF_RHO_F_EXT =SIMP(statut='f',typ=fonction ),
- NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
- COEF_MASS_AJOU =SIMP(statut='f',typ='R' ),
- TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
- TYPE_RESEAU =SIMP(statut='f',typ='I' ),
- UNITE_CD =SIMP(statut='f',typ='I',defaut=70),
- UNITE_CK =SIMP(statut='f',typ='I',defaut=71),
- PAS =SIMP(statut='f',typ='R' ),
- ),
- GRAPPE =FACT(statut='f',min=00,max=01,
- regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',),
- PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),),
-# peut on créer un bloc a partir de la valeur de couplage
- COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
- GRAPPE_2 =SIMP(statut='f',typ='TXM',
- into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
- NOEUD =SIMP(statut='f',typ=no),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODELE =SIMP(statut='f',typ=modele ),
- COEF_MASS_AJOU =SIMP(statut='f',typ='R' ),
- RHO_FLUI =SIMP(statut='f',typ='R' ),
- UNITE_CA =SIMP(statut='f',typ='I',defaut=70),
- UNITE_KA =SIMP(statut='f',typ='I',defaut=71),
- ),
- FAISCEAU_AXIAL =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
- UN_PARMI('CARA_ELEM','RAYON_TUBE'),
- ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
- PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
- ENSEMBLE('CARA_PAROI','VALE_PAROI'),
- ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
- 'COOR_GRILLE','TYPE_GRILLE', ),),
-# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ),
- VECT_X =SIMP(statut='f',typ='R',max=03),
- 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),
- RUGO_TUBE =SIMP(statut='f',typ='R' ),
- CARA_PAROI =SIMP(statut='f',typ='TXM',max=05,
- into=("YC","ZC","R","HY","HZ") ),
- VALE_PAROI =SIMP(statut='f',typ='R',max=05),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- LONG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- LARG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- EPAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- RUGO_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'),
- COOR_GRILLE =SIMP(statut='f',typ='R',max='**'),
- TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'),
- ),
- COQUE_COAX =FACT(statut='f',min=00,max=01,
- MASS_AJOU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- GROUP_MA_INT =SIMP(statut='o',typ=grma),
- GROUP_MA_EXT =SIMP(statut='o',typ=grma),
- VECT_X =SIMP(statut='o',typ='R',max='**'),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MATER_INT =SIMP(statut='o',typ=mater ),
- MATER_EXT =SIMP(statut='o',typ=mater ),
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- VISC_CINE =SIMP(statut='o',typ='R' ),
- RUGOSITE =SIMP(statut='o',typ='R' ),
- PDC_MOY_1 =SIMP(statut='o',typ='R' ),
- PDC_DYN_1 =SIMP(statut='o',typ='R' ),
- PDC_MOY_2 =SIMP(statut='o',typ='R' ),
- PDC_DYN_2 =SIMP(statut='o',typ='R' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 23/01/2002 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.
-# ======================================================================
-DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.MK.10-e",reentrant='n',
- fr="Définition d une fonction du temps pour calculer des forces de LAPLACE",
- regles=(UN_PARMI('COUR_PRIN','COUR'),
- EXCLUS('COUR','COUR_SECO'), ),
- FREQ =SIMP(statut='f',typ='R',defaut= 50.),
- SIGNAL =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
- COUR =FACT(statut='f',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'),),
- INTE_CC_1 =SIMP(statut='o',typ='R'),
- TAU_CC_1 =SIMP(statut='o',typ='R'),
- PHI_CC_1 =SIMP(statut='f',typ='R'),
- INTC_CC_1 =SIMP(statut='f',typ='R'),
- INTE_CC_2 =SIMP(statut='o',typ='R'),
- TAU_CC_2 =SIMP(statut='o',typ='R'),
- PHI_CC_2 =SIMP(statut='f',typ='R'),
- INTC_CC_2 =SIMP(statut='f',typ='R'),
- INST_CC_INIT =SIMP(statut='o',typ='R'),
- INST_CC_FIN =SIMP(statut='o',typ='R'),
- ),
- COUR_PRIN =FACT(statut='f',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'),
- TAU_CC_1 =SIMP(statut='o',typ='R'),
- PHI_CC_1 =SIMP(statut='f',typ='R'),
- INTC_CC_1 =SIMP(statut='f',typ='R'),
- INTE_RENC_1 =SIMP(statut='f',typ='R'),
- TAU_RENC_1 =SIMP(statut='f',typ='R'),
- PHI_RENC_1 =SIMP(statut='f',typ='R'),
- INST_CC_INIT =SIMP(statut='o',typ='R'),
- INST_CC_FIN =SIMP(statut='o',typ='R'),
- INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- ),
- COUR_SECO =FACT(statut='f',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'),
- TAU_CC_2 =SIMP(statut='o',typ='R'),
- PHI_CC_2 =SIMP(statut='f',typ='R'),
- INTC_CC_2 =SIMP(statut='f',typ='R'),
- INTE_RENC_2 =SIMP(statut='f',typ='R'),
- TAU_RENC_2 =SIMP(statut='f',typ='R'),
- PHI_RENC_2 =SIMP(statut='f',typ='R'),
- DIST =SIMP(statut='f',typ='R',defaut=1.0E+0),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 03/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.
-# ======================================================================
-DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction,
- docu="U4.35.01-c",reentrant='n',
- MAILLAGE =SIMP(statut='o',typ=(maillage) ),
- NOEUD_INIT =SIMP(statut='o',typ=no),
- NOEUD_FIN =SIMP(statut='o',typ=no),
- 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 ) ),
- ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",
- into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",
- into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM' ,defaut="EXCLU",
- into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-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-f1",reentrant='n',
- 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='**'),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,docu="U4.82.01-e",reentrant='n',
- 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('FOND_FERME','DTAN_EXTR'),
- EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
- EXCLUS('FOND_FERME','VECT_GRNO_EXTR'),
- UN_PARMI('LEVRE_SUP','NORMALE'),
- EXCLUS('LEVRE_INF','NORMALE'),
- ENSEMBLE('DTAN_ORIG','DTAN_EXTR'),
- ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'),
- 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,
- 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,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,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',min=01,max=01,
- regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
- EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
- 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=01,max=01,
- 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,
- regles=(UN_PARMI('GROUP_MA','MAILLE', ),),
- 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,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 30/01/2002 AUTEUR VABHHTS J.TESELET
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def defi_group_prod(MAILLAGE,**args):
- if AsType(MAILLAGE) == maillage : return maillage
- if AsType(MAILLAGE) == squelette : return squelette
- raise AsException("type de concept resultat non prevu")
-
-DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
- fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
- docu="U4.22.01-e",reentrant='o',
- 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='**',
- 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,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',defaut= 1 ),
- 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_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ),
- VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_sphere =BLOC(condition = "OPTION == 'SPHERE'",
- regles=(UN_PARMI('POINT','NOEUD_CENTRE'),),
- POINT =SIMP(statut='f',typ='R',max=03),
- NOEUD_CENTRE =SIMP(statut='f',typ=no),
- 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),
- 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),
- ),
- 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),
- 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),
- ),
- ),
- CREA_GROUP_NO =FACT(statut='f',min=01,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",) ),
- 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") ),
- b_nom_group_ma =BLOC(condition = "GROUP_MA != None",
- NOM =SIMP(statut='f',typ=grma,max='**'),
- ),
- b_crit_noeud = BLOC(condition = "GROUP_MA != None",
- CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS",
- 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") ),
- 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),
- 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),
- RAYON =SIMP(statut='o',typ='R' ),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03),
- VECT_NORMALE =SIMP(statut='f',typ='R',max=03),
- 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),
- 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'),),
- 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") ),
- ),
- b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
- regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
- 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 03/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.
-# ======================================================================
-DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
- docu="U4.36.02-e1",reentrant='n',
-
- DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ),
-
- 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',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' ),
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ),
- PAS =SIMP(statut='f',typ='R',defaut= 1. ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ),
- FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ),
- VALE_R =SIMP(statut='f',typ='R' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- ),
- CONSTANT =FACT(statut='f',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' ),
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ),
- PAS =SIMP(statut='f',typ='R',defaut= 1. ),
- VALE_R =SIMP(statut='f',typ='R' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas,
- docu="U4.64.01-e",reentrant='n',
- NUME_DDL =SIMP(statut='o',typ=nume_ddl ),
- INTERFACE =FACT(statut='o',min=01,max='**',
- regles=(ENSEMBLE('NOM','TYPE'),
-# erreur doc U sur la condition qui suit
- UN_PARMI('NOEUD','GROUP_NO'),),
- NOM =SIMP(statut='f',typ='TXM' ),
- TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'),
- MASQUE =SIMP(statut='f',typ='TXM',max='**'),
- ),
- FREQ =SIMP(statut='f',typ='R',defaut= 1.),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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',
- 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='**',
- regles=(UN_PARMI('NOMBRE','PAS'),),
- JUSQU_A =SIMP(statut='o',typ='I'),
- NOMBRE =SIMP(statut='f',typ='I',val_min=1,),
- PAS =SIMP(statut='f',typ='I',val_min=1,),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 07/03/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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-f",reentrant='n',
- 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='**',
- regles=(UN_PARMI('NOMBRE','PAS'),),
- JUSQU_A =SIMP(statut='o',typ='R'),
- NOMBRE =SIMP(statut='f',typ='I'),
- PAS =SIMP(statut='f',typ='R'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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='**',
- 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),
- b_angl_naut =BLOC(condition = "ANGL_NAUT != None",
- CENTRE =SIMP(statut='f',typ='R',max=03),
- ),
- ),
- RECO_GLOBAL =FACT(statut='f',min=01,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='**',
- MAILLE =SIMP(statut='o',typ=ma,max='**'),
- GROUP_NO =SIMP(statut='o',typ=grno,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ),
- geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
- DEFI_NOEUD =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Renommage de tous les noeuds" ),
- NOEUD_INIT =SIMP(statut='f',typ=no,
- fr="Renommage d un seul noeud"),
- b_tout =BLOC(condition = "TOUT != None",
- PREFIXE =SIMP(statut='f',typ='TXM' ),
- INDEX =SIMP(statut='o',typ='I',max='**'),
- ),
- b_noeud_init =BLOC(condition = "NOEUD_INIT != None",
- MAILLE =SIMP(statut='o',typ=ma),
- NOEUD_FIN =SIMP(statut='o',typ=no),
- ),
- ),
- DEFI_GROUP_NO =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','MAILLE'),
- AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
- ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
-# la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Création de plusieurs groupes de noeuds" ),
- MAILLE =SIMP(statut='f',typ=ma,
- fr="Création de plusieurs groupes de noeuds"),
- GROUP_NO_INIT =SIMP(statut='f',typ=grno,
- fr="Création d un seul groupe de noeuds"),
- PREFIXE =SIMP(statut='f',typ='TXM' ),
- INDEX =SIMP(statut='f',typ='I',max='**'),
- GROUP_NO_FIN =SIMP(statut='f',typ=grno),
- ),
-) ;
-#& MODIF COMMANDE DATE 30/01/2002 AUTEUR VABHHTS J.TESELET
-# 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.
-# ======================================================================
-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-f1",reentrant='n',
- 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'),
- EXCLUS('ECRO_LINE','ECRO_LINE_FO'),
- EXCLUS('TAHERI','TAHERI_FO'),
- EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
- PRESENT_PRESENT('ROUSSELIER','TRACTION'),
- PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
- EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'),
- EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'),
- EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
- EXCLUS('POLY_CFC','POLY_CFC_FO'),
- EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI'),
- EXCLUS('OHNO','OHNO_FO'),
- 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'),),
-#
-# 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,
- 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 ),
- 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",) ),
- ),
- 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'),
- PROF_RHO_F_INT =SIMP(statut='o',typ=fonction),
- PROF_RHO_F_EXT =SIMP(statut='o',typ=fonction),
- COEF_MASS_AJOU =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="ABSC",into=("ABSC",) ),
- ),
- 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'),
- NU_LN =SIMP(statut='o',typ='R'),
- G_LN =SIMP(statut='o',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ELAS_ISTR_FO =FACT(statut='f',min=0,max=1,
- E_L =SIMP(statut='o',typ=fonction),
- E_N =SIMP(statut='o',typ=fonction),
- NU_LT =SIMP(statut='o',typ=fonction),
- NU_LN =SIMP(statut='o',typ=fonction),
- G_LN =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_L =SIMP(statut='f',typ=fonction),
- ALPHA_N =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST")),
- ),
- 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'),
- NU_LT =SIMP(statut='o',typ='R'),
- NU_LN =SIMP(statut='f',typ='R'),
- NU_TN =SIMP(statut='f',typ='R'),
- G_LT =SIMP(statut='o',typ='R'),
- G_LN =SIMP(statut='f',typ='R'),
- G_TN =SIMP(statut='f',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- XT =SIMP(statut='f',typ='R',defaut= 1. ),
- XC =SIMP(statut='f',typ='R',defaut= 1. ),
- YT =SIMP(statut='f',typ='R',defaut= 1. ),
- YC =SIMP(statut='f',typ='R',defaut= 1. ),
- S_LT =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- ELAS_ORTH_FO =FACT(statut='f',min=0,max=1,
- E_L =SIMP(statut='o',typ=fonction),
- E_T =SIMP(statut='o',typ=fonction),
- E_N =SIMP(statut='o',typ=fonction),
- NU_LT =SIMP(statut='o',typ=fonction),
- NU_LN =SIMP(statut='o',typ=fonction),
- NU_TN =SIMP(statut='o',typ=fonction),
- G_LT =SIMP(statut='o',typ=fonction),
- G_LN =SIMP(statut='o',typ=fonction),
- G_TN =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_L =SIMP(statut='f',typ=fonction),
- ALPHA_T =SIMP(statut='f',typ=fonction),
- ALPHA_N =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
- ),
- 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'),
- KB =SIMP(statut='f',typ='R'),
- D_KB_T =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,max=1,
- E_CHAR =SIMP(statut='o',typ='R'),
- E_DECHAR =SIMP(statut='o',typ='R'),
- XN =SIMP(statut='f',typ='R'),
- RF =SIMP(statut='f',typ='R'),
- EV_KB =SIMP(statut='f',typ='R'),
- EV_XM =SIMP(statut='f',typ='R'),
- D_E_T =SIMP(statut='f',typ='R'),
- ALPHA0 =SIMP(statut='f',typ='R'),
- ALPHA1 =SIMP(statut='f',typ='R'),
- ALPHA2 =SIMP(statut='f',typ='R'),
- ALPHA3 =SIMP(statut='f',typ='R'),
- ALPHA_S =SIMP(statut='f',typ='R'),
- ANG_FRT =SIMP(statut='o',typ='R'),
- COHE =SIMP(statut='o',typ='R'),
- RESI_TRAC =SIMP(statut='o',typ='R'),
- ),
- 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'),
- M =SIMP(statut='f',typ='R'),
- PRES_CRIT =SIMP(statut='f',typ='R'),
- GAMA =SIMP(statut='o',typ='R'),
- A0_PC =SIMP(statut='o',typ='R'),
- A1_PC =SIMP(statut='f',typ='R'),
- A2_PC =SIMP(statut='f',typ='R'),
- ALPHA0_PC =SIMP(statut='f',typ='R'),
- ALPHA1_PC =SIMP(statut='f',typ='R'),
- ALPHA2_PC =SIMP(statut='f',typ='R'),
- ALPHA3_PC =SIMP(statut='f',typ='R'),
- ALPHA_S =SIMP(statut='f',typ='R'),
- ),
- 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'),
- RF =SIMP(statut='f',typ='R'),
- EV_KB =SIMP(statut='f',typ='R'),
- EV_XM =SIMP(statut='f',typ='R'),
- EV_A =SIMP(statut='f',typ='R'),
- EV_B =SIMP(statut='f',typ='R'),
- EV_CT =SIMP(statut='f',typ='R'),
- EV_SIGB =SIMP(statut='f',typ='R'),
- D_E_T =SIMP(statut='f',typ='R'),
- D_E_SUCC =SIMP(statut='f',typ='R'),
- ANG_FRT =SIMP(statut='o',typ='R'),
- COHE =SIMP(statut='o',typ='R'),
- D_COEH_SUCC =SIMP(statut='f',typ='R'),
- ANG_FRT_ULT =SIMP(statut='f',typ='R'),
- SUCC_ULTM =SIMP(statut='f',typ='R'),
- RESI_TRAC =SIMP(statut='f',typ='R'),
- A_SURF_SATU =SIMP(statut='f',typ='R'),
- B_SURF_SATU =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,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',),
- PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
- 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
- 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
- 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
- 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
- 'C_LZTZ','C_TZTZ'),),
- MEMB_L =SIMP(statut='f',typ='R'),
- MEMB_LT =SIMP(statut='f',typ='R'),
- MEMB_T =SIMP(statut='f',typ='R'),
- MEMB_G_LT =SIMP(statut='f',typ='R'),
- FLEX_L =SIMP(statut='f',typ='R'),
- FLEX_LT =SIMP(statut='f',typ='R'),
- FLEX_T =SIMP(statut='f',typ='R'),
- FLEX_G_LT =SIMP(statut='f',typ='R'),
- CISA_L =SIMP(statut='f',typ='R'),
- CISA_T =SIMP(statut='f',typ='R'),
- M_LLLL =SIMP(statut='f',typ='R'),
- M_LLTT =SIMP(statut='f',typ='R'),
- M_LLLT =SIMP(statut='f',typ='R'),
- M_TTTT =SIMP(statut='f',typ='R'),
- M_TTLT =SIMP(statut='f',typ='R'),
- M_LTLT =SIMP(statut='f',typ='R'),
- F_LLLL =SIMP(statut='f',typ='R'),
- F_LLTT =SIMP(statut='f',typ='R'),
- F_LLLT =SIMP(statut='f',typ='R'),
- F_TTTT =SIMP(statut='f',typ='R'),
- F_TTLT =SIMP(statut='f',typ='R'),
- F_LTLT =SIMP(statut='f',typ='R'),
- MF_LLLL =SIMP(statut='f',typ='R'),
- MF_LLTT =SIMP(statut='f',typ='R'),
- MF_LLLT =SIMP(statut='f',typ='R'),
- MF_TTTT =SIMP(statut='f',typ='R'),
- MF_TTLT =SIMP(statut='f',typ='R'),
- MF_LTLT =SIMP(statut='f',typ='R'),
- MC_LLLZ =SIMP(statut='f',typ='R'),
- MC_LLTZ =SIMP(statut='f',typ='R'),
- MC_TTLZ =SIMP(statut='f',typ='R'),
- MC_TTTZ =SIMP(statut='f',typ='R'),
- MC_LTLZ =SIMP(statut='f',typ='R'),
- MC_LTTZ =SIMP(statut='f',typ='R'),
- FC_LLLZ =SIMP(statut='f',typ='R'),
- FC_LLTZ =SIMP(statut='f',typ='R'),
- FC_TTLZ =SIMP(statut='f',typ='R'),
- FC_TTTZ =SIMP(statut='f',typ='R'),
- FC_LTLZ =SIMP(statut='f',typ='R'),
- FC_LTTZ =SIMP(statut='f',typ='R'),
- C_LZLZ =SIMP(statut='f',typ='R'),
- C_LZTZ =SIMP(statut='f',typ='R'),
- C_TZTZ =SIMP(statut='f',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA =SIMP(statut='f',typ='R'),
- ),
- ELAS_COQUE_FO =FACT(statut='f',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',),
- PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
- 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
- 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
- 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
- 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
- MEMB_L =SIMP(statut='f',typ=fonction),
- MEMB_LT =SIMP(statut='f',typ=fonction),
- MEMB_T =SIMP(statut='f',typ=fonction),
- MEMB_G_LT =SIMP(statut='f',typ=fonction),
- FLEX_L =SIMP(statut='f',typ=fonction),
- FLEX_LT =SIMP(statut='f',typ=fonction),
- FLEX_T =SIMP(statut='f',typ=fonction),
- FLEX_G_LT =SIMP(statut='f',typ=fonction),
- CISA_L =SIMP(statut='f',typ=fonction),
- CISA_T =SIMP(statut='f',typ=fonction),
- M_LLLL =SIMP(statut='f',typ=fonction),
- M_LLTT =SIMP(statut='f',typ=fonction),
- M_LLLT =SIMP(statut='f',typ=fonction),
- M_TTTT =SIMP(statut='f',typ=fonction),
- M_TTLT =SIMP(statut='f',typ=fonction),
- M_LTLT =SIMP(statut='f',typ=fonction),
- F_LLLL =SIMP(statut='f',typ=fonction),
- F_LLTT =SIMP(statut='f',typ=fonction),
- F_LLLT =SIMP(statut='f',typ=fonction),
- F_TTTT =SIMP(statut='f',typ=fonction),
- F_TTLT =SIMP(statut='f',typ=fonction),
- F_LTLT =SIMP(statut='f',typ=fonction),
- MF_LLLL =SIMP(statut='f',typ=fonction),
- MF_LLTT =SIMP(statut='f',typ=fonction),
- MF_LLLT =SIMP(statut='f',typ=fonction),
- MF_TTTT =SIMP(statut='f',typ=fonction),
- MF_TTLT =SIMP(statut='f',typ=fonction),
- MF_LTLT =SIMP(statut='f',typ=fonction),
- MC_LLLZ =SIMP(statut='f',typ=fonction),
- MC_LLTZ =SIMP(statut='f',typ=fonction),
- MC_TTLZ =SIMP(statut='f',typ=fonction),
- MC_TTTZ =SIMP(statut='f',typ=fonction),
- MC_LTLZ =SIMP(statut='f',typ=fonction),
- MC_LTTZ =SIMP(statut='f',typ=fonction),
- FC_LLLZ =SIMP(statut='f',typ=fonction),
- FC_LLTZ =SIMP(statut='f',typ=fonction),
- FC_TTLZ =SIMP(statut='f',typ=fonction),
- FC_TTTZ =SIMP(statut='f',typ=fonction),
- FC_LTLZ =SIMP(statut='f',typ=fonction),
- FC_LTTZ =SIMP(statut='f',typ=fonction),
- C_LZLZ =SIMP(statut='f',typ=fonction),
- C_LZTZ =SIMP(statut='f',typ=fonction),
- C_TZTZ =SIMP(statut='f',typ=fonction),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST") ),
- ),
- 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,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'),
- ALPHA =SIMP(statut='f',typ='R'),
- AMOR_ALPHA =SIMP(statut='f',typ='R'),
- AMOR_BETA =SIMP(statut='f',typ='R'),
- ),
-#
-# comportement mécanique non linéaire
-#
- TRACTION =FACT(statut='f',min=0,max=1,
- SIGM =SIMP(statut='o',typ=fonction),
- 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,max=1,
- D_SIGM_EPSI =SIMP(statut='o',typ='R'),
- SY =SIMP(statut='o',typ='R'),
- ),
- ECRO_LINE_FO =FACT(statut='f',min=0,max=1,
- D_SIGM_EPSI =SIMP(statut='o',typ=fonction),
- SY =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- PRAGER =FACT(statut='f',min=0,max=1,
- C =SIMP(statut='o',typ='R'),
- ),
- PRAGER_FO =FACT(statut='f',min=0,max=1,
- C =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,max=1,
- R_0 =SIMP(statut='o',typ='R'),
- ALPHA =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- A =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- C_INF =SIMP(statut='o',typ='R'),
- S =SIMP(statut='o',typ='R'),
- ),
- TAHERI_FO =FACT(statut='f',min=0,max=1,
- R_0 =SIMP(statut='o',typ=fonction),
- ALPHA =SIMP(statut='o',typ=fonction),
- M =SIMP(statut='o',typ=fonction),
- A =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- C_INF =SIMP(statut='o',typ=fonction),
- S =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ),
- D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
- AN =SIMP(statut='f',typ='R',defaut= 0. ),
- ),
- ROUSSELIER_FO =FACT(statut='f',min=0,max=1,
- D =SIMP(statut='o',typ=fonction),
- SIGM_1 =SIMP(statut='o',typ=fonction),
- PORO_INIT =SIMP(statut='o',typ=fonction),
- PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ),
- D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
- AN =SIMP(statut='f',typ='R',defaut= 0. ),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,max=1,
- R_I =SIMP(statut='o',typ='R'),
- R_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- W =SIMP(statut='o',typ='R'),
- A1 =SIMP(statut='o',typ='R'),
- A2 =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- ),
- 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),
- C_I =SIMP(statut='o',typ='R'),
- K =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- W =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- G_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- ),
- CIN1_CHAB_FO =FACT(statut='f',min=0,max=1,
- R_0 =SIMP(statut='o',typ=fonction),
- R_I =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C_I =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- W =SIMP(statut='o',typ=fonction),
- G_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- 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 ),
- C1_I =SIMP(statut='o',typ='R'),
- C2_I =SIMP(statut='o',typ='R'),
- K =SIMP(statut='f',typ='R',defaut= 1.),
- W =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- G1_0 =SIMP(statut='o',typ='R'),
- G2_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
- ),
- CIN2_CHAB_FO =FACT(statut='f',min=0,max=1,
- R_0 =SIMP(statut='o',typ=fonction),
- R_I =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C1_I =SIMP(statut='o',typ=fonction),
- C2_I =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- W =SIMP(statut='o',typ=fonction),
- G1_0 =SIMP(statut='o',typ=fonction),
- G2_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- K =SIMP(statut='o',typ='R'),
- N =SIMP(statut='o',typ='R'),
- ALP =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- M_R =SIMP(statut='o',typ='R'),
- G_R =SIMP(statut='o',typ='R'),
- MU =SIMP(statut='o',typ='R'),
- Q_M =SIMP(statut='o',typ='R'),
- Q_0 =SIMP(statut='o',typ='R'),
- QR_0 =SIMP(statut='o',typ='R'),
- ETA =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- M_1 =SIMP(statut='o',typ='R'),
- D1 =SIMP(statut='o',typ='R'),
- G_X1 =SIMP(statut='o',typ='R'),
- G1_0 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- M_2 =SIMP(statut='o',typ='R'),
- D2 =SIMP(statut='o',typ='R'),
- G_X2 =SIMP(statut='o',typ='R'),
- G2_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='o',typ='R'),
- ),
- VISCOCHAB_FO =FACT(statut='f',min=0,max=1,
- K_0 =SIMP(statut='o',typ=fonction),
- A_K =SIMP(statut='o',typ=fonction),
- A_R =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- ALP =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- M_R =SIMP(statut='o',typ=fonction),
- G_R =SIMP(statut='o',typ=fonction),
- MU =SIMP(statut='o',typ=fonction),
- Q_M =SIMP(statut='o',typ=fonction),
- Q_0 =SIMP(statut='o',typ=fonction),
- QR_0 =SIMP(statut='o',typ=fonction),
- ETA =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- M_1 =SIMP(statut='o',typ=fonction),
- D1 =SIMP(statut='o',typ=fonction),
- G_X1 =SIMP(statut='o',typ=fonction),
- G1_0 =SIMP(statut='o',typ=fonction),
- C2 =SIMP(statut='o',typ=fonction),
- M_2 =SIMP(statut='o',typ=fonction),
- D2 =SIMP(statut='o',typ=fonction),
- G_X2 =SIMP(statut='o',typ=fonction),
- G2_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- N =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- TAU_0 =SIMP(statut='o',typ='R'),
- Q1 =SIMP(statut='o',typ='R'),
- B1 =SIMP(statut='o',typ='R'),
- HL =SIMP(statut='o',typ='R'),
- Q2 =SIMP(statut='o',typ='R'),
- B2 =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- D1 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- ),
- POLY_CFC_FO =FACT(statut='f',min=0,max=1,
- TEXTURE =SIMP(statut='o',typ=(tabl_texture) ),
- DL =SIMP(statut='o',typ=fonction),
- DA =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- TAU_0 =SIMP(statut='o',typ=fonction),
- Q1 =SIMP(statut='o',typ=fonction),
- B1 =SIMP(statut='o',typ=fonction),
- HL =SIMP(statut='o',typ=fonction),
- Q2 =SIMP(statut='o',typ=fonction),
- B2 =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- D1 =SIMP(statut='o',typ=fonction),
- C2 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- NORTON_HOFF =FACT(statut='f',min=0,max=1,
- SY =SIMP(statut='o',typ='R'),
- ),
- 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,max=1,
- EPSI_FAB =SIMP(statut='o',typ=fonction),
- TEMP_RECUIT =SIMP(statut='o',typ=fonction),
- FLUX_PHI =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
- ),
- 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,max=1,
- N =SIMP(statut='o',typ=fonction),
- UN_SUR_K =SIMP(statut='o',typ=fonction),
- UN_SUR_M =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,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,max=1,
- R_I =SIMP(statut='o',typ='R'),
- R_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- PHI =SIMP(statut='o',typ='R'),
- A1 =SIMP(statut='o',typ='R'),
- A2 =SIMP(statut='o',typ='R'),
- A3 =SIMP(statut='o',typ='R'),
- A4 =SIMP(statut='o',typ='R'),
- A5 =SIMP(statut='o',typ='R'),
- GAMMA1 =SIMP(statut='o',typ='R'),
- GAMMA2 =SIMP(statut='o',typ='R'),
- GAMMA3 =SIMP(statut='o',typ='R'),
- GAMMA4 =SIMP(statut='o',typ='R'),
- GAMMA5 =SIMP(statut='o',typ='R'),
- M1 =SIMP(statut='o',typ='R'),
- M2 =SIMP(statut='o',typ='R'),
- M3 =SIMP(statut='o',typ='R'),
- M4 =SIMP(statut='o',typ='R'),
- M5 =SIMP(statut='o',typ='R'),
- ),
- OHNO_FO =FACT(statut='f',min=0,max=1,
- R_I =SIMP(statut='o',typ=fonction),
- R_0 =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- PHI =SIMP(statut='o',typ=fonction),
- A1 =SIMP(statut='o',typ=fonction),
- A2 =SIMP(statut='o',typ=fonction),
- A3 =SIMP(statut='o',typ=fonction),
- A4 =SIMP(statut='o',typ=fonction),
- A5 =SIMP(statut='o',typ=fonction),
- GAMMA1 =SIMP(statut='o',typ=fonction),
- GAMMA2 =SIMP(statut='o',typ=fonction),
- GAMMA3 =SIMP(statut='o',typ=fonction),
- GAMMA4 =SIMP(statut='o',typ=fonction),
- GAMMA5 =SIMP(statut='o',typ=fonction),
- M1 =SIMP(statut='o',typ=fonction),
- M2 =SIMP(statut='o',typ=fonction),
- M3 =SIMP(statut='o',typ=fonction),
- M4 =SIMP(statut='o',typ=fonction),
- M5 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- K =SIMP(statut='o',typ='R'),
- Y_I =SIMP(statut='o',typ='R'),
- Y_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- A_0 =SIMP(statut='o',typ='R'),
- RM =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- P =SIMP(statut='o',typ='R'),
- P1 =SIMP(statut='o',typ='R'),
- P2 =SIMP(statut='o',typ='R'),
- M11 =SIMP(statut='o',typ='R'),
- M22 =SIMP(statut='o',typ='R'),
- M33 =SIMP(statut='o',typ='R'),
- M66 =SIMP(statut='o',typ='R'),
- N11 =SIMP(statut='o',typ='R'),
- N22 =SIMP(statut='o',typ='R'),
- N33 =SIMP(statut='o',typ='R'),
- N66 =SIMP(statut='o',typ='R'),
- Q11 =SIMP(statut='o',typ='R'),
- Q22 =SIMP(statut='o',typ='R'),
- Q33 =SIMP(statut='o',typ='R'),
- Q66 =SIMP(statut='o',typ='R'),
- R11 =SIMP(statut='o',typ='R'),
- R22 =SIMP(statut='o',typ='R'),
- R33 =SIMP(statut='o',typ='R'),
- R66 =SIMP(statut='o',typ='R'),
- ),
- LMARC_FO =FACT(statut='f',min=0,max=1,
- DE_0 =SIMP(statut='o',typ=fonction),
- R_0 =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- Y_I =SIMP(statut='o',typ=fonction),
- Y_0 =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- A_0 =SIMP(statut='o',typ=fonction),
- RM =SIMP(statut='o',typ=fonction),
- M =SIMP(statut='o',typ=fonction),
- P =SIMP(statut='o',typ=fonction),
- P1 =SIMP(statut='o',typ=fonction),
- P2 =SIMP(statut='o',typ=fonction),
- M11 =SIMP(statut='o',typ=fonction),
- M22 =SIMP(statut='o',typ=fonction),
- M33 =SIMP(statut='o',typ=fonction),
- M66 =SIMP(statut='o',typ=fonction),
- N11 =SIMP(statut='o',typ=fonction),
- N22 =SIMP(statut='o',typ=fonction),
- N33 =SIMP(statut='o',typ=fonction),
- N66 =SIMP(statut='o',typ=fonction),
- Q11 =SIMP(statut='o',typ=fonction),
- Q22 =SIMP(statut='o',typ=fonction),
- Q33 =SIMP(statut='o',typ=fonction),
- Q66 =SIMP(statut='o',typ=fonction),
- R11 =SIMP(statut='o',typ=fonction),
- R22 =SIMP(statut='o',typ=fonction),
- R33 =SIMP(statut='o',typ=fonction),
- R66 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- CAY =SIMP(statut='o',typ='R'),
- CBY =SIMP(statut='o',typ='R'),
- MEZ =SIMP(statut='o',typ='R'),
- MPZ =SIMP(statut='o',typ='R'),
- CAZ =SIMP(statut='o',typ='R'),
- CBZ =SIMP(statut='o',typ='R'),
- MPX =SIMP(statut='o',typ='R'),
- ),
- VMIS_POUTRE_FO =FACT(statut='f',min=0,max=1,
- NP =SIMP(statut='o',typ=fonction),
- MEY =SIMP(statut='o',typ=fonction),
- MPY =SIMP(statut='o',typ=fonction),
- CAY =SIMP(statut='o',typ=fonction),
- CBY =SIMP(statut='o',typ=fonction),
- MEZ =SIMP(statut='o',typ=fonction),
- MPZ =SIMP(statut='o',typ=fonction),
- CAZ =SIMP(statut='o',typ=fonction),
- CBZ =SIMP(statut='o',typ=fonction),
- MPX =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,max=1,
- NU_1 =SIMP(statut='o',typ='R'),
- MU_1 =SIMP(statut='o',typ='R'),
- DXU_1 =SIMP(statut='o',typ='R'),
- DRYU_1 =SIMP(statut='o',typ='R'),
- C_1 =SIMP(statut='o',typ='R'),
- NU_2 =SIMP(statut='o',typ='R'),
- MU_2 =SIMP(statut='o',typ='R'),
- DXU_2 =SIMP(statut='o',typ='R'),
- DRYU_2 =SIMP(statut='o',typ='R'),
- C_2 =SIMP(statut='o',typ='R'),
- KY =SIMP(statut='o',typ='R'),
- KZ =SIMP(statut='o',typ='R'),
- KRX =SIMP(statut='o',typ='R'),
- KRZ =SIMP(statut='o',typ='R'),
- ),
- 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 ),
- RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- 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'),
- regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',),),
- RIGI_N_IRRA =SIMP(statut='f',typ=fonction),
- RIGI_N_FO =SIMP(statut='f',typ=fonction),
- RELA_MZ =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",) ),
- ),
- 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'),
- EPSP_P_C =SIMP(statut='o',typ='R'),
- EPSP_R_C =SIMP(statut='o',typ='R'),
- EPSI_R_T =SIMP(statut='o',typ='R'),
- FAC_T_C =SIMP(statut='o',typ='R'),
- ),
- BETON_DOUBLE_DP =FACT(statut='f',min=0,max=1,
- F_C =SIMP(statut='o',typ=fonction),
- F_T =SIMP(statut='o',typ=fonction),
- COEF_BIAX =SIMP(statut='o',typ=fonction),
- ENER_COMP_RUPT =SIMP(statut='o',typ=fonction),
- ENER_TRAC_RUPT =SIMP(statut='o',typ=fonction),
- COEF_ELAS_COMP =SIMP(statut='o',typ='R'),
- LONG_CARA =SIMP(statut='f',typ='R'),
- ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
- ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
- VERI_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",) ),
- ),
- 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'),
- A2 =SIMP(statut='o',typ='R'),
- B1 =SIMP(statut='o',typ='R'),
- B2 =SIMP(statut='o',typ='R'),
- BETA1 =SIMP(statut='o',typ='R'),
- BETA2 =SIMP(statut='o',typ='R'),
- SIGF =SIMP(statut='o',typ='R'),
- ),
-
- 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'),
- N_VP =SIMP(statut='o',typ='R'),
- M_VP =SIMP(statut='o',typ='R'),
- K_VP =SIMP(statut='o',typ='R'),
- R_D =SIMP(statut='o',typ='R'),
- A_D =SIMP(statut='o',typ='R'),
- K_D =SIMP(statut='o',typ='R'),
- ),
- VENDOCHAB_FO =FACT(statut='f',min=0,max=1,
- S_VP =SIMP(statut='o',typ=fonction),
- SEDVP1 =SIMP(statut='o',typ=fonction),
- SEDVP2 =SIMP(statut='o',typ=fonction),
- N_VP =SIMP(statut='o',typ=fonction),
- M_VP =SIMP(statut='o',typ=fonction),
- K_VP =SIMP(statut='o',typ=fonction),
- R_D =SIMP(statut='o',typ=fonction),
- A_D =SIMP(statut='o',typ=fonction),
- K_D =SIMP(statut='o',typ=fonction),
- 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,max=1,
- SY =SIMP(statut='o',typ='R'),
- EPSI_ULTM =SIMP(statut='o',typ='R'),
- SIGM_ULTM =SIMP(statut='o',typ='R'),
- ELAN =SIMP(statut='f',typ='R',defaut= 4. ),
- EPSP_HARD =SIMP(statut='o',typ='R'),
- R_PM =SIMP(statut='f',typ='R',defaut= 20. ),
- EP_SUR_E =SIMP(statut='f',typ='R'),
- A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ),
- A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ),
- A6_PM =SIMP(statut='f',typ='R',defaut= 620. ),
- C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ),
- A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
- ),
- BPEL_BETON =FACT(statut='f',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,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'),
- ),
- 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 ),
- KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
- C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- GAMMA_CJS =SIMP(statut='o',typ='R'),
- MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PA =SIMP(statut='o',typ='R'),
- Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- 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,max=1,
- J1 =SIMP(statut='f',typ='R'),
- J2 =SIMP(statut='f',typ='R'),
- J3 =SIMP(statut='f',typ='R'),
- J4 =SIMP(statut='f',typ='R'),
- J5 =SIMP(statut='f',typ='R'),
- J6 =SIMP(statut='f',typ='R'),
- J7 =SIMP(statut='f',typ='R'),
- J8 =SIMP(statut='f',typ='R'),
- TAUX_1 =SIMP(statut='f',typ='R'),
- TAUX_2 =SIMP(statut='f',typ='R'),
- TAUX_3 =SIMP(statut='f',typ='R'),
- TAUX_4 =SIMP(statut='f',typ='R'),
- TAUX_5 =SIMP(statut='f',typ='R'),
- TAUX_6 =SIMP(statut='f',typ='R'),
- TAUX_7 =SIMP(statut='f',typ='R'),
- TAUX_8 =SIMP(statut='f',typ='R'),
- 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'),
- FONC_V =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
- ),
-#
-# 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",) ),
- ),
- 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,max=1,
- COND_LMM =SIMP(statut='o',typ='R'),
- COND_TMM =SIMP(statut='o',typ='R'),
- COND_LMP =SIMP(statut='o',typ='R'),
- COND_TMP =SIMP(statut='o',typ='R'),
- COND_LPP =SIMP(statut='o',typ='R'),
- COND_TPP =SIMP(statut='o',typ='R'),
- COND_LSI =SIMP(statut='o',typ='R'),
- COND_TSI =SIMP(statut='o',typ='R'),
- COND_NMM =SIMP(statut='o',typ='R'),
- COND_NMP =SIMP(statut='o',typ='R'),
- COND_NPP =SIMP(statut='o',typ='R'),
- COND_NSI =SIMP(statut='o',typ='R'),
- CMAS_MM =SIMP(statut='f',typ='R'),
- CMAS_MP =SIMP(statut='f',typ='R'),
- CMAS_PP =SIMP(statut='f',typ='R'),
- CMAS_SI =SIMP(statut='f',typ='R'),
- ),
- THER_COQUE_FO =FACT(statut='f',min=0,max=1,
- COND_LMM =SIMP(statut='o',typ=fonction),
- COND_TMM =SIMP(statut='o',typ=fonction),
- COND_LMP =SIMP(statut='o',typ=fonction),
- COND_TMP =SIMP(statut='o',typ=fonction),
- COND_LPP =SIMP(statut='o',typ=fonction),
- COND_TPP =SIMP(statut='o',typ=fonction),
- COND_LSI =SIMP(statut='o',typ=fonction),
- COND_TSI =SIMP(statut='o',typ=fonction),
- COND_NMM =SIMP(statut='o',typ=fonction),
- COND_NMP =SIMP(statut='o',typ=fonction),
- COND_NPP =SIMP(statut='o',typ=fonction),
- COND_NSI =SIMP(statut='o',typ=fonction),
- CMAS_MM =SIMP(statut='f',typ=fonction),
- CMAS_MP =SIMP(statut='f',typ=fonction),
- CMAS_PP =SIMP(statut='f',typ=fonction),
- CMAS_SI =SIMP(statut='f',typ=fonction),
- ),
- 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,max=1,
- A =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- ),
- 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'),
- 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),
- 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,max=1,
- TRC =SIMP(statut='o',typ=(tabl_trc) ),
- AR3 =SIMP(statut='o',typ='R'),
- ALPHA =SIMP(statut='o',typ='R'),
- MS0 =SIMP(statut='o',typ='R'),
- AC1 =SIMP(statut='o',typ='R'),
- AC3 =SIMP(statut='o',typ='R'),
- TAUX_1 =SIMP(statut='o',typ='R'),
- TAUX_3 =SIMP(statut='o',typ='R'),
- LAMBDA0 =SIMP(statut='f',typ='R'),
- QSR_K =SIMP(statut='f',typ='R'),
- D10 =SIMP(statut='f',typ='R'),
- WSR_K =SIMP(statut='f',typ='R'),
- ),
- META_ZIRC =FACT(statut='f',min=0,max=1,
- TDEQ =SIMP(statut='o',typ='R'),
- N =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- TDC =SIMP(statut='o',typ='R'),
- AC =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- QSR_K =SIMP(statut='f',typ='R'),
- TDR =SIMP(statut='o',typ='R'),
- AR =SIMP(statut='o',typ='R'),
- BR =SIMP(statut='o',typ='R'),
- ),
- DURT_META =FACT(statut='f',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,max=1,
- E =SIMP(statut='o',typ='R'),
- NU =SIMP(statut='o',typ='R'),
- F_ALPHA =SIMP(statut='o',typ='R'),
- C_ALPHA =SIMP(statut='o',typ='R'),
- PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
- EPSF_EPSC_TREF =SIMP(statut='o',typ='R'),
- TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- F1_SY =SIMP(statut='f',typ='R'),
- F2_SY =SIMP(statut='f',typ='R'),
- F3_SY =SIMP(statut='f',typ='R'),
- F4_SY =SIMP(statut='f',typ='R'),
- C_SY =SIMP(statut='f',typ='R'),
- SY_MELANGE =SIMP(statut='f',typ=fonction),
- F1_S_VP =SIMP(statut='f',typ='R'),
- F2_S_VP =SIMP(statut='f',typ='R'),
- F3_S_VP =SIMP(statut='f',typ='R'),
- F4_S_VP =SIMP(statut='f',typ='R'),
- C_S_VP =SIMP(statut='f',typ='R' ),
- S_VP_MELANGE =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)),
- ),
- ELAS_META_FO =FACT(statut='f',min=0,max=1,
- E =SIMP(statut='o',typ=fonction),
- NU =SIMP(statut='o',typ=fonction),
- F_ALPHA =SIMP(statut='o',typ=fonction),
- C_ALPHA =SIMP(statut='o',typ=fonction),
- PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
- EPSF_EPSC_TREF =SIMP(statut='o',typ='R'),
- TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- F1_SY =SIMP(statut='f',typ=fonction),
- F2_SY =SIMP(statut='f',typ=fonction),
- F3_SY =SIMP(statut='f',typ=fonction),
- F4_SY =SIMP(statut='f',typ=fonction),
- C_SY =SIMP(statut='f',typ=fonction),
- SY_MELANGE =SIMP(statut='f',typ=fonction),
- F1_S_VP =SIMP(statut='f',typ=fonction),
- F2_S_VP =SIMP(statut='f',typ=fonction),
- F3_S_VP =SIMP(statut='f',typ=fonction),
- F4_S_VP =SIMP(statut='f',typ=fonction),
- C_S_VP =SIMP(statut='f',typ=fonction),
- S_VP_MELANGE =SIMP(statut='f',typ=fonction),
- 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,max=1,
- F1_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F2_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F3_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F4_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- C_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- META_TRACTION =FACT(statut='f',min=0,max=1,
- SIGM_F1 =SIMP(statut='f',typ=fonction),
- SIGM_F2 =SIMP(statut='f',typ=fonction),
- SIGM_F3 =SIMP(statut='f',typ=fonction),
- SIGM_F4 =SIMP(statut='f',typ=fonction),
- SIGM_C =SIMP(statut='f',typ=fonction),
- 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,max=1,
- F1_ETA =SIMP(statut='f',typ=fonction),
- F1_N =SIMP(statut='f',typ=fonction),
- F1_C =SIMP(statut='f',typ=fonction),
- F1_M =SIMP(statut='f',typ=fonction),
- F2_ETA =SIMP(statut='f',typ=fonction),
- F2_N =SIMP(statut='f',typ=fonction),
- F2_C =SIMP(statut='f',typ=fonction),
- F2_M =SIMP(statut='f',typ=fonction),
- F3_ETA =SIMP(statut='f',typ=fonction),
- F3_N =SIMP(statut='f',typ=fonction),
- F3_C =SIMP(statut='f',typ=fonction),
- F3_M =SIMP(statut='f',typ=fonction),
- F4_ETA =SIMP(statut='f',typ=fonction),
- F4_N =SIMP(statut='f',typ=fonction),
- F4_C =SIMP(statut='f',typ=fonction),
- F4_M =SIMP(statut='f',typ=fonction),
- C_ETA =SIMP(statut='f',typ=fonction),
- C_N =SIMP(statut='f',typ=fonction),
- C_C =SIMP(statut='f',typ=fonction),
- C_M =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- F4_K =SIMP(statut='f',typ='R'),
- F1_D_F_META =SIMP(statut='f',typ=fonction),
- F2_D_F_META =SIMP(statut='f',typ=fonction),
- F3_D_F_META =SIMP(statut='f',typ=fonction),
- F4_D_F_META =SIMP(statut='f',typ=fonction),
- 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,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'),
- C_F4_THETA =SIMP(statut='f',typ='R'),
- F1_C_THETA =SIMP(statut='f',typ='R'),
- F2_C_THETA =SIMP(statut='f',typ='R'),
- F3_C_THETA =SIMP(statut='f',typ='R'),
- F4_C_THETA =SIMP(statut='f',typ='R'),
- ),
-#
-# comportement fluide
-#
- FLUIDE =FACT(statut='f',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,max=1,
- RHO_FLUI =SIMP(statut='o',typ='R'),
- ENTRO_FLUI =SIMP(statut='o',typ='R'),
- BIOT_M =SIMP(statut='o',typ='R'),
- C_0 =SIMP(statut='o',typ='R'),
- T_R =SIMP(statut='o',typ='R'),
- ALPHA_M =SIMP(statut='o',typ='R'),
- LAMBDA_T =SIMP(statut='o',typ='R'),
- LAMBDA_H =SIMP(statut='o',typ='R'),
- SOURCE_INIT =SIMP(statut='o',typ='R'),
- OMEGA_0 =SIMP(statut='o',typ='R'),
- ),
- 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'),
- CP =SIMP(statut='f',typ='R'),
- VISC =SIMP(statut='f',typ=fonction),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- 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,max=1,
- MASS_MOL =SIMP(statut='f',typ='R'),
- CP =SIMP(statut='f',typ='R'),
- VISC =SIMP(statut='f',typ=fonction),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- 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),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- 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'),
- PORO =SIMP(statut='o',typ='R'),
- PRES_VAPE =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,max=1,
- R_GAZ =SIMP(statut='o',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- CP =SIMP(statut='f',typ='R'),
- BIOT_COEF =SIMP(statut='f',typ='R'),
- SATU_PRES =SIMP(statut='f',typ=fonction),
- D_SATU_PRES =SIMP(statut='f',typ=fonction),
- PESA_X =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),
- PERM_LIQU =SIMP(statut='f',typ=fonction),
- D_PERM_LIQU_SATU=SIMP(statut='f',typ=fonction),
- PERM_GAZ =SIMP(statut='f',typ=fonction),
- D_PERM_SATU_GAZ =SIMP(statut='f',typ=fonction),
- D_PERM_PRES_GAZ =SIMP(statut='f',typ=fonction),
- FICK =SIMP(statut='f',typ=fonction),
- D_FICK_TEMP =SIMP(statut='f',typ=fonction),
- D_FICK_GAZ_PRES =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- SIGMA_T =SIMP(statut='f',typ=fonction),
- D_SIGMA_T =SIMP(statut='f',typ=fonction),
- PERM_G_INTR =SIMP(statut='f',typ=fonction),
- CHAL_VAPO =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- VERI_P2 =SIMP(statut='c',typ='TXM',defaut="SAT",into=("SAT",) ),
- 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="PGAP",into=("PGAP",) ),
- ),
-#
-# courbes et coefficients associés à la fatigue et au dommage
-#
- 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'),
- ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
- ENSEMBLE('A0','A1','A2','A3','SL'),
- PRESENT_PRESENT('A0','E_REFE'),
- ENSEMBLE('D0','TAU0'),),
- WOHLER =SIMP(statut='f',typ=fonction),
- A_BASQUIN =SIMP(statut='f',typ='R'),
- BETA_BASQUIN =SIMP(statut='f',typ='R'),
- A0 =SIMP(statut='f',typ='R'),
- A1 =SIMP(statut='f',typ='R'),
- A2 =SIMP(statut='f',typ='R'),
- A3 =SIMP(statut='f',typ='R'),
- SL =SIMP(statut='f',typ='R'),
- MANSON_COFFIN =SIMP(statut='f',typ=fonction),
- E_REFE =SIMP(statut='f',typ='R'),
- D0 =SIMP(statut='f',typ='R'),
- TAU0 =SIMP(statut='f',typ='R'),
- 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,max=1,
- S =SIMP(statut='o',typ=fonction),
- EPSP_SEUIL =SIMP(statut='o',typ='R'),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
-#
-# autres comportements ...
-#
- 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,max=1,
- M =SIMP(statut='o',typ='R'),
- VOLU_REFE =SIMP(statut='o',typ='R'),
- SIGM_CNV =SIMP(statut='o',typ='R'),
- SIGM_REFE =SIMP(statut='o',typ=fonction),
- SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- CONTACT =FACT(statut='f',min=0,max=1,
- E_N =SIMP(statut='o',typ='R'),
- E_T =SIMP(statut='f',typ='R',defaut= 0.E+0),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+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,max=1,
- GC =SIMP(statut='o',typ='R'),
- ),
- 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'),
- SC =SIMP(statut='f',typ='R'),
- SH =SIMP(statut='f',typ='R'),
- N_KE =SIMP(statut='f',typ='R'),
- M_KE =SIMP(statut='f',typ='R'),
- ),
- RCCM_FO =FACT(statut='f',min=0,max=1,
- SY_02 =SIMP(statut='f',typ=fonction),
- SM =SIMP(statut='f',typ=fonction),
- SU =SIMP(statut='f',typ=fonction),
- S =SIMP(statut='f',typ=fonction),
- N_KE =SIMP(statut='f',typ=fonction),
- M_KE =SIMP(statut='f',typ=fonction),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-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='**',
- 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),
- ),
- LIAISON =FACT(statut='o',min=01,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='**',
-# 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 03/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.
-# ======================================================================
-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-f1",reentrant='n',
- 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") ),
- 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") ),
- DEFI_FONCTION =FACT(statut='f',max='**',
- VALE =SIMP(statut='o',typ='R',max='**'),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-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',
- TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE",
- into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
- "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
- "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
- "GUID_B_CARTE_900","GUID_C_CARTE_900",
- "GUID_D_CARTE_900","GUID_E_CARTE_900",
- "GUID_F_CARTE_900","GUID_A_CARTE_1300",
- "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
- "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
- "GUID_F_CARTE_1300","GUID_A_CARSP_900",
- "GUID_B_CARSP_900","GUID_C_CARSP_900",
- "GUID_D_CARSP_900","GUID_E_CARSP_900",
- "GUID_F_CARSP_900","GUID_A_CARSP_1300",
- "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
- "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
- "GUID_F_CARSP_1300","GUID_A_GCONT_900",
- "GUID_B_GCONT_900","GUID_C_GCONT_900",
- "GUID_D_GCONT_900","GUID_E_GCONT_900",
- "GUID_F_GCONT_900","GUID_A_GCONT_1300",
- "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
- "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
- "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
- "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
- "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
- "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
- "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
- "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
- "GUID_F_GCOMB_1300",) ),
- VALE =SIMP(statut='f',typ='R',max='**'),
- VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"),
-) ;
-#& MODIF COMMANDE DATE 10/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.
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi,
- fr="Définition d'un paramètre de sensibilité",
- ang="Definition of a sensitive parameter",
- docu="U4.31.xx-a",reentrant='n',
- 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,
- 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
-# 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.
-# ======================================================================
-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',
- 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,
- 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,
- regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
- LONG_COR =SIMP(statut='o',typ='R' ),
- PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
- FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ),
- PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
- BETA =SIMP(statut='f',typ='R',defaut= 2.7 ),
- ),
- SPEC_LONG_COR_3 =FACT(statut='f',min=00,max=01,
- 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 ),
- FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ),
- PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
- BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ),
- PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.E-5 ),
- BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ),
- ),
- SPEC_LONG_COR_4 =FACT(statut='f',min=00,max=01,
- regles=(ENSEMBLE('BETA','GAMMA'),),
- LONG_COR =SIMP(statut='o',typ='R' ),
- PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
- TAUX_VIDE =SIMP(statut='o',typ='R' ),
- BETA =SIMP(statut='f',typ='R',defaut= 2. ),
- GAMMA =SIMP(statut='f',typ='R',defaut= 4. ),
- ),
- SPEC_CORR_CONV_1=FACT(statut='f',min=00,max=01,
- LONG_COR_1 =SIMP(statut='o',typ='R' ),
- LONG_COR_2 =SIMP(statut='f',typ='R' ),
- VITE_FLUI =SIMP(statut='o',typ='R' ),
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- FREQ_COUP =SIMP(statut='f',typ='R' ),
- K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
- D_FLUI =SIMP(statut='o',typ='R' ),
- COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
- COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE",
- into=("AU_YANG","GENERALE","CORCOS") ),
- ),
- SPEC_CORR_CONV_2=FACT(statut='f',min=00,max=01,
- FONCTION =SIMP(statut='o',typ=fonction ),
- VITE_FLUI =SIMP(statut='o',typ='R' ),
- FREQ_COUP =SIMP(statut='f',typ='R' ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE",
- into=("AU_YANG","GENERALE","CORCOS",) ),
- COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
- COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
- ),
- SPEC_FONC_FORME =FACT(statut='f',min=00,max=01,
- regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
- ENSEMBLE('INTE_SPEC','FONCTION'),),
- INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
- FONCTION =SIMP(statut='f',typ=fonction,max='**'),
- GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
- NOEUD =SIMP(statut='o',typ=no),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MODELE =SIMP(statut='o',typ=modele ),
- ),
- SPEC_EXCI_POINT =FACT(statut='f',min=00,max=01,
- regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
- INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
- GRAPPE_2 =SIMP(statut='f',typ='TXM',
- into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
-# Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent
- b_inte_spec =BLOC(condition = "INTE_SPEC != None",
- NATURE =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
- ANGL =SIMP(statut='o',typ='R',max='**'),
- NOEUD =SIMP(statut='o',typ=no,max='**'),
- ),
- b_grappe_2 =BLOC(condition = "GRAPPE_2 != None",
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- NOEUD =SIMP(statut='o',typ=no),
- ),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MODELE =SIMP(statut='o',typ=modele ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-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',
- regles=(UN_PARMI('MODE_CYCL','MODELE_GENE','MAILLAGE'),
- PRESENT_PRESENT('MODE_CYCL','SECTEUR'),
- EXCLUS('SOUS_STRUC','SECTEUR'),
- PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
- PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
- 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='**',
- regles=(EXCLUS('TOUT','GROUP_NO_1'),
- PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
- PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
- PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
- PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- DIST_REFE =SIMP(statut='f',typ='R' ),
- ),
- NOM_GROUP_MA =FACT(statut='f',min=01,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,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',min=01,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='**',
- 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
-# 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.
-# ======================================================================
-DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,
- fr=" ",docu="U4.43.05-a",reentrant='n',
- 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='**' ),
- ),
- PLAN =FACT(statut='o',min=40,max=40,
- ANGL_NAUT =SIMP(statut='o',typ='R',max='**' ),
- PROPORTION =SIMP(statut='o',typ='R' ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 03/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.
-# ======================================================================
-DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.MK.20-d",reentrant='n',
- 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 ),
- INST_CC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- 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='**',
- 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),
- SECTION =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE",) ),
- RESI_R0 =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- RESI_R1 =SIMP(statut='f',typ='R',defaut= 0.E+0),
- RHO_CP =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- COEF_H =SIMP(statut='f',typ='R',defaut= 40.0E+0),
- TEMP_INIT =SIMP(statut='f',typ='R',defaut= 15.0E+0),
- ),
-) ;
-
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-e",reentrant='n',
- fr="Définition d un diagramme de transformations en refroidissement continu d un acier",
- HIST_EXP =FACT(statut='o',min=01,max='**',
- VALE =SIMP(statut='o',typ='R',max='**'),
- ),
- TEMP_MS =FACT(statut='o',min=01,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='**',
- DREF =SIMP(statut='f',typ='R'),
- A =SIMP(statut='f',typ='R'),
- ),
-) ;
-#& MODIF COMMANDE DATE 12/09/2001 AUTEUR MCOURTOI M.COURTOIS
-# 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.
-# ======================================================================
-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='**'),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-d",
- 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='**',
- NOM =SIMP(statut='o',typ='TXM',max='**'),
- UNITE =SIMP(statut='o',typ='I' ),
- ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02-e",reentrant='n',
- 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
-# 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.
-# ======================================================================
-DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-d",
- 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
-# 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.
-# ======================================================================
-DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.MK.30-d",reentrant='n',
- 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'),),
- 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',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,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 28/03/2001 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-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,
- regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- BANDE =SIMP(statut='f',typ='R',max=02),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- b_bande =BLOC(condition = "BANDE != None",
- AMOR_UNIF =SIMP(statut='o',typ='R' ),
- ),
- b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- ),
- ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
- EXCIT =FACT(statut='o',min=01,max=01,
- regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),
- EXCLUS('CHAM_NO','NOEUD'),),
- DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
- MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-# dans la doc U il y a plus de choix pour GRANDEUR
- GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
- into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
- 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",) ),
-# Toutes les regles ne semblent pas avoir été ecrites dans la doc U
- NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'),
- NOEUD_I =SIMP(statut='f',typ=no,max='**'),
- b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'),
- ),
- b_noeud_i =BLOC(condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no,max='**'),
- NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'),
- NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'),
- ),
- CHAM_NO =SIMP(statut='f',typ=cham_no),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- b_noeud =BLOC(condition = "NOEUD != None",
- 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
- 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 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 10/07/2001 AUTEUR ACBHHCD G.DEVESA
-# 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.
-# ======================================================================
-def dyna_line_harm_prod(MATR_MASS,**args):
- if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo
- if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo
- if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo
- if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene
- raise AsException("type de concept resultat non prevu")
-
-DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod,
- fr="Réponse dynamique complexe d un système à une excitation harmonique",
- docu="U4.53.11-e",reentrant='n',
- regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
- PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
- PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
- UN_PARMI('FREQ','LIST_FREQ'),),
- MODELE =SIMP(statut='f',typ=modele ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
- MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c
- ,matr_asse_gene_r,matr_asse_gene_c ) ),
- MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
- 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='**',
- 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 ) ),
- CHARGE =SIMP(statut='f',typ=char_meca ),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- FONC_MULT_C =SIMP(statut='f',typ=fonction_c ),
- COEF_MULT_C =SIMP(statut='f',typ='C' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 28/03/2001 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-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-f",reentrant='f',
- regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),),
- MODELE =SIMP(statut='f',typ=modele ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ),
- MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ),
- MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
- NEWMARK =FACT(statut='f',min=01,max=01,
- 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,
- THETA =SIMP(statut='f',typ='R',defaut= 1.4 ),
- ),
- DIFF_CENTRE =FACT(statut='f',min=01,max=01,
- ),
- ADAPT =FACT(statut='f',min=01,max=01,
- ),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- regles=(EXCLUS('DYNA_TRANS','DEPL_INIT'),
- EXCLUS('DYNA_TRANS','VITE_INIT'),),
- DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ),
-# j ai interprete la doc U : est-ce bon
- b_dyna_trans =BLOC(condition = "DYNA_TRANS != None",
- regles=(EXCLUS('NUME_INIT','INST_INIT' ),),
- NUME_INIT =SIMP(statut='f',typ='I' ),
- INST_INIT =SIMP(statut='f',typ='R' ),
- b_inst_init =BLOC(condition = "INST_INIT != None",
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
- DEPL_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
- VITE_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
- ),
- EXCIT =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('CHARGE','VECT_ASSE'),
- EXCLUS('CHARGE','COEF_MULT'),
- EXCLUS('FONC_MULT','COEF_MULT'),
- EXCLUS('ACCE','COEF_MULT'),
- PRESENT_ABSENT('ACCE','FONC_MULT'),
- PRESENT_PRESENT('ACCE','VITE','DEPL'),
- PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
- VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
- CHARGE =SIMP(statut='f',typ=char_meca ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- 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",) ),
- 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,
- 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,
- 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='**',
- regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- FONC_INST =SIMP(statut='f',typ=fonction ),
- PAS =SIMP(statut='f',typ='R' ),
- b_pas =BLOC(condition = "PAS != None",
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- ),
- b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None",
- regles=(EXCLUS('INST_FIN','NUME_FIN'),),
- NUME_FIN =SIMP(statut='f',typ='I' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- ),
- VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
- COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ),
- COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ),
- PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
- NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
- PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ),
- ),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
- 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',max='**',into=("DEPL","VITE","ACCE") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 30/01/2002 AUTEUR VABHHTS J.TESELET
-# 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.
-# ======================================================================
-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-e1",
- regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
- UN_PARMI('NEWMARK','HHT', ),),
- 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',min=1,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),
- 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") ),
- 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=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="OUI",into=("OUI","NON") ),
- ),
- COMP_INCR =FACT(statut='f',min=1,max='**',
- RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
- into=( "ELAS",
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ECMI_TRAC",
- "VMIS_ECMI_LINE",
- "LABORD_1D",
- "ENDO_LOCAL",
- "ENDO_FRAGILE",
- "BETON_ENDO_LOCAL",
- "RUPT_FRAG",
- "PLAS_GRAD_LINE",
- "PLAS_GRAD_TRAC",
- "DURC_GRAD",
- "META_P_IL",
- "META_P_IL_PT",
- "META_P_IL_RE",
- "META_P_IL_PT_RE",
- "META_V_IL",
- "META_V_IL_PT",
- "META_V_IL_RE",
- "META_V_IL_PT_RE",
- "META_P_INL",
- "META_P_INL_PT",
- "META_P_INL_RE",
- "META_P_INL_PT_RE",
- "META_V_INL",
- "META_V_INL_PT",
- "META_V_INL_RE",
- "META_V_INL_PT_RE",
- "META_P_CL",
- "META_P_CL_PT",
- "META_P_CL_RE",
- "META_P_CL_PT_RE",
- "META_V_CL",
- "META_V_CL_PT",
- "META_V_CL_RE",
- "META_V_CL_PT_RE",
- "VMIS_CINE_LINE",
- "VISC_TAHERI",
- "CHABOCHE",
- "VISCOCHAB",
- "VMIS_CIN1_CHAB",
- "VMIS_CIN2_CHAB",
- "POLY_CFC",
- "LMARC",
- "ROUSSELIER",
- "ROUSS_PR",
- "ROUSS_VISC",
- "VMIS_POU_LINE",
- "VMIS_POU_FLEJOU",
- "COULOMB",
- "ARME",
- "ASSE_CORN",
- "NORTON_HOFF",
- "LEMAITRE",
- "ZIRC_CYRA2",
- "ZIRC_EPRI",
- "ASSE_COMBU",
- "VENDOCHAB",
- "NADAI_B",
- "DIS_CONTACT",
- "DIS_CHOC",
- "DIS_GOUJ2E_PLAS",
- "DIS_GOUJ2E_ELAS",
- "GRILLE_ISOT_LINE",
- "GRILLE_CINE_LINE",
- "GRILLE_PINTO_MEN",
- "PINTO_MENEGOTTO",
- "CJS",
- "OHNO",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "BETON_DOUBLE_DP",
- "KIT_HM",
- "KIT_HHM",
- "KIT_THH",
- "KIT_THM",
- "KIT_THHM",
- "VMIS_ASYM_LINE",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "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_LOCAL =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- BETON_ENDO_LOCAL=SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- RUPT_FRAG =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- PLAS_GRAD_LINE =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- PLAS_GRAD_TRAC =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- DURC_GRAD =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- 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,)),
- 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,)),
- 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,)),
-
- RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',
- into=(
-# MECA
- "ELAS",
- "CJS",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "CAM_CLAY_THM",
-# THMC
- "GAZ",
- "LIQU_SATU",
- "LIQU_SATU_GAT",
- "LIQU_GAZ_ATM",
- "LIQU_VAPE_GAZ",
- "LIQU_NSAT_GAT",
- "LIQU_GAZ",
-# THER
- "THER_HOMO",
- "THER_POLY",
-# HYDR
- "HYDR_UTIL",
- "HYDR",
-# MECA_META
- "ACIER",
- "ZIRC",
-# MECA KIT_DDI
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ISOT_CINE",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "ROUSSELIER",
- "CHABOCHE",
- "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,)),
- CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- 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_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- 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,)),
- HYDR =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,)),
-
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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")),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
-#-------------------------------------------------------------------
- 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'),
- 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',min=1,max=1,
- 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),
- ),
-#-------------------------------------------------------------------
- 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',min=1,max=1,
- ALPHA =SIMP(statut='f',typ='R'
- ,defaut= -0.29999999999999999 ),
- ),
- 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',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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-#-------------------------------------------------------------------
- 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),
- ),
- 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") ),
- 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'),
- 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='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
- ),
- 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),
- 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',max='**',defaut="ELNO",
- into=("SIEF_ELNO_ELGA","VARI_ELNO_ELGA","EFGE_ELNO_CART","ELNO","SANS") ),
- 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',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',max='**',
- into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
- ),
- 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',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',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,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- POINT =SIMP(statut='f',typ='I',max='**'),
- ),
-#-------------------------------------------------------------------
- MODELE_NON_LOCAL=SIMP(statut='f',typ=(modele) ),
- b_non_local = BLOC ( condition = "MODELE_NON_LOCAL != None",
- fr="Données spécifiques au modèle non local",
- 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") ),
- ),
- 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","SANS","DIAG") ),
- 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',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'),
- RHO =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 21/12/2000 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.
-# ======================================================================
-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',
- BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ),
- EXCIT =FACT(statut='o',min=00,max=01,
- 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 16/01/2002 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.
-# ======================================================================
-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-e",reentrant='f',
- regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'),
- PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
- METHODE =SIMP(statut='f',typ='TXM',defaut="EULER",
- into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
- MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
- RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
- AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- 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,
- regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
- EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
- RESU_GENE =SIMP(statut='f',typ=tran_gene ),
- b_resu_gene =BLOC(condition = "RESU_GENE != None",
- INST_INIT =SIMP(statut='f',typ='R' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- ),
- INCREMENT =FACT(statut='o',min=01,max='**',
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='o',typ='R' ),
- PAS =SIMP(statut='f',typ='R' ),
- VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
- COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ),
- COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
- PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
- NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
- NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
- ),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
- regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
- LIST_ARCH =SIMP(statut='f',typ=listis ),
- PAS_ARCH =SIMP(statut='f',typ='I' ),
- ),
-
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ),
-
- EXCIT =FACT(statut='f',min=01,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'),
- PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
- PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
- VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- NUME_MODE =SIMP(statut='f',typ='I' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- 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") ),
- 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") ),
- D_FONC_DT =SIMP(statut='f',typ=fonction ),
- D_FONC_DT2 =SIMP(statut='f',typ=fonction ),
- ),
- CHOC =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- OBSTACLE =SIMP(statut='o',typ=obstacle ),
- ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3),
- NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- JEU =SIMP(statut='f',typ='R',defaut= 1. ),
- DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ),
- SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ),
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-
- LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- b_lame =BLOC(condition="LAME_FLUIDE=='OUI'",
- ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ),
- VERI_CHOC =FACT(statut='f',min=01,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='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- OBSTACLE =SIMP(statut='o',typ=obstacle ),
- ORIG_OBST =SIMP(statut='f',typ='R',max='**'),
- NORM_OBST =SIMP(statut='o',typ='R',max='**'),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- JEU =SIMP(statut='f',typ='R',defaut= 1. ),
- DIST_1 =SIMP(statut='f',typ='R' ),
- DIST_2 =SIMP(statut='f',typ='R' ),
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- FNOR_CRIT =SIMP(statut='f',typ='R' ),
- FNOR_POST_FL =SIMP(statut='f',typ='R' ),
- RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
- ),
- ANTI_SISM =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
- UN_PARMI('NOEUD_2','GROUP_NO_2'),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- C =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- RELA_EFFO_DEPL =FACT(statut='f',min=01,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='**',
- 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='**',
- 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 ),
- ),
- b_itmi =BLOC(condition = "METHODE=='ITMI'",
- regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
- BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- NB_MODE =SIMP(statut='f',typ='I' ),
- NB_MODE_FLUI =SIMP(statut='f',typ='I' ),
- NB_MODE_DIAG =SIMP(statut='f',typ='I' ),
- TS_REG_ETAB =SIMP(statut='f',typ='R' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- IMPRESSION =FACT(statut='f',min=01,max='**',
- regles=(EXCLUS('TOUT','NIVEAU'),),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- 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
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-b",
- 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,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 21/12/2000 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.
-# ======================================================================
-EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",docu="U7.00.01-a",
- LOGICIEL =SIMP(statut='f',typ='TXM' ),
- ARGUMENT =FACT(statut='f',min=01,max='**',
- NOM_PARA =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-#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
- if AsType(vale) == mode_meca_c : return mode_meca_c
- if AsType(vale) == mode_gene : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
- docu="U4.52.12-c",reentrant='n',
- FILTRE_MODE =FACT(statut='o',min=01,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',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',defaut="MASS_EFFE_UN"
- ,into=("MASS_EFFE_UN","MASS_GENE") ),
- b_freq_min =BLOC(condition = "FREQ_MIN != None",
- FREQ_MAX =SIMP(statut='o',typ='R' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- b_crit_extr =BLOC(condition = "CRIT_EXTR != None",
- SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- IMPRESSION =FACT(statut='f',min=01,max=01,
- 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 23/01/2002 AUTEUR CIBHHAB N.RAHNI
-# 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.
-# ======================================================================
-def extr_resu_prod(RESULTAT,**args):
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == dyna_trans : return dyna_trans
- if AsType(RESULTAT) == dyna_harmo : return dyna_harmo
- if AsType(RESULTAT) == acou_harmo : return acou_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- if AsType(RESULTAT) == mode_acou : return mode_acou
- if AsType(RESULTAT) == mode_stat : return mode_stat
- if AsType(mode_stat) == mode_stat_depl : return mode_stat_depl
- if AsType(mode_stat) == mode_stat_acce : return mode_stat_acce
- if AsType(mode_stat) == mode_stat_forc : return mode_stat_forc
- if AsType(RESULTAT) == mult_elas : return mult_elas
- if AsType(RESULTAT) == fourier_elas : return fourier_elas
- raise AsException("type de concept resultat non prevu")
-
-EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-b1",reentrant='f',
- 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 ) ),
-
- 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',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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ =SIMP(statut='f',typ=listr8),
- 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='**' ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-def fact_grad_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
- if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
- raise AsException("type de concept resultat non prevu")
-
-FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-e",
- fr="Préconditionnement pour résolution par gradient conjugué",
- reentrant='n',
- MATR_ASSE =SIMP(statut='o',
- typ=(matr_asse_depl_r,matr_asse_temp_r,
- matr_asse_pres_r) ),
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ),
- NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-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',
- regles=(ENSEMBLE('FREQ_FIN','NB_POIN'),),
-# regle non indiquée dans la doc U
- INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- FREQ_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_FIN =SIMP(statut='f',typ='R' ),
- NB_POIN =SIMP(statut='f',typ='I',defaut= 0 ),
- 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
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def fact_ldlt_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
- if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
- if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
- if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
- if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
- if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
- raise AsException("type de concept resultat non prevu")
-
-FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place",
- docu="U4.55.01-f",reentrant='f',
- regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
- EXCLUS('BLOC_FIN','DDL_FIN'),),
- MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
- matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NPREC =SIMP(statut='f',typ='I',defaut=8,val_min=0,),
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ),
- BLOC_DEBUT =SIMP(statut='f',typ='I',val_min=1,),
- DDL_DEBUT =SIMP(statut='f',typ='I',val_min=1,),
- BLOC_FIN =SIMP(statut='f',typ='I',val_min=1,),
- DDL_FIN =SIMP(statut='f',typ='I',val_min=1,),
-#
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-#
- 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
-# 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.
-# ======================================================================
-# NEW 5.3.23
-FERMER=PROC(nom="FERMER",op= 10,fr=" ",
- docu="U4.12.02-a",
- UNITE =SIMP(statut='o',typ='I',max='**' ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
- docu="U4.11.02-f",
- RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE",
- statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction,
- docu="U4.35.02-c",reentrant='n',
- TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ),
-) ;
-#& MODIF COMMANDE DATE 17/09/2001 AUTEUR MCOURTOI M.COURTOIS
-# 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.
-# ======================================================================
-FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
- fr="Définition d une fonction",reentrant = 'n',
- regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
- REEL = SIMP(typ = 'shell',max=1),
- ENTIER = SIMP(typ = 'shell',max=1),
- COMPLEXE = SIMP(typ = 'shell',max=1),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-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',
- 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 21/12/2000 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.
-# ======================================================================
-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",
- 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
-# 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.
-# ======================================================================
-IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-a",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ',
- 'LIST_ORDRE' ),),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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',min=01,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO', ),),
- 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 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-f",
- fr="Impression du contenu d un concept utilisateur (pour développeur)",
- regles=(UN_PARMI('CO','CHAINE', ),),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(0,1,2) ),
- ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
- CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
- BASE =SIMP(statut='f',typ='TXM',defaut="G",into=("","G","V","L") ),
- CO =SIMP(statut='f',typ=assd,max='**'),
- CHAINE =SIMP(statut='f',typ='TXM'),
- POSITION =SIMP(statut='f',typ='I',defaut=1),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers",
- docu="U4.33.01-d1",
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- FORMAT =SIMP(statut='f',typ='TXM',position='global'
- ,into=("AGRAF","EXCEL","POSTSCRIPT","RESULTAT","COMMANDE","SEISME") ),
- b_agraf_post =BLOC(condition = "(FORMAT=='AGRAF') or (FORMAT=='POSTSCRIPT')",fr="Mots-clés communs AGRAF et POSTCRIPT",
- BORNE_X =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des abcisses"),
- ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les abcisses" ),
- BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des ordonnées"),
- ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les ordonnées" ),
- ),
- b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF",
- TITRE_GRAPHIQUE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ),
- COMMENTAIRE =SIMP(statut='f',typ='TXM',max='**',fr="Commentaires associés au graphique"),
- LEGENDE_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ),
- LEGENDE_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ),
- FREQ_GRILLE_X =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage vertical" ),
- FREQ_GRILLE_Y =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage horizontal" ),
- ),
- b_excel = BLOC(condition = "(FORMAT=='EXCEL')",fr="Mots-clés propres au format Excel",
- BORNE_X =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des abcisses"),
- BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des ordonnées"),
- ),
- b_post = BLOC ( condition = "(FORMAT=='POSTSCRIPT')",fr="Mots-clés propres à POSTCRIPT",
- TITRE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ),
- LABEL_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ),
- LABEL_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ),
- SORTIE =SIMP(statut='f',typ='TXM',defaut="COULEUR",into=("MONOCHROME","COULEUR"),fr="Type d impression" ),
- DATE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de la date" ),
- GRILLE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression du quadrillage" ),
- AXE_ZERO_X =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe x égal zéro" ),
- AXE_ZERO_Y =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe y égal zéro" ),
- PRESENTATION =SIMP(statut='f',typ='TXM',defaut="PAYSAGE",into=("PAYSAGE","PORTRAIT"),
- fr="Disposition du graphique sur la feuille" ),
- 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",
- 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", ),
- LIST_RESU =SIMP(statut='f',typ=listr8,
- fr="Liste des ordonnees d une fonction réelle définie par deux listes", ),
-# creer le type table
- TABLE =SIMP(statut='f',typ=table,
- fr="Nom de la table dont 2 colonnes définissent la fonction",),
- FONC_X =SIMP(statut='f',typ=fonction,
- fr="Fonction abscisses d une fonction paramétrique",),
- RESU_GENE =SIMP(statut='f',typ=tran_gene, ),
- b_fonction =BLOC(condition = "FONCTION != None",
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- ),
- b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c",
- fr="Fonction complexe définie par le mot-clé fonction",
- PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
- ),
- b_list_resu =BLOC(condition = "LIST_RESU != None",
- LIST_PARA =SIMP(statut='o',typ=listr8 ),
- ),
- b_table =BLOC(condition = "TABLE != None",
- PARA_X =SIMP(statut='o',typ='TXM',
- fr="Paramètre de la table associé aux abcisses de la fonction à tracer" ),
- PARA_Y =SIMP(statut='o',typ='TXM',
- fr="Paramètre de la table associé aux ordonnées de la fonction à tracer" ),
- ),
- b_fonc_x =BLOC(condition = "FONC_X != None",
- FONC_Y =SIMP(statut='o',typ=fonction,fr="Fonction ordonnées d une fonction paramétrique" ),
- PARA =SIMP(statut='f',typ='TXM',defaut="FONC_X",into=("FONC_X","FONC_Y"),
- fr="Permutation des roles des deux fonctions" ),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- ),
- b_resu_gene =BLOC(condition = "RESU_GENE != None",
- regles=(UN_PARMI('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- PARA_X =SIMP(statut='o',typ='TXM'),
- PARA_Y =SIMP(statut='o',typ='TXM'),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- ),
-
-
- LEGENDE =SIMP(statut='f',typ='TXM',fr="Légende associée à la courbe" ),
- STYLE =SIMP(statut='f',typ='TXM',defaut="LIGNE",fr="Style de la ligne représentant la courbe",
- into=("LIGNE","POINTILLE","POINT","POINT_RELIE") ),
- COULEUR =SIMP(statut='f',typ='TXM',fr="Couleur associée à la courbe",
- into=("NOIR","ROUGE","VERT_FONCE","BLEU",
- "MAGENTA","CYAN","VERT","SIENNE","ORANGE",
- "POURPRE","JAUNE","DAIM","TURQUOISE","VIOLET",
- "BRUN","CORAIL","MARRON","MAUVE","MARRON_CLAIR") ),
- MARQUEUR =SIMP(statut='f',typ='TXM',fr="Type du marqueur associé à la courbe",
- into=("POINT_F","CARRE_F","TRIANGLE_F",
- "LOSANGE_F","ETOILE_F","FUSEE_F","POINT",
- "CARRE","TRIANGLE","LOSANGE","ETOILE","FUSEE",
- "PLUS","X","CERCLE","CERCLE_P","CARRE_P",
- "LOSANGE_P","CERCLE_P_X","LOSANGE_P_X",
- "CERCLE_X","CARRE_X","LOSANGE_X") ),
- b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF",
- TRI =SIMP(statut='f',typ='TXM',defaut="N",
- fr="Choix du tri effectué sur les abcisses ou sur les ordonnées",
- into=("N","X","Y","XY","YX") ),
- FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut= 0,
- fr="Fréquence d impression du marqueur associé à la courbe", ),
- ),
- ),
-) ;
-#& MODIF COMMANDE DATE 25/01/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-a",
- fr="Imprime le fichier de configuration de HOMARD.",
- ang="Writes the configuration file for HOMARD.",
-#
-# 1. Le niveau d'information
-#
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 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",
- into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
- fr="Langue des messages issus de HOMARD.",
- ang="Language for HOMARD messages." ),
-#
-# 4. L'UNITE LOGIQUE D'ECRITURE DU FICHIER DE CONFIGURATION HOMARD
-#
- UNITE =SIMP(statut='f',typ='I',defaut= 71 ),
-#
-# 5. LE TYPE DE TRAITEMENT :
-#
- TRAITEMENT =FACT(statut='o',min=01,max=01,
-#
-# 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
-# B. ADAPTATION UNIFORME, AVEC DEUX VARIANTES :
-# . 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','MAJSOLUTION'),),
- ADAPTATION =SIMP(statut='f',typ='TXM',
- fr="Adaptation libre",
- ang="Free adaptation",
- into=("RAFFINEMENT","DERAFFINEMENT","RAFF_DERA") ),
- UNIFORME =SIMP(statut='f',typ='TXM',
- fr="Adaptation uniforme",
- ang="Uniforme adaptation",
- into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ),
- INFORMATION =SIMP(statut='f',typ='TXM',
- fr="Adaptation libre",
- ang="Free adaptation",
- into=("OUI",) ),
- MAJSOLUTION =SIMP(statut='f',typ='TXM',
- fr="Mise à jour de solutions",
- ang="Solution updating",
- into=("OUI",) ),
-#
-# 5.1.2. LES CONTRAINTES :
-#
-# 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
-# D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
-# E. LA MISE A JOUR DE SOLUTION
-# F. LE NOM MED DU MAILLAGE DE SORTIE
-# REMARQUE : IL FAUT DES CRITERES, MAIS ON NE SAIT PAS LESQUELS
-#
-# 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
-# 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
-# REMARQUE : A L'ITERATION 0, OU AUX ITERATIONS SUIVANTES SI MAJ DE SOLUTION,
-# IL FAUT LE NOM MED DU MAILLAGE D'ENTREE
-#
-# 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 :
-# A. LE NOM MED DE L'INDICATEUR D'ERREUR
-# B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR
-# C. LES CRITERES
-# 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 ) 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',),
- ) ,
-#
- b_maillage_initial_uniforme =BLOC(condition = "( UNIFORME != None ) ",
- fr="Nom MED du maillage en entrée",
- ang="MED name of the in-mesh",
- NOM_MED_MAILLAGE_N =SIMP(statut='f',typ='TXM',),
- ) ,
-#
- 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',
- fr="Numéro d'itération.",
- ang="Iteration #." ),
- NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM'),
- MAJ_CHAM =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ) ,
-#
- b_indicateur_d_erreur =BLOC(condition = "ADAPTATION != None",
- fr="Indicateur d'erreur",
- ang="Error indicator",
- NOM_MED_INDICA =SIMP(statut='o',typ='TXM',
- fr="Nom MED de l'indicateur d'erreur.",
- ang="MED name of error indicator.",),
- 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.",),
- NUMDT_INDICA =SIMP(statut='o',typ='I',
- fr="Numero du pas de temps de l'indicateur.",
- ang="Time step # of the error indicator.",),
- NUMORD_INDICA =SIMP(statut='o',typ='I',
- fr="Numero d'ordre de l'indicateur.",
- ang="Rank # of the error indicator.",),
- ) ,
-#
- b_critere_de_raffinement =BLOC( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' )" ,
- fr="Critère de raffinement.",
- ang="Refinement threshold.",
- regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
- CRIT_RAFF_ABS =SIMP(statut='f',typ='R',
- fr="Critère absolu",
- ang="Absolute threshold" ),
- CRIT_RAFF_REL =SIMP(statut='f',typ='R',
- fr="Critère relatif",
- ang="Relative threshold" ),
- CRIT_RAFF_PE =SIMP(statut='f',typ='R',
- fr="Pourcentage d'éléments",
- ang="Percentage of elements" ),
- ) ,
-#
- b_critere_de_deraffinement =BLOC ( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' )" ,
- fr="Critère de déraffinement.",
- ang="Unrefinement threshold.",
- regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
- CRIT_DERA_ABS =SIMP(statut='f',typ='R' ,
- fr="Critère absolu",
- ang="Absolute threshold" ),
- CRIT_DERA_REL =SIMP(statut='f',typ='R',
- fr="Critère relatif",
- ang="Relative threshold" ),
- CRIT_DERA_PE =SIMP(statut='f',typ='R',
- fr="Pourcentage d'éléments",
- ang="Percentage of elements" ),
- ) ,
-#
- b_niveau_maximum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or "+
- " ( UNIFORME == 'RAFFINEMENT' )" ,
- 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' )" ,
- fr="Niveau minimum de déraffinement",
- ang="Minimum level for unrefinement",
- NIVE_MIN =SIMP(statut='f',typ='I' ),
- ) ,
-#
- ),
-#
-# 6. L'ANALYSE DU MAILLAGE
-#
- ANALYSE =FACT(statut='f',min=01,max=01,
- fr="Analyse du maillage.",
- ang="Mesh analysis.",
-#
-# 6.1. CHOIX NON EXCLUSIFS, AVEC DEUX VARIANTES (OUI/NON) :
-# A. NOMBRE DES ELEMENTS
-# B. QUALITE DES ELEMENTS
-# C. INTERPENETRATION DES ELEMENTS
-# D. CONNEXITE DU MAILLAGE
-# E. TAILLE DES DIFFERENTS SOUS-DOMAINES
-#
- regles=(AU_MOINS_UN('NOMBRE','QUALITE','INTERPENETRATION','CONNEXITE','TAILLE'),),
-#
- 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" ),
-#
- QUALITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Qualité du maillage",
- ang="Mesh quality" ),
-#
- 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." ),
-#
- TAILLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Tailles des sous-domaines du maillage.",
- ang="Sizes of mesh sub-domains." ),
-#
- ),
-#
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-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='**',
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'),
- EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
- EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
- EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
- EXCLUS('TOUT_CHAM','NOM_CHAM'),
- EXCLUS('TOUT_PARA','NOM_PARA'),),
-# faut-il faire des blocs selon le type de RESU_GENE
- RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',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") ),
- ),
- TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'),
- TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-f",
- 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",
- "OBJET","ATTRIBUT","SYSTEME") ),
- b_objet =BLOC(condition = "(ENTITE=='OBJET')",
- NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),
- NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),
- NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),
- ),
- b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')",
- NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ),
- NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
- into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
- '$$LONO','$$LUTI','$$NUM') ),
- ),
- b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')",
- CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ),
- NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',
- into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$ETAT',
- '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
- '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
- '$$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',min=01,max=01,
- NOM =SIMP(statut='f',typ='TXM' ),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- COMMENTAIRE =SIMP(statut='f',typ='TXM' ),
-) ;
-#& MODIF COMMANDE DATE 19/12/2001 AUTEUR CIBHHPD D.NUNEZ
-# 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.
-# ======================================================================
-IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
- docu="U7.04.33-c",
- MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ),
- FICHIER =SIMP(statut='f',typ='TXM' ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
- into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ),
- b_ideas =BLOC(condition = "FORMAT == 'PLEXUS'",
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- ),
- b_plexus =BLOC(condition = "FORMAT == 'IDEAS'",
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- ),
- 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='**'),
-# 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='**'),
- GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'),
- IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_cadyro =BLOC(condition = "FORMAT == 'CADYRO'",
- SQUELETTE =SIMP(statut='f',typ=squelette ),
- UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ),
- UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ),
- UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 28 ),
- IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
-
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
- fr="Impression des matrices élémentaires et des matrices assemblées",
- docu="U7.04.32-c",
- regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
-
- MATR_ELEM =FACT(statut='f',min=01,max='**',
- FICHIER =SIMP(statut='f',typ='TXM' ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
- into=("IDEAS","RESULTAT") ),
- b_format =BLOC(condition = "FORMAT == 'IDEAS'",
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- ),
-# créer les types matr_elem et vect_elem
- 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,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',min=01,max='**',
- FICHIER =SIMP(statut='f',typ='TXM' ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
- into=("IDEAS","RESULTAT") ),
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
-# créer le type matr_elem
- 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,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='**'),
- GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",
- into=("VALEUR","NOEUD") ),
- NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ),
- VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
- docu="U7.04.11-c",
- 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='**',
- 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='**',
- DIRECTION =SIMP(statut='o',typ='R',max='**'),
- FONC_SIGNAL =SIMP(statut='f',typ=fonction ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",
- into=("DEPL","VITE","ACCE","FORC",) ),
- ),
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- FREQ_INIT =SIMP(statut='f',typ='R' ),
- FREQ_FIN =SIMP(statut='f',typ='R' ),
- PAS =SIMP(statut='o',typ='R' ),
- UNITE =SIMP(statut='f',typ='I',defaut= 26 ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 30/01/2002 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-f1",
- fr="Impression du résultat d un calcul (différents formats)",
- MODELE =SIMP(statut='f',typ=modele),
- RESU =FACT(statut='o',min=01,max='**',
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
-
- regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
- EXCLUS('CHAM_GD','RESULTAT'),),
- MAILLAGE =SIMP(statut='f',typ=(maillage,squelette)),
- INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- CHAM_GD =SIMP(statut='f',typ=cham_gd),
- RESULTAT =SIMP(statut='f',typ=resultat),# CO() sd a creer !!!
-
- 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),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),),
-
- b_extrac =BLOC(condition="RESULTAT != None",
- fr="extraction d un champ de grandeur",
- regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
- EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
- 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),),
- TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
-
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',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',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)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
-
- b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
- regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
- INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
- NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
- FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ),
- ),
-
- b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'RESULTAT')or(FORMAT == 'ENSIGHT'))""",
- fr="sélection des composantes",
- regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
-
- b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""",
- fr="sélection des composantes et des entités toplogiques",
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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'))""",
- fr="sélection des entités toplogiques",
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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')",
- fr="sélection sur les valeurs",
- VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- BORNE_SUP =SIMP(statut='f',typ='R'),
- BORNE_INF =SIMP(statut='f',typ='R'),
- IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
- ),
-
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- FICHIER =SIMP(statut='f',typ='TXM'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-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",
- MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
- MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
- TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
- fr="Type d analyse" ),
- b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
- fr="Recheche du nombre de fréquences propres",
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ),
- FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
- ),
- b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- fr="Recherche du nombre de charges critiques",
- CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ),
- CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
- ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- 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 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-c1",
- fr="Impression d un concept de type table",
- TABLE =SIMP(statut='o',typ=table),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT", ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",
- into=("EXCEL","AGRAF","MOT_CLE","TABLEAU") ),
- FILTRE =FACT(statut='f',min=1,max='**',
- NOM_PARA =SIMP(statut='o',typ='TXM'),
- CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ",
- into=("EQ","LT","GT","NE","LE","GE","VIDE",
- "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
- b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
- regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
- VALE =SIMP(statut='f',typ='R'),
- VALE_I =SIMP(statut='f',typ='I'),
- VALE_C =SIMP(statut='f',typ='C'),
- VALE_K =SIMP(statut='f',typ='TXM'),),
-
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ),
- 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") ),
- ),
- PAGINATION =SIMP(statut='f',typ='TXM',max='**'),
- 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',max='**'),
- 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
-# 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.
-# ======================================================================
-INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
- 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
-# 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.
-# ======================================================================
-INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-a",
- 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=01,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
-# 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-e",
- fr="Définition d une courbe sur un maillage 2D",reentrant='n',
-
- MAILLAGE =SIMP(statut='o',typ=(maillage) ),
-
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'),
- PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'),
- PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'),
- PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'),
- EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
- EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
- EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
-
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
-
- DEFI_SEGMENT =FACT(statut='f',min=01,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,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,max=1),
- GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
- ),
-
- DEFI_ARC =FACT(statut='f',min=01,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,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,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,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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- 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 21/12/2000 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface,docu="U4.81.12-e",
- 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='**',
- 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,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,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 25/01/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-def lire_champ_prod(TYPE_CHAM=None,**args):
- if TYPE_CHAM == "CHAM_NO_TEMP_R" : return cham_no_temp_r
- if TYPE_CHAM == "CHAM_NO_DEPL_R" : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
- fr="Lire un champ dans un fichier 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-a1",reentrant='n',
-#
-# 1. Le maillage support du champ
-#
- MAILLAGE =SIMP(statut='o',typ=maillage,
- fr="Nom du maillage support du champ",
- ang="Name of the mesh on which the field is defined" ),
-#
-# 2. Format de lecture
-# Remarque : seul MED est operationnel dans cette version.
-#
- FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),
- fr="Format du fichier : MED seulement",
- ang="Format of the file : MED only" ),
-#
-# 3. L'unite logique du fichier.
-#
- UNITE =SIMP(statut='f',typ='I',defaut= 81,
- fr="Le fichier est : fort.n.",
- ang="File is : fort.n" ),
-#
-# 4. Pour le format MED, il faut preciser le nom sous lequel le champ est connu dans le fichier
-# et les composantes a lire
-#
- b_format =BLOC(condition = "FORMAT == 'MED'",
- fr="Nom du champ dans le fichier MED",
- regles=(UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
- PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),),
-#
- NOM_MED =SIMP(statut='o',typ='TXM',
- fr="Nom du champ dans le fichier MED.",
- ang="Name of the field in the MED file." ),
-#
- NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Les composantes ont le meme nom dans MED et ASTER.",
- ang="The names of the components are the same in ASTER and MED." ),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**',
- fr="Nom des composantes dans ASTER.",
- ang="Names of the components in ASTER" ),
- NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**',
- fr="Nom des composantes dans MED.",
- ang="Names of the components in MED" ),
-#
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**',
- fr="Numero d'ordre du champ à lire.",
- ang="Rank number of the field to read."),
-#
-# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
-# le maillage associé au champ y a été enregistré. Par défaut, on prendra le premier maillage.
-#
- NOM_MAIL_MED = SIMP(statut='f',typ='TXM',
- fr="Nom du maillage dans le fichier MED.",
- ang="Name of the mesh into the MED file.",),
-#
- ),
-#
-# 5. Le type du concept lu
-#
- TYPE_CHAM =SIMP(statut='o',typ='TXM',into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R"),
- fr="Type de champ à créer.",
- ang="Type of the field to create." ),
-#
-# 6. Le niveau d'information
-#
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 03/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.
-# ======================================================================
-LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op= 83,sd_prod=fonction,
- fr="Lecture d une fonction dans un fichier ",
- docu="U4.32.02-e1",reentrant='n',
- UNITE =SIMP(statut='o',typ='I' ),
- NOM_PARA =SIMP(statut='f',typ='TXM',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- NOM_PARA_FONC =SIMP(statut='f',typ='TXM',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 03/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.
-# ======================================================================
-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-e1",reentrant='n',
- 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',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 10/10/2001 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage,
- fr="Lecture d'un fichier de maillage",
- ang="Readings of a mesh file",
- docu="U4.21.01-f",reentrant='n',
-#
- UNITE =SIMP(statut='f',typ='I',defaut= 20 ),
-#
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
- fr="Format du fichier : ASTER ou MED.",
- ang="Format of the file : ASTER or MED.",),
-#
- ABSC_CURV =FACT(statut='f',min=00,max=01,
- TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-#
- VERI_MAIL =FACT(statut='d',min=01,max=01,
- APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ),
-#
- b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
- fr="Informations complémentaires pour la lecture MED.",
- ang="Further information for MED readings.",
-#
-# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
-# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
-#
- NOM_MED = SIMP(statut='f',typ='TXM',
- fr="Nom du maillage dans le fichier MED.",
- ang="Name of the mesh into the MED file.",),
-#
- INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
- ) ,
-#
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
-) ;
-#& 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
-# 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
- if TYPE_RESU == "HARMO" : return dyna_harmo
- raise AsException("type de concept resultat non prevu")
-
-LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
- fr="Restitution au format MISS3D d une évolution harmonique ou transitoire",
- docu="U7.02.31-c",reentrant='n',
- MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ),
- UNITE =SIMP(statut='f',typ='I',defaut= 27 ),
- 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
-# 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.
-# ======================================================================
-LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
- fr=" ",
- docu="U7.02.11-a",reentrant='n',
- regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
- UNITE =SIMP(statut='f',typ='I',defaut= 19 ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
- MAIL_PLEXUS =SIMP(statut='o',typ=maillage ),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
- into=("RELATIF","ABSOLU") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 12/09/2001 AUTEUR MCOURTOI M.COURTOIS
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def lire_resu_prod(TYPE_RESU,**args):
- if TYPE_RESU == "EVOL_CHAR" : return evol_char
- if TYPE_RESU == "EVOL_THER" : return evol_ther
- if TYPE_RESU == "EVOL_ELAS" : return evol_elas
- if TYPE_RESU == "EVOL_NOLI" : return evol_noli
- if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
- if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
- if TYPE_RESU == "HARM_GENE" : return harm_gene
- 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-c1",reentrant='n',
- fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier IDEAS ou EnSight",
- regles=(UN_PARMI('MAILLAGE','MODELE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","ENSIGHT","MED") ),
- b_unite =BLOC(condition="FORMAT=='IDEAS'",
- UNITE =SIMP(statut='f',typ='I',defaut= 19 ),
- ),
- b_nom_fichier =BLOC(condition="FORMAT=='ENSIGHT'",
- NOM_FICHIER =SIMP(statut='f',typ='TXM'),
- ),
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI",
- "DYNA_TRANS","DYNA_HARMO","HARM_GENE","EVOL_CHAR") ),
- 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_dyna =BLOC(condition="(TYPE_RESU=='DYNA_TRANS') or (TYPE_RESU=='DYNA_HARMO') or\
- (TYPE_RESU=='HARM_GENE')",
- NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
- into=("DEPL","VITE","ACCE",) ),
- ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
- MAILLAGE =SIMP(statut='f',typ=maillage),
- MODELE =SIMP(statut='f',typ=modele),
- NB_VARI =SIMP(statut='f',typ='I' ),
- FORMAT_IDEAS =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
- 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='**'),
- RECORD_6 =SIMP(statut='f',typ='I',max='**'),
- RECORD_9 =SIMP(statut='f',typ='I',max='**'),
- POSI_ORDRE =SIMP(statut='o',typ='I',max='**'),
- POSI_INST =SIMP(statut='f',typ='I',max='**'),
- POSI_FREQ =SIMP(statut='f',typ='I',max='**'),
- NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),
- ),
- 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',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',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)",
- 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='**'),
-) ;
-#& MODIF COMMANDE DATE 25/01/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args):
- mail1=ADAPTATION['MAILLAGE_N']
- self.type_sdprod(mail1,maillage)
- mail2=ADAPTATION['MAILLAGE_NP1']
- self.type_sdprod(mail2,maillage)
- if MAJ_CHAM == None:return None
- for ch in MAJ_CHAM:
- t=ch['TYPE_CHAM']
- if t == 'CHAM_NO_TEMP_R':self.type_sdprod(ch['CHAM_MAJ'],cham_no_temp_r)
- if t == 'CHAM_NO_DEPL_R':self.type_sdprod(ch['CHAM_MAJ'],cham_no_depl_r)
- return None
-
-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-a",
-#
-# 1. Le niveau d'information
-#
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 2. Version de HOMARD
-#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_1",
- into=("V5_1", "V5_N", "V5_N_PERSO"),
- fr="Version de HOMARD",
- ang="HOMARD release"),
-#
-# 3. Langue des messages issus de HOMARD
-#
- LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
- into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
- fr="Langue des messages issus de HOMARD.",
- ang="Language for HOMARD messages." ),
-#
-# 4. LE TYPE DE TRAITEMENT :
-#
- ADAPTATION =FACT(statut='o',min=01,max=01,
- fr="Type d'adaptation",
- ang="Type of adaptation",
-#
-# 4.1. DEUX CHOIX D'ADAPTATION EXCLUSIFS :
-#
-# 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'),
- ),
- LIBRE = SIMP(statut='f',typ='TXM',
- into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT"),
- fr="Adaptation selon un indicateur d'erreur.",
- ang="Adaptation among an error indicator" ),
- UNIFORME = SIMP(statut='f',typ='TXM',
- into=("RAFFINEMENT","DERAFFINEMENT","RIEN"),
- fr="Adaptation uniforme.",
- ang="Uniform adaptation" ),
-#
-# 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=(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" ),
-#
-# 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",
-#
-# 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" ),
-#
-# 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" ),
-#
-# 4.3.3. LA COMPOSANTE RETENUE
-#
- NOM_CMP_INDICA = SIMP(statut='o',typ='TXM',
- fr="Composante retenue",
- ang="Selected component" ),
-#
-# 4.3.4. LE NUMERO D'ORDRE
-#
- NUME_ORDRE = SIMP(statut='f',typ='I' ,
- fr="Numero d ordre",
- ang="Rank" ),
- ) ,
-#
-# 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="Refinement threshold.",
- regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
- CRIT_RAFF_ABS = SIMP(statut='f',typ='R',
- fr="Critère absolu",
- ang="Absolute threshold" ),
- CRIT_RAFF_REL = SIMP(statut='f',typ='R',
- fr="Critère relatif",
- ang="Relative threshold" ),
- CRIT_RAFF_PE = SIMP(statut='f',typ='R',
- fr="Pourcentage d'éléments",
- ang="Percentage of elements" ),
- ) ,
-#
-# 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="Unrefinement threshold.",
- regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
- CRIT_DERA_ABS = SIMP(statut='f',typ='R' ,
- fr="Critère absolu",
- ang="Absolute threshold" ),
- CRIT_DERA_REL = SIMP(statut='f',typ='R',
- fr="Critère relatif",
- ang="Relative threshold" ),
- CRIT_DERA_PE = SIMP(statut='f',typ='R',
- fr="Pourcentage d'éléments",
- ang="Percentage of elements" ),
- ) ,
-#
-# 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' ),
- ) ,
-#
-# 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' ),
- ) ,
- ),
-#
-# 5. LA MISE A JOUR DE CHAMPS.
-# PAR DEFAUT, RIEN NE SE FAIT
-#
- MAJ_CHAM =FACT(statut='f',min=01,max='**',
- fr="Mise à jour de champs sur le nouveau maillage.",
- ang="Updationg of fields over the new mesh.",
-#
-# 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" ),
-#
-# 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" ),
-#
-# 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" ),
-#
-# 5.4. 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"),
-#
-# 5.5. LE TYPE DU CHAMP QUI CONTIENDRA LE RESULTAT DE LA MISE A JOUR
-#
- TYPE_CHAM = SIMP(statut='o',typ='TXM',
- into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R"),
- fr="Type du champ qui contiendra le champ mis à jour",
- ang="Type of the field for the updated field" ),
- ),
-#
-# 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 elements in the mesh" ),
-#
- QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Qualité du maillage",
- ang="Mesh quality" ),
-#
- 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." ),
-#
- TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Tailles des sous-domaines du maillage.",
- ang="Sizes of mesh sub-domains." ),
-#
- MENAGE = SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ),
-#
-) ;
-#& MODIF COMMANDE DATE 20/12/2001 AUTEUR F1BHHAJ J.ANGLES
-# 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.
-# ======================================================================
-# RESPONSABLE F1BHHAJ J.ANGLES
-def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args):
- self.type_sdprod(MODELE,modele)
- if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
- if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem)
- if FOND_FISS != None:self.type_sdprod(FOND_FISS,fond_fiss)
- if CHARGE != None:self.type_sdprod(CHARGE,char_meca)
- if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther)
- return evol_noli
-
-MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_prod,
- fr=" ",
- docu="U4.CF.20-a",reentrant='n',
- regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
-
- TYPE_MAILLAGE =SIMP(statut='o',typ='TXM',
- into=("SAIN",
- "FISS_COUDE",
- "SOUS_EPAIS_COUDE"
- ) ),
-
- 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. ),
- ),
-
- MAILLAGE =SIMP(statut='o',typ=maillage ),
- MODELE =SIMP(statut='o',typ=(CO,modele)),
- CHAM_MATER =SIMP(statut='f',typ=(CO,cham_mater)),
- CARA_ELEM =SIMP(statut='f',typ=(CO,cara_elem)),
- FOND_FISS =SIMP(statut='f',typ=(CO,fond_fiss)),
- CHARGE =SIMP(statut='f',typ=(CO,char_meca)),
- RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)),
-
- 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") ),
- MATER =SIMP(statut='o',typ=mater ),
- TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-
- 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") ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- ),
-
- ECHANGE =FACT(statut='f',min=1,max=1,
- COEF_H =SIMP(statut='f',typ=fonction ),
- TEMP_EXT =SIMP(statut='f',typ=fonction ),
- ),
-
- 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' ),
- FZ =SIMP(statut='f',typ='R' ),
- MX =SIMP(statut='f',typ='R' ),
- MY =SIMP(statut='f',typ='R' ),
- MZ =SIMP(statut='f',typ='R' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- ),
-
- 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',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',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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-
- 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),
- 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")),
- ),
-
- 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',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',min=1,max=1,
- 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),
- ),
-
- 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',min=1,max=1,
- regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ),
- PRESENT_PRESENT('TOUT_PARA','ANGLE', ),
- UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),),
- NOM_PARA =SIMP(statut='f',typ='TXM',max=4,
- into=("TRESCA_MEMBRANE",
- "TRESCA_MFLE",
- "TRESCA",
- "SI_LONG"
- ) ),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- ANGLE =SIMP(statut='f',typ='R',max='**' ),
- R_CINTR =SIMP(statut='f',typ='R',max='**' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ),
- POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ),
- ),
-
- IMPRESSION =FACT(statut='f',min=1,max=1,
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
-
- ),
-
- TITRE =SIMP(statut='f',typ='TXM' ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 20/12/2001 AUTEUR F1BHHAJ J.ANGLES
-# 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.
-# ======================================================================
-# RESPONSABLE F1BHHAJ J.ANGLES
-MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op= -19,sd_prod=maillage,
- fr=" ",docu="U4.CF.10-a",reentrant='n',
-
- regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
-
- 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,11)),
- ),
-
- TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
-
- 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' ),
- L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- TRANSFORMEE =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
- b_transf_coude =BLOC(condition = "TRANSFORMEE == 'COUDE' ",
- DEXT =SIMP(statut='o',typ='R' ),
- EPAIS =SIMP(statut='o',typ='R' ),
- SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
- ),
- b_transf_tube =BLOC(condition = "TRANSFORMEE == 'TUBE' ",
- TRAN_EPAIS =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ),
- b_trans_epais_oui =BLOC(condition = "TRAN_EPAIS == 'OUI' ",
- regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'),
- UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),),
- DEXT_T1 =SIMP(statut='o',typ='R' ),
- EPAIS_T1 =SIMP(statut='o',typ='R' ),
- EPAIS_T2 =SIMP(statut='o',typ='R' ),
- EPAIS_TI =SIMP(statut='f',typ='R' ),
- ANGL_TETA1 =SIMP(statut='o',typ='R' ),
- ANGL_TETA2 =SIMP(statut='f',typ='R' ),
- ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ),
- POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ),
- ),
- b_trans_epais_non =BLOC(condition = "TRAN_EPAIS == 'NON' ",
- DEXT =SIMP(statut='o',typ='R' ),
- EPAIS =SIMP(statut='o',typ='R' ),
- SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
- ),
- ),
- ),
-
- SOUS_EPAIS_COUDE=FACT(statut='f',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") ),
- AXE_CIRC =SIMP(statut='f',typ='R' ),
- AXE_LONGI =SIMP(statut='o',typ='R' ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- POSI_CURV_CIRC =SIMP(statut='f',typ='R' ),
- AZIMUT =SIMP(statut='f',typ='R' ),
- SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
- NB_ELEM_LONGI =SIMP(statut='o',typ='I' ),
- NB_ELEM_CIRC =SIMP(statut='o',typ='I' ),
- NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ),
- EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
-
- SOUS_EPAIS_MULTI=FACT(statut='f',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") ),
- AXE_CIRC =SIMP(statut='f',typ='R' ),
- AXE_LONGI =SIMP(statut='o',typ='R' ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- POSI_CURV_CIRC =SIMP(statut='f',typ='R' ),
- AZIMUT =SIMP(statut='f',typ='R' ),
- SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
- NB_ELEM_LONGI =SIMP(statut='o',typ='I' ),
- NB_ELEM_CIRC =SIMP(statut='o',typ='I' ),
- EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
-
- FISS_COUDE =FACT(statut='f',min=1,max=1,
- regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),),
- AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- LONGUEUR =SIMP(statut='o',typ='R' ),
- ABSC_CURV =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
- AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ),
- ORIEN =SIMP(statut='o',typ='R',
- into=(45.,-45.,90.,0.E+0) ),
- NB_TRANCHE =SIMP(statut='o',typ='I' ),
- NB_SECTEUR =SIMP(statut='o',typ='I' ),
- NB_COURONNE =SIMP(statut='o',typ='I' ),
- RAYON_TORE =SIMP(statut='f',typ='R' ),
- COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ),
- COEF_MULT_RC3 =SIMP(statut='f',typ='R' ),
- ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ),
- ),
-
- IMPRESSION =FACT(statut='f',min=1,max='**',
- regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",
- into=("ASTER","IDEAS","CASTEM") ),
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- FICHIER =SIMP(statut='f',typ='TXM' ),
- UNITE =SIMP(statut='f',typ='I' ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 20/12/2001 AUTEUR F1BHHAJ J.ANGLES
-# 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.
-# ======================================================================
-# RESPONSABLE F1BHHAJ J.ANGLES
-def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args):
- if MODELE != None:self.type_sdprod(MODELE,modele)
- if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
- if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem)
- if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss)
- if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss)
- if CHARGE != None:self.type_sdprod(CHARGE,char_meca)
- if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther)
- return evol_noli
-
-MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod,
- fr=" ",docu="U4.PC.20-a1",reentrant='n',
- regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
-
- TYPE_MAILLAGE =SIMP(statut='o',typ='TXM',
- into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB",
- "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ),
-
- TUBULURE =FACT(statut='o',min=1,max=1,
- TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ),
- ),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- MODELE =SIMP(statut='f',typ=(CO,modele)),
- CHAM_MATER =SIMP(statut='f',typ=(CO,cham_mater)),
- CARA_ELEM =SIMP(statut='f',typ=(CO,cara_elem)),
- FOND_FISS_1 =SIMP(statut='f',typ=(CO,fond_fiss)),
- FOND_FISS_2 =SIMP(statut='f',typ=(CO,fond_fiss)),
- CHARGE =SIMP(statut='f',typ=(CO,char_meca)),
- RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)),
-
- 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") ),
- MATER =SIMP(statut='o',typ=mater),
- TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
- ),
-
- EQUILIBRE =FACT(statut='o',min=1,max=1,
- NOEUD =SIMP(statut='o',typ=no),
- ),
-
- 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),
- ),
-
- ECHANGE =FACT(statut='f',min=1,max=1,
- COEF_H_TUBU =SIMP(statut='o',typ=fonction),
- COEF_H_CORP =SIMP(statut='o',typ=fonction),
- TEMP_EXT =SIMP(statut='o',typ=fonction),
- ),
-
- 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'),
- FY =SIMP(statut='f',typ='R'),
- FZ =SIMP(statut='f',typ='R'),
- MX =SIMP(statut='f',typ='R'),
- MY =SIMP(statut='f',typ='R'),
- MZ =SIMP(statut='f',typ='R'),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
-
- 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'),
- FZ =SIMP(statut='f',typ='R'),
- MX =SIMP(statut='f',typ='R'),
- MY =SIMP(statut='f',typ='R'),
- MZ =SIMP(statut='f',typ='R'),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
-
- 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',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',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',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',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") ),
- ),
- b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-
- 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),
- 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")),
- ),
-
- 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',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',min=1,max=1,
- 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),
- ),
-
- PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1),
-
- IMPRESSION =FACT(statut='f',min=1,max=1,
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","ASTER","CASTEM","IDEAS")),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
-
- b_extrac =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))",
- fr="extraction d un champ de grandeur",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max=3,
- into=("DEPL","EQUI_ELNO_SIGM","TEMP")),
-
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- INST =SIMP(statut='f',typ='R',max='**'),
- ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-
- TITRE =SIMP(statut='f',typ='TXM'),
-) ;
-# debut entete
-#& MODIF COMMANDE DATE 20/12/2001 AUTEUR F1BHHAJ J.ANGLES
-# 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.
-# ======================================================================
-# RESPONSABLE F1BHHAJ J.ANGLES
-MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='n',
- fr=" ",docu="U4.PC.10-a",
-
- 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,11)),
- ),
-
- TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
-
- RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
-
- TUBULURE =FACT(statut='o',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_CHANF =SIMP(statut='o',typ='R'),
- E_TUBU =SIMP(statut='o',typ='R'),
- DEXT_TUBU =SIMP(statut='o',typ='R'),
- Z_MAX =SIMP(statut='o',typ='R'),
- TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
- L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- ),
-
- SOUDURE =FACT(statut='o',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',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',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'),
- LONGUEUR =SIMP(statut='f',typ='R'),
- AZIMUT =SIMP(statut='o',typ='R'),
- RAYON_TORE =SIMP(statut='f',typ='R'),
- POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
- FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
- LIGA_INT =SIMP(statut='f',typ='R'),
- ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- COEF_MULT_RC1 =SIMP(statut='f',typ='R'),
- COEF_MULT_RC2 =SIMP(statut='f',typ='R'),
- COEF_MULT_RC3 =SIMP(statut='f',typ='R'),
- NB_TRANCHE =SIMP(statut='f',typ='I'),
- NB_SECTEUR =SIMP(statut='f',typ='I'),
- NB_COURONNE =SIMP(statut='f',typ='I'),
- ),
-
- IMPRESSION =FACT(statut='f',min=1,max='**',
- regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- FICHIER =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 19/12/2001 AUTEUR CIBHHPD D.NUNEZ
-# 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.
-# ======================================================================
-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-d",reentrant='n',
- regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),),
- BASE_MODALE =SIMP(statut='o',typ=base_modale ),
- MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r ),
- MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ),
- MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ",
- "DIAG_MASS") ),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.62.01-e",reentrant='f',
- 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',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),
- CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca),
- INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
- NMAX_CAS =SIMP(statut='f',typ='I',defaut=10),
- NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10),
- ),
- EXTERIEUR =FACT(statut='f',min=1,max=1,
- regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- ),
- RIGI_MECA =FACT(statut='f',min=1,max=1,
- ),
- MASS_MECA =FACT(statut='f',min=1,max=1,
- BIDO1 =SIMP(statut='f',typ='I',defaut=0),
- ),
- 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,max='**'),
- INST =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli,
- fr=" ",docu="U4.GJ.20-a",reentrant='n',
- MAILLAGE =SIMP(statut='o',typ=maillage),
- DEFI_GOUJ =FACT(statut='o',min=01,max=01,
- 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_TRONQUE =SIMP(statut='f',typ='I',max='**'),
- FILET_TRONQA =SIMP(statut='f',typ='I',max='**'),
- FILET_TRONQB =SIMP(statut='f',typ='I',max='**'),
- FILET_JEU_HT =SIMP(statut='f',typ='I',max='**'),
- 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,
- 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,
- 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,
- 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
-# 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.
-# ======================================================================
-MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage,
- fr=" ",docu="U4.GJ.10-a",reentrant='n',
- 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',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',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',max='**'),
- ),
- 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")),
- FICHIER =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 25/01/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-a",
- fr="Donner des informations sur un maillage.",
- ang="To give information about a mesh.",
-#
-# 1. Le niveau d'information
-#
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 2. Version de HOMARD
-#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_1",
- into=("V5_1", "V5_N","V5_N_PERSO"),
- fr="Version de HOMARD",
- ang="HOMARD release"),
-#
-# 3. Langue des messages issus de HOMARD
-#
- LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
- into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
- fr="Langue des messages issus de HOMARD.",
- ang="Language for HOMARD messages." ),
-#
-# 4. Le nom du maillage a analyser
-#
- MAILLAGE = SIMP(statut='o',typ=maillage,
- fr="Maillage à analyser.",
- ang="Mesh to be checked." ),
-#
-# 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" ),
-#
-# 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" ),
-#
-# 5.3. Connexite du maillage
-#
- CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Connexité du maillage.",
- ang="Mesh connexity." ),
-#
-# 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." ),
-#
-# 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 21/12/2000 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-MACRO_CARA_POUTRE=MACRO(nom="MACRO_CARA_POUTRE",op=-11,sd_prod=tabl_cara_geom,
- docu="U4.42.02-c",reentrant='n',
- 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")),
- 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='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_MA_INTE =SIMP(statut='f',typ=grma,max='**'),
- LONGUEUR =SIMP(statut='f',typ='R'),
- MATERIAU =SIMP(statut='f',typ=mater),
- 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
-# 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.
-# ======================================================================
-MACRO_CHAR_F_U=MACRO(nom="MACRO_CHAR_F_U",op=-15,sd_prod=char_meca,
- fr=" ",docu="U4.72.07-a",reentrant='n',
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- CHARGE =SIMP(statut='o',typ=char_meca),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- COEF_IMPO =SIMP(statut='f',typ='R',defaut=1.0E+0),
- 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 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
- self.type_sdprod(NUME_DDL,nume_ddl)
- if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas
- if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
- raise AsException("type de concept resultat non prevu")
-
-MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=-10,sd_prod=macro_elas_mult_prod,docu="U4.51.02-c1",reentrant='f',
- 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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- NUME_DDL =SIMP(statut='f',typ=(CO,nume_ddl)),# CO()
- 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',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,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",
- "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",
- "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI",
- "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA",
- "ERRE_ELEM_NOZ2","VNOR_ELEM_DEPL","ERRE_ELNO_ELGA","SIRE_ELNO_DEPL",
- "ERRE_ELGA_NORE","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
- "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL",
- "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")),
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r),
- ),
-#
- 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",
- RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
- ),
- b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-MACRO_MADMACS=MACRO(nom="MACRO_MADMACS",op=-9,docu="U7.03.21-c",
- 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'),
- PRESENT_ABSENT('MATR_ELEM_AMOR','MATR_AMOR'),),
- 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,)),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- NUME_DDL =SIMP(statut='o',typ=nume_ddl),
- CHARGE =SIMP(statut='o',typ=char_meca,max='**'),
- MATR_ELEM_RIGI =SIMP(statut='f',typ=matr_elem_depl_r),
- MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r),
- MATR_ELEM_MASS =SIMP(statut='f',typ=matr_elem_depl_r),
- MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r),
- MATR_ELEM_AMOR =SIMP(statut='f',typ=matr_elem_depl_r),
- 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='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO'),
- UN_PARMI('DDL_ACTIF','MASQUE'),),
- NOM =SIMP(statut='o',typ='TXM'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'),
- MASQUE =SIMP(statut='f',typ='TXM',max='**'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args):
- self.type_sdprod(MATR_AMOR_AJOU,matr_asse_depl_r)
- self.type_sdprod(MATR_MASS_AJOU,matr_asse_depl_r)
- self.type_sdprod(MATR_RIGI_AJOU,matr_asse_depl_r)
- if FORC_AJOU != None:
- for m in FORC_AJOU:
- self.type_sdprod(m['VECTEUR'],vect_asse_gene)
-
- return None
-
-MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-b",sd_prod=macro_matr_ajou_prod,
- regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
- AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'),
- EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
- EXCLUS('MONO_APPUI','MODE_STAT',),
- ),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- 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',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',min=1,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO'),
- UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- PRES_FLUIDE =SIMP(statut='f',typ='R'),
- PRES_SORTIE =SIMP(statut='f',typ='R'),
- ),
- ECOULEMENT =FACT(statut='f',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'),
- VNOR_2 =SIMP(statut='f',typ='R'),
- POTENTIEL =SIMP(statut='f',typ=evol_ther),
- ),
- MODE_MECA =SIMP(statut='f',typ=mode_meca),
- DEPL_IMPO =SIMP(statut='f',typ=cham_no_depl_r),
- MODELE_GENE =SIMP(statut='f',typ=modele_gene),
- NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene),
- DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2),
- MATR_MASS_AJOU =SIMP(statut='f',typ=(CO,matr_asse)),
- MATR_RIGI_AJOU =SIMP(statut='f',typ=(CO,matr_asse)),
- 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',min=1,max='**',
- DIRECTION =SIMP(statut='o',typ='R',max=3),
- 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',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") ),
- ),
- b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-) ;
-#& MODIF COMMANDE DATE 23/01/2002 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.
-# ======================================================================
-#% RESPONSABLE VABHHTS J.PELLET
-
-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)),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=-18,fr=" ",docu="U7.03.11-a",
- OPTION =FACT(statut='o',min=01,max=01,
- regles=(UN_PARMI('TOUT','MODULE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
- ),
- PROJET =SIMP(statut='o',typ='TXM'),
- REPERTOIRE =SIMP(statut='f',typ='TXM'),
- UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25),
- UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26),
- UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),
- UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
-) ;
-#& MODIF COMMANDE DATE 23/01/2002 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-def macro_mode_meca_prod(self,MATR_A,MATR_B,**args ):
- self.type_sdprod(MATR_A,matr_asse_depl_r)
- self.type_sdprod(MATR_B,matr_asse_depl_r)
- return mode_meca
-
-MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op= -12,sd_prod=macro_mode_meca_prod,
- docu="U4.52.02-c",reentrant='n',
- 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",) ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",
- into=("MODE_RIGIDE","SANS") ),
- CALC_FREQ =FACT(statut='d',min=00,max=01,
- 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',max='**' ),
- FREQ_MIN =SIMP(statut='f',typ='R' ),
- FREQ_MAX =SIMP(statut='f',typ='R' ),
- NB_BLOC_FREQ =SIMP(statut='f',typ='I' ),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
- COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
- 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") ),
- ),
- VERI_MODE =FACT(statut='d',min=00,max=01,
- 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',min=01,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',min=01,max=01,
- 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',min=01,max=01,
- 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 23/01/2002 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.
-# ======================================================================
-def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,**args):
- """
- Ecriture de la macro MACRO_PROJ_BASE
- """
- ier=0
- # On importe les definitions des commandes a utiliser dans la macro
- NUME_DDL_GENE =self.get_cmd('NUME_DDL_GENE')
- PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE')
- PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE')
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- nompro=None
- iocc=0
- if MATR_ASSE_GENE:
- for m in MATR_ASSE_GENE:
- iocc=iocc+1
- if (iocc==1 or (m['PROFIL']!=nompro)):
- _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=m['PROFIL'])
- nompro=m['PROFIL']
- motscles={}
- if m['MATR_ASSE'] : motscles['MATR_ASSE'] =m['MATR_ASSE']
- elif m['MATR_ASSE_GENE']: motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE']
- else:
- ier=ier+1
- self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
- return ier
- self.DeclareOut('mm',m['MATRICE'])
- mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=_num,NB_VECT=NB_VECT,**motscles)
-
- iocc=0
- if VECT_ASSE_GENE:
- for v in VECT_ASSE_GENE:
- iocc=iocc+1
- if (iocc==1 and not MATR_ASSE_GENE):
- _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE='DIAG')
- motscles={}
- if v['VECT_ASSE'] : motscles['VECT_ASSE'] =v['VECT_ASSE']
- elif v['VECT_ASSE_GENE']: motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE']
- else:
- ier=ier+1
- self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
- return ier
- motscles['TYPE_VECT']=v['TYPE_VECT']
- self.DeclareOut('vv',v['VECTEUR'])
- vv=PROJ_VECT_BASE(BASE=BASE,NUME_DDL_GENE=_num,NB_VECT=NB_VECT,**motscles)
-
- return ier
-
-
-def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ):
- if MATR_ASSE_GENE != None:
- for m in MATR_ASSE_GENE:
- self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
- self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r)
- if VECT_ASSE_GENE != None:
- for v in VECT_ASSE_GENE:
- self.type_sdprod(v['VECTEUR'],vect_asse_gene)
- return None
-
-MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.11-c",
- 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='**',
- 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='**',
- 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),
- VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-MAJ_CATA=PROC(nom="MAJ_CATA",op=20,docu="U4.15.01-d",
- fr="Compilation des catalogues de commandes et d éléments",
- regles=(UN_PARMI('COMMANDE','ELEMENT','VALIDATION'),),
-
- COMMANDE =FACT(statut='f',min=01,max=01,
- UNITE =SIMP(statut='o',typ='I',val_min=1,val_max=99, ),
- ),
-
- ELEMENT =FACT(statut='f',min=01,max=01,),
-
- VALIDATION =FACT(statut='f',min=01,max=01,
- UNITE =SIMP(statut='o',typ='I',val_min=1,val_max=99, ),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- ),
-) ;
-#& MODIF COMMANDE DATE 04/12/2001 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-# 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-f",reentrant='n',
- regles=(EXCLUS("INST","LIST_INST"),
- AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ),
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater,
- fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)",
- ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem,
- fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...",
- ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- EXCIT =FACT(statut='o',min=1,max='**',
- CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- 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),
- OPTION =SIMP(statut='f',typ='TXM',max='**',
- into=("SIEF_ELGA_DEPL","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",
- "EQUI_ELNO_EPME","EQUI_ELGA_EPME","DEGE_ELNO_DEPL","EPOT_ELEM_DEPL",
- "ENEL_ELGA","ENEL_ELNO_ELGA") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1),
- 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),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),
- 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") ),
- ),
- 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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 25/09/2001 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,docu="U4.31.xx-a",
- fr="Mémorisation des noms des concepts dérivés.",
- ang="Memorisation of the names of the sensitive concepts.",
- regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),),
-
- NOM=FACT(statut='f',max='**',
- NOM_SD=SIMP(statut='o',typ='TXM',
- fr="Nom de la structure de base",
- ang="Name of the basic structure"),
- PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom),
- fr="Nom du paramètre sensible base",
- ang="Name of the sensitive parameter"),
- NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ",
- fr="Nom de la structure composée",
- ang="Name of the built strcuture"),
- ),
-
- NOM_ZERO=SIMP(statut='f',typ=fonction,
- fr="Nom de la fonction nulle",
- ang="Name of the zero fonction"),
- NOM_UN=SIMP (statut='f',typ=fonction,
- fr="Nom de la fonction unité",
- ang="Name of the one fonction"),
-
-
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-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',
- 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,
- 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,
- 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,
- 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),
- ),
- b_bande =BLOC(condition = "OPTION == 'BANDE'",
- FREQ =SIMP(statut='o',typ='R',min=02,max=02),
- ),
-# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
- if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
- if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
- if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
- if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
- if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod
- ,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
- docu="U4.52.04-f",reentrant='n',
- MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
- MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
- MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ),
- TYPE_RESU =SIMP(statut='f',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',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" ),
- FREQ =SIMP(statut='o',typ='R',max='**'),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),
- NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
- NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
-
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
- ),
- ),
- b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- CALC_FREQ =FACT(statut='o',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',max='**' ),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),
- NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
- NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
-
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
- ),
- ),
- CALC_MODE =FACT(statut='d',min=0,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,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',max='**'),
-) ;
-#& MODIF COMMANDE DATE 23/01/2002 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
- if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
- if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
- if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
- if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
- if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-MODE_ITER_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-e",reentrant='n',
- 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") ),
- TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE",
- into=("MODE_FLAMB","DYNAMIQUE"),
- fr="Type d analyse" ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
- fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
-
- b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- CALC_FREQ =FACT(statut='d',min=0,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",
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
- ),
- b_centre =BLOC(condition = "OPTION == 'CENTRE'",
- fr="Recherche des valeurs propres les plus proches d une valeur donnée",
- CHAR_CRIT =SIMP(statut='o',typ='R',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,max=2,
- fr="Valeur des deux charges critiques délimitant la bande de recherche"),
- ),
- APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
- fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
- regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
- COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- 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 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
- ),
- ),
-
- b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
- CALC_FREQ =FACT(statut='d',min=0,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",
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
- ),
- b_centre =BLOC(condition = "OPTION == 'CENTRE'",
- fr="Recherche des valeurs propres les plus proches d une valeur donnée",
- FREQ =SIMP(statut='o',typ='R',min=1,max=1,
- fr="Fréquence autour de laquelle on cherche les fréquences propres"),
- 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,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"),
- fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
- regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
- COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- 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 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+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,
- fr="Valeur limite admise pour l ereur a posteriori des modes" ),
- STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
- if (MODE_STAT != None) : return mode_stat_depl
- if (PSEUDO_MODE !=None) : return mode_stat_acce
- if (FORCE_NODALE != None) : return mode_stat_forc
- raise AsException("type de concept resultat non prevu")
-MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
- fr="Calcul de modes statiques",
- docu="U4.52.14-e",reentrant='n',
- 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='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
- UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- FORCE_NODALE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
- UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",), ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- PSEUDO_MODE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
- AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
- DIRECTION =SIMP(statut='f',typ='R',min=3,max=3),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- b_dir =BLOC(condition = "DIRECTION != None",
- NOM_DIR =SIMP(statut='f',typ='TXM' ),),
- b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
- regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
- docu="U4.66.21-c",reentrant='f',
-# la commande modi_base _modale : reentrant = f ou o
- regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
- BASE =SIMP(statut='o',typ=mode_meca ),
- BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ),
- NUME_VITE_FLUI =SIMP(statut='o',typ='I' ),
- 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 29/01/2002 AUTEUR CIBHHPD D.NUNEZ
-# 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.
-# ======================================================================
-# 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-c",reentrant='o',
- regles=(UN_PARMI('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
- 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE'),
- EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
- EXCLUS('EQUE_PIQUA','TUBE_COUDE'),),
- MAILLAGE =SIMP(statut='o',typ=maillage ),
-
- ORIE_CONTACT =FACT(statut='f',min=01,max=01,
- GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
- ),
-
- DEFORME =FACT(statut='f',min=01,max=01,
- 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,max='**' ),
- GROUP_NO_STRU = SIMP(statut='o',typ=grno,max='**' ),),
- ),
-
- EQUE_PIQUA =FACT(statut='f',min=01,max=01,
- 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' ),
- H_SOUD =SIMP(statut='o',typ='R' ),
- ANGL_SOUD =SIMP(statut='o',typ='R' ),
- JEU_SOUD =SIMP(statut='o',typ='R' ),
- E_CORP =SIMP(statut='o',typ='R' ),
- DEXT_CORP =SIMP(statut='o',typ='R' ),
- AZIMUT =SIMP(statut='o',typ='R' ),
- RAFF_MAIL =SIMP(statut='o',typ='TXM' ),
- X_MAX =SIMP(statut='o',typ='R' ),
- ),
- ORIE_PEAU_2D =FACT(statut='f',min=01,max='**',
- GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
- ),
- ORIE_PEAU_3D =FACT(statut='f',min=01,max='**',
- GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
- ),
- ORIE_NORM_COQUE =FACT(statut='f',min=01,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),
- 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,
- 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,
- 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,
- 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='**'),
- 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='**'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 15/01/2002 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle,
- fr=" ",docu="U4.44.22-a",reentrant='f',
- regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),
- PRESENT_PRESENT('TUBE_NEUF','TABL_USURE'),
- PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),),
- TUBE_NEUF =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- V_USUR_TUBE =SIMP(statut='f',typ='R',max='**'),
- V_USUR_OBST =SIMP(statut='f',typ='R',max='**'),
- TABL_USURE =SIMP(statut='f',typ=tabl_post_usur),
- INST =SIMP(statut='f',typ='R'),
- OBSTACLE =SIMP(statut='f',typ=obstacle),
- GUIDE =SIMP(statut='o',typ=obstacle),
- CRAYON =SIMP(statut='f',typ=obstacle),
- R_MOBILE =SIMP(statut='f',typ='R'),
- PERCEMENT =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
-# 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-def modi_repere_prod(RESULTAT,**args):
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == dyna_trans : return dyna_trans
- if AsType(RESULTAT) == dyna_harmo : return dyna_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- if AsType(RESULTAT) == mode_flamb : return mode_flamb
- if AsType(RESULTAT) == mult_elas : return mult_elas
- if AsType(RESULTAT) == base_modale : return base_modale
- raise AsException("type de concept resultat non prevu")
-
-MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,docu="U4.74.01-a1",reentrant='n',
- 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,
- evol_ther,base_modale,mode_flamb) ),
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',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',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',min=01,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 ),
- b_vect_2d =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
- b_vect_3d =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
- b_tors_3d =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
- b_tens_2d =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
- b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
- ),
- DEFI_REPERE =FACT(statut='o',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',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 21/12/2000 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.
-# ======================================================================
-def norm_mode_prod(MODE,**args ):
- if AsType(MODE) == mode_meca : return mode_meca
- if AsType(MODE) == mode_meca_c : return mode_meca_c
- if AsType(MODE) == mode_flamb : return mode_flamb
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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,...",
- into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
- NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
- b_noeud =BLOC(condition = "NOEUD != None",
- NOM_CMP =SIMP(statut='o',typ='TXM' ),
- ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',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",
- NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"),
- NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ),
- SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
- fr="Choix du signe" ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 22/01/2002 AUTEUR CIBHHPD D.NUNEZ
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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",
- regles=(UN_PARMI('MATR_RIGI','MODELE'),),
- 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)),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-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-d",reentrant='n',
- MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
- BASE =SIMP(statut='f',typ=(mode_meca,base_modale,mode_gene ) ),
- NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ),
- STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("PLEIN","DIAG","LIGN_CIEL") ),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-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',
- 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' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**' ),
- NOEUD_I =SIMP(statut='f',typ=no,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
- b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**' ),
- ),
- b_noeud_i =BLOC(condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no,max='**'),
- NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ),
- NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ),
- ),
- DEPASSEMENT =FACT(statut='f',min=01,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' ),
- VALE_MAX =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='**',
- 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='**',
- 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='**',
- 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' ),
- VALE_MAX =SIMP(statut='f',typ='R' ),
- PAS =SIMP(statut='f',typ='R' ),
- DUREE =SIMP(statut='f',typ='R',defaut= 10. ),
- ),
- MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-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',
- regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
- RESU_GENE =SIMP(statut='o',typ=tran_gene ),
- CHOC =FACT(statut='f',min=01,max='**',
- fr="Analyse des non linéarités de choc",
- INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ),
- INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ),
- NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ),
- SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
- NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ),
- ),
- RELA_EFFO_DEPL =FACT(statut='f',min=01,max=01,
- 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 30/01/2002 AUTEUR VABHHTS J.TESELET
-# 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,ENER_EXT,WEIBULL,
- CARA_GEOM,CARA_POUTRE,RICE_TRACEY,CHAR_LIMITE,
- INDIC_ENER,INDIC_SEUIL,ENER_ELAS,ENER_TOTALE,
- AIRE_INTERNE,**args ):
- if MASS_INER != None : return tabl_mass_iner
- if ENER_POT != None : return tabl_ener_pot
- if ENER_CIN != None : return tabl_ener_cin
- if ENER_EXT != None : return tabl_ener_ext
- if WEIBULL != None : return tabl_weibull
- if CARA_GEOM != None : return tabl_cara_geom
- if CARA_POUTRE != None : return tabl_cara_geom
- if RICE_TRACEY != None : return tabl_rice_tracey
- if CHAR_LIMITE != None : return tabl_char_limite
- if INDIC_ENER != None : return tabl_indic_ener
- if INDIC_SEUIL != None : return tabl_indic_seuil
- if ENER_ELAS != None : return tabl_ener_elas
- if ENER_TOTALE != None : return tabl_ener_totale
- if AIRE_INTERNE != None : return tabl_aire_int
- 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-d1",reentrant='f',
- fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),
- EXCLUS('CHAM_GD','RESULTAT'),
- UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','ENER_EXT',
- 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE',
- 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL',
- 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'),
- PRESENT_PRESENT( 'MASS_INER', 'MODELE' ),
- PRESENT_PRESENT( 'CARA_GEOM', 'MODELE' ),
- PRESENT_PRESENT( 'AIRE_INTERNE', 'MODELE' ),
- PRESENT_PRESENT( 'CARA_POUTRE', 'MODELE' ),
- PRESENT_PRESENT( 'ENER_POT', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'ENER_CIN', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'WEIBULL', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'RICE_TRACEY', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'INDIC_ENER', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'INDIC_SEUIL', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'ENER_ELAS', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'ENER_TOTALE', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'CHAR_LIMITE', 'MODELE', 'CHAM_MATER' ),
- ),
- MODELE =SIMP(statut='f',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),max='**' ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut=0),
- 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),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- GEOMETRIE =SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
- CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
- RESULTAT =SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,mult_elas,
- fourier_elas,dyna_trans) ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ =SIMP(statut='f',typ=listr8),
- NUME_MODE =SIMP(statut='f',typ='I',max='**'),
- NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'),
- NOM_CAS =SIMP(statut='f',typ='TXM',max='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-
- 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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ORIG_INER =SIMP(statut='f',typ='R',min=3,max=3 ),
- ),
-
- 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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY")),
- CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- COEF_MULT =SIMP(statut='f',typ='R',defaut=1.),
- ),
-
- 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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY")),
- LOCAL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
- ),
-
- 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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- ENER_EXT =FACT(statut='f',min=00,max=01,
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- ),
-
- CHAR_LIMITE =FACT(statut='f',min=00,max=01,
- CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON")
- ),
-
- 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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,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,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),
- ),
-
- 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,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),
- LAPL_PHI_Z =SIMP(statut='f',typ=evol_ther),
- LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
- LONGUEUR =SIMP(statut='f',typ='R'),
- MATERIAU =SIMP(statut='f',typ=mater),
- OPTION =SIMP(statut='f',typ='TXM',into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
- ),
-
- AIRE_INTERNE =FACT(statut='f',min=1,max='**',
- GROUP_MA_BORD =SIMP(statut='o',typ=grma,max='**'),
- ),
- ) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U4.84.03-c",reentrant='n',
- 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'),
- UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
- MOMENT_SPEC_0 =SIMP(statut='f',typ='R'),
- MOMENT_SPEC_2 =SIMP(statut='f',typ='R'),
- MOMENT_SPEC_4 =SIMP(statut='f',typ='R'),
- TABL_POST_ALEA =SIMP(statut='f',typ=tabl_post_alea),
- COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
- DUREE =SIMP(statut='f',typ='R',defaut= 1.),
- CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)),
- DOMMAGE =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
- MATER =SIMP(statut='o',typ=mater),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.01-c",reentrant='n',
- fr="Calcul du dommage subi par une structure soumise à une histoire de chargement",
-
- CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")),
-
- b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'",
- regles=(PRESENT_PRESENT('CORR_KE','MATER'),
- PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
- PRESENT_PRESENT('DOMMAGE','MATER'),),
- HISTOIRE = FACT(statut='o',min=1,max=1,
- regles=(UN_PARMI('SIGM','EPSI'),),
- SIGM = SIMP(statut='f',typ=fonction),
- EPSI = SIMP(statut='f',typ=fonction),),
- 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',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",
- "TAHERI_MANSON","TAHERI_MIXTE")),
- MATER = SIMP(statut='f',typ=mater),
- CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
- TAHERI_NAPPE = SIMP(statut='f',typ=fonction),
- TAHERI_FONC = SIMP(statut='f',typ=fonction),
- CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
- ),
-
- b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'",
- HISTOIRE = FACT(statut='o',min=1,max=1,
- SIGM_XX = SIMP(statut='o',typ=fonction),
- SIGM_YY = SIMP(statut='o',typ=fonction),
- SIGM_ZZ = SIMP(statut='o',typ=fonction),
- SIGM_XY = SIMP(statut='o',typ=fonction),
- SIGM_XZ = SIMP(statut='f',typ=fonction),
- SIGM_YZ = SIMP(statut='f',typ=fonction),),
- CRITERE = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
- DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER",)),
- MATER = SIMP(statut='o',typ=mater),
- COEF_CORR = SIMP(statut='f',typ='R'),
- ),
-
- b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
- HISTOIRE = FACT(statut='o',min=1,max=1,
- SIGM_XX = SIMP(statut='o',typ=fonction),
- SIGM_YY = SIMP(statut='o',typ=fonction),
- SIGM_ZZ = SIMP(statut='o',typ=fonction),
- SIGM_XY = SIMP(statut='o',typ=fonction),
- SIGM_XZ = SIMP(statut='f',typ=fonction),
- SIGM_YZ = SIMP(statut='f',typ=fonction),
- EPSP = SIMP(statut='o',typ=fonction),
- TEMP = SIMP(statut='o',typ=fonction),),
- DOMMAGE = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),defaut="LEMAITRE"),
- MATER = SIMP(statut='o',typ=mater),
- CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-POST_GOUJ2E=OPER(nom="POST_GOUJ2E",op=187,sd_prod=tabl_post_gouj2e,reentrant='n',
- fr=" ",docu="U4.GJ.30-a",
- TABLE =SIMP(statut='o',typ=tabl_post_rele),
-) ;
-#& MODIF COMMANDE DATE 09/07/2001 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-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-a",reentrant='n',
- MODELISATION =SIMP(statut='o',typ='TXM',
- into=("3D","AXIS","D_PLAN","C_PLAN"),
- fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
- FOND_3D =SIMP(statut='f',typ=fond_fiss,fr="Fond de fissure issu de DEFI_FOND_FISS"),
- b_fond_3d =BLOC (condition="(FOND_3D != None)",
- MAILLAGE = SIMP(statut='o',typ=maillage),
- PRECISION = SIMP(statut='f',typ='R',defaut=0.001),
- 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"),
- TABL_DEPL_SUP =SIMP(statut='o',typ=tabl_post_rele,
- fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
- TABL_DEPL_INF =SIMP(statut='o',typ=tabl_post_rele,
- fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
- ABSC_CURV_MAXI=SIMP(statut='f',typ='R',
- fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"),
- PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.001),
- 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='**',
- 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 23/01/2002 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-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-c",reentrant='n',
- MATER =SIMP(statut='o',typ=mater ),
- TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","VALE_INST") ),
- 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"
- ) ),
- SEGMENT =FACT(statut='o',min=01,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,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',min=01,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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
- ),
- ),
-) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-d",reentrant='n',
- ACTION =FACT(statut='o',min=01,max='**',
- regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
- EXCLUS('CHEMIN','GROUP_NO'),
- EXCLUS('CHEMIN','NOEUD'),
- PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
- 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'),
- 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,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,
- cham_elem_ener_r,cham_elem_dbel_r,cham_elem_pres_r,cham_elem_erreur,
- cham_elem_vari_r,cham_no_depl_c,cham_no_temp_c,cham_no_pres_c,
- cham_elem_sief_c,cham_elem_epsi_c)),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans,
- mode_meca,mode_flamb,mode_acou,base_modale,mode_stat,
- mult_elas,fourier_elas,dyna_harmo,acou_harmo)),
- 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),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),),
-
- b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',
- 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ),
- NOM_CHAM =SIMP(statut='o',typ='TXM' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- NUME_MODE =SIMP(statut='f',typ='I',max='**'),
- LIST_MODE =SIMP(statut='f',typ=listis),
- 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',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")),
- ),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- RESULTANTE =SIMP(statut='f',typ='TXM',max='**'),
- MOMENT =SIMP(statut='f',typ='TXM',max='**'),
- POINT =SIMP(statut='f',typ='R',max='**'),
-
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
- into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
- ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3),
- ORIGINE =SIMP(statut='f',typ='R',min=3,max=3),
- AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),
-
- TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)),
- TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)),
- DIRECTION =SIMP(statut='f',typ='R',max='**'),
- 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","MOYENNE_RCCM"),max=2),
- ),
- 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
-# 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.
-# ======================================================================
-POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli,
- fr=" ",docu="U4.PS.10-a",reentrant='n',
- MATER =SIMP(statut='o',typ=(mater) ),
- DEF_EQUI =FACT(statut='f',min=01,max=01,
- 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'),
- LONG_LIGA_INT =SIMP(statut='o',typ='R'),
- DEXT =SIMP(statut='o',typ='R'),
- TEMP_ANALYSE =SIMP(statut='f',typ='R'),
- ),
-) ;
-#& MODIF COMMANDE DATE 07/02/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.
-# ======================================================================
-POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-c",reentrant='f',
- 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,
- 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,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 ),
- PUIS_USURE =SIMP(statut='f',typ='R'),
- LOI_USURE =SIMP(statut='o',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
- b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'",
- regles=(EXCLUS('MATER_USURE','OBSTACLE'),
- EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',min=01,max=01,
- COEF_USURE =SIMP(statut='o',typ='R'),
- ),
- OBSTACLE =FACT(statut='f',min=01,max=01,
- COEF_USURE =SIMP(statut='o',typ='R'),
- ),
- MATER_USURE =SIMP(statut='f',typ='TXM'),
- USURE_OBST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- ),
- 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,
- 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,
- COEF_FNOR =SIMP(statut='f',typ='R' ),
- COEF_VTAN =SIMP(statut='f',typ='R' ),
- COEF_USURE =SIMP(statut='o',typ='R'),
- COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0),
- COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0),
- ),
- MATER_USURE =SIMP(statut='f',typ='TXM'),
- USURE_OBST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- FNOR_MAXI =SIMP(statut='f',typ='R' ),
- VTAN_MAXI =SIMP(statut='f',typ='R' ),
- ),
- b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
- regles=(UN_PARMI('MOBILE','MATER_USURE'),
- EXCLUS('MATER_USURE','OBSTACLE'),
- EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',min=01,max=01,
- 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,
- 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")),
- ),
- SECTEUR =FACT(statut='f',min=01,max='**',
- CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",
- "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",
- "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
- COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),
- COEF_USUR_OBST =SIMP(statut='f',typ='R'),
- ANGL_INIT =SIMP(statut='f',typ='R'),
- ANGL_FIN =SIMP(statut='f',typ='R'),
- ),
- CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",
- "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",
- "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
- RAYON_MOBILE =SIMP(statut='f',typ='R'),
- RAYON_OBST =SIMP(statut='f',typ='R'),
- LARGEUR_OBST =SIMP(statut='f',typ='R'),
- ANGL_INCLI =SIMP(statut='f',typ='R'),
- ANGL_ISTHME =SIMP(statut='f',typ='R'),
- ANGL_IMPACT =SIMP(statut='f',typ='R'),
- INST =SIMP(statut='f',typ='R',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 21/12/2000 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.
-# ======================================================================
-POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,docu="U4.83.21-b",reentrant='n',
- 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='**',
- 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",)),
- ),
- 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',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- 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),
- b_evol_noli =BLOC(condition="EVOL_NOLI != None",
- INST_MAX =SIMP(statut='o',typ='R'),
- ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude",
- docu="U4.11.03-f1",sd_prod = ops.POURSUITE,
- 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"),
- BASE =FACT(fr="définition des parmè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'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=1,max=3,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=1,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=1,max=1,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TES',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
- GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
- TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
- TAILLE =SIMP(statut='f',typ='I'),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
- PARTITION =SIMP(statut='f',typ='R' ),
- ),
- CODE =FACT("définition d un nom pour l'esemble d'une étude",
- statut='f',min=1,max=1,
- NOM =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-PRE_CHAR_IDEAS=PROC(nom="PRE_CHAR_IDEAS",op=100,docu="U7.01.02-e",
- fr="Conversion de conditions aux limites et chargements IDEAS en commandes Aster",
- UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19),
- 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
-# 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.
-# ======================================================================
-PRE_GIBI=PROC(nom="PRE_GIBI",op=49,docu="U7.01.11-f",
- 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 17/09/2001 AUTEUR CIBHHGB G.BERTRAND
-# 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.
-# ======================================================================
-PRE_GMSH=PROC(nom="PRE_GMSH",op=47,docu="U7.01.01-f",
- 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
-# 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.
-# ======================================================================
-PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,docu="U7.01.01-f",
- 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
-# 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.
-# ======================================================================
-PROCEDURE=PROC(nom="PROCEDURE",op=-3, docu="U4.13.03-e",
- fr="Nommer le fichier de commandes secondaires",
- NOM =SIMP(statut='f',typ='TXM',defaut=" "),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-def prod_matr_cham_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
- if AsType(MATR_ASSE) == matr_asse_depl_c : return cham_no_depl_c
- if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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 12/09/2001 AUTEUR MCOURTOI M.COURTOIS
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_char : return evol_char
- if AsType(CHAM_NO_REFE) == cham_no_depl_r : return cham_no_depl_r
- if AsType(CHAM_NO_REFE) == cham_no_depl_c : return cham_no_depl_c
- if AsType(CHAM_NO_REFE) == cham_no_pres_c : return cham_no_pres_c
- if AsType(CHAM_NO_REFE) == cham_no_temp_r : return cham_no_temp_r
- if AsType(CHAM_NO_REFE) == cham_no_epsi_r : return cham_no_epsi_r
- if AsType(CHAM_NO_REFE) == cham_no_sief_r : return cham_no_sief_r
- 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-c1",reentrant='n',
- fr="Projection d un champ aux noeuds sur les noeuds d un autre maillage",
-#
- METHODE =SIMP(statut='f',typ='TXM',defaut="NUAGE_DEG_1",
- into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ),
- b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')",
- fr="Lissage d un nuage de points",
- CHAM_NO =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,
- cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
- CHAM_NO_REFE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,
- cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
- ),
- b_elem =BLOC(condition="METHODE=='ELEM'",
- fr="Utilisation des fonctions de forme",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), ),
- RESULTAT =SIMP(statut='f',typ=(evol_ther,evol_elas,evol_noli,evol_char) ),
- MODELE_1 =SIMP(statut='f',typ=modele),
- MODELE_2 =SIMP(statut='f',typ=modele),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',max='**' ),
- LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',max='**' ),
- LIST_FREQ =SIMP(statut='f',typ=listr8),
- ),
-
- VIS_A_VIS =FACT(statut='f',min=01,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,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,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 26/09/2001 AUTEUR CIBHHPD D.NUNEZ
-# 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.
-# ======================================================================
-def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_gene_r
- if AsType(MATR_ASSE_GENE) == matr_asse_gene_r : return matr_asse_gene_r
- if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_gene_c
- if AsType(MATR_ASSE_GENE) == matr_asse_gene_c : return matr_asse_gene_c
- raise AsException("type de concept resultat non prevu")
-
-PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod,
- fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)",
- docu="U4.63.12-e",reentrant='n',
- 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 ),
- NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ),
- MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
- MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
-) ;
-
-#& MODIF COMMANDE DATE 19/12/2001 AUTEUR CIBHHAB N.RAHNI
-# 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.
-# ======================================================================
-def proj_mesu_modal_prod(MESURE,**args):
- vale=MESURE['NOM_PARA']
- 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,
- 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,
- 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",) ),
- ),
- 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='**' ),
- ),
- ) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.14-c",reentrant='n',
- 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,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 ),
- FREQ_INIT =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- FREQ_FIN =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- NB_POIN =SIMP(statut='f',typ='I' ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
- GROUP_MA =SIMP(statut='f',typ=grma),
-# Quel est le type attendu derriere MODELE_INTERFACE
- MODELE_INTERFACE=SIMP(statut='f',typ=modele),
- VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ),
- ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-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-e",reentrant='n',
- 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 ),
- NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ),
- 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 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
- fr=" ",docu="U4.82.06-a",reentrant='n',
- LIST_PARA =SIMP(statut='o',typ='TXM',max='**',into=("SIGM_REFE","M",) ),
- RESU =FACT(statut='o',min=01,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',max='**' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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,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",) ),
- CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
- INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
- ) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None,
- RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None,
- TYPE_RESU=None,**args):
- if AsType(RESULTAT) == dyna_harmo : return fonction_c
-# On ne sait pas interpreter les deux conditions suivantes
- if TABLE != None :
- if TYPE_RESU != None :
- if TYPE_RESU == "FONCTION_C" : return fonction_c
- if TYPE_RESU == "FONCTION" : return fonction
- else:
- return fonction
- if RESU_GENE != None : return fonction
- if BASE_ELAS_FLUI != None : return fonction
- if RESULTAT != None : return fonction
- if CHAM_GD != None : return fonction
- if OBSTACLE != None : return fonction
- raise AsException("type de concept resultat non prevu")
-
-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-e1",reentrant='n',
- 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,
- cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_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
- TABLE =SIMP(statut='f',typ=table),
- BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu),
- REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ),
- OBSTACLE =SIMP(statut='f',typ=obstacle),
-
- 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") ),
- ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction),
- PARA_X =SIMP(statut='f',typ='TXM' ),
- PARA_Y =SIMP(statut='f',typ='TXM' ),
- SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- ),
- b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",
- fr="Récupération de la fonction à partir d un concept melasflu",
- regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',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") ),
- ),
- b_table = BLOC ( condition = "TABLE != None",fr="Récupération de la fonction à partir d un concept table",
- regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
- PRESENT_PRESENT('PARA_X','PARA_Y'),),
- PARA_X =SIMP(statut='f',typ='TXM',
- fr="1ère colonne de la table qui définit la fonction à récupérer", ),
- PARA_Y =SIMP(statut='f',typ='TXM',
- fr="2ème colonne de la table qui définit la fonction à récupérer", ),
- NOM_PARA_TABL =SIMP(statut='f',typ='TXM',into=("FONCTION",),
- fr="Nom du paramètre de la table à qui est associé la fonction" ),
- b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None",
- TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ),
- ),
-
- FILTRE =FACT(statut='f',min=1,max='**',
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ",
- into=("EQ","LT","GT","NE","LE","GE","VIDE",
- "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
- b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
- regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- VALE_K =SIMP(statut='f',typ='TXM' ),),
-
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
-# RESULTAT
- b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
- regles=(
-# A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
-# UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),
- AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC','NOM_PARA_RESU'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),
- UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- 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',max=2,into=("NON","LIN") ),
- ),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- SOUS_POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
-# RESU_GENE
- b_resu_gene = BLOC ( condition = "RESU_GENE != None", fr="Opérandes en cas de RESU_GENE",
-# A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
-# 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- 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',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'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- SOUS_POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
- ),
-# CHAM_GD
- b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
-
- regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- SOUS_POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
-###
- NOM_PARA =SIMP(statut='f',typ='TXM',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC") ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,docu="U4.71.03-e",reentrant='n',
- 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' ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
- INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-) ;
-#& MODIF COMMANDE DATE 19/12/2001 AUTEUR PBBHHPB P.BADEL
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table,
- fr=" ",docu="U4.71.02-a1",reentrant='n',
- CO =SIMP(statut='o',typ=assd),
- regles=(PRESENT_ABSENT('NOM_TABLE','NOM_PARA')),
- NOM_TABLE =SIMP(statut='f',typ='TXM' ),
- NOM_PARA =SIMP(statut='f',typ='TXM' ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-def reso_grad_prod(MATR_ASSE,**args ):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
- if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_r : return cham_no_pres_r
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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 ) ),
- MATR_FACT =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
- REPRISE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def reso_ldlt_prod(CHAM_NO,**args ):
- if AsType(CHAM_NO) == cham_no_temp_r : return cham_no_temp_r
- if AsType(CHAM_NO) == cham_no_depl_r : return cham_no_depl_r
- if AsType(CHAM_NO) == cham_no_pres_r : return cham_no_pres_r
- if AsType(CHAM_NO) == cham_no_temp_c : return cham_no_temp_c
- if AsType(CHAM_NO) == cham_no_depl_c : return cham_no_depl_c
- if AsType(CHAM_NO) == cham_no_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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",
- 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,
- cham_no_temp_c,cham_no_depl_c,cham_no_pres_c) ),
- CHAM_CINE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_c) ),
- 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
-# 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.
-# ======================================================================
-def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ):
- if AsType(RESU_GENE) == tran_gene : return dyna_trans
- if AsType(RESU_GENE) == mode_gene : return mode_meca
- if AsType(RESU_GENE) == mode_cycl : return mode_meca
- if AsType(RESU_GENE) == harm_gene : return dyna_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- raise AsException("type de concept resultat non prevu")
-
-REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod,
- fr="Restituer dans la base physique des résultats en coordonnées généralisées",
- docu="U4.63.21-e",reentrant='n',
- 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','NOEUD','GROUP_NO'),
- EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),
- EXCLUS('NOEUD','GROUP_NO'),
- PRESENT_PRESENT('RESULTAT','SQUELETTE'),
- PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
- RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene ) ),
- RESULTAT =SIMP(statut='f',typ=mode_meca ),
-
- MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
- TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',max='**' ),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',max='**' ),
- LIST_FREQ =SIMP(statut='f',typ=listr8 ),
- b_prec_crit =BLOC(condition = "INST != None or LIST_INST != None or FREQ != None or LIST_FREQ != None",
- 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") ),
- 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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
-
- ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction),
- 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 28/03/2001 AUTEUR CIBHHLV L.VIVAN
-# 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.
-# ======================================================================
-REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
- docu="U4.63.22-c",reentrant='n',
- 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 ),
- 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,
- 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,
- 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 21/12/2000 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.
-# ======================================================================
-RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-e",
- fr="Retour au fichier de commandes appelant",
-) ;
-#& MODIF COMMANDE DATE 30/01/2002 AUTEUR VABHHTS J.TESELET
-# 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.
-# ======================================================================
-# RESPONSABLE ADBHHVV V.CANO
-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-e1",reentrant='f',
- regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),),
- 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',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","FIXE_PILO","SUIV","DIDI")),
- ),
- VARI_COMM =FACT(statut='f',
- regles=(AU_MOINS_UN('SECH','IRRA','HYDR'),),
- IRRA =SIMP(statut='f',typ=evol_varc),
- SECH =SIMP(statut='f',typ=evol_ther),
- HYDR =SIMP(statut='f',typ=evol_ther),
- ),
- COMP_INCR =FACT(statut='f',min=1,max='**',
- RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
- into=( "ELAS",
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ECMI_TRAC",
- "VMIS_ECMI_LINE",
- "LABORD_1D",
- "ENDO_LOCAL",
- "ENDO_FRAGILE",
- "BETON_ENDO_LOCAL",
- "RUPT_FRAG",
- "PLAS_GRAD_LINE",
- "PLAS_GRAD_TRAC",
- "DURC_GRAD",
- "META_P_IL",
- "META_P_IL_PT",
- "META_P_IL_RE",
- "META_P_IL_PT_RE",
- "META_V_IL",
- "META_V_IL_PT",
- "META_V_IL_RE",
- "META_V_IL_PT_RE",
- "META_P_INL",
- "META_P_INL_PT",
- "META_P_INL_RE",
- "META_P_INL_PT_RE",
- "META_V_INL",
- "META_V_INL_PT",
- "META_V_INL_RE",
- "META_V_INL_PT_RE",
- "META_P_CL",
- "META_P_CL_PT",
- "META_P_CL_RE",
- "META_P_CL_PT_RE",
- "META_V_CL",
- "META_V_CL_PT",
- "META_V_CL_RE",
- "META_V_CL_PT_RE",
- "VMIS_CINE_LINE",
- "VISC_TAHERI",
- "CHABOCHE",
- "VISCOCHAB",
- "VMIS_CIN1_CHAB",
- "VMIS_CIN2_CHAB",
- "POLY_CFC",
- "LMARC",
- "ROUSSELIER",
- "ROUSS_PR",
- "ROUSS_VISC",
- "VMIS_POU_LINE",
- "VMIS_POU_FLEJOU",
- "COULOMB",
- "ARME",
- "ASSE_CORN",
- "NORTON_HOFF",
- "LEMAITRE",
- "ZIRC_CYRA2",
- "ZIRC_EPRI",
- "ASSE_COMBU",
- "VENDOCHAB",
- "NADAI_B",
- "DIS_CONTACT",
- "DIS_CHOC",
- "DIS_GOUJ2E_PLAS",
- "DIS_GOUJ2E_ELAS",
- "GRILLE_ISOT_LINE",
- "GRILLE_CINE_LINE",
- "GRILLE_PINTO_MEN",
- "PINTO_MENEGOTTO",
- "CJS",
- "OHNO",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "BETON_DOUBLE_DP",
- "KIT_HM",
- "KIT_HHM",
- "KIT_THH",
- "KIT_THM",
- "KIT_THHM",
- "VMIS_ASYM_LINE",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "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_LOCAL =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- BETON_ENDO_LOCAL=SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- RUPT_FRAG =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- PLAS_GRAD_LINE =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- PLAS_GRAD_TRAC =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- DURC_GRAD =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- 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,)),
- 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,)),
- 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,)),
-
- RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',
- into=(
-# MECA
- "ELAS",
- "CJS",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "CAM_CLAY_THM",
-# THMC
- "GAZ",
- "LIQU_SATU",
- "LIQU_SATU_GAT",
- "LIQU_GAZ_ATM",
- "LIQU_VAPE_GAZ",
- "LIQU_NSAT_GAT",
- "LIQU_GAZ",
-# THER
- "THER_HOMO",
- "THER_POLY",
-# HYDR
- "HYDR_UTIL",
- "HYDR",
-# MECA_META
- "ACIER",
- "ZIRC",
-# MECA KIT_DDI
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ISOT_CINE",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "ROUSSELIER",
- "CHABOCHE",
- "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,)),
- CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- 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_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- 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,)),
- HYDR =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,)),
-
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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")),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- 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',),
- EXCLUS('EVOL_NOLI','VARI',),
- EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
- EXCLUS('NUME_ORDRE','INST'), ),
- DEPL =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',min=1,max=1,
- 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),
- ),
- 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") ),
- PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0),
- REAC_ITER =SIMP(statut='f',typ='I',defaut=0),
- EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
- ),
- RECH_LINEAIRE =FACT(statut='f',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),
- ),
- 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),
- ETA_PILO_MAX =SIMP(statut='f',typ='R'),
- ETA_PILO_MIN =SIMP(statut='f',typ='R'),
- 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='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
- ),
- 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),
- 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")),
- ),
- PARM_THETA =SIMP(statut='f',typ='R'
- ,defaut= 1. ),
- 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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- 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',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',max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",
- "VARI_NON_LOCAL","LANL_ELGA")),
- ),
- 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',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',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,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- POINT =SIMP(statut='f',typ='I',max='**'),
- ),
- MODELE_NON_LOCAL=SIMP(statut='f',typ=modele ),
- b_non_local = BLOC ( condition = "MODELE_NON_LOCAL != None",
- fr="Données spécifiques au modèle non local",
- 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") ),
- ),
- 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","SANS","DIAG") ),
- 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',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'),
- RHO =SIMP(statut='f',typ='R',defaut= 1000.),
- ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10),
- ),
- ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- ) ;
-#& MODIF COMMANDE DATE 16/01/2002 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.
-# ======================================================================
-# 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-e1",
- 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='**',
- 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 ),
- 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",
- defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
- defaut= 1.E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
- ATTRIBUT =FACT(statut='f',min=01,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' ),
- CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ATTR =SIMP(statut='o',typ='TXM',
- into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
- "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
- ATTR_REFE =SIMP(statut='o',typ='TXM' ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
- TABL_INTSP =FACT(statut='f',min=01,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 ),
- NOEUD_I =SIMP(statut='f',typ=no),
- NUME_ORDRE_I =SIMP(statut='f',typ='I' ),
- b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I' ),
- ),
- b_noeud_i = BLOC (condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no),
- NOM_CMP_I =SIMP(statut='o',typ='TXM' ),
- NOM_CMP_J =SIMP(statut='o',typ='TXM' ),
- ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- VALE_PARA =SIMP(statut='o',typ='R' ),
- VALE_REFE_C =SIMP(statut='o',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
- defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
- defaut= 1.E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
-) ;
-#& MODIF COMMANDE DATE 22/11/2001 AUTEUR VABHHTS J.PELLET
-# RESPONSABLE VABHHTS J.PELLET
-TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-f1",
- 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='**',
- 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,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'),
- VALE_C =SIMP(statut='f',typ='C'),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER")),
- VERSION =SIMP(statut='f',typ='TXM'),
- ),
-
- CHAM_ELEM =FACT(statut='f',min=01,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),# 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),# 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' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER") ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-
- RESU =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
- UN_PARMI('NOM_CHAM','PARA'),
- PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),
- PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
- EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- UN_PARMI('VALE','VALE_I','VALE_C') ,),
- RESULTAT =SIMP(statut='o',typ=resultat),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),
- 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'),
- PARA =SIMP(statut='f',typ='TXM'),
- 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='**'),
- POINT =SIMP(statut='f',typ='I'),
- SOUS_POINT =SIMP(statut='f',typ='I'),
- TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
- VALE =SIMP(statut='f',typ='R'),
- 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),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER",) ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-
- OBJET =FACT(statut='f',max='**',
- regles=(UN_PARMI('INDICE','S_I','S_R','RESUME',),
- UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),),
- NOM =SIMP(statut='o',typ='TXM'),
- INDICE =SIMP(statut='f',typ='I'),
- NUM_OBJ =SIMP(statut='f',typ='I'),
- S_R =SIMP(statut='f',typ='R'),
- S_I =SIMP(statut='f',typ='I'),
- RESUME =SIMP(statut='f',typ='I'),
- VALE =SIMP(statut='f',typ='R'),
- VALE_I =SIMP(statut='f',typ='I'),
- VALE_C =SIMP(statut='f',typ='C'),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER",) ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
- docu="U4.92.03-b1",
- regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
-# concept table à créer
- TABLE =SIMP(statut='o',typ=table),
-
- FILTRE =FACT(statut='f',min=1,max='**',
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ",
- into=("EQ","LT","GT","NE","LE","GE","VIDE",
- "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
- b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
- regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- VALE_K =SIMP(statut='f',typ='TXM' ),),
-
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& MODIF COMMANDE DATE 04/12/2001 AUTEUR GNICOLAS G.NICOLAS
-# 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.
-# ======================================================================
-THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-f1",reentrant='f',
- fr="Analyse thermique linéaire stationnaire ou transitoire",
- 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',min=1,max='**',
- CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
- 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',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),
- CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r),
- VALE =SIMP(statut='f',typ='R'),
- NUME_INIT =SIMP(statut='f',typ='I'),
- ),
- 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',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',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") ),
- ),
- 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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57),
- 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',max='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
- into=("RELATIF","ABSOLU")),
- PAS_ARCH =SIMP(statut='f',typ='I'),
- CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-d",reentrant='f',
- fr="Analyse thermique non linéaire stationnaire ou transitoire" ,
- 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',min=1,max='**',
- RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL",
- into=("THER_NL",
- "THER_HYDR",
- "SECH_GRANGER",
- "SECH_MENSI",
- "SECH_BAZANT",
- "SECH_NAPPE"
- ) ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther),
- EXCIT =FACT(statut='o',min=1,max='**',
- CHARGE =SIMP(statut='o',typ=char_ther),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
- 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',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),
- CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r),
- VALE =SIMP(statut='f',typ='R'),
- NUME_INIT =SIMP(statut='f',typ='I'),
- ),
- 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',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 ),
- ),
- 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_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Parametres relatifs a la non inversibilité de la matrice a factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+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',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',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',max='**',
- into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 05/12/2001 AUTEUR VABHHTS J.PELLET
-# 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.
-# ======================================================================
-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',
- 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',min=1,max='**',
- CHARGE =SIMP(statut='o',typ=char_ther ),
- FONC_MULT =SIMP(statut='c',typ=fonction ),
- ),
- 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',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',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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-
-
-
+++ /dev/null
-#& MODIF COMMANDE DATE 10/07/2001 AUTEUR ACBHHCD G.DEVESA
-# 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.
-# ======================================================================
-
-import Accas
-from Accas import *
-from Accas import _F
-
-import ops
-
-try:
- import aster
-except:
- pass
-
-#
-JdC = JDC_CATA(code='ASTER',
- execmodul=None,
- regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
- AU_MOINS_UN('FIN'),
- A_CLASSER(('DEBUT','POURSUITE'),'FIN')),
- )
-
-# Type le plus general
-class entier(ASSD):pass
-class reel(ASSD):pass
-class complexe(ASSD):pass
-class liste(ASSD):pass
-class chaine(ASSD):pass
-
-# Type generaux
-class no(GEOM):pass
-class grno(GEOM):pass
-class ma(GEOM):pass
-class grma(GEOM):pass
-
-class table(ASSD):
- def __getitem__(self,key):
- return aster.getpara(self.get_name(),"TABLE",key[0],key[1])
-
-class resultat(ASSD):
- def __getitem__(self,key):
- return aster.getpara(self.get_name(),"RESULTAT",key[0],key[1])
-
-# Autres
-class affe_carte(ASSD):pass
-class affe_cham_no(ASSD):pass
-class affe_char_cine(ASSD):pass
-class affe_char_cine_f(ASSD):pass
-class asse_matrice(ASSD):pass
-class asse_vecteur(ASSD):pass
-class base_modale(ASSD):pass
-class cabl_precont(ASSD):pass
-class calc_cham_elem(ASSD):pass
-class calc_char_cine(ASSD):pass
-class calc_char_seisme(ASSD):pass
-
-class calc_elem(resultat):pass
-
-class calc_matr_elem(ASSD):pass
-
-class calc_no(resultat):pass
-
-class calc_vect_elem(ASSD):pass
-class cara_elem(ASSD):pass
-class cara_pout(ASSD):pass
-
-class carte(ASSD):pass
-class carte_depl_r(carte):pass
-class carte_epsi_r(carte):pass
-class carte_flux_r(carte):pass
-class carte_geom_r(carte):pass
-class carte_inst_r(carte):pass
-class carte_meta_r(carte):pass
-class carte_neut_f(carte):pass
-class carte_neut_r(carte):pass
-class carte_sief_r(carte):pass
-class carte_temp_f(carte):pass
-class carte_temp_r(carte):pass
-class carte_var2_r(carte):pass
-# ajout JMP 2908
-class cham_gd(ASSD):pass
-#class cham_elem(ASSD):pass
-class cham_elem(cham_gd):pass
-class cham_elem_crit_r(cham_elem):pass
-class cham_elem_dbel_r(cham_elem):pass
-class cham_elem_dommag(cham_elem):pass
-class cham_elem_ener_r(cham_elem):pass
-class cham_elem_epsi_c(cham_elem):pass
-class cham_elem_epsi_r(cham_elem):pass
-class cham_elem_erreur(cham_elem):pass
-class cham_elem_flux_r(cham_elem):pass
-class cham_elem_geom_r(cham_elem):pass
-class cham_elem_hydr_r(cham_elem):pass
-class cham_elem_meta_r(cham_elem):pass
-class cham_elem_neut_r(cham_elem):pass
-class cham_elem_neut_f(cham_elem):pass
-class cham_elem_pres_r(cham_elem):pass
-class cham_elem_sief_c(cham_elem):pass
-class cham_elem_depl_r(cham_elem):pass
-class cham_elem_temp_r(cham_elem):pass
-class cham_elem_sief_r(cham_elem):pass
-class cham_elem_sour_r(cham_elem):pass
-class cham_elem_vari_r(cham_elem):pass
-
-#class cham_gd(ASSD):pass
-class cham_mater(ASSD):pass
-
-#class cham_no(ASSD):pass
-class cham_no(cham_gd):pass
-class cham_no_depl_c(cham_no):pass
-class cham_no_depl_f(cham_no):pass
-class cham_no_depl_r(cham_no):pass
-class cham_no_epsi_r(cham_no):pass
-class cham_no_flux_r(cham_no):pass
-class cham_no_geom_r(cham_no):pass
-class cham_no_inst_r(cham_no):pass
-class cham_no_meta_r(cham_no):pass
-class cham_no_pres_c(cham_no):pass
-class cham_no_pres_r(cham_no):pass
-class cham_no_sief_r(cham_no):pass
-class cham_no_neut_r(cham_no):pass
-class cham_no_neut_f(cham_no):pass
-class cham_no_temp_c(cham_no):pass
-class cham_no_temp_f(cham_no):pass
-class cham_no_temp_r(cham_no):pass
-class cham_no_vanl_r(cham_no):pass
-class cham_no_var2_r(cham_no):pass
-
-class char_acou(ASSD):pass
-class char_cine_acou(ASSD):pass
-class char_cine_meca(ASSD):pass
-class char_cine_ther(ASSD):pass
-class char_meca(ASSD):pass
-class char_ther(ASSD):pass
-class comb_cham_elem(ASSD):pass
-class comb_cham_no(ASSD):pass
-class comb_fourier(resultat):pass
-class comb_matr_asse(ASSD):pass
-class courbe(ASSD):pass
-class crea_resu(ASSD):pass
-class acou_harmo(resultat):pass
-class dyna_harmo(resultat):pass
-class dyna_line_harm(resultat):pass
-class dyna_trans(resultat):pass
-
-class evol(resultat):pass
-
-class evol_char(evol):pass
-class evol_elas(evol):pass
-class evol_noli(evol):pass
-class evol_ther(evol):pass
-
-class extr_mode(ASSD):pass
-class extr_resu(ASSD):pass
-class fact_grad(ASSD):pass
-class fact_ldlt(ASSD):pass
-class fonction_c(fonction):pass
-class fond_fiss(ASSD):pass
-class fourier_elas(resultat):pass
-class harm_gene(resultat):pass
-class interf_dyna_clas(ASSD):pass
-class interspfact(ASSD):pass
-class lire_miss_3d(ASSD):pass
-class lire_resu(ASSD):pass
-class listis(ASSD):pass
-class listr8(ASSD):pass
-class macr_elem_dyna(ASSD):pass
-class macr_elem_stat(ASSD):pass
-class macro_elas_mult(ASSD):pass
-class maillage(ASSD):pass
-class mater(ASSD):pass
-
-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_c(matr_asse):pass
-class matr_asse_gene_r(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
-
-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 melasflu(ASSD):pass
-
-class mode_acou(resultat):pass
-class mode_cycl(resultat):pass
-class mode_flamb(resultat):pass
-class mode_gene(resultat):pass
-class mode_iter_inv(resultat):pass
-class mode_meca(resultat):pass
-class mode_meca_c(mode_meca):pass
-class mode_stat(resultat):pass
-
-class modele(ASSD):pass
-class modele_gene(ASSD):pass
-class mult_elas(resultat):pass
-class norm_mode(ASSD):pass
-class nume_ddl(ASSD):pass
-class nume_ddl_gene(ASSD):pass
-class obstacle(ASSD):pass
-class post_elem(ASSD):pass
-class prod_matr_cham(ASSD):pass
-class proj_champ(ASSD):pass
-class recu_champ(ASSD):pass
-class reso_grad(ASSD):pass
-class reso_ldlt(ASSD):pass
-class rest_base_phys(ASSD):pass
-class spectre(ASSD):pass
-class squelette(maillage):pass
-class surface(ASSD):pass
-
-class tabl_aire_int(table):pass
-class tabl_calc_g_loca(table):pass
-class tabl_calc_g_th(table):pass
-class tabl_cara_geom(table):pass
-class tabl_char_limite(table):pass
-class tabl_ener_elas(table):pass
-class tabl_ener_pot(table):pass
-class tabl_ener_cin(table):pass
-class tabl_ener_totale(table):pass
-class tabl_fonc(table):pass
-class tabl_fonc_max(tabl_fonc):pass
-class tabl_fonc_rms(tabl_fonc):pass
-class tabl_indic_ener(table):pass
-class tabl_indic_seuil(table):pass
-class tabl_intsp(table):pass
-class tabl_mass_iner(table):pass
-class tabl_post_alea(table):pass
-class tabl_post_dyna(table):pass
-class tabl_post_f_alea(table):pass
-class tabl_post_fatig(table):pass
-class tabl_post_gouj2e(table):pass
-class tabl_post_k(table):pass
-class tabl_post_rccm(table):pass
-class tabl_post_rele(table):pass
-class tabl_post_simpli(table):pass
-class tabl_post_usur(table):pass
-class tabl_reca_weib(table):pass
-class tabl_rice_tracey(table):pass
-class tabl_texture(table):pass
-class tabl_trc(table):pass
-class tabl_weibull(table):pass
-
-class theta_geom(ASSD):pass
-class tran_gene(ASSD):pass
-class type_flui_stru(ASSD):pass
-class valeur(ASSD):pass
-class vect_asse(ASSD):pass
-class vect_asse_gene(vect_asse):pass
-class vect_elem(ASSD):pass
-class vect_elem_depl_r(vect_elem):pass
-class vect_elem_pres_c(vect_elem):pass
-class vect_elem_pres_r(vect_elem):pass
-class vect_elem_temp_r(vect_elem):pass
-
-#& MODIF COMMANDE DATE 11/09/2000 AUTEUR JMBHH01 J.M.PROIX
-AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem,
- fr="Affectation de caractéristiques à des éléments de structure (barre, cable, poutre, tuyau, plaque, coque, discret)",
- docu="U4.42.01-F",reentrant='n',
- regles=(AU_MOINS_UN('POUTRE','COQUE','DISCRET','CABLE','BARRE','MASSIF','ASSE_GRIL','GRILLE'),),
- 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='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- SECTION =SIMP(statut='f',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ),
- CARA_SECT =SIMP(statut='f',typ=(cara_pout) ),
- b_generale =BLOC( condition = "SECTION=='GENERALE'",
- CARA =SIMP(statut='f',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",
- "RZ1","RT1","AI1","JG1","IYR21","IZR21","A2",
- "IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
- "RZ2","RT2","AI2","JG2","IYR22","IZR22","H",
- "HZ","HY","EP","EPY","EPZ","H1","HZ1","HY1",
- "EP1","EPY1","EPZ1","H2","HZ2","HY2","EP2",
- "EPY2","EPZ2","R","R1","R2") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
- ),
- b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
- CARA =SIMP(statut='f',typ='TXM',max='**',
- into=("H","EP","HY","HZ","EPY","EPZ",
- "H1","HZ1","HY1","EP1","EPY1","EPZ1",
- "H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"),
- ),
- b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- CARA =SIMP(statut='f',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",) ),
- MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- ),
- BARRE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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='f',typ='TXM',into=("A",) ),
- VALE =SIMP(statut='o',typ='R' ),
- ),
- b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
- CARA =SIMP(statut='f',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',max=2,into=("R","EP") ),
- VALE =SIMP(statut='o',typ='R',max=2 ),
- ),
- ),
- COQUE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA' ),
- PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- EPAIS =SIMP(statut='f',typ='R' ),
- ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2),
- A_CIS =SIMP(statut='f',typ='R',defaut= 0.8333333),
- COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
- EXCENTREMENT =SIMP(statut='f',typ='R' ),
- INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- CABLE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('A','SECTION') ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ),
- A =SIMP(statut='f',typ='R' ),
- SECTION =SIMP(statut='f',typ='R' ),
- ),
- DISCRET =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
- 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='f',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",
- "M_T_L", "M_TR_N", "M_TR_L",
- "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
- "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ),
- VALE =SIMP(statut='f',typ='R',max='**'),
- ),
- ORIENTATION =FACT(statut='f',min=01,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='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- CARA =SIMP(statut='f',typ='TXM',
- into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ),
- VALE =SIMP(statut='f',typ='R',max='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- DEFI_ARC =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
- 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
- PRESENT_PRESENT('ORIE_ARC','RAYON'),
- EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
- EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
- EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
- EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
- PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
- PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
- MAILLE =SIMP(statut='f',typ=ma,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,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,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'),
- COEF_FLEX_XY =SIMP(statut='f',typ='R'),
- INDI_SIGM_XY =SIMP(statut='f',typ='R'),
- COEF_FLEX_XZ =SIMP(statut='f',typ='R'),
- INDI_SIGM_XZ =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- MASSIF =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- EXCLUS('ANGL_REP','ANGL_AXE'),
- EXCLUS('ANGL_REP','ORIG_AXE'),
- PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ),
- 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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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 ),
- A_FLUI =SIMP(statut='o',typ='R'),
- A_CELL =SIMP(statut='o',typ='R'),
- COEF_ECHELLE =SIMP(statut='o',typ='R'),
- ),
- GRILLE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- EXCLUS('ANGL_REP','ORIG_AXE'),
- ENSEMBLE('ORIG_AXE','AXE')),
- 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'),
- POUR_CENT_L =SIMP(statut='f',typ='R'),
- POUR_CENT_T =SIMP(statut='f',typ='R'),
- DIST_N =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 ),
- ),
- RIGI_PARASOL =FACT(statut='f',min=01,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='**'),
- FONC_GROUP =SIMP(statut='f',typ=(fonction) ),
- COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
- REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
- 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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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'),
- PAS_N =SIMP(statut='o',typ='R'),
- ANGL_REP =SIMP(statut='o',typ='R',max='**'),
- COEF_ECHELLE =SIMP(statut='o',typ='R'),
- ),
-) ;
-#& MODIF COMMANDE DATE 24/05/2000 AUTEUR VABHHTS J.PELLET
-def affe_carte_prod(GRANDEUR,**args):
- if GRANDEUR == "TEMP_R" : return carte_temp_r
- if GRANDEUR == "FLUX_R" : return carte_flux_r
- if GRANDEUR == "DEPL_R" : return carte_depl_r
- if GRANDEUR == "EPSI_R" : return carte_epsi_r
- if GRANDEUR == "SIEF_R" : return carte_sief_r
- if GRANDEUR == "META_R" : return carte_meta_r
- if GRANDEUR == "NEUT_R" : return carte_neut_r
- if GRANDEUR == "VAR2_R" : return carte_var2_r
- if GRANDEUR == "TEMP_F" : return carte_temp_f
- if GRANDEUR == "NEUT_F" : return carte_neut_f
- if GRANDEUR == "INST_R" : return carte_inst_r
- if GRANDEUR == "GEOM_R" : return carte_geom_r
- raise AsException("type de concept resultat non prevu")
-
-AFFE_CARTE=OPER(nom="AFFE_CARTE",op= 36,sd_prod=affe_carte_prod,
- fr="Définition d un champ de grandeur constant, qui peut ensuite être utilisé comme champ initial (par exemple une précontrainte en mécanique)",
- docu="U4.44.13-C",reentrant='n',
- MAILLAGE =SIMP(statut='o',typ=maillage ),
- GRANDEUR =SIMP(statut='o',typ='TXM',
- into=("DEPL_R","EPSI_R","SIEF_R","VAR2_R",
- "TEMP_R","META_R","TEMP_F","FLUX_R",
- "NEUT_R","NEUT_F","INST_R","GEOM_R",) ),
- AFFE =FACT(statut='o',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma),
- MAILLE =SIMP(statut='f',typ=ma ),
- 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),
- ),
-) ;
-#& MODIF COMMANDE DATE 31/05/2000 AUTEUR CIBHHLV L.VIVAN
-
-def affe_cham_no_prod(CHAM_NO_AFFE,GRANDEUR,**args):
- if GRANDEUR == "TEMP_R" : return cham_no_temp_r
- if GRANDEUR == "TEMP_F" : return cham_no_temp_f
- if GRANDEUR == "DEPL_R" : return cham_no_depl_r
- if GRANDEUR == "DEPL_F" : return cham_no_depl_f
- if GRANDEUR == "SIEF_R" : return cham_no_sief_r
- if GRANDEUR == "NEUT_R" : return cham_no_neut_r
- if GRANDEUR == "NEUT_F" : return cham_no_neut_f
- if GRANDEUR == "INST_R" : return cham_no_inst_r
- if GRANDEUR == "GEOM_R" : return cham_no_geom_r
- if GRANDEUR == "VAR2_R" : return cham_no_var2_r
- if AsType(CHAM_NO_AFFE) == cham_no_temp_r : return cham_no_temp_r
- if AsType(CHAM_NO_AFFE) == cham_no_depl_r : return cham_no_depl_r
- if AsType(CHAM_NO_AFFE) == cham_no_sief_r : return cham_no_sief_r
- raise AsException("type de concept resultat non prevu")
-
-AFFE_CHAM_NO=OPER(nom="AFFE_CHAM_NO",op= 52,sd_prod=affe_cham_no_prod
- ,fr="Affectation de grandeurs réelles pour créer un cham_no_*",
- docu="U4.44.11-F",reentrant='n',
- regles=(UN_PARMI('MAILLAGE','CHAM_NO_AFFE'),
- PRESENT_PRESENT('MAILLAGE','GRANDEUR','AFFE'),
- EXCLUS('NUME_DDL','CHAM_NO'),),
- CHAM_NO_AFFE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r,
- cham_no_depl_f,cham_no_sief_r ) ),
- MAILLAGE =SIMP(statut='f',typ=maillage ),
- GRANDEUR =SIMP(statut='f',typ='TXM',into=("TEMP_R","DEPL_R","SIEF_R","VAR2_R",
- "TEMP_F","DEPL_F","INST_R","GEOM_R",
- "NEUT_R","NEUT_F") ),
- AFFE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
- UN_PARMI('VALE','VALE_F','VALE_R','FONCTION'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
-# NOM_CMP est il obligatoire
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- VALE_R =SIMP(statut='f',typ='R',max='**',defaut= 0.E+0 ),
- VALE =SIMP(statut='f',typ='R',max='**'),
- VALE_F =SIMP(statut='f',typ=fonction,max='**'),
- FONCTION =SIMP(statut='f',typ=fonction,max='**'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- NUME_DDL =SIMP(statut='f',typ=nume_ddl ),
- CHAM_NO =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r,
- cham_no_depl_f,cham_no_sief_r ) ),
-) ;
-#& MODIF COMMANDE DATE 12/05/99 AUTEUR VABHHTS J.PELLET
-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',
- 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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.,),
- PRES_IMPO =FACT(statut='f',min=01,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='**'),
- 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',min=01,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='**'),
- VNOR =SIMP(statut='o',typ='C' ),
- ),
- IMPE_FACE =FACT(statut='f',min=01,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='**'),
- IMPE =SIMP(statut='o',typ='C' ),
- ),
- 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='o',typ='TXM',max='**'),
- ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args):
- if MECA_IMPO != None : return char_cine_meca
- if THER_IMPO != None : return char_cine_ther
- if ACOU_IMPO != None : return char_cine_acou
- raise AsException("type de concept resultat non prevu")
-
-AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
- ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
- docu="U4.44.03-E",reentrant='n',
- 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='**',
- 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,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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- ),
- THER_IMPO =FACT(statut='f',min=01,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,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',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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 11/02/98 AUTEUR CIBHHLV L.VIVAN
-def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
- if MECA_IMPO != None : return char_cine_meca
- if THER_IMPO != None : return char_cine_ther
- raise AsException("type de concept resultat non prevu")
-
-AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod
- ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
- docu="U4.44.03-E",reentrant='n',
- 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='**',
- 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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,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 ),
- TEMP =SIMP(statut='f',typ=fonction ),
- PHI =SIMP(statut='f',typ=fonction ),
- ),
- THER_IMPO =FACT(statut='f',min=01,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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- TEMP_SUP =SIMP(statut='f',typ=fonction ),
- TEMP =SIMP(statut='f',typ=fonction ),
- TEMP_INF =SIMP(statut='f',typ=fonction ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR UFBHHLL C.CHAVANT
-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-F",reentrant='n',
- 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_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'),
- EXCLUS('LIAISON_UNIL_NO','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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=04,max=04),
- ROTATION =SIMP(statut='f',typ='R',fr="Champ de rotation",min=04,max=04),
- b_rotation =BLOC ( condition = "ROTATION != None",
- CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=03),
- ),
- PRES_CALCULEE =SIMP(statut='f',fr="Champ de pression issu d un autre calcul",typ=evol_char ),
- 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 ),
- SECH_CALCULEE =SIMP(statut='f',fr="Champ de séchage 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 ),
-
- DDL_IMPO =FACT(statut='f',min=01,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'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PRE1 =SIMP(statut='f',typ='R' ),
- PRE2 =SIMP(statut='f',typ='R' ),
- UI2 =SIMP(statut='f',typ='R' ),
- UI3 =SIMP(statut='f',typ='R' ),
- UI4 =SIMP(statut='f',typ='R' ),
- UI5 =SIMP(statut='f',typ='R' ),
- UI6 =SIMP(statut='f',typ='R' ),
- UO2 =SIMP(statut='f',typ='R' ),
- UO3 =SIMP(statut='f',typ='R' ),
- UO4 =SIMP(statut='f',typ='R' ),
- UO5 =SIMP(statut='f',typ='R' ),
- UO6 =SIMP(statut='f',typ='R' ),
- VI2 =SIMP(statut='f',typ='R' ),
- VI3 =SIMP(statut='f',typ='R' ),
- VI4 =SIMP(statut='f',typ='R' ),
- VI5 =SIMP(statut='f',typ='R' ),
- VI6 =SIMP(statut='f',typ='R' ),
- VO2 =SIMP(statut='f',typ='R' ),
- VO3 =SIMP(statut='f',typ='R' ),
- VO4 =SIMP(statut='f',typ='R' ),
- VO5 =SIMP(statut='f',typ='R' ),
- VO6 =SIMP(statut='f',typ='R' ),
- WI2 =SIMP(statut='f',typ='R' ),
- WI3 =SIMP(statut='f',typ='R' ),
- WI4 =SIMP(statut='f',typ='R' ),
- WI5 =SIMP(statut='f',typ='R' ),
- WI6 =SIMP(statut='f',typ='R' ),
- WO2 =SIMP(statut='f',typ='R' ),
- WO3 =SIMP(statut='f',typ='R' ),
- WO4 =SIMP(statut='f',typ='R' ),
- WO5 =SIMP(statut='f',typ='R' ),
- WO6 =SIMP(statut='f',typ='R' ),
- WO =SIMP(statut='f',typ='R' ),
- WI1 =SIMP(statut='f',typ='R' ),
- WO1 =SIMP(statut='f',typ='R' ),
- ),
- FACE_IMPO =FACT(statut='f',min=01,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 clé REPERE :/ LOCAL /GLOBAL
- 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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- DNOR =SIMP(statut='f',typ='R' ),
- DTAN =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PRE1 =SIMP(statut='f',typ='R' ),
- PRE2 =SIMP(statut='f',typ='R' ),
- ),
- LIAISON_DDL =FACT(statut='f',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",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='o',typ='TXM',max='**'),
- COEF_MULT =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ='R' ),
- ),
- LIAISON_OBLIQUE =FACT(statut='f',fr="Appliquer à des noeuds la même valeur de déplacement dans un repère oblique quelconque",min=01,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=03),
- DX =SIMP(statut='f',typ='R' ),
- DY =SIMP(statut='f',typ='R' ),
- DZ =SIMP(statut='f',typ='R' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- ),
- LIAISON_GROUP =FACT(statut='f',fr="Définir des relations linéaires entre certains ddls de couples de noeuds",min=01,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='**'),
-
- 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=03),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03),
- CENTRE =SIMP(statut='f',typ='R',max=03),
- ),
- LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d une structure",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='**'),
- 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",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='o',typ='TXM',max='**'),
- ),
- LIAISON_CHAMNO =FACT(statut='f',fr="définir une relation linéaire entre tous les ddls présents dans un concept cham_nno",min=01,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_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque", min=01,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=03),
- ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- LIAISON_COQUE =FACT(statut='f',min=01,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") ),
- ),
- LIAISON_MAIL =FACT(statut='f',min=01,max='**',
- regles=(PRESENT_ABSENT('GROUP_MA_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
- PRESENT_ABSENT('MAILLE_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL',),
- PRESENT_ABSENT('GROUP_MA_2','GROUP_MA_MAIT','MAILLE_MAIT'),
- PRESENT_ABSENT('MAILLE_2','GROUP_MA_MAIT','MAILLE_MAIT'),
- PRESENT_ABSENT('GROUP_NO_2','GROUP_MA_MAIT','MAILLE_MAIT'),
- PRESENT_ABSENT('NOEUD_2','GROUP_MA_MAIT','MAILLE_MAIT'),
- AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_MAIT','MAILLE_MAIT'),
- AU_MOINS_UN('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
- PRESENT_ABSENT('DDL_1','DDL_MAIT','DDL_ESCL'),
- PRESENT_ABSENT('DDL_2','DDL_MAIT','DDL_ESCL'),
- PRESENT_PRESENT('DDL_1','DDL_2'),
- PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),),
- GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_MAIT =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_2 =SIMP(statut='f',typ=grno,max='**'),
- NOEUD_2 =SIMP(statut='f',typ=no,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=03 ),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03 ),
- CENTRE =SIMP(statut='f',typ='R',max=03 ),
- DDL_1 =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ),
- DDL_2 =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ),
- DDL_MAIT =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ),
- DDL_ESCL =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ),
- ),
-
- FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",min=01,max='**',
- regles=(UN_PARMI('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=03),
- ),
-
- FORCE_FACE =FACT(statut='f',fr="Appliquer des forces surfaciques sur une face d éléments volumiques",min=01,max='**',
- regles=(UN_PARMI('GROUP_MA','MAILLE'),
- 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' ),
- ),
- FORCE_ARETE =FACT(statut='f',fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque",min=01,max='**',
- regles=(UN_PARMI('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' ),
- ),
- FORCE_CONTOUR =FACT(statut='f',fr="Appliquer des forces linéiques au bord d un domaine 2D ou AXIS_FOURIER",min=01,max='**',
- regles=(UN_PARMI('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' ),
- ),
- FORCE_INTERNE =FACT(statut='f',fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique",min=01,max='**',
- regles=(UN_PARMI('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='R' ),
- FY =SIMP(statut='f',typ='R' ),
- FZ =SIMP(statut='f',typ='R' ),
- ),
- PRES_REP =FACT(statut='f',fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",min=01,max='**',
- regles=(UN_PARMI('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='**'),
- PRES =SIMP(statut='f',typ='R' ),
- CISA_2D =SIMP(statut='f',typ='R' ),
- ),
- EPSI_INIT =FACT(statut='f',fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",min=01,max='**',
- regles=(UN_PARMI('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' ),
- ),
-
-
- FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",min=01,max='**',
- regles=(UN_PARMI('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='**'),
-
- 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",) ),
- ),
- FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
- PRESENT_ABSENT('FX','N','VY','VZ'),
- PRESENT_ABSENT('FY','N','VY','VZ'),
- PRESENT_ABSENT('FZ','N','VY','VZ'),
- PRESENT_ABSENT('N','FX','FY','FZ'),
- PRESENT_ABSENT('VY','FX','FY','FZ'),
- PRESENT_ABSENT('VZ','FX','FY','FZ'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- FY =SIMP(statut='f',typ='R' ),
- FZ =SIMP(statut='f',typ='R' ),
-
- N =SIMP(statut='f',typ='R' ),
- VY =SIMP(statut='f',typ='R' ),
- VZ =SIMP(statut='f',typ='R' ),
-
- ),
- FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",min=01,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='**'),
- PRES =SIMP(statut='f',typ='R' ),
- ),
-
-
- FORCE_ELEC =FACT(statut='f',fr="Appliquer une force de Laplace due à la présence d un conducteur rectiligne secondaire non maillé",min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('FX','FY','FZ','POSITION'),
- EXCLUS('FX','POSITION'),
- EXCLUS('FY','POSITION'),
- EXCLUS('FZ','POSITION'),),
-# trop de règles : 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 ),
-
- 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=03),
- DIST =SIMP(statut='f',typ='R' ),
- b_point2 =BLOC ( condition = "DIST != None",
- POINT2 =SIMP(statut='o',typ='R',max=03),
- ),
- ),
- b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')",
- POINT1 =SIMP(statut='o',typ='R',max=03),
- POINT2 =SIMP(statut='o',typ='R',max=03),
- ),
- ),
- INTE_ELEC =FACT(statut='f',fr="Appliquer une force de Laplace due à la présence d un conducteur non rectiligne secondaire maillé ou non",min=01,max='**',
- regles=(UN_PARMI('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='**'),
- 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='**'),
- ),
-
-
- VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",min=01,max='**',
- regles=(UN_PARMI('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=01,max='**',
- regles=(UN_PARMI('GROUP_MA','MAILLE'),),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- PRES =SIMP(statut='o',typ='R' ),
- ),
- IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",min=01,max='**',
- regles=(UN_PARMI('GROUP_MA','MAILLE' ),),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- IMPE =SIMP(statut='o',typ='R' ),
- ),
-
-
- FLUX_THM_REP =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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' ),
- ),
-
- EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",min=01,max='**',
- regles=(UN_PARMI('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' ),
- ),
-
- LIAISON_UNIL_NO =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='**'),# 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=03 ),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03 ),
- CENTRE =SIMP(statut='f',typ='R',max=03 ),
- ANGLE_MAX =SIMP(statut='f',typ='R' ),
- 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 ),
- ),
-
- CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=01,max='**',
- regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),
- ENSEMBLE('FROTTEMENT','COULOMB'),
- 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")),
- REAC_GEOM_INTE =SIMP(statut='f',typ='I',defaut= 2),
- 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),
- E_T =SIMP(statut='f',typ='R' ),
- COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- VECT_NORM_2 =SIMP(statut='f',typ='R',max=03),
- 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='R',defaut= 0.E+0 ),
- DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COEF_IMPO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COEF_MULT_2 =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
-
- RELA_CINE_BP =FACT(statut='f',min=01,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") ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 17/05/2000 AUTEUR CIBHHLV L.VIVAN
-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-C",reentrant='n',
- 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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- DDL_IMPO =FACT(statut='f',min=01,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",) ),
- 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' ),
- DRX =SIMP(statut='f',typ='C' ),
- DRY =SIMP(statut='f',typ='C' ),
- DRZ =SIMP(statut='f',typ='C' ),
- GRX =SIMP(statut='f',typ='C' ),
- PRES =SIMP(statut='f',typ='C' ),
- PHI =SIMP(statut='f',typ='C' ),
- ),
- FORCE_POUTRE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',),
- AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
- PRESENT_ABSENT('FX','N','VY','VZ',),
- PRESENT_ABSENT('FY','N','VY','VZ',),
- PRESENT_ABSENT('FZ','N','VY','VZ',),
- PRESENT_ABSENT('N','FX','FY','FZ',),
- PRESENT_ABSENT('VY', 'FX','FY','FZ',),
- PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- FZ =SIMP(statut='f',typ='C' ),
- N =SIMP(statut='f',typ='C' ),
- VY =SIMP(statut='f',typ='C' ),
- VZ =SIMP(statut='f',typ='C' ),
- ),
- LIAISON_DDL =FACT(statut='f',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='o',typ='TXM',max='**'),
- COEF_MULT =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ='C' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR UFBHHLL C.CHAVANT
-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 (temps, ...)",
- docu="U4.44.01-F",reentrant='n',
- 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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
-
- DDL_IMPO =FACT(statut='f',min=01,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'),),
- 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='**'),
- 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) ),
- ),
- LIAISON_UNIF =FACT(statut='f',min=01,max='**',
- fr="Imposer une meme valeur (inconnue) à 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='**'),
- 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',min=01,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",) ),
- ),
- LIAISON_OBLIQUE =FACT(statut='f',min=01,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='**'),
- ANGL_NAUT =SIMP(statut='o',typ='R',max=03),
- 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) ),
- ),
- LIAISON_COQUE =FACT(statut='f',min=01,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",) ),
- ),
- FACE_IMPO =FACT(statut='f',min=01,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='**'),
- 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=01,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=01,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=03),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03),
- CENTRE =SIMP(statut='f',typ='R',max=03),
- ),
-
- FORCE_NODALE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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=(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) ),
- ANGL_NAUT =SIMP(statut='f',typ=(fonction),max=03 ),
- ),
- FORCE_INTERNE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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=01,max='**',
- regles=(UN_PARMI('GROUP_MA','MAILLE'),
- 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=(fonction) ),
- FY =SIMP(statut='f',typ=(fonction) ),
- FZ =SIMP(statut='f',typ=(fonction) ),
- ),
- FORCE_ARETE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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=(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) ),
- ),
- FORCE_CONTOUR =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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=(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) ),
- ),
- PRES_REP =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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='**'),
- PRES =SIMP(statut='f',typ=(fonction) ),
- CISA_2D =SIMP(statut='f',typ=(fonction) ),
- ),
-
- FORCE_COQUE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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") ),
- ),
- FORCE_POUTRE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
- PRESENT_ABSENT('FX','N','VY','VZ'),
- PRESENT_ABSENT('FY','N','VY','VZ'),
- PRESENT_ABSENT('FZ','N','VY','VZ'),
- PRESENT_ABSENT('N','FX','FY','FZ'),
- PRESENT_ABSENT('VY','FX','FY','FZ'),
- PRESENT_ABSENT('VZ','FX','FY','FZ'),),
-# rajout d un mot cle REPERE : / GLOBAL / LOCAL
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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) ),
- FY =SIMP(statut='f',typ=(fonction) ),
- FZ =SIMP(statut='f',typ=(fonction) ),
- N =SIMP(statut='f',typ=(fonction) ),
- VY =SIMP(statut='f',typ=(fonction) ),
- VZ =SIMP(statut='f',typ=(fonction) ),
- ),
- FORCE_TUYAU =FACT(statut='f',min=01,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='**'),
- PRES =SIMP(statut='f',typ=(fonction) ),
- ),
- VITE_FACE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('GROUP_MA','MAILLE'),),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- VNOR =SIMP(statut='o',typ=(fonction) ),
- ),
- IMPE_FACE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('GROUP_MA','MAILLE'),),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- IMPE =SIMP(statut='o',typ=(fonction) ),
- ),
- ONDE_PLANE =FACT(statut='f',min=01,max='**',
- DIRECTION =SIMP(statut='o',typ='R',max='**'),
- TYPE_ONDE =SIMP(statut='o',typ='TXM' ),
- FONC_SIGNAL =SIMP(statut='o',typ=(fonction) ),
- DIST_ORIG =SIMP(statut='o',typ='R' ),
- ),
- EPSI_INIT =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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=01,max='**',
- regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),
- ENSEMBLE('FROTTEMENT','COULOMB'),
- 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") ),
- 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),
- E_T =SIMP(statut='f',typ='R' ),
- COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- VECT_NORM_2 =SIMP(statut='f',typ='R',max=03),
- 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=01,max='**',
- regles=(UN_PARMI('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=(fonction) ),
- FLUN_HYDR1 =SIMP(statut='f',typ=(fonction) ),
- FLUN_HYDR2 =SIMP(statut='f',typ=(fonction) ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 17/11/1999 AUTEUR CIBHHGB G.BERTRAND
-AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
- fr=" ",
- docu=" ",reentrant='n',
- regles=(AU_MOINS_UN('CARA_TORSION', ),),
- MODELE =SIMP(statut='o',typ=modele ),
- VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",
- into=("OUI","NON") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- CARA_TORSION =FACT(statut='f',min=01,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/11/2000 AUTEUR CIBHHLV L.VIVAN
-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-F",reentrant='n',
- 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"),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- 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='**',
- 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,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'), ),
- 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('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='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
- 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,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'),
- CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ),
- ),
- ECHANGE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
- ENSEMBLE('COEF_H','TEMP_EXT',),
- ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
- ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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_INF =SIMP(statut='f',typ='R'),
- COEF_H_SUP =SIMP(statut='f',typ='R'),
- TEMP_EXT_SUP =SIMP(statut='f',typ='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='o',typ='R'),
- TRAN =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- CENTRE =SIMP(statut='f',typ='R',max='**'),
- ),
- GRAD_TEMP_INIT =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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='R' ),
- FLUX_Y =SIMP(statut='f',typ='R' ),
- FLUX_Z =SIMP(statut='f',typ='R' ),
- ),
- LIAISON_GROUP =FACT(statut='f',min=01,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_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='**'),
- DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP",) ),
- COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ='R' ),
- SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- TRAN =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- CENTRE =SIMP(statut='f',typ='R',max='**'),
- ),
- CONVECTION =FACT(statut='f',min=01,max='**',
- VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ),
- ),
- RAYONNEMENT =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',),
- ENSEMBLE('SIGMA','EPSILON','TEMP_EXT'),),
- 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='**',
- regles=(PRESENT_ABSENT('GROUP_MA_1','GROUP_MA_ESCL','MAILLE_ESCL',
- 'GROUP_NO_ESCL','NOEUD_ESCL'),
- PRESENT_ABSENT('MAILLE_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
- PRESENT_ABSENT('GROUP_MA_2','GROUP_MA_MAIT','MAILLE_MAIT'),
- PRESENT_ABSENT('MAILLE_2','GROUP_MA_MAIT','MAILLE_MAIT'),
- PRESENT_ABSENT('GROUP_NO_2','GROUP_MA_MAIT','MAILLE_MAIT'),
- PRESENT_ABSENT('NOEUD_2','GROUP_MA_MAIT','MAILLE_MAIT'),
- AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_MAIT','MAILLE_MAIT'),
- AU_MOINS_UN('GROUP_MA_2','MAILLE_2','GROUP_NO_2',
- 'NOEUD_2','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL',
- 'NOEUD_ESCL'),),
- GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'),
- MAILLE_MAIT =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_2 =SIMP(statut='f',typ=grno,max='**'),
- NOEUD_2 =SIMP(statut='f',typ=no,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='**' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 12/05/99 AUTEUR VABHHTS J.PELLET
-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-F",reentrant='n',
- 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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- 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=(fonction) ),
- ),
- TEMP_IMPO =FACT(statut='f',min=01,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,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',max='**',into=("TEMP",) ),
- TEMP =SIMP(statut='f',typ=(fonction) ),
- TEMP_INF =SIMP(statut='f',typ=(fonction) ),
- TEMP_SUP =SIMP(statut='f',typ=(fonction) ),
- ),
- 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") ),
- ),
- SOURCE =FACT(statut='f',min=01,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=01,max='**',
- regles=(UN_PARMI('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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- FLUN =SIMP(statut='f',typ=(fonction) ),
- FLUN_INF =SIMP(statut='f',typ=(fonction) ),
- FLUN_SUP =SIMP(statut='f',typ=(fonction) ),
- FLUX_X =SIMP(statut='f',typ=(fonction) ),
- FLUX_Y =SIMP(statut='f',typ=(fonction) ),
- FLUX_Z =SIMP(statut='f',typ=(fonction) ),
- ),
- FLUX_NL =FACT(statut='f',min=01,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='**'),
- FLUN =SIMP(statut='o',typ=(fonction) ),
- ),
- ECHANGE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',),
- AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
- ENSEMBLE('COEF_H','TEMP_EXT'),
- ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
- ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- COEF_H =SIMP(statut='f',typ=(fonction) ),
- TEMP_EXT =SIMP(statut='f',typ=(fonction) ),
- COEF_H_INF =SIMP(statut='f',typ=(fonction) ),
- TEMP_EXT_INF =SIMP(statut='f',typ=(fonction) ),
- COEF_H_SUP =SIMP(statut='f',typ=(fonction) ),
- TEMP_EXT_SUP =SIMP(statut='f',typ=(fonction) ),
- ),
- 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='o',typ=(fonction) ),
- TRAN =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- CENTRE =SIMP(statut='f',typ='R',max='**'),
- ),
- GRAD_TEMP_INIT =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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_GROUP =FACT(statut='f',min=01,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_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='**'),
- DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP") ),
- COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ=(fonction) ),
- SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- TRAN =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- CENTRE =SIMP(statut='f',typ='R',max='**'),
- ),
- CONVECTION =FACT(statut='f',min=01,max='**',
- VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ),
- ),
- RAYONNEMENT =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
- ENSEMBLE('SIGMA','EPSILON','TEMP_EXT'),),
- 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) ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 24/09/97 AUTEUR CIBHHLV L.VIVAN
-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',
- MAILLAGE =SIMP(statut='o',typ=maillage),
- MODELE =SIMP(statut='f',typ=modele),
- AFFE =FACT(statut='o',min=01,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='**'),
- 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 26/09/2000 AUTEUR CIBHHLV L.VIVAN
-AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-F",
- 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) ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
- VERIF =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ),
- AFFE_SOUS_STRUC =FACT(statut='f',min=01,max=01,
- 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='**',
- 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='**'),
- 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","NON_LOCAL") ),
- 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_FLUI_PESA",
- "2D_FLUI_STRU",
- "2D_FLUIDE",
- "3D",
- "3D_ABSO",
- "3D_CONTACT",
- "3D_FAISCEAU",
- "3D_FLUI_ABSO",
- "3D_FLUIDE",
- "3D_HHM" ,
- "3D_HM",
- "3D_INCO",
- "3D_JOINT_CT",
- "3D_SI",
- "3D_THH",
- "3D_THHM",
- "3D_THM",
- "APPUI_REP",
- "ASSE_GRIL",
- "AXIS",
- "AXIS_FLUI_STRU",
- "AXIS_FLUIDE",
- "AXIS_FOURIER",
- "AXIS_HHM",
- "AXIS_HM",
- "AXIS_INCO",
- "AXIS_SI",
- "AXIS_THH",
- "AXIS_THHM",
- "AXIS_THM",
- "BARRE",
- "C_PLAN",
- "CABLE",
- "CABLE_POULIE",
- "COQUE_3D",
- "COQUE_AXIS",
- "COQUE_C_PLAN",
- "COQUE_D_PLAN",
- "D_PLAN",
- "D_PLAN_ABSO",
- "D_PLAN_HHM",
- "D_PLAN_HM",
- "D_PLAN_SI",
- "D_PLAN_THH",
- "D_PLAN_THHM",
- "D_PLAN_THM",
- "DIS_T",
- "DIS_TR",
- "DKT",
- "DST",
- "FLUI_STRU",
- "GRILLE",
- "PLAN_INCO",
- "POU_C_T",
- "POU_D_E",
- "POU_D_T",
- "POU_D_T_GD",
- "POU_D_TG",
- "Q4G",
- "TUYAU",
- "TUYAU_6M"
- ) ) ),
-
- b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'",
- fr="modelisations thermiques",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "3D_DIAG",
- "AXIS",
- "AXIS_DIAG",
- "AXIS_FOURIER",
- "COQUE",
- "COQUE_AXIS",
- "COQUE_PLAN",
- "PLAN",
- "PLAN_DIAG",
- ),),),
-
- b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
- fr="modelisations acoustiques",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "PLAN"
- ), ),),
-
- b_non_local =BLOC( condition = "PHENOMENE=='NON_LOCAL'",
- fr="modelisations non locales",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "AXIS",
- "C_PLAN",
- "D_PLAN",
- ) ), ),
- ),
-) ;
-#& MODIF COMMANDE DATE 25/10/93 AUTEUR VABHHTS J.PELLET
-AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-F",
- fr="Interrogation sur le catalogue des commandes et les concepts produits",
- regles=(AU_MOINS_UN('COMMANDE','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,
- INITEL =SIMP(statut='f',typ='TXM',defaut="NON",
- into=("OUI","NON",) ),
- ),
- COMMANDE =FACT(statut='f',min=01,max='**',
- NOM =SIMP(fr="liste des noms de commande",
- statut='f',typ='TXM',max='**',defaut="*"),
- OPTION =SIMP(fr="option d'édition de commande",
- statut='f',typ='TXM',defaut="CATALOGUE",
- into=("CATALOGUE","A_REMPLIR","NUMERO",) ),
- ),
- CONCEPT =FACT(statut='f',min=01,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 18/03/92 AUTEUR INCONNU INCONNU
-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',
- MAILLAGE =SIMP(statut='o',typ=maillage,min=02,max=02 ),
-) ;
-#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN
-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',
- 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 02/10/96 AUTEUR CIBHHLV L.VIVAN
-def asse_matrice_prod(MATR_ELEM,**args):
- if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
- if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
- if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
- if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
- raise AsException("type de concept resultat non prevu")
-
-ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
- fr="Construction d une matrice assemblée",docu="U4.61.22-F",reentrant='n',
- 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 30/06/93 AUTEUR T8BHHTK T.KERBER
-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',
- NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ),
- CHAR_SOUS_STRUC =FACT(statut='o',min=01,max='**',
- SOUS_STRUC =SIMP(statut='o',typ='TXM' ),
- VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ),
- ),
-) ;
-#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN
-def asse_vecteur_prod(VECT_ELEM,**args):
- if AsType(VECT_ELEM) == vect_elem_depl_r : return cham_no_depl_r
- if AsType(VECT_ELEM) == vect_elem_temp_r : return cham_no_temp_r
- if AsType(VECT_ELEM) == vect_elem_pres_r : return cham_no_pres_r
- if AsType(VECT_ELEM) == vect_elem_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu : %s" %`AsType(VECT_ELEM)`)
-
-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',
- 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 28/09/98 AUTEUR ACBHHCD G.DEVESA
-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,
- regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
- PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'),
-# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ')
- PRESENT_PRESENT('KRX','KRY'),
- PRESENT_PRESENT('KRX','KRZ'),
- PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
- PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
- PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
- METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- GROUP_NO_RADIER =SIMP(statut='f',typ=grno,max='**'),
- GROUP_MA_RADIER =SIMP(statut='f',typ=grma,max='**'),
- FONC_GROUP =SIMP(statut='f',typ=fonction ),
- COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
- KX =SIMP(statut='o',typ='R' ),
- KY =SIMP(statut='o',typ='R' ),
- KZ =SIMP(statut='o',typ='R' ),
- KRX =SIMP(statut='f',typ='R' ),
- KRY =SIMP(statut='f',typ='R' ),
- KRZ =SIMP(statut='f',typ='R' ),
- GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
- NOEUD_CENTRE =SIMP(statut='f',typ=no),
- COOR_CENTRE =SIMP(statut='f',typ='R',max=03),
- ),
- AMOR_INTERNE =FACT(statut='o',min=01,max=01,
- 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_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 29/08/2000 AUTEUR ADBHHPM P.MASSIN
-def calc_cham_elem_prod(OPTION,**args):
- if OPTION == "EQUI_ELGA_SIGM" : return cham_elem_sief_r
- if OPTION == "EQUI_ELNO_SIGM" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_DEPL" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_LAGR" : return cham_elem_sief_r
- if OPTION == "SIPO_ELNO_DEPL" : return cham_elem_sief_r
- if OPTION == "SIEF_ELGA_DEPL" : return cham_elem_sief_r
- if OPTION == "SIEF_ELGA_LAGR" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_CART" : return cham_elem_sief_r
- if OPTION == "EFGE_ELNO_CART" : return cham_elem_sief_r
- if OPTION == "EFGE_ELNO_DEPL" : return cham_elem_sief_r
- if OPTION == "EQUI_ELGA_EPSI" : return cham_elem_epsi_r
- if OPTION == "EQUI_ELNO_EPSI" : return cham_elem_epsi_r
- if OPTION == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r
- if OPTION == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r
- if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r
- if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_r
- if OPTION == "SOUR_ELGA_ELEC" : return cham_elem_sour_r
- if OPTION == "ENEL_ELGA" : return cham_elem_ener_r
- if OPTION == "ENEL_ELNO_ELGA" : return cham_elem_ener_r
- if OPTION == "EPOT_ELEM_DEPL" : return cham_elem_ener_r
- if OPTION == "ECIN_ELEM_DEPL" : return cham_elem_ener_r
- if OPTION == "PRES_ELNO_DBEL" : return cham_elem_dbel_r
- if OPTION == "PRES_ELNO_REEL" : return cham_elem_pres_r
- if OPTION == "PRES_ELNO_IMAG" : return cham_elem_pres_r
- if OPTION == "PRES_DBEL_DEPL" : return cham_elem_dbel_r
- if OPTION == "ENDO_ELNO_SIGM" : return cham_elem_sief_r
- if OPTION == "COOR_ELGA" : return cham_elem_geom_r
- raise AsException("type de concept resultat non prevu")
-
-CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
- fr="Calcul de champs par éléments (contraintes, déformations ou flux) à partir de champs solution (déplacement ou température) ou de champs par éléments",
- docu="U4.81.03-F",reentrant='n',
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
-
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
-
-#
-#
-# introduire un mot cle de type modelisation : mécanique,thermique,...
-#
-
- OPTION =SIMP(statut='o',typ='TXM',
- into=("DEGE_ELNO_DEPL","EFGE_ELNO_DEPL","EPOT_ELEM_DEPL",
- "EPSI_ELNO_DEPL","PRES_DBEL_DEPL","SIGM_ELNO_DEPL",
- "SIEF_ELGA_DEPL","SIEF_ELGA_LAGR","SIGM_ELNO_LAGR",
- "EFGE_ELNO_CART","ENDO_ELNO_SIGM","EQUI_ELGA_EPSI",
- "EQUI_ELGA_SIGM","EQUI_ELNO_EPSI","EQUI_ELNO_SIGM",
- "SIGM_ELNO_CART","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL",
- "FLUX_ELNO_TEMP","FLUX_ELGA_TEMP","SOUR_ELGA_ELEC",
- "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
- "COOR_ELGA","ENEL_ELGA","ENEL_ELNO_ELGA"), ),
- DEPL =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c)),
- PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0),
- CHAM_ELEM =SIMP(statut='f',typ=(cham_elem_sief_r,cham_elem_epsi_r) ),
- FREQ =SIMP(statut='f',typ='R'),
- VITE =SIMP(statut='f',typ=cham_no_depl_r),
- EXCIT =FACT(statut='f',min=01,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),
- COEF_MULT =SIMP(statut='f',typ='R'),
- ),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0),
- ACCE =SIMP(statut='f',typ=cham_no_depl_r),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1),
- NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
-
- TEMP =SIMP(statut='f',typ=(cham_no_temp_r) ),
-
- PRES =SIMP(statut='f',typ=(cham_no_pres_c) ),
-
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- ANGLE =SIMP(statut='f',typ='I',defaut= 0),
- PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",
- into=("SUP","INF","MOY","MAIL"), ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-def calc_char_cine_prod(CHAR_CINE,**args):
- if AsType(CHAR_CINE) == char_cine_meca : return cham_no_depl_r
- if AsType(CHAR_CINE) == char_cine_ther : return cham_no_temp_r
- if AsType(CHAR_CINE) == char_cine_acou : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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 08/03/94 AUTEUR VABHHT2 G.BERTRAND
-def calc_char_seisme_prod(MATR_MASS,**args ):
- if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod,
- fr="Calcul du chargement sismique (forces d inertie fictives) pour une étude ultérieure de la réponse en mouvement relatif par rapport aux appuis",
- docu="U4.63.01-E",reentrant='n',
- 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é"),
- MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MODE_STAT =SIMP(statut='f',typ=mode_stat ),
- b_mode_stat =BLOC ( condition = "MODE_STAT != None",
- regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
- 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 29/08/2000 AUTEUR ADBHHPM P.MASSIN
-def calc_elem_prod(RESULTAT,**args):
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == dyna_trans : return dyna_trans
- if AsType(RESULTAT) == dyna_harmo : return dyna_harmo
- if AsType(RESULTAT) == acou_harmo : return acou_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- if AsType(RESULTAT) == mode_flamb : return mode_flamb
- if AsType(RESULTAT) == mode_acou : return mode_acou
- if AsType(RESULTAT) == mode_stat : return mode_stat
- if AsType(RESULTAT) == mult_elas : return mult_elas
- if AsType(RESULTAT) == fourier_elas : return fourier_elas
- if AsType(RESULTAT) == base_modale : return base_modale
- 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-F",reentrant='f',
- 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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
-
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
-
- 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',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',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',max='**',
- into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
- "SIGM_ELNO_TUYO","SIGM_ELNO_CART","DEGE_ELNO_DEPL","EFGE_ELNO_CART",
- "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","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL",
- "EPGR_ELNO","EPGR_ELGA","DURT_ELGA_META","DURT_ELNO_META",
- "SIGM_ELNO_COQU","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",
- "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2",
- "VNOR_ELEM_DEPL","SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA",
- "VARI_ELNO_ELGA","VARI_ELNO_TUYO","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
- "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
- "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
- "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","ENEL_ELGA","ENEL_ELNO_ELGA","SIEF_ELNO_ELGA",
- "DEUL_ELGA_TEMP","DETE_ELNO_DLTE","DEUL_ELGA_DEPL","DEDE_ELNO_DLDE",
- "DLSI_ELGA_DEPL","DESI_ELNO_DLSI","PMPB_ELNO_SIEF","PMPB_ELGA_SIEF",
- "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
- "SOUR_ELGA_ELEC",
- "PRES_ELNO_DBEL","PRES_DBEL_DEPL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
- "INTE_ELNO_ACTI","INTE_ELNO_REAC",
- ) ),
- RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
- mode_stat,evol_noli,mult_elas,fourier_elas,
- evol_ther,base_modale,
- acou_harmo,mode_acou,mode_flamb) ),
- EXCIT =FACT(statut='f',min=01,max='**',
- regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
- CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- FONC_MULT_C =SIMP(statut='f',typ=fonction_c),
- COEF_MULT =SIMP(statut='f',typ='R'),
- COEF_MULT_C =SIMP(statut='f',typ='C'),
- PHAS_DEG =SIMP(statut='f',typ='R'),
- PUIS_PULS =SIMP(statut='f',typ='I'),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- ),
- NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
- into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 ),
- 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 =FACT(statut='f',min=01,max=01,
- THETA =SIMP(statut='f',typ=(theta_geom) ),
- ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- EFGE_REPERE =FACT(statut='f',min=01,max=01,
- regles=(UN_PARMI('ANGL_REP','VECT_X_Y','VECT_X_Z'),),
- ANGL_REP =SIMP(statut='f',typ='R',max='**'),
- VECT_X_Y =SIMP(statut='f',typ='R',max='**'),
- VECT_X_Z =SIMP(statut='f',typ='R',max='**'),
- ),
-
- TEMP_INIT =FACT(statut='f',min=01,max='**',
- regles=(EXCLUS('META_INIT','EVOL_THER'),),
- META_INIT =SIMP(statut='f',typ=carte_meta_r),
- EVOL_THER =SIMP(statut='f',typ=evol_ther,),
- NUME_INIT =SIMP(statut='f',typ='I'),
- ),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHLV L.VIVAN
-CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=cham_elem_dommag,reentrant='n',
- fr="Calcul d un champ de dommage subi par une structure",
- docu="U4.83.02-C",
- regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
- OPTION =SIMP(statut='o',typ='TXM',
- into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
- "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
- "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
- HISTOIRE =FACT(statut='o',min=01,max=01,
- RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ),
- EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",into=("VMIS_SG","INVA_2_SG") ),
- ),
- DOMMAGE =SIMP(statut='o',typ='TXM',
- into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON","TAHERI_MIXTE",) ),
- MATER =SIMP(statut='o',typ=(mater) ),
- TAHERI_NAPPE =SIMP(statut='f',typ=(fonction) ),
- TAHERI_FONC =SIMP(statut='f',typ=(fonction) ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHAB N.RAHNI
-CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu,
- fr="Calcul des paramètres modaux d une structure soumise à un écoulement, en prenant en compte les forces fluidélastiques",
- docu="U4.66.02-C",reentrant='n',
- VITE_FLUI =FACT(statut='o',min=01,max=01,
- 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,
-
- regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- 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,
- 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 11/02/98 AUTEUR CIBHHLV L.VIVAN
-CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
- fr="Construire un concept de type fonction à partir d une fonction réelle de la variable réelle définie par une FORMULE",
- docu="U4.32.01-D",reentrant='f',
- regles=(UN_PARMI('VALE_R','LIST_PARA'),),
- FONCTION =SIMP(statut='o',typ=fonction ),
- NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE_R =SIMP(statut='f',typ='R',max='**'),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG","INT") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-) ;
-#& MODIF COMMANDE DATE 20/06/2000 AUTEUR ACBHHCD G.DEVESA
-def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,RMS,MAX,COMB,COMB_C,ENVELOPPE,SPEC_OSCI,FFT,COMPOSE,**args):
- if (RMS != None) : return tabl_fonc_rms
- if (MAX != None) : return tabl_fonc_max
- if (INTEGRE != None) : return fonction
- if (DERIVE != 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 (FFT != None) :
- vale=FFT.get_child('FONCTION').get_valeur()
- if (AsType(vale) == fonction ) : return fonction_c
- if (AsType(vale) == fonction_c) : return fonction
- 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-E",reentrant='n',
- regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','ENVELOPPE','RMS',
- 'COMB_C','COMPOSE','EXTRACTION','ASSE','FFT' ),),
- FFT =FACT(statut='f',min=01,max=01,fr="Calcul de la transformee de Fourier ou de son inverse",
- FONCTION =SIMP(statut='o',typ=(fonction,fonction_c) )
- ),
- DERIVE =FACT(statut='f',min=01,max=01,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 ),
- ),
- INTEGRE =FACT(statut='f',min=01,max=01,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),
- COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
- ),
- RMS =FACT(statut='f',min=01,max=01,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 ),
- INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
- INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
- b_inst =BLOC ( condition = "(INST_INIT != None) or (INST_FIN != None)",
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
- SPEC_OSCI =FACT(statut='f',min=01,max=01,fr="Calcul du spectre d oscillateur",
- METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ),
- FONCTION =SIMP(statut='o',typ=fonction ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- NORME =SIMP(statut='f',typ='R',defaut= 9.81,fr="Valeur de la norme du spectre d oscillateur" ),
- NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
- NATURE_FONC =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
- ),
- MAX =FACT(statut='f',min=01,max=01,fr="Calcul des extrémas locaux d une fonction",
- FONCTION =SIMP(statut='o',typ=fonction ),
- ),
- COMB =FACT(statut='f',min=01,max='**',fr="Calcul d une combinaison linéaire réelle de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction ),
- COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
- ),
- COMB_C =FACT(statut='f',min=01,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) ),
- COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
- COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
- ),
- b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)",
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- ),
- COMPOSE =FACT(statut='f',min=01,max=01,fr="Calcul de la composition de deux fonctions FONC_RESU(FONC_PARA)",
- FONC_RESU =SIMP(statut='o',typ=fonction),
- FONC_PARA =SIMP(statut='o',typ=fonction),
- ),
- EXTRACTION =FACT(statut='f',min=01,max=01,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',min=01,max=01,fr="Calcul de l enveloppe d une famille de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
- ),
- ASSE =FACT(statut='f',min=01,max=01,fr="Création à partir de la concatenation de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
- ),
- NOM_PARA =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS",
- "AMOR","ABSC") ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS",
- "AMOR","ABSC") ),
- INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
- PROL_DROIT_FONC =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET
-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-E",reentrant='n',
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- FOND =SIMP(statut='o',typ=fond_fiss),
- regles=(UN_PARMI('RESULTAT','DEPL'),
- UN_PARMI('R_INF','R_INF_FO'),
- PRESENT_PRESENT('R_INF','R_SUP'),
- PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
-
- DEPL =SIMP(statut='f',typ=cham_no_depl_r),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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") ),
- ),
- ),
-
- 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,
- RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
- into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
-
- COMP_INCR =FACT(statut='f',min=01,max=01,
- RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
- into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_CINE_LINE =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
-
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- 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_LGLO") ),
- b_g_lglo =BLOC(condition="OPTION=='CALC_G_LGLO'",
- PROPAGATION =SIMP(statut='o',typ='R'),
- THETA =SIMP(statut='o',typ=theta_geom),
- DIRE_THETA =SIMP(statut='f',typ=cham_no_depl_r),
- ),
-
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ),
-
- DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
-
- R_INF =SIMP(statut='f',typ='R'),
- R_SUP =SIMP(statut='f',typ='R'),
- R_INF_FO =SIMP(statut='f',typ=fonction),
- R_SUP_FO =SIMP(statut='f',typ=fonction),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET
-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-E",reentrant='n',
- regles=(UN_PARMI('RESULTAT','DEPL'),
- EXCLUS('COMP_ELAS','COMP_INCR'),),
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- THETA =SIMP(statut='o',typ=theta_geom),
- DEPL =SIMP(statut='f',typ=cham_no_depl_r),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),),
-
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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") ),
- ),
- ),
-
- 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,
- RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
- into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- COMP_INCR =FACT(statut='f',min=01,max=01,
- RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
- into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_CINE_LINE =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- 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") ),
- b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'",
- BORNES =FACT(statut='o',min=01,max='**',
- NUME_ORDRE =SIMP(statut='o',typ='I'),
- VALE_MIN =SIMP(statut='o',typ='R'),
- VALE_MAX =SIMP(statut='o',typ='R'),
- ),
- ),
- b_calc_k_g =BLOC(condition="OPTION=='CALC_K_G'",
- FOND =SIMP(statut='o',typ=fond_fiss),
- ),
- b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'",
- PROPAGATION =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 04/02/98 AUTEUR CIBHHLV L.VIVAN
-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',
- INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- INST_FIN =SIMP(statut='o',typ='R' ),
- DUREE_ANALYSE =SIMP(statut='f',typ='R' ),
- DUREE_DECALAGE =SIMP(statut='f',typ='R' ),
- NB_POIN =SIMP(statut='o',typ='I' ),
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE
-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',
- regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
- PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
- PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),),
- MODELE_FLUIDE =SIMP(statut='o',typ=modele ),
- MODELE_INTERFACE=SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='o',typ=char_ther ),
- MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ),
- MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
- NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ),
- DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NUME_MODE_MECA =SIMP(statut='f',typ='I',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',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET
-def calc_matr_elem_prod(OPTION,**args):
- if OPTION == "RIGI_MECA" : return matr_elem_depl_r
- if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r
- if OPTION == "RIGI_MECA_LAGR" : return matr_elem_depl_r
- if OPTION == "MASS_MECA" : return matr_elem_depl_r
- if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r
- if OPTION == "RIGI_GEOM" : return matr_elem_depl_r
- if OPTION == "RIGI_ROTA" : return matr_elem_depl_r
- if OPTION == "AMOR_MECA" : return matr_elem_depl_r
- if OPTION == "IMPE_MECA" : return matr_elem_depl_r
- if OPTION == "ONDE_FLUI" : return matr_elem_depl_r
- if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c
- if OPTION == "RIGI_THER" : return matr_elem_temp_r
- if OPTION == "MASS_THER" : return matr_elem_temp_r
- if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r
- if OPTION == "RIGI_ACOU" : return matr_elem_pres_c
- if OPTION == "MASS_ACOU" : return matr_elem_pres_c
- if OPTION == "AMOR_ACOU" : return matr_elem_pres_c
- raise AsException("type de concept resultat non prevu")
-
-CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod
- ,fr="Calcul des matrices élémentaires",docu="U4.61.01-F",reentrant='n',
- OPTION =SIMP(statut='o',typ='TXM',
- into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
- "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
- "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU",
- "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU",
- "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST",
- "RIGI_MECA_LAGR") ),
-
- b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
- regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- CHARGE =SIMP(statut='f',typ=char_meca,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,max='**' ),
- b_charge =BLOC(condition = "CHARGE != None",
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- THETA =SIMP(statut='o',typ=theta_geom ),
- PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-
- b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
- regles=(AU_MOINS_UN('MODELE','CHARGE'),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
- CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
- b_charge =BLOC(condition = "CHARGE != None",
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ),
-
- b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'",
- MODELE =SIMP(statut='o',typ=modele ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 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,max='**' ),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-
- b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'",
- regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
- ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
- MODELE =SIMP(statut='o',typ=modele ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
- MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
- CHARGE =SIMP(statut='f',typ=char_meca ,max='**' ),
- ),
-
- b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
- MODELE =SIMP(statut='o',typ=modele ),
- CHARGE =SIMP(statut='o',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 ),
- ),
-
- b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'",
- regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- CHARGE =SIMP(statut='f',typ=char_ther,max='**' ),
- ),
-
- b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'",
- MODELE =SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
-
- 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 ,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 ,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,max='**' ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- ),
-
- b_rigi_conv =BLOC( condition = "(OPTION=='RIGI_THER_CONV') or (OPTION=='RIGI_THER_CONV_D')",
- MODELE =SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='o',typ=char_ther,max='**' ),
- ),
-
-) ;
-#& MODIF COMMANDE DATE 04/07/2000 AUTEUR JMBHH01 J.M.PROIX
-CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,docu="U4.85.01-A",reentrant='o',
- fr="Calcule la métallurgie à 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',),),
- 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',min=01,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,) ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma),
- MAILLE =SIMP(statut='f',typ=ma),
- ),
- OPTION =SIMP(statut='f',typ='TXM'
- ,into=("META_ELNO_TEMP",) ),
-) ;
-#& MODIF COMMANDE DATE 12/05/2000 AUTEUR CIBHHAB N.RAHNI
-def calc_no_prod(RESULTAT,**args):
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == mode_meca : return mode_meca
- if AsType(RESULTAT) == mode_stat : return mode_stat
- if AsType(RESULTAT) == mode_acou : return mode_acou
- if AsType(RESULTAT) == mult_elas : return mult_elas
- if AsType(RESULTAT) == dyna_trans : return dyna_trans
- if AsType(RESULTAT) == dyna_harmo : return dyna_harmo
- if AsType(RESULTAT) == acou_harmo : return acou_harmo
- if AsType(RESULTAT) == fourier_elas : return fourier_elas
- if AsType(RESULTAT) == mode_flamb : return mode_flamb
- if AsType(RESULTAT) == base_modale : return base_modale
- 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-E",reentrant='o',
- fr="Compléter un résultat en calculant un champ aux noeuds (forces nodales à partir d un champ de contraintes aux points de GAUSS)",
- RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
- mode_acou,mode_stat,evol_ther,evol_noli,base_modale,
- mult_elas,fourier_elas,mode_flamb ) ),
-
- MODELE =SIMP(statut='f',typ=modele),
- 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',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',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',max='**'),
-
- CHAM_MATER =SIMP(statut='f',typ=cham_mater),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- GEOMETRIE =SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE") ),
- EXCIT =FACT(statut='f',min=01,max='**',
- CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- TAILLE_BLOC =SIMP(statut='f',typ='R' ,defaut= 400. ),
-) ;
-#& MODIF COMMANDE DATE 20/10/1999 AUTEUR DURAND C.DURAND
-CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-D",reentrant='n',
- fr="Affectation d un champ sur le maillage (mécanique de la rupture)",
- regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
- PRESENT_PRESENT('THETA_3D','FOND_3D'),
- PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
- EXCLUS('DIRECTION','DIRE_THETA'),),
- OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
- MODELE =SIMP(statut='o',typ=(modele) ),
- FOND_3D =SIMP(statut='f',typ=(fond_fiss) ),
- THETA_3D =FACT(statut='f',min=01,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,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'),
- MODULE_FO =SIMP(statut='f',typ=fonction),
- R_INF_FO =SIMP(statut='f',typ=fonction),
- R_SUP_FO =SIMP(statut='f',typ=fonction),
- ),
- 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='**',
- regles=(UN_PARMI('GROUP_NO','NOEUD'),),
- 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',min=01,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,
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
- ),
-) ;
-#& MODIF COMMANDE DATE 11/01/99 AUTEUR VABHHTS J.PELLET
-def calc_vect_elem_prod(OPTION,**args):
- if OPTION == "CHAR_MECA" : return vect_elem_depl_r
- if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r
- if OPTION == "CHAR_THER" : return vect_elem_temp_r
- if OPTION == "CHAR_ACOU" : return vect_elem_pres_c
- if OPTION == "FORC_NODA" : return vect_elem_depl_r
- raise AsException("type de concept resultat non prevu")
-
-CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,docu="U4.61.02-F",reentrant='n',
- fr="Calcul des seconds membres élémentaires",
- OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU",
- "FORC_NODA","CHAR_MECA_LAGR") ),
- b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'",
- regles=(AU_MOINS_UN('CHARGE','MODELE'),),
- CHARGE =SIMP(statut='f',typ=char_meca,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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
- SOUS_STRUC =FACT(statut='o',min=01,
- regles=(UN_PARMI('TOUT','MAILLE'),),
- CAS_CHARGE =SIMP(statut='o',typ='TXM' ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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,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,max='**'),
- ),
-
- b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'",
- SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- MODELE =SIMP(statut='f',typ=modele),
- ),
-
- b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'",
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- THETA =SIMP(statut='o',typ=theta_geom),
- PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& MODIF COMMANDE DATE 31/10/2000 AUTEUR VABHHTS J.PELLET
-def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args):
-
- if COMB_R != None:
- vale=COMB_R.get_child('CHAM_ELEM').get_valeur()
- elif COMB_C != None:
- vale=COMB_C.get_child('CHAM_ELEM').get_valeur()
- elif COMB_FOURIER != None:
- vale=COMB_FOURIER.get_child('CHAM_ELEM').get_valeur()
- else :
- raise AsException("type de concept resultat non prevu")
-
- if AsType(vale) == cham_elem_sief_r : return cham_elem_sief_r
- if AsType(vale) == cham_elem_flux_r : return cham_elem_flux_r
- if AsType(vale) == cham_elem_epsi_r : return cham_elem_epsi_r
- if AsType(vale) == cham_elem_ener_r : return cham_elem_ener_r
- if AsType(vale) == cham_elem_crit_r : return cham_elem_crit_r
- if AsType(vale) == cham_elem_dbel_r : return cham_elem_dbel_r
- if AsType(vale) == cham_elem_pres_r : return cham_elem_pres_r
- if AsType(vale) == cham_elem_sief_c : return cham_elem_sief_c
- raise AsException("type de concept resultat non prevu")
-
-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",
- regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),
- PRESENT_PRESENT('COMB_FOURIER','ANGL'),),
- COMB_R =FACT(statut='f',min=01,max='**',
- PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
- COEF_R =SIMP(statut='o',typ='R'),
- CHAM_ELEM =SIMP(statut='o',
- typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r,
- 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='**',
- 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='**',
- 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") ),
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r ) ),
- ),
- ANGL =SIMP(statut='f',typ='R' ),
-) ;
-
-#& MODIF COMMANDE DATE 08/03/94 AUTEUR VABHHT2 G.BERTRAND
-def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args):
- if COMB_C != None:
- type_mat = AsType(COMB_C.get_child('CHAM_NO').get_valeur())
- if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_c
- if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_c
- if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_c
- elif COMB_R != None:
- type_mat = AsType(COMB_R.get_child('CHAM_NO').get_valeur())
- if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_r
- if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_r
- if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_r
- if type_mat == matr_asse_gene_r : return matr_asse_gene_r
- elif COMB_FOURIER != None:
- type_mat = AsType(COMB_FOURIER.get_child('CHAM_NO').get_valeur())
- if type_mat == cham_no_temp_r : return cham_no_temp_r
- if type_mat == cham_no_depl_r : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-
-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',
- regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),),
- COMB_R =FACT(statut='f',min=01,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='**',
- 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='**',
- 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' ),
- TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
- ),
- b_angl = BLOC ( condition = "COMB_FOURIER != None",
- ANGL =SIMP(statut='o',typ='R' ),
- ),
-) ;
-#& MODIF COMMANDE DATE 08/11/95 AUTEUR CIBHHLV L.VIVAN
-COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
- fr="Recombinaison de FOURIER de tous les modes se trouvant dans la structure de données de type resultat dans une ou des directions particulières",
- docu="U4.83.31-C",reentrant='n',
- RESULTAT =SIMP(statut='o',typ=fourier_elas ),
- ANGL =SIMP(statut='o',typ='R',max='**'),
- NOM_CHAM =SIMP(statut='o',typ='TXM',max=05,
- into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ),
-) ;
-#& MODIF COMMANDE DATE 06/10/94 AUTEUR BIBERON G.ROUSSEAU
-def comb_matr_asse_prod(COMB_R,COMB_C,**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_c
- if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
- if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c
- elif COMB_R != None:
- type_mat = AsType(COMB_R.get_child('MATR_ASSE').get_valeur())
- if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
- if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
- if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
- if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
- 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-F",reentrant='f',
- regles=(UN_PARMI('COMB_R','COMB_C' ),),
- COMB_R =FACT(statut='f',min=01,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='**',
- 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' ),
- ),
- SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHAB N.RAHNI
-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-D",reentrant='n',
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'),
- UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ACCE_UNIF =SIMP(statut='f',typ=mode_stat ),
-
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
-
- 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='**',
- 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,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- AXE =SIMP(statut='f',fr="Excitation suivant un seul axe",
- typ='R',max=03),
- TRI_AXE =SIMP(statut='f',fr="Excitation suivant les trois axes mais avec le meme spectre",
- typ='R',max=03),
- 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),
- ),
- 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),
- ),
- 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),
- ),
- NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
- ),
- COMB_MODE =FACT(statut='o',min=01,max=01,
- 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,
- TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
- ),
- COMB_MULT_APPUI =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TYPE =SIMP(statut='o',typ='TXM',into=("QUAD","LINE","ABS") ),
- ),
- DEPL_MULT_APPUI =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO'),
- AU_MOINS_UN('DX','DY','DZ' ),),
- MODE_STAT =SIMP(statut='f',typ=mode_stat ),
- NOEUD_REFE =SIMP(statut='f',typ=no),
- 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',max=10,
- 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',min=01,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 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 04/12/2000 AUTEUR VABHHTS J.PELLET
-def crea_champ_prod(TYPE_CHAM,**args):
- 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
- 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-A",reentrant='n',
- regles=(EXCLUS('NUME_DDL','CHAM_NO',),ENSEMBLE('CHAM_F','CHAM_PARA',),
- EXCLUS('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'NOEUD_CMP','NOM_CAS','ANGL', ),),
- 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",) ),
- OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ),
- MODELE =SIMP(statut='f',typ=(modele) ),
- MAILLAGE =SIMP(statut='f',typ=(maillage) ),
- PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- AFFE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('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_R =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='**'),
- FONCTION =SIMP(statut='f',typ=fonction),
- ),
- NUME_DDL =SIMP(statut='f',typ=(nume_ddl) ),
- CHAM_NO =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r,
- cham_no_depl_f,cham_no_sief_r ) ),
- ASSE =FACT(statut='f',min=01,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='**'),
- 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='f',typ=(cham_elem,cham_no,carte)),
- 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. ),
- ),
- CHAM_F =SIMP(statut='f',typ=(cham_elem,cham_no,carte)),
- CHAM_PARA =SIMP(statut='f',typ=(cham_elem,cham_no,carte),max='**'),
- CHAM_GD =SIMP(statut='f',typ=(cham_elem,cham_no,carte)),
- RESULTAT =SIMP(statut='f',typ=resultat ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',
- into=("DEPL","VITE","ACCE","GEOMETRIE",
- "DEPL_ABSOLU","VITE_ABSOLU","TEMP","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",
- "THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",) ),
- 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),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
- INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 30/11/1999 AUTEUR JMBHH01 J.M.PROIX
-CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage
- ,fr="Définition d'un nouveau maillage à partir d'un maillage existant en dupliquant des groupes de mailles (le nombre de mailles du maillage peut être augmenté)",
- docu="U4.23.02-C",reentrant='n',
- 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",
- 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_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',min=01,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='**'),
- 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',min=01,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,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',min=01,max=01,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 être détruit", ),
- ),
- MODI_MAILLE =FACT(statut='f',min=01,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='**'),
- 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 ),
- ),
- REPERE =FACT(statut='f',min=01,max='**',fr="Réalisation d un 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" ),
- NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
- NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ),
- b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
- GROUP_MA =SIMP(statut='f',typ=grma,fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
- ),
- ),
- ECLA_PG =FACT(statut='f',min=01,max=01,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 21/06/2000 AUTEUR CIBHHLV L.VIVAN
-def crea_resu_prod(TYPE_RESU,**args):
- if TYPE_RESU == "EVOL_ELAS" : return evol_elas
- if TYPE_RESU == "EVOL_NOLI" : return evol_noli
- if TYPE_RESU == "EVOL_THER" : return evol_ther
- if TYPE_RESU == "MULT_ELAS" : return mult_elas
- if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
- raise AsException("type de concept resultat non prevu")
-
-# commentaire C. DURAND : J'ai supprimé tous les blocs.
-# Ce qui avait été fait était faux (plantage EFICAS de nombreux tests et ingérable)
-# il faudra réfléchir à la manière de les réintroduire proprement
-CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-D",reentrant='f',
- fr="Engendrer ou enrichir une structure de données de type evol_ther en affectant les cham_no associés",
- regles=(EXCLUS('CHAM_GD','ECLA_PG','PERM_CHAMP',),),
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","FOURIER_ELAS","MULT_ELAS",
- "EVOL_ELAS","EVOL_NOLI") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","TEMP","SIEF_ELGA","VARI_ELGA",),max='**' ),
- CHAM_GD =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOM_CAS','NUME_MODE','LIST_INST','INST',),),
- CHAM_NO =SIMP(statut='o',typ=(cham_no)),
- NUME_ORDRE_INIT =SIMP(statut='f',typ='I'),
- 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',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- NUME_INIT =SIMP(statut='f',typ='I'),
- NUME_FIN =SIMP(statut='f',typ='I'),
- ),
-
- ECLA_PG =FACT(statut='f',min=01,max=01,
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),),
- MODELE_INIT =SIMP(statut='o',typ=modele),
- RESU_INIT =SIMP(statut='o',typ=resultat),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
- into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- 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",) ),
- ),
-
-
- RESU_INIT =SIMP(statut='f',typ=evol_noli),
- INST_INIT =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'),
- MAILLAGE_INIT =SIMP(statut='f',typ=maillage,),
- RESU_FINAL =SIMP(statut='f',typ=evol_noli,),
- MAILLAGE_FINAL =SIMP(statut='f',typ=maillage,),
- PERM_CHAMP =FACT(statut='f',min=01,max=01,
- GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
- GROUP_MA_INIT =SIMP(statut='o',typ=grma),
- TRAN =SIMP(statut='o',typ='R',max='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- )
-) ;
-#& AJOUT COMMANDE
-DEBUT=PROC(nom="DEBUT",op=0 ,docu="U4.11.01-F",repetable='n',
- fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
-
- PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM'),
- BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX",
- statut='f',min=01,max=03,
- FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM',
- into=('GLOBALE','VOLATILE','LOCALE'),),
- TITRE =SIMP(statut='f',typ='TXM'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=01,max=03,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=01,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- CODE =FACT("définition d un nom pour l'esemble d'une étude",
- statut='f',min=01,max=01,
- NOM =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=01,max=01,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TEST',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
- 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 09/09/98 AUTEUR ACBHHCD G.DEVESA
-DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale
- ,fr="Définition d une base modale pour analyse dynamique par superposition modale ou sous structuration dynamique par synthèse modale",
- docu="U4.64.02-E",reentrant='f',
- regles=(UN_PARMI('CLASSIQUE','RITZ'),),
- CLASSIQUE =FACT(statut='f',min=01,max=01,
- 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='**',
- regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),),
- MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ),
- NMAX_MODE =SIMP(statut='f',typ='I',defaut= 999 ),
- MODE_STAT =SIMP(statut='f',typ=mode_stat ),
- MULT_ELAS =SIMP(statut='f',typ=mult_elas ),
- BASE_MODALE =SIMP(statut='f',typ=base_modale ),
- ),
-# le bloc conditionnel remplace-t-il PRESENT_PRESENT('RITZ','NUME_REF'),
-# PRESENT_ABSENT('INTERF_DYNA','CLASSIQUE'),
- b_ritz =BLOC(condition = "RITZ != None",
- INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ),
- NUME_REF =SIMP(statut='o',typ=nume_ddl ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 06/11/98 AUTEUR CIBHHLV L.VIVAN
-DEFI_CABLE_BP=OPER(nom="DEFI_CABLE_BP",op= 180,sd_prod=cabl_precont,
- fr=" ",
- docu="U4.42.04-A",reentrant='n',
- MODELE =SIMP(statut='o',typ=modele ),
- 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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD_ANCRAGE =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,max='**'),
- TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',max='**',
- into=("ACTIF","PASSIF") ),
- ),
- TENSION_INIT =SIMP(statut='o',typ='R' ),
- RECUL_ANCRAGE =SIMP(statut='o',typ='R' ),
- RELAXATION =FACT(statut='f',min=0,max=1,
- R_J =SIMP(statut='o',typ='R' ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 16/07/96 AUTEUR CIBHHRA R.MEDDOURI
-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',
- NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE =SIMP(statut='o',typ='R',max=01 ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-E",reentrant='n',
- fr="Définition d une coque composite couche par couche",
- COUCHE =FACT(statut='o',min=01,max='**',
- EPAIS =SIMP(statut='o',typ='R' ),
- MATER =SIMP(statut='o',typ=(mater) ),
- ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
- IMPRESSION =FACT(statut='f',min=01,max=01,
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT",) ),
- ),
-) ;
-#& MODIF COMMANDE DATE 28/06/2000 AUTEUR CIBHHLV L.VIVAN
-DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
- fr="Définition des caractéristiques nécessaires à l'étude du comportement dynamique d'une structure sous écoulement",
- docu="U4.25.01-C",reentrant='n',
- regles=(EXCLUS('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),
- AU_MOINS_UN('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX', ),),
- FAISCEAU_TRANS =FACT(statut='f',min=01,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 ),
- PROF_RHO_F_INT =SIMP(statut='f',typ=fonction ),
- PROF_RHO_F_EXT =SIMP(statut='f',typ=fonction ),
- NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
- COEF_MASS_AJOU =SIMP(statut='f',typ='R' ),
- TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
- TYPE_RESEAU =SIMP(statut='f',typ='I' ),
- UNITE_CD =SIMP(statut='f',typ='I',defaut=70),
- UNITE_CK =SIMP(statut='f',typ='I',defaut=71),
- PAS =SIMP(statut='f',typ='R' ),
- ),
- GRAPPE =FACT(statut='f',min=00,max=01,
- regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',),
- PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),),
-# peut on créer un bloc a partir de la valeur de couplage
- COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
- GRAPPE_2 =SIMP(statut='f',typ='TXM',
- into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
- NOEUD =SIMP(statut='f',typ=no),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODELE =SIMP(statut='f',typ=modele ),
- COEF_MASS_AJOU =SIMP(statut='f',typ='R' ),
- RHO_FLUI =SIMP(statut='f',typ='R' ),
- UNITE_CA =SIMP(statut='f',typ='I',defaut=70),
- UNITE_KA =SIMP(statut='f',typ='I',defaut=71),
- ),
- FAISCEAU_AXIAL =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
- UN_PARMI('CARA_ELEM','RAYON_TUBE'),
- ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
- PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
- ENSEMBLE('CARA_PAROI','VALE_PAROI'),
- ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
- 'COOR_GRILLE','TYPE_GRILLE', ),),
-# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ),
- VECT_X =SIMP(statut='f',typ='R',max=03),
- 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),
- RUGO_TUBE =SIMP(statut='f',typ='R' ),
- CARA_PAROI =SIMP(statut='f',typ='TXM',max=05,
- into=("YC","ZC","R","HY","HZ") ),
- VALE_PAROI =SIMP(statut='f',typ='R',max=05),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- LONG_TYPG =SIMP(statut='f',typ='R',max='**'),
- LARG_TYPG =SIMP(statut='f',typ='R',max='**'),
- EPAI_TYPG =SIMP(statut='f',typ='R',max='**'),
- RUGO_TYPG =SIMP(statut='f',typ='R',max='**'),
- COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**'),
- COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'),
- COOR_GRILLE =SIMP(statut='f',typ='R',max='**'),
- TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'),
- ),
- COQUE_COAX =FACT(statut='f',min=00,max=01,
- MASS_AJOU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- GROUP_MA_INT =SIMP(statut='o',typ=grma),
- GROUP_MA_EXT =SIMP(statut='o',typ=grma),
- VECT_X =SIMP(statut='o',typ='R',max='**'),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MATER_INT =SIMP(statut='o',typ=mater ),
- MATER_EXT =SIMP(statut='o',typ=mater ),
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- VISC_CINE =SIMP(statut='o',typ='R' ),
- RUGOSITE =SIMP(statut='o',typ='R' ),
- PDC_MOY_1 =SIMP(statut='o',typ='R' ),
- PDC_DYN_1 =SIMP(statut='o',typ='R' ),
- PDC_MOY_2 =SIMP(statut='o',typ='R' ),
- PDC_DYN_2 =SIMP(statut='o',typ='R' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.MK.10-A",reentrant='n',
- fr="Définition d une fonction du temps pour calculer des forces de LAPLACE",
- regles=(UN_PARMI('COUR_PRIN','COUR'),
- EXCLUS('COUR','COUR_SECO'), ),
- FREQ =SIMP(statut='f',typ='R',defaut= 50.),
- SIGNAL =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
- COUR =FACT(statut='f',min=01,max='**',
- fr="Définition du courant de court-circuit",
- regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),
- UN_PARMI('PHI_CC_2','INTC_CC_2'),),
- INTE_CC_1 =SIMP(statut='o',typ='R'),
- TAU_CC_1 =SIMP(statut='o',typ='R'),
- PHI_CC_1 =SIMP(statut='f',typ='R'),
- INTC_CC_1 =SIMP(statut='f',typ='R'),
- INTE_CC_2 =SIMP(statut='o',typ='R'),
- TAU_CC_2 =SIMP(statut='o',typ='R'),
- PHI_CC_2 =SIMP(statut='f',typ='R'),
- INTC_CC_2 =SIMP(statut='f',typ='R'),
- INST_CC_INIT =SIMP(statut='f',typ='R'),
- INST_CC_FIN =SIMP(statut='o',typ='R'),
- ),
- COUR_PRIN =FACT(statut='f',min=01,max=01,
- fr="Définition du courant de court-circuit avec réenclenchement",
- regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),),
- INTE_CC_1 =SIMP(statut='o',typ='R'),
- TAU_CC_1 =SIMP(statut='o',typ='R'),
- PHI_CC_1 =SIMP(statut='f',typ='R'),
- INTC_CC_1 =SIMP(statut='f',typ='R'),
- INTE_RENC_1 =SIMP(statut='f',typ='R'),
- TAU_RENC_1 =SIMP(statut='f',typ='R'),
- PHI_RENC_1 =SIMP(statut='f',typ='R'),
- INST_CC_INIT =SIMP(statut='o',typ='R'),
- INST_CC_FIN =SIMP(statut='o',typ='R'),
- INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- ),
- COUR_SECO =FACT(statut='f',min=01,max='**',
- fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN",
- regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),),
- INTE_CC_2 =SIMP(statut='o',typ='R'),
- TAU_CC_2 =SIMP(statut='o',typ='R'),
- PHI_CC_2 =SIMP(statut='f',typ='R'),
- INTC_CC_2 =SIMP(statut='f',typ='R'),
- INTE_RENC_2 =SIMP(statut='f',typ='R'),
- TAU_RENC_2 =SIMP(statut='f',typ='R'),
- PHI_RENC_2 =SIMP(statut='f',typ='R'),
- DIST =SIMP(statut='f',typ='R',defaut=1.0E+0),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction,
- fr="Définition des fonctions caractéristiques du fluide le long de la structure (profil de vitesse, profil de masse volumique)",
- docu="U4.35.01-C",reentrant='n',
- MAILLAGE =SIMP(statut='o',typ=(maillage) ),
- NOEUD_INIT =SIMP(statut='o',typ=no),
- NOEUD_FIN =SIMP(statut='o',typ=no),
- VITE =FACT(statut='o',min=01,max=01,
- VALE =SIMP(statut='f',typ='R',defaut= 1. ),
- PROFIL =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ),
- NB_BAV =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ),
- ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",
- into=("NON","LIN","LOG") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",
- into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM' ,defaut="EXCLU",
- into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 06/09/1999 AUTEUR UFBHHLL C.CHAVANT
-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-F",reentrant='n',
- 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") ),
- NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE =SIMP(statut='f',typ='R',max='**',
- fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"),
- VALE_C =SIMP(statut='f',typ='R',max='**',
- fr ="Fonction complexe définie par une liste de couples (abscisse,ordonnée partie réelle, ordonnée partie imaginaire)"),
- 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=02,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROIT =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',into=("CROISSANT",) ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 17/11/1999 AUTEUR CIBHHLV L.VIVAN
-DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,docu="U4.82.01-E",reentrant='n',
- 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('FOND_FERME','DTAN_EXTR'),
- EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
- EXCLUS('FOND_FERME','VECT_GRNO_EXTR'),
- UN_PARMI('LEVRE_SUP','NORMALE'),
- EXCLUS('LEVRE_INF','NORMALE'),
- ENSEMBLE('DTAN_ORIG','DTAN_EXTR'),
- ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'),
- 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,
- 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,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,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',min=01,max=01,
- regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
- EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
- 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=01,max=01,
- 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,
- regles=(UN_PARMI('GROUP_MA','MAILLE', ),),
- 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,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 27/09/2000 AUTEUR DURAND C.DURAND
-def defi_group_prod(MAILLAGE,**args):
- if AsType(MAILLAGE) == maillage : return maillage
- if AsType(MAILLAGE) == squelette : return squelette
- raise AsException("type de concept resultat non prevu")
-
-DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
- fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
- docu="U4.22.01-E",reentrant='o',
- 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='**',
- 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,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',defaut= 1 ),
- 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_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ),
- VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_sphere =BLOC(condition = "OPTION == 'SPHERE'",
- regles=(UN_PARMI('POINT','NOEUD_CENTRE'),),
- POINT =SIMP(statut='f',typ='R',max=03),
- NOEUD_CENTRE =SIMP(statut='f',typ=no),
- 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),
- 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),
- ),
- 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),
- 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),
- ),
- ),
- CREA_GROUP_NO =FACT(statut='f',min=01,max='**',
- regles=(AU_MOINS_UN('TOUT_GROUP_MA','GROUP_MA','NOEUD','INTERSEC','UNION','DIFFE',
- 'GROUP_NO','OPTION'),),
-
- 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") ),
- b_nom_group_ma =BLOC(condition = "GROUP_MA != None",
- NOM =SIMP(statut='f',typ=grma,max='**'),
- ),
- 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") ),
- 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),
- 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),
- RAYON =SIMP(statut='o',typ='R' ),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=03),
- VECT_NORMALE =SIMP(statut='f',typ='R',max=03),
- 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),
- 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'),),
- 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") ),
- ),
- b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
- regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
- 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 03/05/2000 AUTEUR CIBHHAB N.RAHNI
-DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
- fr="Définition d'une matrice interspectrale à partir de constantes, de fonctions complexes, ou du filtrage d'un bruit blanc par un oscillateur de KANAI-TAJIMI",
- docu="U4.36.02-E",reentrant='n',
-
- DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ),
-
- PAR_FONCTION =FACT(statut='f',min=01,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',min=01,max='**',
- regles=(EXCLUS('VALE_R','VALE_C'),),
- NUME_ORDRE_I =SIMP(statut='o',typ='I' ),
- NUME_ORDRE_J =SIMP(statut='o',typ='I' ),
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ),
- PAS =SIMP(statut='f',typ='R',defaut= 1. ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ),
- FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ),
- VALE_R =SIMP(statut='f',typ='R' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROIT =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',min=01,max='**',
- regles=(EXCLUS('VALE_R','VALE_C'),),
- NUME_ORDRE_I =SIMP(statut='o',typ='I' ),
- NUME_ORDRE_J =SIMP(statut='o',typ='I' ),
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ),
- PAS =SIMP(statut='f',typ='R',defaut= 1. ),
- VALE_R =SIMP(statut='f',typ='R' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas,
- fr="Définition des interfaces d une structure pour analyse dynamique par superposition modale ou sous structuration dynamique par synthèse modale",
- docu="U4.64.01-E",reentrant='n',
- NUME_DDL =SIMP(statut='o',typ=nume_ddl ),
- INTERFACE =FACT(statut='o',min=01,max='**',
- regles=(ENSEMBLE('NOM','TYPE'),
-# erreur doc U sur la condition qui suit
- UN_PARMI('NOEUD','GROUP_NO'),),
- NOM =SIMP(statut='f',typ='TXM' ),
- TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'),
- MASQUE =SIMP(statut='f',typ='TXM',max='**'),
- ),
- FREQ =SIMP(statut='f',typ='R',defaut= 1.),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-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',
- 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='**',
- regles=(UN_PARMI('NOMBRE','PAS'),),
- JUSQU_A =SIMP(statut='o',typ='I'),
- NOMBRE =SIMP(statut='f',typ='I'),
- PAS =SIMP(statut='f',typ='I'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-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-F",reentrant='n',
- 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='**',
- regles=(UN_PARMI('NOMBRE','PAS'),),
- JUSQU_A =SIMP(statut='o',typ='R'),
- NOMBRE =SIMP(statut='f',typ='I'),
- PAS =SIMP(statut='f',typ='R'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 20/12/94 AUTEUR B7BHHLV L.VIVAN
-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='**',
- 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),
- b_angl_naut =BLOC(condition = "ANGL_NAUT != None",
- CENTRE =SIMP(statut='f',typ='R',max=03),
- ),
- ),
- RECO_GLOBAL =FACT(statut='f',min=01,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='**',
- MAILLE =SIMP(statut='o',typ=ma,max='**'),
- GROUP_NO =SIMP(statut='o',typ=grno,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ),
- geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
- DEFI_NOEUD =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Renommage de tous les noeuds" ),
- NOEUD_INIT =SIMP(statut='f',typ=no,
- fr="Renommage d un seul noeud"),
- b_tout =BLOC(condition = "TOUT != None",
- PREFIXE =SIMP(statut='f',typ='TXM' ),
- INDEX =SIMP(statut='o',typ='I',max='**'),
- ),
- b_noeud_init =BLOC(condition = "NOEUD_INIT != None",
- MAILLE =SIMP(statut='o',typ=ma),
- NOEUD_FIN =SIMP(statut='o',typ=no),
- ),
- ),
- DEFI_GROUP_NO =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','MAILLE'),
- AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
- ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
-# la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Création de plusieurs groupes de noeuds" ),
- MAILLE =SIMP(statut='f',typ=ma,
- fr="Création de plusieurs groupes de noeuds"),
- GROUP_NO_INIT =SIMP(statut='f',typ=grno,
- fr="Création d un seul groupe de noeuds"),
- PREFIXE =SIMP(statut='f',typ='TXM' ),
- INDEX =SIMP(statut='f',typ='I',max='**'),
- GROUP_NO_FIN =SIMP(statut='f',typ=grno),
- ),
-) ;
-#& MODIF COMMANDE DATE 28/11/2000 AUTEUR CIBHHLV L.VIVAN
-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-F",reentrant='n',
- 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'),
- EXCLUS('ECRO_LINE','ECRO_LINE_FO'),
- EXCLUS('TAHERI','TAHERI_FO'),
- EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
- PRESENT_PRESENT('ROUSSELIER','TRACTION'),
- PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
- EXCLUS('VMIS_CIN1_CHAB','VMIS_CIN1_CHAB_F'),
- EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
- EXCLUS('POLY_CFC','POLY_CFC_FO'),
- PRESENT_PRESENT('NORTON_HOFF','ELAS'),
- EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI'),
- EXCLUS('OHNO','OHNO_FO'),
- 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'),),
-#
-# comportement élastique
-#
- ELAS =FACT(statut='f',min=00,max=01,
- E =SIMP(statut='o',typ='R'),
- NU =SIMP(statut='o',typ='R'),
- 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=00,max=01,
- 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 ),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
- VERI_P2 =SIMP(statut='f',typ='TXM',defaut="INST",into=("TEMP","INST",) ),
- VERI_P3 =SIMP(statut='f',typ='TXM',defaut="HYDR",into=("HYDR",) ),
- VERI_P4 =SIMP(statut='f',typ='TXM',defaut="SECH",into=("SECH",) ),
- ),
- ELAS_FLUI =FACT(statut='f',min=00,max=01,
- E =SIMP(statut='o',typ='R'),
- NU =SIMP(statut='o',typ='R'),
- RHO =SIMP(statut='o',typ='R'),
- PROF_RHO_F_INT =SIMP(statut='o',typ=fonction),
- PROF_RHO_F_EXT =SIMP(statut='o',typ=fonction),
- COEF_MASS_AJOU =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="ABSC",into=("ABSC",) ),
- ),
- ELAS_ISTR =FACT(statut='f',min=00,max=01,
- E_L =SIMP(statut='o',typ='R'),
- E_N =SIMP(statut='o',typ='R'),
- NU_LT =SIMP(statut='o',typ='R'),
- NU_LN =SIMP(statut='o',typ='R'),
- G_LN =SIMP(statut='o',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ELAS_ISTR_FO =FACT(statut='f',min=00,max=01,
- E_L =SIMP(statut='o',typ=fonction),
- E_N =SIMP(statut='o',typ=fonction),
- NU_LT =SIMP(statut='o',typ=fonction),
- NU_LN =SIMP(statut='o',typ=fonction),
- G_LN =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_L =SIMP(statut='f',typ=fonction),
- ALPHA_N =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST")),
- ),
- ELAS_ORTH =FACT(statut='f',min=00,max=01,
- E_L =SIMP(statut='o',typ='R'),
- E_T =SIMP(statut='o',typ='R'),
- E_N =SIMP(statut='f',typ='R'),
- NU_LT =SIMP(statut='o',typ='R'),
- NU_LN =SIMP(statut='f',typ='R'),
- NU_TN =SIMP(statut='f',typ='R'),
- G_LT =SIMP(statut='o',typ='R'),
- G_LN =SIMP(statut='f',typ='R'),
- G_TN =SIMP(statut='f',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- XT =SIMP(statut='f',typ='R',defaut= 1. ),
- XC =SIMP(statut='f',typ='R',defaut= 1. ),
- YT =SIMP(statut='f',typ='R',defaut= 1. ),
- YC =SIMP(statut='f',typ='R',defaut= 1. ),
- S_LT =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- ELAS_ORTH_FO =FACT(statut='f',min=00,max=01,
- E_L =SIMP(statut='o',typ=fonction),
- E_T =SIMP(statut='o',typ=fonction),
- E_N =SIMP(statut='o',typ=fonction),
- NU_LT =SIMP(statut='o',typ=fonction),
- NU_LN =SIMP(statut='o',typ=fonction),
- NU_TN =SIMP(statut='o',typ=fonction),
- G_LT =SIMP(statut='o',typ=fonction),
- G_LN =SIMP(statut='o',typ=fonction),
- G_TN =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_L =SIMP(statut='f',typ=fonction),
- ALPHA_T =SIMP(statut='f',typ=fonction),
- ALPHA_N =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
- ),
- ELAS_THM =FACT(statut='f',min=00,max=01,
- RHO_S =SIMP(statut='o',typ='R'),
- UN_SUR_KS =SIMP(statut='o',typ='R'),
- E =SIMP(statut='f',typ='R'),
- KB =SIMP(statut='f',typ='R'),
- D_KB_T =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=00,max=01,
- E_CHAR =SIMP(statut='o',typ='R'),
- E_DECHAR =SIMP(statut='o',typ='R'),
- XN =SIMP(statut='f',typ='R'),
- RF =SIMP(statut='f',typ='R'),
- EV_KB =SIMP(statut='f',typ='R'),
- EV_XM =SIMP(statut='f',typ='R'),
- D_E_T =SIMP(statut='f',typ='R'),
- ALPHA0 =SIMP(statut='f',typ='R'),
- ALPHA1 =SIMP(statut='f',typ='R'),
- ALPHA2 =SIMP(statut='f',typ='R'),
- ALPHA3 =SIMP(statut='f',typ='R'),
- ALPHA_S =SIMP(statut='f',typ='R'),
- ANG_FRT =SIMP(statut='o',typ='R'),
- COHE =SIMP(statut='o',typ='R'),
- RESI_TRAC =SIMP(statut='o',typ='R'),
- ),
- CAM_CLAY_THM =FACT(statut='f',min=00,max=01,
- NU =SIMP(statut='f',typ='R'),
- LAMBDA =SIMP(statut='o',typ='R'),
- KAPA =SIMP(statut='o',typ='R'),
- M =SIMP(statut='f',typ='R'),
- PRES_CRIT =SIMP(statut='f',typ='R'),
- GAMA =SIMP(statut='o',typ='R'),
- A0_PC =SIMP(statut='o',typ='R'),
- A1_PC =SIMP(statut='f',typ='R'),
- A2_PC =SIMP(statut='f',typ='R'),
- ALPHA0_PC =SIMP(statut='f',typ='R'),
- ALPHA1_PC =SIMP(statut='f',typ='R'),
- ALPHA2_PC =SIMP(statut='f',typ='R'),
- ALPHA3_PC =SIMP(statut='f',typ='R'),
- ALPHA_S =SIMP(statut='f',typ='R'),
- ),
- SURF_ETAT_NSAT =FACT(statut='f',min=00,max=01,
- E_CHAR =SIMP(statut='o',typ='R'),
- E_DECHAR =SIMP(statut='o',typ='R'),
- XN =SIMP(statut='f',typ='R'),
- RF =SIMP(statut='f',typ='R'),
- EV_KB =SIMP(statut='f',typ='R'),
- EV_XM =SIMP(statut='f',typ='R'),
- EV_A =SIMP(statut='f',typ='R'),
- EV_B =SIMP(statut='f',typ='R'),
- EV_CT =SIMP(statut='f',typ='R'),
- EV_SIGB =SIMP(statut='f',typ='R'),
- D_E_T =SIMP(statut='f',typ='R'),
- D_E_SUCC =SIMP(statut='f',typ='R'),
- ANG_FRT =SIMP(statut='o',typ='R'),
- COHE =SIMP(statut='o',typ='R'),
- D_COEH_SUCC =SIMP(statut='f',typ='R'),
- ANG_FRT_ULT =SIMP(statut='f',typ='R'),
- SUCC_ULTM =SIMP(statut='f',typ='R'),
- RESI_TRAC =SIMP(statut='f',typ='R'),
- A_SURF_SATU =SIMP(statut='f',typ='R'),
- B_SURF_SATU =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=00,max=01,
- regles=(EXCLUS('MEMB_L','M_LLLL',),
- PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
- 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
- PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
- 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
- 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
- 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
- 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
- 'C_LZTZ','C_TZTZ'),),
- MEMB_L =SIMP(statut='f',typ='R'),
- MEMB_LT =SIMP(statut='f',typ='R'),
- MEMB_T =SIMP(statut='f',typ='R'),
- MEMB_G_LT =SIMP(statut='f',typ='R'),
- FLEX_L =SIMP(statut='f',typ='R'),
- FLEX_LT =SIMP(statut='f',typ='R'),
- FLEX_T =SIMP(statut='f',typ='R'),
- FLEX_G_LT =SIMP(statut='f',typ='R'),
- CISA_L =SIMP(statut='f',typ='R'),
- CISA_T =SIMP(statut='f',typ='R'),
- M_LLLL =SIMP(statut='f',typ='R'),
- M_LLTT =SIMP(statut='f',typ='R'),
- M_LLLT =SIMP(statut='f',typ='R'),
- M_TTTT =SIMP(statut='f',typ='R'),
- M_TTLT =SIMP(statut='f',typ='R'),
- M_LTLT =SIMP(statut='f',typ='R'),
- F_LLLL =SIMP(statut='f',typ='R'),
- F_LLTT =SIMP(statut='f',typ='R'),
- F_LLLT =SIMP(statut='f',typ='R'),
- F_TTTT =SIMP(statut='f',typ='R'),
- F_TTLT =SIMP(statut='f',typ='R'),
- F_LTLT =SIMP(statut='f',typ='R'),
- MF_LLLL =SIMP(statut='f',typ='R'),
- MF_LLTT =SIMP(statut='f',typ='R'),
- MF_LLLT =SIMP(statut='f',typ='R'),
- MF_TTTT =SIMP(statut='f',typ='R'),
- MF_TTLT =SIMP(statut='f',typ='R'),
- MF_LTLT =SIMP(statut='f',typ='R'),
- MC_LLLZ =SIMP(statut='f',typ='R'),
- MC_LLTZ =SIMP(statut='f',typ='R'),
- MC_TTLZ =SIMP(statut='f',typ='R'),
- MC_TTTZ =SIMP(statut='f',typ='R'),
- MC_LTLZ =SIMP(statut='f',typ='R'),
- MC_LTTZ =SIMP(statut='f',typ='R'),
- FC_LLLZ =SIMP(statut='f',typ='R'),
- FC_LLTZ =SIMP(statut='f',typ='R'),
- FC_TTLZ =SIMP(statut='f',typ='R'),
- FC_TTTZ =SIMP(statut='f',typ='R'),
- FC_LTLZ =SIMP(statut='f',typ='R'),
- FC_LTTZ =SIMP(statut='f',typ='R'),
- C_LZLZ =SIMP(statut='f',typ='R'),
- C_LZTZ =SIMP(statut='f',typ='R'),
- C_TZTZ =SIMP(statut='f',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA =SIMP(statut='f',typ='R'),
- ),
- ELAS_COQUE_FO =FACT(statut='f',min=00,max=01,
- regles=(EXCLUS('MEMB_L','M_LLLL',),
- PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
- 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
- PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
- 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
- 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
- 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
- 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
- MEMB_L =SIMP(statut='f',typ=fonction),
- MEMB_LT =SIMP(statut='f',typ=fonction),
- MEMB_T =SIMP(statut='f',typ=fonction),
- MEMB_G_LT =SIMP(statut='f',typ=fonction),
- FLEX_L =SIMP(statut='f',typ=fonction),
- FLEX_LT =SIMP(statut='f',typ=fonction),
- FLEX_T =SIMP(statut='f',typ=fonction),
- FLEX_G_LT =SIMP(statut='f',typ=fonction),
- CISA_L =SIMP(statut='f',typ=fonction),
- CISA_T =SIMP(statut='f',typ=fonction),
- M_LLLL =SIMP(statut='f',typ=fonction),
- M_LLTT =SIMP(statut='f',typ=fonction),
- M_LLLT =SIMP(statut='f',typ=fonction),
- M_TTTT =SIMP(statut='f',typ=fonction),
- M_TTLT =SIMP(statut='f',typ=fonction),
- M_LTLT =SIMP(statut='f',typ=fonction),
- F_LLLL =SIMP(statut='f',typ=fonction),
- F_LLTT =SIMP(statut='f',typ=fonction),
- F_LLLT =SIMP(statut='f',typ=fonction),
- F_TTTT =SIMP(statut='f',typ=fonction),
- F_TTLT =SIMP(statut='f',typ=fonction),
- F_LTLT =SIMP(statut='f',typ=fonction),
- MF_LLLL =SIMP(statut='f',typ=fonction),
- MF_LLTT =SIMP(statut='f',typ=fonction),
- MF_LLLT =SIMP(statut='f',typ=fonction),
- MF_TTTT =SIMP(statut='f',typ=fonction),
- MF_TTLT =SIMP(statut='f',typ=fonction),
- MF_LTLT =SIMP(statut='f',typ=fonction),
- MC_LLLZ =SIMP(statut='f',typ=fonction),
- MC_LLTZ =SIMP(statut='f',typ=fonction),
- MC_TTLZ =SIMP(statut='f',typ=fonction),
- MC_TTTZ =SIMP(statut='f',typ=fonction),
- MC_LTLZ =SIMP(statut='f',typ=fonction),
- MC_LTTZ =SIMP(statut='f',typ=fonction),
- FC_LLLZ =SIMP(statut='f',typ=fonction),
- FC_LLTZ =SIMP(statut='f',typ=fonction),
- FC_TTLZ =SIMP(statut='f',typ=fonction),
- FC_TTTZ =SIMP(statut='f',typ=fonction),
- FC_LTLZ =SIMP(statut='f',typ=fonction),
- FC_LTTZ =SIMP(statut='f',typ=fonction),
- C_LZLZ =SIMP(statut='f',typ=fonction),
- C_LZTZ =SIMP(statut='f',typ=fonction),
- C_TZTZ =SIMP(statut='f',typ=fonction),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST") ),
- ),
- APPUI_ELAS =FACT(statut='f',min=00,max=01,
- E_N =SIMP(statut='o',typ='R'),
- E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0),
- ),
- CABLE =FACT(statut='f',min=00,max=01,
- E =SIMP(statut='o',typ='R'),
- EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
- 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'),
- ),
-#
-# comportement mécanique non linéaire
-#
- TRACTION =FACT(statut='f',min=00,max=01,
- SIGM =SIMP(statut='o',typ=fonction),
- 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=00,max=01,
- D_SIGM_EPSI =SIMP(statut='o',typ='R'),
- SY =SIMP(statut='o',typ='R'),
- ),
- ECRO_LINE_FO =FACT(statut='f',min=00,max=01,
- D_SIGM_EPSI =SIMP(statut='o',typ=fonction),
- SY =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- PRAGER =FACT(statut='f',min=00,max=01,
- C =SIMP(statut='o',typ='R'),
- ),
- PRAGER_FO =FACT(statut='f',min=00,max=01,
- C =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- ECRO_FLEJOU =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- R_0 =SIMP(statut='o',typ='R'),
- ALPHA =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- A =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- C_INF =SIMP(statut='o',typ='R'),
- S =SIMP(statut='o',typ='R'),
- ),
- TAHERI_FO =FACT(statut='f',min=00,max=01,
- R_0 =SIMP(statut='o',typ=fonction),
- ALPHA =SIMP(statut='o',typ=fonction),
- M =SIMP(statut='o',typ=fonction),
- A =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- C_INF =SIMP(statut='o',typ=fonction),
- S =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- ROUSSELIER =FACT(statut='f',min=00,max=01,
- D =SIMP(statut='o',typ='R'),
- SIGM_1 =SIMP(statut='o',typ='R'),
- PORO_INIT =SIMP(statut='o',typ='R'),
- PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_LIMI =SIMP(statut='f',typ='R',defaut= 1. ),
- D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- ROUSSELIER_FO =FACT(statut='f',min=00,max=01,
- D =SIMP(statut='o',typ=fonction),
- SIGM_1 =SIMP(statut='o',typ=fonction),
- PORO_INIT =SIMP(statut='o',typ=fonction),
- PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_LIMI =SIMP(statut='f',typ='R',defaut= 1. ),
- D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- CHABOCHE =FACT(statut='f',min=00,max=01,
- R_I =SIMP(statut='o',typ='R'),
- R_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- W =SIMP(statut='o',typ='R'),
- A1 =SIMP(statut='o',typ='R'),
- A2 =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- ),
- VMIS_CIN1_CHAB =FACT(statut='f',min=00,max=01,
- R_0 =SIMP(statut='o',typ='R'),
- R_I =SIMP(statut='f',typ='R'),
- B =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- C_I =SIMP(statut='o',typ='R'),
- K =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- W =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- G_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- ),
- VMIS_CIN1_CHAB_F =FACT(statut='f',min=00,max=01,
- R_0 =SIMP(statut='o',typ=fonction),
- R_I =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C_I =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- W =SIMP(statut='o',typ=fonction),
- G_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- VMIS_CIN2_CHAB =FACT(statut='f',min=00,max=01,
- R_0 =SIMP(statut='o',typ='R'),
- R_I =SIMP(statut='f',typ='R'),
- B =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- C1_I =SIMP(statut='o',typ='R'),
- C2_I =SIMP(statut='o',typ='R'),
- K =SIMP(statut='f',typ='R',defaut= 1.),
- W =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- G1_0 =SIMP(statut='o',typ='R'),
- G2_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
- ),
- VMIS_CIN2_CHAB_F =FACT(statut='f',min=00,max=01,
- R_0 =SIMP(statut='o',typ=fonction),
- R_I =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C1_I =SIMP(statut='o',typ=fonction),
- C2_I =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- W =SIMP(statut='o',typ=fonction),
- G1_0 =SIMP(statut='o',typ=fonction),
- G2_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- VISCOCHAB =FACT(statut='f',min=00,max=01,
- K_0 =SIMP(statut='o',typ='R'),
- A_K =SIMP(statut='o',typ='R'),
- A_R =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- N =SIMP(statut='o',typ='R'),
- ALP =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- M_R =SIMP(statut='o',typ='R'),
- G_R =SIMP(statut='o',typ='R'),
- MU =SIMP(statut='o',typ='R'),
- Q_M =SIMP(statut='o',typ='R'),
- Q_0 =SIMP(statut='o',typ='R'),
- QR_0 =SIMP(statut='o',typ='R'),
- ETA =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- M_1 =SIMP(statut='o',typ='R'),
- D1 =SIMP(statut='o',typ='R'),
- G_X1 =SIMP(statut='o',typ='R'),
- G1_0 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- M_2 =SIMP(statut='o',typ='R'),
- D2 =SIMP(statut='o',typ='R'),
- G_X2 =SIMP(statut='o',typ='R'),
- G2_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='o',typ='R'),
- ),
- VISCOCHAB_FO =FACT(statut='f',min=00,max=01,
- K_0 =SIMP(statut='o',typ=fonction),
- A_K =SIMP(statut='o',typ=fonction),
- A_R =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- ALP =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- M_R =SIMP(statut='o',typ=fonction),
- G_R =SIMP(statut='o',typ=fonction),
- MU =SIMP(statut='o',typ=fonction),
- Q_M =SIMP(statut='o',typ=fonction),
- Q_0 =SIMP(statut='o',typ=fonction),
- QR_0 =SIMP(statut='o',typ=fonction),
- ETA =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- M_1 =SIMP(statut='o',typ=fonction),
- D1 =SIMP(statut='o',typ=fonction),
- G_X1 =SIMP(statut='o',typ=fonction),
- G1_0 =SIMP(statut='o',typ=fonction),
- C2 =SIMP(statut='o',typ=fonction),
- M_2 =SIMP(statut='o',typ=fonction),
- D2 =SIMP(statut='o',typ=fonction),
- G_X2 =SIMP(statut='o',typ=fonction),
- G2_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- POLY_CFC =FACT(statut='f',min=00,max=01,
- TEXTURE =SIMP(statut='o',typ=(tabl_texture) ),
- DL =SIMP(statut='f',typ='R'),
- DA =SIMP(statut='f',typ='R'),
- N =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- TAU_0 =SIMP(statut='o',typ='R'),
- Q1 =SIMP(statut='o',typ='R'),
- B1 =SIMP(statut='o',typ='R'),
- HL =SIMP(statut='o',typ='R'),
- Q2 =SIMP(statut='o',typ='R'),
- B2 =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- D1 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- ),
- POLY_CFC_FO =FACT(statut='f',min=00,max=01,
- TEXTURE =SIMP(statut='o',typ=(tabl_texture) ),
- DL =SIMP(statut='o',typ=fonction),
- DA =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- TAU_0 =SIMP(statut='o',typ=fonction),
- Q1 =SIMP(statut='o',typ=fonction),
- B1 =SIMP(statut='o',typ=fonction),
- HL =SIMP(statut='o',typ=fonction),
- Q2 =SIMP(statut='o',typ=fonction),
- B2 =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- D1 =SIMP(statut='o',typ=fonction),
- C2 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- NORTON_HOFF =FACT(statut='f',min=00,max=01,
- N =SIMP(statut='o',typ='R'),
- SY =SIMP(statut='o',typ='R'),
- ),
- LEMAITRE =FACT(statut='f',min=00,max=01,
- N =SIMP(statut='o',typ='R'),
- UN_SUR_K =SIMP(statut='o',typ='R'),
- UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- QSR_K =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ZIRC_CYRA2 =FACT(statut='f',min=00,max=01,
- EPSI_FAB =SIMP(statut='o',typ=fonction),
- TEMP_RECUIT =SIMP(statut='o',typ=fonction),
- FLUX_PHI =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
- ),
- ZIRC_EPRI =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- N =SIMP(statut='o',typ=fonction),
- UN_SUR_K =SIMP(statut='o',typ=fonction),
- UN_SUR_M =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- GRAN_IRRA =FACT(statut='f',min=00,max=01,
- FLUX_L =SIMP(statut='o',typ=fonction),
- FLUX_TN =SIMP(statut='o',typ=fonction),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- A =SIMP(statut='o',typ='R'),
- S =SIMP(statut='f',typ='R'),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="X",into=("X",) ),
- VERI_P2 =SIMP(statut='f',typ='TXM',defaut="Y",into=("Y",) ),
- VERI_P3 =SIMP(statut='f',typ='TXM',defaut="Z",into=("Z",) ),
- VERI_P4 =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST",) ),
- ),
- OHNO =FACT(statut='f',min=00,max=01,
- R_I =SIMP(statut='o',typ='R'),
- R_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- PHI =SIMP(statut='o',typ='R'),
- A1 =SIMP(statut='o',typ='R'),
- A2 =SIMP(statut='o',typ='R'),
- A3 =SIMP(statut='o',typ='R'),
- A4 =SIMP(statut='o',typ='R'),
- A5 =SIMP(statut='o',typ='R'),
- GAMMA1 =SIMP(statut='o',typ='R'),
- GAMMA2 =SIMP(statut='o',typ='R'),
- GAMMA3 =SIMP(statut='o',typ='R'),
- GAMMA4 =SIMP(statut='o',typ='R'),
- GAMMA5 =SIMP(statut='o',typ='R'),
- M1 =SIMP(statut='o',typ='R'),
- M2 =SIMP(statut='o',typ='R'),
- M3 =SIMP(statut='o',typ='R'),
- M4 =SIMP(statut='o',typ='R'),
- M5 =SIMP(statut='o',typ='R'),
- ),
- OHNO_FO =FACT(statut='f',min=00,max=01,
- R_I =SIMP(statut='o',typ=fonction),
- R_0 =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- PHI =SIMP(statut='o',typ=fonction),
- A1 =SIMP(statut='o',typ=fonction),
- A2 =SIMP(statut='o',typ=fonction),
- A3 =SIMP(statut='o',typ=fonction),
- A4 =SIMP(statut='o',typ=fonction),
- A5 =SIMP(statut='o',typ=fonction),
- GAMMA1 =SIMP(statut='o',typ=fonction),
- GAMMA2 =SIMP(statut='o',typ=fonction),
- GAMMA3 =SIMP(statut='o',typ=fonction),
- GAMMA4 =SIMP(statut='o',typ=fonction),
- GAMMA5 =SIMP(statut='o',typ=fonction),
- M1 =SIMP(statut='o',typ=fonction),
- M2 =SIMP(statut='o',typ=fonction),
- M3 =SIMP(statut='o',typ=fonction),
- M4 =SIMP(statut='o',typ=fonction),
- M5 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- LMARC =FACT(statut='f',min=00,max=01,
- DE_0 =SIMP(statut='o',typ='R'),
- R_0 =SIMP(statut='o',typ='R'),
- N =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- Y_I =SIMP(statut='o',typ='R'),
- Y_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- A_0 =SIMP(statut='o',typ='R'),
- RM =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- P =SIMP(statut='o',typ='R'),
- P1 =SIMP(statut='o',typ='R'),
- P2 =SIMP(statut='o',typ='R'),
- M11 =SIMP(statut='o',typ='R'),
- M22 =SIMP(statut='o',typ='R'),
- M33 =SIMP(statut='o',typ='R'),
- M66 =SIMP(statut='o',typ='R'),
- N11 =SIMP(statut='o',typ='R'),
- N22 =SIMP(statut='o',typ='R'),
- N33 =SIMP(statut='o',typ='R'),
- N66 =SIMP(statut='o',typ='R'),
- Q11 =SIMP(statut='o',typ='R'),
- Q22 =SIMP(statut='o',typ='R'),
- Q33 =SIMP(statut='o',typ='R'),
- Q66 =SIMP(statut='o',typ='R'),
- R11 =SIMP(statut='o',typ='R'),
- R22 =SIMP(statut='o',typ='R'),
- R33 =SIMP(statut='o',typ='R'),
- R66 =SIMP(statut='o',typ='R'),
- ),
- LMARC_FO =FACT(statut='f',min=00,max=01,
- DE_0 =SIMP(statut='o',typ=fonction),
- R_0 =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- Y_I =SIMP(statut='o',typ=fonction),
- Y_0 =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- A_0 =SIMP(statut='o',typ=fonction),
- RM =SIMP(statut='o',typ=fonction),
- M =SIMP(statut='o',typ=fonction),
- P =SIMP(statut='o',typ=fonction),
- P1 =SIMP(statut='o',typ=fonction),
- P2 =SIMP(statut='o',typ=fonction),
- M11 =SIMP(statut='o',typ=fonction),
- M22 =SIMP(statut='o',typ=fonction),
- M33 =SIMP(statut='o',typ=fonction),
- M66 =SIMP(statut='o',typ=fonction),
- N11 =SIMP(statut='o',typ=fonction),
- N22 =SIMP(statut='o',typ=fonction),
- N33 =SIMP(statut='o',typ=fonction),
- N66 =SIMP(statut='o',typ=fonction),
- Q11 =SIMP(statut='o',typ=fonction),
- Q22 =SIMP(statut='o',typ=fonction),
- Q33 =SIMP(statut='o',typ=fonction),
- Q66 =SIMP(statut='o',typ=fonction),
- R11 =SIMP(statut='o',typ=fonction),
- R22 =SIMP(statut='o',typ=fonction),
- R33 =SIMP(statut='o',typ=fonction),
- R66 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- VMIS_POUTRE =FACT(statut='f',min=00,max=01,
- NP =SIMP(statut='o',typ='R'),
- MEY =SIMP(statut='o',typ='R'),
- MPY =SIMP(statut='o',typ='R'),
- CAY =SIMP(statut='o',typ='R'),
- CBY =SIMP(statut='o',typ='R'),
- MEZ =SIMP(statut='o',typ='R'),
- MPZ =SIMP(statut='o',typ='R'),
- CAZ =SIMP(statut='o',typ='R'),
- CBZ =SIMP(statut='o',typ='R'),
- MPX =SIMP(statut='o',typ='R'),
- ),
- VMIS_POUTRE_FO =FACT(statut='f',min=00,max=01,
- NP =SIMP(statut='o',typ=fonction),
- MEY =SIMP(statut='o',typ=fonction),
- MPY =SIMP(statut='o',typ=fonction),
- CAY =SIMP(statut='o',typ=fonction),
- CBY =SIMP(statut='o',typ=fonction),
- MEZ =SIMP(statut='o',typ=fonction),
- MPZ =SIMP(statut='o',typ=fonction),
- CAZ =SIMP(statut='o',typ=fonction),
- CBZ =SIMP(statut='o',typ=fonction),
- MPX =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- ARME =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- NU_1 =SIMP(statut='o',typ='R'),
- MU_1 =SIMP(statut='o',typ='R'),
- DXU_1 =SIMP(statut='o',typ='R'),
- DRYU_1 =SIMP(statut='o',typ='R'),
- C_1 =SIMP(statut='o',typ='R'),
- NU_2 =SIMP(statut='o',typ='R'),
- MU_2 =SIMP(statut='o',typ='R'),
- DXU_2 =SIMP(statut='o',typ='R'),
- DRYU_2 =SIMP(statut='o',typ='R'),
- C_2 =SIMP(statut='o',typ='R'),
- KY =SIMP(statut='o',typ='R'),
- KZ =SIMP(statut='o',typ='R'),
- KRX =SIMP(statut='o',typ='R'),
- KRZ =SIMP(statut='o',typ='R'),
- ),
- DIS_CONTACT =FACT(statut='f',min=00,max=01,
- regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA'),),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- 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'),
- RIGI_N_FO =SIMP(statut='f',typ=fonction),
- RIGI_N_IRRA =SIMP(statut='f',typ=fonction),
- RELA_MZ =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",) ),
- ),
- NADAI_B =FACT(statut='f',min=00,max=01,
- F_C =SIMP(statut='o',typ='R'),
- F_T =SIMP(statut='o',typ='R'),
- CRIT_E_C =SIMP(statut='o',typ='R'),
- EPSP_P_C =SIMP(statut='o',typ='R'),
- EPSP_R_C =SIMP(statut='o',typ='R'),
- EPSI_R_T =SIMP(statut='o',typ='R'),
- FAC_T_C =SIMP(statut='o',typ='R'),
- ),
- BETON_DOUBLE_DP =FACT(statut='f',min=00,max=01,
- F_C =SIMP(statut='o',typ=fonction),
- F_T =SIMP(statut='o',typ=fonction),
- COEF_BIAX =SIMP(statut='o',typ=fonction),
- ENER_COMP_RUPT =SIMP(statut='o',typ=fonction),
- ENER_TRAC_RUPT =SIMP(statut='o',typ=fonction),
- COEF_ELAS_COMP =SIMP(statut='o',typ='R'),
- ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
- ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
- VERI_P2 =SIMP(statut='f',typ='TXM',defaut="INST",into=("TEMP","INST",) ),
- VERI_P3 =SIMP(statut='f',typ='TXM',defaut="HYDR",into=("HYDR",) ),
- VERI_P4 =SIMP(statut='f',typ='TXM',defaut="SECH",into=("SECH",) ),
- ),
- VENDOCHAB =FACT(statut='f',min=00,max=01,
- S_VP =SIMP(statut='o',typ='R'),
- SEDVP1 =SIMP(statut='o',typ='R'),
- SEDVP2 =SIMP(statut='o',typ='R'),
- N_VP =SIMP(statut='o',typ='R'),
- M_VP =SIMP(statut='o',typ='R'),
- K_VP =SIMP(statut='o',typ='R'),
- R_D =SIMP(statut='o',typ='R'),
- A_D =SIMP(statut='o',typ='R'),
- K_D =SIMP(statut='o',typ='R'),
- ),
- VENDOCHAB_FO =FACT(statut='f',min=00,max=01,
- S_VP =SIMP(statut='o',typ=fonction),
- SEDVP1 =SIMP(statut='o',typ=fonction),
- SEDVP2 =SIMP(statut='o',typ=fonction),
- N_VP =SIMP(statut='o',typ=fonction),
- M_VP =SIMP(statut='o',typ=fonction),
- K_VP =SIMP(statut='o',typ=fonction),
- R_D =SIMP(statut='o',typ=fonction),
- A_D =SIMP(statut='o',typ=fonction),
- K_D =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- VERI_P2 =SIMP(statut='f',typ='TXM',defaut="X",into=("X",) ),
- ),
- PINTO_MENEGOTTO =FACT(statut='f',min=00,max=01,
- SY =SIMP(statut='o',typ='R'),
- EPSI_ULTM =SIMP(statut='o',typ='R'),
- SIGM_ULTM =SIMP(statut='o',typ='R'),
- ELAN =SIMP(statut='f',typ='R',defaut= 4. ),
- EPSP_HARD =SIMP(statut='o',typ='R'),
- R_PM =SIMP(statut='f',typ='R',defaut= 20. ),
- EP_SUR_E =SIMP(statut='f',typ='R'),
- A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ),
- A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ),
- A6_PM =SIMP(statut='f',typ='R',defaut= 620. ),
- C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ),
- A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
- ),
- BPEL_BETON =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- 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'),
- ),
- CJS =FACT(statut='f',min=00,max=01,
- 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 ),
- KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
- C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- GAMMA_CJS =SIMP(statut='o',typ='R'),
- MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PA =SIMP(statut='o',typ='R'),
- Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ECRO_ASYM_LINE =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- J1 =SIMP(statut='f',typ='R'),
- J2 =SIMP(statut='f',typ='R'),
- J3 =SIMP(statut='f',typ='R'),
- J4 =SIMP(statut='f',typ='R'),
- J5 =SIMP(statut='f',typ='R'),
- J6 =SIMP(statut='f',typ='R'),
- J7 =SIMP(statut='f',typ='R'),
- J8 =SIMP(statut='f',typ='R'),
- TAUX_1 =SIMP(statut='f',typ='R'),
- TAUX_2 =SIMP(statut='f',typ='R'),
- TAUX_3 =SIMP(statut='f',typ='R'),
- TAUX_4 =SIMP(statut='f',typ='R'),
- TAUX_5 =SIMP(statut='f',typ='R'),
- TAUX_6 =SIMP(statut='f',typ='R'),
- TAUX_7 =SIMP(statut='f',typ='R'),
- TAUX_8 =SIMP(statut='f',typ='R'),
- 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=00,max=01,
- QSR_VEIL =SIMP(statut='f',typ='R'),
- FONC_V =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
- ),
-#
-# comportement thermique
-#
- THER_NL =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- 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=00,max=01,
- LAMBDA =SIMP(statut='o',typ='R'),
- RHO_CP =SIMP(statut='f',typ='R'),
- ),
- THER_FO =FACT(statut='f',min=00,max=01,
- LAMBDA =SIMP(statut='o',typ=fonction),
- RHO_CP =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
- ),
- THER_ORTH =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- COND_LMM =SIMP(statut='o',typ='R'),
- COND_TMM =SIMP(statut='o',typ='R'),
- COND_LMP =SIMP(statut='o',typ='R'),
- COND_TMP =SIMP(statut='o',typ='R'),
- COND_LPP =SIMP(statut='o',typ='R'),
- COND_TPP =SIMP(statut='o',typ='R'),
- COND_LSI =SIMP(statut='o',typ='R'),
- COND_TSI =SIMP(statut='o',typ='R'),
- COND_NMM =SIMP(statut='o',typ='R'),
- COND_NMP =SIMP(statut='o',typ='R'),
- COND_NPP =SIMP(statut='o',typ='R'),
- COND_NSI =SIMP(statut='o',typ='R'),
- CMAS_MM =SIMP(statut='f',typ='R'),
- CMAS_MP =SIMP(statut='f',typ='R'),
- CMAS_PP =SIMP(statut='f',typ='R'),
- CMAS_SI =SIMP(statut='f',typ='R'),
- ),
- THER_COQUE_FO =FACT(statut='f',min=00,max=01,
- COND_LMM =SIMP(statut='o',typ=fonction),
- COND_TMM =SIMP(statut='o',typ=fonction),
- COND_LMP =SIMP(statut='o',typ=fonction),
- COND_TMP =SIMP(statut='o',typ=fonction),
- COND_LPP =SIMP(statut='o',typ=fonction),
- COND_TPP =SIMP(statut='o',typ=fonction),
- COND_LSI =SIMP(statut='o',typ=fonction),
- COND_TSI =SIMP(statut='o',typ=fonction),
- COND_NMM =SIMP(statut='o',typ=fonction),
- COND_NMP =SIMP(statut='o',typ=fonction),
- COND_NPP =SIMP(statut='o',typ=fonction),
- COND_NSI =SIMP(statut='o',typ=fonction),
- CMAS_MM =SIMP(statut='f',typ=fonction),
- CMAS_MP =SIMP(statut='f',typ=fonction),
- CMAS_PP =SIMP(statut='f',typ=fonction),
- CMAS_SI =SIMP(statut='f',typ=fonction),
- ),
- SECH_GRANGER =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- A =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- ),
- SECH_BAZANT =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- FONCTION =SIMP(statut='o',typ=fonction),
- 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=00,max=01,
- TRC =SIMP(statut='o',typ=(tabl_trc) ),
- AR3 =SIMP(statut='o',typ='R'),
- ALPHA =SIMP(statut='o',typ='R'),
- MS0 =SIMP(statut='o',typ='R'),
- AC1 =SIMP(statut='o',typ='R'),
- AC3 =SIMP(statut='o',typ='R'),
- TAUX_1 =SIMP(statut='o',typ='R'),
- TAUX_3 =SIMP(statut='o',typ='R'),
- LAMBDA0 =SIMP(statut='f',typ='R'),
- QSR_K =SIMP(statut='f',typ='R'),
- D10 =SIMP(statut='f',typ='R'),
- WSR_K =SIMP(statut='f',typ='R'),
- ),
- META_ZIRC =FACT(statut='f',min=00,max=01,
- TDEQ =SIMP(statut='o',typ='R'),
- N =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- TDC =SIMP(statut='o',typ='R'),
- AC =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- QSR_K =SIMP(statut='f',typ='R'),
- TDR =SIMP(statut='o',typ='R'),
- AR =SIMP(statut='o',typ='R'),
- BR =SIMP(statut='o',typ='R'),
- ),
- DURT_META =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- E =SIMP(statut='o',typ='R'),
- NU =SIMP(statut='o',typ='R'),
- F_ALPHA =SIMP(statut='o',typ='R'),
- C_ALPHA =SIMP(statut='o',typ='R'),
- PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
- EPSF_EPSC_TREF =SIMP(statut='o',typ='R'),
- TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- F1_SY =SIMP(statut='f',typ='R'),
- F2_SY =SIMP(statut='f',typ='R'),
- F3_SY =SIMP(statut='f',typ='R'),
- F4_SY =SIMP(statut='f',typ='R'),
- C_SY =SIMP(statut='f',typ='R'),
- SY_MELANGE =SIMP(statut='f',typ=fonction),
- F1_S_VP =SIMP(statut='f',typ='R'),
- F2_S_VP =SIMP(statut='f',typ='R'),
- F3_S_VP =SIMP(statut='f',typ='R'),
- F4_S_VP =SIMP(statut='f',typ='R'),
- C_S_VP =SIMP(statut='f',typ='R' ),
- S_VP_MELANGE =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)),
- ),
- ELAS_META_FO =FACT(statut='f',min=00,max=01,
- E =SIMP(statut='o',typ=fonction),
- NU =SIMP(statut='o',typ=fonction),
- F_ALPHA =SIMP(statut='o',typ=fonction),
- C_ALPHA =SIMP(statut='o',typ=fonction),
- PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
- EPSF_EPSC_TREF =SIMP(statut='o',typ='R'),
- TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- F1_SY =SIMP(statut='f',typ=fonction),
- F2_SY =SIMP(statut='f',typ=fonction),
- F3_SY =SIMP(statut='f',typ=fonction),
- F4_SY =SIMP(statut='f',typ=fonction),
- C_SY =SIMP(statut='f',typ=fonction),
- SY_MELANGE =SIMP(statut='f',typ=fonction),
- F1_S_VP =SIMP(statut='f',typ=fonction),
- F2_S_VP =SIMP(statut='f',typ=fonction),
- F3_S_VP =SIMP(statut='f',typ=fonction),
- F4_S_VP =SIMP(statut='f',typ=fonction),
- C_S_VP =SIMP(statut='f',typ=fonction),
- S_VP_MELANGE =SIMP(statut='f',typ=fonction),
- 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=00,max=01,
- F1_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F2_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F3_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F4_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- C_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- META_TRACTION =FACT(statut='f',min=00,max=01,
- SIGM_F1 =SIMP(statut='f',typ=fonction),
- SIGM_F2 =SIMP(statut='f',typ=fonction),
- SIGM_F3 =SIMP(statut='f',typ=fonction),
- SIGM_F4 =SIMP(statut='f',typ=fonction),
- SIGM_C =SIMP(statut='f',typ=fonction),
- 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=00,max=01,
- F1_ETA =SIMP(statut='f',typ=fonction),
- F1_N =SIMP(statut='f',typ=fonction),
- F1_C =SIMP(statut='f',typ=fonction),
- F1_M =SIMP(statut='f',typ=fonction),
- F2_ETA =SIMP(statut='f',typ=fonction),
- F2_N =SIMP(statut='f',typ=fonction),
- F2_C =SIMP(statut='f',typ=fonction),
- F2_M =SIMP(statut='f',typ=fonction),
- F3_ETA =SIMP(statut='f',typ=fonction),
- F3_N =SIMP(statut='f',typ=fonction),
- F3_C =SIMP(statut='f',typ=fonction),
- F3_M =SIMP(statut='f',typ=fonction),
- F4_ETA =SIMP(statut='f',typ=fonction),
- F4_N =SIMP(statut='f',typ=fonction),
- F4_C =SIMP(statut='f',typ=fonction),
- F4_M =SIMP(statut='f',typ=fonction),
- C_ETA =SIMP(statut='f',typ=fonction),
- C_N =SIMP(statut='f',typ=fonction),
- C_C =SIMP(statut='f',typ=fonction),
- C_M =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- META_PT =FACT(statut='f',min=00,max=01,
- F1_K =SIMP(statut='f',typ='R'),
- F2_K =SIMP(statut='f',typ='R'),
- F3_K =SIMP(statut='f',typ='R'),
- F4_K =SIMP(statut='f',typ='R'),
- F1_D_F_META =SIMP(statut='f',typ=fonction),
- F2_D_F_META =SIMP(statut='f',typ=fonction),
- F3_D_F_META =SIMP(statut='f',typ=fonction),
- F4_D_F_META =SIMP(statut='f',typ=fonction),
- 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=00,max=01,
- C_F1_THETA =SIMP(statut='f',typ='R'),
- C_F2_THETA =SIMP(statut='f',typ='R'),
- C_F3_THETA =SIMP(statut='f',typ='R'),
- C_F4_THETA =SIMP(statut='f',typ='R'),
- F1_C_THETA =SIMP(statut='f',typ='R'),
- F2_C_THETA =SIMP(statut='f',typ='R'),
- F3_C_THETA =SIMP(statut='f',typ='R'),
- F4_C_THETA =SIMP(statut='f',typ='R'),
- ),
-#
-# comportement fluide
-#
- FLUIDE =FACT(statut='f',min=00,max=01,
- 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=00,max=01,
- RHO_FLUI =SIMP(statut='o',typ='R'),
- ENTRO_FLUI =SIMP(statut='o',typ='R'),
- BIOT_M =SIMP(statut='o',typ='R'),
- C_0 =SIMP(statut='o',typ='R'),
- T_R =SIMP(statut='o',typ='R'),
- ALPHA_M =SIMP(statut='o',typ='R'),
- LAMBDA_T =SIMP(statut='o',typ='R'),
- LAMBDA_H =SIMP(statut='o',typ='R'),
- SOURCE_INIT =SIMP(statut='o',typ='R'),
- OMEGA_0 =SIMP(statut='o',typ='R'),
- ),
- THM_LIQU =FACT(statut='f',min=00,max=01,
- RHO =SIMP(statut='o',typ='R'),
- UN_SUR_K =SIMP(statut='f',typ='R'),
- ALPHA =SIMP(statut='f',typ='R'),
- CP =SIMP(statut='f',typ='R'),
- VISC =SIMP(statut='f',typ=fonction),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- COEF_HENRY =SIMP(statut='f',typ='R'),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- THM_GAZ =FACT(statut='f',min=00,max=01,
- MASS_MOL =SIMP(statut='f',typ='R'),
- CP =SIMP(statut='f',typ='R'),
- VISC =SIMP(statut='f',typ=fonction),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- THM_VAPE_GAZ =FACT(statut='f',min=00,max=01,
- MASS_MOL =SIMP(statut='f',typ='R'),
- CP =SIMP(statut='f',typ='R'),
- VISC =SIMP(statut='f',typ=fonction),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- THM_INIT =FACT(statut='f',min=00,max=01,
- TEMP =SIMP(statut='o',typ='R'),
- PRE1 =SIMP(statut='o',typ='R'),
- PRE2 =SIMP(statut='o',typ='R'),
- PORO =SIMP(statut='o',typ='R'),
- PRES_VAPE =SIMP(statut='o',typ='R'),
- DEGR_SATU =SIMP(statut='f',typ='R'),
- PRES_ATMO =SIMP(statut='f',typ='R'),
- ),
- THM_DIFFU =FACT(statut='f',min=00,max=01,
- R_GAZ =SIMP(statut='o',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- CP =SIMP(statut='f',typ='R'),
- BIOT_COEF =SIMP(statut='f',typ='R'),
- SATU_PRES =SIMP(statut='f',typ=fonction),
- D_SATU_PRES =SIMP(statut='f',typ=fonction),
- PESA_X =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),
- PERM_LIQU =SIMP(statut='f',typ=fonction),
- D_PERM_LIQU_SATU=SIMP(statut='f',typ=fonction),
- PERM_GAZ =SIMP(statut='f',typ=fonction),
- D_PERM_SATU_GAZ =SIMP(statut='f',typ=fonction),
- D_PERM_PRES_GAZ =SIMP(statut='f',typ=fonction),
- FICK =SIMP(statut='f',typ=fonction),
- D_FICK_TEMP =SIMP(statut='f',typ=fonction),
- D_FICK_GAZ_PRES =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- SIGMA_T =SIMP(statut='f',typ=fonction),
- D_SIGMA_T =SIMP(statut='f',typ=fonction),
- PERM_G_INTR =SIMP(statut='f',typ=fonction),
- CHAL_VAPO =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- VERI_P2 =SIMP(statut='f',typ='TXM',defaut="SAT",into=("SAT",) ),
- VERI_P3 =SIMP(statut='f',typ='TXM',defaut="PORO",into=("PORO",) ),
- VERI_P4 =SIMP(statut='f',typ='TXM',defaut="PGAZ",into=("PGAZ",) ),
- VERI_P5 =SIMP(statut='f',typ='TXM',defaut="PGAP",into=("PGAP",) ),
- ),
-#
-# courbes et coefficients associés à la fatigue et au dommage
-#
- FATIGUE =FACT(statut='f',min=00,max=01,
- regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'),
- PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'),
- PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'),
- ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
- ENSEMBLE('A0','A1','A2','A3','SL'),
- PRESENT_PRESENT('A0','E_REFE'),
- ENSEMBLE('D0','TAU0'),),
- WOHLER =SIMP(statut='f',typ=fonction),
- A_BASQUIN =SIMP(statut='f',typ='R'),
- BETA_BASQUIN =SIMP(statut='f',typ='R'),
- A0 =SIMP(statut='f',typ='R'),
- A1 =SIMP(statut='f',typ='R'),
- A2 =SIMP(statut='f',typ='R'),
- A3 =SIMP(statut='f',typ='R'),
- SL =SIMP(statut='f',typ='R'),
- MANSON_COFFIN =SIMP(statut='f',typ=fonction),
- E_REFE =SIMP(statut='f',typ='R'),
- D0 =SIMP(statut='f',typ='R'),
- TAU0 =SIMP(statut='f',typ='R'),
- 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=00,max=01,
- S =SIMP(statut='o',typ=fonction),
- EPSP_SEUIL =SIMP(statut='o',typ='R'),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
-#
-# autres comportements ...
-#
- WEIBULL =FACT(statut='f',min=00,max=01,
- 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),
- ),
- CONTACT =FACT(statut='f',min=00,max=01,
- E_N =SIMP(statut='o',typ='R'),
- E_T =SIMP(statut='f',typ='R',defaut= 0.E+0),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0),
- ),
- NON_LOCAL =FACT(statut='f',min=00,max=01,
- LONG_CARA =SIMP(statut='o',typ='R'),
- COEF_RIGI_MINI =SIMP(statut='f',typ='R'),
- ),
- RUPT_FRAG =FACT(statut='f',min=00,max=01,
- GC =SIMP(statut='o',typ='R'),
- ),
- RCCM =FACT(statut='f',min=00,max=01,
- SY_02 =SIMP(statut='f',typ='R'),
- SM =SIMP(statut='f',typ='R'),
- SU =SIMP(statut='f',typ='R'),
- SC =SIMP(statut='f',typ='R'),
- SH =SIMP(statut='f',typ='R'),
- N_KE =SIMP(statut='f',typ='R'),
- M_KE =SIMP(statut='f',typ='R'),
- ),
- RCCM_FO =FACT(statut='f',min=00,max=01,
- SY_02 =SIMP(statut='f',typ=fonction),
- SM =SIMP(statut='f',typ=fonction),
- SU =SIMP(statut='f',typ=fonction),
- S =SIMP(statut='f',typ=fonction),
- N_KE =SIMP(statut='f',typ=fonction),
- M_KE =SIMP(statut='f',typ=fonction),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN
-DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
- fr="Définition d un modèle structure global à partir de macro éléments pour analyse modale ou harmonique par sous structuration",
- docu="U4.65.02-D",reentrant='n',
- SOUS_STRUC =FACT(statut='o',min=01,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),
- ),
- LIAISON =FACT(statut='o',min=01,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='**',
-# 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 18/01/99 AUTEUR CIBHHBC B.CIREE
-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-F",reentrant='n',
- 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") ),
- 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") ),
- DEFI_FONCTION =FACT(statut='f',min=00,max='**',
- VALE =SIMP(statut='o',typ='R',max='**'),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 06/10/1999 AUTEUR SABJLMA P.LATRUBESSE
-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',
- TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE",
- into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
- "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
- "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
- "GUID_B_CARTE_900","GUID_C_CARTE_900",
- "GUID_D_CARTE_900","GUID_E_CARTE_900",
- "GUID_F_CARTE_900","GUID_A_CARTE_1300",
- "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
- "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
- "GUID_F_CARTE_1300","GUID_A_CARSP_900",
- "GUID_B_CARSP_900","GUID_C_CARSP_900",
- "GUID_D_CARSP_900","GUID_E_CARSP_900",
- "GUID_F_CARSP_900","GUID_A_CARSP_1300",
- "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
- "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
- "GUID_F_CARSP_1300","GUID_A_GCONT_900",
- "GUID_B_GCONT_900","GUID_C_GCONT_900",
- "GUID_D_GCONT_900","GUID_E_GCONT_900",
- "GUID_F_GCONT_900","GUID_A_GCONT_1300",
- "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
- "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
- "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
- "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
- "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
- "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
- "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
- "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
- "GUID_F_GCOMB_1300",) ),
- VALE =SIMP(statut='f',typ='R',max='**'),
- VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"),
-) ;
-#& MODIF COMMANDE DATE 04/03/98 AUTEUR BIBERON G.ROUSSEAU
-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',
- 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,
- 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,
- regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
- LONG_COR =SIMP(statut='o',typ='R' ),
- PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
- FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ),
- PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
- BETA =SIMP(statut='f',typ='R',defaut= 2.7 ),
- ),
- SPEC_LONG_COR_3 =FACT(statut='f',min=00,max=01,
- 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 ),
- FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ),
- PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
- BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ),
- PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.0E-5 ),
- BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ),
- ),
- SPEC_LONG_COR_4 =FACT(statut='f',min=00,max=01,
- regles=(ENSEMBLE('BETA','GAMMA'),),
- LONG_COR =SIMP(statut='o',typ='R' ),
- PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
- TAUX_VIDE =SIMP(statut='o',typ='R' ),
- BETA =SIMP(statut='f',typ='R',defaut= 2. ),
- GAMMA =SIMP(statut='f',typ='R',defaut= 4. ),
- ),
- SPEC_CORR_CONV_1=FACT(statut='f',min=00,max=01,
- LONG_COR_1 =SIMP(statut='o',typ='R' ),
- LONG_COR_2 =SIMP(statut='f',typ='R' ),
- VITE_FLUI =SIMP(statut='o',typ='R' ),
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- FREQ_COUP =SIMP(statut='f',typ='R' ),
- K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
- D_FLUI =SIMP(statut='o',typ='R' ),
- COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
- COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE",
- into=("AU_YANG","GENERALE","CORCOS") ),
- ),
- SPEC_CORR_CONV_2=FACT(statut='f',min=00,max=01,
- FONCTION =SIMP(statut='o',typ=fonction ),
- VITE_FLUI =SIMP(statut='o',typ='R' ),
- FREQ_COUP =SIMP(statut='f',typ='R' ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE",
- into=("AU_YANG","GENERALE","CORCOS",) ),
- COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
- COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
- ),
- SPEC_FONC_FORME =FACT(statut='f',min=00,max=01,
- regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
- ENSEMBLE('INTE_SPEC','FONCTION'),),
- INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
- FONCTION =SIMP(statut='f',typ=fonction,max='**'),
- GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
- NOEUD =SIMP(statut='o',typ=no),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MODELE =SIMP(statut='o',typ=modele ),
- ),
- SPEC_EXCI_POINT =FACT(statut='f',min=00,max=01,
- regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
- INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
- GRAPPE_2 =SIMP(statut='f',typ='TXM',
- into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
-# Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent
- b_inte_spec =BLOC(condition = "INTE_SPEC != None",
- NATURE =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
- ANGL =SIMP(statut='o',typ='R',max='**'),
- NOEUD =SIMP(statut='o',typ=no,max='**'),
- ),
- b_grappe_2 =BLOC(condition = "GRAPPE_2 != None",
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- NOEUD =SIMP(statut='o',typ=no),
- ),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MODELE =SIMP(statut='o',typ=modele ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 02/03/99 AUTEUR SABJLMA P.LATRUBESSE
-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',
- regles=(UN_PARMI('MODE_CYCL','MODELE_GENE','MAILLAGE'),
- PRESENT_PRESENT('MODE_CYCL','SECTEUR'),
- EXCLUS('SOUS_STRUC','SECTEUR'),
- PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
- PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
- 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='**',
- regles=(EXCLUS('TOUT','GROUP_NO_1'),
- PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
- PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
- PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
- PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- DIST_REFE =SIMP(statut='f',typ='R' ),
- ),
- NOM_GROUP_MA =FACT(statut='f',min=01,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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- TRANS =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- SOUS_STRUC =FACT(statut='f',min=01,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='**',
- 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/06/98 AUTEUR CIBHHLV L.VIVAN
-DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,
- fr=" ",docu="U4.43.05-A",reentrant='n',
- SYST_GLISSEMENT =FACT(statut='o',min=01,max='**',
- N =SIMP(statut='o',typ='R',max='**' ),
- L =SIMP(statut='o',typ='R',max='**' ),
- ),
- PLAN =FACT(statut='o',min=01,max='**',
- ANGL_NAUT =SIMP(statut='o',typ='R',max='**' ),
- PROPORTION =SIMP(statut='o',typ='R' ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 16/07/96 AUTEUR CIBHHRA R.MEDDOURI
-DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.MK.20-A",reentrant='n',
- fr="Calculer la fonction d évolution temporelle de la température due à l effet JOULE dans un câble",
- LIST_INST =SIMP(statut='o',typ=listr8),
- INST_CC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
- INST_CC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- 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='**',
- 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),
- SECTION =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE",) ),
- RESI_R0 =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- RESI_R1 =SIMP(statut='f',typ='R',defaut= 0.E+0),
- RHO_CP =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- COEF_H =SIMP(statut='f',typ='R',defaut= 40.0E+0),
- TEMP_INIT =SIMP(statut='f',typ='R',defaut= 15.0E+0),
- ),
-) ;
-
-#& MODIF COMMANDE DATE 04/07/2000 AUTEUR JMBHH01 J.M.PROIX
-DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-E",reentrant='n',
- fr="Définition d un diagramme de transformations en refroidissement continu d un acier",
- HIST_EXP =FACT(statut='o',min=01,max='**',
- VALE =SIMP(statut='o',typ='R',max='**'),
- ),
- TEMP_MS =FACT(statut='o',min=01,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='**',
- DREF =SIMP(statut='f',typ='R'),
- A =SIMP(statut='f',typ='R'),
- ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND
-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-e",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='**'),
-) ;
-#& MODIF COMMANDE DATE 04/10/90 AUTEUR INCONNU INCONNU
-DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-D",
- fr="Modification / ajoût d une unité logique en sortie en complément de celles définies dans DEBUT",
- IMPRESSION =FACT(statut='o',min=01,max='**',
- NOM =SIMP(statut='o',typ='TXM',max='**'),
- UNITE =SIMP(statut='o',typ='I' ),
- ),
-) ;
-#& MODIF COMMANDE DATE 16/01/92 AUTEUR INCONNU INCONNU
-DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02-E",reentrant='n',
- 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 23/03/93 AUTEUR GJBHHDU G.DUMONT
-DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-D",
- 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/05/2000 AUTEUR CIBHHLV L.VIVAN
-DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.MK.30-A",reentrant='n',
- 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'),),
- 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',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,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 03/05/2000 AUTEUR CIBHHAB N.RAHNI
-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,
- regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- BANDE =SIMP(statut='f',typ='R',max=02),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- b_bande =BLOC(condition = "BANDE != None",
- AMOR_UNIF =SIMP(statut='o',typ='R' ),
- ),
- b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- ),
- ),
- MODE_STAT =SIMP(statut='f',typ=mode_stat ),
- EXCIT =FACT(statut='o',min=01,max=01,
- regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),
- EXCLUS('CHAM_NO','NOEUD'),),
- DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
- MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-# dans la doc U il y a plus de choix pour GRANDEUR
- GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
- into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
- 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",) ),
-# Toutes les regles ne semblent pas avoir été ecrites dans la doc U
- NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'),
- NOEUD_I =SIMP(statut='f',typ=no,max='**'),
- b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'),
- ),
- b_noeud_i =BLOC(condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no,max='**'),
- NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'),
- NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'),
- ),
- CHAM_NO =SIMP(statut='f',typ=cham_no),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- b_noeud =BLOC(condition = "NOEUD != None",
- 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
- 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 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 08/03/2000 AUTEUR CIBHHPD P.DAVID
-def dyna_line_harm_prod(MATR_MASS,**args):
- if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo
- if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo
- if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo
- if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene
- raise AsException("type de concept resultat non prevu")
-
-DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod,
- fr="Réponse dynamique complexe d un système à une excitation harmonique",
- docu="U4.53.11-E",reentrant='n',
- regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
- PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
- PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
- UN_PARMI('FREQ','LIST_FREQ'),),
- MODELE =SIMP(statut='f',typ=modele ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,
- matr_asse_pres_c,
- matr_asse_gene_r ) ),
- MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,
- matr_asse_depl_c,
- matr_asse_pres_c,
- matr_asse_gene_r,
- matr_asse_gene_c ) ),
- MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,
- matr_asse_pres_c,
- matr_asse_gene_r ) ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,
- matr_asse_gene_r) ),
- 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='**',
- 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 ) ),
- CHARGE =SIMP(statut='f',typ=char_meca ),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- FONC_MULT_C =SIMP(statut='f',typ=fonction_c ),
- COEF_MULT_C =SIMP(statut='f',typ='C' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 08/06/99 AUTEUR ACBHHCD G.DEVESA
-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-F",reentrant='f',
- regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),),
- MODELE =SIMP(statut='f',typ=modele ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ),
- MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ),
- MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ),
- MODE_STAT =SIMP(statut='f',typ=mode_stat ),
- NEWMARK =FACT(statut='f',min=01,max=01,
- 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,
- THETA =SIMP(statut='f',typ='R',defaut= 1.4 ),
- ),
- DIFF_CENTRE =FACT(statut='f',min=01,max=01,
- ),
- ADAPT =FACT(statut='f',min=01,max=01,
- ),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- regles=(EXCLUS('DYNA_TRANS','DEPL_INIT'),
- EXCLUS('DYNA_TRANS','VITE_INIT'),),
- DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ),
-# j ai interprete la doc U : est-ce bon
- b_dyna_trans =BLOC(condition = "DYNA_TRANS != None",
- regles=(EXCLUS('NUME_INIT','INST_INIT' ),),
- NUME_INIT =SIMP(statut='f',typ='I' ),
- INST_INIT =SIMP(statut='f',typ='R' ),
- b_inst_init =BLOC(condition = "INST_INIT != None",
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
- DEPL_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
- VITE_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
- ),
- EXCIT =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('CHARGE','VECT_ASSE'),
- EXCLUS('CHARGE','COEF_MULT'),
- EXCLUS('FONC_MULT','COEF_MULT'),
- EXCLUS('ACCE','COEF_MULT'),
- PRESENT_ABSENT('ACCE','FONC_MULT'),
- PRESENT_PRESENT('ACCE','VITE','DEPL'),
- PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
- VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
- CHARGE =SIMP(statut='f',typ=char_meca ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- 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",) ),
- 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,
- 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,
- 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='**',
- regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- FONC_INST =SIMP(statut='f',typ=fonction ),
- PAS =SIMP(statut='f',typ='R' ),
- b_pas =BLOC(condition = "PAS != None",
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- ),
- b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None",
- regles=(EXCLUS('INST_FIN','NUME_FIN'),),
- NUME_FIN =SIMP(statut='f',typ='I' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- ),
- VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
- COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ),
- COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ),
- PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
- NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
- PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ),
- ),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
- 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',max='**',into=("DEPL","VITE","ACCE") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET
-DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 95,sd_prod=evol_noli,reentrant='f',
- fr="Analyse mécanique dynamique non linéaire",docu="U4.53.01-E",
- regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
- UN_PARMI('NEWMARK','HHT', ),),
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- MODE_STAT =SIMP(statut='f',typ=mode_stat),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
-
- EXCIT =FACT(statut='o',min=01,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",into=("SUIV","FIXE") ),
- CHARGE =SIMP(statut='o',typ=char_meca),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- 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") ),
- 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,
- 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") ),
- ),
- COMP_INCR =FACT(statut='f',min=01,max='**',
- RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_LINE",
- into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_ISOT_META",
- "VMIS_ECMI_TRAC","VMIS_ECMI_LINE","ENDO_FRAGILE","META_EP",
- "META_EP_PT","META_EP_RE","META_EP_PT_RE","META_EVP",
- "META_EVP_PT","META_EVP_RE","META_EVP_PT_RE","VMIS_CINE_LINE",
- "TAHERI","VISC_TAHERI","CHABOCHE","VISCOCHAB",
- "VMIS_CIN1_CHAB","VMIS_CIN2_CHAB","POLY_CFC",
- "LMARC","ROUSSELIER","VMIS_POU_LINE","VMIS_POU_FLEJOU",
- "COULOMB","ARME","ASSE_CORN","NORTON_HOFF","LEMAITRE",
- "ZIRC_CYRA2","ZIRC_EPRI","ASSE_COMBU","VENDOCHAB","NADAI_B",
- "DIS_CONTACT","DIS_CHOC","DIS_GOUJ2E_PLAS","DIS_GOUJ2E_ELAS",
- "GRILLE_ISOT_LINE","GRILLE_CINE_LINE","GRILLE_PINTO_MEN",
- "PINTO_MENEGOTTO","CJS","OHNO","GRANGER_FP","GRANGER_FP_V",
- "BETON_DOUBLE_DP","VMIS_ASYM_LINE") ),
- 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_ISOT_META =SIMP(statut='c',typ='I',defaut=2,into=(2,) ),
- VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,) ),
- VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,) ),
- ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
- META_EP =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- META_EP_PT =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- META_EP_RE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- META_EP_PT_RE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- META_EVP =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- META_EVP_PT =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- META_EVP_RE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- META_EVP_PT_RE =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,) ),
- TAHERI =SIMP(statut='c',typ='I',defaut=15,into=(15,) ),
- VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,) ),
- ROUSSELIER =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,) ),
- 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,) ),
- BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
- VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
-#
- COQUE_NCOU =SIMP(statut='f',typ='I'),
- TUYAU_NCOU =SIMP(statut='f',typ='I'),
- TUYAU_NSEC =SIMP(statut='f',typ='I'),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC",) ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- COMP_ELAS =FACT(statut='f',min=01,max='**',
- RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS",
- into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_POUTRE_GR","CABLE") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_POUTRE_GR =SIMP(statut='f',typ='I',defaut=3,into=(3,) ),
- CABLE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-#
- COQUE_NCOU =SIMP(statut='f',typ='I'),
- TUYAU_NCOU =SIMP(statut='f',typ='I'),
- TUYAU_NSEC =SIMP(statut='f',typ='I'),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN","GREEN_GR") ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- regles=(EXCLUS('EVOL_NOLI','DEPL_INIT',),
- EXCLUS('EVOL_NOLI','VITE_INIT', ),),
- INST_INIT =SIMP(statut='f',typ='R' ),
- EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
- DEPL_INIT =SIMP(statut='f',typ=cham_no_depl_r),
- VITE_INIT =SIMP(statut='f',typ=cham_no_depl_r),
- ),
- INCREMENT =FACT(statut='o',min=01,max=01,
- LIST_INST =SIMP(statut='o',typ=listr8),
- INST_INIT =SIMP(statut='f',typ='R'),
- ),
- NEWMARK =FACT(statut='f',min=01,max=01,
- ALPHA =SIMP(statut='f',typ='R',defaut= 0.25),
- DELTA =SIMP(statut='f',typ='R',defaut= 0.5),
- ),
- HHT =FACT(statut='f',min=01,max=01,
- ALPHA =SIMP(statut='f',typ='R'
- ,defaut= -0.29999999999999999 ),
- ),
- NEWTON =FACT(statut='d',min=01,max=01,
- 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),
- ),
- SOLVEUR =FACT(statut='d',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- CONVERGENCE =FACT(statut='d',min=01,max=01,
- 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 ),
- INCO_GLOB_RELA =SIMP(statut='f',typ='R'),
- 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),
- TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT","TANG_INC") ),
- RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
- into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE") ),
- ),
- 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',min=01,max=01,
- 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',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',max='**',into=("DEPL","VITE","ACCE") ),
- ),
- OBSERVATION =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
- PRESENT_PRESENT('MAILLE','POINT'),),
- NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
- into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA") ),
- 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',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,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- POINT =SIMP(statut='f',typ='I',max='**'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 16/12/97 AUTEUR CIBHHLV L.VIVAN
-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',
- BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ),
- EXCIT =FACT(statut='o',min=00,max=01,
- 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 29/08/2000 AUTEUR ACBHHCD G.DEVESA
-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-E",reentrant='f',
- regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'),
- PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
- METHODE =SIMP(statut='f',typ='TXM',defaut="EULER",
- into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
- MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
- RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
- AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- MODE_STAT =SIMP(statut='f',typ=mode_stat ),
- MODE_CORR =SIMP(statut='f',typ=mult_elas ),
-
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
- EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
- RESU_GENE =SIMP(statut='f',typ=tran_gene ),
- b_resu_gene =BLOC(condition = "RESU_GENE != None",
- INST_INIT =SIMP(statut='f',typ='R' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- ),
- INCREMENT =FACT(statut='o',min=01,max='**',
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='o',typ='R' ),
- PAS =SIMP(statut='f',typ='R' ),
- VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
- COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ),
- COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
- PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
- NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
- NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
- ),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
- regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
- LIST_ARCH =SIMP(statut='f',typ=listis ),
- PAS_ARCH =SIMP(statut='f',typ='I' ),
- ),
-
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ),
-
- EXCIT =FACT(statut='f',min=01,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'),
- PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
- PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
- VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- NUME_MODE =SIMP(statut='f',typ='I' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- 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") ),
- 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") ),
- D_FONC_DT =SIMP(statut='f',typ=fonction ),
- D_FONC_DT2 =SIMP(statut='f',typ=fonction ),
- ),
- CHOC =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- OBSTACLE =SIMP(statut='o',typ=obstacle ),
- ORIG_OBST =SIMP(statut='f',typ='R',max='**'),
- NORM_OBST =SIMP(statut='o',typ='R',max='**'),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- JEU =SIMP(statut='f',typ='R',defaut= 1. ),
- DIST_1 =SIMP(statut='f',typ='R' ),
- DIST_2 =SIMP(statut='f',typ='R' ),
- SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ),
- SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ),
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-
- LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- b_lame =BLOC(condition="LAME_FLUIDE=='OUI'",
- ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ),
- VERI_CHOC =FACT(statut='f',min=01,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='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- OBSTACLE =SIMP(statut='o',typ=obstacle ),
- ORIG_OBST =SIMP(statut='f',typ='R',max='**'),
- NORM_OBST =SIMP(statut='o',typ='R',max='**'),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- JEU =SIMP(statut='f',typ='R',defaut= 1. ),
- DIST_1 =SIMP(statut='f',typ='R' ),
- DIST_2 =SIMP(statut='f',typ='R' ),
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- FNOR_CRIT =SIMP(statut='f',typ='R' ),
- FNOR_POST_FL =SIMP(statut='f',typ='R' ),
- RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
- ),
- ANTI_SISM =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
- UN_PARMI('NOEUD_2','GROUP_NO_2'),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- C =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- RELA_EFFO_DEPL =FACT(statut='f',min=01,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='**',
- 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='**',
- 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 ),
- ),
- b_itmi =BLOC(condition = "METHODE=='ITMI'",
- regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
- BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- NB_MODE =SIMP(statut='f',typ='I' ),
- NB_MODE_FLUI =SIMP(statut='f',typ='I' ),
- NB_MODE_DIAG =SIMP(statut='f',typ='I' ),
- TS_REG_ETAB =SIMP(statut='f',typ='R' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- IMPRESSION =FACT(statut='f',min=01,max='**',
- regles=(EXCLUS('TOUT','NIVEAU'),),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- 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 30/09/97 AUTEUR VABHHTS J.PELLET
-ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-B",
- fr="Ecriture dans le fichier RESULTAT des lignes que l'on peut insérer dans la commande TEST_RESU pour tester la non-régression du contenu des objets JEVEUX composant les concepts créés au cours d'une exécution",
- 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,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 17/06/98 AUTEUR D6BHHJP J.P.LEFEBVRE
-EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",docu="U7.00.01-A",
- LOGICIEL =SIMP(statut='f',typ='TXM' ),
- ARGUMENT =FACT(statut='f',min=01,max='**',
- NOM_PARA =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& MODIF COMMANDE DATE 02/04/96 AUTEUR ACBHHCD G.DEVESA
-#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
- if AsType(vale) == mode_meca_c : return mode_meca_c
- if AsType(vale) == mode_gene : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
- fr="Extraction dans une structure de données de type mode_meca_* ou mode_gene des modes qui vérifient un certain critère et concaténation de plusieurs structures de données de même type",
- docu="U4.52.12-C",reentrant='n',
- FILTRE_MODE =FACT(statut='o',min=01,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',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',defaut="MASS_EFFE_UN"
- ,into=("MASS_EFFE_UN","MASS_GENE") ),
- b_freq_min =BLOC(condition = "FREQ_MIN != None",
- FREQ_MAX =SIMP(statut='o',typ='R' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- b_crit_extr =BLOC(condition = "CRIT_EXTR != None",
- SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- IMPRESSION =FACT(statut='f',min=01,max=01,
- 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 03/05/2000 AUTEUR CIBHHLV L.VIVAN
-def extr_resu_prod(RESULTAT,**args):
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == dyna_trans : return dyna_trans
- if AsType(RESULTAT) == dyna_harmo : return dyna_harmo
- if AsType(RESULTAT) == acou_harmo : return acou_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- if AsType(RESULTAT) == mode_acou : return mode_acou
- if AsType(RESULTAT) == mode_stat : return mode_stat
- if AsType(RESULTAT) == mult_elas : return mult_elas
- if AsType(RESULTAT) == fourier_elas : return fourier_elas
- raise AsException("type de concept resultat non prevu")
-
-EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-B",reentrant='f',
- fr="Extraction de champs pour des numéros d ordre donnés et réduction de l encombrement d une Structure de Données de type resultat",
- RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
- mode_acou,mode_stat,evol_ther,evol_noli,
- mult_elas,fourier_elas ) ),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
- 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',max='**',into=("VARI",) ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR VABHHTS J.PELLET
-def fact_grad_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
- if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
- raise AsException("type de concept resultat non prevu")
-
-FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-E",
- fr="Préconditionnement pour résolution par gradient conjugué",
- reentrant='n',
- MATR_ASSE =SIMP(statut='o',
- typ=(matr_asse_depl_r,matr_asse_temp_r,
- matr_asse_pres_r) ),
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ),
- NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 16/12/97 AUTEUR CIBHHLV L.VIVAN
-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',
- regles=(ENSEMBLE('FREQ_FIN','NB_POIN'),),
-# regle non indiquée dans la doc U
- INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- FREQ_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_FIN =SIMP(statut='f',typ='R' ),
- NB_POIN =SIMP(statut='f',typ='I',defaut= 0 ),
- SUR_ECHAN =SIMP(statut='f',typ='R',defaut= 1. ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 25/11/97 AUTEUR VABHHTS J.PELLET
-def fact_ldlt_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
- if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
- if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
- if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
- if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
- if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
- raise AsException("type de concept resultat non prevu")
-
-FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place",
- docu="U4.55.01-F",reentrant='f',
- regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
- EXCLUS('BLOC_FIN','DDL_FIN'),),
- MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
- matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NPREC =SIMP(statut='f',typ='I',defaut=8),
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ),
- BLOC_DEBUT =SIMP(statut='f',typ='I'),
- DDL_DEBUT =SIMP(statut='f',typ='I'),
- BLOC_FIN =SIMP(statut='f',typ='I'),
- DDL_FIN =SIMP(statut='f',typ='I'),
-#
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-#
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 23/02/99 AUTEUR D6BHHJP J.P.LEFEBVRE
-# NEW 5.3.23
-FERMER=PROC(nom="FERMER",op= 10,fr=" ",
- docu="U4.12.02-A",
- UNITE =SIMP(statut='o',typ='I',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 17/11/97 AUTEUR CIBHHLV L.VIVAN
-FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
- docu="U4.11.02-F",
- RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE",
- statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
-) ;
-#& MODIF COMMANDE DATE 06/05/96 AUTEUR KXBADNG T.FRIOU
-FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction,
- fr="Création d'une fonction constante (concept de type fonction), paramétrée par l'abscisse curviligne et donnant la valeur du coefficient de masse ajoutée pour une configuration du type faisceau de tubes sous écoulement transverse",
- docu="U4.35.02-C",reentrant='n',
- TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ),
-) ;
-#& MODIF COMMANDE DATE 12/09/2001 AUTEUR MCOURTOI M.COURTOIS
-FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
- fr="Définition d une fonction",reentrant = 'n',
- regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
- REEL = SIMP(typ = 'shell',max=1),
- ENTIER = SIMP(typ = 'shell',max=1),
- COMPLEXE = SIMP(typ = 'shell',max=1),
-) ;
-#& MODIF COMMANDE DATE 04/02/98 AUTEUR CIBHHLV L.VIVAN
-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',
- 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 17/10/95 AUTEUR ACBHHLB L.VIVAN
-IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
- fr="Impression des charges mécaniques de type degrés de liberté imposés et relations linéaires entre les degrés de liberté au format fichier universel IDEAS",
- docu="U7.04.31-C",
- 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 30/09/98 AUTEUR SABJLMA P.LATRUBESSE
-IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-A",
- fr="Ecriture sur fichier, du rèsultat d une analyse modale au format du code CLASSI (interaction sol structure) utilisè au SEPTEN",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ',
- 'LIST_ORDRE' ),),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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',min=01,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO', ),),
- 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 12/05/98 AUTEUR CIBHHLV L.VIVAN
-IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-F",
- fr="Impression du contenu d un concept utilisateur (pour développeur)",
- regles=(UN_PARMI('CO','CHAINE', ),),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(0,1,2) ),
- ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
- CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
- BASE =SIMP(statut='f',typ='TXM',defaut="G",into=("","G","V","L") ),
- CO =SIMP(statut='f',typ=assd),
- CHAINE =SIMP(statut='f',typ='TXM'),
- POSITION =SIMP(statut='f',typ='I',defaut=1),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHLV L.VIVAN
-IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers, sous formats appropriés, de concepts de type fonction ou de fonctions extraites de listes, de tables et de concepts résultats",
- docu="U4.33.01-D",
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- FORMAT =SIMP(statut='f',typ='TXM',position='global'
- ,into=("AGRAF","POSTSCRIPT","RESULTAT","COMMANDE","SEISME") ),
- b_agraf_post =BLOC(condition = "(FORMAT=='AGRAF') or (FORMAT=='POSTSCRIPT')",fr="Mots-clés communs AGRAF et POSTCRIPT",
- BORNE_X =SIMP(statut='f',typ='R',max=02,fr="Intervalles de variation des abcisses"),
- ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les abcisses" ),
- BORNE_Y =SIMP(statut='f',typ='R',max=02,fr="Intervalles de variation des ordonnées"),
- ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les ordonnées" ),
- ),
- b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF",
- TITRE_GRAPHIQUE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ),
- COMMENTAIRE =SIMP(statut='f',typ='TXM',max='**',fr="Commentaires associés au graphique"),
- LEGENDE_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ),
- LEGENDE_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ),
- FREQ_GRILLE_X =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage vertical" ),
- FREQ_GRILLE_Y =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage horizontal" ),
- ),
- b_post = BLOC ( condition = "(FORMAT=='POSTSCRIPT')",fr="Mots-clés propres à POSTCRIPT",
- TITRE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ),
- LABEL_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ),
- LABEL_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ),
- SORTIE =SIMP(statut='f',typ='TXM',defaut="COULEUR",into=("MONOCHROME","COULEUR"),fr="Type d impression" ),
- DATE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de la date" ),
- GRILLE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression du quadrillage" ),
- AXE_ZERO_X =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe x égal zéro" ),
- AXE_ZERO_Y =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe y égal zéro" ),
- PRESENTATION =SIMP(statut='f',typ='TXM',defaut="PAYSAGE",into=("PAYSAGE","PORTRAIT"),fr="Disposition du graphique sur la feuille" ),
- FENETRE =SIMP(statut='f',typ='TXM',defaut="RECTANGLE",into=("CARREE","RECTANGLE"),fr="Forme de la fenêtre contenant le graphique" ),
- ),
- COURBE =FACT(statut='o',min=01,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", ),
- LIST_RESU =SIMP(statut='f',typ=listr8,
- fr="Liste des ordonnees d une fonction réelle définie par deux listes", ),
-# creer le type table
- TABLE =SIMP(statut='f',typ=table,
- fr="Nom de la table dont 2 colonnes définissent la fonction",),
- FONC_X =SIMP(statut='f',typ=fonction,
- fr="Fonction abscisses d une fonction paramétrique",),
- RESU_GENE =SIMP(statut='f',typ=tran_gene,
- fr="Nom du RESU_GENE qui contient les informations liées à des noeuds de choc et qui seront tracées sous forme de fonction", ),
- b_fonction =BLOC(condition = "FONCTION != None",
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c",
- fr="Fonction complexe définie par le mot-clé fonction",
- PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
- ),
- ),
- b_list_resu =BLOC(condition = "LIST_RESU != None",
- LIST_PARA =SIMP(statut='o',typ=listr8 ),
- ),
- b_table =BLOC(condition = "TABLE != None",
- PARA_X =SIMP(statut='o',typ='TXM',fr="Paramètre de la table associé aux abcisses de la fonction à tracer" ),
- PARA_Y =SIMP(statut='o',typ='TXM',fr="Paramètre de la table associé aux ordonnées de la fonction à tracer" ),
- ),
- b_fonc_x =BLOC(condition = "FONC_X != None",
- FONC_Y =SIMP(statut='o',typ=fonction,fr="Fonction ordonnées d une fonction paramétrique" ),
- PARA =SIMP(statut='f',typ='TXM',defaut="FONC_X",into=("FONC_X","FONC_Y"),fr="Permutation des rôles des deux fonctions" ),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- ),
- b_resu_gene =BLOC(condition = "RESU_GENE != None",
- regles=(UN_PARMI('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- PARA_X =SIMP(statut='o',typ='TXM',fr="Paramètre associé aux abcisses de la fonction à tracer de la table information sur les chocs " ),
- PARA_Y =SIMP(statut='o',typ='TXM',fr="Paramètre associé aux ordonnées de la fonction à tracer de la table information sur les chocs " ),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- ),
-
-
- LEGENDE =SIMP(statut='f',typ='TXM',fr="Légende associée à la courbe" ),
- STYLE =SIMP(statut='f',typ='TXM',defaut="LIGNE",fr="Style de la ligne représentant la courbe",
- into=("LIGNE","POINTILLE","POINT","POINT_RELIE") ),
- COULEUR =SIMP(statut='f',typ='TXM',fr="Couleur associée à la courbe",
- into=("NOIR","ROUGE","VERT_FONCE","BLEU",
- "MAGENTA","CYAN","VERT","SIENNE","ORANGE",
- "POURPRE","JAUNE","DAIM","TURQUOISE","VIOLET",
- "BRUN","CORAIL","MARRON","MAUVE","MARRON_CLAIR") ),
- MARQUEUR =SIMP(statut='f',typ='TXM',fr="Type du marqueur associé à la courbe",
- into=("POINT_F","CARRE_F","TRIANGLE_F",
- "LOSANGE_F","ETOILE_F","FUSEE_F","POINT",
- "CARRE","TRIANGLE","LOSANGE","ETOILE","FUSEE",
- "PLUS","X","CERCLE","CERCLE_P","CARRE_P",
- "LOSANGE_P","CERCLE_P_X","LOSANGE_P_X",
- "CERCLE_X","CARRE_X","LOSANGE_X") ),
- b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF",
- TRI =SIMP(statut='f',typ='TXM',defaut="N",fr="Choix du tri effectué sur les abcisses ou sur les ordonnées",
- into=("N","X","Y","XY","YX") ),
- FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence d impression du marqueur associé à la courbe", ),
- ),
- ),
-) ;
-#& MODIF COMMANDE DATE 02/02/2000 AUTEUR UFBHHGN G.NICOLAS
-IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-A",
- fr="Imprimer le fichier de configurations de HOMARD",
- TRAITEMENT =FACT(statut='o',min=01,max=01,
- regles=( UN_PARMI('ADAPTATION','UNIFORME','MAJSOLUTION','INFORMATION'),),
- ADAPTATION =SIMP(statut='f',typ='TXM',
- fr="Adaptation libre",
- into=("RAFFINEMENT","DERAFFINEMENT","RAFF_DERA") ),
- UNIFORME =SIMP(statut='f',typ='TXM',
- into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ),
- MAJSOLUTION =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INFORMATION =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- b_adaptation =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) or ( MAJSOLUTION != None ) ",
- fr="Adaptation",
- NITER =SIMP(statut='o',typ='I' ),
- MAJ_CHAMP =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ) ,
- b_adaptation_libre =BLOC(condition = "ADAPTATION != None",
- fr="Adaptation libre",
- NOM_MED_INDICA =SIMP(statut='o',typ='TXM' ),
- NOM_CMP_INDICA =SIMP(statut='f',typ='TXM',defaut="ERREST",
- into=("ERREST","NUEST") ),
- NOM_MED_SUPPOR =SIMP(statut='o',typ='TXM' ),
- ) ,
- b_raffinement_libre =BLOC( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' )" ,
- fr="Critère de raffinement.",
- regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
- CRIT_RAFF_ABS =SIMP(statut='f',typ='R' ),
- CRIT_RAFF_REL =SIMP(statut='f',typ='R' ),
- CRIT_RAFF_PE =SIMP(statut='f',typ='R' ),
- ) ,
- b_deraffinement_libre =BLOC ( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' )" ,
- fr="Critère de déraffinement.",
- regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
- CRIT_DERA_ABS =SIMP(statut='f',typ='R' ),
- CRIT_DERA_REL =SIMP(statut='f',typ='R' ),
- CRIT_DERA_PE =SIMP(statut='f',typ='R' ),
- ) ,
- b_raffinement =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or ( UNIFORME == 'RAFFINEMENT' )" ,
- NIVE_MAX =SIMP(statut='f',typ='I' ),
- ) ,
- b_deraffinement =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or ( UNIFORME == 'DERAFFINEMENT' )" ,
- NIVE_MIN =SIMP(statut='f',typ='I' ),
- ) ,
- ),
- ANALYSE =FACT(statut='f',min=01,max=01,
- regles=(AU_MOINS_UN('QUALITE','INTERPENETRATION'),),
- QUALITE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- INTERPENETRATION=SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- ),
- UNITE =SIMP(statut='f',typ='I',defaut= 71 ),
- REP =SIMP(statut='f',typ='TXM' ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 27/04/98 AUTEUR CIBHHLV L.VIVAN
-IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire fichier, au format 'RESULTAT'",
- docu="U4.91.02-C",
- GENE =FACT(statut='o',min=01,max='**',
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'),
- EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
- EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
- EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
- EXCLUS('TOUT_CHAM','NOM_CHAM'),
- EXCLUS('TOUT_PARA','NOM_PARA'),),
-# faut-il faire des blocs selon le type de RESU_GENE
- RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',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") ),
- ),
- TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'),
- TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- ),
-) ;
-#& MODIF COMMANDE DATE 16/10/90 AUTEUR INCONNU INCONNU
-IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-F",
- 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",
- "OBJET","ATTRIBUT","SYSTEME") ),
- b_objet =BLOC(condition = "(ENTITE=='OBJET')",
- NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),
- NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),
- NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),
- ),
- b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')",
- NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ),
- NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
- into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
- '$$LONO','$$LUTI','$$NUM') ),
- ),
- b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')",
- CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ),
- NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',
- into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$ETAT',
- '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
- '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
- '$$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',min=01,max=01,
- NOM =SIMP(statut='f',typ='TXM' ),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- COMMENTAIRE =SIMP(statut='f',typ='TXM' ),
-) ;
-#& MODIF COMMANDE DATE 09/09/98 AUTEUR ACBHHCD G.DEVESA
-IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,fr="Impression au format fichier universel IDEAS ou au format MISS3D ou au format RESULTAT d un concept de type macr_elem_dyna",
- docu="U7.04.33-C",
- MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ),
- FICHIER =SIMP(statut='f',typ='TXM' ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
- into=("MISS_3D","IDEAS","CADYRO",) ),
- b_ideas =BLOC(condition = "FORMAT == 'IDEAS'",
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- ),
- 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='**'),
-# 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='**'),
- GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'),
- IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_cadyro =BLOC(condition = "FORMAT == 'CADYRO'",
- SQUELETTE =SIMP(statut='f',typ=squelette ),
- UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ),
- UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ),
- UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 28 ),
- IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
-
-) ;
-#& MODIF COMMANDE DATE 07/04/98 AUTEUR CIBHHGB G.BERTRAND
-IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,fr="Impression au format universel IDEAS ou au format RESULTAT des matrices élémentaires et des matrices assemblées",
- docu="U7.04.32-C",
- regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
-
- MATR_ELEM =FACT(statut='f',min=01,max='**',
- FICHIER =SIMP(statut='f',typ='TXM' ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
- into=("IDEAS","RESULTAT") ),
- b_format =BLOC(condition = "FORMAT == 'IDEAS'",
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- ),
-# créer les types matr_elem et vect_elem
- 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,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',min=01,max='**',
- FICHIER =SIMP(statut='f',typ='TXM' ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
- into=("IDEAS","RESULTAT") ),
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
-# créer le type matr_elem
- 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,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='**'),
- GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",
- into=("VALEUR","NOEUD") ),
- NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ),
- VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,fr="Permet de transmettre au format MISS3D la contribution des charges internes à une superstructure sous forme d un second membre projeté sur la base modale (modes propres ou contraints), les signaux d excitation harmonique ou transitoire",
- docu="U7.04.11-C",
- 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='**',
- 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='**',
- DIRECTION =SIMP(statut='o',typ='R',max='**'),
- FONC_SIGNAL =SIMP(statut='f',typ=fonction ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",
- into=("DEPL","VITE","ACCE","FORC",) ),
- ),
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- FREQ_INIT =SIMP(statut='f',typ='R' ),
- FREQ_FIN =SIMP(statut='f',typ='R' ),
- PAS =SIMP(statut='o',typ='R' ),
- UNITE =SIMP(statut='f',typ='I',defaut= 26 ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 19/06/2000 AUTEUR DURAND C.DURAND
-IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-E",
- fr="Impression du résultat d un calcul (différents formats)",
- MODELE =SIMP(statut='f',typ=modele),
- RESU =FACT(statut='o',min=01,max='**',
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED") ),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
-
- regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
- EXCLUS('CHAM_GD','RESULTAT'),),
- MAILLAGE =SIMP(statut='f',typ=(maillage,squelette)),
- INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- CHAM_GD =SIMP(statut='f',typ=cham_gd),
- RESULTAT =SIMP(statut='f',typ=resultat),# CO() sd a creer !!!
-
- b_extrac =BLOC(condition="RESULTAT != None",
- fr="extraction d un champ de grandeur",
- regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
- EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
- 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),),
- TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
-
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',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',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)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
-
- b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
- regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
- INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
- NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
- FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-
- b_cmp =BLOC(condition="""(RESULTAT != None)and((FORMAT == 'RESULTAT')or(FORMAT == 'ENSIGHT'))""",
- fr="sélection des composantes",
- regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
-
- b_topologie =BLOC(condition="""(RESULTAT != None)and((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS'))""",
- fr="sélection des entités toplogiques",
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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')",
- fr="sélection sur les valeurs",
- VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- BORNE_SUP =SIMP(statut='f',typ='R'),
- BORNE_INF =SIMP(statut='f',typ='R'),
- IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
- ),
-
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- FICHIER =SIMP(statut='f',typ='TXM'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 18/04/2000 AUTEUR D6BHHBQ B.QUINNEZ
-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",
- MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
- MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
- TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
- fr="Type d analyse" ),
- b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
- fr="Recheche du nombre de fréquences propres",
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ),
- FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
- ),
- b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- fr="Recherche du nombre de charges critiques",
- CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ),
- CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
- ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- 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 22/07/99 AUTEUR CIBHHLV L.VIVAN
-IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-C",
- fr="Impression d un concept de type table",
- TABLE =SIMP(statut='o',typ=table),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT", ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",
- into=("EXCEL","AGRAF","MOT_CLE","TABLEAU") ),
- FILTRE =FACT(statut='f',min=01,max='**',
- NOM_PARA =SIMP(statut='o',typ='TXM'),
- CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ",
- into=("EQ","LT","GT","NE","LE","GE","VIDE",
- "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
- VALE =SIMP(statut='f',typ='R'),
- VALE_I =SIMP(statut='f',typ='I'),
- VALE_C =SIMP(statut='f',typ='C'),
- VALE_K =SIMP(statut='f',typ='TXM'),
- VALE_CO =SIMP(statut='f',typ=geom),
- 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',min=01,max=01,
- NOM_PARA =SIMP(statut='o',typ='TXM',max='**'),
- ORDRE =SIMP(statut='f',typ='TXM',max='**',defaut="CROISSANT",
- into=("CROISSANT","DECROISSANT") ),
- ),
- PAGINATION =SIMP(statut='f',typ='TXM',max='**'),
- 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',max='**'),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",)),
- IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
- 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 07/02/2001 AUTEUR DURAND C.DURAND
-INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-a",
- 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=01,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 08/03/2000 AUTEUR CIBHHPD P.DAVID
-INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-E",
- fr="Définition d une courbe sur un maillage 2D",reentrant='n',
- regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
- EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
- EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
- 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='f',min=01,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,max=1),
- GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
- EXTREMITE =SIMP(statut='f',typ='R',max='**'),
- NOEUD_EXTR =SIMP(statut='f',typ=no,max=1),
- GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
- ),
- DEFI_ARC =FACT(statut='f',min=01,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',max='**' ),
- 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),
- SECTEUR =SIMP(statut='f',typ='R',min=2,max=2),
- ORIGINE =SIMP(statut='f',typ='R',min=2,max=2),
- 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,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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
- 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 08/03/2000 AUTEUR CIBHHPD P.DAVID
-INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface,docu="U4.81.12-E",
- 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='**',
- 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,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,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 02/02/2000 AUTEUR UFBHHGN G.NICOLAS
-def lire_champ_prod(TYPE=None,**args):
- if TYPE == "CHAM_NO_TEMP_R" : return cham_no_temp_r
- if TYPE == "CHAM_NO_DEPL_R" : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
- fr="Lire un champ dans un fichier et le stocker dans un concept.",
- docu="U7.02.02-A",reentrant='n',
-#
-# 1. Le maillage support du champ
-#
- MAILLAGE =SIMP(statut='o',typ=maillage ),
-#
-# 2. Format de lecture
-# Remarque : seul MED est operationnel dans cette version.
-#
- FORMAT =SIMP(statut='o',typ='TXM',defaut="MED",into=("MED",) ),
-#
-# 3. L'unite logique du fichier.
-#
- UNITE =SIMP(statut='f',typ='I',defaut= 81 ),
- #
-# 3. Pour le format MED, il faut preciser le nom sous lequel le champ est connu dans le fichier
-#
- b_format =BLOC(condition = "FORMAT == 'MED'",
- fr="Nom du champ dans le fichier MED",
- NOM_MED =SIMP(statut='o',typ='TXM' ),),
-#
-# 4. Le type du concept lu
-#
- TYPE =SIMP(statut='o',typ='TXM',into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R") ),
-#
-# 5. Le niveau d'information
-#
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op= 83,sd_prod=fonction,
- fr="Lecture d une fonction dans un fichier ",
- docu="U4.32.02-E",reentrant='n',
- UNITE =SIMP(statut='o',typ='I' ),
- NOM_PARA =SIMP(statut='f',typ='TXM',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- NOM_PARA_FONC =SIMP(statut='f',typ='TXM',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
- PROL_DROIT_FONC =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR SABJLMA P.LATRUBESSE
-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-E",reentrant='n',
- 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',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 19/06/2000 AUTEUR DURAND C.DURAND
-LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage,
- fr="Lecture d un fichier de maillage",
- docu="U4.21.01-F",reentrant='n',
- UNITE =SIMP(statut='f',typ='I',defaut= 20 ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED") ),
- ABSC_CURV =FACT(statut='f',min=00,max=01,
- TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- VERI_MAIL =FACT(statut='d',min=01,max=01,
- APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ),
- INFO_MED =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN
-def lire_miss_3d_prod(TYPE_RESU,**args):
- if TYPE_RESU == "TRANS" : return dyna_trans
- if TYPE_RESU == "HARMO" : return dyna_harmo
- raise AsException("type de concept resultat non prevu")
-
-LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
- fr="Restitution au format MISS3D d une évolution harmonique ou transitoire",
- docu="U7.02.31-C",reentrant='n',
- MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ),
- UNITE =SIMP(statut='f',typ='I',defaut= 27 ),
- TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 08/09/98 AUTEUR CIBHHLV L.VIVAN
-LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
- fr=" ",
- docu="U7.02.11-A",reentrant='n',
- regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
- UNITE =SIMP(statut='f',typ='I',defaut= 19 ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
- MAIL_PLEXUS =SIMP(statut='o',typ=maillage ),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
- into=("RELATIF","ABSOLU") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHLV L.VIVAN
-def lire_resu_prod(TYPE_RESU,**args):
- if TYPE_RESU == "EVOL_CHAR" : return evol_char
- if TYPE_RESU == "EVOL_THER" : return evol_ther
- if TYPE_RESU == "EVOL_ELAS" : return evol_elas
- if TYPE_RESU == "EVOL_NOLI" : return evol_noli
- if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
- if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
- if TYPE_RESU == "HARM_GENE" : return harm_gene
- 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-C",reentrant='n',
- fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier au format universel DEAS ou au format EnSight",
- regles=(UN_PARMI('MAILLAGE','MODELE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","ENSIGHT","MED") ),
- b_unite =BLOC(condition="FORMAT=='IDEAS'",
- UNITE =SIMP(statut='f',typ='I',defaut= 19 ),
- ),
- b_nom_fichier =BLOC(condition="FORMAT=='ENSIGHT'",
- NOM_FICHIER =SIMP(statut='f',typ='TXM'),
- ),
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI",
- "DYNA_TRANS","DYNA_HARMO","HARM_GENE","EVOL_CHAR") ),
- 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",) ),
- ),
- 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_dyna =BLOC(condition="(TYPE_RESU=='DYNA_TRANS') or (TYPE_RESU=='DYNA_HARMO') or(TYPE_RESU=='HARM_GENE')",
- NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("DEPL","VITE","ACCE",) ),
- ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
- MAILLAGE =SIMP(statut='f',typ=maillage),
- MODELE =SIMP(statut='f',typ=modele),
- NB_VARI =SIMP(statut='f',typ='I' ),
- FORMAT_IDEAS =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
- NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("TEMP","DEPL","VITE","ACCE","PRES","VARI_ELNO",
- "SIEF_ELNO","EPSA_ELNO","TEMP_PEAU") ),
- NUME_DATASET =SIMP(statut='f',typ='I',into=(55,57,2414) ),
- RECORD_3 =SIMP(statut='f',typ='I',max='**'),
- RECORD_6 =SIMP(statut='f',typ='I',max='**'),
- RECORD_9 =SIMP(statut='f',typ='I',max='**'),
- POSI_ORDRE =SIMP(statut='o',typ='I',max='**'),
- POSI_INST =SIMP(statut='f',typ='I',max='**'),
- POSI_FREQ =SIMP(statut='f',typ='I',max='**'),
- NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),
- ),
- 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',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',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)",
- 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='**'),
-) ;
-#& MODIF COMMANDE DATE 19/06/2000 AUTEUR DURAND C.DURAND
-def macr_adap_mail_prod(self,MAJ_CHAMP,ADAPTATION,**args):
- mail1=ADAPTATION['MAILLAGE_N']
- self.type_sdprod(mail1,maillage)
- mail2=ADAPTATION['MAILLAGE_NP1']
- self.type_sdprod(mail2,maillage)
- if MAJ_CHAMP == None:return None
- for ch in MAJ_CHAMP:
- t=ch['TYPE_CHAMP']
- if t == 'CHAM_NO_TEMP_R':self.type_sdprod(ch['CHAMP_MAJ'],cham_no_temp_r)
- if t == 'CHAM_NO_DEPL_R':self.type_sdprod(ch['CHAMP_MAJ'],cham_no_depl_r)
- return None
-
-MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=-24,sd_prod=macr_adap_mail_prod,
- fr="Adapter un maillage avec le logiciel HOMARD.",
- docu="U7.03.01-A",
- VERSION_HOMARD =SIMP(statut='f',typ='TXM',defaut="V3_15",
- into=("V3_15","V3_N","V3_N_PERSO",) ),
- ADAPTATION =FACT(statut='o',min=01,max=01,
- regles=(
- UN_PARMI('LIBRE','UNIFORME'),
- ),
- LIBRE =SIMP(statut='f',typ='TXM',
- into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT") ),
- UNIFORME =SIMP(statut='f',typ='TXM',
- into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ),
- MAILLAGE_N =SIMP(statut='o',typ=(CO,maillage) ),
- MAILLAGE_NP1 =SIMP(statut='o',typ=(CO,maillage) ),
- b_adaptation_libre =BLOC( condition = " LIBRE != None " ,
- fr="Indicateur d erreur",
- RESULTAT_N =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther ) ),
- INDICATEUR =SIMP(statut='o',typ='TXM',
- into=("ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2","ERRE_ELGA_NORE") ),
- NOM_CMP_INDICA =SIMP(statut='f',typ='TXM',defaut="ERREST",
- into=("ERREST","NUEST") ),
- NUME_ORDRE =SIMP(statut='f',typ='I' ),
- ) ,
- b_raffinement_libre =BLOC( condition = "( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' )" ,
- fr="Critère de raffinement.",
- regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
- CRIT_RAFF_ABS =SIMP(statut='f',typ='R' ),
- CRIT_RAFF_REL =SIMP(statut='f',typ='R' ),
- CRIT_RAFF_PE =SIMP(statut='f',typ='R' ),
- ) ,
- b_deraffinement_libre =BLOC ( condition = "( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' )" ,
- fr="Crit\350re de déraffinement.",
- regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
- CRIT_DERA_ABS =SIMP(statut='f',typ='R' ),
- CRIT_DERA_REL =SIMP(statut='f',typ='R' ),
- CRIT_DERA_PE =SIMP(statut='f',typ='R' ),
- ) ,
- b_raffinement =BLOC ( condition = " ( ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) ) or ( ( UNIFORME != None ) and ( UNIFORME == 'RAFFINEMENT' ) ) " ,
- NIVE_MAX =SIMP(statut='f',typ='I' ),
- ) ,
- b_deraffinement =BLOC ( condition = " ( ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) ) or ( ( UNIFORME != None ) and ( UNIFORME == 'DERAFFINEMENT' ) ) " ,
- NIVE_MIN =SIMP(statut='f',typ='I' ),
- ) ,
- ),
- MAJ_CHAMP =FACT(statut='f',min=01,max='**',
- RESULTAT =SIMP(statut='o',
- typ=(evol_elas,evol_noli,evol_ther) ),
- NOM_CHAM =SIMP(statut='o',typ='TXM' ),
- NUME_ORDRE =SIMP(statut='f',typ='I' ),
- CHAMP_MAJ =SIMP(statut='o',typ=(CO,cham_gd)),
- TYPE_CHAMP =SIMP(statut='o',typ='TXM',
- into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R") ),
- ),
- QUALITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- MENAGE =SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 20/10/2000 AUTEUR F1BHHAJ J.ANGLES
-def macr_ascouf_calc_prod(self,MODELE,**args):
- self.type_sdprod(MODELE,modele)
- return evol_noli
-
-MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_prod,
- fr=" ",
- docu="U4.CF.20-A",reentrant='n',
- regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
- TYPE_MAILLAGE =SIMP(statut='o',typ='TXM',
- into=("SAIN",
- "FISS_COUDE",
- "SOUS_EPAIS_COUDE"
- ) ),
- CL_BOL_P2_GV =FACT(statut='f',min=01,max=01,
- ANGLE =SIMP(statut='o',typ='R' ),
- AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ),
- ),
- MAILLAGE =SIMP(statut='o',typ=maillage ),
- MODELE =SIMP(statut='o',typ=(CO,modele)),
- AFFE_MATERIAU =FACT(statut='o',min=01,max=03,
- regles=(UN_PARMI('TOUT','GROUP_MA'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ),
- MATER =SIMP(statut='o',typ=mater ),
- TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- PRES_REP =FACT(statut='f',min=01,max=01,
- PRES =SIMP(statut='o',typ='R' ),
- EFFE_FOND_P1 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- ),
- ECHANGE =FACT(statut='f',min=01,max=01,
- COEF_H =SIMP(statut='f',typ=fonction ),
- TEMP_EXT =SIMP(statut='f',typ=fonction ),
- ),
- TORS_P1 =FACT(statut='f',min=01,max=06,
- regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
- FX =SIMP(statut='f',typ='R' ),
- FY =SIMP(statut='f',typ='R' ),
- FZ =SIMP(statut='f',typ='R' ),
- MX =SIMP(statut='f',typ='R' ),
- MY =SIMP(statut='f',typ='R' ),
- MZ =SIMP(statut='f',typ='R' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- ),
- COMP_INCR =FACT(statut='f',min=01,max=01,
- 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',min=01,max=01,
- 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',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- CONVERGENCE =FACT(statut='d',min=01,max=01,
- RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
- RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
- ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
- ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"),
- 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")),
- ),
- NEWTON =FACT(statut='d',min=01,max=01,
- 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',min=01,max=01,
- 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',min=01,max=01,
- LIST_INST =SIMP(statut='o',typ=listr8 ),
- NUME_INST_INIT =SIMP(statut='f',typ='I' ),
- NUME_INST_FIN =SIMP(statut='f',typ='I' ),
- ),
- THETA_3D =FACT(statut='f',min=01,max='**',
- R_INF =SIMP(statut='o',typ='R' ),
- R_SUP =SIMP(statut='o',typ='R' ),
- ),
- IMPR_TABLE =FACT(statut='f',min=01,max=01,
- regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ),
- PRESENT_PRESENT('TOUT_PARA','ANGLE', ),
- UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),),
- NOM_PARA =SIMP(statut='f',typ='TXM',max=04,
- into=("TRESCA_MEMBRANE",
- "TRESCA_MFLE",
- "TRESCA",
- "SI_LONG"
- ) ),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- ANGLE =SIMP(statut='f',typ='R',max='**' ),
- R_CINTR =SIMP(statut='f',typ='R',max='**' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ),
- POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ),
- ),
- IMPRESSION =FACT(statut='f',min=01,max=01,
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
- 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 02/10/2000 AUTEUR F1BHHAJ J.ANGLES
-MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op= -19,sd_prod=maillage,
- fr=" ",docu="U4.CF.10-A",reentrant='n',
- regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
- EXEC_MAILLAGE =FACT(statut='o',min=01,max=01,
- LOGICIEL =SIMP(statut='o',typ='TXM',into=("GIBI",) ),
- UNITE_DATG =SIMP(statut='f',typ='I',defaut=70),
- UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19),
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
- ),
- TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
- COUDE =FACT(statut='o',min=01,max=01,
- regles=( UN_PARMI('DEXT', 'DEXT_T1'),
- ENSEMBLE('DEXT', 'EPAIS'),
- ENSEMBLE('DEXT_T1', 'EPAIS_T1', 'EPAIS_T2',
- 'ANGL_TETA1'),
- ENSEMBLE('EPAIS_TI', 'ANGL_TETA2'),
- PRESENT_ABSENT('ABSC_CURV_TRAN', 'POSI_ANGU_TRAN'),
- PRESENT_PRESENT('ABSC_CURV_TRAN', 'DEXT_T1'),
- PRESENT_PRESENT('POSI_ANGU_TRAN', 'DEXT_T1'),
- PRESENT_PRESENT('EPAIS_TI', 'DEXT_T1'),
- PRESENT_ABSENT('DEXT_T1', 'SUR_EPAIS'),
- PRESENT_ABSENT('DEXT_T1', 'BOL_P2'),),
- ANGLE =SIMP(statut='o',typ='R' ),
- R_CINTR =SIMP(statut='o',typ='R' ),
- L_TUBE_P1 =SIMP(statut='o',typ='R' ),
- L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
- NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
- TRAN_EPAIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- DEXT =SIMP(statut='f',typ='R' ),
- EPAIS =SIMP(statut='f',typ='R' ),
- DEXT_T1 =SIMP(statut='f',typ='R' ),
- EPAIS_T1 =SIMP(statut='f',typ='R' ),
- EPAIS_T2 =SIMP(statut='f',typ='R' ),
- EPAIS_TI =SIMP(statut='f',typ='R' ),
- ANGL_TETA1 =SIMP(statut='f',typ='R' ),
- ANGL_TETA2 =SIMP(statut='f',typ='R' ),
- ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ),
- POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ),
- ),
- SOUS_EPAIS_COUDE=FACT(statut='f',min=01,max=01,
- regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
- UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
- TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
- AXE_CIRC =SIMP(statut='f',typ='R' ),
- AXE_LONGI =SIMP(statut='o',typ='R' ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- POSI_CURV_CIRC =SIMP(statut='f',typ='R' ),
- AZIMUT =SIMP(statut='f',typ='R' ),
- SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
- NB_ELEM_LONGI =SIMP(statut='o',typ='I' ),
- NB_ELEM_CIRC =SIMP(statut='o',typ='I' ),
- NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ),
- EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- SOUS_EPAIS_MULTI=FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
- UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
- TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
- AXE_CIRC =SIMP(statut='f',typ='R' ),
- AXE_LONGI =SIMP(statut='o',typ='R' ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- POSI_CURV_CIRC =SIMP(statut='f',typ='R' ),
- AZIMUT =SIMP(statut='f',typ='R' ),
- SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
- NB_ELEM_LONGI =SIMP(statut='o',typ='I' ),
- NB_ELEM_CIRC =SIMP(statut='o',typ='I' ),
- EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- FISS_COUDE =FACT(statut='f',min=01,max=01,
- regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),),
- AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- LONGUEUR =SIMP(statut='o',typ='R' ),
- ABSC_CURV =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
- AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ),
- ORIEN =SIMP(statut='o',typ='R',
- into=(45.,-45.,90.,0.E+0) ),
- NB_TRANCHE =SIMP(statut='o',typ='I' ),
- NB_SECTEUR =SIMP(statut='o',typ='I' ),
- NB_COURONNE =SIMP(statut='o',typ='I' ),
- RAYON_TORE =SIMP(statut='f',typ='R' ),
- COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ),
- COEF_MULT_RC3 =SIMP(statut='f',typ='R' ),
- ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ),
- ),
- IMPRESSION =FACT(statut='f',min=01,max='**',
- regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",
- into=("ASTER","IDEAS","CASTEM") ),
- FICHIER =SIMP(statut='f',typ='TXM' ),
- UNITE =SIMP(statut='f',typ='I' ),
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=(4,5) ),
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut= 10,into=(3,10) ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 20/10/2000 AUTEUR F1BHHAJ J.ANGLES
-def macr_aspic_calc_prod(self,RESU_THER,MODELE,**args):
- if MODELE != None:self.type_sdprod(MODELE,modele)
- if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther)
- return evol_noli
-
-MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod,
- fr=" ",docu="U4.PC.20-A",reentrant='n',
- TYPE_MAILLAGE =SIMP(statut='o',typ='TXM',
- into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB",
- "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ),
- TUBULURE =FACT(statut='f',min=01,max=01,
- TYPE =SIMP(statut='f',typ='TXM',defaut="TYPE_1",into=("TYPE_1","TYPE_2") ),
- ),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- MODELE =SIMP(statut='f',typ=(CO,modele)),
- RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)),
- AFFE_MATERIAU =FACT(statut='o',min=01,max=03,
- regles=(UN_PARMI('TOUT','GROUP_MA'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- GROUP_MA =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ),
- MATER =SIMP(statut='o',typ=mater),
- TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- EQUILIBRE =FACT(statut='o',min=01,max=01,
- NOEUD =SIMP(statut='o',typ=no),
- ),
- PRES_REP =FACT(statut='o',min=01,max=01,
- 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),
- ),
- ECHANGE =FACT(statut='f',min=01,max=01,
- COEF_H_TUBU =SIMP(statut='o',typ=fonction),
- COEF_H_CORP =SIMP(statut='o',typ=fonction),
- TEMP_EXT =SIMP(statut='o',typ=fonction),
- ),
- TORS_CORP =FACT(statut='f',min=01,max=06,
- regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
- NOEUD =SIMP(statut='o',typ=no),
- FX =SIMP(statut='f',typ='R'),
- FY =SIMP(statut='f',typ='R'),
- FZ =SIMP(statut='f',typ='R'),
- MX =SIMP(statut='f',typ='R'),
- MY =SIMP(statut='f',typ='R'),
- MZ =SIMP(statut='f',typ='R'),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
- TORS_TUBU =FACT(statut='f',min=01,max=06,
- regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
- FX =SIMP(statut='f',typ='R'),
- FY =SIMP(statut='f',typ='R'),
- FZ =SIMP(statut='f',typ='R'),
- MX =SIMP(statut='f',typ='R'),
- MY =SIMP(statut='f',typ='R'),
- MZ =SIMP(statut='f',typ='R'),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
- COMP_ELAS =FACT(statut='o',min=01,max=01,
- 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',min=01,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",) ),
- BORNES =FACT(statut='f',min=01,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',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- ),
- CONVERGENCE =FACT(statut='d',min=01,max=01,
- RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
- RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
- ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
- ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"),
- 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")),
- ),
- NEWTON =FACT(statut='d',min=01,max=01,
- 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',min=01,max=01,
- 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',min=01,max=01,
- LIST_INST =SIMP(statut='o',typ=listr8),
- NUME_INST_INIT =SIMP(statut='f',typ='I'),
- NUME_INST_FIN =SIMP(statut='f',typ='I'),
- ),
- PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1),
- IMPRESSION =FACT(statut='f',min=01,max=01,
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT","ASTER","CASTEM","IDEAS")),
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM'),
-) ;
-#& MODIF COMMANDE DATE 01/02/2000 AUTEUR CIBHHBC B.CIREE
-MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='n',
- fr=" ",docu="U4.PC.10-A",
- TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
- RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
- EXEC_MAILLAGE =FACT(statut='o',min=01,max=01,
- LOGICIEL =SIMP(statut='o',typ='TXM',into=("GIBI",)),
- 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)),
- ),
- TUBULURE =FACT(statut='o',min=01,max=01,
- E_BASE =SIMP(statut='o',typ='R'),
- DEXT_BASE =SIMP(statut='o',typ='R'),
- L_BASE =SIMP(statut='o',typ='R'),
- L_CHANF =SIMP(statut='o',typ='R'),
- E_TUBU =SIMP(statut='o',typ='R'),
- DEXT_TUBU =SIMP(statut='o',typ='R'),
- Z_MAX =SIMP(statut='o',typ='R'),
- TYPE =SIMP(statut='f',typ='TXM',defaut="TYPE_1",into=("TYPE_1","TYPE_2")),
- L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- ),
- SOUDURE =FACT(statut='o',min=01,max=01,
- 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',min=01,max=01,
- 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',min=01,max=01,
- TYPE =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")),
- AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- PROFONDEUR =SIMP(statut='o',typ='R'),
- LONGUEUR =SIMP(statut='f',typ='R'),
- AZIMUT =SIMP(statut='o',typ='R'),
- RAYON_TORE =SIMP(statut='f',typ='R'),
- POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
- FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
- LIGA_INT =SIMP(statut='f',typ='R'),
- ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- COEF_MULT_RC1 =SIMP(statut='f',typ='R'),
- COEF_MULT_RC2 =SIMP(statut='f',typ='R'),
- COEF_MULT_RC3 =SIMP(statut='f',typ='R'),
- NB_TRANCHE =SIMP(statut='f',typ='I'),
- NB_SECTEUR =SIMP(statut='f',typ='I'),
- NB_COURONNE =SIMP(statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=01,max='**',
- regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
- FICHIER =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN
-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-D",reentrant='n',
- regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),),
- BASE_MODALE =SIMP(statut='o',typ=base_modale ),
- MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r ),
- MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ),
- MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ") ),
-) ;
-#& MODIF COMMANDE DATE 08/03/94 AUTEUR VABHHT2 G.BERTRAND
-MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.62.01-E",reentrant='f',
- 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',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),
- CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca),
- INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
- NMAX_CAS =SIMP(statut='f',typ='I',defaut=10),
- NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10),
- ),
- EXTERIEUR =FACT(statut='f',min=1,max=1,
- regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- ),
- RIGI_MECA =FACT(statut='f',min=1,max=1,
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- ),
- MASS_MECA =FACT(statut='f',min=1,max=1,
- BIDO1 =SIMP(statut='f',typ='I',defaut=0),
- ),
- 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,max='**'),
- INST =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),
-) ;
-#& MODIF COMMANDE DATE 15/09/1999 AUTEUR F1BHHAJ J.ANGLES
-MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli,
- fr=" ",docu="U4.GJ.20-A",reentrant='n',
- MAILLAGE =SIMP(statut='o',typ=maillage),
- DEFI_GOUJ =FACT(statut='o',min=01,max=01,
- 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_TRONQUE =SIMP(statut='f',typ='I',max='**'),
- FILET_TRONQA =SIMP(statut='f',typ='I',max='**'),
- FILET_TRONQB =SIMP(statut='f',typ='I',max='**'),
- FILET_JEU_HT =SIMP(statut='f',typ='I',max='**'),
- 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,
- 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,
- 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,
- 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 02/02/2000 AUTEUR F1BHHAJ J.ANGLES
-MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage,
- fr=" ",docu="U4.GJ.10-A",reentrant='n',
- EXEC_MAILLAGE =FACT(statut='o',min=01,max=01,
- LOGICIEL =SIMP(statut='o',typ='TXM',into=("GIBI",) ),
- 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',min=01,max=01,
- 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',min=01,max=01,
- 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',max='**'),
- ),
- IMPRESSION =FACT(statut='f',min=01,max=01,
- regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED")),
- FICHIER =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 19/06/2000 AUTEUR DURAND C.DURAND
-MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-A",
- fr="Donner des informations sur un maillage.",
-#
-# 1. Le nom du maillage a analyser
-#
- MAILLAGE =SIMP(statut='o',typ=maillage),
-#
-# 2. Determination de la qualite des elements du maillage
-# Par defaut, rien ne se fait
-#
- QUALITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
-#
-# 3. Controle de la non-interpenetration des elements
-# Par defaut, rien ne se fait
-#
- INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
-#
-# 4. Version homard
-#
- VERSION_HOMARD =SIMP(statut='f',typ='TXM',defaut="V3_15",into=("V3_15","V3_N","V3_N_PERSO")),
-#
-# 5. Le niveau d'information
-#
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 02/06/99 AUTEUR CIBHHLV L.VIVAN
-MACR_PRE_SYRTHES=MACRO(nom="MACR_PRE_SYRTHES",op=-21,fr=" ",docu="U7.02.21-A",
- MAILLAGE =FACT(statut='d',min=01,max=01,
- UNITE_SYRTHES =SIMP(statut='f',typ='I',defaut=13),
- UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19),
- ),
- RESULTAT =FACT(statut='d',min=01,max=01,
- UNITE_SYRTHES =SIMP(statut='f',typ='I',defaut=31),
- UNITE_IDEAS =SIMP(statut='f',typ='I',defaut= 91 ),
- ),
-) ;
-#& MODIF COMMANDE DATE 17/11/1999 AUTEUR CIBHHGB G.BERTRAND
-MACRO_CARA_POUTRE=MACRO(nom="MACRO_CARA_POUTRE",op=-11,sd_prod=tabl_cara_geom,
- docu="U4.42.02-C",reentrant='n',
- fr="Détermination des caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
- regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
- EXCLUS('SYME_Y','GROUP_MA_BORD'),
- 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")),
- 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='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_MA_INTE =SIMP(statut='f',typ=grma,max='**'),
- LONGUEUR =SIMP(statut='f',typ='R'),
- MATERIAU =SIMP(statut='f',typ=mater),
- LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 30/06/98 AUTEUR CIBHHGB G.BERTRAND
-MACRO_CHAR_F_U=MACRO(nom="MACRO_CHAR_F_U",op=-15,sd_prod=char_meca,
- fr=" ",docu="U4.72.07-A",reentrant='n',
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- CHARGE =SIMP(statut='o',typ=char_meca),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- COEF_IMPO =SIMP(statut='f',typ='R',defaut=1.0E+0),
- 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 05/06/2000 AUTEUR CIBHHLV L.VIVAN
-def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
- self.type_sdprod(NUME_DDL,nume_ddl)
- if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas
- if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
- raise AsException("type de concept resultat non prevu")
-
-MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=-10,sd_prod=macro_elas_mult_prod,docu="U4.51.02-C",reentrant='f',
- fr="Permet la réalisation d une analyse statique linéaire multi cas de charges ou la réalisation des calculs de plusieurs modes de Fourier sur un modèle axisymétrique",
- 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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- NUME_DDL =SIMP(statut='f',typ=(CO,nume_ddl)),# CO()
- 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',min=01,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,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",
- "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",
- "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI",
- "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA",
- "ERRE_ELEM_NOZ2","VNOR_ELEM_DEPL","ERRE_ELNO_ELGA","SIRE_ELNO_DEPL",
- "ERRE_ELGA_NORE","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
- "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL",
- "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")),
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r),
- ),
-#
-# attention d après la documentation U4-02-04B (solveur), PRE_COND figure uniquement avec la méthode GCPC
-#
- SOLVEUR =FACT(statut='d',min=01,max=01,
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ),
- b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
- RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-MACRO_MADMACS=MACRO(nom="MACRO_MADMACS",op=-9,docu="U7.03.21-C",
- fr="Impression au format fichier universel IDEAS des données nécessaires au chaînage entre Code_Aster et MADMACS",
- regles=(UN_PARMI('MATR_ELEM_RIGI','MATR_RIGI'),
- UN_PARMI('MATR_ELEM_MASS','MATR_MASS'),
- PRESENT_ABSENT('MATR_ELEM_AMOR','MATR_AMOR'),),
- 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,)),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- NUME_DDL =SIMP(statut='o',typ=nume_ddl),
- CHARGE =SIMP(statut='o',typ=char_meca,max='**'),
- MATR_ELEM_RIGI =SIMP(statut='f',typ=matr_elem_depl_r),
- MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r),
- MATR_ELEM_MASS =SIMP(statut='f',typ=matr_elem_depl_r),
- MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r),
- MATR_ELEM_AMOR =SIMP(statut='f',typ=matr_elem_depl_r),
- 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='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO'),
- UN_PARMI('DDL_ACTIF','MASQUE'),),
- NOM =SIMP(statut='o',typ='TXM'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'),
- MASQUE =SIMP(statut='f',typ='TXM',max='**'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE
-def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,**args):
- self.type_sdprod(MATR_AMOR_AJOU,matr_asse_depl_r)
- self.type_sdprod(MATR_MASS_AJOU,matr_asse_depl_r)
- self.type_sdprod(MATR_RIGI_AJOU,matr_asse_depl_r)
- return None
-
-MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-B",sd_prod=macro_matr_ajou_prod,
- fr="Calcul les matrices de masse, d amortissement ou de rigidité ajoutées qu induit un fluide parfait, incompressible, au repos ou en écoulement potentiel, sur une structure en 2D, 2D axisymétrique ou en 3D",
- 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'),),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- 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',min=01,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',min=01,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO'),
- UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- PRES_FLUIDE =SIMP(statut='f',typ='R'),
- PRES_SORTIE =SIMP(statut='f',typ='R'),
- ),
- ECOULEMENT =FACT(statut='f',min=01,max='**',
- GROUP_MA_1 =SIMP(statut='o',typ=grma),
- GROUP_MA_2 =SIMP(statut='o',typ=grma),
- VNOR_1 =SIMP(statut='o',typ='R'),
- VNOR_2 =SIMP(statut='f',typ='R'),
- POTENTIEL =SIMP(statut='f',typ=evol_ther),
- ),
- MODE_MECA =SIMP(statut='f',typ=mode_meca),
- DEPL_IMPO =SIMP(statut='f',typ=cham_no_depl_r),
- MODELE_GENE =SIMP(statut='f',typ=modele_gene),
- NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene),
- DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2),
- MATR_MASS_AJOU =SIMP(statut='f',typ=(CO,matr_asse)),
- MATR_RIGI_AJOU =SIMP(statut='f',typ=(CO,matr_asse)),
- MATR_AMOR_AJOU =SIMP(statut='f',typ=(CO,matr_asse)),
- SOLVEUR =FACT(statut='d',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET
-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" ,
- "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r
- if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c
- if opti == "RIGI_THER" : t= matr_asse_temp_r
- if opti == "MASS_THER" : t= matr_asse_temp_r
- if opti == "RIGI_THER_CONV" : t= matr_asse_temp_r
- if opti == "RIGI_THER_CONV_D" : t= matr_asse_temp_r
- if opti == "RIGI_ACOU" : t= matr_asse_pres_c
- if opti == "MASS_ACOU" : t= matr_asse_pres_c
- if opti == "AMOR_ACOU" : t= matr_asse_pres_c
- self.type_sdprod(m['MATRICE'],t)
- return None
-
-MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=-6,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")),
- TAILLE_BLOC =SIMP(statut='f',typ='R'),
- 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")),
- 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)),
-) ;
-#& MODIF COMMANDE DATE 02/02/99 AUTEUR ACBHHCD G.DEVESA
-MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=-18,fr=" ",docu="U7.03.11-A",
- OPTION =FACT(statut='o',min=01,max=01,
- regles=(UN_PARMI('TOUT','MODULE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
- ),
- PROJET =SIMP(statut='o',typ='TXM'),
- REPERTOIRE =SIMP(statut='f',typ='TXM'),
- UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25),
- UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26),
- UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),
- UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
-) ;
-#& MODIF COMMANDE DATE 04/04/2000 AUTEUR D6BHHBQ B.QUINNEZ
-def macro_mode_meca_prod(self,MATR_A,MATR_B,**args ):
- self.type_sdprod(MATR_A,matr_asse_depl_r)
- self.type_sdprod(MATR_B,matr_asse_depl_r)
- return mode_meca
-
-MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op= -12,sd_prod=macro_mode_meca_prod,
- fr="Permet d alléger le calcul d une structure de données de type mode_meca par le découpage d un intervalle de fréquences global en sous-intervalles",
- docu="U4.52.02-C",reentrant='n',
- 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",) ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",
- into=("MODE_RIGIDE","SANS") ),
- CALC_FREQ =FACT(statut='d',min=00,max=01,
- regles=(UN_PARMI('FREQ','FREQ_MAX'),
- PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'),
- PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'),),
- FREQ =SIMP(statut='f',typ='R',max='**' ),
- FREQ_MIN =SIMP(statut='f',typ='R' ),
- FREQ_MAX =SIMP(statut='f',typ='R' ),
- NB_BLOC_FREQ =SIMP(statut='f',typ='I' ),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I',defaut= 0 ),
- 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") ),
- ),
- VERI_MODE =FACT(statut='d',min=00,max=01,
- 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',min=01,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',min=01,max=01,
- 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',min=01,max=01,
- 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 11/02/98 AUTEUR CIBHHLV L.VIVAN
-def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ):
- if MATR_ASSE_GENE != None:
- for m in MATR_ASSE_GENE:
- self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
- self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r)
- if VECT_ASSE_GENE != None:
- for m in VECT_ASSE_GENE:
- self.type_sdprod(m['VECTEUR'],vect_asse_gene)
- return None
-
-MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=-8,docu="U4.63.11-C",
- 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),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- MATR_ASSE_GENE =FACT(statut='f',min=01,max='**',
- MATRICE =SIMP(statut='o',typ=(CO,matr_asse)),
- MATR_ASSE =SIMP(statut='f',typ=(CO,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='**',
- 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),
- VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 08/09/97 AUTEUR VABHHTS J.PELLET
-MAJ_CATA=PROC(nom="MAJ_CATA",op=20,docu="U4.15.01-D",
- fr="Compilation des catalogues de commandes et d éléments",
- regles=(UN_PARMI('COMMANDE','ELEMENT','VALIDATION'),),
- COMMANDE =FACT(statut='f',min=01,max=01,
- UNITE =SIMP(statut='o',typ='I' ),
- ),
- ELEMENT =FACT(statut='f',min=01,max=01,),
- VALIDATION =FACT(statut='f',min=01,max=01,
- UNITE =SIMP(statut='o',typ='I' ),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- ),
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR 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-F",reentrant='n',
- regles=(EXCLUS("INST","LIST_INST"),),
- MODELE =SIMP(statut='o',typ=modele),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- TITRE =SIMP(statut='f',typ='TXM',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),
- 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),
- OPTION =SIMP(statut='f',typ='TXM',max='**',
- into=("SIEF_ELGA_DEPL","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",
- "EQUI_ELNO_EPME","EQUI_ELGA_EPME","DEGE_ELNO_DEPL","EPOT_ELEM_DEPL",
- "ENEL_ELGA","ENEL_ELNO_ELGA") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1),
- 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 =FACT(statut='f',min=1,max=1,
- THETA =SIMP(statut='o',typ=theta_geom),
- ),
- SOLVEUR =FACT(statut='d',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- ),
- 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é",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =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/98 AUTEUR SABJLMA P.LATRUBESSE
-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',
- 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,
- 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,
- 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,
- 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),
- ),
- b_bande =BLOC(condition = "OPTION == 'BANDE'",
- FREQ =SIMP(statut='o',typ='R',min=02,max=02),
- ),
-# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 24/05/2000 AUTEUR D6BHHBQ B.QUINNEZ
-def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
- if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
- if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
- if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
- if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
- if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod
- ,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
- docu="U4.52.04-F",reentrant='n',
- MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
- MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
- MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ),
- TYPE_RESU =SIMP(statut='f',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',min=01,max=01,fr="Choix des paramètres pour le calcul des valeurs propres",
-
- OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
- fr="Choix de l option pour estimer les valeurs propres" ),
- FREQ =SIMP(statut='o',typ='R',max='**'),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0 ),
- NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
- NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
-
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- ),
- ),
- b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- CALC_FREQ =FACT(statut='o',min=01,max=01,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',max='**' ),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0 ),
- NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
- NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
-
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- ),
- ),
- CALC_MODE =FACT(statut='d',min=00,max=01,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,fr="Précision de convergence" ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30 ),
- ),
- VERI_MODE =FACT(statut='d',min=00,max=01,
- STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-2,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',max='**'),
-) ;
-#& MODIF COMMANDE DATE 24/05/2000 AUTEUR D6BHHBQ B.QUINNEZ
-def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
- if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
- if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
- if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
- if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
- if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-MODE_ITER_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-E",reentrant='n',
- 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") ),
- TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
- fr="Type d analyse" ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
-
- b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- CALC_FREQ =FACT(statut='d',min=00,max=01,
- OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
- fr="Choix de l option et par conséquent du shift du problème modal" ),
- b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
- ),
- 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',min=01,max=01,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=02,max=02,fr="Valeur des deux charges critiques délimitant la bande de recherche"),
- ),
- APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
- DIM_SOUS_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 ),
- NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ),
- PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8 ),
- NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30 ),
- ),
- b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
- PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10 ),
- NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40 ),
- PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ),
- ),
- b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
- PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ),
- PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ),
- ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- ),
- ),
-
- b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
- CALC_FREQ =FACT(statut='d',min=00,max=01,
- OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
- fr="Choix de l option et par conséquent du shift du problème modal" ),
- b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
- ),
- 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',min=01,max=01,fr="Fréquence autour de laquelle on cherche les fréquences propres"),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max=01),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ),
- ),
- b_bande =BLOC(condition = "(OPTION == 'BANDE')",fr="Recherche des valeurs propres dans une bande donnée",
- FREQ =SIMP(statut='o',typ='R',min=02,max=02,fr="Valeur des deux fréquences délimitant la bande de recherche"),
- ),
- APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
- DIM_SOUS_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 ),
- NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ),
- PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8 ),
- NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30 ),
- ),
- b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
- PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10 ),
- NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40 ),
- PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ),
- ),
- b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
- PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ),
- PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ),
- ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- ),
- ),
-
- VERI_MODE =FACT(statut='d',min=00,max=01,
- STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
- SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6,fr="Valeur limite admise pour l ereur a posteriori des modes" ),
- STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat,
- fr="Calcul de modes statiques",
- docu="U4.52.14-E",reentrant='n',
- MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ),
- MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ),
- DDL_IMPO =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
- UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- FORCE_NODALE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
- UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- ACCE_UNIF =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('AXE','DIRECTION', ),),
- AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=03),
- DIRECTION =SIMP(statut='f',typ='R',max=03),
- b_dir =BLOC(condition = "DIRECTION != None",
- NOM_DIR =SIMP(statut='f',typ='TXM' ),
- ),
- ),
- ACCE_IMPO =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
- UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHAB N.RAHNI
-MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
- fr="Modélisation d une base modale pour tenir compte du couplage fluidélastique (mêmes déformées modales, modification des valeurs des fréquences et amortissements)",
- docu="U4.66.21-C",reentrant='f',
-# la commande modi_base _modale : reentrant = f ou o
- regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
- BASE =SIMP(statut='o',typ=mode_meca ),
- BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ),
- NUME_VITE_FLUI =SIMP(statut='o',typ='I' ),
- 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 22/05/2000 AUTEUR AUBHHMB M.BONNAMY
-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-C",reentrant='o',
- regles=(UN_PARMI('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
- 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE'),
- EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
- EXCLUS('EQUE_PIQUA','TUBE_COUDE'),),
- MAILLAGE =SIMP(statut='o',typ=maillage ),
-
- ORIE_CONTACT =FACT(statut='f',min=01,max=01,
- GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
- ),
-
- DEFORME =FACT(statut='f',min=01,max=01,
- OPTION =SIMP(statut='o',typ='TXM',into=("TRAN",) ),
- DEPL =SIMP(statut='o',typ=cham_no_depl_r ),
- ),
-
- EQUE_PIQUA =FACT(statut='f',min=01,max=01,
- 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' ),
- H_SOUD =SIMP(statut='o',typ='R' ),
- ANGL_SOUD =SIMP(statut='o',typ='R' ),
- JEU_SOUD =SIMP(statut='o',typ='R' ),
- E_CORP =SIMP(statut='o',typ='R' ),
- DEXT_CORP =SIMP(statut='o',typ='R' ),
- AZIMUT =SIMP(statut='o',typ='R' ),
- RAFF_MAIL =SIMP(statut='o',typ='TXM' ),
- X_MAX =SIMP(statut='o',typ='R' ),
- ),
- ORIE_PEAU_2D =FACT(statut='f',min=01,max='**',
- GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
- ),
- ORIE_PEAU_3D =FACT(statut='f',min=01,max='**',
- GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
- ),
- ORIE_NORM_COQUE =FACT(statut='f',min=01,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),
- 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,
- 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,
- 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,
- 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='**'),
- 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='**'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 07/04/98 AUTEUR ACBHHCD G.DEVESA
-MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle,
- fr=" ",docu="U4.44.22-A",reentrant='f',
- regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),),
- TABL_USURE =SIMP(statut='f',typ=tabl_post_usur),
- INST =SIMP(statut='f',typ='R'),
- OBSTACLE =SIMP(statut='f',typ=obstacle),
- GUIDE =SIMP(statut='o',typ=obstacle),
- CRAYON =SIMP(statut='f',typ=obstacle),
- R_MOBILE =SIMP(statut='f',typ='R'),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 05/09/2000 AUTEUR CIBHHLV L.VIVAN
-def norm_mode_prod(MODE,**args ):
- if AsType(MODE) == mode_meca : return mode_meca
- if AsType(MODE) == mode_meca_c : return mode_meca_c
- if AsType(MODE) == mode_flamb : return mode_flamb
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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,...",
- into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
- NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
- b_noeud =BLOC(condition = "NOEUD != None",
- NOM_CMP =SIMP(statut='o',typ='TXM' ),
- ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',fr="Norme plus grande composante = 1 en prenant seulement en compte les degrés de libertés suivant",max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',fr="Norme plus grande composante = 1 en ne prenant pas en compte les degrés de libertés suivant",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",
- NOEUD =SIMP(statut='o',typ=no,fr="Noeud où sera imposé le signe"),
- NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud où sera imposé le signe" ),
- SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),fr="Choix du signe" ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE
-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='o',typ=(matr_elem_depl_r ,matr_elem_depl_c,
- matr_elem_temp_r,matr_elem_pres_c),max='**' ),
- 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") ),
- ),
- b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- ),
- 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") ),
- ),
- INFO =SIMP(statut='f',typ='I',into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN
-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-D",reentrant='n',
- MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
- BASE =SIMP(statut='f',typ=(mode_meca,base_modale,mode_gene ) ),
- NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ),
- STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("PLEIN","DIAG","LIGN_CIEL") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
-) ;
-#& MODIF COMMANDE DATE 04/08/98 AUTEUR SABJLMA P.LATRUBESSE
-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',
- 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' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**' ),
- NOEUD_I =SIMP(statut='f',typ=no,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
- b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**' ),
- ),
- b_noeud_i =BLOC(condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no,max='**'),
- NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ),
- NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ),
- ),
- DEPASSEMENT =FACT(statut='f',min=01,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' ),
- VALE_MAX =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='**',
- 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='**',
- 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='**',
- 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' ),
- VALE_MAX =SIMP(statut='f',typ='R' ),
- PAS =SIMP(statut='f',typ='R' ),
- DUREE =SIMP(statut='f',typ='R',defaut= 10. ),
- ),
- MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN
-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',
- regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
- RESU_GENE =SIMP(statut='o',typ=tran_gene ),
- CHOC =FACT(statut='f',min=01,max='**',
- fr="Analyse des non linéarités de choc",
- INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ),
- INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ),
- NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ),
- SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
- NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ),
- ),
- RELA_EFFO_DEPL =FACT(statut='f',min=01,max=01,
- 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 05/12/2000 AUTEUR G8BHHXD X.DESROCHES
-def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,INDU_MUTU,WEIBULL,
- CARA_GEOM,CARA_POUTRE,RICE_TRACEY,CHAR_LIMITE,
- INDIC_ENER,INDIC_SEUIL,ENER_ELAS,ENER_TOTALE,
- AIRE_INTERNE,**args ):
- if MASS_INER != None : return tabl_mass_iner
- if ENER_POT != None : return tabl_ener_pot
- if ENER_CIN != None : return tabl_ener_cin
- if INDU_MUTU != None : return tabl_indu_mutu
- if WEIBULL != None : return tabl_weibull
- if CARA_GEOM != None : return tabl_cara_geom
- if CARA_POUTRE != None : return tabl_cara_geom
- if RICE_TRACEY != None : return tabl_rice_tracey
- if CHAR_LIMITE != None : return tabl_char_limite
- if INDIC_ENER != None : return tabl_indic_ener
- if INDIC_SEUIL != None : return tabl_indic_seuil
- if ENER_ELAS != None : return tabl_ener_elas
- if ENER_TOTALE != None : return tabl_ener_totale
- if AIRE_INTERNE != None : return tabl_aire_int
- 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-D",reentrant='f',
- fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),
- EXCLUS('CHAM_GD','RESULTAT'),
- UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN', 'INDU_MUTU',
- 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE',
- 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL',
- 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'),
- PRESENT_PRESENT( 'MASS_INER', 'MODELE' ),
- PRESENT_PRESENT( 'CARA_GEOM', 'MODELE' ),
- PRESENT_PRESENT( 'AIRE_INTERNE', 'MODELE' ),
- PRESENT_PRESENT( 'CARA_POUTRE', 'MODELE' ),
- PRESENT_PRESENT( 'ENER_POT', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'ENER_CIN', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'INDU_MUTU', 'MODELE','CHARGE' ),
- PRESENT_PRESENT( 'WEIBULL', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'RICE_TRACEY', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'INDIC_ENER', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'INDIC_SEUIL', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'ENER_ELAS', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'ENER_TOTALE', 'MODELE', 'CHAM_MATER' ),
- PRESENT_PRESENT( 'CHAR_LIMITE', 'MODELE', 'CHAM_MATER' ),
- ),
- 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),max='**' ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut=0),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE =SIMP(statut='f',typ='TXM',into=("INF","SUP","MOY"),defaut="MOY"),
- ANGLE =SIMP(statut='f',typ='I',defaut=0),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- GEOMETRIE =SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
- CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
- RESULTAT =SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,mult_elas,fourier_elas) ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ =SIMP(statut='f',typ=listr8),
- NUME_MODE =SIMP(statut='f',typ='I',max='**'),
- NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'),
- NOM_CAS =SIMP(statut='f',typ='TXM',max='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-
- MASS_INER =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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 ),
- ),
-
- ENER_POT =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- ENER_CIN =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- INDU_MUTU =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- WEIBULL =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY")),
- CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- COEF_MULT =SIMP(statut='f',typ='R',defaut=1.),
- ),
-
- RICE_TRACEY =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY")),
- LOCAL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
- ),
-
- INDIC_ENER =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- ENER_ELAS =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- ENER_TOTALE =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- CHAR_LIMITE =FACT(statut='f',min=00,max=01,
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='o',typ='TXM',into=("OUI",)),
- N =SIMP(statut='f',typ='R',max=1),
- ),
-
- INDIC_SEUIL =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- CARA_GEOM =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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),
- ),
-
- CARA_POUTRE =FACT(statut='f',min=1,max='**',
- regles=(AU_MOINS_UN('TOUT','GROUP_MA'),
- ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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),
- LAPL_PHI_Z =SIMP(statut='f',typ=evol_ther),
- LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
- LONGUEUR =SIMP(statut='f',typ='R'),
- MATERIAU =SIMP(statut='f',typ=mater),
- OPTION =SIMP(statut='f',typ='TXM',into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
- ),
-
- AIRE_INTERNE =FACT(statut='f',min=1,max='**',
- GROUP_MA_BORD =SIMP(statut='o',typ=grma,max='**'),
- ),
- ) ;
-#& MODIF COMMANDE DATE 16/12/97 AUTEUR CIBHHLV L.VIVAN
-POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U4.84.03-C",reentrant='n',
- 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'),
- UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
- MOMENT_SPEC_0 =SIMP(statut='f',typ='R'),
- MOMENT_SPEC_2 =SIMP(statut='f',typ='R'),
- MOMENT_SPEC_4 =SIMP(statut='f',typ='R'),
- TABL_POST_ALEA =SIMP(statut='f',typ=tabl_post_alea),
- COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
- DUREE =SIMP(statut='f',typ='R',defaut= 1.),
- CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)),
- DOMMAGE =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
- MATER =SIMP(statut='o',typ=mater),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 01/10/97 AUTEUR CIBHHLV L.VIVAN
-POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.01-C",reentrant='n',
- fr="Calcul du dommage subi par une structure soumise à une histoire de chargement",
- regles=(PRESENT_PRESENT('CORR_KE','MATER'),
- PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
- PRESENT_PRESENT('CRITERE','MATER'),
- PRESENT_PRESENT('DOMMAGE','MATER'),),
- HISTOIRE =FACT(statut='o',min=1,max=1,
- regles=(EXCLUS('SIGM','EPSI'),
- EXCLUS('SIGM','SIGM_XX'),
- EXCLUS('SIGM','SIGM_XZ'),
- EXCLUS('SIGM','SIGM_YZ'),
- EXCLUS('SIGM','EPSP'),
- EXCLUS('SIGM','TEMP',),
- EXCLUS('EPSI','SIGM_XX'),
- EXCLUS('EPSI','SIGM_XZ'),
- EXCLUS('EPSI','SIGM_YZ'),
- EXCLUS('EPSI','EPSP'),
- EXCLUS('EPSI','TEMP'),
- ENSEMBLE('SIGM_XX','SIGM_YY','SIGM_ZZ','SIGM_XY'),
- ENSEMBLE('SIGM_XZ','SIGM_YZ'),
- ENSEMBLE('EPSP','TEMP'),),
- SIGM =SIMP(statut='f',typ=fonction),
- EPSI =SIMP(statut='f',typ=fonction),
- SIGM_XX =SIMP(statut='f',typ=fonction),
- SIGM_YY =SIMP(statut='f',typ=fonction),
- SIGM_ZZ =SIMP(statut='f',typ=fonction),
- SIGM_XY =SIMP(statut='f',typ=fonction),
- SIGM_XZ =SIMP(statut='f',typ=fonction),
- SIGM_YZ =SIMP(statut='f',typ=fonction),
- EPSP =SIMP(statut='f',typ=fonction),
- TEMP =SIMP(statut='f',typ=fonction),
- ),
- COMPTAGE =SIMP(statut='f',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")),
- DELTA_OSCI =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- COEF_MULT =FACT(statut='f',min=1,max=1,
- KT =SIMP(statut='f',typ='R'),
- ),
- CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)),
- CORR_SIGM_MOYE =SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
- TAHERI_NAPPE =SIMP(statut='f',typ=fonction),
- TAHERI_FONC =SIMP(statut='f',typ=fonction),
- CRITERE =SIMP(statut='f',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
- COEF_CORR =SIMP(statut='f',typ='R'),
- DOMMAGE =SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON",
- "TAHERI_MIXTE","LEMAITRE")),
- MATER =SIMP(statut='f',typ=mater),
- CUMUL =SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 15/09/1999 AUTEUR F1BHHAJ J.ANGLES
-POST_GOUJ2E=OPER(nom="POST_GOUJ2E",op=187,sd_prod=tabl_post_gouj2e,reentrant='n',
- fr=" ",docu="U4.GJ.30-A",
- TABLE =SIMP(statut='o',typ=tabl_post_rele),
-) ;
-#& MODIF COMMANDE DATE 31/05/2000 AUTEUR CIBHHLV L.VIVAN
-POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
- fr="Calcul des facteurs d intensité des contraintes par extrapolation du champ de déplacements sur les lèvres de la fissure",
- docu="U4.82.05-A",reentrant='n',
- regles=(PRESENT_PRESENT('REPERE','VECT_Y', ),),
- MODELISATION =SIMP(statut='o',typ='TXM',into=("3D",
- "AXIS",
- "D_PLAN",
- "C_PLAN"
- ),
- fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
- FOND_3D =SIMP(statut='f',typ=fond_fiss,fr="Fond de fissure issu de DEFI_FOND_FISS"),
- b_fond_3d =BLOC (condition="(FOND_3D != None)",
- MAILLAGE = SIMP(statut='o',typ=maillage),
- PRECISION = SIMP(statut='f',typ='R',defaut=0.001)
- ),
- MATER =SIMP(statut='o',typ=mater,fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"),
- TABL_DEPL_SUP =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
- TABL_DEPL_INF =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
- ABSC_CURV_MAXI =SIMP(statut='f',typ='R',fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL",),fr="Les déplacements sont transportés dans le repère local à la fissure"),
- VECT_Y =SIMP(statut='f',typ='R',max='**',fr="Vecteur dont la projection sur le plan normal au segment de calcul défini l axe Y local"),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 27/04/98 AUTEUR CIBHHLV L.VIVAN
-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-C",reentrant='n',
- MATER =SIMP(statut='o',typ=mater ),
- TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","VALE_INST") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- OPTION =SIMP(statut='o',typ='TXM',max='**',
- into=("PM_PB",
- "SN",
- "FATIGUE_SPMAX",
- "FATIGUE_ZH210"
- ) ),
- SEGMENT =FACT(statut='o',min=01,max='**',fr="Segment sur lequel s effectue le depouillement",
- INTITULE =SIMP(statut='f',typ='TXM' ),
- CHEMIN =SIMP(statut='o',typ=(courbe,surface) ),
- ),
- TRANSITOIRE =FACT(statut='o',min=01,max='**',fr="transitoire à dépouiller",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- 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='f',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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
- ),
- ),
-) ;
-#& MODIF COMMANDE DATE 11/10/2000 AUTEUR CIBHHLV L.VIVAN
-POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-D",reentrant='n',
- fr="Relevé de valeurs et calculs d invariants avec stockage et organisation du relevé dans un concept de type table",
- ACTION =FACT(statut='o',min=01,max='**',
- regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
- EXCLUS('CHEMIN','GROUP_NO'),
- EXCLUS('CHEMIN','NOEUD'),
- PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
- 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'),
- 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,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,
- cham_elem_ener_r,cham_elem_dbel_r,cham_elem_pres_r,cham_elem_erreur,
- cham_elem_vari_r,cham_no_depl_c,cham_no_temp_c,cham_no_pres_c,
- cham_elem_sief_c,cham_elem_epsi_c)),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans,
- mode_meca,mode_flamb,mode_acou,base_modale,
- mult_elas,fourier_elas,dyna_harmo,acou_harmo)),
- b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',
- 'INST','LIST_INST','FREQ','LIST_FREQ','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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- NUME_MODE =SIMP(statut='f',typ='I',max='**'),
- LIST_MODE =SIMP(statut='f',typ=listis),
- 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',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")),
- ),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- RESULTANTE =SIMP(statut='f',typ='TXM',max='**'),
- MOMENT =SIMP(statut='f',typ='TXM',max='**'),
- POINT =SIMP(statut='f',typ='R',max='**'),
-
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
- into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
- ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3),
- ORIGINE =SIMP(statut='f',typ='R',min=3,max=3),
- AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),
-
- TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)),
- TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)),
- DIRECTION =SIMP(statut='f',typ='R',max='**'),
- 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","MOYENNE_RCCM")),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 18/01/99 AUTEUR CIBHHBC B.CIREE
-POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli,
- fr=" ",docu="U4.PS.10-A",reentrant='n',
- MATER =SIMP(statut='o',typ=(mater) ),
- DEF_EQUI =FACT(statut='f',min=01,max=01,
- 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'),
- LONG_LIGA_INT =SIMP(statut='o',typ='R'),
- DEXT =SIMP(statut='o',typ='R'),
- TEMP_ANALYSE =SIMP(statut='f',typ='R'),
- ),
-) ;
-#& MODIF COMMANDE DATE 07/04/98 AUTEUR ACBHHCD G.DEVESA
-POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-C",reentrant='f',
- 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,
- 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,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 ),
- PUIS_USURE =SIMP(statut='f',typ='R'),
- LOI_USURE =SIMP(statut='o',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
- b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'",
- regles=(EXCLUS('MATER_USURE','OBSTACLE'),
- EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',min=01,max=01,
- COEF_USURE =SIMP(statut='o',typ='R'),
- ),
- OBSTACLE =FACT(statut='f',min=01,max=01,
- COEF_USURE =SIMP(statut='o',typ='R'),
- ),
- MATER_USURE =SIMP(statut='f',typ='TXM'),
- USURE_OBST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- ),
- 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,
- 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,
- COEF_FNOR =SIMP(statut='f',typ='R' ),
- COEF_VTAN =SIMP(statut='f',typ='R' ),
- COEF_USURE =SIMP(statut='o',typ='R'),
- COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0),
- COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0),
- ),
- MATER_USURE =SIMP(statut='f',typ='TXM'),
- USURE_OBST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- FNOR_MAXI =SIMP(statut='f',typ='R' ),
- VTAN_MAXI =SIMP(statut='f',typ='R' ),
- ),
- b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
- regles=(UN_PARMI('MOBILE','MATER_USURE'),
- EXCLUS('MATER_USURE','OBSTACLE'),
- EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',min=01,max=01,
- 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,
- 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")),
- ),
- SECTEUR =FACT(statut='f',min=01,max='**',
- CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",
- "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",
- "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
- COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),
- COEF_USUR_OBST =SIMP(statut='f',typ='R'),
- ANGL_INIT =SIMP(statut='f',typ='R'),
- ANGL_FIN =SIMP(statut='f',typ='R'),
- ),
- 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")),
- LARGEUR_OBST =SIMP(statut='f',typ='R'),
- ANGL_INCLI =SIMP(statut='f',typ='R'),
- ANGL_ISTHME =SIMP(statut='f',typ='R'),
- ANGL_IMPACT =SIMP(statut='f',typ='R'),
- INST =SIMP(statut='f',typ='R',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 31/08/1999 AUTEUR G8BHHXD X.DESROCHES
-POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,docu="U4.83.21-B",reentrant='n',
- 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='**',
- 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",)),
- ),
- 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',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- 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),
- b_evol_noli =BLOC(condition="EVOL_NOLI != None",
- INST_MAX =SIMP(statut='o',typ='R'),
- ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-
-) ;
-#& AJOUT COMMANDE
-POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude",
- docu="U4.11.03-f",sd_prod = ops.POURSUITE,
- op_init = ops.POURSUITE_context,fichier_ini = 1,
- PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM' ),
- BASE =FACT(fr="définition des parmètres associés aux bases JEVEUX",
- statut='f',min=01,max=03,
- FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=01,max=03,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=01,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=01,max=01,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TES',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
- 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 01/04/92 AUTEUR INCONNU INCONNU
-PRE_CHAR_IDEAS=PROC(nom="PRE_CHAR_IDEAS",op=100,docu="U7.01.02-E",
- fr="Conversion de conditions aux limites et chargements IDEAS en commandes Aster",
- UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19),
- UNITE_ASTER =SIMP(statut='f',typ='I',defaut=21),
- MODELE =SIMP(statut='o',typ=modele),
-) ;
-#& MODIF COMMANDE DATE 28/11/90 AUTEUR INCONNU INCONNU
-PRE_GIBI=PROC(nom="PRE_GIBI",op=49,docu="U7.01.11-F",
- 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 23/04/92 AUTEUR INCONNU INCONNU
-PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,docu="U7.01.01-F",
- 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 16/06/2000 AUTEUR D6BHHJP J.P.LEFEBVRE
-PROCEDURE=PROC(nom="PROCEDURE",op=-3, docu="U4.13.03-E",
- fr="Nommer le fichier de commandes secondaires",
- NOM =SIMP(statut='f',typ='TXM',defaut=" "),
-) ;
-#& MODIF COMMANDE DATE 11/07/95 AUTEUR CIBHHLV L.VIVAN
-def prod_matr_cham_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
- if AsType(MATR_ASSE) == matr_asse_depl_c : return cham_no_depl_c
- if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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 12/05/99 AUTEUR VABHHTS J.PELLET
-def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(CHAM_NO_REFE) == cham_no_depl_r : return cham_no_depl_r
- if AsType(CHAM_NO_REFE) == cham_no_depl_c : return cham_no_depl_c
- if AsType(CHAM_NO_REFE) == cham_no_pres_c : return cham_no_pres_c
- if AsType(CHAM_NO_REFE) == cham_no_temp_r : return cham_no_temp_r
- if AsType(CHAM_NO_REFE) == cham_no_epsi_r : return cham_no_epsi_r
- if AsType(CHAM_NO_REFE) == cham_no_sief_r : return cham_no_sief_r
- 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-C",reentrant='n',
- fr="Projection d un champ aux noeuds sur les noeuds d un autre maillage",
-#
- METHODE =SIMP(statut='f',typ='TXM',defaut="NUAGE_DEG_1",
- into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ),
- b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')",
- fr="Lissage d un nuage de points",
- CHAM_NO =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,
- cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
- CHAM_NO_REFE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,
- cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
- ),
- b_elem =BLOC(condition="METHODE=='ELEM'",
- fr="Utilisation des fonctions de forme",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), ),
- RESULTAT =SIMP(statut='f',typ=(evol_ther,evol_elas,evol_noli) ),
- MODELE_1 =SIMP(statut='f',typ=modele),
- MODELE_2 =SIMP(statut='f',typ=modele),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',max='**' ),
- LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',max='**' ),
- LIST_FREQ =SIMP(statut='f',typ=listr8),
- ),
-
- VIS_A_VIS =FACT(statut='f',min=01,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,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,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 29/06/95 AUTEUR ACBHHJA G.JACQUART
-PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_r,
- fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)",
- docu="U4.63.12-E",reentrant='n',
- 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 ),
- NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ),
- MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r ),
- MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
-) ;
-
-#& MODIF COMMANDE DATE 27/06/2000 AUTEUR CIBHHBC B.CIREE
-def proj_mesu_modal_prod(MESURE,**args):
- vale=MESURE['NOM_PARA']
- 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,
- 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,
- 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",) ),
- ),
- 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='**' ),
- ),
- ) ;
-#& MODIF COMMANDE DATE 11/02/98 AUTEUR SABJLMA P.LATRUBESSE
-PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.14-C",reentrant='n',
- fr="Projection d un ou plusieurs spectres de turbulence, définis par DEFI_SPEC_TURB, 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,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 ),
- FREQ_INIT =SIMP(statut='f',typ='R' ),
- FREQ_FIN =SIMP(statut='f',typ='R' ),
- NB_POIN =SIMP(statut='f',typ='I' ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
- GROUP_MA =SIMP(statut='f',typ=grma),
-# Quel est le type attendu derriere MODELE_INTERFACE
- MODELE_INTERFACE=SIMP(statut='f',typ=modele),
- VECT_X =SIMP(statut='f',typ='R',min=03,max=03 ),
- VECT_Y =SIMP(statut='f',typ='R',min=03,max=03 ),
- ORIG_AXE =SIMP(statut='f',typ='R',min=03,max=03 ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 29/06/95 AUTEUR ACBHHJA G.JACQUART
-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-E",reentrant='n',
- 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 ),
- NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ),
- 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 25/09/2000 AUTEUR T2BAXJM R.MASSON
-RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
- fr=" ",docu="U4.82.06-A",reentrant='n',
- LIST_PARA =SIMP(statut='o',typ='TXM',max='**',into=("SIGM_REFE","M",) ),
- RESU =FACT(statut='o',min=01,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',max='**' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
- INST =SIMP(statut='f',typ='R',max='**' ),
- LIST_INST =SIMP(statut='f',typ=(listr8) ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.E0 ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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",) ),
- CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
- INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
- ) ;
-#& MODIF COMMANDE DATE 07/06/2000 AUTEUR VABHHTS J.PELLET
-def recu_champ_prod(NOM_CHAM,RESULTAT,**args ):
- if AsType(RESULTAT) == dyna_harmo : return cham_no_depl_c
- if NOM_CHAM == "GEOMETRIE" : return cham_no_geom_r
- if NOM_CHAM == "DEPL" : return cham_no_depl_r
- if NOM_CHAM == "DEPL_ABSOLU" : return cham_no_depl_r
- if NOM_CHAM == "VITE" : return cham_no_depl_r
- if NOM_CHAM == "VITE_ABSOLU" : return cham_no_depl_r
- if NOM_CHAM == "ACCE" : return cham_no_depl_r
- if NOM_CHAM == "ACCE_ABSOLU" : return cham_no_depl_r
- if NOM_CHAM == "TEMP" : return cham_no_temp_r
- if NOM_CHAM == "FORC_NODA" : return cham_no_depl_r
- if NOM_CHAM == "REAC_NODA" : return cham_no_depl_r
- if NOM_CHAM == "EPSI_NOEU_DEPL" : return cham_no_sief_r
- if NOM_CHAM == "SIGM_NOEU_CART" : return cham_no_sief_r
- if NOM_CHAM == "SIGM_NOEU_DEPL" : return cham_no_sief_r
- if NOM_CHAM == "SIGM_NOEU_VARI" : return cham_no_sief_r
- if NOM_CHAM == "SIGM_NOEU_SIEF" : return cham_no_sief_r
- if NOM_CHAM == "SIPO_NOEU_SIEF" : return cham_no_sief_r
- if NOM_CHAM == "EFGE_NOEU_CART" : return cham_no_sief_r
- if NOM_CHAM == "EFGE_NOEU_DEPL" : return cham_no_sief_r
- if NOM_CHAM == "EQUI_NOEU_SIGM" : return cham_no_sief_r
- if NOM_CHAM == "EQUI_NOEU_EPSI" : return cham_no_sief_r
- if NOM_CHAM == "FLUX_NOEU_TEMP" : return cham_no_flux_r
- if NOM_CHAM == "SIGM_NOZ1_ELGA" : return cham_no_sief_r
- if NOM_CHAM == "SIGM_NOZ2_ELGA" : return cham_no_sief_r
- if NOM_CHAM == "INTE_NOEU_ACTI" : return cham_no_inte_r
- if NOM_CHAM == "INTE_NOEU_REAC" : return cham_no_inte_r
- if NOM_CHAM == "PRES_NOEU_DBEL" : return cham_no_dbel_r
- if NOM_CHAM == "PRES_NOEU_IMAG" : return cham_no_pres_r
- if NOM_CHAM == "PRES_NOEU_REEL" : return cham_no_pres_r
- if NOM_CHAM == "VARI_NOEU_ELGA" : return cham_no_var2_r
- if NOM_CHAM == "META_NOEU_TEMP" : return cham_no_var2_r
- if NOM_CHAM == "GRAD_NOEU_THETA": return cham_no_var2_r
- if NOM_CHAM == "PHASMETA" : return cham_elem_meta_r
- if NOM_CHAM == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "ECIN_ELEM_DEPL" : return cham_elem_ener_r
- if NOM_CHAM == "EFGE_ELNO_CART" : return cham_elem_sief_r
- if NOM_CHAM == "EFGE_ELNO_DEPL" : return cham_elem_sief_r
- if NOM_CHAM == "EPOT_ELEM_DEPL" : return cham_elem_ener_r
- if NOM_CHAM == "EPSG_ELGA_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "EPSG_ELNO_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "EPSP_ELGA" : return cham_elem_epsi_r
- if NOM_CHAM == "EPSP_ELNO" : return cham_elem_epsi_r
- if NOM_CHAM == "EPSI_ELGA_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "EPSA_ELNO" : return cham_elem_epsi_r
- if NOM_CHAM == "EQUI_ELGA_SIGM" : return cham_elem_sief_r
- if NOM_CHAM == "EQUI_ELGA_EPSI" : return cham_elem_sief_r
- if NOM_CHAM == "EQUI_ELNO_EPSI" : return cham_elem_sief_r
- if NOM_CHAM == "EQUI_ELNO_SIGM" : return cham_elem_sief_r
- if NOM_CHAM == "ERRE_ELEM_NOZ1" : return cham_elem_erreur
- if NOM_CHAM == "ERRE_ELEM_NOZ2" : return cham_elem_erreur
- if NOM_CHAM == "ERRE_ELGA_NORE" : return cham_elem_erreur
- if NOM_CHAM == "ERRE_ELNO_ELGA" : return cham_elem_erreur
- if NOM_CHAM == "FLUX_ELGA_TEMP" : return cham_elem_flux_r
- if NOM_CHAM == "FLUX_ELNO_TEMP" : return cham_elem_flux_r
- if NOM_CHAM == "INTE_ELNO_ACTI" : return cham_elem_inte_r
- if NOM_CHAM == "INTE_ELNO_REAC" : return cham_elem_inte_r
- if NOM_CHAM == "PRES_ELNO_DBEL" : return cham_elem_dbel_r
- if NOM_CHAM == "PRES_ELNO_IMAG" : return cham_elem_pres_r
- if NOM_CHAM == "PRES_ELNO_REEL" : return cham_elem_pres_r
- if NOM_CHAM == "SIEF_ELGA" : return cham_elem_sief_r
- if NOM_CHAM == "SIEF_ELNO" : return cham_elem_sief_r
- if NOM_CHAM == "SIEF_ELGA_DEPL" : return cham_elem_sief_r
- if NOM_CHAM == "SIGM_ELNO_CART" : return cham_elem_sief_r
- if NOM_CHAM == "SIGM_ELNO_DEPL" : return cham_elem_sief_r
- if NOM_CHAM == "SIGM_ELNO_VARI" : return cham_elem_sief_r
- if NOM_CHAM == "SIGM_ELNO_SIEF" : return cham_elem_sief_r
- if NOM_CHAM == "SIPO_ELNO_SIEF" : return cham_elem_sief_r
- if NOM_CHAM == "SIEF_ELNO_ELGA" : return cham_elem_sief_r
- if NOM_CHAM == "SIPO_ELNO_DEPL" : return cham_elem_sief_r
- if NOM_CHAM == "SIRE_ELNO_DEPL" : return cham_elem_sief_r
- if NOM_CHAM == "SOUR_ELGA_ELEC" : return cham_elem_sour_r
- if NOM_CHAM == "VARI_ELGA" : return cham_elem_vari_r
- if NOM_CHAM == "VARI_ELNO" : return cham_elem_vari_r
- if NOM_CHAM == "VARI_ELNO_ELGA" : return cham_elem_vari_r
- if NOM_CHAM == "VNOR_ELEM_DEPL" : return cham_elem_vnor_c
- if NOM_CHAM == "DCHA_ELGA_SIGM" : return cham_elem_vari_r
- if NOM_CHAM == "DCHA_ELNO_SIGM" : return cham_elem_vari_r
- if NOM_CHAM == "RADI_ELGA_SIGM" : return cham_elem_vari_r
- if NOM_CHAM == "RADI_ELNO_SIGM" : return cham_elem_vari_r
- if NOM_CHAM == "ENDO_ELNO_SIGM" : return cham_elem_sief_r
- if NOM_CHAM == "ENDO_ELNO_SIGA" : return cham_elem_sief_r
- if NOM_CHAM == "ENDO_ELNO_SINO" : return cham_elem_sief_r
- if NOM_CHAM == "EPME_ELNO_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "EPME_ELGA_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "EPME_ELNO_DPGE" : return cham_elem_epsi_r
- if NOM_CHAM == "EPMG_ELNO_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "EPMG_ELGA_DEPL" : return cham_elem_epsi_r
- if NOM_CHAM == "THETA" : return cham_no_depl_r
- if NOM_CHAM == "GRAD_ELGA_THETA" : return cham_elem_g_depl
- if NOM_CHAM == "GRAD_ELNO_ELGA" : return cham_elem_g_depl
- if NOM_CHAM == "HYDR_ELGA" : return cham_elem_hydr_r
- raise AsException("type de concept resultat non prevu")
-
-RECU_CHAMP=OPER(nom="RECU_CHAMP",op= 59,sd_prod=recu_champ_prod,
- fr="Récupération dans un résultat composé d un seul champ aux noeuds ou par éléments",
- docu="U4.71.01-F",reentrant='n',
- regles=(UN_PARMI('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL', ),
- UN_PARMI('RESULTAT','MAILLAGE'),),
-# creer une structure de donnees RESULTAT global
- RESULTAT =SIMP(statut='f',typ=resultat),
- MAILLAGE =SIMP(statut='f',typ=maillage),
- NOM_CHAM =SIMP(statut='o',typ='TXM',
- into=( "DEPL","VITE","ACCE","DEPL_ABSOLU",
- "VITE_ABSOLU","TEMP","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",
- "THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",) ),
- TYPE_MAXI =SIMP(statut='f',typ='TXM',
- into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN") ),
- 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' ),
- b_prec_crit =BLOC(condition = "(INST != 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") ),
- INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
- ),
- b_type_maxi =BLOC(condition = "TYPE_MAXI != None",
- regles=(EXCLUS('TOUT_ORDRE','LIST_INST' ),),
- 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 ),
- b_prec_crit =BLOC(condition = "(INST != 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") ),
- ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 28/06/2000 AUTEUR CIBHHLV L.VIVAN
-def recu_fonction_prod(RESULTAT=None,OBSTACLE=None,TABLE=None,RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None,TYPE_RESU=None,**args):
- if AsType(RESULTAT) == dyna_harmo : return fonction_c
-# On ne sait pas interpreter les deux conditions suivantes
- if TABLE != None :
- if TYPE_RESU != None :
- if TYPE_RESU == "FONCTION_C" : return fonction_c
- if TYPE_RESU == "FONCTION" : return fonction
- else:
- return fonction
- if RESU_GENE != None : return fonction
- if BASE_ELAS_FLUI != None : return fonction
- if RESULTAT != None : return fonction
- if CHAM_GD != None : return fonction
- if OBSTACLE != None : return fonction
- raise AsException("type de concept resultat non prevu")
-
-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-E",reentrant='n',
- 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,
- cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_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
- TABLE =SIMP(statut='f',typ=table),
- BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu),
- REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ),
- OBSTACLE =SIMP(statut='f',typ=obstacle),
-
- 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=("NON","OUI") ),
- CORR_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction),
- PARA_X =SIMP(statut='f',typ='TXM' ),
- PARA_Y =SIMP(statut='f',typ='TXM' ),
- SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- ),
- b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",fr="Récupération de la fonction à partir d un concept melasflu",
- regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',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") ),
- ),
- b_table = BLOC ( condition = "TABLE != None",fr="Récupération de la fonction à partir d un concept table",
- regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
- PRESENT_PRESENT('PARA_X','PARA_Y'),),
- PARA_X =SIMP(statut='f',typ='TXM',
- fr="1ère colonne de la table qui définit la fonction à récupérer", ),
- PARA_Y =SIMP(statut='f',typ='TXM',
- fr="2ème colonne de la table qui définit la fonction à récupérer", ),
- NOM_PARA_TABL =SIMP(statut='f',typ='TXM',into=("FONCTION",),
- fr="Nom du paramètre de la table à qui est associé la fonction" ),
- b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None",
- TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ),
- ),
- FILTRE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('VALE','VALE_I','VALE_C','VALE_K','VALE_CO'),),
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ",
- into=("EQ","LT","GT",
- "NE","LE","GE",
- "VIDE","NON_VIDE",) ),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- VALE_K =SIMP(statut='f',typ='TXM' ),
- VALE_CO =SIMP(statut='f',typ=geom),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
-# RESULTAT
- b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
- regles=(
-# A voir par Matthieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
-# UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),
- AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
-# A voir par Matthieu Courtois : les champs INTO de NOM_CHAM
-# NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- 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',max=02,into=("NON","LIN") ),
- ),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
-# RESU_GENE
- b_resu_gene = BLOC ( condition = "RESU_GENE != None", fr="Opérandes en cas de RESU_GENE",
-# A voir par Matthieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
-# regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),),
-# A voir par Matthieu Courtois : les champs INTO de NOM_CHAM
-# A voir par Matthieu Courtois : NOM_CHAM facultatif et non obligatoire
-# NOM_CHAM =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- 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',max=02,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'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
- ),
-# CHAM_GD
- b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
-# A voir par Matthieu Courtois : les champs INTO de NOM_CHAM
-# A voir par Matthieu Courtois : NOM_CHAM facultatif et non obligatoire
-# NOM_CHAM =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM' ),
- regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
-###
- NOM_PARA =SIMP(statut='f',typ='TXM',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC") ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
- PROL_DROIT =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-) ;
-#& MODIF COMMANDE DATE 03/03/97 AUTEUR A2BHHWS A.C.LEGER
-RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,docu="U4.71.03-E",reentrant='n',
- 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' ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
- INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-) ;
-#& MODIF COMMANDE DATE 22/07/99 AUTEUR CIBHHLV L.VIVAN
-RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table,
- fr=" ",docu="U4.71.02-A",reentrant='n',
- CO =SIMP(statut='o',typ=assd),
- NOM_TABLE =SIMP(statut='o',typ='TXM' ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR VABHHTS J.PELLET
-def reso_grad_prod(MATR_ASSE,**args ):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
- if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_r : return cham_no_pres_r
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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 ) ),
- MATR_FACT =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
- REPRISE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN
-def reso_ldlt_prod(CHAM_NO,**args ):
- if AsType(CHAM_NO) == cham_no_temp_r : return cham_no_temp_r
- if AsType(CHAM_NO) == cham_no_depl_r : return cham_no_depl_r
- if AsType(CHAM_NO) == cham_no_pres_r : return cham_no_pres_r
- if AsType(CHAM_NO) == cham_no_temp_c : return cham_no_temp_c
- if AsType(CHAM_NO) == cham_no_depl_c : return cham_no_depl_c
- if AsType(CHAM_NO) == cham_no_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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",
- 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,
- cham_no_temp_c,cham_no_depl_c,cham_no_pres_c) ),
- CHAM_CINE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_c) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 31/05/2000 AUTEUR CIBHHLV L.VIVAN
-def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ):
- if AsType(RESU_GENE) == tran_gene : return dyna_trans
- if AsType(RESU_GENE) == mode_gene : return mode_meca
- if AsType(RESU_GENE) == mode_cycl : return mode_meca
- if AsType(RESU_GENE) == harm_gene : return dyna_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- raise AsException("type de concept resultat non prevu")
-
-REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod,
- fr="Restituer dans la base physique des résultats en coordonnées généralisées",
- docu="U4.63.21-E",reentrant='n',
- 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','NOEUD','GROUP_NO'),
- EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),
- EXCLUS('NOEUD','GROUP_NO'),
- PRESENT_PRESENT('RESULTAT','SQUELETTE'),
- PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
- RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene ) ),
- RESULTAT =SIMP(statut='f',typ=mode_meca ),
-
- MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
- TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',max='**' ),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',max='**' ),
- LIST_FREQ =SIMP(statut='f',typ=listr8 ),
- b_prec_crit =BLOC(condition = "INST != None or LIST_INST != None or FREQ != None or LIST_FREQ != None",
- 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") ),
- 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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
-
- ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction),
- 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 16/12/97 AUTEUR CIBHHLV L.VIVAN
-REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
- fr="Calcul, à partir d un interspectre de réponse modale, de la réponse d une structure dans la base physique, à certains noeuds sélectionnés du maillage",
- docu="U4.63.22-C",reentrant='n',
- 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 ),
- 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,
- into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL",
- "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ),
- MODE_STAT =SIMP(statut='f',typ=mode_stat ),
- EXCIT =FACT(statut='f',max=01,
- 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 16/06/2000 AUTEUR D6BHHJP J.P.LEFEBVRE
-RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-E",
- fr="Retour au fichier de commandes appelant",
-) ;
-#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET
-# RESPONSABLE GJBHHEL E.LORENTZ
-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-E",reentrant='f',
- regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),
- EXCLUS('RECH_LINEAIRE','PILOTAGE'), ),
- 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',min=01,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","FIXE_PILO","SUIV","DIDI")),
- ),
- COMP_INCR =FACT(statut='f',min=01,max='**',
- RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
- into=( "ELAS",
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ECMI_TRAC",
- "VMIS_ECMI_LINE",
- "ENDO_LOCAL",
- "ENDO_FRAGILE",
- "BETON_ENDO_LOCAL",
- "RUPT_FRAG",
- "PLAS_GRAD",
- "DURC_GRAD",
- "META_PL",
- "META_PL_PT",
- "META_PL_RE",
- "META_PL_PT_RE",
- "META_VL",
- "META_VL_PT",
- "META_VL_RE",
- "META_VL_PT_RE",
- "META_PNL",
- "META_PNL_PT",
- "META_PNL_RE",
- "META_PNL_PT_RE",
- "META_VNL",
- "META_VNL_PT",
- "META_VNL_RE",
- "META_VNL_PT_RE",
- "VMIS_CINE_LINE",
- "TAHERI",
- "VISC_TAHERI",
- "CHABOCHE",
- "VISCOCHAB",
- "VMIS_CIN1_CHAB",
- "VMIS_CIN2_CHAB",
- "POLY_CFC",
- "LMARC",
- "ROUSSELIER",
- "VMIS_POU_LINE",
- "VMIS_POU_FLEJOU",
- "COULOMB",
- "ARME",
- "ASSE_CORN",
- "NORTON_HOFF",
- "LEMAITRE",
- "ZIRC_CYRA2",
- "ZIRC_EPRI",
- "ASSE_COMBU",
- "VENDOCHAB",
- "NADAI_B",
- "DIS_CONTACT",
- "DIS_CHOC",
- "DIS_GOUJ2E_PLAS",
- "DIS_GOUJ2E_ELAS",
- "GRILLE_ISOT_LINE",
- "GRILLE_CINE_LINE",
- "GRILLE_PINTO_MEN",
- "PINTO_MENEGOTTO",
- "CJS",
- "OHNO",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "BETON_DOUBLE_DP",
- "KIT_HM",
- "KIT_HHM",
- "KIT_THH",
- "KIT_THM",
- "KIT_THHM",
- "VMIS_ASYM_LINE",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "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,)),
- ENDO_LOCAL =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- BETON_ENDO_LOCAL=SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- RUPT_FRAG =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- PLAS_GRAD =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- DURC_GRAD =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- META_PL =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_PL_PT =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_PL_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_PL_PT_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_VL =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_VL_PT =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_VL_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_VL_PT_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_PNL =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_PNL_PT =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_PNL_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_PNL_PT_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_VNL =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_VNL_PT =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_VNL_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- META_VNL_PT_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- 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,)),
- TAHERI =SIMP(statut='c',typ='I',defaut=15,into=(15,)),
- VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- ROUSSELIER =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,)),
- 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,)),
- 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,)),
-
- RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',
- into=(
-# MECA
- "ELAS",
- "CJS",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "CAM_CLAY_THM",
-# THMC
- "GAZ",
- "LIQU_SATU",
- "LIQU_SATU_GAT",
- "LIQU_GAZ_ATM",
- "LIQU_VAPE_GAZ",
- "LIQU_NSAT_GAT",
- "LIQU_GAZ",
-# THER
- "THER_HOMO",
- "THER_POLY",
-# HYDR
- "HYDR_UTIL",
- "HYDR",
-# MECA_META
- "ACIER",
- "ZIRC",
-# MECA KIT_DDI
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ISOT_CINE",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "ROUSSELIER",
- "CHABOCHE",
- "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,)),
- CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- 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_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- 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,)),
- HYDR =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- ZIRC =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
-
- COQUE_NCOU =SIMP(statut='f',typ='I'),
- TUYAU_NCOU =SIMP(statut='f',typ='I' ),
- TUYAU_NSEC =SIMP(statut='f',typ='I' ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE")),
- ALGO_C_PLAN =SIMP(statut='f',typ='TXM',into=("DEBORST",)),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- COMP_ELAS =FACT(statut='f',min=01,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,)),
- COQUE_NCOU =SIMP(statut='f',typ='I'),
- TUYAU_NCOU =SIMP(statut='f',typ='I'),
- TUYAU_NSEC =SIMP(statut='f',typ='I'),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- ETAT_INIT =FACT(statut='f',min=01,max=01,
- regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
- EXCLUS('EVOL_NOLI','DEPL',),
- EXCLUS('EVOL_NOLI','SIGM',),
- EXCLUS('EVOL_NOLI','VARI',),
- EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
- EXCLUS('NUME_ORDRE','INST'), ),
- DEPL =SIMP(statut='f',typ=cham_no_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',min=01,max=01,
- 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),
- ),
- NEWTON =FACT(statut='d',min=01,max=01,
- 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',min=01,max=01,
- RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3),
- ),
- PILOTAGE =FACT(statut='f',min=01,max=01,
- regles=(EXCLUS('NOEUD','GROUP_NO'),),
- TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS") ),
- 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'),
- 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',min=01,max=01,
- RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
- RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
- ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
- ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"),
- 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")),
- ),
- PARM_THETA =SIMP(statut='f',typ='R'
- ,defaut= 1. ),
- SOLVEUR =FACT(statut='d',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
- 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',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',max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",
- "VARI_NON_LOCAL","LANL_ELGA")),
- ),
- MODELE_NON_LOCAL=SIMP(statut='f',typ=(modele) ),
- SOLV_NON_LOCAL =FACT(statut='d',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- LAGR_NON_LOCAL =FACT(statut='d',max=01,
- 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'),
- RHO =SIMP(statut='f',typ='R',defaut= 1000.),
- ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10),
- ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- ) ;
-#& MODIF COMMANDE DATE 20/09/1999 AUTEUR DURAND C.DURAND
-TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur numérique ou d un attribut de fonction pour la comparer à une valeur de référence",
- docu="U4.92.02-E",
- 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='**',
- 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 ),
- NOM_PARA =SIMP(statut='f',typ='TXM',max=02),
- VALE_PARA =SIMP(statut='o',typ='R',max=02),
- 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",
- defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
- defaut= 1.E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
- ATTRIBUT =FACT(statut='f',min=01,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' ),
- CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ATTR =SIMP(statut='o',typ='TXM',
- into=("NOM_PARA","NOM_RESU","PROL_DROIT","PROL_GAUCHE","INTERPOL",
- "PROL_GAUCHE_FONC","PROL_DROIT_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
- ATTR_REFE =SIMP(statut='o',typ='TXM' ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
- TABL_INTSP =FACT(statut='f',min=01,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 ),
- NOEUD_I =SIMP(statut='f',typ=no),
- NUME_ORDRE_I =SIMP(statut='f',typ='I' ),
- b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I' ),
- ),
- b_noeud_i = BLOC (condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no),
- NOM_CMP_I =SIMP(statut='o',typ='TXM' ),
- NOM_CMP_J =SIMP(statut='o',typ='TXM' ),
- ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- VALE_PARA =SIMP(statut='o',typ='R' ),
- VALE_REFE_C =SIMP(statut='o',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
- defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
- defaut= 1.E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
-) ;
-#& MODIF COMMANDE DATE 03/05/2000 AUTEUR VABHHTS J.PELLET
-TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-F",
- 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='**',
- 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,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
- TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
- VALE =SIMP(statut='f',typ='R'),
- VALE_I =SIMP(statut='f',typ='I'),
- VALE_C =SIMP(statut='f',typ='C'),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER")),
- VERSION =SIMP(statut='f',typ='TXM'),
- ),
- CHAM_ELEM =FACT(statut='f',min=01,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),# CO()
- MAILLE =SIMP(statut='f',typ=ma),# CO()
- POINT =SIMP(statut='f',typ='I' ),
- NOEUD =SIMP(statut='f',typ=no),# CO()
- GROUP_NO =SIMP(statut='f',typ=grno),# CO()
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
- TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER") ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- RESU =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
- UN_PARMI('NOM_CHAM','PARA'),
- PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),
- PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
- EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- UN_PARMI('VALE','VALE_I','VALE_C') ,),
- RESULTAT =SIMP(statut='o',typ=resultat),
- 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'),
- PARA =SIMP(statut='f',typ='TXM'),
- NOM_CHAM =SIMP(statut='f',typ='TXM'),
- NOM_CMP =SIMP(statut='f',typ='TXM'),
- 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'),
- 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'),
- 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),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER",) ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- OBJET =FACT(statut='f',max='**',
- regles=(UN_PARMI('INDICE','S_I','S_R','RESUME',),
- UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),),
- NOM =SIMP(statut='o',typ='TXM'),
- INDICE =SIMP(statut='f',typ='I'),
- NUM_OBJ =SIMP(statut='f',typ='I'),
- S_R =SIMP(statut='f',typ='R'),
- S_I =SIMP(statut='f',typ='I'),
- RESUME =SIMP(statut='f',typ='I'),
- VALE =SIMP(statut='f',typ='R'),
- VALE_I =SIMP(statut='f',typ='I'),
- VALE_C =SIMP(statut='f',typ='C'),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER",) ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& MODIF COMMANDE DATE 20/09/1999 AUTEUR DURAND C.DURAND
-TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,fr="Tester une 'cellule' d un concept de type table.Imprime dans le fichier 'RESULTAT' : OK si la valeur trouvée est identique à la valeur donnée en référence, NOOK sinon",
- docu="U4.92.03-B",
- regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
-# concept table à créer
- TABLE =SIMP(statut='o',typ=table),
- FILTRE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('VALE','VALE_I','VALE_C','VALE_K','VALE_CO', ),),
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- VALE_K =SIMP(statut='f',typ='TXM' ),
- VALE_CO =SIMP(statut='f',typ=geom),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE
-THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-F",reentrant='f',
- fr="Analyse thermique linéaire stationnaire ou transitoire",
- 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',min=01,max='**',
- CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
- INCREMENT =FACT(statut='f',min=01,max=01,
- 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',min=01,max=01,
- regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
- STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- EVOL_THER =SIMP(statut='f',typ=evol_ther),
- CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r),
- VALE =SIMP(statut='f',typ='R'),
- NUME_INIT =SIMP(statut='f',typ='I'),
- ),
- SENSIBILITE =FACT(statut='f',min=01,max=01,
- THETA =SIMP(statut='o',typ=theta_geom),
- ),
- DEUL_INIT =FACT(statut='f',min=01,max=01,
- 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',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
- 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',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',max='**',into=("VARI",)),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- 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 19/05/2000 AUTEUR JFBHHUC C.ROSE
-THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-D",reentrant='f',
- fr="Analyse thermique non linéaire stationnaire ou transitoire" ,
- 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',min=01,max='**',
- RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL",
- into=("THER_NL",
- "THER_HYDR",
- "SECH_GRANGER",
- "SECH_MENSI",
- "SECH_BAZANT",
- "SECH_NAPPE"
- ) ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',min=01,max='**',
- CHARGE =SIMP(statut='o',typ=char_ther),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
- INCREMENT =FACT(statut='f',min=01,max=01,
- 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',min=01,max=01,
- regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
- STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)),
- EVOL_THER =SIMP(statut='f',typ=evol_ther),
- CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r),
- VALE =SIMP(statut='f',typ='R'),
- NUME_INIT =SIMP(statut='f',typ='I'),
- ),
- NEWTON =FACT(statut='d',min=01,max=01,
- 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',min=01,max=01,
- 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 ),
- ),
- SOLVEUR =FACT(statut='d',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+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',min=01,max=01,
- 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',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',max='**',into=("VARI",)),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- 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 19/05/2000 AUTEUR JFBHHUC C.ROSE
-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',
- 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',min=01,max='**',
- CHARGE =SIMP(statut='o',typ=char_ther ),
- FONC_MULT =SIMP(statut='c',typ=fonction ),
- ),
- TEMP_INIT =FACT(statut='f',min=01,max=01,
- EVOL_THER =SIMP(statut='f',typ=evol_ther ),
- NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- CONVERGENCE =FACT(statut='d',min=01,max=01,
- 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',min=01,max=01,
- 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="MDA",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") ),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-
-
-
+++ /dev/null
-#& MODIF COMMANDE DATE 24/06/2002 AUTEUR F1BHHAJ J.ANGLES
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-import Accas
-from Accas import *
-from Accas import _F
-
-import ops
-
-try:
- import aster
-except:
- pass
-
-#
-__version__="$Name: $"
-__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $"
-#
-JdC = JDC_CATA(code='ASTER',
- execmodul=None,
- regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
- AU_MOINS_UN('FIN'),
- A_CLASSER(('DEBUT','POURSUITE'),'FIN')))
-# Type le plus general
-class entier (ASSD):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
-
-
-
-# Autres
-
-class cabl_precont (ASSD):pass
-class cara_elem (ASSD):pass
-class cara_pout (ASSD):pass
-class cham_mater (ASSD):pass
-class char_acou (ASSD):pass
-class char_cine_acou (ASSD):pass
-class char_cine_meca (ASSD):pass
-class char_cine_ther (ASSD):pass
-class char_meca (ASSD):pass
-class char_ther (ASSD):pass
-class courbe (ASSD):pass
-class fond_fiss (ASSD):pass
-class interf_dyna_clas(ASSD):pass
-class interspfact (ASSD):pass
-class listis (ASSD):pass
-class listr8 (ASSD):pass
-class macr_elem_dyna (ASSD):pass
-class macr_elem_stat (ASSD):pass
-class mater (ASSD):pass
-class melasflu (ASSD):pass
-class modele (ASSD):pass
-class modele_gene (ASSD):pass
-class nume_ddl (ASSD):pass
-class nume_ddl_gene (ASSD):pass
-class obstacle (ASSD):pass
-class spectre (ASSD):pass
-class surface (ASSD):pass
-class tran_gene (ASSD):pass
-class type_flui_stru (ASSD):pass
-class valeur (ASSD):pass
-
-# maillage :
-#--------------------------------
-class maillage(ASSD):pass
-class squelette (maillage):pass
-
-
-# cham_gd (carte,cham_no,cham_elem)
-#--------------------------------
-
-class cham_gd(ASSD):pass
-
-# cham_gd/carte :
-#--------------------------------
-class carte(cham_gd):pass
-class carte_dbel_r (carte):pass
-class carte_depl_c (carte):pass
-class carte_depl_f (carte):pass
-class carte_depl_r (carte):pass
-class carte_durt_r (carte):pass
-class carte_ener_r (carte):pass
-class carte_epsi_r (carte):pass
-class carte_erreur (carte):pass
-class carte_flux_r (carte):pass
-class carte_g_depl_r (carte):pass
-class carte_geom_r (carte):pass
-class carte_hydr_r (carte):pass
-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 carte_sief_r (carte):pass
-class carte_sour_r (carte):pass
-class carte_temp_f (carte):pass
-class carte_temp_r (carte):pass
-class carte_var2_r (carte):pass
-class carte_vnor_c (carte):pass
-
-
-# cham_gd/cham_elem :
-#--------------------------------
-class cham_elem(cham_gd):pass
-class cham_elem_crit_r(cham_elem):pass
-class cham_elem_dbel_r(cham_elem):pass
-class cham_elem_depl_c(cham_elem):pass
-class cham_elem_depl_f(cham_elem):pass
-class cham_elem_depl_r(cham_elem):pass
-class cham_elem_dommag(cham_elem):pass
-class cham_elem_durt_r(cham_elem):pass
-class cham_elem_ener_r(cham_elem):pass
-class cham_elem_epsi_c(cham_elem):pass
-class cham_elem_epsi_r(cham_elem):pass
-class cham_elem_erreur(cham_elem):pass
-class cham_elem_facy_r(cham_elem):pass
-class cham_elem_flux_r(cham_elem):pass
-class cham_elem_g_depl(cham_elem):pass
-class cham_elem_geom_r(cham_elem):pass
-class cham_elem_hydr_r(cham_elem):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_elem_sief_c(cham_elem):pass
-class cham_elem_sief_r(cham_elem):pass
-class cham_elem_sour_r(cham_elem):pass
-class cham_elem_temp_f(cham_elem):pass
-class cham_elem_temp_r(cham_elem):pass
-class cham_elem_vari_r(cham_elem):pass
-class cham_elem_vnor_c(cham_elem):pass
-
-
-# cham_gd/cham_no :
-#--------------------------------
-class cham_no(cham_gd):pass
-class cham_no_dbel_r (cham_no):pass
-class cham_no_depl_c (cham_no):pass
-class cham_no_depl_f (cham_no):pass
-class cham_no_depl_r (cham_no):pass
-class cham_no_durt_r (cham_no):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_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_hydr_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 cham_no_pres_r (cham_no):pass
-class cham_no_sief_r (cham_no):pass
-class cham_no_sour_r (cham_no):pass
-class cham_no_temp_c (cham_no):pass
-class cham_no_temp_f (cham_no):pass
-class cham_no_temp_r (cham_no):pass
-class cham_no_vanl_r (cham_no):pass
-class cham_no_var2_r (cham_no):pass
-class cham_no_vnor_c (cham_no):pass
-
-
-# resultat : (evol,mode_stat,mode_meca)
-#--------------------------------
-
-class resultat(ASSD):
- def __getitem__(self,key):
- return aster.getpara(self.get_name(),"RESULTAT",key[0],key[1])
-
-class acou_harmo (resultat):pass
-class base_modale (resultat):pass
-class comb_fourier (resultat):pass
-class dyna_harmo (resultat):pass
-class dyna_trans (resultat):pass
-class fourier_elas (resultat):pass
-class harm_gene (resultat):pass
-class mode_acou (resultat):pass
-class mode_cycl (resultat):pass
-class mode_flamb (resultat):pass
-class mode_gene (resultat):pass
-class mult_elas (resultat):pass
-class theta_geom (resultat):pass
-
-# resultat/evol :
-#--------------------------------
-class evol(resultat):pass
-class evol_char(evol):pass
-class evol_elas(evol):pass
-class evol_noli(evol):pass
-class evol_ther(evol):pass
-class evol_varc(evol):pass
-
-# resultat/mode_stat :
-#--------------------------------
-class mode_stat(resultat):pass
-class mode_stat_depl(mode_stat):pass
-class mode_stat_acce(mode_stat):pass
-class mode_stat_forc(mode_stat):pass
-
-
-# resultat/mode_meca :
-#--------------------------------
-class mode_meca(resultat):pass
-class mode_meca_c(mode_meca):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
-
-# matr_elem :
-#--------------------------------
-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
-
-
-
-
-# table : (tabl_fonc)
-#--------------------------------
-
-class table(ASSD):
- def __getitem__(self,key):
- return aster.getpara(self.get_name(),"TABLE",key[0],key[1])
-
-class tabl_aire_int (table):pass
-class tabl_calc_g_loca(table):pass
-class tabl_calc_g_th (table):pass
-class tabl_cara_geom (table):pass
-class tabl_char_limite(table):pass
-class tabl_ener_elas (table):pass
-class tabl_ener_pot (table):pass
-class tabl_ener_cin (table):pass
-class tabl_trav_ext (table):pass
-class tabl_ener_totale(table):pass
-class tabl_indic_ener (table):pass
-class tabl_indic_seuil(table):pass
-class tabl_intsp (table):pass
-class tabl_mass_iner (table):pass
-class tabl_post_alea (table):pass
-class tabl_post_beta (table):pass
-class tabl_post_dyna (table):pass
-class tabl_post_f_alea(table):pass
-class tabl_post_fatig (table):pass
-class tabl_post_gouj2e(table):pass
-class tabl_post_k (table):pass
-class tabl_post_rccm (table):pass
-class tabl_post_rele (table):pass
-class tabl_post_simpli(table):pass
-class tabl_post_usur (table):pass
-class tabl_reca_weib (table):pass
-class tabl_rice_tracey(table):pass
-class tabl_texture (table):pass
-class tabl_trc (table):pass
-class tabl_weibull (table):pass
-
-# table/tabl_fonc
-#--------------------------------
-class tabl_fonc (table):pass
-class tabl_fonc_max (tabl_fonc):pass
-class tabl_fonc_noci (tabl_fonc):pass
-class tabl_fonc_rms (tabl_fonc):pass
-
-
-# vect_asse :
-#--------------------------------
-class vect_asse(ASSD):pass
-class vect_asse_gene(vect_asse):pass
-
-
-# vect_elem :
-#--------------------------------
-class vect_elem(ASSD):pass
-class vect_elem_depl_r(vect_elem):pass
-class vect_elem_pres_c(vect_elem):pass
-class vect_elem_pres_r(vect_elem):pass
-class vect_elem_temp_r(vect_elem):pass
-
-#& 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
-# 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,
- 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=1,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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',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',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",
- "RZ1","RT1","AI1","JG1","IYR21","IZR21","A2",
- "IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
- "RZ2","RT2","AI2","JG2","IYR22","IZR22","H",
- "HZ","HY","EP","EPY","EPZ","H1","HZ1","HY1",
- "EP1","EPY1","EPZ1","H2","HZ2","HY2","EP2",
- "EPY2","EPZ2","R","R1","R2") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
- ),
- b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
- 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") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"),
- ),
- b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- 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",) ),
- MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- FCX =SIMP(statut='f',typ=(fonction) ),
- ),
-
- 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='**'),
- 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"),max=6 ),
- VALE =SIMP(statut='o',typ='R',max=6 ),
- ),
- b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- 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) ),
- ),
-
- 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='**'),
- 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),
- COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
- COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ),
- EXCENTREMENT =SIMP(statut='f',typ='R' ),
- INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-
- CABLE =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('A','SECTION') ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ),
- A =SIMP(statut='f',typ='R' ),
- SECTION =SIMP(statut='f',typ='R' ),
- FCX =SIMP(statut='f',typ=(fonction) ),
- ),
-
- 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='**'),
- 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',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",
- "M_T_L", "M_TR_N", "M_TR_L",
- "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
- "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ),
- VALE =SIMP(statut='o',typ='R',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='**'),
- 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='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
-
- DEFI_ARC =FACT(statut='f',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'),
- PRESENT_PRESENT('ORIE_ARC','RAYON'),
- EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
- EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
- EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
- EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
- PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
- PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
- MAILLE =SIMP(statut='f',typ=ma,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,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,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'),
- COEF_FLEX_XY =SIMP(statut='f',typ='R'),
- INDI_SIGM_XY =SIMP(statut='f',typ='R'),
- COEF_FLEX_XZ =SIMP(statut='f',typ='R'),
- INDI_SIGM_XZ =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
-
- MASSIF =FACT(statut='f',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,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',min=1,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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 ),
- A_FLUI =SIMP(statut='o',typ='R'),
- A_CELL =SIMP(statut='o',typ='R'),
- COEF_ECHELLE =SIMP(statut='o',typ='R'),
- ),
-
- GRILLE =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- EXCLUS('ANGL_REP','ORIG_AXE'),
- ENSEMBLE('ORIG_AXE','AXE')),
- 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'),
- POUR_CENT_L =SIMP(statut='f',typ='R'),
- POUR_CENT_T =SIMP(statut='f',typ='R'),
- EXCENTREMENT =SIMP(statut='f',typ='R'),
- ORIG_AXE =SIMP(statut='f',typ='R',max='**'),
- AXE =SIMP(statut='f',typ='R',max='**'),
- COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
- GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,min=1,max=1 ),
- ),
-
- 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='**'),
- FONC_GROUP =SIMP(statut='f',typ=(fonction) ),
- COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
- REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
- 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',min=1,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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'),
- PAS_N =SIMP(statut='o',typ='R'),
- ANGL_REP =SIMP(statut='o',typ='R',max='**'),
- COEF_ECHELLE =SIMP(statut='o',typ='R'),
- ),
-
-
- 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,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,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',min=1,max='**',
- regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
-
- NOM =SIMP(statut='f',typ='TXM'),
-
- 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='**'),
- COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2),
- ),
-
-
-) ;
-#& 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.
-# ======================================================================
-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=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='**'),
- 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',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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- VNOR =SIMP(statut='o',typ='C' ),
- ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- IMPE =SIMP(statut='o',typ='C' ),
- ),
- 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='o',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args):
- if MECA_IMPO != None : return char_cine_meca
- if THER_IMPO != None : return char_cine_ther
- if ACOU_IMPO != None : return char_cine_acou
- raise AsException("type de concept resultat non prevu")
-
-AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
- ,fr="Affectation de conditions aux limites cinématiques 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=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,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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- ),
- 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,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',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='**'),
- 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/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.
-# ======================================================================
-def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
- if MECA_IMPO != None : return char_cine_meca
- if THER_IMPO != None : return char_cine_ther
- raise AsException("type de concept resultat non prevu")
-
-AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod
- ,fr="Affectation de conditions aux limites cinématiques 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=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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,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 ),
- TEMP =SIMP(statut='f',typ=fonction ),
- PHI =SIMP(statut='f',typ=fonction ),
- ),
- 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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- TEMP_SUP =SIMP(statut='f',typ=fonction ),
- TEMP =SIMP(statut='f',typ=fonction ),
- TEMP_INF =SIMP(statut='f',typ=fonction ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca
- ,fr="Affectation de charges et conditions aux limites mécaniques constantes",
- 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_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'),),
- 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) ),
- 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 ),
- SECH_CALCULEE =SIMP(statut='f',fr="Champ de séchage 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 ),
-# 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 ),
-
- 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='**',
- 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'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PRE1 =SIMP(statut='f',typ='R' ),
- PRE2 =SIMP(statut='f',typ='R' ),
- UI2 =SIMP(statut='f',typ='R' ),
- UI3 =SIMP(statut='f',typ='R' ),
- UI4 =SIMP(statut='f',typ='R' ),
- UI5 =SIMP(statut='f',typ='R' ),
- UI6 =SIMP(statut='f',typ='R' ),
- UO2 =SIMP(statut='f',typ='R' ),
- UO3 =SIMP(statut='f',typ='R' ),
- UO4 =SIMP(statut='f',typ='R' ),
- UO5 =SIMP(statut='f',typ='R' ),
- UO6 =SIMP(statut='f',typ='R' ),
- VI2 =SIMP(statut='f',typ='R' ),
- VI3 =SIMP(statut='f',typ='R' ),
- VI4 =SIMP(statut='f',typ='R' ),
- VI5 =SIMP(statut='f',typ='R' ),
- VI6 =SIMP(statut='f',typ='R' ),
- VO2 =SIMP(statut='f',typ='R' ),
- VO3 =SIMP(statut='f',typ='R' ),
- VO4 =SIMP(statut='f',typ='R' ),
- VO5 =SIMP(statut='f',typ='R' ),
- VO6 =SIMP(statut='f',typ='R' ),
- WI2 =SIMP(statut='f',typ='R' ),
- WI3 =SIMP(statut='f',typ='R' ),
- WI4 =SIMP(statut='f',typ='R' ),
- WI5 =SIMP(statut='f',typ='R' ),
- WI6 =SIMP(statut='f',typ='R' ),
- WO2 =SIMP(statut='f',typ='R' ),
- WO3 =SIMP(statut='f',typ='R' ),
- WO4 =SIMP(statut='f',typ='R' ),
- WO5 =SIMP(statut='f',typ='R' ),
- WO6 =SIMP(statut='f',typ='R' ),
- WO =SIMP(statut='f',typ='R' ),
- WI1 =SIMP(statut='f',typ='R' ),
- WO1 =SIMP(statut='f',typ='R' ),
- GONF =SIMP(statut='f',typ='R' ),
- ),
-
-
-
- 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 clé REPERE :/ LOCAL /GLOBAL
- 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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- DNOR =SIMP(statut='f',typ='R' ),
- DTAN =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PRE1 =SIMP(statut='f',typ='R' ),
- PRE2 =SIMP(statut='f',typ='R' ),
- ),
-
- 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_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' ),
- ),
-
- 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'),),
-
- 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,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_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'),),
- 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',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,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_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,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",
- 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='R' ),
- FY =SIMP(statut='f',typ='R' ),
- FZ =SIMP(statut='f',typ='R' ),
- ),
-
- 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='**'),
- PRES =SIMP(statut='f',typ='R' ),
- CISA_2D =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' ),
- ),
-
- 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'),
- AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
- PRESENT_ABSENT('FX','N','VY','VZ'),
- PRESENT_ABSENT('FY','N','VY','VZ'),
- PRESENT_ABSENT('FZ','N','VY','VZ'),
- PRESENT_ABSENT('N','FX','FY','FZ'),
- PRESENT_ABSENT('VY','FX','FY','FZ'),
- PRESENT_ABSENT('VZ','FX','FY','FZ'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- FY =SIMP(statut='f',typ='R' ),
- FZ =SIMP(statut='f',typ='R' ),
-
- N =SIMP(statut='f',typ='R' ),
- VY =SIMP(statut='f',typ='R' ),
- VZ =SIMP(statut='f',typ='R' ),
-
- ),
-
- FORCE_TUYAU =FACT(statut='f',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,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",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='**'),
-
- 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_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',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=(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 ),
-
- 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),
- ),
- ),
-
-
-
-
- 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,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",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='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- PRES =SIMP(statut='o',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' ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca,
- fr="Affectation de charges et conditions aux limites mécaniques complexes",
- 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=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",) ),
- 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' ),
- DRX =SIMP(statut='f',typ='C' ),
- DRY =SIMP(statut='f',typ='C' ),
- DRZ =SIMP(statut='f',typ='C' ),
- GRX =SIMP(statut='f',typ='C' ),
- PRES =SIMP(statut='f',typ='C' ),
- PHI =SIMP(statut='f',typ='C' ),
- ),
- FORCE_POUTRE =FACT(statut='f',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('FX','N','VY','VZ',),
- PRESENT_ABSENT('FY','N','VY','VZ',),
- PRESENT_ABSENT('FZ','N','VY','VZ',),
- PRESENT_ABSENT('N','FX','FY','FZ',),
- PRESENT_ABSENT('VY', 'FX','FY','FZ',),
- PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- FZ =SIMP(statut='f',typ='C' ),
- N =SIMP(statut='f',typ='C' ),
- VY =SIMP(statut='f',typ='C' ),
- VZ =SIMP(statut='f',typ='C' ),
- ),
- LIAISON_DDL =FACT(statut='f',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='C' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
- fr="Affectation de charges et conditions aux limites mécaniques fonction d 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'),),
- 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'),
- AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
- 'TEMP','PRE1','PRE2'),),
- 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='**'),
- 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) ),
- ),
-
- 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='**'),
- 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_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='**'),
- ANGL_NAUT =SIMP(statut='o',typ='R',max=3),
- 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) ),
- ),
-
- 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),
- ),
-
- 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='**'),
- 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',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'),),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOEUD =SIMP(statut='f',typ=no,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) ),
- ANGL_NAUT =SIMP(statut='f',typ=(fonction),max=3 ),
- ),
-
- 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,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_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,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) ),
- ),
- 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,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) ),
- ),
-
- 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'),
- 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='**'),
- PRES =SIMP(statut='f',typ=(fonction) ),
- CISA_2D =SIMP(statut='f',typ=(fonction) ),
- ),
-
- 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) ),
- ),
-
- 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('FX','N','VY','VZ'),
- PRESENT_ABSENT('FY','N','VY','VZ'),
- PRESENT_ABSENT('FZ','N','VY','VZ'),
- PRESENT_ABSENT('N','FX','FY','FZ'),
- PRESENT_ABSENT('VY','FX','FY','FZ'),
- PRESENT_ABSENT('VZ','FX','FY','FZ'),),
-# rajout d un mot cle REPERE : / GLOBAL / LOCAL
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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) ),
- FY =SIMP(statut='f',typ=(fonction) ),
- FZ =SIMP(statut='f',typ=(fonction) ),
- N =SIMP(statut='f',typ=(fonction) ),
- 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'),),
- 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=(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'),),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- VNOR =SIMP(statut='o',typ=(fonction) ),
- ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- IMPE =SIMP(statut='o',typ=(fonction) ),
- ),
- 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) ),
- DIST_ORIG =SIMP(statut='o',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=(fonction) ),
- FLUN_HYDR1 =SIMP(statut='f',typ=(fonction) ),
- FLUN_HYDR2 =SIMP(statut='f',typ=(fonction) ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& 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.
-# ======================================================================
-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=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 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.
-# ======================================================================
-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' ),),
- VERI_DDL =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"),
- 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",) ),
- 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',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,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'),
- CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ),
- ),
-
-
- 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'),
- ENSEMBLE('COEF_H','TEMP_EXT',),
- ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
- ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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_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) ),
- ),
-
- 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='R' ),
- FLUX_Y =SIMP(statut='f',typ='R' ),
- FLUX_Z =SIMP(statut='f',typ='R' ),
- ),
-
- 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'),
- 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='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP") ),
- COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'),
- DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP",) ),
- COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ='R' ),
- SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- TRAN =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- CENTRE =SIMP(statut='f',typ='R',max='**'),
- ),
-
- LIAISON_MAIL =FACT(statut='f',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,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',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 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.
-# ======================================================================
-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'),),
- VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- 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'),
- PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),),
- 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='**'),
- EVOL_THER =SIMP(statut='f',typ=(evol_ther) ),
- DDL =SIMP(statut='f',typ='TXM',into=("TEMP",) ),
- TEMP =SIMP(statut='f',typ=(fonction) ),
- TEMP_INF =SIMP(statut='f',typ=(fonction) ),
- TEMP_SUP =SIMP(statut='f',typ=(fonction) ),
- ),
-
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- FLUN =SIMP(statut='f',typ=(fonction) ),
- FLUN_INF =SIMP(statut='f',typ=(fonction) ),
- FLUN_SUP =SIMP(statut='f',typ=(fonction) ),
- FLUX_X =SIMP(statut='f',typ=(fonction) ),
- 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'),),
- 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='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'),
- AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
- ENSEMBLE('COEF_H','TEMP_EXT'),
- ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
- ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- COEF_H =SIMP(statut='f',typ=(fonction) ),
- TEMP_EXT =SIMP(statut='f',typ=(fonction) ),
- COEF_H_INF =SIMP(statut='f',typ=(fonction) ),
- TEMP_EXT_INF =SIMP(statut='f',typ=(fonction) ),
- 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'),),
- 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) ),
- 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_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'),
- 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='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP") ),
- COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'),
- DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
- into=("TEMP","TEMP_INF","TEMP_SUP") ),
- COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'),
- COEF_IMPO =SIMP(statut='o',typ=(fonction) ),
- SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- TRAN =SIMP(statut='f',typ='R',max='**'),
- ANGL_NAUT =SIMP(statut='f',typ='R',max='**'),
- CENTRE =SIMP(statut='f',typ='R',max='**'),
- ),
-
- LIAISON_UNIF =FACT(statut='f',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") ),
- ),
-
- 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/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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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=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='**'),
- 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/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.
-# ======================================================================
-# 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=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=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='**'),
- 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', into=(
- "2D_DIS_T",
- "2D_DIS_TR",
- "2D_FLUI_ABSO",
- "2D_FLUI_PESA",
- "2D_FLUI_STRU",
- "2D_FLUIDE",
- "3D",
- "3D_ABSO",
- "3D_FAISCEAU",
- "3D_FLUI_ABSO",
- "3D_FLUIDE",
- "3D_HHM" ,
- "3D_HM",
- "3D_INCO",
- "3D_JOINT_CT",
- "3D_SI",
- "3D_THH",
- "3D_THHM",
- "3D_THM",
- "3D_GRAD_EPSI",
- "3D_GRAD_VARI",
- "APPUI_REP",
- "ASSE_GRIL",
- "AXIS",
- "AXIS_FLUI_STRU",
- "AXIS_FLUIDE",
- "AXIS_FOURIER",
- "AXIS_HHM",
- "AXIS_HM",
- "AXIS_INCO",
- "AXIS_SI",
- "AXIS_THH",
- "AXIS_THHM",
- "AXIS_THM",
- "AXIS_GRAD_VARI",
- "AXIS_FISSURE",
- "BARRE",
- "2D_BARRE",
- "C_PLAN",
- "C_PLAN_SI",
- "C_PLAN_GRAD_EPSI",
- "C_PLAN_GRAD_VARI",
- "CABLE",
- "CABLE_POULIE",
- "COQUE_3D",
- "COQUE_AXIS",
- "COQUE_C_PLAN",
- "COQUE_D_PLAN",
- "D_PLAN",
- "D_PLAN_GRAD_EPSI",
- "D_PLAN_GRAD_VARI",
- "PLAN_FISSURE",
- "D_PLAN_ABSO",
- "D_PLAN_HHM",
- "D_PLAN_HM",
- "D_PLAN_INCO",
- "D_PLAN_SI",
- "D_PLAN_THH",
- "D_PLAN_THHM",
- "D_PLAN_THM",
- "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",
- "DIS_TR",
- "DKT",
- "DST",
- "FLUI_STRU",
- "GRILLE",
- "POU_C_T",
- "POU_D_E",
- "POU_D_EM",
- "POU_D_T",
- "POU_D_T_GD",
- "POU_D_TG",
- "POU_D_TGM",
- "Q4G",
- "TUYAU_3M",
- "TUYAU_6M"
- ) ) ),
-
- b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'",
- fr="modelisations thermiques",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "3D_DIAG",
- "AXIS",
- "AXIS_DIAG",
- "AXIS_FOURIER",
- "COQUE",
- "COQUE_AXIS",
- "COQUE_PLAN",
- "PLAN",
- "PLAN_DIAG",
- ),),),
-
- b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
- fr="modelisations acoustiques",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "PLAN"
- ), ),),
-
- ),
-) ;
-#& 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.
-# ======================================================================
-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=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/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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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 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.
-# ======================================================================
-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 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def asse_matrice_prod(MATR_ELEM,**args):
- if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
- if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
- if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
- if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
- raise AsException("type de concept resultat non prevu")
-
-ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
- fr="Construction d une matrice assemblée",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 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.
-# ======================================================================
-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=1,max='**',
- SOUS_STRUC =SIMP(statut='o',typ='TXM' ),
- VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ),
- ),
-) ;
-#& 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def asse_vecteur_prod(VECT_ELEM,**args):
- if AsType(VECT_ELEM) == vect_elem_depl_r : return cham_no_depl_r
- if AsType(VECT_ELEM) == vect_elem_temp_r : return cham_no_temp_r
- if AsType(VECT_ELEM) == vect_elem_pres_r : return cham_no_pres_r
- if AsType(VECT_ELEM) == vect_elem_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu ")
-
-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 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.
-# ======================================================================
-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',
- 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')
- PRESENT_PRESENT('KRX','KRY'),
- PRESENT_PRESENT('KRX','KRZ'),
- PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
- PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
- PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
- METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- GROUP_NO_RADIER =SIMP(statut='f',typ=grno,max='**'),
- GROUP_MA_RADIER =SIMP(statut='f',typ=grma,max='**'),
- FONC_GROUP =SIMP(statut='f',typ=fonction ),
- COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
- KX =SIMP(statut='o',typ='R' ),
- KY =SIMP(statut='o',typ='R' ),
- KZ =SIMP(statut='o',typ='R' ),
- KRX =SIMP(statut='f',typ='R' ),
- KRY =SIMP(statut='f',typ='R' ),
- KRZ =SIMP(statut='f',typ='R' ),
- GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
- NOEUD_CENTRE =SIMP(statut='f',typ=no),
- COOR_CENTRE =SIMP(statut='f',typ='R',max=3),
- ),
- AMOR_INTERNE =FACT(statut='o',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=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 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-def calc_cham_elem_prod(OPTION,**args):
-
-# options mecaniques
- if OPTION == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r
- if OPTION == "ECIN_ELEM_DEPL" : return cham_elem_ener_r
- if OPTION == "EFGE_ELNO_CART" : return cham_elem_sief_r
- if OPTION == "EFGE_ELNO_DEPL" : return cham_elem_sief_r
- if OPTION == "ENDO_ELNO_SIGM" : return cham_elem_sief_r
- if OPTION == "EPOT_ELEM_DEPL" : return cham_elem_ener_r
- if OPTION == "ENEL_ELGA" : return cham_elem_ener_r
- if OPTION == "ENEL_ELNO_ELGA" : return cham_elem_ener_r
- if OPTION == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r
- if OPTION == "EQUI_ELGA_EPSI" : return cham_elem_epsi_r
- if OPTION == "EQUI_ELGA_SIGM" : return cham_elem_sief_r
- if OPTION == "EQUI_ELNO_EPSI" : return cham_elem_epsi_r
- if OPTION == "EQUI_ELNO_SIGM" : return cham_elem_sief_r
- if OPTION == "PRES_DBEL_DEPL" : return cham_elem_dbel_r
- if OPTION == "SIEF_ELGA_DEPL" : return cham_elem_sief_r
- if OPTION == "SIEF_ELGA_LAGR" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_CART" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_DEPL" : return cham_elem_sief_r
- if OPTION == "SIGM_ELNO_LAGR" : return cham_elem_sief_r
- if OPTION == "SIPO_ELNO_DEPL" : return cham_elem_sief_r
-
-# options thermiques
-
- if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r
- if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_r
- if OPTION == "SOUR_ELGA_ELEC" : return cham_elem_sour_r
-
-# options acoustiques
-
- if OPTION == "PRES_ELNO_DBEL" : return cham_elem_dbel_r
- if OPTION == "PRES_ELNO_REEL" : return cham_elem_pres_r
- if OPTION == "PRES_ELNO_IMAG" : return cham_elem_pres_r
-
-# autres options
-
- if OPTION == "COOR_ELGA" : return cham_elem_geom_r
-
- raise AsException("type de concept resultat non prevu")
-
-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),
-
- regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
-
-#
-#
-# introduire un mot cle de type modelisation : mécanique,thermique,...
-#
-
- OPTION =SIMP(statut='o',typ='TXM',
- into=("DEGE_ELNO_DEPL","ECIN_ELEM_DEPL","EFGE_ELNO_CART",
- "EFGE_ELNO_DEPL","ENDO_ELNO_SIGM","EPOT_ELEM_DEPL",
- "ENEL_ELGA", "ENEL_ELNO_ELGA","EPSI_ELNO_DEPL",
- "EQUI_ELGA_EPSI","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
- "EQUI_ELNO_SIGM","PRES_DBEL_DEPL","SIEF_ELGA_DEPL",
- "SIEF_ELGA_LAGR","SIGM_ELNO_CART","SIGM_ELNO_DEPL",
- "SIGM_ELNO_LAGR","SIPO_ELNO_DEPL",
- "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",
- "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
- "COOR_ELGA"), ),
-
- b_dege_elno_depl =BLOC(condition="OPTION=='DEGE_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ),
- ),
-
- b_ecin_elem_depl =BLOC(condition="OPTION=='ECIN_ELEM_DEPL'",
- regles=(UN_PARMI('VITE','DEPL',),ENSEMBLE('DEPL','FREQ',),),
- FREQ =SIMP(statut='f',typ='R'),
- VITE =SIMP(statut='f',typ=cham_no_depl_r),
- DEPL =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c)),
- ),
-
- b_efge_elno_cart =BLOC(condition="OPTION=='EFGE_ELNO_CART'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ),
- ),
-
- b_efge_elno_depl =BLOC(condition="OPTION=='EFGE_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ),
- ),
-
- b_endo_elno_sigm =BLOC(condition="OPTION=='ENDO_ELNO_SIGM'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_epot_elem_depl =BLOC(condition="OPTION=='EPOT_ELEM_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- ),
-
- b_enel_elga =BLOC(condition="OPTION=='ENEL_ELGA'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_enel_elno_elga =BLOC(condition="OPTION=='ENEL_ELNO_ELGA'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_epsi_elno_depl =BLOC(condition="OPTION=='EPSI_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- ),
-
- b_equi_elga_epsi =BLOC(condition="OPTION=='EQUI_ELGA_EPSI'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_epsi_r,) ),
- ),
-
- b_equi_elga_sigm =BLOC(condition="OPTION=='EQUI_ELGA_SIGM'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_equi_elno_epsi =BLOC(condition="OPTION=='EQUI_ELNO_EPSI'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_epsi_r,) ),
- ),
-
- b_equi_elno_sigm =BLOC(condition="OPTION=='EQUI_ELNO_SIGM'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_pres_dbel_depl =BLOC(condition="OPTION=='PRES_DBEL_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_c,)),
- ),
-
- b_sief_elga_depl =BLOC(condition="OPTION=='SIEF_ELGA_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- ),
-
- b_sief_elga_lagr =BLOC(condition="OPTION=='SIEF_ELGA_LAGR'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- THETA =SIMP(statut='o',typ=(theta_geom,)),
- PROPAGATION =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),
-
- b_sigm_elno_cart =BLOC(condition="OPTION=='SIGM_ELNO_CART'",
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ),
- ),
-
- b_sigm_elno_depl =BLOC(condition="OPTION=='SIGM_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,) ),
- ),
-
- b_sigm_elno_lagr =BLOC(condition="OPTION=='SIGM_ELNO_LAGR'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- THETA =SIMP(statut='o',typ=(theta_geom,)),
- PROPAGATION =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),
-
- b_sipo_elno_depl =BLOC(condition="OPTION=='SIPO_ELNO_DEPL'",
- DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)),
- ),
-
- b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP','SOUR_ELGA_ELEC',)",
- TEMP =SIMP(statut='o',typ=(cham_no_temp_r,)),
- ),
-
- b_acoustique =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)",
- PRES =SIMP(statut='o',typ=(cham_no_pres_c,)),
- ),
-
-
-
- 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),
- COEF_MULT =SIMP(statut='f',typ='R'), ),
-
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0),
- ACCE =SIMP(statut='f',typ=cham_no_depl_r),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1),
- NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ANGLE =SIMP(statut='f',typ='I',defaut= 0),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def calc_char_cine_prod(CHAR_CINE,**args):
- if AsType(CHAR_CINE) == char_cine_meca : return cham_no_depl_r
- if AsType(CHAR_CINE) == char_cine_ther : return cham_no_temp_r
- if AsType(CHAR_CINE) == char_cine_acou : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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 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.
-# ======================================================================
-def calc_char_seisme_prod(MATR_MASS,**args ):
- if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-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=6,fr="Directions du séisme imposé"),
- MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
- b_mode_stat =BLOC ( condition = "MODE_STAT != None",
- regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# 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):
- if AsType(RESULTAT) != None : return AsType(RESULTAT)
- raise AsException("type de concept resultat non prevu")
-
-CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
-
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
-
- 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',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',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',max='**',
- into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
- "SIGM_ELNO_TUYO","SIGM_ELNO_CART","DEGE_ELNO_DEPL","EFGE_ELNO_CART",
- "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","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL",
- "EPGR_ELNO","EPGR_ELGA","DURT_ELGA_META","DURT_ELNO_META",
- "SIGM_ELNO_COQU","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",
- "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2",
- "VNOR_ELEM_DEPL","SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA",
- "VARI_ELNO_ELGA","VARI_ELNO_TUYO","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
- "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
- "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
- "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","ENEL_ELGA","ENEL_ELNO_ELGA","SIEF_ELNO_ELGA",
- "DEUL_ELGA_TEMP","DETE_ELNO_DLTE","DEUL_ELGA_DEPL","DEDE_ELNO_DLDE",
- "DESI_ELNO_DLSI","PMPB_ELNO_SIEF","PMPB_ELGA_SIEF",
- "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",
- "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,
- evol_noli,mult_elas,fourier_elas,
- evol_ther,base_modale,
- acou_harmo,mode_acou,mode_flamb) ),
- 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,char_ther,char_acou) ),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- FONC_MULT_C =SIMP(statut='f',typ=fonction_c),
- COEF_MULT =SIMP(statut='f',typ='R'),
- COEF_MULT_C =SIMP(statut='f',typ='C'),
- PHAS_DEG =SIMP(statut='f',typ='R'),
- PUIS_PULS =SIMP(statut='f',typ='I'),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- ),
- NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
- into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 ),
- 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),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 09/10/2002 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.
-# ======================================================================
-def calc_fatigue_prod(TYPE_CALCUL,**args):
- if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem_dommag
- 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',
- 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",) ),
-
- b_cumul_domma =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'",
- fr="Calcul d un champ de dommage subi par une structure.",
- regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
- OPTION =SIMP(statut='o',typ='TXM',
- into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
- "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
- "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
- HISTOIRE =FACT(statut='o',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",
- into=("VMIS_SG","INVA_2_SG") ),
- ),
- DOMMAGE =SIMP(statut='o',typ='TXM',
- into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON",
- "TAHERI_MIXTE",) ),
- MATER =SIMP(statut='o',typ=(mater) ),
- TAHERI_NAPPE =SIMP(statut='f',typ=(fonction) ),
- TAHERI_FONC =SIMP(statut='f',typ=(fonction) ),
- ),
-
- b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'",
- 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",) ),
- METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& 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.
-# ======================================================================
-CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu,
- docu="U4.66.02-d",reentrant='n',
- 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=1,max=1,
-
- regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- AMOR_UNIF =SIMP(statut='f',typ='R' ),
- ),
- TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ),
- 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/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.
-# ======================================================================
-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"),
- VALE_R =SIMP(statut='f',typ='R',max='**'),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG","INT") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-) ;
-#& 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
-# 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,RMS,NOCI_SEISME,MAX,COMB,COMB_C,ENVELOPPE,
- 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 (INTEGRE != None) : return fonction
- if (DERIVE != 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 (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','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) )
- ),
- 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 ),
- ),
- 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),
- COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
- ),
- 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 ),
- INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
- INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- NOCI_SEISME =FACT(statut='f',min=1,max=1,
- FONCTION =SIMP(statut='f',typ=fonction ),
- SPEC_OSCI =SIMP(statut='f',typ=fonction ),
- 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'),
- INST_FIN =SIMP(statut='f',typ='R'),
- NATURE =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE") ),
- COEF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PESANTEUR =SIMP(statut='f',typ='R',defaut= 9.81E+0 ),
- FREQ_INIT =SIMP(statut='f',typ='R',defaut= 4.E-1 ),
- FREQ_FIN =SIMP(statut='f',typ='R',defaut= 10.E+0 ),
- AMOR_REDUIT =SIMP(statut='f',typ='R'),
- LIST_FREQ =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- NORME =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
- BORNE_INF =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
- BORNE_SUP =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
- b_acce_reel =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- 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 ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ =SIMP(statut='f',typ=listr8 ),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- NORME =SIMP(statut='f',typ='R',defaut= 9.81E+0,fr="Valeur de la norme du spectre d oscillateur" ),
- NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
- NATURE_FONC =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
- ),
- MAX =FACT(statut='f',min=1,max=1,fr="Calcul des extrémas locaux d une fonction",
- FONCTION =SIMP(statut='o',typ=fonction ),
- ),
- COMB =FACT(statut='f',min=1,max='**',fr="Calcul d une combinaison linéaire réelle de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction ),
- COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
- ),
- 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) ),
- COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
- COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
- ),
- b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)",
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- ),
- 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),
- FONC_PARA =SIMP(statut='o',typ=fonction),
- ),
- 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',min=1,max=1,fr="Calcul de l enveloppe d une famille de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
- ),
- ASSE =FACT(statut='f',min=1,max=1,fr="Création à partir de la concatenation de fonctions",
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
- ),
- 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 ),
- ),
- PUISSANCE =FACT(statut='f',min=1,max=1,fr="Cacul du carré d'une fonction",
- FONCTION =SIMP(statut='o', typ=fonction),
- EXPOSANT =SIMP(statut='f', typ='I', defaut=1 ),
- ),
- NORME =FACT(statut='f',min=1,max=1,fr="Cacul de la norme L2 d'une fonction",
- FONCTION =SIMP(statut='o', typ=fonction),
- ),
- NOM_PARA =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS",
- "AMOR","ABSC") ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS",
- "AMOR","ABSC") ),
- INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
- fr="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'),
- UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'),
- UN_PARMI('MONO_APPUI','MODE_STAT')),
-
- MODELE_FLUIDE =SIMP(statut='o',typ=modele ),
- MODELE_INTERFACE=SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='o',typ=char_ther ),
- MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
- NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ),
- DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NUME_MODE_MECA =SIMP(statut='f',typ='I',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,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',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") ),
- ),
- b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0), ),
-
- ) ;
-#& 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.
-# ======================================================================
-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' ),
- UN_PARMI('RESULTAT','DEPL'),
- UN_PARMI('R_INF','R_INF_FO'),
- PRESENT_PRESENT('R_INF','R_SUP'),
- PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
- FOND =SIMP(statut='f',typ=fond_fiss),
- FOND_FISS =SIMP(statut='f',typ=fond_fiss),
- DEPL =SIMP(statut='f',typ=cham_no_depl_r),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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") ),
- ),
- ),
-
- 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=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,) ),
- ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
-
- 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,) ),
- VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_CINE_LINE =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
-
- 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_LGLO","G_BILINEAIRE","CALC_G_MAX") ),
- b_g =BLOC(condition="OPTION=='CALC_G'",
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ),
- ),
- b_g_lglo =BLOC(condition="OPTION=='CALC_G_LGLO'",
- PROPAGATION =SIMP(statut='o',typ='R'),
- THETA =SIMP(statut='o',typ=theta_geom),
- DIRE_THETA =SIMP(statut='f',typ=cham_no_depl_r),
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ),
- ),
- b_g_bilin =BLOC(condition="OPTION=='G_BILINEAIRE'",
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- 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=1,max='**',
- NUME_ORDRE =SIMP(statut='o',typ='I'),
- VALE_MIN =SIMP(statut='o',typ='R'),
- VALE_MAX =SIMP(statut='o',typ='R'),
- ),
- LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
- ),
-
- DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
-
- R_INF =SIMP(statut='f',typ='R'),
- R_SUP =SIMP(statut='f',typ='R'),
- R_INF_FO =SIMP(statut='f',typ=fonction),
- R_SUP_FO =SIMP(statut='f',typ=fonction),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& 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.
-# ======================================================================
-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),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- THETA =SIMP(statut='o',typ=theta_geom),
- DEPL =SIMP(statut='f',typ=cham_no_depl_r),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),),
-
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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") ),
- ),
- ),
-
- 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=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,) ),
- ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- 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,) ),
- VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_CINE_LINE =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- 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=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_k_g =BLOC(condition="OPTION=='CALC_K_G'",
- regles=(UN_PARMI('FOND','FOND_FISS' ),),
- FOND =SIMP(statut='f',typ=fond_fiss),
- FOND_FISS =SIMP(statut='f',typ=fond_fiss),
- ),
- b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'",
- PROPAGATION =SIMP(statut='o',typ='R'),
- ),
- 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/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.
-# ======================================================================
-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' ),
- DUREE_DECALAGE =SIMP(statut='f',typ='R' ),
- NB_POIN =SIMP(statut='o',typ='I' ),
- FONCTION =SIMP(statut='o',typ=fonction,max='**' ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& 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.
-# ======================================================================
-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'),),
- MODELE_FLUIDE =SIMP(statut='o',typ=modele ),
- MODELE_INTERFACE=SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CHARGE =SIMP(statut='o',typ=char_ther ),
- MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ),
- MODELE_GENE =SIMP(statut='f',typ=modele_gene ),
- NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ),
- DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NUME_MODE_MECA =SIMP(statut='f',typ='I',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',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") ),
- ),
- b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def calc_matr_elem_prod(OPTION,**args):
- if OPTION == "RIGI_MECA" : return matr_elem_depl_r
- if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r
- if OPTION == "RIGI_MECA_LAGR" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MDEP_R" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MDNS_R" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MTEM_R" : return matr_elem_temp_r
- if OPTION == "MASS_ID_MTNS_R" : return matr_elem_temp_r
- if OPTION == "MASS_MECA" : return matr_elem_depl_r
- if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r
- if OPTION == "RIGI_GEOM" : return matr_elem_depl_r
- if OPTION == "RIGI_ROTA" : return matr_elem_depl_r
- if OPTION == "AMOR_MECA" : return matr_elem_depl_r
- if OPTION == "IMPE_MECA" : return matr_elem_depl_r
- if OPTION == "ONDE_FLUI" : return matr_elem_depl_r
- if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c
- if OPTION == "RIGI_THER" : return matr_elem_temp_r
- if OPTION == "MASS_THER" : return matr_elem_temp_r
- if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r
- if OPTION == "RIGI_ACOU" : return matr_elem_pres_c
- if OPTION == "MASS_ACOU" : return matr_elem_pres_c
- if OPTION == "AMOR_ACOU" : return matr_elem_pres_c
- raise AsException("type de concept resultat non prevu")
-
-CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod
- ,fr="Calcul des matrices élémentaires",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",
- "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU",
- "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU",
- "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R",
- "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST",
- "RIGI_MECA_LAGR") ),
-
- b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
- regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- CHARGE =SIMP(statut='f',typ=char_meca,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,max='**' ),
- b_charge =BLOC(condition = "CHARGE != None",
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- THETA =SIMP(statut='o',typ=theta_geom ),
- PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-
- b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
- regles=(AU_MOINS_UN('MODELE','CHARGE'),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
- CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
- b_charge =BLOC(condition = "CHARGE != None",
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ),
-
- b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ",
- MODELE =SIMP(statut='o',typ=modele ),
- # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
-
- b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'",
- MODELE =SIMP(statut='o',typ=modele ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 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,max='**' ),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-
- b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'",
- regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
- ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
- MODELE =SIMP(statut='o',typ=modele ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
- MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
- CHARGE =SIMP(statut='f',typ=char_meca,max='**' ),
- ),
-
- b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
- MODELE =SIMP(statut='o',typ=modele ),
- CHARGE =SIMP(statut='o',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 ),
- ),
-
- b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'",
- regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
- MODELE =SIMP(statut='f',typ=modele ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- CHARGE =SIMP(statut='f',typ=char_ther,max='**' ),
- ),
-
- b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'",
- MODELE =SIMP(statut='o',typ=modele ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
-
- 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 ,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 ,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,max='**' ),
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- ),
-) ;
-#& 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.
-# ======================================================================
-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=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=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,) ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma),
- MAILLE =SIMP(statut='f',typ=ma),
- ),
- OPTION =SIMP(statut='f',typ='TXM'
- ,into=("META_ELNO_TEMP",) ),
-) ;
-#& MODIF COMMANDE DATE 09/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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def calc_no_prod(RESULTAT,**args):
- if AsType(RESULTAT) != None : return AsType(RESULTAT)
- raise AsException("type de concept resultat non prevu")
-
-CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,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,
- mult_elas,fourier_elas,mode_flamb ) ),
- 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',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',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',max='**',
- into=("FORC_NODA","REAC_NODA",
- "DCHA_NOEU_SIGM",
- "DEGE_NOEU_DEPL",
- "DETE_NOEU_DLTE",
- "DEDE_NOEU_DLDE",
- "DESI_NOEU_DLSI",
- "DURT_NOEU_META",
- "EFGE_NOEU_CART","EFGE_NOEU_DEPL",
- "ENDO_NOEU_SINO",
- "ENEL_NOEU_ELGA",
- "EPMG_NOEU_DEPL",
- "EPSA_NOEU",
- "EPSG_NOEU" ,"EPSG_NOEU_DEPL",
- "EPSI_NOEU_DEPL","EPSI_NOEU_DPGE",
- "EPSP_NOEU" ,"EPSP_NOEU_ZAC",
- "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM",
- "ERRE_NOEU_ELGA",
- "FLUX_NOEU_TEMP",
- "GRAD_NOEU_THETA",
- "HYDR_NOEU_ELGA",
- "INTE_NOEU_ACTI","INTE_NOEU_REAC",
- "META_NOEU_TEMP",
- "PMPB_NOEU_SIEF",
- "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL",
- "RADI_NOEU_SIGM",
- "SIEF_NOEU" ,"SIEF_NOEU_ELGA",
- "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL","SIGM_NOEU_DPGE",
- "SIGM_NOEU_SIEF","SIGM_NOEU_VARI","SIGM_NOEU_ZAC",
- "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF",
- "SIRE_NOEU_DEPL",
- "VARI_NOEU" ,"VARI_NOEU_ELGA",) ),
-
- b_forc_reac =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\
- (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""",
- MODELE =SIMP(statut='o',typ=modele),
- ),
-
- CHAM_MATER =SIMP(statut='f',typ=cham_mater),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- 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),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,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'),
- EXCLUS('DIRECTION','DIRE_THETA'),),
- OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
- 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=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,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'),
- MODULE_FO =SIMP(statut='f',typ=fonction),
- R_INF_FO =SIMP(statut='f',typ=fonction),
- R_SUP_FO =SIMP(statut='f',typ=fonction),
- ),
- DIRE_THETA =SIMP(statut='f',typ=(cham_no_depl_r) ),
- DIRECTION =SIMP(statut='f',typ='R',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='**'),
- 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',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=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/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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def calc_vect_elem_prod(OPTION,**args):
- if OPTION == "CHAR_MECA" : return vect_elem_depl_r
- if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r
- if OPTION == "CHAR_THER" : return vect_elem_temp_r
- if OPTION == "CHAR_ACOU" : return vect_elem_pres_c
- if OPTION == "FORC_NODA" : return vect_elem_depl_r
- raise AsException("type de concept resultat non prevu")
-
-CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,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") ),
- b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'",
- regles=(AU_MOINS_UN('CHARGE','MODELE'),),
- 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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
- SOUS_STRUC =FACT(statut='o',min=01,
- regles=(UN_PARMI('TOUT','MAILLE'),),
- CAS_CHARGE =SIMP(statut='o',typ='TXM' ),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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,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,max='**'),
- ),
-
- b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'",
- SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- MODELE =SIMP(statut='f',typ=modele),
- ),
-
- b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'",
- CHAM_MATER =SIMP(statut='o',typ=cham_mater),
- THETA =SIMP(statut='o',typ=theta_geom),
- PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- CHARGE =SIMP(statut='f',typ=char_meca,max='**'),
- INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args):
-
- if COMB_R != None:
- vale=COMB_R.get_child('CHAM_ELEM').get_valeur()
- elif COMB_C != None:
- vale=COMB_C.get_child('CHAM_ELEM').get_valeur()
- elif COMB_FOURIER != None:
- vale=COMB_FOURIER.get_child('CHAM_ELEM').get_valeur()
- else :
- raise AsException("type de concept resultat non prevu")
-
- if AsType(vale) == cham_elem_sief_r : return cham_elem_sief_r
- if AsType(vale) == cham_elem_flux_r : return cham_elem_flux_r
- if AsType(vale) == cham_elem_epsi_r : return cham_elem_epsi_r
- if AsType(vale) == cham_elem_ener_r : return cham_elem_ener_r
- if AsType(vale) == cham_elem_crit_r : return cham_elem_crit_r
- if AsType(vale) == cham_elem_dbel_r : return cham_elem_dbel_r
- if AsType(vale) == cham_elem_pres_r : return cham_elem_pres_r
- if AsType(vale) == cham_elem_sief_c : return cham_elem_sief_c
- raise AsException("type de concept resultat non prevu")
-
-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=1,max='**',
- PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
- COEF_R =SIMP(statut='o',typ='R'),
- CHAM_ELEM =SIMP(statut='o',
- typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r,
- 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=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=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") ),
- CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r ) ),
- ),
- ANGL =SIMP(statut='f',typ='R' ),
-) ;
-
-#& 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args):
- if COMB_C != None:
- type_mat = AsType(COMB_C.get_child('CHAM_NO').get_valeur())
- if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_c
- if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_c
- if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_c
- elif COMB_R != None:
- type_mat = AsType(COMB_R.get_child('CHAM_NO').get_valeur())
- if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_r
- if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_r
- if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_r
- if type_mat == matr_asse_gene_r : return matr_asse_gene_r
- elif COMB_FOURIER != None:
- type_mat = AsType(COMB_FOURIER.get_child('CHAM_NO').get_valeur())
- if type_mat == cham_no_temp_r : return cham_no_temp_r
- if type_mat == cham_no_depl_r : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-
-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=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=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=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' ),
- TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
- ),
- b_angl = BLOC ( condition = "COMB_FOURIER != None",
- ANGL =SIMP(statut='o',typ='R' ),
- ),
-) ;
-#& 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.
-# ======================================================================
-# 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=5,
- into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ),
-) ;
-#& 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
- if COMB_C != None:
- type_mat = AsType(COMB_C.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_gene_c,matr_asse_gene_r) : return matr_asse_gene_c
- if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c
- if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
- elif COMB_R != None:
- type_mat = AsType(COMB_R.get_child('MATR_ASSE').get_valeur())
- if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
- if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
- if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
- if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
- elif CALC_AMOR_GENE != None: return matr_asse_gene_r
- raise AsException("type de concept resultat non prevu")
-
-COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod,
- fr="Combinaison linéaire de matrices assemblées",
- docu="U4.72.01-g1",reentrant='f',
- 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=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 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.
-# ======================================================================
-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 ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- MODE_CORR =SIMP(statut='f',typ=mode_stat_acce ),
-
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
-
- 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=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,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,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=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=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=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=1,max=1,
- TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
- ),
- 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",) ),
- 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","ABS") ),
- TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
- ),
- 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",)),
- LIST_CAS =SIMP(statut='f',typ='I',max='**'),
- 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=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,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',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',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"),max=3 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& 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
-# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-# REDISTRIBUTION OF THIS FILE.
-# ======================================================================
-def crea_champ_prod(TYPE_CHAM,**args):
- 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
- 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-b1",reentrant='n',
- 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',)),
- 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'),),
- MAILLAGE =SIMP(statut='f',typ=(maillage) ),
- 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',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='**'),
- ),
- ),
- b_asse =BLOC(condition = "OPERATION == 'ASSE'",
- regles=(UN_PARMI('MAILLAGE','MODELE'),),
- MAILLAGE =SIMP(statut='f',typ=(maillage) ),
- 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',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='**'),
- 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='**' ),
- CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- COEF_R =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- ),
- 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'",
- 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'),),
- 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',
- '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",
- "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",
- "GTHE_ELNO_ELGA","GRAD_NOEU_THETA",
- "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),
- 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='**' ),
-) ;
-#& 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.
-# ======================================================================
-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=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_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',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='**'),
- 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',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,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',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=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='**'),
- 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 ),
- ),
- 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" ),
- NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
- NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ),
- b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
- GROUP_MA =SIMP(statut='f',typ=grma,
- fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
- ),
- ),
- ECLA_PG =FACT(statut='f',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 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.
-# ======================================================================
-def crea_resu_prod(TYPE_RESU,**args):
- if TYPE_RESU == "EVOL_ELAS" : return evol_elas
- if TYPE_RESU == "EVOL_NOLI" : return evol_noli
- if TYPE_RESU == "EVOL_THER" : return evol_ther
- if TYPE_RESU == "MULT_ELAS" : return mult_elas
- if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
- if TYPE_RESU == "EVOL_VARC" : return evol_varc
- 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",),
- fr="choix de la fonction a activer",),
-
- b_affe =BLOC(condition = "OPERATION == 'AFFE'",
-
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
- "EVOL_THER","EVOL_VARC",) ),
- 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',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- NUME_INIT =SIMP(statut='f',typ='I'),
- NUME_FIN =SIMP(statut='f',typ='I'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
-
- b_ecla_pg =BLOC(condition = "OPERATION == 'ECLA_PG'",
-
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ),
-
- ECLA_PG =FACT(statut='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",) ),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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",),max='**' ),
- RESU_INIT =SIMP(statut='o',typ=evol_noli),
- INST_INIT =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'),
- MAILLAGE_INIT =SIMP(statut='o',typ=maillage,),
- RESU_FINAL =SIMP(statut='o',typ=evol_noli,),
- MAILLAGE_FINAL =SIMP(statut='o',typ=maillage,),
- 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='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- ),
- ),
-
- b_prol_rtz =BLOC(condition = "OPERATION == 'PROL_RTZ'",
-
- TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ),
-
- PROL_RTZ =FACT(statut='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',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") ),
- ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
- REPERE =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),),
- ORIGINE =SIMP(statut='o',typ='R',min=3,max=3),
- AXE_Z =SIMP(statut='o',typ='R',min=3,max=3),
- ),
- ),
-
-) ;
-#& 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.
-# ======================================================================
-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,
-
- PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
- into=("OUI","NON"),defaut="OUI"),
- 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',
- into=('GLOBALE','VOLATILE','LOCALE'),),
- TITRE =SIMP(statut='f',typ='TXM'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=1,max=3,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=1,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- CODE =FACT(fr="définition d un nom pour l'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')),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=1,max=1,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TEST',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
- GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
- TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
- TAILLE =SIMP(statut='f',typ='I'),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
- PARTITION =SIMP(statut='f',typ='R'),
- ),
- );
-#& 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.
-# ======================================================================
-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=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=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 ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
- MULT_ELAS =SIMP(statut='f',typ=mult_elas ),
- BASE_MODALE =SIMP(statut='f',typ=base_modale ),
- ),
- 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,) ),
- ),
-# le bloc conditionnel remplace-t-il PRESENT_PRESENT('RITZ','NUME_REF'),
-# PRESENT_ABSENT('INTERF_DYNA','CLASSIQUE'),
- b_ritz =BLOC(condition = "RITZ != None",
- INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ),
- NUME_REF =SIMP(statut='o',typ=nume_ddl ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& 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.
-# ======================================================================
-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 ),
- GROUP_MA_BETON =SIMP(statut='o',typ=grma),
- 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,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma),
- 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") ),
- ),
- 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,max=1,
- R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction,
- 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=1 ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,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=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=1,max=1,
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT",) ),
- ),
-) ;
-#& 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.
-# ======================================================================
-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=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 ),
- PROF_RHO_F_INT =SIMP(statut='f',typ=fonction ),
- PROF_RHO_F_EXT =SIMP(statut='f',typ=fonction ),
- NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
- COEF_MASS_AJOU =SIMP(statut='f',typ='R' ),
- TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
- TYPE_RESEAU =SIMP(statut='f',typ='I' ),
- UNITE_CD =SIMP(statut='f',typ='I',defaut=70),
- UNITE_CK =SIMP(statut='f',typ='I',defaut=71),
- PAS =SIMP(statut='f',typ='R' ),
- ),
- 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
- COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
- GRAPPE_2 =SIMP(statut='f',typ='TXM',
- into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
- NOEUD =SIMP(statut='f',typ=no),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODELE =SIMP(statut='f',typ=modele ),
- COEF_MASS_AJOU =SIMP(statut='f',typ='R' ),
- RHO_FLUI =SIMP(statut='f',typ='R' ),
- UNITE_CA =SIMP(statut='f',typ='I',defaut=70),
- UNITE_KA =SIMP(statut='f',typ='I',defaut=71),
- ),
- FAISCEAU_AXIAL =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
- UN_PARMI('CARA_ELEM','RAYON_TUBE'),
- ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
- PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
- ENSEMBLE('CARA_PAROI','VALE_PAROI'),
- ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
- 'COOR_GRILLE','TYPE_GRILLE', ),),
-# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire
- GROUP_MA =SIMP(statut='f',typ=grma,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 ),
- 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=4,max=4),
- RUGO_TUBE =SIMP(statut='f',typ='R' ),
- 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' ),
- LONG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- LARG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- EPAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- RUGO_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
- COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'),
- COOR_GRILLE =SIMP(statut='f',typ='R',max='**'),
- TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'),
- ),
- COQUE_COAX =FACT(statut='f',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),
- VECT_X =SIMP(statut='o',typ='R',max='**'),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MATER_INT =SIMP(statut='o',typ=mater ),
- MATER_EXT =SIMP(statut='o',typ=mater ),
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- VISC_CINE =SIMP(statut='o',typ='R' ),
- RUGOSITE =SIMP(statut='o',typ='R' ),
- PDC_MOY_1 =SIMP(statut='o',typ='R' ),
- PDC_DYN_1 =SIMP(statut='o',typ='R' ),
- PDC_MOY_2 =SIMP(statut='o',typ='R' ),
- PDC_DYN_2 =SIMP(statut='o',typ='R' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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'), ),
- FREQ =SIMP(statut='f',typ='R',defaut= 50.),
- SIGNAL =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
- 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'),),
- INTE_CC_1 =SIMP(statut='o',typ='R'),
- TAU_CC_1 =SIMP(statut='o',typ='R'),
- PHI_CC_1 =SIMP(statut='f',typ='R'),
- INTC_CC_1 =SIMP(statut='f',typ='R'),
- INTE_CC_2 =SIMP(statut='o',typ='R'),
- TAU_CC_2 =SIMP(statut='o',typ='R'),
- PHI_CC_2 =SIMP(statut='f',typ='R'),
- INTC_CC_2 =SIMP(statut='f',typ='R'),
- INST_CC_INIT =SIMP(statut='o',typ='R'),
- INST_CC_FIN =SIMP(statut='o',typ='R'),
- ),
- COUR_PRIN =FACT(statut='f',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'),
- TAU_CC_1 =SIMP(statut='o',typ='R'),
- PHI_CC_1 =SIMP(statut='f',typ='R'),
- INTC_CC_1 =SIMP(statut='f',typ='R'),
- INTE_RENC_1 =SIMP(statut='f',typ='R'),
- TAU_RENC_1 =SIMP(statut='f',typ='R'),
- PHI_RENC_1 =SIMP(statut='f',typ='R'),
- INST_CC_INIT =SIMP(statut='o',typ='R'),
- INST_CC_FIN =SIMP(statut='o',typ='R'),
- INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- ),
- COUR_SECO =FACT(statut='f',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'),
- TAU_CC_2 =SIMP(statut='o',typ='R'),
- PHI_CC_2 =SIMP(statut='f',typ='R'),
- INTC_CC_2 =SIMP(statut='f',typ='R'),
- INTE_RENC_2 =SIMP(statut='f',typ='R'),
- TAU_RENC_2 =SIMP(statut='f',typ='R'),
- PHI_RENC_2 =SIMP(statut='f',typ='R'),
- DIST =SIMP(statut='f',typ='R',defaut=1.0E+0),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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),
- 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 ) ),
- ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",
- into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",
- into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM' ,defaut="EXCLU",
- into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-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='**'),
-) ;
-#& 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.
-# ======================================================================
-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('FOND_FERME','DTAN_EXTR'),
- EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
- EXCLUS('FOND_FERME','VECT_GRNO_EXTR'),
- UN_PARMI('LEVRE_SUP','NORMALE'),
- EXCLUS('LEVRE_INF','NORMALE'),
- ENSEMBLE('DTAN_ORIG','DTAN_EXTR'),
- ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'),
- EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
- EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,),
- MAILLAGE =SIMP(statut='o',typ=maillage ),
- 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,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,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',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='**'),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- 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='**'),
- ),
- 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,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 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.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def defi_group_prod(MAILLAGE,**args):
- if AsType(MAILLAGE) == maillage : return maillage
- if AsType(MAILLAGE) == squelette : return squelette
- raise AsException("type de concept resultat non prevu")
-
-DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
- fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
- docu="U4.22.01-f1",reentrant='o',
- 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=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,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'),
- POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
- b_nume_init =BLOC(condition = "NUME_INIT != None",
- NUME_FIN =SIMP(statut='f',typ='I' ),
- ),
- ),
- b_face_normale =BLOC(condition = "OPTION == 'FACE_NORMALE'",
- regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=2),
- VECT_NORMALE =SIMP(statut='f',typ='R',max=3),
- ANGL_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ),
- VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_sphere =BLOC(condition = "OPTION == 'SPHERE'",
- regles=(UN_PARMI('POINT','NOEUD_CENTRE'),),
- POINT =SIMP(statut='f',typ='R',max=3),
- NOEUD_CENTRE =SIMP(statut='f',typ=no),
- 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=3),
- NOEUD_CENTRE =SIMP(statut='f',typ=no),
- 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=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),
- ),
- ),
- 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",) ),
- 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") ),
- b_nom_group_ma =BLOC(condition = "GROUP_MA != None",
- NOM =SIMP(statut='f',typ=grma,max='**'),
- ),
- b_crit_noeud = BLOC(condition = "GROUP_MA != None",
- CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS",
- 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'),
- 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=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=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='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=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'),),
- 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") ),
- ),
- b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
- regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
- 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 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.
-# ======================================================================
-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 ),
-
- 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',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' ),
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ),
- PAS =SIMP(statut='f',typ='R',defaut= 1. ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ),
- FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ),
- VALE_R =SIMP(statut='f',typ='R' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- ),
- CONSTANT =FACT(statut='f',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' ),
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ),
- PAS =SIMP(statut='f',typ='R',defaut= 1. ),
- VALE_R =SIMP(statut='f',typ='R' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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=1,max='**',
- regles=(ENSEMBLE('NOM','TYPE'),
-# erreur doc U sur la condition qui suit
- UN_PARMI('NOEUD','GROUP_NO'),),
- NOM =SIMP(statut='f',typ='TXM' ),
- TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'),
- MASQUE =SIMP(statut='f',typ='TXM',max='**'),
- ),
- FREQ =SIMP(statut='f',typ='R',defaut= 1.),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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=1,max='**',
- regles=(UN_PARMI('NOMBRE','PAS'),),
- JUSQU_A =SIMP(statut='o',typ='I'),
- NOMBRE =SIMP(statut='f',typ='I',val_min=1,),
- PAS =SIMP(statut='f',typ='I',val_min=1,),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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=1,max='**',
- regles=(UN_PARMI('NOMBRE','PAS'),),
- JUSQU_A =SIMP(statut='o',typ='R'),
- NOMBRE =SIMP(statut='f',typ='I'),
- PAS =SIMP(statut='f',typ='R'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-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',
- 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=3),
- ANGL_NAUT =SIMP(statut='f',typ='R',max=3),
- b_angl_naut =BLOC(condition = "ANGL_NAUT != None",
- CENTRE =SIMP(statut='f',typ='R',max=3),
- ),
- ),
- RECO_GLOBAL =FACT(statut='f',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=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") ),
- geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
- DEFI_NOEUD =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Renommage de tous les noeuds" ),
- NOEUD_INIT =SIMP(statut='f',typ=no,
- fr="Renommage d un seul noeud"),
- b_tout =BLOC(condition = "TOUT != None",
- PREFIXE =SIMP(statut='f',typ='TXM' ),
- INDEX =SIMP(statut='o',typ='I',max='**'),
- ),
- b_noeud_init =BLOC(condition = "NOEUD_INIT != None",
- MAILLE =SIMP(statut='o',typ=ma),
- NOEUD_FIN =SIMP(statut='o',typ=no),
- ),
- ),
- 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'),),
-# la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Création de plusieurs groupes de noeuds" ),
- MAILLE =SIMP(statut='f',typ=ma,
- fr="Création de plusieurs groupes de noeuds"),
- GROUP_NO_INIT =SIMP(statut='f',typ=grno,
- fr="Création d un seul groupe de noeuds"),
- PREFIXE =SIMP(statut='f',typ='TXM' ),
- INDEX =SIMP(statut='f',typ='I',max='**'),
- GROUP_NO_FIN =SIMP(statut='f',typ=grno),
- ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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'),
- EXCLUS('ECRO_LINE','ECRO_LINE_FO'),
- EXCLUS('TAHERI','TAHERI_FO'),
- EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
- PRESENT_PRESENT('ROUSSELIER','TRACTION'),
- PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
- EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'),
- EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'),
- EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
- EXCLUS('POLY_CFC','POLY_CFC_FO'),
- EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI'),
- EXCLUS('OHNO','OHNO_FO'),
- EXCLUS('LMARC','LMARC_FO'),
- EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
- EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
- PRESENT_PRESENT('BPEL_ACIER','ELAS'),
- EXCLUS('RCCM','RCCM_FO'),
- EXCLUS('WEIBULL','WEIBULL_FO'),
- PRESENT_PRESENT('CAM_CLAY','ELAS'),
- PRESENT_PRESENT('LAIGLE','ELAS'),
- EXCLUS('MAZARS','MAZARS_FO'),
- PRESENT_PRESENT('GRANGER_FD','ELAS_FO'),
- ),
-
-#
-# 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",) ),
- ),
- 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'),
- PROF_RHO_F_INT =SIMP(statut='o',typ=fonction),
- PROF_RHO_F_EXT =SIMP(statut='o',typ=fonction),
- COEF_MASS_AJOU =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="ABSC",into=("ABSC",) ),
- ),
- 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'),
- NU_LN =SIMP(statut='o',typ='R'),
- G_LN =SIMP(statut='o',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ELAS_ISTR_FO =FACT(statut='f',min=0,max=1,
- regles=(
- PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
- PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
- ),
- E_L =SIMP(statut='o',typ=fonction),
- E_N =SIMP(statut='o',typ=fonction),
- NU_LT =SIMP(statut='o',typ=fonction),
- NU_LN =SIMP(statut='o',typ=fonction),
- G_LN =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_L =SIMP(statut='f',typ=fonction),
- ALPHA_N =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST")),
- ),
- 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'),
- NU_LT =SIMP(statut='o',typ='R'),
- NU_LN =SIMP(statut='f',typ='R'),
- NU_TN =SIMP(statut='f',typ='R'),
- G_LT =SIMP(statut='o',typ='R'),
- G_LN =SIMP(statut='f',typ='R'),
- G_TN =SIMP(statut='f',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- XT =SIMP(statut='f',typ='R',defaut= 1. ),
- XC =SIMP(statut='f',typ='R',defaut= 1. ),
- YT =SIMP(statut='f',typ='R',defaut= 1. ),
- YC =SIMP(statut='f',typ='R',defaut= 1. ),
- S_LT =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- 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'),
- PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'),
- ),
- E_L =SIMP(statut='o',typ=fonction),
- E_T =SIMP(statut='o',typ=fonction),
- E_N =SIMP(statut='o',typ=fonction),
- NU_LT =SIMP(statut='o',typ=fonction),
- NU_LN =SIMP(statut='o',typ=fonction),
- NU_TN =SIMP(statut='o',typ=fonction),
- G_LT =SIMP(statut='o',typ=fonction),
- G_LN =SIMP(statut='o',typ=fonction),
- G_TN =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_L =SIMP(statut='f',typ=fonction),
- ALPHA_T =SIMP(statut='f',typ=fonction),
- ALPHA_N =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
- ),
- 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'),
- KB =SIMP(statut='f',typ='R'),
- D_KB_T =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,max=1,
- E_CHAR =SIMP(statut='o',typ='R'),
- E_DECHAR =SIMP(statut='o',typ='R'),
- XN =SIMP(statut='f',typ='R'),
- RF =SIMP(statut='f',typ='R'),
- EV_KB =SIMP(statut='f',typ='R'),
- EV_XM =SIMP(statut='f',typ='R'),
- D_E_T =SIMP(statut='f',typ='R'),
- ALPHA0 =SIMP(statut='f',typ='R'),
- ALPHA1 =SIMP(statut='f',typ='R'),
- ALPHA2 =SIMP(statut='f',typ='R'),
- ALPHA3 =SIMP(statut='f',typ='R'),
- ALPHA_S =SIMP(statut='f',typ='R'),
- ANG_FRT =SIMP(statut='o',typ='R'),
- COHE =SIMP(statut='o',typ='R'),
- RESI_TRAC =SIMP(statut='o',typ='R'),
- ),
- 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'),
- M =SIMP(statut='f',typ='R'),
- PRES_CRIT =SIMP(statut='f',typ='R'),
- GAMA =SIMP(statut='o',typ='R'),
- A0_PC =SIMP(statut='o',typ='R'),
- A1_PC =SIMP(statut='f',typ='R'),
- A2_PC =SIMP(statut='f',typ='R'),
- ALPHA0_PC =SIMP(statut='f',typ='R'),
- ALPHA1_PC =SIMP(statut='f',typ='R'),
- ALPHA2_PC =SIMP(statut='f',typ='R'),
- ALPHA3_PC =SIMP(statut='f',typ='R'),
- ALPHA_S =SIMP(statut='f',typ='R'),
- ),
- 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'),
- RF =SIMP(statut='f',typ='R'),
- EV_KB =SIMP(statut='f',typ='R'),
- EV_XM =SIMP(statut='f',typ='R'),
- EV_A =SIMP(statut='f',typ='R'),
- EV_B =SIMP(statut='f',typ='R'),
- EV_CT =SIMP(statut='f',typ='R'),
- EV_SIGB =SIMP(statut='f',typ='R'),
- D_E_T =SIMP(statut='f',typ='R'),
- D_E_SUCC =SIMP(statut='f',typ='R'),
- ANG_FRT =SIMP(statut='o',typ='R'),
- COHE =SIMP(statut='o',typ='R'),
- D_COEH_SUCC =SIMP(statut='f',typ='R'),
- ANG_FRT_ULT =SIMP(statut='f',typ='R'),
- SUCC_ULTM =SIMP(statut='f',typ='R'),
- RESI_TRAC =SIMP(statut='f',typ='R'),
- A_SURF_SATU =SIMP(statut='f',typ='R'),
- B_SURF_SATU =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,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',),
- PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
- 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
- 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
- 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
- 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
- 'C_LZTZ','C_TZTZ'),),
- MEMB_L =SIMP(statut='f',typ='R'),
- MEMB_LT =SIMP(statut='f',typ='R'),
- MEMB_T =SIMP(statut='f',typ='R'),
- MEMB_G_LT =SIMP(statut='f',typ='R'),
- FLEX_L =SIMP(statut='f',typ='R'),
- FLEX_LT =SIMP(statut='f',typ='R'),
- FLEX_T =SIMP(statut='f',typ='R'),
- FLEX_G_LT =SIMP(statut='f',typ='R'),
- CISA_L =SIMP(statut='f',typ='R'),
- CISA_T =SIMP(statut='f',typ='R'),
- M_LLLL =SIMP(statut='f',typ='R'),
- M_LLTT =SIMP(statut='f',typ='R'),
- M_LLLT =SIMP(statut='f',typ='R'),
- M_TTTT =SIMP(statut='f',typ='R'),
- M_TTLT =SIMP(statut='f',typ='R'),
- M_LTLT =SIMP(statut='f',typ='R'),
- F_LLLL =SIMP(statut='f',typ='R'),
- F_LLTT =SIMP(statut='f',typ='R'),
- F_LLLT =SIMP(statut='f',typ='R'),
- F_TTTT =SIMP(statut='f',typ='R'),
- F_TTLT =SIMP(statut='f',typ='R'),
- F_LTLT =SIMP(statut='f',typ='R'),
- MF_LLLL =SIMP(statut='f',typ='R'),
- MF_LLTT =SIMP(statut='f',typ='R'),
- MF_LLLT =SIMP(statut='f',typ='R'),
- MF_TTTT =SIMP(statut='f',typ='R'),
- MF_TTLT =SIMP(statut='f',typ='R'),
- MF_LTLT =SIMP(statut='f',typ='R'),
- MC_LLLZ =SIMP(statut='f',typ='R'),
- MC_LLTZ =SIMP(statut='f',typ='R'),
- MC_TTLZ =SIMP(statut='f',typ='R'),
- MC_TTTZ =SIMP(statut='f',typ='R'),
- MC_LTLZ =SIMP(statut='f',typ='R'),
- MC_LTTZ =SIMP(statut='f',typ='R'),
- FC_LLLZ =SIMP(statut='f',typ='R'),
- FC_LLTZ =SIMP(statut='f',typ='R'),
- FC_TTLZ =SIMP(statut='f',typ='R'),
- FC_TTTZ =SIMP(statut='f',typ='R'),
- FC_LTLZ =SIMP(statut='f',typ='R'),
- FC_LTTZ =SIMP(statut='f',typ='R'),
- C_LZLZ =SIMP(statut='f',typ='R'),
- C_LZTZ =SIMP(statut='f',typ='R'),
- C_TZTZ =SIMP(statut='f',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA =SIMP(statut='f',typ='R'),
- ),
- ELAS_COQUE_FO =FACT(statut='f',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',),
- PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
- 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
- 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
- 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
- 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
- MEMB_L =SIMP(statut='f',typ=fonction),
- MEMB_LT =SIMP(statut='f',typ=fonction),
- MEMB_T =SIMP(statut='f',typ=fonction),
- MEMB_G_LT =SIMP(statut='f',typ=fonction),
- FLEX_L =SIMP(statut='f',typ=fonction),
- FLEX_LT =SIMP(statut='f',typ=fonction),
- FLEX_T =SIMP(statut='f',typ=fonction),
- FLEX_G_LT =SIMP(statut='f',typ=fonction),
- CISA_L =SIMP(statut='f',typ=fonction),
- CISA_T =SIMP(statut='f',typ=fonction),
- M_LLLL =SIMP(statut='f',typ=fonction),
- M_LLTT =SIMP(statut='f',typ=fonction),
- M_LLLT =SIMP(statut='f',typ=fonction),
- M_TTTT =SIMP(statut='f',typ=fonction),
- M_TTLT =SIMP(statut='f',typ=fonction),
- M_LTLT =SIMP(statut='f',typ=fonction),
- F_LLLL =SIMP(statut='f',typ=fonction),
- F_LLTT =SIMP(statut='f',typ=fonction),
- F_LLLT =SIMP(statut='f',typ=fonction),
- F_TTTT =SIMP(statut='f',typ=fonction),
- F_TTLT =SIMP(statut='f',typ=fonction),
- F_LTLT =SIMP(statut='f',typ=fonction),
- MF_LLLL =SIMP(statut='f',typ=fonction),
- MF_LLTT =SIMP(statut='f',typ=fonction),
- MF_LLLT =SIMP(statut='f',typ=fonction),
- MF_TTTT =SIMP(statut='f',typ=fonction),
- MF_TTLT =SIMP(statut='f',typ=fonction),
- MF_LTLT =SIMP(statut='f',typ=fonction),
- MC_LLLZ =SIMP(statut='f',typ=fonction),
- MC_LLTZ =SIMP(statut='f',typ=fonction),
- MC_TTLZ =SIMP(statut='f',typ=fonction),
- MC_TTTZ =SIMP(statut='f',typ=fonction),
- MC_LTLZ =SIMP(statut='f',typ=fonction),
- MC_LTTZ =SIMP(statut='f',typ=fonction),
- FC_LLLZ =SIMP(statut='f',typ=fonction),
- FC_LLTZ =SIMP(statut='f',typ=fonction),
- FC_TTLZ =SIMP(statut='f',typ=fonction),
- FC_TTTZ =SIMP(statut='f',typ=fonction),
- FC_LTLZ =SIMP(statut='f',typ=fonction),
- FC_LTTZ =SIMP(statut='f',typ=fonction),
- C_LZLZ =SIMP(statut='f',typ=fonction),
- C_LZTZ =SIMP(statut='f',typ=fonction),
- C_TZTZ =SIMP(statut='f',typ=fonction),
- RHO =SIMP(statut='f',typ='R'),
- ALPHA =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST") ),
- ),
- 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,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'),
- ALPHA =SIMP(statut='f',typ='R'),
- AMOR_ALPHA =SIMP(statut='f',typ='R'),
- AMOR_BETA =SIMP(statut='f',typ='R'),
- ),
-#
-# comportement mécanique non linéaire
-#
- TRACTION =FACT(statut='f',min=0,max=1,
- SIGM =SIMP(statut='o',typ=fonction),
- 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,max=1,
- D_SIGM_EPSI =SIMP(statut='o',typ='R'),
- SY =SIMP(statut='o',typ='R'),
- ),
- ECRO_LINE_FO =FACT(statut='f',min=0,max=1,
- D_SIGM_EPSI =SIMP(statut='o',typ=fonction),
- SY =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- PRAGER =FACT(statut='f',min=0,max=1,
- C =SIMP(statut='o',typ='R'),
- ),
- PRAGER_FO =FACT(statut='f',min=0,max=1,
- C =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,max=1,
- R_0 =SIMP(statut='o',typ='R'),
- ALPHA =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- A =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- C_INF =SIMP(statut='o',typ='R'),
- S =SIMP(statut='o',typ='R'),
- ),
- TAHERI_FO =FACT(statut='f',min=0,max=1,
- R_0 =SIMP(statut='o',typ=fonction),
- ALPHA =SIMP(statut='o',typ=fonction),
- M =SIMP(statut='o',typ=fonction),
- A =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- C_INF =SIMP(statut='o',typ=fonction),
- S =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ),
- D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
- AN =SIMP(statut='f',typ='R',defaut= 0. ),
- ),
- ROUSSELIER_FO =FACT(statut='f',min=0,max=1,
- D =SIMP(statut='o',typ=fonction),
- SIGM_1 =SIMP(statut='o',typ=fonction),
- PORO_INIT =SIMP(statut='o',typ=fonction),
- PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ),
- PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ),
- D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
- AN =SIMP(statut='f',typ='R',defaut= 0. ),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,max=1,
- R_I =SIMP(statut='o',typ='R'),
- R_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- W =SIMP(statut='o',typ='R'),
- A1 =SIMP(statut='o',typ='R'),
- A2 =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- ),
- 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),
- C_I =SIMP(statut='o',typ='R'),
- K =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- W =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- G_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- ),
- CIN1_CHAB_FO =FACT(statut='f',min=0,max=1,
- R_0 =SIMP(statut='o',typ=fonction),
- R_I =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C_I =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- W =SIMP(statut='o',typ=fonction),
- G_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- 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 ),
- C1_I =SIMP(statut='o',typ='R'),
- C2_I =SIMP(statut='o',typ='R'),
- K =SIMP(statut='f',typ='R',defaut= 1.),
- W =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- G1_0 =SIMP(statut='o',typ='R'),
- G2_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
- ),
- CIN2_CHAB_FO =FACT(statut='f',min=0,max=1,
- R_0 =SIMP(statut='o',typ=fonction),
- R_I =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- C1_I =SIMP(statut='o',typ=fonction),
- C2_I =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- W =SIMP(statut='o',typ=fonction),
- G1_0 =SIMP(statut='o',typ=fonction),
- G2_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- K =SIMP(statut='o',typ='R'),
- N =SIMP(statut='o',typ='R'),
- ALP =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- M_R =SIMP(statut='o',typ='R'),
- G_R =SIMP(statut='o',typ='R'),
- MU =SIMP(statut='o',typ='R'),
- Q_M =SIMP(statut='o',typ='R'),
- Q_0 =SIMP(statut='o',typ='R'),
- QR_0 =SIMP(statut='o',typ='R'),
- ETA =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- M_1 =SIMP(statut='o',typ='R'),
- D1 =SIMP(statut='o',typ='R'),
- G_X1 =SIMP(statut='o',typ='R'),
- G1_0 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- M_2 =SIMP(statut='o',typ='R'),
- D2 =SIMP(statut='o',typ='R'),
- G_X2 =SIMP(statut='o',typ='R'),
- G2_0 =SIMP(statut='o',typ='R'),
- A_I =SIMP(statut='o',typ='R'),
- ),
- VISCOCHAB_FO =FACT(statut='f',min=0,max=1,
- K_0 =SIMP(statut='o',typ=fonction),
- A_K =SIMP(statut='o',typ=fonction),
- A_R =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- ALP =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- M_R =SIMP(statut='o',typ=fonction),
- G_R =SIMP(statut='o',typ=fonction),
- MU =SIMP(statut='o',typ=fonction),
- Q_M =SIMP(statut='o',typ=fonction),
- Q_0 =SIMP(statut='o',typ=fonction),
- QR_0 =SIMP(statut='o',typ=fonction),
- ETA =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- M_1 =SIMP(statut='o',typ=fonction),
- D1 =SIMP(statut='o',typ=fonction),
- G_X1 =SIMP(statut='o',typ=fonction),
- G1_0 =SIMP(statut='o',typ=fonction),
- C2 =SIMP(statut='o',typ=fonction),
- M_2 =SIMP(statut='o',typ=fonction),
- D2 =SIMP(statut='o',typ=fonction),
- G_X2 =SIMP(statut='o',typ=fonction),
- G2_0 =SIMP(statut='o',typ=fonction),
- A_I =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- N =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- TAU_0 =SIMP(statut='o',typ='R'),
- Q1 =SIMP(statut='o',typ='R'),
- B1 =SIMP(statut='o',typ='R'),
- HL =SIMP(statut='o',typ='R'),
- Q2 =SIMP(statut='o',typ='R'),
- B2 =SIMP(statut='o',typ='R'),
- C1 =SIMP(statut='o',typ='R'),
- D1 =SIMP(statut='o',typ='R'),
- C2 =SIMP(statut='o',typ='R'),
- ),
- POLY_CFC_FO =FACT(statut='f',min=0,max=1,
- TEXTURE =SIMP(statut='o',typ=(tabl_texture) ),
- DL =SIMP(statut='o',typ=fonction),
- DA =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- TAU_0 =SIMP(statut='o',typ=fonction),
- Q1 =SIMP(statut='o',typ=fonction),
- B1 =SIMP(statut='o',typ=fonction),
- HL =SIMP(statut='o',typ=fonction),
- Q2 =SIMP(statut='o',typ=fonction),
- B2 =SIMP(statut='o',typ=fonction),
- C1 =SIMP(statut='o',typ=fonction),
- D1 =SIMP(statut='o',typ=fonction),
- C2 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,max=1,
- EPSI_FAB =SIMP(statut='o',typ=fonction),
- TEMP_RECUIT =SIMP(statut='o',typ=fonction),
- FLUX_PHI =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
- ),
- 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,max=1,
- N =SIMP(statut='o',typ=fonction),
- UN_SUR_K =SIMP(statut='o',typ=fonction),
- UN_SUR_M =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,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,max=1,
- R_I =SIMP(statut='o',typ='R'),
- R_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- PHI =SIMP(statut='o',typ='R'),
- A1 =SIMP(statut='o',typ='R'),
- A2 =SIMP(statut='o',typ='R'),
- A3 =SIMP(statut='o',typ='R'),
- A4 =SIMP(statut='o',typ='R'),
- A5 =SIMP(statut='o',typ='R'),
- GAMMA1 =SIMP(statut='o',typ='R'),
- GAMMA2 =SIMP(statut='o',typ='R'),
- GAMMA3 =SIMP(statut='o',typ='R'),
- GAMMA4 =SIMP(statut='o',typ='R'),
- GAMMA5 =SIMP(statut='o',typ='R'),
- M1 =SIMP(statut='o',typ='R'),
- M2 =SIMP(statut='o',typ='R'),
- M3 =SIMP(statut='o',typ='R'),
- M4 =SIMP(statut='o',typ='R'),
- M5 =SIMP(statut='o',typ='R'),
- ),
- OHNO_FO =FACT(statut='f',min=0,max=1,
- R_I =SIMP(statut='o',typ=fonction),
- R_0 =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- PHI =SIMP(statut='o',typ=fonction),
- A1 =SIMP(statut='o',typ=fonction),
- A2 =SIMP(statut='o',typ=fonction),
- A3 =SIMP(statut='o',typ=fonction),
- A4 =SIMP(statut='o',typ=fonction),
- A5 =SIMP(statut='o',typ=fonction),
- GAMMA1 =SIMP(statut='o',typ=fonction),
- GAMMA2 =SIMP(statut='o',typ=fonction),
- GAMMA3 =SIMP(statut='o',typ=fonction),
- GAMMA4 =SIMP(statut='o',typ=fonction),
- GAMMA5 =SIMP(statut='o',typ=fonction),
- M1 =SIMP(statut='o',typ=fonction),
- M2 =SIMP(statut='o',typ=fonction),
- M3 =SIMP(statut='o',typ=fonction),
- M4 =SIMP(statut='o',typ=fonction),
- M5 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- K =SIMP(statut='o',typ='R'),
- Y_I =SIMP(statut='o',typ='R'),
- Y_0 =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- A_0 =SIMP(statut='o',typ='R'),
- RM =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- P =SIMP(statut='o',typ='R'),
- P1 =SIMP(statut='o',typ='R'),
- P2 =SIMP(statut='o',typ='R'),
- M11 =SIMP(statut='o',typ='R'),
- M22 =SIMP(statut='o',typ='R'),
- M33 =SIMP(statut='o',typ='R'),
- M66 =SIMP(statut='o',typ='R'),
- N11 =SIMP(statut='o',typ='R'),
- N22 =SIMP(statut='o',typ='R'),
- N33 =SIMP(statut='o',typ='R'),
- N66 =SIMP(statut='o',typ='R'),
- Q11 =SIMP(statut='o',typ='R'),
- Q22 =SIMP(statut='o',typ='R'),
- Q33 =SIMP(statut='o',typ='R'),
- Q66 =SIMP(statut='o',typ='R'),
- R11 =SIMP(statut='o',typ='R'),
- R22 =SIMP(statut='o',typ='R'),
- R33 =SIMP(statut='o',typ='R'),
- R66 =SIMP(statut='o',typ='R'),
- ),
- LMARC_FO =FACT(statut='f',min=0,max=1,
- DE_0 =SIMP(statut='o',typ=fonction),
- R_0 =SIMP(statut='o',typ=fonction),
- N =SIMP(statut='o',typ=fonction),
- K =SIMP(statut='o',typ=fonction),
- Y_I =SIMP(statut='o',typ=fonction),
- Y_0 =SIMP(statut='o',typ=fonction),
- B =SIMP(statut='o',typ=fonction),
- A_0 =SIMP(statut='o',typ=fonction),
- RM =SIMP(statut='o',typ=fonction),
- M =SIMP(statut='o',typ=fonction),
- P =SIMP(statut='o',typ=fonction),
- P1 =SIMP(statut='o',typ=fonction),
- P2 =SIMP(statut='o',typ=fonction),
- M11 =SIMP(statut='o',typ=fonction),
- M22 =SIMP(statut='o',typ=fonction),
- M33 =SIMP(statut='o',typ=fonction),
- M66 =SIMP(statut='o',typ=fonction),
- N11 =SIMP(statut='o',typ=fonction),
- N22 =SIMP(statut='o',typ=fonction),
- N33 =SIMP(statut='o',typ=fonction),
- N66 =SIMP(statut='o',typ=fonction),
- Q11 =SIMP(statut='o',typ=fonction),
- Q22 =SIMP(statut='o',typ=fonction),
- Q33 =SIMP(statut='o',typ=fonction),
- Q66 =SIMP(statut='o',typ=fonction),
- R11 =SIMP(statut='o',typ=fonction),
- R22 =SIMP(statut='o',typ=fonction),
- R33 =SIMP(statut='o',typ=fonction),
- R66 =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- CAY =SIMP(statut='o',typ='R'),
- CBY =SIMP(statut='o',typ='R'),
- MEZ =SIMP(statut='o',typ='R'),
- MPZ =SIMP(statut='o',typ='R'),
- CAZ =SIMP(statut='o',typ='R'),
- CBZ =SIMP(statut='o',typ='R'),
- MPX =SIMP(statut='o',typ='R'),
- ),
- VMIS_POUTRE_FO =FACT(statut='f',min=0,max=1,
- NP =SIMP(statut='o',typ=fonction),
- MEY =SIMP(statut='o',typ=fonction),
- MPY =SIMP(statut='o',typ=fonction),
- CAY =SIMP(statut='o',typ=fonction),
- CBY =SIMP(statut='o',typ=fonction),
- MEZ =SIMP(statut='o',typ=fonction),
- MPZ =SIMP(statut='o',typ=fonction),
- CAZ =SIMP(statut='o',typ=fonction),
- CBZ =SIMP(statut='o',typ=fonction),
- MPX =SIMP(statut='o',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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,max=1,
- NU_1 =SIMP(statut='o',typ='R'),
- MU_1 =SIMP(statut='o',typ='R'),
- DXU_1 =SIMP(statut='o',typ='R'),
- DRYU_1 =SIMP(statut='o',typ='R'),
- C_1 =SIMP(statut='o',typ='R'),
- NU_2 =SIMP(statut='o',typ='R'),
- MU_2 =SIMP(statut='o',typ='R'),
- DXU_2 =SIMP(statut='o',typ='R'),
- DRYU_2 =SIMP(statut='o',typ='R'),
- C_2 =SIMP(statut='o',typ='R'),
- KY =SIMP(statut='o',typ='R'),
- KZ =SIMP(statut='o',typ='R'),
- KRX =SIMP(statut='o',typ='R'),
- KRZ =SIMP(statut='o',typ='R'),
- ),
- 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 ),
- RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- 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),
- regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',),),
- RIGI_N_IRRA =SIMP(statut='f',typ=fonction),
- RIGI_N_FO =SIMP(statut='f',typ=fonction),
- RELA_MZ =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'),
- F_T =SIMP(statut='o',typ='R'),
- CRIT_E_C =SIMP(statut='o',typ='R'),
- EPSP_P_C =SIMP(statut='o',typ='R'),
- EPSP_R_C =SIMP(statut='o',typ='R'),
- EPSI_R_T =SIMP(statut='o',typ='R'),
- FAC_T_C =SIMP(statut='o',typ='R'),
- ),
- BETON_DOUBLE_DP =FACT(statut='f',min=0,max=1,
- F_C =SIMP(statut='o',typ=fonction),
- F_T =SIMP(statut='o',typ=fonction),
- COEF_BIAX =SIMP(statut='o',typ=fonction),
- ENER_COMP_RUPT =SIMP(statut='o',typ=fonction),
- ENER_TRAC_RUPT =SIMP(statut='o',typ=fonction),
- COEF_ELAS_COMP =SIMP(statut='o',typ='R'),
- LONG_CARA =SIMP(statut='f',typ='R'),
- ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
- ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
- VERI_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",) ),
- ),
- 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'),
- A2 =SIMP(statut='o',typ='R'),
- B1 =SIMP(statut='o',typ='R'),
- B2 =SIMP(statut='o',typ='R'),
- BETA1 =SIMP(statut='o',typ='R'),
- BETA2 =SIMP(statut='o',typ='R'),
- SIGF =SIMP(statut='o',typ='R'),
- ),
- MAZARS=FACT(statut='f',min=0 ,max=1,
- EPSD0 =SIMP(statut='o',typ='R'),
- BETA =SIMP(statut='o',typ='R'),
- AC =SIMP(statut='o',typ='R'),
- BC =SIMP(statut='o',typ='R'),
- AT =SIMP(statut='o',typ='R'),
- BT =SIMP(statut='o',typ='R'),
- ),
- MAZARS_FO=FACT(statut='f',min=0 ,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'),
- N_VP =SIMP(statut='o',typ='R'),
- M_VP =SIMP(statut='o',typ='R'),
- K_VP =SIMP(statut='o',typ='R'),
- R_D =SIMP(statut='o',typ='R'),
- A_D =SIMP(statut='o',typ='R'),
- K_D =SIMP(statut='o',typ='R'),
- ),
- VENDOCHAB_FO =FACT(statut='f',min=0,max=1,
- S_VP =SIMP(statut='o',typ=fonction),
- SEDVP1 =SIMP(statut='o',typ=fonction),
- SEDVP2 =SIMP(statut='o',typ=fonction),
- N_VP =SIMP(statut='o',typ=fonction),
- M_VP =SIMP(statut='o',typ=fonction),
- K_VP =SIMP(statut='o',typ=fonction),
- R_D =SIMP(statut='o',typ=fonction),
- A_D =SIMP(statut='o',typ=fonction),
- K_D =SIMP(statut='o',typ=fonction),
- 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,max=1,
- SY =SIMP(statut='o',typ='R'),
- EPSI_ULTM =SIMP(statut='o',typ='R'),
- SIGM_ULTM =SIMP(statut='o',typ='R'),
- ELAN =SIMP(statut='f',typ='R',defaut= 4. ),
- EPSP_HARD =SIMP(statut='o',typ='R'),
- R_PM =SIMP(statut='f',typ='R',defaut= 20. ),
- EP_SUR_E =SIMP(statut='f',typ='R'),
- A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ),
- A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ),
- A6_PM =SIMP(statut='f',typ='R',defaut= 620. ),
- C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ),
- A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
- ),
- BPEL_BETON =FACT(statut='f',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,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,max=1,
- PORO =SIMP(statut='o',typ='R'),
- LAMBDA =SIMP(statut='o',typ='R'),
- KAPA =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- PRES_CRIT =SIMP(statut='o',typ='R'),
- PA =SIMP(statut='o',typ='R'),
- ),
- 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 ),
- KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
- C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- GAMMA_CJS =SIMP(statut='o',typ='R'),
- MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PA =SIMP(statut='o',typ='R'),
- Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- 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,max=1,
- J1 =SIMP(statut='f',typ='R'),
- J2 =SIMP(statut='f',typ='R'),
- J3 =SIMP(statut='f',typ='R'),
- J4 =SIMP(statut='f',typ='R'),
- J5 =SIMP(statut='f',typ='R'),
- J6 =SIMP(statut='f',typ='R'),
- J7 =SIMP(statut='f',typ='R'),
- J8 =SIMP(statut='f',typ='R'),
- TAUX_1 =SIMP(statut='f',typ='R'),
- TAUX_2 =SIMP(statut='f',typ='R'),
- TAUX_3 =SIMP(statut='f',typ='R'),
- TAUX_4 =SIMP(statut='f',typ='R'),
- TAUX_5 =SIMP(statut='f',typ='R'),
- TAUX_6 =SIMP(statut='f',typ='R'),
- TAUX_7 =SIMP(statut='f',typ='R'),
- TAUX_8 =SIMP(statut='f',typ='R'),
- QSR_K =SIMP(statut='f',typ='R'),
- ),
- V_GRANGER_FP =FACT(statut='f',min=0,max=1,
- QSR_VEIL =SIMP(statut='f',typ='R'),
- FONC_V =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
- ),
- GRANGER_FD =FACT(statut='f',min=0,max=1,
- LAM_VISC =SIMP(statut='o',typ='R'),
- ),
-
-#
-# 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",) ),
- ),
- 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,max=1,
- COND_LMM =SIMP(statut='o',typ='R'),
- COND_TMM =SIMP(statut='o',typ='R'),
- COND_LMP =SIMP(statut='o',typ='R'),
- COND_TMP =SIMP(statut='o',typ='R'),
- COND_LPP =SIMP(statut='o',typ='R'),
- COND_TPP =SIMP(statut='o',typ='R'),
- COND_LSI =SIMP(statut='o',typ='R'),
- COND_TSI =SIMP(statut='o',typ='R'),
- COND_NMM =SIMP(statut='o',typ='R'),
- COND_NMP =SIMP(statut='o',typ='R'),
- COND_NPP =SIMP(statut='o',typ='R'),
- COND_NSI =SIMP(statut='o',typ='R'),
- CMAS_MM =SIMP(statut='f',typ='R'),
- CMAS_MP =SIMP(statut='f',typ='R'),
- CMAS_PP =SIMP(statut='f',typ='R'),
- CMAS_SI =SIMP(statut='f',typ='R'),
- ),
- THER_COQUE_FO =FACT(statut='f',min=0,max=1,
- COND_LMM =SIMP(statut='o',typ=fonction),
- COND_TMM =SIMP(statut='o',typ=fonction),
- COND_LMP =SIMP(statut='o',typ=fonction),
- COND_TMP =SIMP(statut='o',typ=fonction),
- COND_LPP =SIMP(statut='o',typ=fonction),
- COND_TPP =SIMP(statut='o',typ=fonction),
- COND_LSI =SIMP(statut='o',typ=fonction),
- COND_TSI =SIMP(statut='o',typ=fonction),
- COND_NMM =SIMP(statut='o',typ=fonction),
- COND_NMP =SIMP(statut='o',typ=fonction),
- COND_NPP =SIMP(statut='o',typ=fonction),
- COND_NSI =SIMP(statut='o',typ=fonction),
- CMAS_MM =SIMP(statut='f',typ=fonction),
- CMAS_MP =SIMP(statut='f',typ=fonction),
- CMAS_PP =SIMP(statut='f',typ=fonction),
- CMAS_SI =SIMP(statut='f',typ=fonction),
- ),
- 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,max=1,
- A =SIMP(statut='o',typ='R'),
- B =SIMP(statut='o',typ='R'),
- ),
- 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,max=1,
- FONCTION =SIMP(statut='o',typ=fonction),
- 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,max=1,
- TRC =SIMP(statut='o',typ=(tabl_trc) ),
- AR3 =SIMP(statut='o',typ='R'),
- ALPHA =SIMP(statut='o',typ='R'),
- MS0 =SIMP(statut='o',typ='R'),
- AC1 =SIMP(statut='o',typ='R'),
- AC3 =SIMP(statut='o',typ='R'),
- TAUX_1 =SIMP(statut='o',typ='R'),
- TAUX_3 =SIMP(statut='o',typ='R'),
- LAMBDA0 =SIMP(statut='f',typ='R'),
- QSR_K =SIMP(statut='f',typ='R'),
- D10 =SIMP(statut='f',typ='R'),
- WSR_K =SIMP(statut='f',typ='R'),
- ),
- META_ZIRC =FACT(statut='f',min=0,max=1,
- TDEQ =SIMP(statut='o',typ='R'),
- N =SIMP(statut='o',typ='R'),
- K =SIMP(statut='o',typ='R'),
- TDC =SIMP(statut='o',typ='R'),
- AC =SIMP(statut='o',typ='R'),
- M =SIMP(statut='o',typ='R'),
- QSR_K =SIMP(statut='f',typ='R'),
- TDR =SIMP(statut='o',typ='R'),
- AR =SIMP(statut='o',typ='R'),
- BR =SIMP(statut='o',typ='R'),
- ),
- DURT_META =FACT(statut='f',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,max=1,
- E =SIMP(statut='o',typ='R'),
- NU =SIMP(statut='o',typ='R'),
- F_ALPHA =SIMP(statut='o',typ='R'),
- C_ALPHA =SIMP(statut='o',typ='R'),
- PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
- EPSF_EPSC_TREF =SIMP(statut='o',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- F1_SY =SIMP(statut='f',typ='R'),
- F2_SY =SIMP(statut='f',typ='R'),
- F3_SY =SIMP(statut='f',typ='R'),
- F4_SY =SIMP(statut='f',typ='R'),
- C_SY =SIMP(statut='f',typ='R'),
- SY_MELANGE =SIMP(statut='f',typ=fonction),
- F1_S_VP =SIMP(statut='f',typ='R'),
- F2_S_VP =SIMP(statut='f',typ='R'),
- F3_S_VP =SIMP(statut='f',typ='R'),
- F4_S_VP =SIMP(statut='f',typ='R'),
- C_S_VP =SIMP(statut='f',typ='R' ),
- S_VP_MELANGE =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)),
- ),
- 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'),
- ),
- E =SIMP(statut='o',typ=fonction),
- NU =SIMP(statut='o',typ=fonction),
- F_ALPHA =SIMP(statut='o',typ=fonction),
- C_ALPHA =SIMP(statut='o',typ=fonction),
- PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
- EPSF_EPSC_TREF =SIMP(statut='o',typ='R'),
- TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- F1_SY =SIMP(statut='f',typ=fonction),
- F2_SY =SIMP(statut='f',typ=fonction),
- F3_SY =SIMP(statut='f',typ=fonction),
- F4_SY =SIMP(statut='f',typ=fonction),
- C_SY =SIMP(statut='f',typ=fonction),
- SY_MELANGE =SIMP(statut='f',typ=fonction),
- F1_S_VP =SIMP(statut='f',typ=fonction),
- F2_S_VP =SIMP(statut='f',typ=fonction),
- F3_S_VP =SIMP(statut='f',typ=fonction),
- F4_S_VP =SIMP(statut='f',typ=fonction),
- C_S_VP =SIMP(statut='f',typ=fonction),
- S_VP_MELANGE =SIMP(statut='f',typ=fonction),
- 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,max=1,
- F1_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F2_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F3_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- F4_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- C_D_SIGM_EPSI =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- META_TRACTION =FACT(statut='f',min=0,max=1,
- SIGM_F1 =SIMP(statut='f',typ=fonction),
- SIGM_F2 =SIMP(statut='f',typ=fonction),
- SIGM_F3 =SIMP(statut='f',typ=fonction),
- SIGM_F4 =SIMP(statut='f',typ=fonction),
- SIGM_C =SIMP(statut='f',typ=fonction),
- 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,max=1,
- F1_ETA =SIMP(statut='f',typ=fonction),
- F1_N =SIMP(statut='f',typ=fonction),
- F1_C =SIMP(statut='f',typ=fonction),
- F1_M =SIMP(statut='f',typ=fonction),
- F2_ETA =SIMP(statut='f',typ=fonction),
- F2_N =SIMP(statut='f',typ=fonction),
- F2_C =SIMP(statut='f',typ=fonction),
- F2_M =SIMP(statut='f',typ=fonction),
- F3_ETA =SIMP(statut='f',typ=fonction),
- F3_N =SIMP(statut='f',typ=fonction),
- F3_C =SIMP(statut='f',typ=fonction),
- F3_M =SIMP(statut='f',typ=fonction),
- F4_ETA =SIMP(statut='f',typ=fonction),
- F4_N =SIMP(statut='f',typ=fonction),
- F4_C =SIMP(statut='f',typ=fonction),
- F4_M =SIMP(statut='f',typ=fonction),
- C_ETA =SIMP(statut='f',typ=fonction),
- C_N =SIMP(statut='f',typ=fonction),
- C_C =SIMP(statut='f',typ=fonction),
- C_M =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- 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'),
- F4_K =SIMP(statut='f',typ='R'),
- F1_D_F_META =SIMP(statut='f',typ=fonction),
- F2_D_F_META =SIMP(statut='f',typ=fonction),
- F3_D_F_META =SIMP(statut='f',typ=fonction),
- F4_D_F_META =SIMP(statut='f',typ=fonction),
- 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,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'),
- C_F4_THETA =SIMP(statut='f',typ='R'),
- F1_C_THETA =SIMP(statut='f',typ='R'),
- F2_C_THETA =SIMP(statut='f',typ='R'),
- F3_C_THETA =SIMP(statut='f',typ='R'),
- F4_C_THETA =SIMP(statut='f',typ='R'),
- ),
-#
-# comportement fluide
-#
- FLUIDE =FACT(statut='f',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,max=1,
- RHO_FLUI =SIMP(statut='o',typ='R'),
- ENTRO_FLUI =SIMP(statut='o',typ='R'),
- BIOT_M =SIMP(statut='o',typ='R'),
- C_0 =SIMP(statut='o',typ='R'),
- T_R =SIMP(statut='o',typ='R'),
- ALPHA_M =SIMP(statut='o',typ='R'),
- LAMBDA_T =SIMP(statut='o',typ='R'),
- LAMBDA_H =SIMP(statut='o',typ='R'),
- SOURCE_INIT =SIMP(statut='o',typ='R'),
- OMEGA_0 =SIMP(statut='o',typ='R'),
- ),
- 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'),
- CP =SIMP(statut='f',typ='R'),
- VISC =SIMP(statut='f',typ=fonction),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- 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,max=1,
- MASS_MOL =SIMP(statut='f',typ='R'),
- CP =SIMP(statut='f',typ='R'),
- VISC =SIMP(statut='f',typ=fonction),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- 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),
- D_VISC_TEMP =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
- ),
- 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'),
- PORO =SIMP(statut='o',typ='R'),
- PRES_VAPE =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,max=1,
- R_GAZ =SIMP(statut='o',typ='R'),
- RHO =SIMP(statut='f',typ='R'),
- CP =SIMP(statut='f',typ='R'),
- BIOT_COEF =SIMP(statut='f',typ='R'),
- SATU_PRES =SIMP(statut='f',typ=fonction),
- D_SATU_PRES =SIMP(statut='f',typ=fonction),
- PESA_X =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),
- PERM_LIQU =SIMP(statut='f',typ=fonction),
- D_PERM_LIQU_SATU=SIMP(statut='f',typ=fonction),
- PERM_GAZ =SIMP(statut='f',typ=fonction),
- D_PERM_SATU_GAZ =SIMP(statut='f',typ=fonction),
- D_PERM_PRES_GAZ =SIMP(statut='f',typ=fonction),
- FICK =SIMP(statut='f',typ=fonction),
- D_FICK_TEMP =SIMP(statut='f',typ=fonction),
- D_FICK_GAZ_PRES =SIMP(statut='f',typ=fonction),
- LAMBDA =SIMP(statut='f',typ=fonction),
- D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction),
- SIGMA_T =SIMP(statut='f',typ=fonction),
- D_SIGMA_T =SIMP(statut='f',typ=fonction),
- PERM_G_INTR =SIMP(statut='f',typ=fonction),
- CHAL_VAPO =SIMP(statut='f',typ=fonction),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- VERI_P2 =SIMP(statut='c',typ='TXM',defaut="SAT",into=("SAT",) ),
- 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",) ),
- ),
-#
-# courbes et coefficients associés à la fatigue et au dommage
-#
- 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'),
- ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
- ENSEMBLE('A0','A1','A2','A3','SL'),
- PRESENT_PRESENT('A0','E_REFE'),
- ENSEMBLE('D0','TAU0'),),
- WOHLER =SIMP(statut='f',typ=fonction),
- A_BASQUIN =SIMP(statut='f',typ='R'),
- BETA_BASQUIN =SIMP(statut='f',typ='R'),
- A0 =SIMP(statut='f',typ='R'),
- A1 =SIMP(statut='f',typ='R'),
- A2 =SIMP(statut='f',typ='R'),
- A3 =SIMP(statut='f',typ='R'),
- SL =SIMP(statut='f',typ='R'),
- MANSON_COFFIN =SIMP(statut='f',typ=fonction),
- E_REFE =SIMP(statut='f',typ='R'),
- D0 =SIMP(statut='f',typ='R'),
- TAU0 =SIMP(statut='f',typ='R'),
- 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,max=1,
- S =SIMP(statut='o',typ=fonction),
- 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,max=1,
- MATAKE_A =SIMP(statut='o',typ='R'),
- MATAKE_B =SIMP(statut='o',typ='R'),
- ENDU_FT =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
- ),
-#
-# autres comportements ...
-#
- 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,max=1,
- M =SIMP(statut='o',typ='R'),
- VOLU_REFE =SIMP(statut='o',typ='R'),
- SIGM_CNV =SIMP(statut='o',typ='R'),
- SIGM_REFE =SIMP(statut='o',typ=fonction),
- SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
- VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
- ),
- CONTACT =FACT(statut='f',min=0,max=1,
- E_N =SIMP(statut='o',typ='R'),
- E_T =SIMP(statut='f',typ='R',defaut= 0.E+0),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+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,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,max=1,
- SY_02 =SIMP(statut='f',typ='R'),
- SM =SIMP(statut='f',typ='R'),
- SU =SIMP(statut='f',typ='R'),
- SC =SIMP(statut='f',typ='R'),
- SH =SIMP(statut='f',typ='R'),
- N_KE =SIMP(statut='f',typ='R'),
- M_KE =SIMP(statut='f',typ='R'),
- ),
- RCCM_FO =FACT(statut='f',min=0,max=1,
- SY_02 =SIMP(statut='f',typ=fonction),
- SM =SIMP(statut='f',typ=fonction),
- SU =SIMP(statut='f',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'),
- GAMMA_E =SIMP(statut='o',typ='R'),
- M_ULT =SIMP(statut='o',typ='R'),
- M_E =SIMP(statut='o',typ='R'),
- A_E =SIMP(statut='o',typ='R'),
- M_PIC =SIMP(statut='o',typ='R'),
- A_PIC =SIMP(statut='o',typ='R'),
- ETA =SIMP(statut='o',typ='R'),
- SIGMA_C =SIMP(statut='o',typ='R'),
- GAMMA =SIMP(statut='o',typ='R'),
- KSI =SIMP(statut='o',typ='R'),
- GAMMA_CJS =SIMP(statut='o',typ='R'),
- SIGMA_P1 =SIMP(statut='o',typ='R'),
- SIGMA_P2 =SIMP(statut='o',typ='R'),
- PA =SIMP(statut='o',typ='R'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& 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.
-# ======================================================================
-DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
- docu="U4.65.02-d",reentrant='n',
- 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=3),
- TRANS =SIMP(statut='f',typ='R',max=3),
- ),
- 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=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/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.
-# ======================================================================
-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",
- "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","SAT", "PGAZ","PCAP") ),
- DEFI_FONCTION =FACT(statut='f',max='**',
- VALE =SIMP(statut='o',typ='R',max='**'),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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",
- "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
- "GUID_B_CARTE_900","GUID_C_CARTE_900",
- "GUID_D_CARTE_900","GUID_E_CARTE_900",
- "GUID_F_CARTE_900","GUID_A_CARTE_1300",
- "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
- "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
- "GUID_F_CARTE_1300","GUID_A_CARSP_900",
- "GUID_B_CARSP_900","GUID_C_CARSP_900",
- "GUID_D_CARSP_900","GUID_E_CARSP_900",
- "GUID_F_CARSP_900","GUID_A_CARSP_1300",
- "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
- "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
- "GUID_F_CARSP_1300","GUID_A_GCONT_900",
- "GUID_B_GCONT_900","GUID_C_GCONT_900",
- "GUID_D_GCONT_900","GUID_E_GCONT_900",
- "GUID_F_GCONT_900","GUID_A_GCONT_1300",
- "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
- "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
- "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
- "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
- "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
- "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
- "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
- "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
- "GUID_F_GCOMB_1300",) ),
- VALE =SIMP(statut='f',typ='R',max='**'),
- VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi,
- fr="Définition d'un paramètre de sensibilité",
- ang="Definition of a sensitive parameter",
- 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=1,
- fr="Valeur du parametre",
- ang="Value of the parameter"),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre,
- 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',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',max=1,
- regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
- LONG_COR =SIMP(statut='o',typ='R' ),
- PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
- FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ),
- PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
- BETA =SIMP(statut='f',typ='R',defaut= 2.7 ),
- ),
- SPEC_LONG_COR_3 =FACT(statut='f',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 ),
- FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ),
- PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
- BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ),
- PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.E-5 ),
- BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ),
- ),
- SPEC_LONG_COR_4 =FACT(statut='f',max=1,
- regles=(ENSEMBLE('BETA','GAMMA'),),
- LONG_COR =SIMP(statut='o',typ='R' ),
- PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ),
- TAUX_VIDE =SIMP(statut='o',typ='R' ),
- BETA =SIMP(statut='f',typ='R',defaut= 2. ),
- GAMMA =SIMP(statut='f',typ='R',defaut= 4. ),
- ),
- SPEC_CORR_CONV_1=FACT(statut='f',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' ),
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- FREQ_COUP =SIMP(statut='f',typ='R' ),
- K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
- D_FLUI =SIMP(statut='o',typ='R' ),
- COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
- COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE",
- into=("AU_YANG","GENERALE","CORCOS") ),
- ),
- SPEC_CORR_CONV_2=FACT(statut='f',max=1,
- FONCTION =SIMP(statut='o',typ=fonction ),
- VITE_FLUI =SIMP(statut='o',typ='R' ),
- FREQ_COUP =SIMP(statut='f',typ='R' ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE",
- into=("AU_YANG","GENERALE","CORCOS",) ),
- COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
- COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
- ),
- SPEC_FONC_FORME =FACT(statut='f',max=1,
- regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
- ENSEMBLE('INTE_SPEC','FONCTION'),),
- INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ),
- FONCTION =SIMP(statut='f',typ=fonction,max='**'),
- GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
- NOEUD =SIMP(statut='o',typ=no),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MODELE =SIMP(statut='o',typ=modele ),
- ),
- 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',
- into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
-# Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent
- b_inte_spec =BLOC(condition = "INTE_SPEC != None",
- NATURE =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
- ANGL =SIMP(statut='o',typ='R',max='**'),
- NOEUD =SIMP(statut='o',typ=no,max='**'),
- ),
- b_grappe_2 =BLOC(condition = "GRAPPE_2 != None",
- RHO_FLUI =SIMP(statut='o',typ='R' ),
- NOEUD =SIMP(statut='o',typ=no),
- ),
- CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
- MODELE =SIMP(statut='o',typ=modele ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
- fr="Dé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'),
- PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
- PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
- 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=1,max='**',
- regles=(EXCLUS('TOUT','GROUP_NO_1'),
- PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
- PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
- PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
- PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- DIST_REFE =SIMP(statut='f',typ='R' ),
- ),
- NOM_GROUP_MA =FACT(statut='f',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,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',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=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/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.
-# ======================================================================
-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='**' ),
- ),
- PLAN =FACT(statut='o',min=40,max=40,
- ANGL_NAUT =SIMP(statut='o',typ='R',max='**' ),
- PROPORTION =SIMP(statut='o',typ='R' ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-DEFI_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 ),
- INST_CC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10),
- 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=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),
- SECTION =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE",) ),
- RESI_R0 =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- RESI_R1 =SIMP(statut='f',typ='R',defaut= 0.E+0),
- RHO_CP =SIMP(statut='f',typ='R',defaut= 1.0E+0),
- COEF_H =SIMP(statut='f',typ='R',defaut= 40.0E+0),
- TEMP_INIT =SIMP(statut='f',typ='R',defaut= 15.0E+0),
- ),
-) ;
-
-#& 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.
-# ======================================================================
-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=1,max='**',
- VALE =SIMP(statut='o',typ='R',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=1,max='**',
- DREF =SIMP(statut='f',typ='R'),
- A =SIMP(statut='f',typ='R'),
- ),
-) ;
-#& 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.
-# ======================================================================
-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-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='**'),
- TX =SIMP(statut='f',typ='TXM',max='**'),
- C8 =SIMP(statut='f',typ='C',max='**'),
- LS =SIMP(statut='f',typ='L',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 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=1,max='**',
- NOM =SIMP(statut='o',typ='TXM',max='**'),
- UNITE =SIMP(statut='o',typ='I' ),
- ),
-) ;
-#& 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.
-# ======================================================================
-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 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.
-# ======================================================================
-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 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.
-# ======================================================================
-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'),),
- 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',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,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 14/10/2002 AUTEUR BOYERE E.BOYERE
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-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',
- 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=2),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- b_bande =BLOC(condition = "BANDE != None",
- AMOR_UNIF =SIMP(statut='o',typ='R' ),
- ),
- b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- ),
- ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
- 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 ) ),
- MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-# dans la doc U il y a plus de choix pour GRANDEUR
- GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
- into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
- 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",) ),
-# Toutes les regles ne semblent pas avoir été ecrites dans la doc U
- NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'),
- NOEUD_I =SIMP(statut='f',typ=no,max='**'),
- b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'),
- ),
- b_noeud_i =BLOC(condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no,max='**'),
- NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'),
- NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'),
- ),
- CHAM_NO =SIMP(statut='f',typ=cham_no),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- b_noeud =BLOC(condition = "NOEUD != None",
- NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),
- ),
- ),
- 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' ),
- 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 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.
-# ======================================================================
-def dyna_line_harm_prod(MATR_MASS,**args):
- if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo
- if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo
- if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo
- if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene
- raise AsException("type de concept resultat non prevu")
-
-DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod,
- fr="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'),
- UN_PARMI('FREQ','LIST_FREQ'),),
- MODELE =SIMP(statut='f',typ=modele ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
- MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c
- ,matr_asse_gene_r,matr_asse_gene_c ) ),
- MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
- 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=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 ) ),
- CHARGE =SIMP(statut='f',typ=char_meca ),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- FONC_MULT_C =SIMP(statut='f',typ=fonction_c ),
- COEF_MULT_C =SIMP(statut='f',typ='C' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),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/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.
-# ======================================================================
-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 ),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ),
- MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ),
- MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
- NEWMARK =FACT(statut='f',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=1,max=1,
- THETA =SIMP(statut='f',typ='R',defaut= 1.4 ),
- ),
- DIFF_CENTRE =FACT(statut='f',min=1,max=1,
- ),
- ADAPT =FACT(statut='f',min=1,max=1,
- ),
- 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 ),
- b_dyna_trans =BLOC(condition = "DYNA_TRANS != None",
- regles=(EXCLUS('NUME_INIT','INST_INIT' ),),
- NUME_INIT =SIMP(statut='f',typ='I' ),
- INST_INIT =SIMP(statut='f',typ='R' ),
- b_inst_init =BLOC(condition = "INST_INIT != None",
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
- DEPL_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
- VITE_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ),
- ),
- EXCIT =FACT(statut='f',min=1,max='**',
- regles=(UN_PARMI('CHARGE','VECT_ASSE'),
- EXCLUS('CHARGE','COEF_MULT'),
- EXCLUS('FONC_MULT','COEF_MULT'),
- EXCLUS('ACCE','COEF_MULT'),
- PRESENT_ABSENT('ACCE','FONC_MULT'),
- PRESENT_PRESENT('ACCE','VITE','DEPL'),
- PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
- VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
- CHARGE =SIMP(statut='f',typ=char_meca ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
- 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',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=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=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=1,max='**',
- regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- FONC_INST =SIMP(statut='f',typ=fonction ),
- PAS =SIMP(statut='f',typ='R' ),
- b_pas =BLOC(condition = "PAS != None",
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- ),
- b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None",
- regles=(EXCLUS('INST_FIN','NUME_FIN'),),
- NUME_FIN =SIMP(statut='f',typ='I' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- ),
- VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
- COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ),
- COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ),
- PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
- NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
- PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ),
- ),
- ARCHIVAGE =FACT(statut='f',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',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/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.
-# ======================================================================
-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),
- 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',min=1,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),
- 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',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=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="OUI",into=("OUI","NON") ),
- ),
- VARI_COMM =FACT(statut='f',
- regles=(AU_MOINS_UN('IRRA',),),
- IRRA =SIMP(statut='f',typ=evol_varc),
- ),
- COMP_INCR =FACT(statut='f',min=1,max='**',
- RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
- into=( "ELAS",
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ECMI_TRAC",
- "VMIS_ECMI_LINE",
- "LABORD_1D",
- "ENDO_FRAGILE",
- "ENDO_ISOT_BETON",
- "MAZARS",
- "RUPT_FRAG",
- "BARENBLATT",
- "META_P_IL",
- "META_P_IL_PT",
- "META_P_IL_RE",
- "META_P_IL_PT_RE",
- "META_V_IL",
- "META_V_IL_PT",
- "META_V_IL_RE",
- "META_V_IL_PT_RE",
- "META_P_INL",
- "META_P_INL_PT",
- "META_P_INL_RE",
- "META_P_INL_PT_RE",
- "META_V_INL",
- "META_V_INL_PT",
- "META_V_INL_RE",
- "META_V_INL_PT_RE",
- "META_P_CL",
- "META_P_CL_PT",
- "META_P_CL_RE",
- "META_P_CL_PT_RE",
- "META_V_CL",
- "META_V_CL_PT",
- "META_V_CL_RE",
- "META_V_CL_PT_RE",
- "VMIS_CINE_LINE",
- "VISC_TAHERI",
- "CHABOCHE",
- "VISCOCHAB",
- "VISC_CIN1_CHAB",
- "VISC_CIN2_CHAB",
- "POLY_CFC",
- "LMARC",
- "ROUSSELIER",
- "ROUSS_PR",
- "ROUSS_VISC",
- "VMIS_POU_LINE",
- "VMIS_POU_FLEJOU",
- "COULOMB",
- "ARME",
- "ASSE_CORN",
- "NORTON_HOFF",
- "LEMAITRE",
- "ZIRC_CYRA2",
- "ZIRC_EPRI",
- "ASSE_COMBU",
- "VENDOCHAB",
- "NADAI_B",
- "DIS_CONTACT",
- "DIS_CHOC",
- "DIS_GOUJ2E_PLAS",
- "DIS_GOUJ2E_ELAS",
- "GRILLE_ISOT_LINE",
- "GRILLE_CINE_LINE",
- "GRILLE_PINTO_MEN",
- "PINTO_MENEGOTTO",
- "CJS",
- "CAM_CLAY",
- "LAIGLE",
- "OHNO",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "GRANGER_FD",
- "BETON_DOUBLE_DP",
- "KIT_HM",
- "KIT_HHM",
- "KIT_THH",
- "KIT_THV",
- "KIT_THM",
- "KIT_THHM",
- "VMIS_ASYM_LINE",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "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=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_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- 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",
- "CAM_CLAY",
- "LAIGLE",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "CAM_CLAY_THM",
-# THMC
- "GAZ",
- "LIQU_SATU",
- "LIQU_SATU_GAT",
- "LIQU_GAZ_ATM",
- "LIQU_VAPE_GAZ",
- "LIQU_VAPE",
- "LIQU_NSAT_GAT",
- "LIQU_GAZ",
-# THER
- "THER_HOMO",
- "THER_POLY",
-# HYDR
- "HYDR_UTIL",
- "HYDR",
-# MECA_META
- "ACIER",
- "ZIRC",
-# MECA KIT_DDI
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ISOT_CINE",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "ROUSSELIER",
- "CHABOCHE",
- "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,)),
- CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- 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=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=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,)),
- HYDR =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,)),
-
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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")),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
-#-------------------------------------------------------------------
- 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'),
- 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',min=1,max=1,
- 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='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',min=1,max=1,
- ALPHA =SIMP(statut='f',typ='R'
- ,defaut= -0.29999999999999999 ),
- ),
- 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',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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-#-------------------------------------------------------------------
- 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),
- ),
- 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") ),
- 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'),
- 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='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
- ),
- 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),
- 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',max='**',defaut="ELNO",
- into=("SIEF_ELNO_ELGA","VARI_ELNO_ELGA","EFGE_ELNO_CART","ELNO","SANS") ),
- 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',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',max='**',
- into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
- ),
- 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',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',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,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- POINT =SIMP(statut='f',typ='I',max='**'),
- ),
-#-------------------------------------------------------------------
- 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") ),
- ),
- 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","SANS","DIAG") ),
- 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',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'),
- 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/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.
-# ======================================================================
-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',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/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.
-# ======================================================================
-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",
- into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
- MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
- RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
- AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- 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=1,max=1,
- regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
- EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
- RESU_GENE =SIMP(statut='f',typ=tran_gene ),
- b_resu_gene =BLOC(condition = "RESU_GENE != None",
- INST_INIT =SIMP(statut='f',typ='R' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- ),
- INCREMENT =FACT(statut='o',min=1,max='**',
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='o',typ='R' ),
- PAS =SIMP(statut='f',typ='R' ),
- VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
- COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ),
- COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
- PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
- NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
- NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
- ),
- ARCHIVAGE =FACT(statut='f',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' ),
- ),
-
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ),
-
- EXCIT =FACT(statut='f',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'),
- EXCLUS('MULT_APPUI','CORR_STAT'),
- PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
- PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
- VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- NUME_MODE =SIMP(statut='f',typ='I' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- 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',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',into=("OUI",) ),
- D_FONC_DT =SIMP(statut='f',typ=fonction ),
- D_FONC_DT2 =SIMP(statut='f',typ=fonction ),
- ),
- 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'),),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- OBSTACLE =SIMP(statut='o',typ=obstacle ),
- ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3),
- NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- JEU =SIMP(statut='f',typ='R',defaut= 1. ),
- DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ),
- SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ),
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-
- LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- b_lame =BLOC(condition="LAME_FLUIDE=='OUI'",
- ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ),
- VERI_CHOC =FACT(statut='f',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=1,max='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- OBSTACLE =SIMP(statut='o',typ=obstacle ),
- ORIG_OBST =SIMP(statut='f',typ='R',max='**'),
- NORM_OBST =SIMP(statut='o',typ='R',max='**'),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- JEU =SIMP(statut='f',typ='R',defaut= 1. ),
- DIST_1 =SIMP(statut='f',typ='R' ),
- DIST_2 =SIMP(statut='f',typ='R' ),
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- FNOR_CRIT =SIMP(statut='f',typ='R' ),
- FNOR_POST_FL =SIMP(statut='f',typ='R' ),
- RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
- ),
- ANTI_SISM =FACT(statut='f',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'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- C =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- RELA_EFFO_DEPL =FACT(statut='f',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=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=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 ),
- ),
- b_itmi =BLOC(condition = "METHODE=='ITMI'",
- regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
- BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- NB_MODE =SIMP(statut='f',typ='I' ),
- NB_MODE_FLUI =SIMP(statut='f',typ='I' ),
- NB_MODE_DIAG =SIMP(statut='f',typ='I' ),
- TS_REG_ETAB =SIMP(statut='f',typ='R' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- IMPRESSION =FACT(statut='f',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") ),
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,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",) ),
- 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/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.
-# ======================================================================
-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=1,max='**',
- NOM_PARA =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& 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.
-# ======================================================================
-def extr_mode_prod(FILTRE_MODE,**args):
- vale=FILTRE_MODE[0]['MODE']
- if AsType(vale) == mode_meca : return mode_meca
- if AsType(vale) == mode_meca_c : return mode_meca_c
- if AsType(vale) == mode_gene : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
- docu="U4.52.12-c",reentrant='n',
- 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_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",
- FREQ_MAX =SIMP(statut='o',typ='R' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- b_crit_extr =BLOC(condition = "CRIT_EXTR != None",
- SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- 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/10/2002 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.
-# ======================================================================
-def extr_resu_prod(RESULTAT,**args):
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == dyna_trans : return dyna_trans
- if AsType(RESULTAT) == dyna_harmo : return dyna_harmo
- if AsType(RESULTAT) == acou_harmo : return acou_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- if AsType(RESULTAT) == mode_acou : return mode_acou
- if AsType(RESULTAT) == mode_stat : return mode_stat
- if AsType(mode_stat) == mode_stat_depl : return mode_stat_depl
- if AsType(mode_stat) == mode_stat_acce : return mode_stat_acce
- if AsType(mode_stat) == mode_stat_forc : return mode_stat_forc
- if AsType(RESULTAT) == mult_elas : return mult_elas
- if AsType(RESULTAT) == fourier_elas : return fourier_elas
- raise AsException("type de concept resultat non prevu")
-
-EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,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 ) ),
-
- 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',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',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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ =SIMP(statut='f',typ=listr8),
- 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='**' ),
-) ;
-#& 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.
-# ======================================================================
-def fact_grad_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
- if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
- raise AsException("type de concept resultat non prevu")
-
-FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,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',
- typ=(matr_asse_depl_r,matr_asse_temp_r,
- matr_asse_pres_r) ),
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ),
- NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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 ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- FREQ_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- FREQ_FIN =SIMP(statut='f',typ='R' ),
- NB_POIN =SIMP(statut='f',typ='I',defaut= 0 ),
- SUR_ECHAN =SIMP(statut='f',typ='R',defaut= 1. ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def fact_ldlt_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
- if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
- if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
- if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
- if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
- if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
- raise AsException("type de concept resultat non prevu")
-
-FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="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,
- matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- NPREC =SIMP(statut='f',typ='I',defaut=8,val_min=0,),
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ),
- BLOC_DEBUT =SIMP(statut='f',typ='I',val_min=1,),
- DDL_DEBUT =SIMP(statut='f',typ='I',val_min=1,),
- BLOC_FIN =SIMP(statut='f',typ='I',val_min=1,),
- DDL_FIN =SIMP(statut='f',typ='I',val_min=1,),
-#
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-#
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& 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.
-# ======================================================================
-# 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 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.
-# ======================================================================
-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",) ),
- INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
-) ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction,
- 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
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
- fr="Définition d une fonction",reentrant = 'n',
- regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
- REEL = SIMP(typ = 'shell',max=1),
- ENTIER = SIMP(typ = 'shell',max=1),
- COMPLEXE = SIMP(typ = 'shell',max=1),
-) ;
-#& 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.
-# ======================================================================
-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 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.
-# ======================================================================
-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 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.
-# ======================================================================
-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),
- A = SIMP(statut='f', typ='R', defaut=-1.),
- B = SIMP(statut='f', typ='R', defaut=1.),
- INIT = SIMP(statut='f', typ='TXM', into=("OUI","NON"),defaut="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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
- fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl",
- 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 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.
-# ======================================================================
-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' ),
- MODE_MECA =SIMP(statut='o',typ=mode_meca ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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',min=1,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO', ),),
- 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/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.
-# ======================================================================
-# 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"),
- NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(0,1,2) ),
- ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
- CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
- BASE =SIMP(statut='f',typ='TXM',defaut="G",into=("","G","V","L") ),
- 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/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.
-# ======================================================================
-# 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") ),
- b_agraf_post =BLOC(condition = "(FORMAT=='AGRAF') or (FORMAT=='POSTSCRIPT')",fr="Mots-clés communs AGRAF et POSTCRIPT",
- BORNE_X =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des abcisses"),
- ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les abcisses" ),
- BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des ordonnées"),
- ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les ordonnées" ),
- ),
- b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF",
- TITRE_GRAPHIQUE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ),
- COMMENTAIRE =SIMP(statut='f',typ='TXM',max='**',fr="Commentaires associés au graphique"),
- LEGENDE_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ),
- LEGENDE_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ),
- FREQ_GRILLE_X =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage vertical" ),
- FREQ_GRILLE_Y =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage horizontal" ),
- ),
- b_excel = BLOC(condition = "(FORMAT=='EXCEL')",fr="Mots-clés propres au format Excel",
- BORNE_X =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des abcisses"),
- BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des ordonnées"),
- ),
- b_post = BLOC ( condition = "(FORMAT=='POSTSCRIPT')",fr="Mots-clés propres à POSTCRIPT",
- TITRE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ),
- LABEL_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ),
- LABEL_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ),
- SORTIE =SIMP(statut='f',typ='TXM',defaut="COULEUR",into=("MONOCHROME","COULEUR"),fr="Type d impression" ),
- DATE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de la date" ),
- GRILLE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression du quadrillage" ),
- AXE_ZERO_X =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe x égal zéro" ),
- AXE_ZERO_Y =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe y égal zéro" ),
- PRESENTATION =SIMP(statut='f',typ='TXM',defaut="PAYSAGE",into=("PAYSAGE","PORTRAIT"),
- fr="Disposition du graphique sur la feuille" ),
- FENETRE =SIMP(statut='f',typ='TXM',defaut="RECTANGLE",into=("CARREE","RECTANGLE"),
- fr="Forme de la fenetre contenant le graphique" ),
- ),
- 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", ),
- LIST_RESU =SIMP(statut='f',typ=listr8,
- fr="Liste des ordonnees d une fonction réelle définie par deux listes", ),
-# creer le type table
- TABLE =SIMP(statut='f',typ=table,
- fr="Nom de la table dont 2 colonnes définissent la fonction",),
- FONC_X =SIMP(statut='f',typ=fonction,
- fr="Fonction abscisses d une fonction paramétrique",),
- RESU_GENE =SIMP(statut='f',typ=tran_gene, ),
- b_fonction =BLOC(condition = "FONCTION != None",
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- ),
- b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c",
- fr="Fonction complexe définie par le mot-clé fonction",
- PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
- ),
- b_list_resu =BLOC(condition = "LIST_RESU != None",
- LIST_PARA =SIMP(statut='o',typ=listr8 ),
- ),
- b_table =BLOC(condition = "TABLE != None",
- PARA_X =SIMP(statut='o',typ='TXM',
- fr="Paramètre de la table associé aux abcisses de la fonction à tracer" ),
- PARA_Y =SIMP(statut='o',typ='TXM',
- fr="Paramètre de la table associé aux ordonnées de la fonction à tracer" ),
- ),
- b_fonc_x =BLOC(condition = "FONC_X != None",
- FONC_Y =SIMP(statut='o',typ=fonction,fr="Fonction ordonnées d une fonction paramétrique" ),
- PARA =SIMP(statut='f',typ='TXM',defaut="FONC_X",into=("FONC_X","FONC_Y"),
- fr="Permutation des roles des deux fonctions" ),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- ),
- b_resu_gene =BLOC(condition = "RESU_GENE != None",
- regles=(UN_PARMI('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- PARA_X =SIMP(statut='o',typ='TXM'),
- PARA_Y =SIMP(statut='o',typ='TXM'),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- ),
-
-
- LEGENDE =SIMP(statut='f',typ='TXM',fr="Légende associée à la courbe" ),
- STYLE =SIMP(statut='f',typ='TXM',defaut="LIGNE",fr="Style de la ligne représentant la courbe",
- into=("LIGNE","POINTILLE","POINT","POINT_RELIE") ),
- COULEUR =SIMP(statut='f',typ='TXM',fr="Couleur associée à la courbe",
- into=("NOIR","ROUGE","VERT_FONCE","BLEU",
- "MAGENTA","CYAN","VERT","SIENNE","ORANGE",
- "POURPRE","JAUNE","DAIM","TURQUOISE","VIOLET",
- "BRUN","CORAIL","MARRON","MAUVE","MARRON_CLAIR") ),
- MARQUEUR =SIMP(statut='f',typ='TXM',fr="Type du marqueur associé à la courbe",
- into=("POINT_F","CARRE_F","TRIANGLE_F",
- "LOSANGE_F","ETOILE_F","FUSEE_F","POINT",
- "CARRE","TRIANGLE","LOSANGE","ETOILE","FUSEE",
- "PLUS","X","CERCLE","CERCLE_P","CARRE_P",
- "LOSANGE_P","CERCLE_P_X","LOSANGE_P_X",
- "CERCLE_X","CARRE_X","LOSANGE_X") ),
- b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF",
- TRI =SIMP(statut='f',typ='TXM',defaut="N",
- fr="Choix du tri effectué sur les abcisses ou sur les ordonnées",
- into=("N","X","Y","XY","YX") ),
- FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut= 0,
- fr="Fréquence d impression du marqueur associé à la courbe", ),
- ),
- ),
-) ;
-#& 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.
-# ======================================================================
-# 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.",
-#
-# 1. Le niveau d'information
-#
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 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",
- into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
- fr="Langue des messages issus de HOMARD.",
- ang="Language for HOMARD messages." ),
-#
-# 4. L'UNITE LOGIQUE D'ECRITURE DU FICHIER DE CONFIGURATION HOMARD
-#
- UNITE =SIMP(statut='f',typ='I',defaut= 71 ),
-#
-# 5. LE TYPE DE TRAITEMENT :
-#
- TRAITEMENT =FACT(statut='o',min=1,max=1,
-#
-# 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
-# B. ADAPTATION UNIFORME, AVEC DEUX VARIANTES :
-# . 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','MAJSOLUTION'),),
- ADAPTATION =SIMP(statut='f',typ='TXM',
- fr="Adaptation libre",
- ang="Free adaptation",
- into=("RAFFINEMENT","DERAFFINEMENT","RAFF_DERA") ),
- UNIFORME =SIMP(statut='f',typ='TXM',
- fr="Adaptation uniforme",
- ang="Uniforme adaptation",
- into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ),
- INFORMATION =SIMP(statut='f',typ='TXM',
- fr="Adaptation libre",
- ang="Free adaptation",
- into=("OUI",) ),
- MAJSOLUTION =SIMP(statut='f',typ='TXM',
- fr="Mise à jour de solutions",
- ang="Solution updating",
- into=("OUI",) ),
-#
-# 5.1.2. LES CONTRAINTES :
-#
-# 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
-# D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
-# E. LA MISE A JOUR DE SOLUTION
-# F. LE NOM MED DU MAILLAGE DE SORTIE
-# REMARQUE : IL FAUT DES CRITERES, MAIS ON NE SAIT PAS LESQUELS
-#
-# 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
-# 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
-# REMARQUE : A L'ITERATION 0, OU AUX ITERATIONS SUIVANTES SI MAJ DE SOLUTION,
-# IL FAUT LE NOM MED DU MAILLAGE D'ENTREE
-#
-# 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 :
-# A. LE NOM MED DE L'INDICATEUR D'ERREUR
-# B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR
-# C. LES CRITERES
-# 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 ) 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',),
- ) ,
-#
- b_maillage_initial_uniforme =BLOC(condition = "( UNIFORME != None ) ",
- fr="Nom MED du maillage en entrée",
- ang="MED name of the in-mesh",
- NOM_MED_MAILLAGE_N =SIMP(statut='f',typ='TXM',),
- ) ,
-#
- 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',
- fr="Numéro d'itération.",
- ang="Iteration number." ),
- NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',
- fr="Nom MED du maillage en sortie",
- ang="MED name of the out-mesh" ),
- MAJ_CHAM =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Mise à jour de champs",
- ang="Field updating" ),
- ) ,
-#
- b_indicateur_d_erreur =BLOC(condition = "ADAPTATION != None",
- fr="Indicateur d'erreur",
- ang="Error indicator",
- 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.",),
- 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.",),
- NUMORD_INDICA =SIMP(statut='f',typ='I',
- fr="Numero d'ordre de l'indicateur.",
- ang="Rank number of the error indicator.",),
- 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_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_critere_de_raffinement =BLOC( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' )" ,
- fr="Critère de raffinement.",
- ang="Refinement threshold.",
- regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
- CRIT_RAFF_ABS =SIMP(statut='f',typ='R',
- fr="Critère absolu",
- ang="Absolute threshold" ),
- CRIT_RAFF_REL =SIMP(statut='f',typ='R',
- fr="Critère relatif",
- ang="Relative threshold" ),
- CRIT_RAFF_PE =SIMP(statut='f',typ='R',
- fr="Pourcentage d'éléments",
- ang="Percentage of elements" ),
- ) ,
-#
- b_critere_de_deraffinement =BLOC ( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' )" ,
- fr="Critère de déraffinement.",
- ang="Unrefinement threshold.",
- regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
- CRIT_DERA_ABS =SIMP(statut='f',typ='R' ,
- fr="Critère absolu",
- ang="Absolute threshold" ),
- CRIT_DERA_REL =SIMP(statut='f',typ='R',
- fr="Critère relatif",
- ang="Relative threshold" ),
- CRIT_DERA_PE =SIMP(statut='f',typ='R',
- fr="Pourcentage d'éléments",
- ang="Percentage of elements" ),
- ) ,
-#
- b_niveau_maximum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or \
- ( UNIFORME == 'RAFFINEMENT' )" ,
- 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' )" ,
- fr="Niveau minimum de déraffinement",
- ang="Minimum level for unrefinement",
- NIVE_MIN =SIMP(statut='f',typ='I' ),
- ) ,
-#
- ),
-#
-# 6. L'ANALYSE DU MAILLAGE
-#
- ANALYSE =FACT(statut='f',min=1,max=1,
- fr="Analyse du maillage.",
- ang="Mesh analysis.",
-#
-# 6.1. CHOIX NON EXCLUSIFS, AVEC DEUX VARIANTES (OUI/NON) :
-# A. NOMBRE DES ELEMENTS
-# B. QUALITE DES ELEMENTS
-# C. INTERPENETRATION DES ELEMENTS
-# D. CONNEXITE DU MAILLAGE
-# E. TAILLE DES DIFFERENTS SOUS-DOMAINES
-#
- regles=(AU_MOINS_UN('NOMBRE','QUALITE','INTERPENETRATION','CONNEXITE','TAILLE'),),
-#
- 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" ),
-#
- QUALITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Qualité du maillage",
- ang="Mesh quality" ),
-#
- 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." ),
-#
- TAILLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Tailles des sous-domaines du maillage.",
- ang="Sizes of mesh sub-domains." ),
-#
- ),
-#
-) ;
-#& 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.
-# ======================================================================
-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",
- 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',
- 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
- EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
- EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
- EXCLUS('TOUT_CHAM','NOM_CHAM'),
- EXCLUS('TOUT_PARA','NOM_PARA'),),
-# faut-il faire des blocs selon le type de RESU_GENE
- RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',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") ),
- ),
- TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'),
- TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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",
- "OBJET","ATTRIBUT","SYSTEME") ),
- b_objet =BLOC(condition = "(ENTITE=='OBJET')",
- NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),
- NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),
- NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),
- ),
- b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')",
- NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ),
- NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
- into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
- '$$LONO','$$LUTI','$$NUM') ),
- ),
- b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')",
- CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ),
- NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',
- into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$ETAT',
- '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
- '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
- '$$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',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/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.
-# ======================================================================
-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",
- into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ),
- b_ideas =BLOC(condition = "FORMAT == 'PLEXUS'",
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- ),
- b_plexus =BLOC(condition = "FORMAT == 'IDEAS'",
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- ),
- 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='**'),
-# 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='**'),
- GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'),
- IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_cadyro =BLOC(condition = "FORMAT == 'CADYRO'",
- SQUELETTE =SIMP(statut='f',typ=squelette ),
- UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ),
- UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ),
- UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 28 ),
- IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
-
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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=1,max='**',
- FICHIER =SIMP(statut='f',typ='TXM' ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
- into=("IDEAS","RESULTAT") ),
- b_format =BLOC(condition = "FORMAT == 'IDEAS'",
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- ),
-# créer les types matr_elem et vect_elem
- 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,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',min=1,max='**',
- FICHIER =SIMP(statut='f',typ='TXM' ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",
- into=("IDEAS","RESULTAT") ),
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
-# créer le type matr_elem
- 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,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='**'),
- GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",
- into=("VALEUR","NOEUD") ),
- NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ),
- VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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=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=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",
- into=("DEPL","VITE","ACCE","FORC",) ),
- ),
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='f',typ='R' ),
- FREQ_INIT =SIMP(statut='f',typ='R' ),
- FREQ_FIN =SIMP(statut='f',typ='R' ),
- PAS =SIMP(statut='o',typ='R' ),
- UNITE =SIMP(statut='f',typ='I',defaut= 26 ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 16/10/2002 AUTEUR GNICOLAS G.NICOLAS
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-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=1,max='**',
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
-
- regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
- EXCLUS('CHAM_GD','RESULTAT'),),
- MAILLAGE =SIMP(statut='f',typ=(maillage,squelette)),
- INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- CHAM_GD =SIMP(statut='f',typ=cham_gd),
- RESULTAT =SIMP(statut='f',typ=resultat),# CO() sd a creer !!!
-
- 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),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),),
-
- b_extrac =BLOC(condition="RESULTAT != None",
- fr="extraction d un champ de grandeur",
- regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
- EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
- 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),),
- TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'),
-
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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',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',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)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
-
- b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
- regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
- INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
- NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
- FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ),
- ),
-
- b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
- ((FORMAT == 'RESULTAT')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""",
- fr="sélection des composantes",
- regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
-
- b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""",
- fr="sélection des composantes et des entités toplogiques",
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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,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')",
- fr="sélection sur les valeurs",
- VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- BORNE_SUP =SIMP(statut='f',typ='R'),
- BORNE_INF =SIMP(statut='f',typ='R'),
- IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
- ),
-
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- FICHIER =SIMP(statut='f',typ='TXM'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& 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.
-# ======================================================================
-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"),
- fr="Type d analyse" ),
- b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
- fr="Recheche du nombre de fréquences propres",
- FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ),
- FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
- ),
- b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- fr="Recherche du nombre de charges critiques",
- CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ),
- CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
- ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
- 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/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.
-# ======================================================================
-# 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", ),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",
- into=("EXCEL","AGRAF","MOT_CLE","TABLEAU","ASTER") ),
- FILTRE =FACT(statut='f',min=1,max='**',
- NOM_PARA =SIMP(statut='o',typ='TXM'),
- CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ",
- into=("EQ","LT","GT","NE","LE","GE","VIDE",
- "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
- b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
- regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
- VALE =SIMP(statut='f',typ='R'),
- VALE_I =SIMP(statut='f',typ='I'),
- VALE_C =SIMP(statut='f',typ='C'),
- VALE_K =SIMP(statut='f',typ='TXM'),),
-
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ),
- 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 ),
- ),
- PAGINATION =SIMP(statut='f',typ='TXM',max='**'),
- 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',max='**'),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",)),
- IMPR_FONCTION =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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-INCLUDE=MACRO(nom="INCLUDE",op=-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 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.
-# ======================================================================
-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) ),
-) ;
-#& 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.
-# ======================================================================
-# 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) ),
-
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
- AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'),
- PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'),
- PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'),
- PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'),
- EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
- EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
- EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
-
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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,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,max=1),
- GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1),
- ),
-
- 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,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,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,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',min=1,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- ),
-
- 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/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.
-# ======================================================================
-# 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=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,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,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/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.
-# ======================================================================
-def lire_champ_prod(TYPE_CHAM=None,**args):
- if TYPE_CHAM == "CHAM_NO_TEMP_R" : return cham_no_temp_r
- if TYPE_CHAM == "CHAM_NO_DEPL_R" : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
- fr="Lire un champ dans un fichier 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
-#
- MAILLAGE =SIMP(statut='o',typ=maillage,
- fr="Nom du maillage support du champ",
- ang="Name of the mesh on which the field is defined" ),
-#
-# 2. Format de lecture
-# Remarque : seul MED est operationnel dans cette version.
-#
- FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),
- fr="Format du fichier : MED seulement",
- ang="Format of the file : MED only" ),
-#
-# 3. L'unite logique du fichier.
-#
- UNITE =SIMP(statut='f',typ='I',defaut= 81,
- fr="Le fichier est : fort.n.",
- ang="File is : fort.n" ),
-#
-# 4. Pour le format MED, il faut preciser le nom sous lequel le champ est connu dans le fichier
-# et les composantes a lire
-#
- b_format =BLOC(condition = "FORMAT == 'MED'",
- fr="Nom du champ dans le fichier MED",
- regles=(UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
- PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),),
-#
- NOM_MED =SIMP(statut='o',typ='TXM',
- fr="Nom du champ dans le fichier MED.",
- ang="Name of the field in the MED file." ),
-#
- NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Les composantes ont le meme nom dans MED et ASTER.",
- ang="The names of the components are the same in ASTER and MED." ),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**',
- fr="Nom des composantes dans ASTER.",
- ang="Names of the components in ASTER" ),
- NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**',
- fr="Nom des composantes dans MED.",
- ang="Names of the components in MED" ),
-#
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**',
- fr="Numéro d'ordre du champ à lire.",
- ang="Rank number of the field to read."),
-#
- NUME_PT =SIMP(statut='f',typ='I',max='**',
- fr="Numéro du pas de temps du champ à lire.",
- ang="Time step number of the field to read."),
-#
-# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
-# le maillage associé au champ y a été enregistré. Par défaut, on prendra le premier maillage.
-#
- NOM_MAIL_MED = SIMP(statut='f',typ='TXM',
- fr="Nom du maillage dans le fichier MED.",
- ang="Name of the mesh into the MED file.",),
-#
- ),
-#
-# 5. Le type du concept lu
-#
- TYPE_CHAM =SIMP(statut='o',typ='TXM',into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R"),
- fr="Type de champ à créer.",
- ang="Type of the field to create." ),
-#
-# 6. Le niveau d'information
-#
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& 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.
-# ======================================================================
-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",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- NOM_PARA_FONC =SIMP(statut='f',typ='TXM',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- INFO =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-LIRE_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',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage,
- 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 ),
-#
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
- fr="Format du fichier : ASTER ou MED.",
- ang="Format of the file : ASTER or MED.",),
-#
- ABSC_CURV =FACT(statut='f',min=0,max=1,
- TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-#
- 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 ),
- ),
-#
- b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
- fr="Informations complémentaires pour la lecture MED.",
- ang="Further information for MED readings.",
-#
-# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
-# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
-#
- NOM_MED = SIMP(statut='f',typ='TXM',
- fr="Nom du maillage dans le fichier MED.",
- ang="Name of the mesh into the MED file.",),
-#
- INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
- ) ,
-#
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
-) ;
-#& 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
-# 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
- if TYPE_RESU == "HARMO" : return dyna_harmo
- raise AsException("type de concept resultat non prevu")
-
-LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
- fr="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 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.
-# ======================================================================
-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",)),
- MAIL_PLEXUS =SIMP(statut='o',typ=maillage ),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
- into=("RELATIF","ABSOLU") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',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
-# 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 == "EVOL_ELAS" : return evol_elas
- if TYPE_RESU == "EVOL_NOLI" : return evol_noli
- if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
- if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
- if TYPE_RESU == "HARM_GENE" : return harm_gene
- if TYPE_RESU == "MODE_MECA" : return mode_meca
- 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",
-
-
-# 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") ),
-
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","ENSIGHT","MED") ),
- DATASET_58 =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON',) ),
-
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-
- regles=(UN_PARMI('MAILLAGE','MODELE'),),
- MAILLAGE =SIMP(statut='f',typ=maillage),
- MODELE =SIMP(statut='f',typ=modele),
-
- NB_VARI =SIMP(statut='f',typ='I' ),
-
-
-# 1 blocs selon le format choisi :
-#---------------------------------
-
-# 1-1 ideas :
-# ---------
- b_ideas =BLOC(condition="FORMAT=='IDEAS'",
- UNITE =SIMP(statut='f',typ='I',defaut= 19 ),
- ),
-
- b_format_ideas = BLOC(condition="DATASET_58=='NON'",
- FORMAT_IDEAS =FACT(statut='f',max='**',
- regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
- 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),
- RECORD_9 =SIMP(statut='f',typ='I',max=10),
- POSI_ORDRE =SIMP(statut='o',typ='I',min=2,max=2),
- POSI_NUME_MODE =SIMP(statut='f',typ='I',min=2,max=2),
- POSI_MASS_GENE =SIMP(statut='f',typ='I',min=2,max=2),
- POSI_INST =SIMP(statut='f',typ='I',min=2,max=2),
- POSI_FREQ =SIMP(statut='f',typ='I',min=2,max=2),
- NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),),
- ),
- b_dataset_58 = BLOC(condition="(DATASET_58=='OUI') and ((TYPE_RESU=='DYNA_TRANS') or\
- (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))",
- NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ),
- REDEFI_ORIENT=FACT(statut='f',max='**',
- regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),),
- CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ),
- DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,),
- NOEUD =SIMP(statut='f',typ=no,max='**'),),
- ),
-# 1-2 ensight :
-# -------------
- b_ensight =BLOC(condition="FORMAT=='ENSIGHT'",
- NOM_FICHIER =SIMP(statut='f',typ='TXM'),
- ),
-# 1-3 med :
-# ---------
- b_med =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED",
-# regles=(UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
-# PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),),
- NOM_MED =SIMP(statut='o',typ='TXM',
- fr="Nom du champ dans le fichier MED.",
- ang="Name of the field in the MED file." ),
- NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",),
- fr="Les composantes ont le meme nom dans MED et ASTER.",
- ang="The names of the components are the same in ASTER and MED." ),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**',
- fr="Nom des composantes dans ASTER.",
- ang="Names of the components in ASTER" ),
- NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**',
- fr="Nom des composantes dans MED.",
- ang="Names of the components in MED" ),
-# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
-# le maillage associé au champ y a été enregistré. Par défaut, on prendra le premier maillage.
- NOM_MAIL_MED =SIMP(statut='f',typ='TXM',
- fr="Nom du maillage dans le fichier MED.",
- ang="Name of the mesh into the MED file.",),
- UNITE =SIMP(statut='f',typ='I',defaut= 81,
- fr="Le fichier est : fort.n.",
- ang="File is : fort.n" ),
- ),
-
-
-# 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'",
- 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 (DATASET_58=='NON')",
- NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',
- into=("DEPL","VITE","ACCE",) ),
- ),
-
-
-# 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',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',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)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- ),
-) ;
-#& 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.
-# ======================================================================
-def lire_table_prod(TYPE_TABLE,**args):
- if TYPE_TABLE == "TABLE" : return table
- if TYPE_TABLE == "TABL_CARA_GEOM" : return tabl_cara_geom
- if TYPE_TABLE == "TABL_POST_RELE" : return tabl_post_rele
- if TYPE_TABLE == "TABL_POST_USUR" : return tabl_post_usur
- if TYPE_TABLE == "TABL_POST_ALEA" : return tabl_post_alea
- 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),
- TYPE_TABLE =SIMP(statut='f',typ='TXM',defaut="TABLE",
- into=("TABLE",
- "TABL_CARA_GEOM",
- "TABL_POST_RELE",
- "TABL_POST_USUR",
- "TABL_POST_ALEA" ) ),
- SEPARATEUR =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- ) ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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_prod(self,MAJ_CHAM,ADAPTATION,**args):
- mail1=ADAPTATION['MAILLAGE_N']
- self.type_sdprod(mail1,maillage)
- mail2=ADAPTATION['MAILLAGE_NP1']
- self.type_sdprod(mail2,maillage)
- if MAJ_CHAM == None:return None
- for ch in MAJ_CHAM:
- t=ch['TYPE_CHAM']
- if t == 'CHAM_NO_TEMP_R':self.type_sdprod(ch['CHAM_MAJ'],cham_no_temp_r)
- if t == 'CHAM_NO_DEPL_R':self.type_sdprod(ch['CHAM_MAJ'],cham_no_depl_r)
- return None
-
-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-b2",
-#
-# 1. Le niveau d'information
-#
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 2. Version de HOMARD
-#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_5",
- into=("V5_5", "V5_N", "V5_N_PERSO"),
- fr="Version de HOMARD",
- ang="HOMARD release"),
-#
-# 3. Langue des messages issus de HOMARD
-#
- LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
- into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
- fr="Langue des messages issus de HOMARD.",
- ang="Language for HOMARD messages." ),
-#
-# 4. LE TYPE DE TRAITEMENT :
-#
- ADAPTATION =FACT(statut='o',min=01,max=01,
- fr="Type d'adaptation",
- ang="Type of adaptation",
-#
-# 4.1. DEUX CHOIX D'ADAPTATION EXCLUSIFS :
-#
-# 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'),
- ),
- LIBRE = SIMP(statut='f',typ='TXM',
- into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT"),
- fr="Adaptation selon un indicateur d'erreur.",
- ang="Adaptation among an error indicator" ),
- UNIFORME = SIMP(statut='f',typ='TXM',
- into=("RAFFINEMENT","DERAFFINEMENT","RIEN"),
- fr="Adaptation uniforme.",
- ang="Uniform adaptation" ),
-#
-# 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=(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" ),
-#
-# 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",
-#
-# 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" ),
-#
-# 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" ),
-#
-# 4.3.3. LA COMPOSANTE RETENUE
-#
- NOM_CMP_INDICA = SIMP(statut='o',typ='TXM',
- fr="Composante retenue",
- ang="Selected component" ),
-#
-# 4.3.4. LE NUMERO D'ORDRE
-#
- NUME_ORDRE = SIMP(statut='f',typ='I' ,
- fr="Numero d ordre",
- ang="Rank" ),
- ) ,
-#
-# 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="Refinement threshold.",
- regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
- CRIT_RAFF_ABS = SIMP(statut='f',typ='R',
- fr="Critère absolu",
- ang="Absolute threshold" ),
- CRIT_RAFF_REL = SIMP(statut='f',typ='R',
- fr="Critère relatif",
- ang="Relative threshold" ),
- CRIT_RAFF_PE = SIMP(statut='f',typ='R',
- fr="Pourcentage d'éléments",
- ang="Percentage of elements" ),
- ) ,
-#
-# 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="Unrefinement threshold.",
- regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
- CRIT_DERA_ABS = SIMP(statut='f',typ='R' ,
- fr="Critère absolu",
- ang="Absolute threshold" ),
- CRIT_DERA_REL = SIMP(statut='f',typ='R',
- fr="Critère relatif",
- ang="Relative threshold" ),
- CRIT_DERA_PE = SIMP(statut='f',typ='R',
- fr="Pourcentage d'éléments",
- ang="Percentage of elements" ),
- ) ,
-#
-# 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' ),
- ) ,
-#
-# 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' ),
- ) ,
- ),
-#
-# 5. LA MISE A JOUR DE CHAMPS.
-# PAR DEFAUT, RIEN NE SE FAIT
-#
- 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.",
-#
-# 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" ),
-#
-# 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" ),
-#
-# 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" ),
-#
-# 5.4. 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"),
-#
-# 5.5. LE TYPE DU CHAMP QUI CONTIENDRA LE RESULTAT DE LA MISE A JOUR
-#
- TYPE_CHAM = SIMP(statut='o',typ='TXM',
- into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R"),
- fr="Type du champ qui contiendra le champ mis à jour",
- ang="Type of the field for the updated field" ),
- ),
-#
-# 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 elements in the mesh" ),
-#
- QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Qualité du maillage",
- ang="Mesh quality" ),
-#
- 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." ),
-#
- TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Tailles des sous-domaines du maillage.",
- ang="Sizes of mesh sub-domains." ),
-#
- MENAGE = SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ),
-#
-) ;
-#& 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.
-# ======================================================================
-# RESPONSABLE F1BHHAJ J.ANGLES
-def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args):
- self.type_sdprod(MODELE,modele)
- if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
- if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem)
- if FOND_FISS != None:self.type_sdprod(FOND_FISS,fond_fiss)
- if CHARGE != None:self.type_sdprod(CHARGE,char_meca)
- if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther)
- return evol_noli
-
-MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -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"
- ) ),
-
- 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. ),
- ),
-
- MAILLAGE =SIMP(statut='o',typ=maillage ),
- MODELE =SIMP(statut='o',typ=(CO,modele)),
- CHAM_MATER =SIMP(statut='f',typ=(CO,cham_mater)),
- CARA_ELEM =SIMP(statut='f',typ=(CO,cara_elem)),
- FOND_FISS =SIMP(statut='f',typ=(CO,fond_fiss)),
- CHARGE =SIMP(statut='f',typ=(CO,char_meca)),
- RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)),
-
- 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") ),
- MATER =SIMP(statut='o',typ=mater ),
- TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
-
- 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 ),
- ),
-
- ECHANGE =FACT(statut='f',min=1,max=1,
- COEF_H =SIMP(statut='f',typ=fonction ),
- TEMP_EXT =SIMP(statut='f',typ=fonction ),
- ),
-
- 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' ),
- FZ =SIMP(statut='f',typ='R' ),
- MX =SIMP(statut='f',typ='R' ),
- MY =SIMP(statut='f',typ='R' ),
- MZ =SIMP(statut='f',typ='R' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- ),
-
- 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',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',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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-
- 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),
- 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")),
- ),
-
- 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',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',min=1,max=1,
- 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),
- ),
-
- 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',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',max=4,
- into=("TRESCA_MEMBRANE",
- "TRESCA_MFLE",
- "TRESCA",
- "SI_LONG"
- "SI_RADI"
- "SI_CIRC"
- ) ),
- TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- ANGLE =SIMP(statut='f',typ='R',max='**' ),
- R_CINTR =SIMP(statut='f',typ='R',max='**' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ),
- POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ),
- TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
- ),
-
- IMPRESSION =FACT(statut='f',min=1,max=1,
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
-
- ),
-
- TITRE =SIMP(statut='f',typ='TXM' ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# 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'),),
-
- 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,11)),
- ),
-
- TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
-
- 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' ),
- L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ),
- TRANSFORMEE =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
- b_transf_coude =BLOC(condition = "TRANSFORMEE == 'COUDE' ",
- DEXT =SIMP(statut='o',typ='R' ),
- EPAIS =SIMP(statut='o',typ='R' ),
- SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
- ),
- b_transf_tube =BLOC(condition = "TRANSFORMEE == 'TUBE' ",
- TRAN_EPAIS =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ),
- b_trans_epais_oui =BLOC(condition = "TRAN_EPAIS == 'OUI' ",
- regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'),
- UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),),
- DEXT_T1 =SIMP(statut='o',typ='R' ),
- EPAIS_T1 =SIMP(statut='o',typ='R' ),
- EPAIS_T2 =SIMP(statut='o',typ='R' ),
- EPAIS_TI =SIMP(statut='f',typ='R' ),
- ANGL_TETA1 =SIMP(statut='o',typ='R' ),
- ANGL_TETA2 =SIMP(statut='f',typ='R' ),
- ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ),
- POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ),
- ),
- b_trans_epais_non =BLOC(condition = "TRAN_EPAIS == 'NON' ",
- DEXT =SIMP(statut='o',typ='R' ),
- EPAIS =SIMP(statut='o',typ='R' ),
- SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
- ),
- ),
- ),
-
- SOUS_EPAIS_COUDE=FACT(statut='f',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") ),
- AXE_CIRC =SIMP(statut='f',typ='R' ),
- AXE_LONGI =SIMP(statut='o',typ='R' ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- POSI_CURV_CIRC =SIMP(statut='f',typ='R' ),
- AZIMUT =SIMP(statut='f',typ='R' ),
- SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
- NB_ELEM_LONGI =SIMP(statut='o',typ='I' ),
- NB_ELEM_CIRC =SIMP(statut='o',typ='I' ),
- NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ),
- EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
-
- SOUS_EPAIS_MULTI=FACT(statut='f',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") ),
- AXE_CIRC =SIMP(statut='f',typ='R' ),
- AXE_LONGI =SIMP(statut='o',typ='R' ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- POSI_CURV_CIRC =SIMP(statut='f',typ='R' ),
- AZIMUT =SIMP(statut='f',typ='R' ),
- SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
- NB_ELEM_LONGI =SIMP(statut='o',typ='I' ),
- NB_ELEM_CIRC =SIMP(statut='o',typ='I' ),
- EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
-
- FISS_COUDE =FACT(statut='f',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' ",
- LONGUEUR =SIMP(statut='o',typ='R' ),
- ),
- b_axis_oui =BLOC(condition = "AXIS == 'OUI' ",
- LONGUEUR =SIMP(statut='f',typ='R' ),
- ),
- PROFONDEUR =SIMP(statut='o',typ='R' ),
- ABSC_CURV =SIMP(statut='f',typ='R' ),
- POSI_ANGUL =SIMP(statut='f',typ='R' ),
- FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
- AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ),
- ORIEN =SIMP(statut='o',typ='R',
- into=(45.,-45.,90.,0.E+0) ),
- NB_TRANCHE =SIMP(statut='o',typ='I' ),
- NB_SECTEUR =SIMP(statut='o',typ='I' ),
- NB_COURONNE =SIMP(statut='o',typ='I' ),
- RAYON_TORE =SIMP(statut='f',typ='R' ),
- COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ),
- COEF_MULT_RC3 =SIMP(statut='f',typ='R' ),
- ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ),
- ),
-
- IMPRESSION =FACT(statut='f',min=1,max='**',
- regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",
- into=("ASTER","IDEAS","CASTEM") ),
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- FICHIER =SIMP(statut='f',typ='TXM' ),
- UNITE =SIMP(statut='f',typ='I' ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE F1BHHAJ J.ANGLES
-def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args):
- if MODELE != None:self.type_sdprod(MODELE,modele)
- if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
- if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem)
- if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss)
- if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss)
- if CHARGE != None:self.type_sdprod(CHARGE,char_meca)
- if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther)
- return evol_noli
-
-MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-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',
- 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',min=1,max=1,
- TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ),
- ),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- MODELE =SIMP(statut='f',typ=(CO,modele)),
- CHAM_MATER =SIMP(statut='f',typ=(CO,cham_mater)),
- CARA_ELEM =SIMP(statut='f',typ=(CO,cara_elem)),
- FOND_FISS_1 =SIMP(statut='f',typ=(CO,fond_fiss)),
- FOND_FISS_2 =SIMP(statut='f',typ=(CO,fond_fiss)),
- CHARGE =SIMP(statut='f',typ=(CO,char_meca)),
- RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)),
-
- 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") ),
- MATER =SIMP(statut='o',typ=mater),
- TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
- ),
-
- EQUILIBRE =FACT(statut='o',min=1,max=1,
- NOEUD =SIMP(statut='o',typ=no),
- ),
-
- 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")),
- PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
-
- ECHANGE =FACT(statut='f',min=1,max=1,
- COEF_H_TUBU =SIMP(statut='o',typ=fonction),
- COEF_H_CORP =SIMP(statut='o',typ=fonction),
- TEMP_EXT =SIMP(statut='o',typ=fonction),
- ),
-
- 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'),
- FY =SIMP(statut='f',typ='R'),
- FZ =SIMP(statut='f',typ='R'),
- MX =SIMP(statut='f',typ='R'),
- MY =SIMP(statut='f',typ='R'),
- MZ =SIMP(statut='f',typ='R'),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
-
- 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'),
- FZ =SIMP(statut='f',typ='R'),
- MX =SIMP(statut='f',typ='R'),
- MY =SIMP(statut='f',typ='R'),
- MZ =SIMP(statut='f',typ='R'),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
-
- 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',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',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',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',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") ),
- ),
- b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-
- 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),
- 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")),
- ),
-
- 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',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',min=1,max=1,
- 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),
- ),
-
- PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1),
-
- IMPRESSION =FACT(statut='f',min=1,max=1,
- FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
- into=("RESULTAT","ASTER","CASTEM","IDEAS")),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
-
- b_extrac =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))",
- fr="extraction d un champ de grandeur",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),),
- NOM_CHAM =SIMP(statut='f',typ='TXM',max=3,
- into=("DEPL","EQUI_ELNO_SIGM","TEMP")),
-
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- INST =SIMP(statut='f',typ='R',max='**'),
- ),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-
- TITRE =SIMP(statut='f',typ='TXM'),
-) ;
-# debut entete
-#& 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.
-# ======================================================================
-# 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")),
- UNITE_DATG =SIMP(statut='f',typ='I',defaut=70),
- UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19),
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
- ),
-
- TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
-
- RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
-
- TUBULURE =FACT(statut='o',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_CHANF =SIMP(statut='o',typ='R'),
- E_TUBU =SIMP(statut='o',typ='R'),
- DEXT_TUBU =SIMP(statut='o',typ='R'),
- Z_MAX =SIMP(statut='o',typ='R'),
- TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
- L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- ),
-
- SOUDURE =FACT(statut='o',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',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',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'),
- LONGUEUR =SIMP(statut='f',typ='R'),
- AZIMUT =SIMP(statut='o',typ='R'),
- RAYON_TORE =SIMP(statut='f',typ='R'),
- POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
- FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
- LIGA_INT =SIMP(statut='f',typ='R'),
- ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0),
- COEF_MULT_RC1 =SIMP(statut='f',typ='R'),
- COEF_MULT_RC2 =SIMP(statut='f',typ='R'),
- COEF_MULT_RC3 =SIMP(statut='f',typ='R'),
- NB_TRANCHE =SIMP(statut='f',typ='I'),
- NB_SECTEUR =SIMP(statut='f',typ='I'),
- NB_COURONNE =SIMP(statut='f',typ='I'),
- ),
-
- IMPRESSION =FACT(statut='f',min=1,max='**',
- regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
-
- b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- ),
-
- b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- FICHIER =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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 ),
- MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ),
- MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ",
- "DIAG_MASS") ),
-) ;
-#& 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.
-# ======================================================================
-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'),),
- 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),
- CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca),
- INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
- NMAX_CAS =SIMP(statut='f',typ='I',defaut=10),
- NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10),
- ),
- EXTERIEUR =FACT(statut='f',min=1,max=1,
- regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- ),
- RIGI_MECA =FACT(statut='f',min=1,max=1,
- ),
- MASS_MECA =FACT(statut='f',min=1,max=1,
- BIDO1 =SIMP(statut='f',typ='I',defaut=0),
- ),
- 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,max='**'),
- INST =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),
-) ;
-#& 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.
-# ======================================================================
-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=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_TRONQUE =SIMP(statut='f',typ='I',max='**'),
- FILET_TRONQA =SIMP(statut='f',typ='I',max='**'),
- FILET_TRONQB =SIMP(statut='f',typ='I',max='**'),
- FILET_JEU_HT =SIMP(statut='f',typ='I',max='**'),
- FILET_JEU_HTA =SIMP(statut='f',typ='I',max='**'),
- FILET_JEU_HTB =SIMP(statut='f',typ='I',max='**'),
- ),
- 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=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=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/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.
-# ======================================================================
-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),
- 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',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',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',max='**'),
- ),
- 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")),
- FICHIER =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
- NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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
-MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-b2",
- fr="Donner des informations sur un maillage.",
- ang="To give information about a mesh.",
-#
-# 1. Le niveau d'information
-#
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 2. Version de HOMARD
-#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_5",
- into=("V5_5", "V5_N","V5_N_PERSO"),
- fr="Version de HOMARD",
- ang="HOMARD release"),
-#
-# 3. Langue des messages issus de HOMARD
-#
- LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
- into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
- fr="Langue des messages issus de HOMARD.",
- ang="Language for HOMARD messages." ),
-#
-# 4. Le nom du maillage a analyser
-#
- MAILLAGE = SIMP(statut='o',typ=maillage,
- fr="Maillage à analyser.",
- ang="Mesh to be checked." ),
-#
-# 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" ),
-#
-# 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" ),
-#
-# 5.3. Connexite du maillage
-#
- CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
- fr="Connexité du maillage.",
- ang="Mesh connexity." ),
-#
-# 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." ),
-#
-# 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/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_lign_coupe_ops import macr_lign_coupe_ops
-
-def macr_lign_coupe_prod(self,LIGN_COUPE,**args):
- if not LIGN_COUPE: raise AsException("Impossible de typer les concepts resultats")
- for m in LIGN_COUPE:
- self.type_sdprod(m['TABLE'],table)
- return None
-
-
-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",
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ),
- ),
- b_ther =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='TEMP' ),
- ),
- MODELE =SIMP(statut='o',typ=modele ),
- UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25),
- 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/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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-
-from Macro.macro_cara_poutre_ops import macro_cara_poutre_ops
-
-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',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)),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_MA_INTE =SIMP(statut='f',typ=grma,max='**'),
- LONGUEUR =SIMP(statut='f',typ='R'),
- MATERIAU =SIMP(statut='f',typ=mater),
- LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& 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.
-# ======================================================================
-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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- COEF_IMPO =SIMP(statut='f',typ='R',defaut=1.0E+0),
- 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 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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-
-from Macro.macro_elas_mult_ops import macro_elas_mult_ops
-
-def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
- self.type_sdprod(NUME_DDL,nume_ddl)
- if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas
- if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
- raise AsException("type de concept resultat non prevu")
-
-MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,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),
- 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,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',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,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",
- "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",
- "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI",
- "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA",
- "ERRE_ELEM_NOZ2","VNOR_ELEM_DEPL","ERRE_ELNO_ELGA","SIRE_ELNO_DEPL",
- "ERRE_ELGA_NORE","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
- "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL",
- "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")),
- SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'),
- VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r),
- ),
- 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",
- RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
- ),
- b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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'),
- PRESENT_ABSENT('MATR_ELEM_AMOR','MATR_AMOR'),),
- 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,)),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- NUME_DDL =SIMP(statut='o',typ=nume_ddl),
- CHARGE =SIMP(statut='o',typ=char_meca,max='**'),
- MATR_ELEM_RIGI =SIMP(statut='f',typ=matr_elem_depl_r),
- MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r),
- MATR_ELEM_MASS =SIMP(statut='f',typ=matr_elem_depl_r),
- MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r),
- MATR_ELEM_AMOR =SIMP(statut='f',typ=matr_elem_depl_r),
- 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=1,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO'),
- UN_PARMI('DDL_ACTIF','MASQUE'),),
- NOM =SIMP(statut='o',typ='TXM'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'),
- MASQUE =SIMP(statut='f',typ='TXM',max='**'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& 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.
-# ======================================================================
-def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args):
- self.type_sdprod(MATR_AMOR_AJOU,matr_asse_depl_r)
- self.type_sdprod(MATR_MASS_AJOU,matr_asse_depl_r)
- self.type_sdprod(MATR_RIGI_AJOU,matr_asse_depl_r)
- if FORC_AJOU != None:
- for m in FORC_AJOU:
- self.type_sdprod(m['VECTEUR'],vect_asse_gene)
-
- return None
-
-MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-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'),
- EXCLUS('MONO_APPUI','MODE_STAT',),
- ),
- MAILLAGE =SIMP(statut='o',typ=maillage),
- 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',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',min=1,max='**',
- regles=(UN_PARMI('NOEUD','GROUP_NO'),
- UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- PRES_FLUIDE =SIMP(statut='f',typ='R'),
- PRES_SORTIE =SIMP(statut='f',typ='R'),
- ),
- ECOULEMENT =FACT(statut='f',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'),
- VNOR_2 =SIMP(statut='f',typ='R'),
- POTENTIEL =SIMP(statut='f',typ=evol_ther),
- ),
- MODE_MECA =SIMP(statut='f',typ=mode_meca),
- DEPL_IMPO =SIMP(statut='f',typ=cham_no_depl_r),
- MODELE_GENE =SIMP(statut='f',typ=modele_gene),
- NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene),
- DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2),
- MATR_MASS_AJOU =SIMP(statut='f',typ=(CO,matr_asse)),
- MATR_RIGI_AJOU =SIMP(statut='f',typ=(CO,matr_asse)),
- 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',min=1,max='**',
- DIRECTION =SIMP(statut='o',typ='R',max=3),
- 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',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") ),
- ),
- b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-
-from Macro.macro_matr_asse_ops import macro_matr_asse_ops
-
-def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
- if not MATR_ASSE: raise AsException("Impossible de typer les concepts resultats")
- if not NUME_DDL: raise AsException("Impossible de typer les concepts resultats")
- 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-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),
- 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),max='**'),
- INST =SIMP(statut='f',typ='R'),
- NUME_DDL =SIMP(statut='o',typ=(nume_ddl,CO)),
- 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',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",
- "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)),
-) ;
-#& 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.
-# ======================================================================
-
-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",)),
- MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
- ),
- PROJET =SIMP(statut='o',typ='TXM'),
- REPERTOIRE =SIMP(statut='f',typ='TXM'),
- UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25),
- UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26),
- UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),
- UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
-) ;
-#& 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.
-# ======================================================================
-
-from Macro.macro_mode_meca_ops import macro_mode_meca_ops
-
-def macro_mode_meca_prod(self,MATR_A,MATR_B,**args ):
- self.type_sdprod(MATR_A,matr_asse_depl_r)
- self.type_sdprod(MATR_B,matr_asse_depl_r)
- return mode_meca
-
-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,
- 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,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' ),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
- COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),
- STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
- ),
- VERI_MODE =FACT(statut='d',min=0,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',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',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',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/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.
-# ======================================================================
-
-from Macro.macro_proj_base_ops import macro_proj_base_ops
-
-def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ):
- if MATR_ASSE_GENE != None:
- for m in MATR_ASSE_GENE:
- self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
- self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r)
- if VECT_ASSE_GENE != None:
- for v in VECT_ASSE_GENE:
- self.type_sdprod(v['VECTEUR'],vect_asse_gene)
- return None
-
-MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,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=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=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),
- VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& 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.
-# ======================================================================
-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=1,max=1,),
-
-) ;
-#& 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
-# 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-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),
- CHAM_MATER =SIMP(statut='f',typ=cham_mater,
- fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)",
- ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem,
- fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...",
- ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- EXCIT =FACT(statut='o',min=1,max='**',
- CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- 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),
- 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",
- "EQUI_ELNO_EPME","EQUI_ELGA_EPME","DEGE_ELNO_DEPL","EPOT_ELEM_DEPL",
- "ENEL_ELGA","ENEL_ELNO_ELGA") ),
- NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1),
- 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),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),
- 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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& 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.
-# ======================================================================
-# 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.",
-
- regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),),
-
- NOM=FACT(statut='f',max='**',
- regles=(PRESENT_PRESENT('MOT_CLE','VALEUR' ),),
-
- NOM_SD=SIMP(statut='o',typ='TXM',
- fr="Nom de la structure de base",
- ang="Name of the basic structure"),
-
- PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom),
- fr="Nom du paramètre sensible",
- ang="Name of the sensitive parameter"),
-
- NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ",
- fr="Nom de la structure composée",
- ang="Name of the built structure"),
-
- MOT_CLE=SIMP(statut='f',typ='TXM',max='**',
- fr="Liste des mots clés concernés par la dérivation",
- ang="Keyword list involved in derivation"),
-
- VALEUR=SIMP(statut='f',typ='TXM',max='**',
- fr="Liste des objets concernés par la dérivation",
- ang="Object list involved in derivation"),
-
- ),
-
- NOM_ZERO=SIMP(statut='f',typ=fonction,
- fr="Nom de la fonction nulle",
- ang="Name of the zero fonction"),
-
- NOM_UN=SIMP (statut='f',typ=fonction,
- fr="Nom de la fonction unité",
- ang="Name of the one fonction"),
-
-) ;
-#& 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.
-# ======================================================================
-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=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=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=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=1,max=1),
- ),
- b_bande =BLOC(condition = "OPTION == 'BANDE'",
- 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 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
- if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
- if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
- if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
- if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
- if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod
- ,fr="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 ),
- 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',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" ),
- FREQ =SIMP(statut='o',typ='R',max='**'),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),
- NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
- NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
-
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
- ),
- ),
- b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- CALC_FREQ =FACT(statut='o',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',max='**' ),
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),
- NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
- PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
- NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
- PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
-
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
- ),
- ),
- CALC_MODE =FACT(statut='d',min=0,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,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',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
- if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
- if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
- if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
- if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
- if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-MODE_ITER_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" ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
- fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
-
- b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- CALC_FREQ =FACT(statut='d',min=0,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",
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
- ),
- b_centre =BLOC(condition = "OPTION == 'CENTRE'",
- fr="Recherche des valeurs propres les plus proches d une valeur donnée",
- CHAR_CRIT =SIMP(statut='o',typ='R',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,max=2,
- fr="Valeur des deux charges critiques délimitant la bande de recherche"),
- ),
- APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
- fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
- regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
- COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
- ),
- ),
-
- b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
- CALC_FREQ =FACT(statut='d',min=0,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",
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
- ),
- b_centre =BLOC(condition = "OPTION == 'CENTRE'",
- fr="Recherche des valeurs propres les plus proches d une valeur donnée",
- FREQ =SIMP(statut='o',typ='R',min=1,max=1,
- fr="Fréquence autour de laquelle on cherche les fréquences propres"),
- 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,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"),
- fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
- regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
- COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
- NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
- PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
- ),
- ),
-
- VERI_MODE =FACT(statut='d',min=0,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,
- fr="Valeur limite admise pour l ereur a posteriori des modes" ),
- STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
- if (MODE_STAT != None) : return mode_stat_depl
- if (PSEUDO_MODE !=None) : return mode_stat_acce
- if (FORCE_NODALE != None) : return mode_stat_forc
- raise AsException("type de concept resultat non prevu")
-MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
- fr="Calcul de modes statiques",
- 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=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='**'),
- 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',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='**'),
- 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',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='**'),
- b_dir =BLOC(condition = "DIRECTION != None",
- NOM_DIR =SIMP(statut='f',typ='TXM' ),),
- b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
- regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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 ),
- BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ),
- NUME_VITE_FLUI =SIMP(statut='o',typ='I' ),
- 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/10/2002 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.
-# ======================================================================
-# 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',
- 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('ROTATION','MODI_BASE'),),
- MAILLAGE =SIMP(statut='o',typ=maillage ),
-
- ORIE_CONTACT =FACT(statut='f',min=1,max=1,
- GROUP_MA =SIMP(statut='o',typ=grma,max='**'),
- ),
-
- 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,max='**' ),
- GROUP_NO_STRU = SIMP(statut='o',typ=grno,max='**' ),),
- ),
-
- 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' ),
- E_CORP =SIMP(statut='o',typ='R' ),
- DEXT_CORP =SIMP(statut='o',typ='R' ),
- AZIMUT =SIMP(statut='o',typ='R' ),
- RAFF_MAIL =SIMP(statut='o',typ='TXM' ),
- X_MAX =SIMP(statut='o',typ='R' ),
- ),
- ORIE_PEAU_2D =FACT(statut='f',min=1,max='**',
- GROUP_MA =SIMP(statut='o',typ=grma,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=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=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=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=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=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='**'),
- 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',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 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.
-# ======================================================================
-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'),),
- TUBE_NEUF =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- V_USUR_TUBE =SIMP(statut='f',typ='R',max='**'),
- V_USUR_OBST =SIMP(statut='f',typ='R',max='**'),
- TABL_USURE =SIMP(statut='f',typ=tabl_post_usur),
- INST =SIMP(statut='f',typ='R'),
- OBSTACLE =SIMP(statut='f',typ=obstacle),
- GUIDE =SIMP(statut='o',typ=obstacle),
- CRAYON =SIMP(statut='f',typ=obstacle),
- R_MOBILE =SIMP(statut='f',typ='R'),
- PERCEMENT =SIMP(statut='f',typ='R',defaut=1),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-#& 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-def modi_repere_prod(RESULTAT,**args):
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == dyna_trans : return dyna_trans
- if AsType(RESULTAT) == dyna_harmo : return dyna_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- if AsType(RESULTAT) == mode_flamb : return mode_flamb
- if AsType(RESULTAT) == mult_elas : return mult_elas
- if AsType(RESULTAT) == base_modale : return base_modale
- raise AsException("type de concept resultat non prevu")
-
-MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,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,
- evol_ther,base_modale,mode_flamb) ),
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',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',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',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 ),
- b_vect_2d =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
- b_vect_3d =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
- b_tors_3d =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
- b_tens_2d =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
- b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
- NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
- ),
- DEFI_REPERE =FACT(statut='o',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',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/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.
-# ======================================================================
-def norm_mode_prod(MODE,**args ):
- if AsType(MODE) == mode_meca : return mode_meca
- if AsType(MODE) == mode_meca_c : return mode_meca_c
- if AsType(MODE) == mode_flamb : return mode_flamb
- raise AsException("type de concept resultat non prevu")
-
-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,...",
- into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
- NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
- b_noeud =BLOC(condition = "NOEUD != None",
- NOM_CMP =SIMP(statut='o',typ='TXM' ),
- ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ),
- 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"),
- fr="Choix du signe" ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-#& 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.
-# ======================================================================
-# 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,
- 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)),
-) ;
-#& 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.
-# ======================================================================
-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",
- STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
- ),
- 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/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.
-# ======================================================================
-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' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**' ),
- NOEUD_I =SIMP(statut='f',typ=no,max='**'),
- OPTION =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
- b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**' ),
- ),
- b_noeud_i =BLOC(condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no,max='**'),
- NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ),
- NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ),
- ),
- 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' ),
- VALE_MAX =SIMP(statut='f',typ='R' ),
- PAS =SIMP(statut='f',typ='R' ),
- DUREE =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- 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=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=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' ),
- VALE_MAX =SIMP(statut='f',typ='R' ),
- PAS =SIMP(statut='f',typ='R' ),
- DUREE =SIMP(statut='f',typ='R',defaut= 10. ),
- ),
- MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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=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. ),
- NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ),
- SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
- NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ),
- ),
- RELA_EFFO_DEPL =FACT(statut='f',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/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.
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,TRAV_EXT,WEIBULL,
- CARA_GEOM,CARA_POUTRE,RICE_TRACEY,CHAR_LIMITE,
- INDIC_ENER,INDIC_SEUIL,ENER_ELAS,ENER_TOTALE,
- AIRE_INTERNE,**args ):
- if MASS_INER != None : return tabl_mass_iner
- if ENER_POT != None : return tabl_ener_pot
- if ENER_CIN != None : return tabl_ener_cin
- if TRAV_EXT != None : return tabl_trav_ext
- if WEIBULL != None : return tabl_weibull
- if CARA_GEOM != None : return tabl_cara_geom
- if CARA_POUTRE != None : return tabl_cara_geom
- if RICE_TRACEY != None : return tabl_rice_tracey
- if CHAR_LIMITE != None : return tabl_char_limite
- if INDIC_ENER != None : return tabl_indic_ener
- if INDIC_SEUIL != None : return tabl_indic_seuil
- if ENER_ELAS != None : return tabl_ener_elas
- if ENER_TOTALE != None : return tabl_ener_totale
- if AIRE_INTERNE != None : return tabl_aire_int
- 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',
- 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE',
- 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL',
- 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'),
- ),
-
- 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,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 )",
- fr="calcul de la masse, les inerties et le centre de gravité",
- regles=(EXCLUS('CHAM_GD','RESULTAT'),
- EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
- MODELE = SIMP(statut='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),max='**' ),
- NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
- MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
- GEOMETRIE = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
- CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
- RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas,
- fourier_elas,dyna_trans) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE = SIMP(statut='f',typ='I',max=1),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max=1),
- LIST_INST = SIMP(statut='f',typ=listr8),
- FREQ = SIMP(statut='f',typ='R',max=1),
- LIST_FREQ = SIMP(statut='f',typ=listr8),
- 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',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,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",
- regles=(UN_PARMI('CHAM_GD','RESULTAT'),
- EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
- MODELE = SIMP(statut='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),max='**' ),
- NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
- ANGLE = SIMP(statut='f',typ='I',defaut=0),
- MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
- CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
- RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- FREQ = SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ = SIMP(statut='f',typ=listr8),
- 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',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,max='**'),
- GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
- ),
- b_ener_cin = BLOC(condition = "( ENER_CIN != None )",
- fr="calcul de l'énergie cinétique",
- regles=(UN_PARMI('CHAM_GD','RESULTAT'),
- EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
- 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
- MODELE = SIMP(statut='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),max='**' ),
- NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
- ANGLE = SIMP(statut='f',typ='I',defaut=0),
- MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
- CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
- RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- FREQ = SIMP(statut='f',typ='R',max='**'),
- LIST_FREQ = SIMP(statut='f',typ=listr8),
- 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',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,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),max='**' ),
- NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
- MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
- RESULTAT = SIMP(statut='o',typ=(evol_noli) ),
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- ),
-
- 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,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),max='**' ),
- NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
- MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
- RESULTAT = SIMP(statut='o',typ=(evol_noli) ),
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- ),
-
- 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,max='**'),
- GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
- OPTION = SIMP(statut='f',typ='TXM',
- into=("SIGM_ELGA","SIGM_ELMOY"),
- defaut="SIGM_ELGA"),
- CORR_PLAST = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- COEF_MULT = SIMP(statut='f',typ='R',defaut=1.),
- ),
- b_weibull = BLOC(condition = "( WEIBULL != None )",
- fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull",
- regles=(UN_PARMI('CHAM_GD','RESULTAT'),
- EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- MODELE = SIMP(statut='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),max='**' ),
- NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
- MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
- CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
- RESULTAT = SIMP(statut='f',typ=(evol_noli) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- ),
-
- 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,max='**'),
- GROUP_MA = SIMP(statut='f',typ=grma,max='**'),
- OPTION = SIMP(statut='f',typ='TXM',
- into=("SIGM_ELGA","SIGM_ELMOY"),
- defaut="SIGM_ELGA"),
- LOCAL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
- ),
- b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )",
- fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine",
- regles=(UN_PARMI('CHAM_GD','RESULTAT'),
- EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- MODELE = SIMP(statut='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),max='**' ),
- NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1),
- NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
- MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
- CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
- RESULTAT = SIMP(statut='f',typ=(evol_noli) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE = SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- ),
-
- 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,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),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',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- ),
-
- 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,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),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',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- ),
-
- 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 )",
- fr="post-traitement du calcul de la charge limite",
- 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),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',max='**'),
- LIST_ORDRE = SIMP(statut='f',typ=listis),
- INST = SIMP(statut='f',typ='R',max='**'),
- LIST_INST = SIMP(statut='f',typ=listr8),
- ),
-
- 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,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),
- ),
- b_cara_geom = BLOC(condition = "( CARA_GEOM != None )",
- 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),max='**' ),
- MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
- ),
-
- 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,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),
- LAPL_PHI_Z = SIMP(statut='f',typ=evol_ther),
- LIAISON = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
- LONGUEUR = SIMP(statut='f',typ='R'),
- MATERIAU = SIMP(statut='f',typ=mater),
- OPTION = SIMP(statut='f',typ='TXM',
- into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
- ),
- b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )",
- fr="calcul des caractéristiques mécaniques d'un section de poutre",
- MODELE = SIMP(statut='o',typ=modele),
- CHAM_MATER = SIMP(statut='f',typ=cham_mater),
- 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',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',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) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- ),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-
- ) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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'),
- UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
- MOMENT_SPEC_0 =SIMP(statut='f',typ='R'),
- MOMENT_SPEC_2 =SIMP(statut='f',typ='R'),
- MOMENT_SPEC_4 =SIMP(statut='f',typ='R'),
- TABL_POST_ALEA =SIMP(statut='f',typ=tabl_post_alea),
- COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
- DUREE =SIMP(statut='f',typ='R',defaut= 1.),
- CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)),
- DOMMAGE =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
- MATER =SIMP(statut='o',typ=mater),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=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")),
-
- b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'",
- regles=(PRESENT_PRESENT('CORR_KE','MATER'),
- PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
- PRESENT_PRESENT('DOMMAGE','MATER'),),
- HISTOIRE = FACT(statut='o',min=1,max=1,
- regles=(UN_PARMI('SIGM','EPSI'),),
- SIGM = SIMP(statut='f',typ=fonction),
- EPSI = SIMP(statut='f',typ=fonction),),
- 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',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",
- "TAHERI_MANSON","TAHERI_MIXTE")),
- MATER = SIMP(statut='f',typ=mater),
- CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
- TAHERI_NAPPE = SIMP(statut='f',typ=fonction),
- TAHERI_FONC = SIMP(statut='f',typ=fonction),
- CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
- ),
-
- b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'",
- HISTOIRE = FACT(statut='o',min=1,max=1,
- SIGM_XX = SIMP(statut='o',typ=fonction),
- SIGM_YY = SIMP(statut='o',typ=fonction),
- SIGM_ZZ = SIMP(statut='o',typ=fonction),
- SIGM_XY = SIMP(statut='o',typ=fonction),
- SIGM_XZ = SIMP(statut='f',typ=fonction),
- SIGM_YZ = SIMP(statut='f',typ=fonction),),
- CRITERE = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
- DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER",)),
- MATER = SIMP(statut='o',typ=mater),
- COEF_CORR = SIMP(statut='f',typ='R'),
- ),
-
- b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
- HISTOIRE = FACT(statut='o',min=1,max=1,
- SIGM_XX = SIMP(statut='o',typ=fonction),
- SIGM_YY = SIMP(statut='o',typ=fonction),
- SIGM_ZZ = SIMP(statut='o',typ=fonction),
- SIGM_XY = SIMP(statut='o',typ=fonction),
- SIGM_XZ = SIMP(statut='f',typ=fonction),
- SIGM_YZ = SIMP(statut='f',typ=fonction),
- EPSP = SIMP(statut='o',typ=fonction),
- TEMP = SIMP(statut='o',typ=fonction),),
- DOMMAGE = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),defaut="LEMAITRE"),
- MATER = SIMP(statut='o',typ=mater),
- CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
- ),
-
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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 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.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-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'),),
-
- MODELISATION =SIMP(statut='o',typ='TXM',
- into=("3D","AXIS","D_PLAN","C_PLAN"),
- fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
- FOND_3D =SIMP(statut='f',typ=fond_fiss),
- FOND_FISS =SIMP(statut='f',typ=fond_fiss),
- b_fond_3d =BLOC (condition="(FOND_3D != None) or (FOND_FISS!= None)",
- MAILLAGE = SIMP(statut='o',typ=maillage),
- PRECISION = SIMP(statut='f',typ='R',defaut=0.001),
- 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"),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),
- fr="Table déplacement des noeuds de la lèvre supérieure et inférieure"),
- TABL_DEPL_SUP =SIMP(statut='f',typ=tabl_post_rele,
- fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
- TABL_DEPL_INF =SIMP(statut='f',typ=tabl_post_rele,
- fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
- ABSC_CURV_MAXI=SIMP(statut='f',typ='R',
- fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"),
- PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- 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='**',
- 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/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.
-#
-#
-# ======================================================================
-#
-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'),
- 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',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)),
- INTITULE = 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/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 PARTIC
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=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',
- 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='**'),
- OPTION =SIMP(statut='o',typ='TXM',max='**',
- into=("PM_PB",
- "SN",
- "FATIGUE_SPMAX",
- "FATIGUE_ZH210",
- "FATIGUE_B3200",
- "FATIGUE_B3600",
- ) ),
- 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'),),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- CHEMIN =SIMP(statut='f',typ=(courbe,surface),),
- 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',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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- 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 ),
- 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 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.
-# ======================================================================
-# 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',
- 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'),
- PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
- 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'),
- 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,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,
- cham_elem_ener_r,cham_elem_dbel_r,cham_elem_pres_r,cham_elem_erreur,
- cham_elem_vari_r,cham_no_depl_c,cham_no_temp_c,cham_no_pres_c,
- cham_elem_sief_c,cham_elem_epsi_c)),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans,
- mode_meca,mode_flamb,mode_acou,base_modale,mode_stat,
- mult_elas,fourier_elas,dyna_harmo,acou_harmo)),
- 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),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),),
-
- b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',
- 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ),
- NOM_CHAM =SIMP(statut='o',typ='TXM' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- NUME_MODE =SIMP(statut='f',typ='I',max='**'),
- LIST_MODE =SIMP(statut='f',typ=listis),
- 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',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")),
- ),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**'),
- INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- RESULTANTE =SIMP(statut='f',typ='TXM',max='**'),
- MOMENT =SIMP(statut='f',typ='TXM',max='**'),
- POINT =SIMP(statut='f',typ='R',max='**'),
-
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
- into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
- ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3),
- ORIGINE =SIMP(statut='f',typ='R',min=3,max=3),
- AXE_Z =SIMP(statut='f',typ='R',min=3,max=3),
-
- TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)),
- TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)),
- DIRECTION =SIMP(statut='f',typ='R',max='**'),
- 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"),max=2),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-POST_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=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'),
- LONG_LIGA_INT =SIMP(statut='o',typ='R'),
- DEXT =SIMP(statut='o',typ='R'),
- TEMP_ANALYSE =SIMP(statut='f',typ='R'),
- ),
-) ;
-#& 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.
-# ======================================================================
-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=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,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 ),
- PUIS_USURE =SIMP(statut='f',typ='R'),
- LOI_USURE =SIMP(statut='o',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
- b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'",
- regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'),
- EXCLUS('MATER_USURE','OBSTACLE'),
- EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',min=1,max=1,
- COEF_USURE =SIMP(statut='o',typ='R'),
- ),
- OBSTACLE =FACT(statut='f',min=1,max=1,
- COEF_USURE =SIMP(statut='o',typ='R'),
- ),
- 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")),
- COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),
- COEF_USUR_OBST =SIMP(statut='f',typ='R'),
- ANGL_INIT =SIMP(statut='f',typ='R'),
- ANGL_FIN =SIMP(statut='f',typ='R'),
- ),
- MATER_USURE =SIMP(statut='f',typ='TXM'),
- USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)),
- ),
- b_kwu_epri =BLOC(condition = "LOI_USURE == 'KWU_EPRI'",
- regles=(UN_PARMI('MOBILE','MATER_USURE'),
- EXCLUS('MATER_USURE','OBSTACLE'),
- EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',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=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_K =SIMP(statut='f',typ='R',defaut=5.0E+0),
- COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0),
- ),
- MATER_USURE =SIMP(statut='f',typ='TXM'),
- USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)),
- FNOR_MAXI =SIMP(statut='f',typ='R' ),
- VTAN_MAXI =SIMP(statut='f',typ='R' ),
- ),
- b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
- regles=(UN_PARMI('MOBILE','MATER_USURE'),
- EXCLUS('MATER_USURE','OBSTACLE'),
- EXCLUS('MOBILE','USURE_OBST'),),
- MOBILE =FACT(statut='f',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=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',into=("OUI",)),
- ),
- CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",
- "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",
- "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
- RAYON_MOBILE =SIMP(statut='f',typ='R'),
- RAYON_OBST =SIMP(statut='f',typ='R'),
- LARGEUR_OBST =SIMP(statut='f',typ='R'),
- ANGL_INCLI =SIMP(statut='f',typ='R'),
- ANGL_ISTHME =SIMP(statut='f',typ='R'),
- ANGL_IMPACT =SIMP(statut='f',typ='R'),
- INST =SIMP(statut='f',typ='R',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/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.
-# ======================================================================
-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=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",)),
- ),
- 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',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8),
- 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),
- b_evol_noli =BLOC(condition="EVOL_NOLI != None",
- INST_MAX =SIMP(statut='o',typ='R'),
- ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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"),
- BASE =FACT(fr="définition des parmè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'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=1,max=3,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=1,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=1,max=1,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TES',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
- GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
- TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
- TAILLE =SIMP(statut='f',typ='I'),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
- PARTITION =SIMP(statut='f',typ='R' ),
- ),
- CODE =FACT("définition d un nom pour l'esemble d'une étude",
- statut='f',min=1,max=1,
- NOM =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
-) ;
-#& MODIF COMMANDE DATE 21/12/2000 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.
-# ======================================================================
-PRE_CHAR_IDEAS=PROC(nom="PRE_CHAR_IDEAS",op=100,docu="U7.01.02-e",
- fr="Conversion de conditions aux limites et chargements IDEAS en commandes Aster",
- UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19),
- UNITE_ASTER =SIMP(statut='f',typ='I',defaut=21),
- MODELE =SIMP(statut='o',typ=modele),
-) ;
-#& 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.
-# ======================================================================
-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 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.
-# ======================================================================
-
-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 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.
-# ======================================================================
-
-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 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.
-# ======================================================================
-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 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.
-# ======================================================================
-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 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.
-# ======================================================================
-def prod_matr_cham_prod(MATR_ASSE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
- if AsType(MATR_ASSE) == matr_asse_depl_c : return cham_no_depl_c
- if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
- if AsType(RESULTAT) == evol_ther : return evol_ther
- if AsType(RESULTAT) == evol_elas : return evol_elas
- if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_char : return evol_char
- if AsType(CHAM_NO_REFE) == cham_no_depl_r : return cham_no_depl_r
- if AsType(CHAM_NO_REFE) == cham_no_depl_c : return cham_no_depl_c
- if AsType(CHAM_NO_REFE) == cham_no_pres_c : return cham_no_pres_c
- if AsType(CHAM_NO_REFE) == cham_no_temp_r : return cham_no_temp_r
- if AsType(CHAM_NO_REFE) == cham_no_epsi_r : return cham_no_epsi_r
- if AsType(CHAM_NO_REFE) == cham_no_sief_r : return cham_no_sief_r
- 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-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",
- into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ),
- b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')",
- fr="Lissage d'un nuage de points",
- CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,
- cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
- CHAM_NO_REFE =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,
- cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
- ),
- b_elem =BLOC(condition="METHODE=='ELEM'",
- fr="Utilisation des fonctions de forme du maillage initial",
- regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
- EXCLUS('TOUT_CHAM','NOM_CHAM',), ),
- RESULTAT =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,evol_char) ),
- 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',max='**'),
-
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
- LIST_ORDRE =SIMP(statut='f',typ=listis),
- INST =SIMP(statut='f',typ='R',max='**' ),
- LIST_INST =SIMP(statut='f',typ=listr8),
- FREQ =SIMP(statut='f',typ='R',max='**' ),
- LIST_FREQ =SIMP(statut='f',typ=listr8),
- ),
-
- 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,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,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/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.
-# ======================================================================
-def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_gene_r
- if AsType(MATR_ASSE_GENE) == matr_asse_gene_r : return matr_asse_gene_r
- if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_gene_c
- if AsType(MATR_ASSE_GENE) == matr_asse_gene_c : return matr_asse_gene_c
- raise AsException("type de concept resultat non prevu")
-
-PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod,
- fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)",
- 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 =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/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.
-# ======================================================================
-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',
- 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) ),
- 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",) ),
- ),
- 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',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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=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'),),
- 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 ),
- FREQ_INIT =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- FREQ_FIN =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- NB_POIN =SIMP(statut='f',typ='I' ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
- GROUP_MA =SIMP(statut='f',typ=grma),
-# Quel est le type attendu derriere MODELE_INTERFACE
- MODELE_INTERFACE=SIMP(statut='f',typ=modele),
- VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ),
- ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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 ),
- 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/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.
-# ======================================================================
-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=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',max='**' ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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,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",) ),
- CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
- INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
- ) ;
-#& MODIF COMMANDE DATE 09/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.
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None,
- RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None,
- TYPE_RESU=None,**args):
- if AsType(RESULTAT) == dyna_harmo : return fonction_c
-# On ne sait pas interpreter les deux conditions suivantes
- if TABLE != None :
- if TYPE_RESU != None :
- if TYPE_RESU == "FONCTION_C" : return fonction_c
- if TYPE_RESU == "FONCTION" : return fonction
- else:
- return fonction
- if RESU_GENE != None : return fonction
- if BASE_ELAS_FLUI != None : return fonction
- if RESULTAT != None : return fonction
- if CHAM_GD != None : return fonction
- if OBSTACLE != None : return fonction
- raise AsException("type de concept resultat non prevu")
-
-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,
- cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_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
- TABLE =SIMP(statut='f',typ=table),
- BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu),
- REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ),
- OBSTACLE =SIMP(statut='f',typ=obstacle),
-
- 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'),
- 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' ),
- SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- ),
- b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",
- fr="Récupération de la fonction à partir d un concept melasflu",
- regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',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") ),
- ),
- b_table = BLOC ( condition = "TABLE != None",fr="Récupération de la fonction à partir d un concept table",
- regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
- PRESENT_PRESENT('PARA_X','PARA_Y'),),
- PARA_X =SIMP(statut='f',typ='TXM',
- fr="1ère colonne de la table qui définit la fonction à récupérer", ),
- PARA_Y =SIMP(statut='f',typ='TXM',
- fr="2ème colonne de la table qui définit la fonction à récupérer", ),
- NOM_PARA_TABL =SIMP(statut='f',typ='TXM',into=("FONCTION",),
- fr="Nom du paramètre de la table à qui est associé la fonction" ),
- b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None",
- TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ),
- ),
-
- FILTRE =FACT(statut='f',min=1,max='**',
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ",
- into=("EQ","LT","GT","NE","LE","GE","VIDE",
- "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
- b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
- regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- VALE_K =SIMP(statut='f',typ='TXM' ),),
-
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- ),
-# RESULTAT
- b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
- regles=(
-# A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
-# UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),
- AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC','NOM_PARA_RESU'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),
- UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
- 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- 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',max=2,into=("NON","LIN") ),
- ),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- SOUS_POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
-# RESU_GENE
- b_resu_gene = BLOC ( condition = "RESU_GENE != None", fr="Opérandes en cas de RESU_GENE",
-# A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
-# 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',max='**'),
- LIST_ORDRE =SIMP(statut='f',typ=listis ),
- TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',max='**'),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- 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',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'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- SOUS_POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
- ),
-# CHAM_GD
- b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
-
- regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
- PRESENT_PRESENT('MAILLE','NOM_CMP'),
- PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- EXCLUS('POINT','NOEUD'),
- EXCLUS('GROUP_MA','MAILLE'),
- EXCLUS('GROUP_NO','NOEUD'),
- EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
- NOM_CMP =SIMP(statut='f',typ='TXM' ),
-
- MAILLE =SIMP(statut='f',typ=ma),
- GROUP_MA =SIMP(statut='f',typ=grma),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
- POINT =SIMP(statut='f',typ='I' ),
- SOUS_POINT =SIMP(statut='f',typ='I' ),
- NOEUD_CHOC =SIMP(statut='f',typ=no),
- GROUP_NO_CHOC =SIMP(statut='f',typ=grno),
- ),
-###
- NOM_PARA =SIMP(statut='f',typ='TXM',
- into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
- "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC") ),
- NOM_RESU =SIMP(statut='f',typ='TXM' ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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' ),
- NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
- INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# 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 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.
-# ======================================================================
-def reso_grad_prod(MATR_ASSE,**args ):
- if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
- if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
- if AsType(MATR_ASSE) == matr_asse_pres_r : return cham_no_pres_r
- raise AsException("type de concept resultat non prevu")
-
-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 ) ),
- MATR_FACT =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
- REPRISE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def reso_ldlt_prod(CHAM_NO,**args ):
- if AsType(CHAM_NO) == cham_no_temp_r : return cham_no_temp_r
- if AsType(CHAM_NO) == cham_no_depl_r : return cham_no_depl_r
- if AsType(CHAM_NO) == cham_no_pres_r : return cham_no_pres_r
- if AsType(CHAM_NO) == cham_no_temp_c : return cham_no_temp_c
- if AsType(CHAM_NO) == cham_no_depl_c : return cham_no_depl_c
- if AsType(CHAM_NO) == cham_no_pres_c : return cham_no_pres_c
- raise AsException("type de concept resultat non prevu")
-
-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,
- cham_no_temp_c,cham_no_depl_c,cham_no_pres_c) ),
- CHAM_CINE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_c) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& 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.
-# ======================================================================
-# RESPONSABLE BOYERE E.BOYERE
-def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ):
- if AsType(RESU_GENE) == tran_gene : return dyna_trans
- if AsType(RESU_GENE) == mode_gene : return mode_meca
- if AsType(RESU_GENE) == mode_cycl : return mode_meca
- if AsType(RESU_GENE) == harm_gene : return dyna_harmo
- if AsType(RESULTAT) == mode_meca : return mode_meca
- raise AsException("type de concept resultat non prevu")
-
-REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod,
- fr="Restituer dans la base physique des résultats en coordonnées généralisées",
- 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
- EXCLUS('MULT_APPUI','CORR_STAT'),
- EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
- EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),
- EXCLUS('NOEUD','GROUP_NO'),
- PRESENT_PRESENT('RESULTAT','SQUELETTE'),
- PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
- RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene ) ),
- RESULTAT =SIMP(statut='f',typ=mode_meca ),
-
- MODE_MECA =SIMP(statut='f',typ=mode_meca ),
- TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ),
- TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- INST =SIMP(statut='f',typ='R',max='**' ),
- LIST_INST =SIMP(statut='f',typ=listr8 ),
- 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',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,max='**'),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
-
- ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction),
- 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/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.
-# ======================================================================
-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=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=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=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/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.
-# ======================================================================
-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 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.
-# ======================================================================
-# RESPONSABLE ADBHHVV V.CANO
-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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- 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","FIXE_PILO","SUIV","DIDI")),
- ),
- VARI_COMM =FACT(statut='f',
- regles=(AU_MOINS_UN('IRRA',),),
- IRRA =SIMP(statut='f',typ=evol_varc),
- ),
- COMP_INCR =FACT(statut='f',min=1,max='**',
- RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
- into=( "ELAS",
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ECMI_TRAC",
- "VMIS_ECMI_LINE",
- "LABORD_1D",
- "ENDO_FRAGILE",
- "ENDO_ISOT_BETON",
- "MAZARS",
- "RUPT_FRAG",
- "BARENBLATT",
- "META_P_IL",
- "META_P_IL_PT",
- "META_P_IL_RE",
- "META_P_IL_PT_RE",
- "META_V_IL",
- "META_V_IL_PT",
- "META_V_IL_RE",
- "META_V_IL_PT_RE",
- "META_P_INL",
- "META_P_INL_PT",
- "META_P_INL_RE",
- "META_P_INL_PT_RE",
- "META_V_INL",
- "META_V_INL_PT",
- "META_V_INL_RE",
- "META_V_INL_PT_RE",
- "META_P_CL",
- "META_P_CL_PT",
- "META_P_CL_RE",
- "META_P_CL_PT_RE",
- "META_V_CL",
- "META_V_CL_PT",
- "META_V_CL_RE",
- "META_V_CL_PT_RE",
- "VMIS_CINE_LINE",
- "VISC_TAHERI",
- "CHABOCHE",
- "VISCOCHAB",
- "VISC_CIN1_CHAB",
- "VISC_CIN2_CHAB",
- "POLY_CFC",
- "LMARC",
- "ROUSSELIER",
- "ROUSS_PR",
- "ROUSS_VISC",
- "VMIS_POU_LINE",
- "VMIS_POU_FLEJOU",
- "COULOMB",
- "ARME",
- "ASSE_CORN",
- "NORTON_HOFF",
- "LEMAITRE",
- "ZIRC_CYRA2",
- "ZIRC_EPRI",
- "ASSE_COMBU",
- "VENDOCHAB",
- "NADAI_B",
- "DIS_CONTACT",
- "DIS_CHOC",
- "DIS_GOUJ2E_PLAS",
- "DIS_GOUJ2E_ELAS",
- "GRILLE_ISOT_LINE",
- "GRILLE_CINE_LINE",
- "GRILLE_PINTO_MEN",
- "PINTO_MENEGOTTO",
- "CJS",
- "CAM_CLAY",
- "LAIGLE",
- "OHNO",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "GRANGER_FD",
- "BETON_DOUBLE_DP",
- "KIT_HM",
- "KIT_HHM",
- "KIT_THH",
- "KIT_THV",
- "KIT_THM",
- "KIT_THHM",
- "VMIS_ASYM_LINE",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "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=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_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- 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",
- "CAM_CLAY",
- "LAIGLE",
- "ELAS_THM",
- "SURF_ETAT_NSAT",
- "SURF_ETAT_SATU",
- "CAM_CLAY_THM",
-# THMC
- "GAZ",
- "LIQU_SATU",
- "LIQU_SATU_GAT",
- "LIQU_GAZ_ATM",
- "LIQU_VAPE_GAZ",
- "LIQU_VAPE",
- "LIQU_NSAT_GAT",
- "LIQU_GAZ",
-# THER
- "THER_HOMO",
- "THER_POLY",
-# HYDR
- "HYDR_UTIL",
- "HYDR",
-# MECA_META
- "ACIER",
- "ZIRC",
-# MECA KIT_DDI
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ISOT_CINE",
- "GRANGER_FP",
- "GRANGER_FP_V",
- "ROUSSELIER",
- "CHABOCHE",
- "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,)),
- CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- 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=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=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,)),
- HYDR =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,)),
-
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,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")),
- 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,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- 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',),
- EXCLUS('EVOL_NOLI','VARI',),
- EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
- EXCLUS('NUME_ORDRE','INST'), ),
- DEPL =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',min=1,max=1,
- 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'),
- ),
- 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") ),
- PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0),
- REAC_ITER =SIMP(statut='f',typ='I',defaut=0),
- EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
- ),
- RECH_LINEAIRE =FACT(statut='f',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),
- ),
- 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),
- ETA_PILO_MAX =SIMP(statut='f',typ='R'),
- ETA_PILO_MIN =SIMP(statut='f',typ='R'),
- 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='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ),
- ),
- 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),
- 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")),
- ),
- PARM_THETA =SIMP(statut='f',typ='R'
- ,defaut= 1. ),
- 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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- 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',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',max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",
- "VARI_NON_LOCAL","LANL_ELGA")),
- ),
- 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',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',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,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- POINT =SIMP(statut='f',typ='I',max='**'),
- ),
- 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") ),
- ),
- 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","SANS","DIAG") ),
- 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',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'),
- R =SIMP(statut='f',typ='R',defaut= 1000.),
- ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10),
- ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- ) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# 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=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 ),
- 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",
- defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
- defaut= 1.E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
- ATTRIBUT =FACT(statut='f',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' ),
- CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ATTR =SIMP(statut='o',typ='TXM',
- into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
- "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
- ATTR_REFE =SIMP(statut='o',typ='TXM' ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
- TABL_INTSP =FACT(statut='f',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 ),
- NOEUD_I =SIMP(statut='f',typ=no),
- NUME_ORDRE_I =SIMP(statut='f',typ='I' ),
- b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None",
- NUME_ORDRE_J =SIMP(statut='o',typ='I' ),
- ),
- b_noeud_i = BLOC (condition = "NOEUD_I != None",
- NOEUD_J =SIMP(statut='o',typ=no),
- NOM_CMP_I =SIMP(statut='o',typ='TXM' ),
- NOM_CMP_J =SIMP(statut='o',typ='TXM' ),
- ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- VALE_PARA =SIMP(statut='o',typ='R' ),
- VALE_REFE_C =SIMP(statut='o',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
- defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
- defaut= 1.E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
- ),
-) ;
-#& MODIF COMMANDE DATE 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-TEST_RESU=PROC(nom="TEST_RESU",op=23,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=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,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'),
- VALE_C =SIMP(statut='f',typ='C'),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER")),
- VERSION =SIMP(statut='f',typ='TXM'),
- ),
-
- CHAM_ELEM =FACT(statut='f',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),# 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),# 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' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER") ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-
- RESU =FACT(statut='f',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'),
- PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
- EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
- PRESENT_PRESENT('NOEUD','NOM_CMP'),
- PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
- PRESENT_PRESENT('POINT','NOM_CMP'),
- UN_PARMI('VALE','VALE_I','VALE_C') ,),
- RESULTAT =SIMP(statut='o',typ=resultat),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),
- 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'),
- PARA =SIMP(statut='f',typ='TXM'),
- 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='**'),
- POINT =SIMP(statut='f',typ='I'),
- SOUS_POINT =SIMP(statut='f',typ='I'),
- TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
- VALE =SIMP(statut='f',typ='R'),
- VALE_I =SIMP(statut='f',typ='I'),
- VALE_C =SIMP(statut='f',typ='C'),
- CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
- PRECISION =SIMP(statut='f',typ='R',max=2),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER",) ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-
- OBJET =FACT(statut='f',max='**',
- regles=(UN_PARMI('INDICE','S_I','S_R','RESUME',),
- UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),),
- NOM =SIMP(statut='o',typ='TXM'),
- INDICE =SIMP(statut='f',typ='I'),
- NUM_OBJ =SIMP(statut='f',typ='I'),
- S_R =SIMP(statut='f',typ='R'),
- S_I =SIMP(statut='f',typ='I'),
- RESUME =SIMP(statut='f',typ='I'),
- VALE =SIMP(statut='f',typ='R'),
- VALE_I =SIMP(statut='f',typ='I'),
- VALE_C =SIMP(statut='f',typ='C'),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
- "NON_REGRESSION","AUTRE_ASTER",) ),
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-# 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
- TABLE =SIMP(statut='o',typ=table),
-
- FILTRE =FACT(statut='f',min=1,max='**',
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ",
- into=("EQ","LT","GT","NE","LE","GE","VIDE",
- "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
- b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
- regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- VALE_K =SIMP(statut='f',typ='TXM' ),),
-
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- ),
- TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
- NOM_PARA =SIMP(statut='o',typ='TXM' ),
- VALE =SIMP(statut='f',typ='R' ),
- VALE_I =SIMP(statut='f',typ='I' ),
- VALE_C =SIMP(statut='f',typ='C' ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ),
- REFERENCE =SIMP(statut='f',typ='TXM',
- into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
- b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
- VERSION =SIMP(statut='f',typ='TXM' ),
- ),
-) ;
-#& 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.
-# ======================================================================
-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),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem),
- EXCIT =FACT(statut='o',min=1,max='**',
- CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
- 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',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),
- CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r),
- VALE =SIMP(statut='f',typ='R'),
- NUME_INIT =SIMP(statut='f',typ='I'),
- ),
- 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',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',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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57),
- 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',max='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
- into=("RELATIF","ABSOLU")),
- PAS_ARCH =SIMP(statut='f',typ='I'),
- CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2)),
-) ;
-#& MODIF COMMANDE DATE 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.
-# ======================================================================
-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) ),
- CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ),
- COMP_THER_NL =FACT(statut='d',min=1,max='**',
- RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL",
- into=("THER_NL",
- "THER_HYDR",
- "SECH_GRANGER",
- "SECH_MENSI",
- "SECH_BAZANT",
- "SECH_NAPPE"
- ) ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- ),
- EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther),
- EXCIT =FACT(statut='o',min=1,max='**',
- CHARGE =SIMP(statut='o',typ=char_ther),
- FONC_MULT =SIMP(statut='f',typ=fonction),
- ),
- 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',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),
- CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r),
- VALE =SIMP(statut='f',typ='R'),
- NUME_INIT =SIMP(statut='f',typ='I'),
- ),
- 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',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),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters",
- ),
- 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_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT",
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
- ),
- b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
- fr="Parametres relatifs a la non inversibilité de la matrice a factorise",
- NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué",
- PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
- 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 ),
- ),
-# A quoi sert eps
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+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',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',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',max='**',
- into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-
-) ;
-#& 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.
-# ======================================================================
-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 ),
- EXCIT =FACT(statut='o',min=1,max='**',
- CHARGE =SIMP(statut='o',typ=char_ther ),
- FONC_MULT =SIMP(statut='c',typ=fonction ),
- ),
- 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',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',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") ),
- ),
- 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","SANS","DIAG") ),
- 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 ),
- ),
- EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**' ),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-
-
-
+++ /dev/null
-#@ MODIF ops Cata DATE 23/10/2002 AUTEUR DURAND C.DURAND
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-# Modules Python
-import types
-import string,linecache,os,traceback,re
-
-# Modules Eficas
-import Accas
-from Accas import ASSD
-
-try:
- import aster
- # Si le module aster est présent, on le connecte
- # au JDC
- import Build.B_CODE
- Build.B_CODE.CODE.codex=aster
-except:
- pass
-
-def DEBUT(self,PAR_LOT,**args):
- """
- Fonction sdprod de la macro DEBUT
- """
- self.jdc.set_par_lot(PAR_LOT)
-
-def POURSUITE(self,PAR_LOT,**args):
- """
- Fonction sdprod de la macro POURSUITE
- """
- self.jdc.set_par_lot(PAR_LOT)
- if self.codex and os.path.isfile("glob.1"):
- # Le module d'execution est accessible et glob.1 est present
- if hasattr(self,'fichier_init'):return
- self.fichier_init='glob.1'
- self.jdc.initexec()
- lot,ier,lonuti,concepts=self.codex.poursu(self,1)
- self.icmd=lonuti
- #print "Fin de debut",ier,lot,lonuti
- pos=0
- d={}
- while pos+80 < len(concepts)+1:
- nomres=concepts[pos:pos+8]
- concep=concepts[pos+8:pos+24]
- nomcmd=concepts[pos+24:pos+40]
- statut=concepts[pos+40:pos+48]
- if nomres[0] not in (' ','.','&') and statut != '&DETRUIT':
- exec nomres+'='+string.lower(concep)+'()' in self.parent.g_context,d
- pos=pos+80
- for k,v in d.items():
- self.parent.NommerSdprod(v,k)
- self.g_context=d
- return
- else:
- # Si le module d'execution n est pas accessible ou glob.1 absent on
- # demande un fichier (EFICAS)
- # Il faut éviter de réinterpréter le fichier à chaque appel de
- # POURSUITE
- if hasattr(self,'fichier_init'):
- return
- self.make_poursuite()
-
-def POURSUITE_context(self,d):
- """
- Fonction op_init de la macro POURSUITE
- """
- # self représente la macro POURSUITE ...
- d.update(self.g_context)
- # Une commande POURSUITE n'est possible qu'au niveau le plus haut
- # On ajoute directement les concepts dans le contexte du jdc
- # XXX est ce que les concepts ne sont pas ajoutés plusieurs fois ??
- for v in self.g_context.values():
- if isinstance(v,ASSD) : self.jdc.sds.append(v)
-
-def INCLUDE(self,UNITE,**args):
- """
- Fonction sd_prod pour la macro INCLUDE
- """
- if not UNITE : return
- if hasattr(self,'unite'):return
- self.unite=UNITE
-
- if self.jdc and self.jdc.par_lot == 'NON':
- # On est en mode commande par commande
- # On teste la validite de la commande avec interruption eventuelle
- cr=self.report()
- self.parent.cr.add(cr)
- if not cr.estvide():
- raise EOFError
-
- self.make_include(unite=UNITE)
-
-def INCLUDE_context(self,d):
- """
- Fonction op_init pour macro INCLUDE
- """
- for k,v in self.g_context.items():
- d[k]=v
-
-def detruire(self,d):
- """
- Cette fonction est la fonction op_init de la PROC DETRUIRE
- """
- sd=[]
- for mc in self["CONCEPT"]:
- mcs=mc["NOM"]
- if type(mcs) == types.ListType or type(mcs) == types.TupleType:
- for e in mcs:
- if isinstance(e,ASSD):
- sd.append(e)
- e=e.nom
- if d.has_key(e):del d[e]
- if self.jdc.sds_dict.has_key(e):del self.jdc.sds_dict[e]
- else:
- if isinstance(mcs,ASSD):
- sd.append(mcs)
- mcs=mcs.nom
- if d.has_key(mcs):del d[mcs]
- if self.jdc.sds_dict.has_key(mcs):del self.jdc.sds_dict[mcs]
- for s in sd:
- # On signale au parent que le concept s n'existe plus apres l'étape self
- self.parent.delete_concept_after_etape(self,s)
-
-def subst_materiau(text,NOM_MATER,EXTRACTION):
- """
- Cette fonction retourne un texte obtenu à partir du texte passé en argument (text)
- en substituant le nom du materiau par NOM_MATER
- et en réalisant les extractions spéciifées dans EXTRACTION
- """
- lines=string.split(text,'\n')
- if EXTRACTION:
- ll=[]
- regmcf=re.compile(r" *(.*) *= *_F\( *## +(.*) +(.*)")
- regmcs=re.compile(r" *(.*) *= *([^ ,]*) *, *## +([^ ]*) *([^ ]*)")
- regfin=re.compile(r" *\) *")
- temps={};lmcf=[]
- for e in EXTRACTION:
- mcf=e['COMPOR']
- lmcf.append(mcf)
- temps[mcf]=e['TEMP_EVAL']
- FLAG=0
- for l in lines:
- m=regmcf.match(l)
- if m: # On a trouve un mot cle facteur "commentarise"
- if m.group(2) == "SUBST": # il est de plus substituable
- if temps.has_key(m.group(3)): # Il est a substituer
- ll.append(" "+m.group(3)+"=_F(")
- mcf=m.group(3)
- TEMP=temps[mcf]
- FLAG=1 # Indique que l'on est en cours de substitution
- else: # Il n est pas a substituer car il n est pas dans la liste demandee
- ll.append(l)
- else: # Mot cle facteur commentarise non substituable
- ll.append(l)
- else: # La ligne ne contient pas un mot cle facteur commentarise
- if FLAG == 0: # On n est pas en cours de substitution
- ll.append(l)
- else: # On est en cours de substitution. On cherche les mots cles simples commentarises
- m=regmcs.match(l)
- if m: # On a trouve un mot cle simple commentarise
- if m.group(3) == "EVAL":
- ll.append(" "+m.group(1)+' = EVAL("'+m.group(4)+"("+str(TEMP)+')"),')
- elif m.group(3) == "SUPPR":
- pass
- else:
- ll.append(l)
- else: # On cherche la fin du mot cle facteur en cours de substitution
- m=regfin.match(l)
- if m: # On l a trouve. On le supprime de la liste
- FLAG=0
- del temps[mcf]
- ll.append(l)
- else:
- ll=lines
-
- for l in ll:
- print l
- lines=ll
- ll=[]
- for l in lines:
- l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1)
- ll.append(l)
- text=string.join(ll,'\n')
- return text
-
-def INCLUDE_MATERIAU(self,NOM_AFNOR,TYPE_MODELE,VARIANTE,TYPE_VALE,NOM_MATER,
- EXTRACTION,INFO,**args):
- """
- Fonction sd_prod pour la macro INCLUDE_MATERIAU
- """
- mat=string.join((NOM_AFNOR,'_',TYPE_MODELE,'_',VARIANTE,'.',TYPE_VALE),'')
- if not hasattr(self,'mat') or self.mat != mat or self.nom_mater != NOM_MATER :
- # On récupère le répertoire des matériaux dans les arguments
- # supplémentaires du JDC
- rep_mat=self.jdc.args.get("rep_mat","NOrep_mat")
- f=os.path.join(rep_mat,mat)
- self.mat=mat
- self.nom_mater=NOM_MATER
- if not os.path.isfile(f):
- del self.mat
- self.make_contexte(f,"#Texte sans effet pour reinitialiser le contexte a vide\n")
- raise "Erreur sur le fichier materiau: "+f
- # Les materiaux sont uniquement disponibles en syntaxe Python
- # On lit le fichier et on supprime les éventuels \r
- text=string.replace(open(f).read(),'\r\n','\n')
- # On effectue les substitutions necessaires
- self.prefix=NOM_MATER
- self.text= subst_materiau(text,NOM_MATER,EXTRACTION)
- if INFO == 2:
- print "INCLUDE_MATERIAU: ", self.mat,' ',NOM_MATER,'\n'
- print self.text
- # on execute le texte fourni dans le contexte forme par
- # le contexte de l etape pere (global au sens Python)
- # et le contexte de l etape (local au sens Python)
- # Il faut auparavant l'enregistrer aupres du module linecache (utile pour nommage.py)
- linecache.cache[f]=0,0,string.split(self.text,'\n'),f
- if self.jdc.par_lot == 'NON':
- # On est en mode commande par commande
- # On teste la validite de la commande avec interruption eventuelle
- cr=self.report()
- self.parent.cr.add(cr)
- if not cr.estvide():
- raise EOFError
- # Et en plus il faut executer la fonction ops014 avant les sous
- # commandes car le prefixe PRFXCO doit etre initialise dans le Fortran
- self.codex.opsexe(self,0,-1,-self.definition.op)
-
- self.make_contexte(f,self.text)
-
+++ /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 et _pickled.py
-
-
-
-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.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_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_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_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_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_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_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
-# MODIF DATE 11/12/2001 AUTEUR DURAND C.DURAND
-# TITRE GUIDE D'ONDE A SORTIE ANECHOIQUE (ONDES PLANES) E.F. CLASSIQUES
-# 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.
-# ======================================================================
-# MODELISATION 'ACOUSTIQUE' AVEC ELEMENTS HEXA20 ET FACE8
-# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES
-#
-
-DEBUT(CODE=_F( NOM = 'AHLV100A') )
-
-F=500.
-
-MAIL=LIRE_MAILLAGE( )
-
-AIR=DEFI_MATERIAU( FLUIDE=_F( RHO = 1.3, CELE_C = ('RI',343.,0.,)))
-
-CHAMPMAT=AFFE_MATERIAU( MAILLAGE=MAIL,
- AFFE=_F( TOUT = 'OUI', MATER = AIR) )
-
-GUIDE=AFFE_MODELE( MAILLAGE=MAIL, VERIF='MAILLE',
- AFFE=_F( TOUT = 'OUI', MODELISATION = '3D',
- PHENOMENE = 'ACOUSTIQUE') )
-
-CHARACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- VITE_FACE=_F( GROUP_MA = 'ENTREE', VNOR = ('RI',0.014,0.,)))
-
-IMPEACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- IMPE_FACE=_F( GROUP_MA = 'SORTIE', IMPE = ('RI',445.9,0.,)))
-
-MACRO_MATR_ASSE(
- MODELE=GUIDE, CHARGE=IMPEACOU,
- CHAM_MATER=CHAMPMAT,
- NUME_DDL=CO("NUM"),MATR_ASSE=(
- _F( MATRICE = CO("MATASK"), OPTION = 'RIGI_ACOU'),
- _F( MATRICE = CO("MATASM"), OPTION = 'MASS_ACOU'),
- _F( MATRICE = CO("MATASI"), OPTION = 'AMOR_ACOU'))
- )
-
-#
-
-VECTELEM=CALC_VECT_ELEM( OPTION='CHAR_ACOU', CHAM_MATER=CHAMPMAT,
- CHARGE=CHARACOU )
-
-#
-# IMPRESSION DU VECT_ELEM COMPLEXE VECTELEM SELON LE GRAIN MAILLE
-#
-
-IMPR_MATRICE( MATR_ELEM=_F( MATRICE = VECTELEM,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'MAILLE'))
-
-VECTASS=ASSE_VECTEUR( VECT_ELEM=VECTELEM, NUME_DDL=NUM )
-
-#
-# ____________________CALCUL DES MODES_________________________________
-#
-
-MATASKR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASK, PARTIE = 'REEL', COEF_R = 1.))
-
-MATASMR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASM, PARTIE = 'REEL', COEF_R = 1.))
-
-#
-
-MODES=MODE_ITER_SIMULT( MATR_A=MATASKR,
- MATR_B=MATASMR,
- CALC_FREQ=_F( OPTION = 'BANDE',
- FREQ = ( 1., 1000.,))
- )
-
-TEST_RESU(RESU=(_F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 1, VALE = 171.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 2, VALE = 343.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 3, VALE = 514.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-2,
- NUME_ORDRE = 4, VALE = 686.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 5, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 6, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 7, VALE = 874.482),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 8, VALE = 923.556))
- )
-
-# ----------------------CALCUL DECOMPOSE-------------------------------
-#
-
-MATRES=COMB_MATR_ASSE( COMB_C=( _F( MATR_ASSE = MATASK,
- COEF_R = 1.),
- _F( MATR_ASSE = MATASM,
- COEF_R = -9869604.4),
- _F( MATR_ASSE = MATASI,
- COEF_C = ('RI',0.,3141.5926,)))
- )
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN NOEUD
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'NOEUD',
- OPTION = 'LIGNE'))
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN VALEUR
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'VALEUR',
- OPTION = 'LIGNE'))
-
-VECRES=COMB_CHAM_NO( COMB_C=_F( CHAM_NO = VECTASS,
- COEF_C = ('RI',0.,-3141.5926,))
- )
-
-MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES )
-
-VECRES=RESO_LDLT( reuse=VECRES, MATR_FACT=MATRES,
- CHAM_NO=VECRES
- )
-
-TEST_RESU(CHAM_NO=(
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-CHNODBEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-#
-
-PREEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PIMAG=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-#-----------------------CALCUL HARMONIQUE-------------------------------
-
-
-PRESHARM=DYNA_LINE_HARM( MATR_MASS=MATASM, MATR_RIGI=MATASK,
- MATR_AMOR=MATASI,
- FREQ=F,
- EXCIT=_F( VECT_ASSE = VECTASS, COEF_MULT = -1.,
- PUIS_PULS = 1, PHAS_DEG = 90.))
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_ACTI'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_REAC'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3,
- CRITERE = 'RELATIF'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-FIN()
-#
-#
+++ /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_3'
-# ==========Path du noyau local ====================
-path_Noyau=".."
-# ============================================================
-nom_distrib="Eficas"+version+"AsterSTA6"
-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('../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()
-
+++ /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
-
-import prefs
-
-rep_cata = os.path.join(prefs.REPINI,'Cata')
-
-# Accès à la documentation Aster
-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"
-# 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'),
- )
-
+++ /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 Code_Aster
-"""
-# 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='ASTER',fichier = sys.argv[1])
-else:
- # on veut ouvrir Eficas 'vide'
- eficas_go.lance_eficas(code='ASTER')
+++ /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'),
- ]
- ),
- ]
- }
-
+++ /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 = "6.3.20"
-date = "10/10/2002"
+++ /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_2'
-# ==========Path du noyau fourni par Aster====================
-path_Noyau="../../AccasAster"
-# ============================================================
-nom_distrib="Eficas"+version+"AsterSTA6"
-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('../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();
-% LECTURE DES PARAMETRES
-%
-
-
-% LECTURE DES TEMPS
-
-%cycle 1
-
-
-% LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS
-
-PRE_GIBI ();
-%
- ma1 = LIRE_MAILLAGE ();
-%
-&ma1 = DEFI_GROUP ( MAILLAGE : ma1
- CREA_GROUP_NO : (GROUP_MA : ( fixati
- appui
- lias_1
- lias_2
- ebguide
- maintien
- main_sup
- embo_sup
- tub_guid
- grilles
- embo_inf
- pieds
- crayons ))
- ) ;
-%
-% AFFECTATION DU MODELE
-%
- mo1 = AFFE_MODELE ( Maillage: ma1
- % crayons combustibles
- AFFE : ( GROUP_MA : crayons
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % tubes guides
- AFFE : ( GROUP_MA : tub_guid
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % embouts
- AFFE : ( GROUP_MA : (embo_sup, embo_inf)
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DKT'
- )
- % pieds
-
- AFFE : ( GROUP_MA : pieds
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
-
- % grilles
- AFFE : ( GROUP_MA : grilles
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % liaison grille crayon
- AFFE : ( GROUP_MA : li_gr_cr
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DIS_TR'
- )
- % liaison grille tube
- AFFE : ( GROUP_MA : li_gr_gu
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DIS_TR'
- )
- % systeme de maintien
- AFFE : ( GROUP_MA : maintien
- PHENOMENE:'MECANIQUE',
- MODELISATION:'POU_D_E'
- % MODELISATION:'POU_D_T'
- )
- );
-%
-% AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES
-%
- cara1 = AFFE_CARA_ELEM ( MODELE : mo1
-
-% Famille assemblage : numero_fam
-%
- % crayons
- POUTRE : ( GROUP_MA : cray
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % tube guide partie courante
- POUTRE : ( GROUP_MA : guid
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % tube guide partie retrecie
- POUTRE : ( GROUP_MA : retre
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % grilles
- POUTRE : ( GROUP_MA : ( gril_i )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- POUTRE : ( GROUP_MA : ( gril_e )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- ORIENTATION : ( GROUP_MA : (gril_i , gril_e )
- CARA : 'VECT_Y'
- VALE : (1. 0. 0.)
- )
- % systeme de maintien
- POUTRE : ( GROUP_MA : (mainti_y , mainti_z )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- ORIENTATION : ( GROUP_MA : (mainti_y )
- CARA : 'VECT_Y'
- VALE : (0. 1. 0.)
- )
- ORIENTATION : ( GROUP_MA : (mainti_z )
- CARA : 'VECT_Y'
- VALE : (0. 0. 1.)
- )
- % embout inferieur
- COQUE : ( GROUP_MA : eboinf
- EPAIS : 2.
- ANGL_REP : 90.
- )
- % pieds
- POUTRE : ( GROUP_MA : pi_ple
- SECTION : 'GENERALE'
- CARA : ( 'A' , 'IZ' , 'IY' , 'JX' )
- VALE : (1. 2. 3. 4.)
- )
- POUTRE : ( GROUP_MA : pi_tro
- SECTION : 'GENERALE'
- CARA : ( 'A' , 'IZ' , 'IY' , 'JX' )
- VALE : (1. 2. 3. 4. )
- )
- ORIENTATION : ( GROUP_MA : (pi_ple pi_tro )
- CARA : 'VECT_Y'
- VALE : (0. 1. 0.)
- )
-
- % embout superieur
- COQUE : ( GROUP_MA : ebosup
- EPAIS : 3.
- ANGL_REP : 90.
- )
-
- % liaison grille/crayon
- DISCRET : ( GROUP_MA : elasti
- CARA : 'K_TR_D_L'
- VALE : ( 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- )
- REPERE : 'LOCAL'
- )
- % liaison grille/tube guide
- DISCRET : ( GROUP_MA : rigid
- CARA : 'K_TR_D_L'
- VALE : ( 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- )
- REPERE : 'LOCAL'
- )
-
- ORIENTATION : ( GROUP_MA : (elasti
- rigid )
- CARA : 'VECT_Y'
- VALE : (1. 0. 0.) )
-
- );
-%
-% DEFINITION DES CHARGES ET CONDITIONS LIMITES
-% DEFINITION DES TEMPERATURES NODALES EVOLUTIVES
-%
- f_tp1_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
- f_tp2_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
- f_tp3_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
-
- chtem1_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles
- crayons)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp1_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION :(f_tp1_1,f_tp1_1,f_tp1_1))
- );
-
- chtem2_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles
- crayons)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp2_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION :(f_tp2_1,f_tp2_1,f_tp2_1))
- );
-
- chtem3_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp3_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION : (f_tp3_1,f_tp3_1,f_tp3_1))
- AFFE : ( GROUP_NO: crayons
- NOM_CMP : 'TEMP'
- FONCTION :f_tp3_1 )
- );
-
- chth_1 = CREA_RESU ( TYPE_RESU : 'EVOL_THER'
- NOM_CHAM : 'TEMP'
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 0. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 1000. )
- CHAM_GD : ( CHAM_NO : chtem2_1
- INST :2000. )
- CHAM_GD : ( CHAM_NO : chtem3_1
- INST : 3000. )
- CHAM_GD : ( CHAM_NO : chtem3_1
- INST : 4000. )
- CHAM_GD : ( CHAM_NO : chtem2_1
- INST : 5000. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 6000. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 7000. )
- );
-
-% Chargement: charges thermo-mecaniques
-% ----------------------------------------
-
- therm_1 = AFFE_CHAR_MECA ( MODELE: mo1
- TEMP_CALCULEE : chth_1
- );
-
-
-
-% DEFINITION DES CONDITIONS LIMITES
-% DES CONDITIONS DE CONTACT
-%
-% Chargement: pesanteur
-%
- pesant_1 = AFFE_CHAR_MECA ( MODELE : mo1
- PESANTEUR : (9.81 -1. 0. 0. )
- );
-
-%
-% Conditions aux limites
-%
- cl_per_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % embout inferieur encastrement
- DDL_IMPO : ( GROUP_NO : fixati
- DX : 0. DY:0. DZ : 0.
- DRX : 0. DRY : 0. DRZ : 0.
- )
- % embout inferieur appui simple
- DDL_IMPO : ( GROUP_NO : appui
- DX : 0.
- )
- % embout superieur liaison guidee
- DDL_IMPO : ( GROUP_NO : ebguide
- DY:0. DZ : 0.
- DRX : 0. DRY : 0. DRZ : 0.
- )
- % liaison systeme de maintien embout superieur
- DDL_IMPO : ( GROUP_NO : (lias_1, lias_2)
- DRX : 0.
- )
- % liaison systeme de maintien embout superieur
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DX' DDL_2 : 'DX'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DY' DDL_2 : 'DY'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DZ' DDL_2 : 'DZ'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DRY' DDL_2 : 'DRY'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DRZ' DDL_2 : 'DRZ'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- );
-%
- cl_ctc = AFFE_CHAR_MECA ( MODELE : mo1
-
-
- CONTACT : ( APPARIEMENT : 'NODAL'
- GROUP_MA_1 : eboinf
- GROUP_MA_2 : mcrbas
- VECT_NORM_2 : (-1. 0. 0.)
- )
- INFO : 1
- );
-%
-% Deplacement du systeme de maintien
-%
-cldi_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-
- cl_di_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % deplacement du systeme de maintien
- DDL_IMPO : ( GROUP_NO : main_sup
- DX : -1.
- )
- );
-
-% DEFINITION DES FORCES EXTERIEURES
-%
-% Fonction multiplicative de la force hydrodynamique normee
-%
-hydr_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-%
-% Profil des forces hydrodynamiques tubes guides a froid
-%
-
-
- hyfrtu_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 1.
- 5. 2. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Profil des forces hydrodynamiques crayon a froid
-%
-
-
- hyfrcr_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : (0. 1.
- 5. 2. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-
-% Chargement : Forces hydrodynamiques
-%
- hydr_1 = AFFE_CHAR_MECA ( MODELE : mo1
-
- % embout superieur
- FORCE_COQUE : ( GROUP_MA : ebosup
- FX : 10. )
- % embout inferieur
- FORCE_COQUE : ( GROUP_MA : eboinf
- FX : 10. )
- % grille superieure
- FORCE_POUTRE : ( GROUP_MA : (gril10 )
- FX : 10. )
- % grille inferieure
- FORCE_POUTRE : ( GROUP_MA : (gril1 )
- FX : 10. )
- % grille de melange
- FORCE_POUTRE : ( GROUP_MA : (gril2 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril3 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril4 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril5 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril6 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril7 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril8 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril9 )
- FX : 10. )
- );
- toto_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
- fohydr_1 = AFFE_CHAR_MECA_F ( MODELE : mo1
-
- % tubes guides et tube d'instrumentation
- FORCE_POUTRE : ( GROUP_MA : (guid )
- FX : toto_1 )
- % crayons
- FORCE_POUTRE : ( GROUP_MA : cray
- FX : toto_1 )
- );
-%
-% Profil des forces d'Archimede tube guide
-%
-
-
- arfrtu_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Profil des forces d'Archimede crayon
-%
-
-
- arfrcr_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Fonction multiplicative de la force d'Archimede
-%
-arch_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-%
-
-%
-% Chargement : Forces d'Archimede
-% ----------------------------------------
-%
- arch_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % systeme de maintien
- FORCE_POUTRE : ( GROUP_MA : maintien
- FX : 10. )
- % embout superieur
- FORCE_COQUE : ( GROUP_MA : ebosup
- FX : 10. )
- % embout inferieur
- FORCE_COQUE : ( GROUP_MA : eboinf
- FX : 10. )
- % grille superieure
- FORCE_POUTRE : ( GROUP_MA : (gril10 )
- FX : 10. )
- % grille inferieure
- FORCE_POUTRE : ( GROUP_MA : (gril1 )
- FX : 10. )
- % grille de melange
- FORCE_POUTRE : ( GROUP_MA : (gril2 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril3 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril4 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril5 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril6 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril7 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril8 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril9 )
- FX : 10. )
- );
- foarch_1 = AFFE_CHAR_MECA_F ( MODELE : mo1
-
- % tubes guides et tube d'instrumentation
- FORCE_POUTRE : ( GROUP_MA : guid
- FX : arch_f1 )
- % crayons
- FORCE_POUTRE : ( GROUP_MA : cray
- FX :arch_f1 )
- );
-%
-%
-% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON
-%
-%
-
-%
-%
-%
-% definition de la liste d'instants
-%
- l_frig = DEFI_LIST_REEL( Debut: 0.0
- Intervalle : (Jusqu_a: 1000. Nombre: 100)
- );
-%
-% Inrterpretation des fonctions
-%
-f1=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f2=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f3=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f4=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f5=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f6=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f7=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f8=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f9=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f10=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-
- frig1 = CALC_FONC_INTERP ( FONCTION : f1
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig2 = CALC_FONC_INTERP ( FONCTION : f2
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig3 = CALC_FONC_INTERP ( FONCTION : f3
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig4 = CALC_FONC_INTERP ( FONCTION : f4
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig5 = CALC_FONC_INTERP ( FONCTION : f5
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig6 = CALC_FONC_INTERP ( FONCTION : f6
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig7 = CALC_FONC_INTERP ( FONCTION : f7
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig8 = CALC_FONC_INTERP ( FONCTION : f8
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig9 = CALC_FONC_INTERP ( FONCTION : f9
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig10= CALC_FONC_INTERP ( FONCTION : f10
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
-%
-% DEFINITION DU FLUX NEUTRONIQUE RADIAL
-
-flux_f1=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00
- 9.74520E+05 4.53280E+05
- 2.63880E+06 2.07785E+06
- 4.08780E+06 3.51279E+06
- 5.42844E+06 4.85677E+06
- 7.24500E+06 6.67627E+06
- 8.85348E+06 8.27977E+06
- 1.04609E+07 9.87261E+06
- 1.22029E+07 1.15869E+07
- 1.39446E+07 1.32952E+07
- 1.41437E+07 1.34902E+07
- 1.55632E+07 1.48753E+07
- 1.72361E+07 1.65069E+07
- 1.79482E+07 1.71992E+07
- 1.81901E+07 1.74334E+07
- 1.81937E+07 1.74352E+07
- 1.81973E+07 1.74352E+07
- 1.82009E+07 1.74352E+07
- )
- ) ;
-% Definition du flux axial pour le cycle 1
-
-fluxax1 = LIRE_FONCTION ( UNITE : 60
- PROL_GAUCHE : 'CONSTANT'
- PROL_DROIT : 'CONSTANT'
- );
-
- fly_1_1 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 3.8032834757835D-07
- -8.8200000000000D-02 3.8083689458689D-07
- -7.5600000000000D-02 3.8296082621083D-07
- -6.3000000000000D-02 3.8584009971510D-07
- -5.0400000000000D-02 3.8946100427350D-07
- -3.7800000000000D-02 3.9259455128205D-07
- -2.5200000000000D-02 3.9258457977208D-07
- -1.2600000000000D-02 3.9294106125356D-07
- 0. 3.9399554843305D-07
- 1.2600000000000D-02 3.9293233618234D-07
- 2.5200000000000D-02 3.9256712962963D-07
- 3.7800000000000D-02 3.9256712962963D-07
- 5.0400000000000D-02 3.8942610398860D-07
- 6.3000000000000D-02 3.8579522792023D-07
- 7.5600000000000D-02 3.8290972222222D-07
- 8.8200000000000D-02 3.8077706552707D-07
- 1.0080000000000D-01 3.8026103988604D-07
- ) ) ;
-
- fly_1_2 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 4.3595566239316D-07
- -8.8200000000000D-02 4.3866542022792D-07
- -7.5600000000000D-02 4.4331463675214D-07
- -6.3000000000000D-02 4.4911556267806D-07
- -5.0400000000000D-02 4.5750658831909D-07
- -3.7800000000000D-02 4.6647222222222D-07
- -2.5200000000000D-02 4.6002938034188D-07
- -1.2600000000000D-02 4.6004309116809D-07
- 0. 4.6686235754986D-07
- 1.2600000000000D-02 4.6003311965812D-07
- 2.5200000000000D-02 4.6000943732194D-07
- 3.7800000000000D-02 4.6643981481481D-07
- 5.0400000000000D-02 4.5746420940171D-07
- 6.3000000000000D-02 4.4906445868946D-07
- 7.5600000000000D-02 4.4325356125356D-07
- 8.8200000000000D-02 4.3859686609687D-07
- 1.0080000000000D-01 4.3587838319088D-07
- ) ) ;
-
- fly_1_3 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 4.9431891025641D-07
- -8.8200000000000D-02 5.0005128205128D-07
- -7.5600000000000D-02 5.1337197293447D-07
- -6.3000000000000D-02 5.2915313390313D-07
- -5.0400000000000D-02 5.3788069800570D-07
- -3.7800000000000D-02 5.3504629629630D-07
- -2.5200000000000D-02 5.3221189458689D-07
- -1.2600000000000D-02 5.3136431623932D-07
- 0. 5.3135870726496D-07
- 1.2600000000000D-02 5.3135309829060D-07
- 2.5200000000000D-02 5.3218696581197D-07
- 3.7800000000000D-02 5.3500827991453D-07
- 5.0400000000000D-02 5.3782959401709D-07
- 6.3000000000000D-02 5.2909205840456D-07
- 7.5600000000000D-02 5.1330217236467D-07
- 8.8200000000000D-02 4.9997150997151D-07
- 1.0080000000000D-01 4.9423165954416D-07
- ) ) ;
-
- fly_1_4 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 5.5489957264957D-07
- -8.8200000000000D-02 5.6477884615385D-07
- -7.5600000000000D-02 5.9007781339031D-07
- -6.3000000000000D-02 5.9726415598291D-07
- -5.0400000000000D-02 6.0445049857550D-07
- -3.7800000000000D-02 5.9840776353276D-07
- -2.5200000000000D-02 5.8440651709402D-07
- -1.2600000000000D-02 5.8263906695157D-07
- 0. 5.9153240740741D-07
- 1.2600000000000D-02 5.8262660256410D-07
- 2.5200000000000D-02 5.8438034188034D-07
- 3.7800000000000D-02 5.9836663105413D-07
- 5.0400000000000D-02 6.0439316239316D-07
- 6.3000000000000D-02 5.9719497863248D-07
- 7.5600000000000D-02 5.8999679487179D-07
- 8.8200000000000D-02 5.6469159544160D-07
- 1.0080000000000D-01 5.5480110398860D-07
- ) ) ;
-
- fly_1_5 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.1267200854701D-07
- -8.8200000000000D-02 6.2962357549858D-07
- -7.5600000000000D-02 6.5655413105413D-07
- -6.3000000000000D-02 6.6164583333333D-07
- -5.0400000000000D-02 6.5190242165242D-07
- -3.7800000000000D-02 6.5212678062678D-07
- -2.5200000000000D-02 6.3746616809117D-07
- -1.2600000000000D-02 6.3547435897436D-07
- 0. 6.4509686609687D-07
- 1.2600000000000D-02 6.3546064814815D-07
- 2.5200000000000D-02 6.3743625356125D-07
- 3.7800000000000D-02 6.5207941595442D-07
- 5.0400000000000D-02 6.5183885327635D-07
- 6.3000000000000D-02 6.6156980056980D-07
- 7.5600000000000D-02 6.5646563390313D-07
- 8.8200000000000D-02 6.2952386039886D-07
- 1.0080000000000D-01 6.1256356837607D-07
- ) ) ;
-
- fly_1_6 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.5755128205128D-07
- -8.8200000000000D-02 6.8336253561254D-07
- -7.5600000000000D-02 6.9012072649573D-07
- -6.3000000000000D-02 6.9687891737892D-07
- -5.0400000000000D-02 6.9362571225071D-07
- -3.7800000000000D-02 6.9074768518519D-07
- -2.5200000000000D-02 6.8786965811966D-07
- -1.2600000000000D-02 6.8586413817664D-07
- 0. 6.8585603632479D-07
- 1.2600000000000D-02 6.8584793447293D-07
- 2.5200000000000D-02 6.8783600427350D-07
- 3.7800000000000D-02 6.9069720441595D-07
- 5.0400000000000D-02 6.9355840455840D-07
- 6.3000000000000D-02 6.9679789886040D-07
- 7.5600000000000D-02 6.9002412749288D-07
- 8.8200000000000D-02 6.8325035612536D-07
- 1.0080000000000D-01 6.5743162393162D-07
- ) ) ;
-
- fly_1_7 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.9684526353276D-07
- -8.8200000000000D-02 7.1406606125356D-07
- -7.5600000000000D-02 7.3236502849003D-07
- -6.3000000000000D-02 7.2076442307692D-07
- -5.0400000000000D-02 7.1793500712251D-07
- -3.7800000000000D-02 7.2835648148148D-07
- -2.5200000000000D-02 7.1444747150997D-07
- -1.2600000000000D-02 7.1130893874644D-07
- 0. 7.2107727920228D-07
- 1.2600000000000D-02 7.1129398148148D-07
- 2.5200000000000D-02 7.1441257122507D-07
- 3.7800000000000D-02 7.2830288461538D-07
- 5.0400000000000D-02 7.1786396011396D-07
- 6.3000000000000D-02 7.2067841880342D-07
- 7.5600000000000D-02 7.3226157407407D-07
- 8.8200000000000D-02 7.1395138888889D-07
- 1.0080000000000D-01 6.9671812678063D-07
- ) ) ;
-
- fly_1_8 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.3679362535613D-07
- -8.8200000000000D-02 7.5423130341880D-07
- -7.5600000000000D-02 7.7215633903134D-07
- -6.3000000000000D-02 7.5865740740741D-07
- -5.0400000000000D-02 7.5547774216524D-07
- -3.7800000000000D-02 7.6662464387464D-07
- -2.5200000000000D-02 7.5088461538462D-07
- -1.2600000000000D-02 7.4313924501424D-07
- 0. 7.4863230056980D-07
- 1.2600000000000D-02 7.4312054843305D-07
- 2.5200000000000D-02 7.5084722222222D-07
- 3.7800000000000D-02 7.6656730769231D-07
- 5.0400000000000D-02 7.5540170940171D-07
- 6.3000000000000D-02 7.5856267806268D-07
- 7.5600000000000D-02 7.7204415954416D-07
- 8.8200000000000D-02 7.5410790598291D-07
- 1.0080000000000D-01 7.3665776353276D-07
- ) ) ;
-
- fly_1_9 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.7370940170940D-07
- -8.8200000000000D-02 8.0144764957265D-07
- -7.5600000000000D-02 8.0374358974359D-07
- -6.3000000000000D-02 8.0603952991453D-07
- -5.0400000000000D-02 8.0238372507123D-07
- -3.7800000000000D-02 7.9936672008547D-07
- -2.5200000000000D-02 7.9634971509972D-07
- -1.2600000000000D-02 7.8317361111111D-07
- 0. 7.8316426282051D-07
- 1.2600000000000D-02 7.8315491452991D-07
- 2.5200000000000D-02 7.9631107549858D-07
- 3.7800000000000D-02 7.9930689102564D-07
- 5.0400000000000D-02 8.0230270655271D-07
- 6.3000000000000D-02 8.0593856837607D-07
- 7.5600000000000D-02 8.0362580128205D-07
- 8.8200000000000D-02 8.0131303418803D-07
- 1.0080000000000D-01 7.7356356837607D-07
- ) ) ;
-
- fly_1_10 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.9424198717949D-07
- -8.8200000000000D-02 8.1225925925926D-07
- -7.5600000000000D-02 8.3075516381766D-07
- -6.3000000000000D-02 8.1540651709402D-07
- -5.0400000000000D-02 8.1131071937322D-07
- -3.7800000000000D-02 8.2297489316239D-07
- -2.5200000000000D-02 8.0577403846154D-07
- -1.2600000000000D-02 7.9717236467236D-07
- 0. 8.0284615384615D-07
- 1.2600000000000D-02 7.9715117521368D-07
- 2.5200000000000D-02 8.0573165954416D-07
- 3.7800000000000D-02 8.2291257122507D-07
- 5.0400000000000D-02 8.1122845441595D-07
- 6.3000000000000D-02 8.1530306267806D-07
- 7.5600000000000D-02 8.3063051994302D-07
- 8.8200000000000D-02 8.1211841168091D-07
- 1.0080000000000D-01 7.9408742877493D-07
- ) ) ;
-
- fly_1_11 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.1647845441595D-07
- -8.8200000000000D-02 8.3510648148148D-07
- -7.5600000000000D-02 8.5487873931624D-07
- -6.3000000000000D-02 8.3969088319088D-07
- -5.0400000000000D-02 8.3502920227920D-07
- -3.7800000000000D-02 8.4651014957265D-07
- -2.5200000000000D-02 8.2973931623932D-07
- -1.2600000000000D-02 8.2549269943020D-07
- 0. 8.3637909544160D-07
- 1.2600000000000D-02 8.2547275641026D-07
- 2.5200000000000D-02 8.2969319800570D-07
- 3.7800000000000D-02 8.4644408831909D-07
- 5.0400000000000D-02 8.3493945868946D-07
- 6.3000000000000D-02 8.3957995014245D-07
- 7.5600000000000D-02 8.5474786324786D-07
- 8.8200000000000D-02 8.3495690883191D-07
- 1.0080000000000D-01 8.1631641737892D-07
- ) ) ;
-
- fly_1_12 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.3948272792023D-07
- -8.8200000000000D-02 8.7002546296296D-07
- -7.5600000000000D-02 8.7608564814815D-07
- -6.3000000000000D-02 8.8214583333333D-07
- -5.0400000000000D-02 8.7589245014245D-07
- -3.7800000000000D-02 8.7128872863248D-07
- -2.5200000000000D-02 8.6668500712251D-07
- -1.2600000000000D-02 8.6321616809117D-07
- 0. 8.6320432692308D-07
- 1.2600000000000D-02 8.6319248575499D-07
- 2.5200000000000D-02 8.6663764245014D-07
- 3.7800000000000D-02 8.7121705840456D-07
- 5.0400000000000D-02 8.7579647435897D-07
- 6.3000000000000D-02 8.8202617521368D-07
- 7.5600000000000D-02 8.7594667022792D-07
- 8.8200000000000D-02 8.6986716524217D-07
- 1.0080000000000D-01 8.3931196581197D-07
- ) ) ;
-
- fly_1_13 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5508315527066D-07
- -8.8200000000000D-02 8.7546616809117D-07
- -7.5600000000000D-02 9.0944533475783D-07
- -6.3000000000000D-02 9.1292663817664D-07
- -5.0400000000000D-02 8.9653721509972D-07
- -3.7800000000000D-02 8.9547275641026D-07
- -2.5200000000000D-02 8.7405644586895D-07
- -1.2600000000000D-02 8.7004789886040D-07
- 0. 8.8226549145299D-07
- 1.2600000000000D-02 8.7002546296296D-07
- 2.5200000000000D-02 8.7400534188034D-07
- 3.7800000000000D-02 8.9539672364672D-07
- 5.0400000000000D-02 8.9643376068376D-07
- 6.3000000000000D-02 9.1279825498576D-07
- 7.5600000000000D-02 9.0929576210826D-07
- 8.8200000000000D-02 8.7530288461538D-07
- 1.0080000000000D-01 8.5490491452991D-07
- ) ) ;
-
- fly_1_14 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5798237179487D-07
- -8.8200000000000D-02 8.6880893874644D-07
- -7.5600000000000D-02 9.0299750712251D-07
- -6.3000000000000D-02 9.0948646723647D-07
- -5.0400000000000D-02 9.1597542735043D-07
- -3.7800000000000D-02 9.0500302706553D-07
- -2.5200000000000D-02 8.8214084757835D-07
- -1.2600000000000D-02 8.7779825498575D-07
- 0. 8.8993732193732D-07
- 1.2600000000000D-02 8.7777207977208D-07
- 2.5200000000000D-02 8.8208974358974D-07
- 3.7800000000000D-02 9.0492325498576D-07
- 5.0400000000000D-02 9.1586574074074D-07
- 6.3000000000000D-02 9.0935434472934D-07
- 7.5600000000000D-02 9.0284294871795D-07
- 8.8200000000000D-02 8.6864066951567D-07
- 1.0080000000000D-01 8.5779665242165D-07
- ) ) ;
-
- fly_1_15 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5773557692308D-07
- -8.8200000000000D-02 8.6180893874644D-07
- -7.5600000000000D-02 8.7862838319088D-07
- -6.3000000000000D-02 8.9924074074074D-07
- -5.0400000000000D-02 9.0872489316239D-07
- -3.7800000000000D-02 9.0174545940171D-07
- -2.5200000000000D-02 8.9476602564103D-07
- -1.2600000000000D-02 8.9122364672365D-07
- 0. 8.9120993589744D-07
- 1.2600000000000D-02 8.9119622507123D-07
- 2.5200000000000D-02 8.9471118233618D-07
- 3.7800000000000D-02 9.0166132478632D-07
- 5.0400000000000D-02 9.0861146723647D-07
- 6.3000000000000D-02 8.9910363247863D-07
- 7.5600000000000D-02 8.7847257834758D-07
- 8.8200000000000D-02 8.6163693019943D-07
- 1.0080000000000D-01 8.5754362535613D-07
- ) ) ;
-
- fly_1_16 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5903935185185D-07
- -8.8200000000000D-02 8.5690046296296D-07
- -7.5600000000000D-02 8.5831018518519D-07
- -6.3000000000000D-02 8.6167307692308D-07
- -5.0400000000000D-02 8.7125320512821D-07
- -3.7800000000000D-02 8.8563586182336D-07
- -2.5200000000000D-02 8.7089298433048D-07
- -1.2600000000000D-02 8.6842877492877D-07
- 0. 8.7942111823362D-07
- 1.2600000000000D-02 8.6840135327635D-07
- 2.5200000000000D-02 8.7083814102564D-07
- 3.7800000000000D-02 8.8554985754986D-07
- 5.0400000000000D-02 8.7113977920228D-07
- 6.3000000000000D-02 8.6153846153846D-07
- 7.5600000000000D-02 8.5815313390313D-07
- 8.8200000000000D-02 8.5672471509972D-07
- 1.0080000000000D-01 8.5884116809117D-07
- ) ) ;
-
- fly_1_17 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.6388675213675D-07
- -8.8200000000000D-02 8.5563782051282D-07
- -7.5600000000000D-02 8.5087019230769D-07
- -6.3000000000000D-02 8.4755965099715D-07
- -5.0400000000000D-02 8.4761698717949D-07
- -3.7800000000000D-02 8.5133636039886D-07
- -2.5200000000000D-02 8.4844088319088D-07
- -1.2600000000000D-02 8.4633689458689D-07
- 0. 8.4644658119658D-07
- 1.2600000000000D-02 8.4630947293447D-07
- 2.5200000000000D-02 8.4838479344729D-07
- 3.7800000000000D-02 8.5125160256410D-07
- 5.0400000000000D-02 8.4750480769231D-07
- 6.3000000000000D-02 8.4742378917379D-07
- 7.5600000000000D-02 8.5071064814815D-07
- 8.8200000000000D-02 8.5545584045584D-07
- 1.0080000000000D-01 8.6368108974359D-07
- ) ) ;
-
- fluxrd1 = DEFI_NAPPE (
- NOM_PARA : 'Z'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- PARA : (
- -1.0080000000000D-01
- -8.8200000000000D-02
- -7.5600000000000D-02
- -6.3000000000000D-02
- -5.0400000000000D-02
- -3.7800000000000D-02
- -2.5200000000000D-02
- -1.2600000000000D-02
- 0.
- 1.2600000000000D-02
- 2.5200000000000D-02
- 3.7800000000000D-02
- 5.0400000000000D-02
- 6.3000000000000D-02
- 7.5600000000000D-02
- 8.8200000000000D-02
- 1.0080000000000D-01
- )
- FONCTION : (
- fly_1_1
- fly_1_2
- fly_1_3
- fly_1_4
- fly_1_5
- fly_1_6
- fly_1_7
- fly_1_8
- fly_1_9
- fly_1_10
- fly_1_11
- fly_1_12
- fly_1_13
- fly_1_14
- fly_1_15
- fly_1_16
- fly_1_17
- )
- );
-%
-% DEFINITION DES MATERIAUX ET AFFECTATIONS
-%
-% **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE ****
-%
-%
-
-
-% Famille assemblage : numero_fam
-%
-% Embout superieur
-
-e_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-nu_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-al_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
- mt_es = DEFI_MATERIAU ( ELAS_FO : ( E : e_es
- NU : nu_es
- ALPHA : al_es
- RHO : 7800.
- )
- );
-% Embout inferieur
-
-e_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-nu_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-al_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
- mt_ei = DEFI_MATERIAU ( ELAS_FO : ( E : e_ei
- NU : nu_ei
- ALPHA : al_ei
- RHO : 12.
- )
- );
- mt_rig = DEFI_MATERIAU ( ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0.)
- );
-% Fonction couple en fonction de drz pour la liaison grille/crayon
-
- fotrac= DEFI_FONCTION ( NOM_PARA : 'DRZ'
- VALE : ( 1. 1.
- 0. 0.
- 0. 0.
- 0. 0.
- )
- PROL_DROIT : 'LINEAIRE'
- PROL_GAUCHE: 'LINEAIRE' );
-
-
- mt_re1 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO:frig1
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re2 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig2
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re3 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig3
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re4 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig4
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re5 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig5
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re6 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig6
- EFFO_N_INIT :-35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re7 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig7
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re8 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig8
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re9 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO :frig9
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re10 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig10
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
-
-
-% Systeme de maintien
-
- e_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- nu_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- al_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- sy_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- ds_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- np_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mey_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mpy_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mez_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mpz_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (0. 1.
- 5. 2. )
- );
-
- cay_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- cby_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- caz_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- cbz_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- mpx_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-mt_ma = DEFI_MATERIAU ( ELAS_FO : ( E : e_ma
- NU : nu_ma
- ALPHA : al_ma
- RHO : 7800. )
- ECRO_LINE_FO: ( D_SIGM_EPSI:ds_ma
- SY : sy_ma )
- VMIS_POUTRE_FO: ( NP : np_ma
- MEY: mey_ma
- MPY: mpy_ma
- CAY: cay_ma
- CBY: cby_ma
- MEZ: mez_ma
- MPZ: mpz_ma
- CAZ: caz_ma
- CBZ: cbz_ma
- MPX: mpx_ma )
- );
-
-%
-% **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE ****
-%
-%
-
-% Grille
-
-
-
-e_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-e_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-nu_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-nu_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-% Tube guide
-
-e_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2.
- )
- );
-
-nu_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-
-
-
-% Crayon
-
-e_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2.
- )
- );
-
-nu_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-
-% GRANDISSEMENT DES GRILLES
-
-
-
-% Grilles extremes 1 et 10
-
-mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre
- NU : nu_gre
- ALPHA : al_gre
- RHO : 7800. )
- GRAN_IRRA:( FLUX_L :fluxax1
- FLUX_TN :fluxrd1
- FONC_MULT:flux_f1
- A : 0.
- S : 1. )
- LEMAITRE :( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 1. )
- );
-
-% Grilles de melange
-
-mt_grm1= DEFI_MATERIAU ( ELAS_FO : ( E : e_grm
- NU : nu_grm
- ALPHA : al_grm
- RHO : 7800. )
- GRAN_IRRA: ( FLUX_L :fluxax1
- FLUX_TN :fluxrd1
- FONC_MULT:flux_f1
- A : 0.
- S : 1. )
- LEMAITRE : (N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2. )
- );
-
-% Definition des materiaux viscoplastiques ( tubes et crayons )
-
-
-mt_tu1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_tu
- NU : nu_tu
- ALPHA : al_tu
- RHO : 7800. )
- GRAN_IRRA: ( FLUX_L : fluxax1
- FLUX_TN : fluxrd1
- FONC_MULT: flux_f1
- A : 0.
- S : 1.)
- LEMAITRE : ( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2.)
- );
-
-
- mt_cr1 = DEFI_MATERIAU (ELAS_FO : ( E : e_cr
- NU : nu_cr
- ALPHA : al_cr
- RHO :7800. )
- GRAN_IRRA: ( FLUX_L : fluxax1
- FLUX_TN : fluxrd1
- FONC_MULT: flux_f1
- A : 0.
- S : 1.)
- LEMAITRE : ( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2.)
-
- );
-
-%
-% AFFECTATION DES MATERIAUX A CHAUD - CYCLE
-%
-%
- a_mat_1 = AFFE_MATERIAU ( MAILLAGE : ma1
-
- % systeme de maintien
- AFFE : ( GROUP_MA : (mainti_y, mainti_z)
- MATER : mt_ma
- TEMP_REF: 100.
- )
- % grilles de melange
- AFFE : ( GROUP_MA : gril_i
- MATER : mt_grm1
- TEMP_REF: 100.
- )
- % grilles de extremes
- AFFE : ( GROUP_MA : gril_e
- MATER : mt_gre1
- TEMP_REF: 100.
- )
- % crayons combustibles
- AFFE : ( GROUP_MA : cray
- MATER : mt_cr1
- TEMP_REF: 100.
- )
- % tubes guides
- AFFE : ( GROUP_MA : guid
- MATER : mt_tu1
- TEMP_REF: 100.
- )
- % embout inferieur
- AFFE : ( GROUP_MA : eboinf
- MATER : mt_ei
- TEMP_REF: 100.
- )
- %pieds
- AFFE : ( GROUP_MA :(pi_ple, pi_tro)
- MATER : mt_ei
- TEMP_REF: 100.
- )
-
- % embout superieur
- AFFE : ( GROUP_MA : ebosup
- MATER : mt_es
- TEMP_REF: 100.
- )
- % liaison grille tubes guides
- AFFE : ( GROUP_MA : rigid
- MATER : mt_rig
- TEMP_REF: 100.
- )
-
- % liaison grille crayon
- AFFE : ( GROUP_MA : ela1
- MATER : mt_re1
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela2
- MATER : mt_re2
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela3
- MATER : mt_re3
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela4
- MATER : mt_re4
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela5
- MATER : mt_re5
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela6
- MATER : mt_re6
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela7
- MATER : mt_re7
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela8
- MATER : mt_re8
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela9
- MATER : mt_re9
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela10
- MATER : mt_re10
- TEMP_REF: 100.
- )
- );
-%
-
-
- L_INST_1 = DEFI_LIST_REEL(
- DEBUT: 0.0
- INTERVALLE : (JUSQU_A: 0.5 NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 1000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 2000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 3000. NOMBRE: 5 )
- INTERVALLE : (JUSQU_A: 4000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 5000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 6000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 7000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 8000. NOMBRE: 1 ));
-
- L_ARCH_1 = DEFI_LIST_REEL(
- DEBUT: 0.0
- INTERVALLE : (JUSQU_A: 0.5 NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 1000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 2000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 3000. NOMBRE: 5 )
- INTERVALLE : (JUSQU_A: 4000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 5000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 6000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 7000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 8000. NOMBRE: 1 ));
-
-%
-% CALCUL PHASE I A V DU CYCLE 1
-%
-
- RESU = STAT_NON_LINE( MODELE : mo1
- CHAM_MATER : a_mat_1
- CARA_ELEM : cara1
- EXCIT :( CHARGE : arch_1 FONC_MULT: arch_f1 )
- EXCIT :( CHARGE : foarch_1 FONC_MULT: arch_f1 )
- EXCIT :( CHARGE : hydr_1 FONC_MULT: hydr_f1 )
- EXCIT :( CHARGE : fohydr_1 FONC_MULT: hydr_f1 )
- EXCIT :( CHARGE : cl_di_1 FONC_MULT: cldi_f1 )
- EXCIT :( CHARGE : cl_per_1 )
- EXCIT :( CHARGE : cl_ctc )
- EXCIT :( CHARGE : pesant_1 )
- EXCIT :( CHARGE : therm_1 )
- COMP_INCR :(RELATION :'VMIS_POU_LINE'
- GROUP_MA : maintien)
- COMP_INCR :(RELATION :'ASSE_COMBU'
- GROUP_MA : (crayons tub_guid ))
- COMP_INCR :( RELATION :'DIS_CONTACT'
- GROUP_MA : li_gr_cr)
- COMP_INCR :(RELATION :'ELAS'
- COQUE_NCOU : 1
- GROUP_MA :(embo_inf embo_sup pieds
- grilles li_gr_gu ))
-
- INCREMENT :( LIST_INST : l_inst_1
- NUME_INST_FIN : 20
- )
-
- NEWTON : ( MATRICE : 'TANGENTE'
- REAC_ITER : 1 )
- RECH_LINEAIRE : (ITER_LINE_MAXI: 3)
- CONVERGENCE : (RESI_GLOB_RELA: 1.E-4
- ITER_GLOB_MAXI: 50
- ITER_INTE_MAXI: 500
- ARRET : 'OUI' )
- SOLVEUR : ( METHODE : 'MULT_FRONT'
- RENUM : 'MD' )
- PARM_THETA : 0.5
- ARCHIVAGE : ( LIST_INST : l_arch_1)
- );
-
-fin();
+++ /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"
+++ /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 Tkinter,ScrolledText
-import os, sys, string, traceback
-import code
-
-sys.ps1 = ">>> "
-sys.ps2 = "... "
-
-class PythonInterpreter( code.InteractiveConsole):
- def __init__( self, text, namespace = None):
- code.InteractiveConsole.__init__( self, namespace)
- self.text = text
-
- def showtraceback( self):
- start = self.text.pos + " - 1 lines"
- code.InteractiveConsole.showtraceback( self)
- end = self.text.pos
- self.text.tag_add( "exception", start, end)
-
-class InterpWindow(Tkinter.Toplevel):
- def __init__(self,namespace, parent=None):
- Tkinter.Toplevel.__init__(self,parent)
- self._initTkWidgets()
- self.stdout = self.stderr = self
- self.pos = '1.0'
- self.history = [ '' ]
- self.hpos = 0
- self.tabCount = 0
- self.shell = PythonInterpreter( self,namespace)
- self.write("Python %s on %s\n%s\n(%s)\n" %
- (sys.version, sys.platform, sys.copyright,
- self.__class__.__name__))
- self.write( sys.ps1)
- self.text.focus_set()
-
- def _initTkWidgets( self):
- self.text = ScrolledText.ScrolledText( self, bg = "white",fg="black", wrap="word")
- self.text.pack( fill='both', expand = 1)
- self.text.bind( '<KeyPress>', self.clearMsg)
- self.text.bind( '<Return>', self.inputhandler)
- self.text.bind( '<Up>', self.uphistory)
- self.text.bind( '<Down>', self.downhistory)
- self.text.bind( '<Control-a>', self.goto_sol)
- self.text.bind( '<Control-d>', self.sendeof)
- self.text.tag_config("exception", foreground = "red")
-
- def swapStdFiles(self):
- sys.stdout,self.stdout = self.stdout,sys.stdout
- sys.stderr,self.stderr = self.stderr,sys.stderr
-
- def write(self, data):
- self.text.insert("end", data)
- self.pos = self.text.index("end - 1 char")
- self.text.yview_pickplace("end")
-
- def tag_add( self, tag, start, end):
- self.text.tag_add( tag, start, end)
-
- def inputhandler(self, *args):
- # Remove any extraneous stuff
- self.text.delete( self.pos + " lineend", "end")
- # Now get the line
- line = self.text.get(self.pos, "end - 1 char")
- self.text.insert("end", "\n")
- self.pos = self.text.index("end")
- self.addHistory( line)
- self.swapStdFiles()
- if self.shell.push( line):
- self.write(sys.ps2)
- else:
- self.write(sys.ps1)
- self.swapStdFiles()
- self.text.mark_set("insert", "end")
- return "break"
-
- def addHistory( self, line):
- if line:
- self.history.insert( len( self.history) - 1, line)
- self.hpos = len( self.history) - 1
-
- def sendeof(self, *args):
- self.destroy()
- return "break"
-
- def uphistory(self, event=None):
- if not self.history: return "break"
-
- if self.hpos > 0:
- self.hpos = self.hpos - 1
-
- line = self.history[ self.hpos]
- self.text.delete( self.pos, "end")
- self.text.insert( self.pos, line)
-
- return "break"
-
- def downhistory( self, event=None):
- if not self.history: return "break"
-
- if self.hpos < (len( self.history) - 1):
- self.hpos = self.hpos + 1
-
- line = self.history[ self.hpos]
- self.text.delete( self.pos, "end")
- self.text.insert( self.pos, line)
-
- return "break"
-
- def goto_sol( self, event=None):
- """
- Met en mode edition la ligne courante
- """
- self.text.mark_set( 'insert', 'insert linestart + 4 chars')
- return "break"
-
- def clearMsg( self, event=None):
- index = self.text.index( "insert")
- self.text.delete( "insert lineend", "end")
- self.tabCount = 0
-
-if __name__ == "__main__":
- app = Tkinter.Tk()
- d={'a':1}
-
- def go():
- InterpWindow(d,parent=app)
-
- Tkinter.Button(app,text="Interp",command=go).pack()
- Tkinter.Button(app,text="Quit",command=app.destroy).pack()
-
- app.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.
-#
-#
-# ======================================================================
-"""
-"""
-# import généraux
-import types,string,os,glob,imp,sys
-from repr import Repr
-from copy import copy,deepcopy
-
-myrepr = Repr()
-myrepr.maxstring = 100
-myrepr.maxother = 100
-
-class TreeItem:
-
- """Abstract class representing tree items.
-
- Methods should typically be overridden, otherwise a default action
- is used.
-
- """
-
- def __init__(self):
- """Constructor. Do whatever you need to do."""
-
- def GetText(self):
- """Return text string to display."""
-
- def GetLabelText(self):
- """Return label text string to display in front of text (if any)."""
-
- expandable = None
-
- def _IsExpandable(self):
- """Do not override! Called by TreeNode."""
- if self.expandable is None:
- self.expandable = self.IsExpandable()
- return self.expandable
-
- def IsExpandable(self):
- """Return whether there are subitems."""
- return 1
-
- def _GetSubList(self):
- """Do not override! Called by TreeNode."""
- if not self.IsExpandable():
- return []
- sublist = self.GetSubList()
- if not sublist:
- self.expandable = 0
- return sublist
-
- def IsEditable(self):
- """Return whether the item's text may be edited."""
-
- def SetText(self, text):
- """Change the item's text (if it is editable)."""
-
- def GetIconName(self):
- """Return name of icon to be displayed normally."""
-
- def GetSelectedIconName(self):
- """Return name of icon to be displayed when selected."""
-
- def GetSubList(self):
- """Return list of items forming sublist."""
-
- def OnDoubleClick(self):
- """Called on a double-click on the item."""
-
-class Delegate:
- def __init__(self, delegate=None):
- self.object = delegate
- self.__cache = {}
-
- def setdelegate(self, delegate):
- self.resetcache()
- self.object = delegate
-
- def getdelegate(self):
- return self.object
-
- def __getattr__(self, name):
- attr = getattr(self.object, name) # May raise AttributeError
- setattr(self, name, attr)
- self.__cache[name] = attr
- return attr
-
- def resetcache(self):
- for key in self.__cache.keys():
- try:
- delattr(self, key)
- except AttributeError:
- pass
- self.__cache.clear()
-
- def cachereport(self):
- keys = self.__cache.keys()
- keys.sort()
- print keys
-
-
-class ObjectTreeItem(TreeItem,Delegate):
- def __init__(self, appli, labeltext, object, setfunction=None):
- self.labeltext = labeltext
- self.appli = appli
- Delegate.__init__(self,object)
- #self.object = object
- self.setfunction = setfunction
- self.expandable = 1
- self.init()
-
- def init(self):
- return
-
- def copy(self):
- """
- Crée un item copie de self
- """
- object = self.object.copy()
- appli = copy(self.appli)
- labeltext = copy(self.labeltext)
- fonction = deepcopy(self.setfunction)
- item = make_objecttreeitem(appli,labeltext,object,fonction)
- return item
-
- def isactif(self):
- if hasattr(self.object,'actif'):
- return self.object.actif
- else:
- return 1
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- # None --> fonte et couleur par défaut
- return self.labeltext,None,None
-
- #def get_attribut(self,nom_attribut) :
- # """
- # Retourne l'attribut de nom nom_attribut de l'objet sur lequel
- # pointe self s'il existe, None sinon
- # """
- # return self.object.get_attribut(nom_attribut)
-
- def get_nature(self) :
- """
- Retourne la nature de l'item et de l'objet
- """
- return self.object.nature
-
- def get_regles(self):
- """ retourne les règles de l'objet pointé par self """
- return self.object.get_regles()
-
- def get_liste_mc_presents(self):
- """ Retourne la liste des mots-clés fils de l'objet pointé par self """
- return self.object.liste_mc_presents()
-
- def get_val(self):
- """ Retourne le nom de la valeur de l'objet pointé par self dans le cas
- où celle-ci est un objet (ASSD) """
- return self.object.getval()
-
- def get_definition(self):
- """
- Retourne l'objet definition de l'objet pointé par self
- """
- return self.object.definition
-
- def get_liste_mc_ordonnee(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 + ...
- il faut encore réarranger cette liste (certains mots-clés déjà
- présents ne doivent plus être proposés, règles ...)"""
- return self.object.get_liste_mc_ordonnee(liste,dico)
-
- 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 + ...
- """
- return self.object.get_liste_mc_ordonnee_brute(liste,dico)
-
- def get_genealogie(self):
- """
- Retourne la liste des noms des ascendants (noms de MCSIMP,MCFACT,MCBLOC ou ETAPE)
- de l'objet pointé par self
- """
- return self.object.get_genealogie()
-
- def get_index_child(self,nom_fils):
- """
- Retourne l'index dans la liste des fils de self du nouveau fils de nom nom_fils
- Nécessaire pour savoir à quelle position dans la liste des fils il faut ajouter
- le nouveau mot-clé
- """
- liste_noms_mc_ordonnee = self.get_liste_mc_ordonnee_brute(self.get_genealogie(),self.get_jdc().cata_ordonne_dico)
- liste_noms_mc_presents = self.object.liste_mc_presents()
- l=[]
- for nom in liste_noms_mc_ordonnee:
- if nom in liste_noms_mc_presents or nom == nom_fils:
- l.append(nom)
- # l contient les anciens mots-clés + le nouveau dans l'ordre
- return l.index(nom_fils)
-
- def get_nom_etape(self):
- """Retourne le nom de self """
- return self.object.get_nom_etape()
-
- def get_copie_objet(self):
- """ Retourne une copie de l'objet pointé par self """
- return self.object.copy()
-
- def get_position(self):
- """ Retourne la valeur de l'attribut position de l'objet pointé par self """
- definition = self.get_definition()
- try:
- return getattr(definition,'position')
- except AttributeError:
- return 'local'
-
- def get_nom(self):
- """ Retourne le nom de l'objet pointé par self """
- return self.object.nom
-
- def get_jdc(self):
- """ Retourne le jdc auquel appartient l'objet pointé par self """
- return self.object.jdc
- #return self.object.get_attribut('jdc')
-
- def get_valeur(self):
- """ Retourne la valeur de l'objet pointé par self """
- return self.object.valeur
-
- def get_cr(self):
- """ Retourne le compte-rendu CR de self """
- return self.object.report()
-
- def get_objet_commentarise(self):
- """
- Cette méthode retourne un objet commentarisé
- 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):
- """ Retourne 1 si l'objet pointé par self est valide, 0 sinon"""
- return self.object.isvalid()
-
- def iscopiable(self):
- """
- Retourne 1 si l'objet est copiable, 0 sinon
- Par défaut retourne 0
- """
- return 0
-
- def isMCList(self):
- """ Retourne 1 si l'objet pointé par self est une MClist, 0 sinon"""
- #if isinstance(self.object,MCList) :
- if self.object.__class__.__name__ == 'MCList':
- return 1
- else :
- return 0
-
- def isCommande(self):
- """
- Retourne 1 si l'objet pointé par self est une Commande, 0 sinon
- """
- return 0
-
- def isJdc(self):
- """
- Retourne 1 si l'objet pointé par self est un JDC, 0 sinon
- """
- return 0
-
- def isMCFact(self):
- """
- Retourne 1 si l'objet pointé par self est un MCFact, 0 sinon
- """
- return 0
-
- def get_mc_presents(self):
- """ Retourne le dictionnaire des mots-clés présents de l'objet pointé par self """
- return self.object.dict_mc_presents()
-
- def verif_condition_regles(self,l_mc_presents):
- return self.object.verif_condition_regles(l_mc_presents)
-
- def get_fr(self):
- """ Retourne le fr de l'objet pointé par self """
- return self.object.get_fr()
-
- def get_docu(self):
- """ Retourne la clé de doc de l'objet pointé par self """
- return self.object.get_docu()
-
- def set_valeur(self,new_valeur,evaluation='oui'):
- """ Remplace la valeur de l'objet pointé par self par new_valeur """
- return self.object.set_valeur(new_valeur,evaluation=evaluation)
-
- def GetText(self):
- return myrepr.repr(self.object)
-
- def GetIconName(self):
- if not self.IsExpandable():
- return "python"
-
- def IsEditable(self):
- return self.setfunction is not None
-
- def SetText(self, text):
- try:
- value = eval(text)
- self.setfunction(value)
- except:
- pass
-# Modif de ma part CCar : je ne comprend pas a quoi ca sert
-# ca parait meme incorrect
- # else:
- # self.object = value
-
- def IsExpandable(self):
- return 1
-
- def GetSubList(self):
- keys = dir(self.object)
- sublist = []
- for key in keys:
- try:
- value = getattr(self.object, key)
- except AttributeError:
- continue
- item = make_objecttreeitem(
- self.appli,
- str(key) + " =",
- value,
- lambda value, key=key, object=self.object:
- setattr(object, key, value))
- sublist.append(item)
- return sublist
-
- def wait_fichier_init(self):
- """ Retourne 1 si l'object pointé par self attend un fichier d'initialisation
- (ex: macros POURSUITE et INCLUDE de Code_Aster), 0 SINON """
- return self.object.definition.fichier_ini
-
- def make_objecttreeitem(self,appli,labeltext, object, setfunction=None):
- """
- Cette methode, globale pour les objets de type item, permet de construire et de retourner un objet
- de type item associé à l'object passé en argument.
- """
- c = gettreeitem(object)
- return c(appli,labeltext, object, setfunction)
-
-class AtomicObjectTreeItem(ObjectTreeItem):
- def IsExpandable(self):
- return 0
-
-class SequenceTreeItem(ObjectTreeItem):
- def IsExpandable(self):
- return len(self.object) > 0
-
- def __len__(self) :
- return len(self.object)
-
- def keys(self):
- return range(len(self.object))
-
- def GetIconName(self):
- if self.object.isvalid():
- return "ast-green-los"
- elif self.object.isoblig():
- return "ast-red-los"
- else:
- return "ast-yel-los"
-
- def ajout_possible(self):
- return self.object.ajout_possible()
-
- def get_index(self,child):
- """ Retourne le numéro de child dans la liste des enfants de self """
- return self.object.get_index(child.object)
-
- 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 :
- 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
- except:
- return 0
-
- def GetSubList(self):
- sublist = []
- for obj in self.object.data:
- def setfunction(value, object=obj):
- object = value
- item = make_objecttreeitem(self.appli, obj.nom + ":", obj, setfunction)
- sublist.append(item)
- return sublist
-
-def gettreeitem(object):
- """
- Cette fonction retourne la classe item associée à l'objet object.
- Cette classe item dépend bien sûr de la nature de object, d'où
- l'interrogation du dictionnaire composants
- """
- if type(object) == types.InstanceType:
- # On cherche d abord dans les composants (plugins)
- try:
- return composants[object.__class__]
- except:
- # On cherche une eventuelle classe heritee (aleatoire car sans ordre)
- for e in composants.keys():
- if isinstance(object,e):return composants[e]
- # On n'a rien trouve dans les composants
- return ObjectTreeItem
-
-def charger_composants():
- """
- Cette fonction a pour but de charger tous les modules composants graphiques
- (fichiers compo*.py dans le même répertoire que ce module )
- et de remplir le dictionnaire composants utilisé par make_objecttreeitem
- """
- composants={}
- repertoire=os.path.dirname(__file__)
- listfich=glob.glob(os.path.join(repertoire, "compo*.py"))
- for fichier in listfich:
- m= os.path.basename(fichier)[:-3]
- module=__import__(m,globals(),locals())
- composants[module.objet]=module.treeitem
- return composants
-
-def make_objecttreeitem(appli,labeltext, object, setfunction=None):
- """
- Cette fonction permet de construire et de retourner un objet
- de type item associé à l'object passé en argument.
- """
- c = gettreeitem(object)
- return c(appli,labeltext, object, setfunction)
-
-# Dictionnaire {object : item} permettant d'associer un item à un object
-# Ce dictionnaire est renseigné par la méthode charger_composants
-composants = charger_composants()
-
+++ /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.
-#
-#
-# ======================================================================
+++ /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 string import split,strip,lowercase,uppercase
-import re,string,cPickle,os
-
-from Noyau.N_CR import CR
-
-#
-__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_noms_simples=['SIMP',]
-l_noms=l_noms_composes+l_noms_simples
-
-def elimine_commentaires(text):
- """ Elimine les lignes de commentaires dans text
- Attention : supprime sauvagement tous les caractères entre # et le retour chariot ..."""
- comments = re.compile(r'#[^\n]*')
- return comments.sub('',text)
-
-def cherche_nom(text):
- Whitespace = r'[ \f\t]*'
- Name = r'[a-zA-Z_]\w*'
- myexpr = '('+Name+')'+Whitespace+'='+Whitespace+'$'
- a=re.search(myexpr,text)
- return a.group(1)
-
-def cherche_args(text):
- text = strip(text)
- longueur = len(text)
- if text[0] != '(':
- return 'erreur !'
- else :
- nbpar = 1
- for i in range(1,longueur) :
- if text[i] =='(':
- nbpar = nbpar + 1
- elif text[i] == ')':
- nbpar = nbpar - 1
- else :
- continue
- if nbpar == 0:
- break
- if nbpar != 0 :
- return 'erreur !','erreur !'
- else :
- try :
- return text[1:i],text[i+1:] # on enlève les première et dernière parenthèses
- except :
- return text[1:i],''
-
-class ENTITE :
- def cherche_enfants(self):
- try :
- self.text = strip(self.text)
- liste = re.split('=',self.text,1)
- if len(liste)>1 :
- arg1=liste[0]
- reste=liste[1]
- reste = strip(reste)
- if reste[0:4] in l_noms :
- nom_mc = cherche_nom(arg1+'=')
- arg_mc, self.text = cherche_args(reste[4:])
- self.cree_mc(nom_mc,arg_mc,reste[0:4])
- else :
- self.text = reste
- self.cherche_enfants()
- else :
- # pas de = rencontré
- return
- except Exception,e:
- self.cr.fatal("Erreur rencontrée dans recherche_enfants :%s" %str(e))
-
- def cree_mc(self,nom_mc,arg_mc,test):
- if test in l_noms_composes :
- mc = FACT_CATA(nom_mc,arg_mc,self)
- self.children.append(mc)
- elif test in l_noms_simples :
- mc = SIMP_CATA(nom_mc,self)
- self.children.append(mc)
- else :
- print 'erreur dans la création du mot-clé :',nom_mc
-
- def construit_liste_dico(self):
- l=[]
- d={}
- if len(self.children)==0:
- self.ordre_mc = l
- self.entites = d
- return
- try :
- for child in self.children:
- l.append(child.nom)
- d[child.nom]=child
- self.ordre_mc = l
- self.entites = d
- except:
- print 'erreur :',self.nom,self.__class__
-
-class COMMANDE_CATA(ENTITE) :
- def __init__(self,nom,args,parent):
- self.nom = nom
- self.args = args
- self.children = []
- self.text = args
- self.cr = CR()
- self.cr.debut = "Début commande %s" %self.nom
- self.cr.fin = "Fin commande %s" %self.nom
- self.cherche_enfants()
- self.construit_liste_dico()
- parent.cr.add(self.cr)
-
- def affiche(self):
- texte_cmd = '\n'
- texte_cmd = texte_cmd + 'Commande :' + self.nom + '\n'
- for child in self.children :
- texte_cmd = texte_cmd + child.affiche(1)
- return texte_cmd
-
-class SIMP_CATA :
- def __init__(self,nom,parent):
- self.nom = nom
- self.cr = CR()
- self.cr.debut = "Début mot-clé simple %s" %self.nom
- self.cr.fin = "Fin mot-clé simple %s" %self.nom
- parent.cr.add(self.cr)
-
- def affiche(self,ind):
- sep = ' '*5
- return sep*ind+self.nom+'\n'
-
-class FACT_CATA(ENTITE) :
- def __init__(self,nom,args,parent):
- self.nom=nom
- self.args=args
- self.children = []
- self.text=args
- self.cr = CR()
- self.cr.debut = "Début mot-clé facteur ou bloc %s" %self.nom
- self.cr.fin = "Fin mot-clé facteur ou bloc %s" %self.nom
- self.cherche_enfants()
- self.construit_liste_dico()
- parent.cr.add(self.cr)
-
- def affiche(self,ind):
- sep = ' '*5
- text = ''
- text = text + sep*ind+self.nom+'\n'
- for child in self.children :
- text = text + child.affiche(ind+1)
- return text
-
-class CATALOGUE_CATA:
- def __init__(self,parent,fichier):
- self.parent = parent
- self.fichier=fichier
- self.cr = CR()
- self.cr.debut = "Début compte-rendu catalogue %s" %self.fichier
- self.cr.fin = "Fin compte-rendu catalogue %s" %self.fichier
- self.ouvrir_fichier()
- self.liste_commandes=[]
- self.liste_textes_commandes=[]
-
- def ouvrir_fichier(self):
- try :
- f=open(self.fichier,'r')
- self.texte_complet=f.read()
- f.close()
- except e:
- print "Impossible d'ouvrir le fichier :",self.fichier
- print e
- self.cr.fatal("Impossible d'ouvrir le fichier :%s" %self.fichier)
-
- def constr_list_txt_cmd(self,text):
- text = elimine_commentaires(text)
- pattern = '\) *;'
- liste=re.split(pattern,text)
- for i in range(0,len(liste)-1):
- self.liste_textes_commandes.append(liste[i]+')')
-
- def analyse_commande_old(self,text):
- #if strip(text) == '' or strip(text) ==')': return
- liste = re.split('OPER *\(',text,1)
- if len(liste) < 2 :
- liste = re.split('PROC *\(',text,1)
- if len(liste) < 2 :
- liste = re.split('MACRO *\(',text,1)
- if len(liste) < 2 :
- print "le texte à analyser n'est pas celui d'une commande ou d'un opérateur",text
- self.cr.fatal("le texte à analyser n'est pas celui d'une commande ou d'un opérateur :%s" %text)
- return
- debut = liste[0]
- fin = liste[1]
- nom_cmd = cherche_nom(debut)
- if nom_cmd == 'erreur !':
- print "Erreur dans la recherche du nom de la commande :",debut
- args_cmd,toto = cherche_args('('+fin)
- if args_cmd == 'erreur !':
- print "Erreur dans la recherche des args de la commande :",debut
- cmd=COMMANDE_CATA(nom_cmd,args_cmd,self)
- self.liste_commandes.append(cmd)
-
- def analyse_commande(self,text):
- #if strip(text) == '' or strip(text) ==')': return
- for nom_cmd in l_noms_commandes:
- liste = re.split(nom_cmd+' *\(',text,1)
- if len(liste) == 2 : break
- if len(liste) < 2 :
- print "le texte à analyser n'est pas celui d'une commande connue :"+str(l_noms_commandes),text
- self.cr.fatal("le texte à analyser n'est pas celui d'une commande ou d'un opérateur :%s" %text)
- return
- debut = liste[0]
- fin = liste[1]
- nom_cmd = cherche_nom(debut)
- if nom_cmd == 'erreur !':
- print "Erreur dans la recherche du nom de la commande :",debut
- args_cmd,toto = cherche_args('('+fin)
- if args_cmd == 'erreur !':
- print "Erreur dans la recherche des args de la commande :",debut
- print fin
- cmd=COMMANDE_CATA(nom_cmd,args_cmd,self)
- self.liste_commandes.append(cmd)
-
- def analyse_texte(self,texte):
- self.constr_list_txt_cmd(texte)
- try:
- self.parent.configure_barre(len(self.liste_textes_commandes))
- except:
- pass
- for texte_commande in self.liste_textes_commandes :
- try:
- self.parent.update_barre()
- except:
- pass
- self.analyse_commande(texte_commande)
- self.construit_liste_dico()
-
- def ecrit_lcmd(self):
- f=open('U:\\EFICAS\\Accas\\cata.txt','w')
- for cmd in self.liste_commandes :
- f.write(cmd.affiche())
- f.close()
-
- def construit_liste_dico(self):
- l=[]
- d={}
- for cmd in self.liste_commandes:
- l.append(cmd.nom)
- d[cmd.nom]=cmd
- self.ordre_mc = l
- self.entites = d
-
- def report(self):
- """ retourne l'objet rapport du catalogue de commande """
- return self.cr
-
-def analyse_catalogue(parent,nom_cata):
- cata = CATALOGUE_CATA(parent,nom_cata)
- cata.analyse_texte(cata.texte_complet)
- return cata
-
-def analyse_catalogue_commande(parent,nom_cata):
- cata = CATALOGUE_CATA(parent,nom_cata)
- cata.analyse_commande(cata.texte_complet)
- cata.construit_liste_dico()
- return cata
-
-
-def make_cata_pickle(fic_cata):
- """
- Lance l'analyse de l'ordre des mots-clés dans le catalogue dont le nom
- est passé en argument et sauvegarde ces infos dans le fichier pickle relu
- par Eficas
- """
- fic_cata_p = os.path.splitext(fic_cata)[0]+'_pickled.py'
- cata_ordonne = analyse_catalogue(None,fic_cata)
- f = open(fic_cata_p,'w+')
- p = cPickle.Pickler(f)
- p.dump(cata_ordonne.entites)
- f.close()
-
-if __name__ == "__main__" :
- import profile
- profile.run("analyse_catalogue(None,'U:\\EFICAS\\Cata\\cata_saturne.py')")
-
-
-
-
-
-
-
-
-
-
-
-
-
+++ /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 APPLI qui est la classe mère de
- l'application EFICAS. Elle prend en charge l'organisation générale
- des composants graphiques et l'initialisation Tk
- L'aspect applicatif doit etre pris en charge par la classe dérivée
-"""
-# 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.3"
-
-class APPLI:
- def __init__ (self,master,code='ASTER',fichier=None) :
- self.top=master
- self.code=code
- self.top.protocol("WM_DELETE_WINDOW",self.exitEFICAS)
- self.top.minsize(900,500)
- self.top.geometry("900x500")
- self.top.title(VERSION + ' pour '+self.code)
- self.top.withdraw()
- self.initializeTk(master)
- Pmw.initialise(master)
- self.lecture_parametres()
- self.format_fichier = Tkinter.StringVar()
- self.message=''
- self.cree_composants_graphiques()
- self.load_appli_composants() # Creation du BUREAU
- 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
- splash.fini_splash()
-
- def send_message(self,message):
- self.message=message
-
- def exitEFICAS(self):
- self.quit()
-
- def quit(self):
- self.top.quit()
-
- def lecture_parametres(self):
- """
- Active la lecture des paramètres standards et utilisateur
- """
- splash._splash.configure(text = "Chargement des paramètres utilisateur")
- import configuration
- self.CONFIGURATION = configuration.make_config(self,prefs.REPINI)
-
- def cree_composants_graphiques(self):
- """
- Cree les constituants de l'application :
- - menubar
- - toolbar
- - bureau
- - statusbar
- """
- splash._splash.configure(text = "Chargement de l'IHM")
- splash._splash.configure(text = "Chargement de la menubar")
- import menubar
- self.menubar=menubar.MENUBAR(self,self.top)
- splash._splash.configure(text = "Chargement de la toolbar")
- import toolbar
- self.toolbar=toolbar.TOOLBAR(self,self.top)
- splash._splash.configure(text = "Chargement de la statusbar")
- import statusbar
- self.statusbar=statusbar.STATUSBAR(self.top)
-
- 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_appli_composant(self,mname):
- module=__import__(mname,globals(),locals())
- factory=getattr(module,mname.upper())
- 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
- faq.affiche(self.top)
-
- def affiche_infos(self,message):
- self.statusbar.affiche_infos(message)
- return
-
- def initializeTk(self, root):
- """
- Initialize platform specific options
- """
- if sys.platform == 'mac':
- self.initializeTk_mac(root)
- elif sys.platform == 'win32':
- self.initializeTk_win32(root)
- else:
- self.initializeTk_unix(root)
-
- def initializeTk_win32(self, root):
- root.option_add('*Font', fontes.standard)
- root.option_add('*EntryField.Entry.Font', fontes.standard)
- root.option_add('*Listbox*Font',fontes.standard)
-
- def initializeTk_colors_common(self, root):
- 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')
-
- def initializeTk_mac(self, root):
- self.initializeTk_colors_common(root)
-
- def initializeTk_unix(self, root):
- root.option_add('*Font', fontes.standard)
- root.option_add('*EntryField.Entry.Font',fontes.standard )
- root.option_add('*Listbox*Font', fontes.standard)
- self.initializeTk_colors_common(root)
-
- def get_texte_infos(self):
- """
- Retourne un texte d'informations sur la session courante d'EFICAS
- """
- texte = VERSION + '\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 version %s\n' % (self.code,properties.version)
- return texte
-
- def efface_aide(self,event):
- """
- Efface la bulle d'aide d'un panneau
- """
- try:
- self.aide.destroy()
- except:
- pass
- return
-
- def affiche_aide(self,event,aide):
- """
- Affiche l'aide concernant un panneau
- """
- x=event.x
- y=event.y
- widget=event.widget
- 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
- 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()
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# Modules Python
-import os,string
-from tkFileDialog import *
-
-# Modules Eficas
-import Interp
-import catabrowser
-import cataediteur
-
-class BROWSER:
-
- menu_defs=[
- ('Browsers',[
- ('Browser catalogue','browser_catalogue'),
- ('Editeur catalogue','edite_catalogue'),
- ('Shell','shell'),
- ]
- )
- ]
-
- button_defs=[]
-
- def __init__(self,appli,parent):
- self.appli=appli
- self.parent=parent
- self.cataitem = catabrowser.CATAItem(self,"Catalogue "+self.appli.readercata.code,
- self.appli.readercata.cata,
- objet_cata_ordonne = self.appli.readercata.cata_ordonne_dico)
-
- def shell(self,event=None):
- if not hasattr(self.appli.bureau.JDCDisplay_courant,'jdc'):return
- d={'j':self.appli.bureau.JDCDisplay_courant.jdc}
- Interp.InterpWindow(d,parent=self.parent)
-
- def browser_catalogue(self,event=None):
- catabrowser.CataBrowser(parent=self.parent,appli=self.appli,
- cata = self.appli.readercata.cata,
- item = self.cataitem)
-
- def edite_catalogue(self,event=None):
- cataediteur.CataEditeur(parent=self.parent,appli=self.appli,cata=self.appli.readercata.cata)
-
-
-
+++ /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 BUREAU qui gere les JDC ouverts
-"""
-# Modules Python
-import os,string
-import traceback
-import Pmw
-from tkFileDialog import askopenfilename,asksaveasfilename
-from tkMessageBox import showinfo,askyesno,showerror
-
-# Modules Eficas
-import splash
-import prefs
-import convert
-import generator
-import AIDE
-from jdcdisplay import JDCDISPLAY
-from utils import extension_fichier,stripPath,save_in_file
-from widgets import Fenetre,Ask_Format_Fichier
-from fenetre_mc_inconnus import fenetre_mc_inconnus
-
-class BUREAU:
- menu_defs=[
- ('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 .py','visuJDC_py'),
- ('Fichier source','visu_txt_brut_JDC'),
- ('Paramètres Eficas','affichage_fichier_ini'),
- ('Mots-clés inconnus','mc_inconnus'),
- ]
- ),
- ('Aide',[
- ('Aide EFICAS','aideEFICAS'),
- ]
- ),
- ]
-
- button_defs = (('New24',"newJDC","Création d'un nouveau fichier",'always'),
- ('Open24',"openJDC","Ouverture d'un fichier existant",'always'),
- ('Save24',"saveJDC","Sauvegarde du fichier courant",'always'),
- ('Zoom24',"visuJDC","Visualisation du fichier de commandes",'always'),
- None,
- ('Copy24',"copy","Copie l'objet courant",'jdc'),
- ('Cut24',"cut","Coupe l'objet courant",'jdc'),
- ('Paste24',"paste","Colle l'objet copié après l'objet courant",'jdc'),
- None,
- ('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
- self.appli=appli
- splash._splash.configure(text = "Création du bureau")
- self.nb = Pmw.NoteBook(self.parent,raisecommand=self.selectJDC)
- self.nb.pack(fill='both',expand=1)
- self.JDCDisplay_courant=None
- self.fileName=None
- self.liste_JDCDisplay=[]
- self.cree_cataitem()
-
- def cree_cataitem(self):
- """
- 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
- self.cata=self.appli.readercata.cata
- self.cata_ordonne_dico=self.appli.readercata.cata_ordonne_dico
- self.code=self.appli.readercata.code
- self.version_code=self.appli.readercata.version_code
- self.fic_cata=self.appli.readercata.fic_cata
-
- def selectJDC(self,event=None):
- """
- Cette méthode est appelée chaque fois que l'on sélectionne
- l'onglet d'un JDC dans le NoteBook des JDC.
- Elle permet de stocker dans les variable self.JDC et
- self.JDCDisplay_courant les valeurs concernant le JDC courant
- """
- if len(self.liste_JDCDisplay) == 0 : return
- #if self.JDCDisplay_courant : self.JDCDisplay_courant.jdc.unset_context()
- numero_jdc = self.nb.index(self.nb.getcurselection())
- self.JDCDisplay_courant = self.liste_JDCDisplay[numero_jdc]
- self.JDC = self.JDCDisplay_courant.jdc
- #self.JDC.set_context()
- self.JDCName = self.JDC.nom
-
- def newJDC(self):
- """
- Initialise un nouveau JDC vierge
- """
- self.appli.statusbar.reset_affichage_infos()
-
- CONTEXT.unset_current_step()
- J=self.cata[0].JdC(cata=self.cata,
- cata_ord_dico=self.cata_ordonne_dico,
- 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()
-
- def ShowJDC(self,JDC,nom,label_onglet=None):
- """
- Lance l'affichage du JDC cad création du JDCDisplay
- Rajoute le JDCDisplay à la liste des JDCDisplay si label_onglet == None cad si on crée
- bien un nouveau JDCDisplay et non si on remplace (renommage de l'onglet)
- """
- self.JDC=JDC
- self.JDCName = self.JDC.nom = nom
- #XXX CCAR: pour le moment mis en commentaire
- #self.JDC.set_context()
- if label_onglet == None :
- label_onglet = self.GetLabelJDC()
- self.nb.add(label_onglet,tab_text = nom,tab_width=20)
- new = 'oui'
- else :
- new = 'non'
- self.JDCDisplay_courant=JDCDISPLAY(self.JDC,nom,appli=self.appli,parent=self.nb.page(label_onglet))
- if new == 'oui':
- self.liste_JDCDisplay.append(self.JDCDisplay_courant)
- self.JDCDisplay_courant.modified='n'
- self.JDCDisplay_courant.fichier=self.fileName
- self.nb.selectpage(label_onglet)
- self.nb.setnaturalsize()
- texte = "Jeu de commandes :" + self.JDCName+" ouvert"
- self.appli.affiche_infos(texte)
-
- def closeJDC (self) :
- """
- Ferme le JDC courant et détruit l'onglet associé dans le notebook self.nb
- """
- if self.JDCDisplay_courant.modified == 'o' :
- message = "Voulez-vous sauvegarder le jeu de commandes "+self.JDC.nom+" courant ?"
- reponse = askyesno(title="Sauvegarde du jdc courant",
- message=message)
- if reponse :
- test = self.saveJDC()
- if test == 0 :
- self.appli.affiche_infos("Sauvegarde impossible")
- return
- self.JDCDisplay_courant.jdc.supprime()
- self.liste_JDCDisplay.remove(self.JDCDisplay_courant)
- self.nb.delete(self.nb.getcurselection())
- #XXX CCAR: pour le moment mis en commentaire
- #self.JDC.unset_context()
- self.JDC = None
- try:
- index = self.nb.index(self.nb.getcurselection())
- self.JDCDisplay_courant = self.liste_JDCDisplay[index]
- self.JDC = self.JDCDisplay_courant.jdc
- except:
- self.JDCDisplay_courant = None
- self.appli.toolbar.inactive_boutons()
-
- def visuCRJDC(self):
- return self.visuCR(mode='JDC')
-
- def visuCR(self,mode):
- """
- Méthode permettant l'affichage du rapport de validation
- """
- if mode == 'JDC':
- 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()
- cr.debut = "Début rapport de validation du catalogue"
- cr.fin = "Fin rapport de validation du catalogue"
- titre="rapport de validation du catalogue"
- if hasattr(self,'cata_ordonne_cr') :
- cr.add(self.cata_ordonne_cr)
- if hasattr(self,'cata_dev_ordonne_cr') :
- cr.add(self.cata_dev_ordonne_cr)
- for cata in self.cata:
- if hasattr(cata,'JdC'):
- cr.add(cata.JdC.report())
- texte_cr = str(cr)
- self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr)
-
- def openJDC(self,file=None):
- """
- Demande à l'utilisateur quel JDC existant il veut ouvrir
- """
- if self.code == 'ASTER':
- 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.initialdir
- if not file :
- file = askopenfilename(title="Ouverture d'un fichier de commandes Aster",
- defaultextension=".comm",
- filetypes = filetypes,
- initialdir = self.initialdir)
- if file != '':
- self.fileName = file
- e=extension_fichier(file)
- self.JDCName=stripPath(file)
- self.initialdir = os.path.dirname(file)
- else :
- return
- #XXX CCAR: pour le moment mis en commentaire
- #if self.JDCDisplay_courant:self.JDCDisplay_courant.jdc.unset_context()
-
- format=self.appli.format_fichier.get()
- # Il faut convertir le contenu du fichier en fonction du format
- if convert.plugins.has_key(format):
- # Le convertisseur existe on l'utilise
- p=convert.plugins[format]()
- p.readfile(file)
- text=p.convert('exec')
- if not p.cr.estvide():
- self.appli.affiche_infos("Erreur à la conversion")
- Fenetre(self.appli,
- titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier",
- texte = str(p.cr)).wait()
- return
- else:
- # Il n'existe pas c'est une erreur
- self.appli.affiche_infos("Type de fichier non reconnu")
- showerror("Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier")
- return
-
- # On se met dans le repertoire ou se trouve le fichier de commandes
- # pour trouver les eventuels fichiers include ou autres
- # localises a cote du fichier de commandes
- os.chdir(self.initialdir)
- 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,
- rep_mat=self.appli.CONFIGURATION.rep_mat,
- )
- J.analyse()
- txt_exception = J.cr.get_mess_exception()
- if txt_exception :
- # des exceptions ont été levées à la création du JDC
- # --> on affiche les erreurs mais pas le JDC
- self.appli.affiche_infos("Erreur fatale au chargement de %s" %file)
- showerror("Erreur fatale au chargement d'un fichier",txt_exception)
- else:
- self.ShowJDC(J,self.JDCName)
- self.appli.toolbar.active_boutons()
- # 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
- if not self.JDC.isvalid():
- #cr = self.JDC.report()
- #if not cr.estvide() :
- self.appli.top.update()
- self.visuCR(mode='JDC')
-
-
- def GetLabelJDC(self,nb_jdc = 'absent'):
- """
- Retourne le label de l'onglet du NoteBook associé au JDC à afficher
- """
- if nb_jdc == 'absent':
- nb_jdc = len(self.nb.pagenames())
- nb_jdc = nb_jdc+1
- label_onglet = 'JDC'+`nb_jdc`
- if label_onglet not in self.nb.pagenames() :
- return label_onglet
- else :
- return self.GetLabelJDC(nb_jdc)
-
- def saveasJDC(self):
- """
- Sauvegarde le JDC courant en demandant impérativement à l'utilisateur de
- donner le nom du fichier de sauvegarde
- """
- self.saveJDC(echo='oui')
-
- def saveJDC(self,echo='non'):
- """
- Sauvegarde le JDC courant.
- Retourne 1 si la sauvegarde s'est bien faite, 0 sinon.
- Si echo = 'oui' : interactif (l'utilisateur donne le nom sous lequel il
- veut sauver le JDC
- Si echo = 'non' : muet (sauvegarde le JDC dans JDC.procedure)
- """
- if not hasattr(self,'JDC') : return 0
- format=self.appli.format_fichier.get()
- if generator.plugins.has_key(format):
- # Le generateur existe on l'utilise
- g=generator.plugins[format]()
- jdc_formate=g.gener(self.JDC,format='beautifie')
- if not g.cr.estvide():
- print g.cr
- self.appli.affiche_infos("Erreur à la generation")
- showerror("Erreur à la generation","EFICAS ne sait pas convertir ce JDC")
- return
- else:
- # Il n'existe pas c'est une erreur
- self.appli.affiche_infos("Format %s non reconnu" % format)
- showerror("Format %s non reconnu" % format,"EFICAS ne sait pas convertir le JDC")
- return
- self.jdc_fini = string.replace(jdc_formate,'\r\n','\n')
-
- if echo =='oui' or self.JDCDisplay_courant.fichier == None:
- return self.asknomsauvegardeJDC()
- elif self.JDCDisplay_courant.fichier != None :
- # le JDC a déjà un nom : on sauvegarde directement sans demander
- # un autre nom au développeur
- if not save_in_file(self.JDCDisplay_courant.fichier,self.jdc_fini) :
- showinfo("Erreur","Problème à la sauvegarde du fichier :" + `self.JDCDisplay_courant.fichier`)
- return 0
- else :
- self.JDCDisplay_courant.stop_modif()
- self.appli.affiche_infos("sauvegarde de "+`self.JDCDisplay_courant.fichier`+" effectuée")
- return 1
-
- def asknomsauvegardeJDC(self):
- """ Demande à l'utilsateur le nom sous lequel il veut sauvegarder le JDC courant """
- titre = "Sauvegarde d'un fichier de commandes "+self.code
- if self.code == 'ASTER':
- defext = ".comm"
- filtyp = ( ("ASTER", ".comm"),)
- else :
- defext = ".py"
- filtyp = ( (self.code, ".py"),)
- sauvegarde = asksaveasfilename(title=titre,
- defaultextension=defext,
- filetypes = filtyp,
- 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`)
- return 0
- else :
- self.JDCDisplay_courant.stop_modif()
- self.appli.affiche_infos("Sauvegarde effectuée")
- if sauvegarde != self.JDCDisplay_courant.fichier :
- # l'utilisateur a sauvegardé le JDC sous un autre nom
- self.JDCDisplay_courant.fichier = sauvegarde
- self.JDCName = self.JDC.nom = stripPath(sauvegarde)
- self.changeNomPage()
- return 1
- else :
- return 0
-
- def changeNomPage(self):
- """ Change le nom de l'onglet contenant le JDC courant : en fait détruit l'actuel
- et recrée un autre onglet à la même place avec le bon nom
- """
- nom = self.JDCName
- self.JDCDisplay_courant.jdc.nom = nom
- nom_page = self.nb.getcurselection()
- num_page = self.nb.index(nom_page)
- tab = self.nb.tab(num_page)
- tab.configure(text = nom)
-
- def exitEFICAS(self):
- """
- Permet de sortir d'EFICAS en demandant à l'utilisateur
- s'il veut sauvegarder les modifications en cours
- """
- liste = self.GetListeJDCaSauvegarder()
- if liste != [] :
- # Certains fichiers n'ont pas été sauvegardés ...
- if askyesno("Enregistrer modifications","Enregister les modifications ?") :
- test = self.saveall(liste)
- if test != 1 :
- return
- if askyesno ("Quitter","Voulez-vous vraiment quitter l'application ?") :
- for JDCDisplay in self.liste_JDCDisplay:
- JDCDisplay.jdc.supprime()
- self.appli.quit()
- return
-
- def GetListeJDCaSauvegarder(self) :
- """ Retourne parmi la liste de tous les JDC ouverts la liste de ceux qui ont été modifiés """
- if not self.JDCDisplay_courant : return []
- if len(self.liste_JDCDisplay) == 0 : return l
- l = []
- for JDCDisplay in self.liste_JDCDisplay:
- if JDCDisplay.modified == 'o' :
- l.append(JDCDisplay)
- return l
-
- def copy(self):
- """
- Lance la copie sur le JDC courant
- """
- if self.JDCDisplay_courant : self.JDCDisplay_courant.doCopy()
-
- def paste(self):
- """
- Lance le collage sur le JDC courant
- """
- if self.JDCDisplay_courant : self.JDCDisplay_courant.doPaste()
-
- def cut(self):
- """
- Lance le cut sur le JDC courant
- """
- if self.JDCDisplay_courant: self.JDCDisplay_courant.doCut()
-
- def delete(self):
- """
- Lance la suppression du noeud courant
- """
- if not self.JDCDisplay_courant : return
- try:
- if self.JDCDisplay_courant.modified == 'n' :
- self.JDCDisplay_courant.init_modif()
- pere = self.JDCDisplay_courant.node_selected.parent
- self.JDCDisplay_courant.node_selected.delete()
- pere.select()
- except AttributeError:
- pass
-
- def visuJDC_py(self):
- """
- Méthode permettant d'afficher dans une fenêtre à part l'écho au
- format python du jdc courant
- """
- if not hasattr(self,'JDC') : return
- jdc_fini = self.get_text_JDC('python')
- if jdc_fini == None : return
- Fenetre(self.appli,
- titre = 'fichier '+ self.JDCName + ' à la syntaxe Python',
- texte = jdc_fini)
-
- def visuJDC(self):
- """
- Méthode permettant d'afficher dans une fenêtre à part l'écho au
- format .comm ou .py du jdc courant
- """
- if not hasattr(self,'JDC') : return
- titre = 'fichier '+ self.JDCName + ' à la syntaxe '+ self.code
- format=self.appli.format_fichier.get()
- self.jdc_fini = self.get_text_JDC(format)
- if self.jdc_fini == None : return
- self.visu_fichier_cmd = Fenetre(self.appli,titre=titre,texte = self.jdc_fini)
-
- def get_text_JDC(self,format):
- if generator.plugins.has_key(format):
- # Le generateur existe on l'utilise
- g=generator.plugins[format]()
- jdc_formate=g.gener(self.JDC,format='beautifie')
- if not g.cr.estvide():
- print g.cr
- self.appli.affiche_infos("Erreur à la generation")
- showerror("Erreur à la generation","EFICAS ne sait pas convertir ce JDC")
- return
- else:
- return jdc_formate
- else:
- # Il n'existe pas c'est une erreur
- self.appli.affiche_infos("Format %s non reconnu" % format)
- showerror("Format %s non reconnu" % format,"EFICAS ne sait pas convertir le JDC en format %s "% format)
- return
-
- def view_doc(self):
- """
- Permet d'ouvrir le fichier doc U de la commande au format pdf avec Acrobat Reader
- - Ne fonctionne pas sous UNIX (chemin d'accès Acrobat Reader)
- - indication du chemin d'accès aux fichiers pdf à revoir : trop statique
- """
- if not self.JDCDisplay_courant : return
- try:
- cle_doc = self.JDCDisplay_courant.node_selected.item.get_docu()
- if cle_doc == None : return
- cle_doc = string.replace(cle_doc,'.','')
- cle_doc = string.replace(cle_doc,'-','')
- commande = self.appli.CONFIGURATION.exec_acrobat
- nom_fichier = cle_doc+".pdf"
- rep_fichier = cle_doc[0:2]
- fichier = os.path.abspath(os.path.join(self.appli.CONFIGURATION.path_doc,rep_fichier,nom_fichier))
- if os.name == 'nt':
- os.spawnv(os.P_NOWAIT,commande,(commande,fichier,))
- elif os.name == 'posix':
- script ="#!/usr/bin/sh \n%s %s&" %(commande,fichier)
- pid = os.system(script)
- except AttributeError:
- traceback.print_exc()
- pass
-
- def visu_a_plat(self):
- """
- Méthode permettant d'afficher dans une fenêtre à part l'écho 'à plat' du jdc courant
- """
- if not hasattr(self,'JDC') : return
- titre = 'fichier '+ self.JDCName + ' à plat '
- self.jdc_fini = self.get_text_JDC('aplat')
- if self.jdc_fini == None : return
- self.visu_fichier_cmd = Fenetre(self.appli,titre=titre,texte = self.jdc_fini)
-
- def visu_txt_brut_JDC(self):
- """
- Méthode permettant d'afficher le jeu de commandes tel qu'il a été passé au JDC
- """
- if not hasattr(self,'JDC') : return
- titre = "fichier de commandes utilisateur"
- #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")
- 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):
- """
- Affichage des valeurs des paramètres relus par Eficas
- """
- self.appli.CONFIGURATION.affichage_fichier_ini()
-
- def saveall(self,liste):
- """
- Sauvegarde tous les JDC contenus dans liste
- """
- test = 1
- for JDCDisplay in liste :
- self.JDC = JDCDisplay.jdc
- test = test * self.saveJDC(echo = 'non')
- return test
-
-
-# ---------------------------------------------------------------------------
-# Méthodes liées aux mots-clés inconnus
-# ---------------------------------------------------------------------------
-
- def mc_inconnus(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()
-
-
+++ /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.
-#
-#
-# ======================================================================
-# Modules Python
-import os
-import sys
-import types
-import string
-import Pmw
-from Tkinter import *
-
-# Modules Eficas
-import fontes
-from treewidget import Tree
-from Objecttreeitem import TreeItem
-from Accas import AsException
-from Noyau.N_CR import justify_text
-from Accas import OPER,PROC,MACRO,FORM
-from Accas import FACT,BLOC,SIMP
-
-#
-__version__="$Name: $"
-__Id__="$Id: catabrowser.py,v 1.2 2002/05/15 15:31:58 eficas Exp $"
-#
-class Tableau:
- incr = 10
- def __init__(self,parent,colonnes):
- self.parent = parent
- self.colonnes = colonnes
- self.init()
-
- def init(self):
- # recherche du nombre maxi de lignes et de colonnes....
- for col in self.colonnes :
- nb_l = 0
- if len(col) > nb_l : nb_l = len(col)
- self.nb_lignes = nb_l
- self.nb_colonnes = len(self.colonnes)
- # initialisation des coordonnées dans le canvas
- self.x0 = self.incr
- self.y0 = self.incr
- self.x = self.x0 + self.incr
- self.y = self.y0 + self.incr
-
- def affiche(self):
- self.scrolledcanvas=Pmw.ScrolledCanvas(self.parent,
- hull_width=1.,
- hull_height=1.,
- borderframe=1)
- Pmw.Color.changecolor(self.scrolledcanvas.component('canvas'),background='gray95')
- self.scrolledcanvas.pack(padx=10,pady=10,expand=1, fill="both")
- self.canvas = self.scrolledcanvas.component('canvas')
- self.affiche_colonnes()
-
- def affiche_colonnes(self):
- for i in range(self.nb_lignes):
- self.affiche_ligne(i)
- self.aligne_colonnes()
- self.trace_traits()
- self.scrolledcanvas.resizescrollregion()
-
- def get_xy_max(self):
- try:
- x0,y0,xmax,ymax = self.canvas.bbox(ALL)
- return xmax,ymax
- except:
- return None,None
-
- def trace_traits(self):
- xmax,ymax = self.get_xy_max()
- if not xmax : return
- xmax = xmax+self.incr
- ymax = ymax+self.incr
- # trace les traits horizontaux
- for i in range(self.nb_lignes):
- tag_lig = 'ligne_'+`i`
- l_id = self.canvas.find_withtag(tag_lig)
- x0,y0,x1,y1 = self.bbox(l_id)
- self.canvas.create_line(x0-self.incr,y0-self.incr,xmax,y0-self.incr)
- self.canvas.create_line(self.x0,ymax,xmax,ymax)
- # trace les traits verticaux
- for j in range(self.nb_colonnes):
- tag_col = 'colonne_'+`j`
- l_id = self.canvas.find_withtag(tag_col)
- x0,y0,x1,y1 = self.bbox(l_id)
- self.canvas.create_line(x0-self.incr,y0-self.incr,x0-self.incr,ymax)
- self.canvas.create_line(xmax,self.y0,xmax,ymax)
-
- def bbox(self,l_id):
- x0,y0,x1,y1 = self.canvas.bbox(l_id[0])
- for id in l_id[1:]:
- x2,y2,x3,y3 = self.canvas.bbox(id)
- x0 = min(x2,x0)
- y0 = min(y2,y0)
- x1 = max(x3,x1)
- y1 = max(y3,y1)
- return x0,y0,x1,y1
-
- def affiche_ligne(self,num_lig):
- tag_lig = 'ligne_'+`num_lig`
- num_col = 0
- for col in self.colonnes:
- tag_col = 'colonne_'+`num_col`
- x = 100*num_col+self.x
- id = self.canvas.create_text(x,self.y,
- text = justify_text(col[num_lig],cesure=60),
- tag=(tag_lig,tag_col),
- anchor='nw',
- font = fontes.canvas)
- x0,y0,x1,y1 = self.canvas.bbox(id)
- num_col = num_col+1
- l_id = self.canvas.find_withtag(tag_lig)
- x0,y0,x1,y1 = self.bbox(l_id)
- self.y = y1 + 2*self.incr
-
- def aligne_colonnes(self):
- num_col = 0
- for col in self.colonnes:
- tag_col = 'colonne_'+`num_col`
- l_id = self.canvas.find_withtag(tag_col)
- if not l_id : continue
- x0,y0,x1,y1 = self.bbox(l_id)
- self.move(x1+self.incr,self.colonnes[num_col+1:],num_col+1)
- num_col = num_col+1
-
- def move(self,x,colonnes,num):
- num_col = num
- for col in colonnes:
- tag_col = 'colonne_'+`num_col`
- l_id = self.canvas.find_withtag(tag_col)
- if not l_id : continue
- x0,y0,x1,y1 = self.canvas.bbox(l_id[0])
- self.canvas.move(tag_col,x+self.incr-x0,0)
- num_col = num_col+1
-
-class CATAPanel(Frame) :
- """ Classe servant à créer le panneau représentant l'objet sélectionné dans l'arbre"""
- def __init__(self,parent,panneau,node) :
- self.parent=parent
- self.panneau = panneau
- self.node=node
- Frame.__init__(self,self.panneau)
- self.place(x=0,y=0,relheight=1,relwidth=1)
- self.init()
-
- def init(self):
- # création du label initial
- label = Label(self,
- text = 'Attributs de '+self.node.item.labeltext,
- font = fontes.standard_gras_souligne)
- label.pack(side='top',pady=10)
- # création des listes correspondant aux colonnes du tableau à afficher
- colonne1,colonne2 = self.get_listes()
- # affichage du tableau
- self.tableau = Tableau(self,(colonne1,colonne2))
- self.tableau.affiche()
-
- def get_listes(self):
- self.node.item.get_dico_attributs()
- l_cles_attributs = self.node.item.d_attributs.keys()
- l_cles_attributs.sort()
- ind=0
- liste1 = []
- liste2=[]
- for nom_attr in l_cles_attributs :
- valeur = self.node.item.d_attributs[nom_attr]
- if type(valeur) == types.TupleType:
- texte =''
- for elem in valeur:
- if type(elem) == types.ClassType:
- texte = texte + elem.__name__
- else:
- texte = texte + str(elem)
- elif type(valeur) == types.ClassType :
- texte = valeur.__name__
- else:
- texte = str(valeur)
- liste1.append(nom_attr)
- liste2.append(texte)
- return liste1,liste2
-
-class CATAItem(TreeItem):
- panel = CATAPanel
- def __init__(self,appli,labeltext,object,setfunction=None,objet_cata_ordonne = None):
- self.appli = appli
- self.labeltext = labeltext
- self.object=object
- self.setfunction = setfunction
- self.objet_cata_ordonne = objet_cata_ordonne
-
- def get_dico_fils(self):
- d_fils = {}
- if type(self.object) != types.TupleType:
- for e in dir(self.object):
- cmd = getattr(self.object,e)
- if isCMD(cmd) :
- d_fils[string.strip(cmd.nom)] = cmd
- else:
- for obj in self.object :
- for e in dir(obj):
- cmd = getattr(obj,e)
- if isCMD(cmd) :
- d_fils[string.strip(cmd.nom)] = cmd
- self.d_fils = d_fils
-
- def get_dico_attributs(self):
- d_attributs ={}
- if type(self.object) == types.TupleType :
- self.d_attributs = d_attributs
- return
- l_noms_attributs = ['nom','op','sd_prod','reentrant','repetable','fr','docu','into','valide_vide','actif',
- 'regles','op_init','niveau','definition','code','niveaux','statut',
- 'defaut','min','max','homo','position','val_min','val_max','condition']
- for nom_attribut in l_noms_attributs :
- if hasattr(self.object,nom_attribut):
- attr = getattr(self.object,nom_attribut)
- d_attributs[nom_attribut] = attr
- self.d_attributs = d_attributs
-
- 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,'ordre_mc'):
- return self.objet_cata_ordonne.ordre_mc
- else :
- l=self.objet_cata_ordonne.keys()
- l.sort()
- return l
-
- def GetLabelText(self):
- return self.labeltext,None,None
-
- def get_fr(self):
- return ''
-
- def isMCList(self):
- return 0
-
- def GetSubList(self):
- sublist=[]
- if not hasattr(self,'d_fils'):
- self.get_dico_fils()
- # on classe les fils dans l'odre du catalogue ...
- 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.entites[k]
- else :
- objet_cata = self.objet_cata_ordonne.get(k,None)
- item = make_objecttreeitem(self.appli,k + " : ",self.d_fils[k],
- objet_cata_ordonne = objet_cata)
- sublist.append(item)
- return sublist
-
- def GetIconName(self):
- return 'ast-green-square'
-
- def isactif(self):
- return 1
-
-class CMDItem(CATAItem):
-
- def get_dico_fils(self):
- self.d_fils = self.object.entites
-
-class SIMPItem(CATAItem):
- d_fils={}
- d_attributs={}
-
- def GetIconName(self):
- return 'ast-green-ball'
-
- def IsExpandable(self):
- return 0
-
-class FACTItem(CMDItem):
- def GetIconName(self):
- return 'ast-green-los'
-
-class BLOCItem(FACTItem): pass
-
-class ATTRIBUTItem(SIMPItem):
- def get_dico_attributs(self):
- self.d_attributs = {}
-
- def GetSubList(self):
- return []
-
- def IsExpandable(self):
- return 0
-
- def GetText(self):
- return self.object
-
- def GetIconName(self):
- return 'aucune'
-
-class CataBrowser:
- def __init__(self,parent,appli,cata,item = None):
- self.parent = parent
- self.cata = cata
- self.appli = appli
- self.item = item
- self.init()
-
- def close(self):
- self.top.destroy()
-
- def init(self):
- self.nodes={}
- self.top = Pmw.Dialog(self.parent,
- title = "Visualisation d'un catalogue",
- buttons=('OK',),
- command = self.quit)
- self.pane = Pmw.PanedWidget(self.top.component('dialogchildsite'),
- hull_width = 800,
- hull_height = 500,
- orient = 'horizontal')
- self.pane.add('canvas',min = 0.4, max = 0.6, size = 0.5)
- self.pane.add('panel',min = 0.4, max = 0.6, size = 0.5)
- self.pane.pack(expand =1, fill = 'both')
- self.scrolledcanvas = Pmw.ScrolledCanvas(self.pane.pane('canvas'),
- hull_width=1.,
- hull_height=1.,
- borderframe=1)
- Pmw.Color.changecolor(self.scrolledcanvas.component('canvas'),background='gray95')
- self.scrolledcanvas.pack(padx=10,pady=10,expand=1, fill="both")
- if self.item == None :
- self.item = CATAItem(self.appli,"Catalogue",self.cata)
- self.tree = Tree(self.appli,self.item,self.scrolledcanvas,command = self.select_node)
- self.tree.draw()
- self.node = self.tree.node_selected
-
- def select_node(self,node):
- self.nodes[node]=self.create_panel(node)
-
- def create_panel(self,node):
- if hasattr(node.item,"panel"):
- return getattr(node.item,"panel")(self,self.pane.pane('panel'),node)
-
- def quit(self,nom_bouton) :
- self.top.destroy()
-
- def settitle(self):
- self.top.wm_title("Browser de catalogue " )
- self.top.wm_iconname("CataBrowser")
-
-
-dispatch = {
- OPER : CMDItem,
- PROC : CMDItem,
- MACRO : CMDItem,
- SIMP : SIMPItem,
- FACT : FACTItem,
- BLOC : BLOCItem,
-}
-
-def TYPE(o):
- if isinstance(o,OPER):return OPER
- elif isinstance(o,PROC):return PROC
- elif isinstance(o,MACRO):return MACRO
- elif isinstance(o,FORM):return MACRO
- elif isinstance(o,SIMP):return SIMP
- elif isinstance(o,FACT):return FACT
- elif isinstance(o,BLOC):return BLOC
- else:return type(o)
-
-def make_objecttreeitem(appli,labeltext, object, setfunction=None,objet_cata_ordonne=None):
- t = TYPE(object)
- if dispatch.has_key(t):
- c = dispatch[t]
- else:
- #print 'on a un objet de type :',t,' ',object
- c = ATTRIBUTItem
- return c(appli,labeltext, object, setfunction = setfunction,objet_cata_ordonne=objet_cata_ordonne)
-
-def isCMD(cmd):
- return isinstance(cmd,OPER) or isinstance(cmd,PROC) or isinstance(cmd,MACRO) or isinstance(cmd,FORM)
-
-
-
+++ /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.
-#
-#
-# ======================================================================
-# Modules Python
-import os
-import sys
-import types
-import string
-import Pmw
-from tkMessageBox import showinfo,askyesno,showerror,askretrycancel
-from Tkinter import *
-
-# Modules Eficas
-import fontes
-from widgets import *
-from treewidget import Tree
-from Objecttreeitem import TreeItem
-from Accas import AsException
-from Noyau.N_CR import justify_text
-
-from Accas import ASSD,GEOM
-import definition_cata
-
-#
-__version__="$Name: $"
-__Id__="$Id: cataediteur.py,v 1.2 2002/05/15 15:31:58 eficas Exp $"
-#
-
-Fonte_Niveau = fontes.canvas_gras_italique
-
-class Panel(Frame) :
- """ Classe servant de classe mère à toutes celles représentant les
- panneaux à afficher en fonction de la nature de l'objet en cours
- Elle est toujours dérivée."""
- def __init__(self,parent,panneau,node) :
- self.parent=parent
- self.panneau = panneau
- self.node=node
- Frame.__init__(self,self.panneau)
- self.place(x=0,y=0,relheight=1,relwidth=1)
- #self.creer_boutons()
- self.init()
-
- def creer_boutons(self):
- """ Méthode créant les boutons se trouvant dans la partie contextuelle d'EFICAS
- (à droite sous les onglets ) """
- self.fr_but = Frame(self,height=30)
- self.fr_but.pack(side='bottom',fill='x')
- self.bouton_com = Button(self.fr_but,
- text = 'Commentaire',
- command = self.ajout_commentaire,
- width=14)
- self.bouton_sup = Button(self.fr_but,
- text = "Supprimer",
- command=self.supprimer,
- width=14)
- self.bouton_doc = Button(self.fr_but,
- text="Documentation",
- command=self.visu_doc,
- width=14)
- self.bouton_cata = Button(self.fr_but,
- text = "Catalogue",
- command = self.show_catalogue,
- width=14)
- if self.parent.appli.CONFIGURATION.isdeveloppeur == 'OUI':
- self.bouton_sup.place(relx=0.25,rely = 0.5,relheight = 0.8,anchor='w')
- self.bouton_cata.place(relx=0.5,rely = 0.5,relheight = 0.8,anchor='w')
- self.bouton_doc.place(relx=0.75,rely = 0.5,relheight = 0.8,anchor='w')
- else:
- self.bouton_sup.place(relx=0.3,rely = 0.5,relheight = 0.8,anchor='w')
- self.bouton_doc.place(relx=0.7,rely = 0.5,relheight = 0.8,anchor='w')
-
- def show_catalogue(self):
- try:
- genea = self.node.item.get_genealogie()
- self.parent.appli.browser_catalogue_objet(genea)
- except Exception,e:
- traceback.print_exc()
-
- def efface(self):
- self.node.efface()
-
- def ajout_commentaire(self,ind='after'):
- """ Ajoute un commentaire à l'intérieur du JDC, par défaut après le noeud en cours"""
- if self.parent.modified == 'n' : self.parent.init_modif()
- return self.node.append_brother("COMMENTAIRE",ind)
-
- def ajout_commentaire_first(self):
- """ Ajoute un commentaire en début de JDC"""
- if self.parent.modified == 'n' : self.parent.init_modif()
- return self.node.append_child("COMMENTAIRE",'first')
-
- def visu_doc(self):
- """ Permet d'ouvrir le fichier doc U de la commande au format pdf avec Acrobat Reader
- - Ne fonctionne pas sous UNIX (chemin d'accès Acrobat Reader)
- - indication du chemin d'accès aux fichiers pdf à revoir : trop statique"""
- #cle_doc = self.node.item.get_docu()
- cle_doc = self.parent.appli.get_docu(self.node)
- if cle_doc == None : return
- cle_doc = string.replace(cle_doc,'.','')
- #cle_doc = string.upper(cle_doc)
- commande = self.parent.appli.CONFIGURATION.exec_acrobat
- #nom_fichier = cle_doc+".pdf"
- nom_fichier = cle_doc+".doc"
- rep_fichier = cle_doc[0:2]
- fichier = os.path.abspath(os.path.join(self.parent.appli.CONFIGURATION.path_doc,rep_fichier,nom_fichier))
- print 'commande =',commande
- print 'fichier =',fichier
- print 'existe =',os.path.isfile(fichier)
- if os.name == 'nt':
- os.spawnv(os.P_NOWAIT,commande,(commande,fichier))
- elif os.name == 'posix':
- script ="#!/usr/bin/sh \n%s %s" %(commande,nom_fichier)
- pid = os.system(script)
-
- def supprimer(self):
- """ Suppression du noeud courant """
- 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 """
- self.tkraise()
-
- def selectMC(self,name):
- """ On retrouve le mot-clé sous le curseur pour affichage du fr """
- cmd=self.node.item.get_definition()
- texte_infos = ''
- for e in cmd.entites.keys() :
- if e == name :
- texte_infos=getattr(cmd.entites[e],'fr')
- break
- if texte_infos == '' : texte_infos="Pas d'infos disponibles"
- self.parent.appli.affiche_infos(texte_infos)
-
- def defMC(self,name):
- """ On ajoute un mot-clé à la commande : subnode """
- if name == SEPARATEUR:return
- if self.parent.modified == 'n' : self.parent.init_modif()
- if name != "COMMENTAIRE":
- self.node.append_child(name)
- else :
- self.ajout_commentaire()
-
- def selectFilsCmd(self,name):
- pass
-
- def defFilsCmd(self,name):
- pass
-
- def defCmdFirst(self,name):
- """ On ajoute une commande ou un commentaire au début du fichier de commandes """
- if name == SEPARATEUR:return
- if self.parent.modified == 'n' : self.parent.init_modif()
- if name != "COMMENTAIRE":
- new_node = self.node.append_child(name,'first')
- else :
- new_node = self.ajout_commentaire_first()
-
- def add_commande_avant(self,event=None):
- pass
-
- def add_commande_apres(self,event=None):
- pass
-
-class OngletPanel(Panel) :
- """ Cette classe est virtuelle et doit être dérivée
- Elle contient les principales méthodes d'affichage des différents onglets"""
-
- def raisecmd(self,page):
- self.nb.page(page).focus_set()
- if page == 'Concept': self._any.focus()
-
- def affiche(self):
- page=self.nb.getcurselection()
- self.nb.page(page).focus_set()
- if page == 'Concept':self._any.component('entry').focus_set()
- self.tkraise()
-
- def makeConceptPage(self,page):
- """ Crée la page de saisie du nom du concept """
- self.label = Label(page,text='Nom du concept :')
- self.label.place(relx=0.1,rely=0.4)
- self._any = Entry(page,relief='sunken')
- self._any.place(relx=0.35,rely=0.4,relwidth=0.5)
- self._any.bind("<Return>",lambda e,s=self:s.execConcept())
- self._any.insert(0,self.node.item.GetText())
- type_sd = self.node.item.object.get_type_sd_prod()
- if type_sd :
- txt = "L'opérateur courant retourne un objet de type %s" %type_sd
- self.label = Label(page, text = txt)
- self.label.place(relx=0.5,rely=0.55,anchor='n')
- self._any.focus()
-
- def makeCommandePage(self,page):
- """ Affiche la page d'ajout d'une commande relativement à l'objet commande sélectionné """
- titre = "Où voulez-vous insérer une commande par rapport à %s" %self.node.item.object.nom
- Label(page,text=titre).place(relx=0.5,rely=0.2,anchor='w')
- b_avant = Button(page,text='AVANT',
- command = self.node.item.add_commande_avant)
- b_apres = Button(page,text='APRES',
- command = self.node.item.add_commande_apres)
- b_avant.place(relx=0.35,rely=0.5,anchor='w')
- b_apres.place(relx=0.65,rely=0.5,anchor='w')
-
- def deselectMC(self,name):
- self.parent.appli.affiche_infos('')
-
- def get_liste_cmd(self):
- listeCmd = self.node.item.object.niveau.definition.get_liste_cmd()
- return listeCmd
-
- def get_liste_fils_cmd(self):
- return ['Mot-clé simple','Mot-clé facteur','Bloc']
-
- def makeMoclesPage(self,page):
- frame1 = Frame(page,height = 20)
- frame1.pack(side='top',fill='x')
- label = Label(frame1,text ="Le mot-clé choisi sera ajouté à la fin du catalogue")
- label.pack(side='top')
- frame2 = Frame(page)
- frame2.pack(side='top',fill='both',expand=1)
- liste_cmd = self.get_liste_fils_cmd()
- liste_commandes = (("<Enter>",self.selectFilsCmd),
- ("<Leave>",self.deselectFilsCmd),
- ("<Double-Button-1>",self.defFilsCmd))
- Liste = ListeChoix(self,frame2,liste_cmd,liste_commandes = liste_commandes,titre = "Mots-clés")
- Liste.affiche_liste()
-
- def deselectFilsCmd(self,name):
- pass
-
- def makeJDCPage(self,page):
- 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")
- Liste.affiche_liste()
-
- def makeReglesPage(self,page) :
- regles = []
- regles = self.node.item.get_regles()
- dictionnaire = self.node.item.get_mc_presents()
- texte_regles = []
- l_regles_en_defaut=[]
- if len(regles) > 0:
- i = 0
- for regle in regles :
- texte_regles.append(regle.gettext())
- texte,test = regle.verif(dictionnaire)
- if test == 0 : l_regles_en_defaut.append(i)
- i = i+1
- Liste = ListeChoix(self,page,texte_regles,liste_marques=l_regles_en_defaut,active='non',titre="Règles")
- Liste.affiche_liste()
- #self.afficheListe(page,texte_regles,self.selectRegle,self.execRegle)
-
- def execConcept(self):
- """ Nomme le concept SD retourné par l'étape """
- if self.parent.modified == 'n' : self.parent.init_modif()
- nom = self._any.get()
- # Pourquoi node.etape ???
- #test,mess = self.node.etape.item.nomme_sd(nom)
- test,mess = self.node.item.nomme_sd(nom)
- self.parent.appli.affiche_infos(mess)
- self.node.racine.update()
-
- def changed(self):
- pass
-
- def makeAttributsPage(self,page):
- l_attributs=self.node.item.object.attributs
- d_defauts = self.node.item.object.attributs_defauts
- for attribut in l_attributs :
- attr = self.node.item.object.entites_attributs.get(attribut,None)
- if attr.valeur is d_defauts[attribut] :
- texte = attribut+' = '+repr(attr.valeur)+' (defaut)'
- else:
- texte = attribut+' = '+repr(attr.valeur)
- Label(page,text=texte).pack(side='top')
-
- def makeSimpPage(self,page):
- texte = "Où voulez-vous ajouter un mot-clé simple ?"
- Label(page,text=texte).place(relx=0.5,rely=0.3,anchor='center')
- b1 = Button(page,text='AVANT '+self.node.item.object.nom,command=self.add_simp_avant)
- b2 = Button(page,text='APRES '+self.node.item.object.nom,command=self.add_simp_apres)
- b1.place(relx=0.5,rely=0.5,anchor='center')
- b2.place(relx=0.5,rely=0.6,anchor='center')
-
- def add_simp_avant(self,event=None):
- """
- Ajoute un mot-clé simple avant celui courant
- """
- self.node.append_brother('new_simp','before')
- self.node.update()
-
- def add_simp_apres(self,event=None):
- """
- Ajoute un mot-clé simple après celui courant
- """
- self.node.append_brother('new_simp','after')
- self.node.update()
-
-class TYPEPanel(Frame):
- def __init__(self,parent,panneau,node) :
- self.parent=parent
- self.panneau = panneau
- self.node=node
- Frame.__init__(self,self.panneau)
- self.place(x=0,y=0,relheight=1,relwidth=1)
- self.creer_texte()
-
- def creer_texte(self):
- texte = "Le noeud sélectionné correspond à un type\n"
- self.label = Label(self,text=texte)
- self.label.place(relx=0.5,rely=0.4,relwidth=0.8,anchor='center')
-
-class OPERPanel(OngletPanel):
- def init(self):
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
-
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Mocles', tab_text='Ajouter mots-clés')
- nb.add('Commandes',tab_text='Ajouter une commande')
- self.makeMoclesPage(nb.page("Mocles"))
- self.makeCommandePage(nb.page("Commandes"))
- nb.tab('Mocles').focus_set()
- nb.setnaturalsize()
- self.affiche()
-
-class SIMPPanel(OngletPanel):
- def init(self):
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('generaux', tab_text='Données générales')
- nb.add('ihm',tab_text='Données IHM')
- nb.add('mocle',tab_text='Ajouter un mot-cle simple')
- self.makeAttributsGenerauxPage(nb.page("generaux"))
- self.makeAttributsIHMPage(nb.page("ihm"))
- self.makeSimpPage(nb.page('mocle'))
- nb.tab('generaux').focus_set()
- nb.setnaturalsize()
- self.affiche()
-
- def makeAttributsGenerauxPage(self,page):
- fr1 = Frame(page,bd=1,relief='raised')
- fr2 = Frame(page,bd=1,relief='raised')
- fr3 = Frame(page,bd=1,relief='raised')
- fr4 = Frame(page,bd=1,relief='raised')
- fr5 = Frame(page,bd=1,relief='raised')
- fr1.place(relheight=0.14,relwidth=1,rely=0)
- fr2.place(relheight=0.14,relwidth=1,rely=0.14)
- fr3.place(relheight=0.29,relwidth=1,rely=0.28)
- fr4.place(relheight=0.14,relwidth=1,rely=0.57)
- fr5.place(relheight=0.28,relwidth=1,rely=0.71)
- # nom du mot-clé
- Label(fr1,text = 'Nom :').place(relx=0.05,rely=0.3,anchor='w')
- self.e_nom = Entry(fr1)
- self.e_nom.place(relx=0.35,rely=0.3,relwidth=0.3,anchor='w')
- self.e_nom.bind("<Return>",lambda e,s=self : s.set_valeur_attribut('nom',None))
- self.e_nom.insert(0,self.get_valeur_attribut('nom'))
- # Statut
- Label(fr1,text='Statut : ').place(relx=0.05,rely=0.7,anchor='w')
- self.statut=StringVar()
- valeurs_statut=[('obligatoire','o'),
- ('facultatif','f'),
- ('caché','c')
- ]
- self.statut.set(self.node.item.object.get_valeur_attribut('statut'))
- i=0
- for text,mode in valeurs_statut:
- b=Radiobutton(fr1,text=text,variable=self.statut,value=mode,
- command = lambda s=self,m=mode : s.set_valeur_attribut('statut',m))
- b.place(relx=0.25+i*0.25,rely=0.7,anchor='w')
- i=i+1
- # Type ...
- Label(fr2,text='Type de la valeur : ').place(relx=0.05,rely=0.5,anchor='w')
- self.e_type = Entry(fr2)
- self.e_type.place(relx=0.35,rely=0.5,relwidth=0.5,anchor='w')
- self.e_type.insert(0,self.node.item.object.get_valeur_attribut('type'))
- # Domaine de validité
- Label(fr3,text='Domaine de validité : ').place(relx=0.05,rely=0.2,anchor='w')
- self.domaine = StringVar()
- self.domaine.set(self.node.item.object.get_valeur_attribut('domaine_validité'))
- b1=Radiobutton(fr3,text='continu',variable=self.domaine,value='continu',
- command=lambda s=self,f=fr3 :s.change_domaine(f))
- b2=Radiobutton(fr3,text='discret',variable=self.domaine,value='discret',
- command=lambda s=self,f=fr3 :s.change_domaine(f))
- b1.place(relx=0.35,rely=0.2,anchor='w')
- b2.place(relx=0.65,rely=0.2,anchor='w')
- self.change_domaine(fr3)
- # Défaut ...
- if self.domaine.get() == 'continu':
- # le développeur peut donner la valeur qu'il souhaite, moyennant la vérification de type...
- Label(fr4,text='Valeur par défaut : ').place(relx=0.05,rely=0.5,anchor='w')
- self.e_defaut = Entry(fr4)
- self.e_defaut.place(relx=0.35,rely=0.5,relwidth=0.5,anchor='w')
- if self.node.item.object.get_valeur_attribut('defaut') :
- self.e_defaut.insert(0,self.node.item.object.get_valeur_attribut('defaut'))
- self.e_defaut.bind("<Return>",lambda e,s=self : s.set_valeur_attribut('defaut',None))
- else :
- # dans le cas discret, la valeur par défaut doit être dans l'ensemble des valeurs possibles (into)
- liste = self.node.item.object.get_valeur_attribut('into')
- if self.node.item.object.get_valeur_attribut('defaut') :
- self.set_valeur_attribut('defaut',self.node.item.object.get_valeur_attribut('defaut'))
- if liste == None : liste = []
- self.e_defaut = Pmw.OptionMenu(fr4,labelpos='w',label_text = "Valeur par défaut : ",
- items = self.node.item.object.get_valeur_attribut('into'),
- menubutton_width=30)
- self.e_defaut.configure(command = lambda e,s=self : s.set_valeur_attribut('defaut',None))
- self.e_defaut.place(relx=0.05,rely=0.5,anchor='w')
- # Liste de valeurs ?
- Label(fr5,text='Liste de valeurs : ').place(relx=0.05,rely=0.2,anchor='w')
- self.liste_valeurs = BooleanVar()
- liste_valeurs = [('OUI',1),('NON',0)]
- self.liste_valeurs.set(0)
- i=0
- for text,mode in liste_valeurs:
- b=Radiobutton(fr5,text=text,variable=self.liste_valeurs,value=mode,
- command=lambda s=self,f=fr5 :s.change_liste_valeurs(f))
- b.place(relx=0.35+i*0.2,rely=0.2,anchor='w')
- i=i+1
- self.change_liste_valeurs(fr5)
-
- def makeAttributsIHMPage(self,page):
- fr1 = Frame(page,height=100,bd=1,relief='raised')
- fr2 = Frame(page,height=50,bd=1,relief='raised')
- fr1.pack(side='top',fill='x')
- fr2.pack(side='top',fill='x')
- # Champ fr ...
- Label(fr1,text='Champ fr : ').place(relx=0.05,rely=0.35,anchor='w')
- self.e_fr = Entry(fr1)
- self.e_fr.place(relx=0.35,rely=0.35,relwidth=0.6,anchor='w')
- self.e_fr.insert(0,self.node.item.object.get_valeur_attribut('fr'))
- # Champ ang ...
- Label(fr1,text='Champ ang : ').place(relx=0.05,rely=0.70,anchor='w')
- self.e_ang = Entry(fr1)
- self.e_ang.place(relx=0.35,rely=0.70,relwidth=0.6,anchor='w')
- self.e_ang.insert(0,self.node.item.object.get_valeur_attribut('ang'))
- # Clé documentaire ...
- Label(fr2,text='Clé documentaire : ').place(relx=0.05,rely=0.50,anchor='w')
- self.e_docu = Entry(fr2)
- self.e_docu.place(relx=0.35,rely=0.50,relwidth=0.6,anchor='w')
- self.e_docu.insert(0,self.node.item.object.get_valeur_attribut('docu'))
-
- def detruit_widgets(self,l_widgets):
- for nom_widg in l_widgets :
- try:
- widg = getattr(self,nom_widg)
- widg.place_forget()
- delattr(self,nom_widg)
- except:
- pass
-
- def change_liste_valeurs(self,fr5):
- valeur = self.liste_valeurs.get()
- if valeur == 0 :
- # pas de liste de valeurs
- l_widgets=['l_homo','b1_homo','b2_homo','l_min','e_min','l_max','e_max']
- self.detruit_widgets(l_widgets)
- elif valeur == 1:
- # pas de widgets à détruire ...
- if hasattr(self,'l_homo') :
- # on est déjà en mode 'liste' --> rien à faire
- return
- # homo
- self.l_homo = Label(fr5,text='Liste homogène : ')
- self.l_homo.place(relx=0.05,rely=0.4,anchor='w')
- self.homo = BooleanVar()
- self.homo.set(self.node.item.object.get_valeur_attribut('homo'))
- self.b1_homo=Radiobutton(fr5,text='OUI',variable=self.homo,value=1)
- self.b2_homo=Radiobutton(fr5,text='NON',variable=self.homo,value=0)
- self.b1_homo.place(relx=0.35,rely=0.4,anchor='w')
- self.b2_homo.place(relx=0.65,rely=0.4,anchor='w')
- # min ...
- self.l_min = Label(fr5,text='Longueur minimale : ')
- self.l_min.place(relx=0.05,rely=0.6,anchor='w')
- self.e_min = Entry(fr5)
- self.e_min.place(relx=0.4,rely=0.6,relwidth=0.3,anchor='w')
- self.e_min.insert(0,self.node.item.object.get_valeur_attribut('min'))
- # max ...
- self.l_max = Label(fr5,text='Longueur maximale : ')
- self.l_max.place(relx=0.05,rely=0.8,anchor='w')
- self.e_max = Entry(fr5)
- self.e_max.place(relx=0.4,rely=0.8,relwidth=0.3,anchor='w')
- self.e_max.insert(0,self.node.item.object.get_valeur_attribut('max'))
-
- def change_domaine(self,fr3):
- valeur = self.domaine.get()
- if valeur == 'discret' :
- l_widgets = ['l_val_min','l_val_max','e_val_min','e_val_max']
- self.detruit_widgets(l_widgets)
- # into
- #self.l_into = Label(fr3,text='Ensemble de valeurs : ')
- #self.l_into.place(relx=0.2,rely=0.5,anchor='w')
- self.e_into = Pmw.ScrolledListBox(fr3,
- items=self.node.item.object.get_valeur_attribut('into'),
- labelpos='w',
- label_text= 'Ensemble de valeurs : ',
- listbox_height = 3,
- dblclickcommand = self.change_into)
- self.e_into.place(relx=0.05,rely=0.6,relwidth=0.9,anchor='w')
- #self.e_into.insert(0,self.node.item.object.get_valeur_attribut('into'))
- elif valeur == 'continu':
- l_widgets = ['l_into','e_into']
- self.detruit_widgets(l_widgets)
- if hasattr(self,'l_val_min'):
- # on est déjà en mode 'continu' --> rien à faire
- return
- # val_min
- self.l_val_min = Label(fr3,text='Valeur minimale : ')
- self.l_val_min.place(relx=0.05,rely=0.5,anchor='w')
- self.e_val_min = Entry(fr3)
- self.e_val_min.place(relx=0.35,rely=0.5,relwidth=0.5,anchor='w')
- self.e_val_min.bind("<Return>",lambda e,s=self : s.set_valeur_attribut('val_min',None))
- self.set_valeur_attribut('val_min',self.get_valeur_attribut('val_min'))
- # val_max
- self.l_val_max = Label(fr3,text='Valeur maximale : ')
- self.l_val_max.place(relx=0.05,rely=0.8,anchor='w')
- self.e_val_max = Entry(fr3)
- self.e_val_max.place(relx=0.35,rely=0.8,relwidth=0.5,anchor='w')
- self.e_val_max.bind("<Return>",lambda e,s=self : s.set_valeur_attribut('val_max',None))
- self.set_valeur_attribut('val_max',self.get_valeur_attribut('val_max'))
-
-# ------------------------------------------------------------------
-# Méthodes de validation des entrées faites par l'utilisateur
-# ------------------------------------------------------------------
-
- def get_valeur_attribut(self,nom_attr):
- """
- Demande à l'item de retourner la valeur de l'attribut nom_attr
- """
- return self.node.item.get_valeur_attribut(nom_attr)
-
- def set_valeur_attribut(self,nom_attr,new_valeur):
- """
- Affecte la valeur new_valeur à l'attribut nom_attr
- Vérifie si celle-ci est valide, sinon restaure l'ancienne
- """
- if new_valeur is None :
- widget = getattr(self,'e_'+nom_attr)
- if hasattr(widget,'getcurselection'):
- new_valeur = widget.getcurselection()
- else:
- new_valeur = widget.get()
- print "on affecte %s a %s" %(str(new_valeur),nom_attr)
- self.node.item.set_valeur_attribut(nom_attr,new_valeur)
- self.node.update()
-
- def change_into(self):
- """
- Méthode activée par double clic sur la ListBox d'affichage des valeurs discrètes possibles :
- permet de changer la liste de ces valeurs
- """
- showinfo("Fonction non encore disponible",
- "Vous ne pouvez pas encore modifier la liste into par cette IHM")
-
-class OBJECTItem(TreeItem):
- def __init__(self,appli,labeltext,object,setfunction=None,objet_cata_ordonne = None):
- self.appli = appli
- self.labeltext = labeltext
- self.object=object
- self.setfunction = setfunction
- self.objet_cata_ordonne = objet_cata_ordonne
-
- def GetLabelText(self):
- return self.labeltext,None,None
-
- def get_fr(self):
- return ''
-
- def isMCList(self):
- return 0
-
- def isactif(self):
- return 1
-
- def add_commande_avant(self):
- pass
-
- def add_commande_apres(self):
- pass
-
- def set_valeur_attribut(self,nom_attr,new_valeur):
- """
- Affecte la valeur new_valeur à l'attribut nom_attr
- Vérifie si celle-ci est valide, sinon restaure l'ancienne
- """
- old_valeur = self.object.get_valeur_attribut(nom_attr)
- self.object.set_valeur_attribut(nom_attr,new_valeur)
- verificateur = 'verif_'+nom_attr
- if hasattr(self.object,verificateur):
- if not getattr(self.object,verificateur)():
- # la nouvelle valeur de nom_attr n'est pas valide : on restaure l'ancienne (sans vérification)
- self.object.set_valeur_attribut(nom_attr,old_valeur)
- print 'changement de valeur refuse'
- return
- print 'changement de valeur accepte'
- self.object.init_modif()
-
- def get_valeur_attribut(self,nom_attr):
- """
- Retourne la valeur de l'attribut nom_attr
- """
- return self.object.get_valeur_attribut(nom_attr)
-
-class CATAItem(OBJECTItem):
- def GetSubList(self):
- sublist=[]
- for fils in self.object.entites_fils:
- item = make_objecttreeitem(self.appli,fils.objet.label + " : ",fils,objet_cata_ordonne=self.objet_cata_ordonne)
- sublist.append(item)
- return sublist
-
- def GetIconName(self):
- if self.object.isvalid():
- return 'ast-green-square'
- else:
- return 'ast-red-square'
-
- def GetText(self):
- return "Catalogue %s" %self.appli.code
-
- def add_commande_avant(self):
- pass
-
- def add_commande_apres(self):
- pass
-
-
-def transforme_liste_dico(liste):
- d={}
- for item in liste :
- d[item.nom]=item
- return d
-
-class OPERItem(OBJECTItem):
- panel = OPERPanel
- def GetSubList(self):
- sublist=[]
- # on classe les fils dans l'ordre du catalogue ...
- l_cles_fils = self.get_liste_mc_ordonnee()
- # on crée les items fils ...
- dico_fils = transforme_liste_dico(self.object.entites_fils)
- 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.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)
- sublist.append(item)
- return sublist
-
- def GetText(self):
- #return self.object.nom
- return self.object.get_valeur_attribut('nom')
-
- def get_liste_mc_ordonnee(self):
- return self.objet_cata_ordonne.ordre_mc
-
- def GetIconName(self):
- if self.object.isvalid():
- return 'ast-green-square'
- else:
- return 'ast-red-square'
-
- def additem(self,name,pos):
- if isinstance(name,TreeItem) :
- cmd=self.object.addentite(name.object,pos)
- else :
- cmd = self.object.addentite(name,pos)
- typ = TYPE_COMPLET(cmd)
- item = make_objecttreeitem(self.appli,typ + " : ", cmd)
- return item
-
- def get_attribut(self,nom):
- if nom == 'nature': return 'OPERATEUR'
-
- def get_liste_mc_presents(self):
- return []
-
- def verif_condition_regles(self,liste):
- return []
-
-class PROCItem(OPERItem):
- panel = OPERPanel
-
-class MACROItem(OPERItem):
- panel = OPERPanel
-
-class SIMPItem(OPERItem):
- panel = SIMPPanel
-
- def GetIconName(self):
- if self.object.isvalid():
- return 'ast-green-ball'
- else:
- return 'ast-red-ball'
-
- def IsExpandable(self):
- return 0
-
- def GetSubList(self):
- return []
-
-class FACTItem(OPERItem):
- def GetIconName(self):
- if self.object.isvalid():
- return 'ast-green-los'
- else:
- return 'ast-red-los'
-
-class BLOCItem(FACTItem): pass
-
-class TYPEItem(SIMPItem):
- panel = TYPEPanel
- def get_dico_attributs(self):
- self.d_attributs = {}
-
- def GetSubList(self):
- return []
-
- def IsExpandable(self):
- return 0
-
- def GetText(self):
- return self.object.nom
-
-class NIVEAUItem(OPERItem):
- def IsExpandable(self):
- return 1
-
- def get_liste_mc_ordonnee(self):
- l=[]
- for fils in self.object.entites_fils:
- l.append(fils.nom)
- return l
-
- def GetSubList(self):
- sublist=[]
- # on classe les fils dans l'ordre du catalogue ...
- l_cles_fils = self.get_liste_mc_ordonnee()
- # on crꥠles items fils ...
- dico_fils = transforme_liste_dico(self.object.entites_fils)
- 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.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)
- sublist.append(item)
- return sublist
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- return self.labeltext,Fonte_Niveau,'#00008b'
-
- def GetIconName(self):
- if self.object.isvalid():
- return "ast-green-text"
- else:
- return 'ast-red-text'
-
- def additem(self,name,pos):
- if isinstance(name,TreeItem) :
- cmd=self.object.addentite(name.object,pos)
- else :
- cmd = self.object.addentite(name,pos)
- typ = TYPE_COMPLET(obj)
- item = make_objecttreeitem(self.appli,typ+ " : ", cmd)
- return item
-
- def suppitem(self,item) :
- # item = item de l'ETAPE à supprimer du JDC
- # item.object = ETAPE ou _C
- # self.object = JDC
- self.object.suppentite(item.object)
- if isinstance(item.object,_C):
- message = "Commentaire supprimé"
- self.appli.affiche_infos(message)
- else :
- message = "Commande " + item.object.nom + " supprimée"
- self.appli.affiche_infos(message)
- return 1
-
- def GetText(self):
- return ''
-
-class ATTRIBUTItem(SIMPItem):
- def get_dico_attributs(self):
- self.d_attributs = {}
-
- def GetSubList(self):
- return []
-
- def IsExpandable(self):
- return 0
-
- def GetText(self):
- return self.object
-
- def GetIconName(self):
- return 'aucune'
-
-class CataEditeur:
- def __init__(self,parent,appli,cata):
- self.parent = parent
- self.cata = definition_cata.CATALOGUE(cata)
- self.appli = appli
- self.top = Toplevel()
- self.top.geometry("800x500")
- self.top.title("Edition d'un catalogue")
- self.init()
-
- def close(self):
- self.top.destroy()
-
- def init(self):
- self.nodes={}
- self.creerbarremenus()
- self.pane = Pmw.PanedWidget(self.top,
- hull_width = 800,
- hull_height = 500,
- orient = 'horizontal')
- self.pane.add('canvas',min = 0.4, max = 0.6, size = 0.5)
- self.pane.add('panel',min = 0.4, max = 0.6, size = 0.5)
- self.pane.pack(expand =1, fill = 'both')
- self.scrolledcanvas = Pmw.ScrolledCanvas(self.pane.pane('canvas'),
- hull_width=1.,
- hull_height=1.,
- borderframe=1)
- Pmw.Color.changecolor(self.scrolledcanvas.component('canvas'),background='gray95')
- self.scrolledcanvas.pack(padx=10,pady=10,expand=1, fill="both")
- self.item = CATAItem(self.appli,"Catalogue",
- self.cata,
- objet_cata_ordonne = self.appli.readercata.cata_ordonne_dico)
-
- self.tree = Tree(self.appli,self.item,self.scrolledcanvas,command = self.select_node)
- self.tree.draw()
- self.node = self.tree.node_selected
-
- def creerbarremenus(self) :
- self.menubar=Menu(self.top)
- self.filemenu=Menu(self.menubar,tearoff=0)
- self.filemenu.add_command(label='Quitter',command=self.quit)
-
- self.editmenu=Menu(self.menubar,tearoff=0)
- #self.editmenu.add_command(label='Copier',command=self.copy)
- #self.editmenu.add_command(label='Couper',command=self.cut)
- #self.editmenu.add_command(label='Coller',command=self.paste)
-
- self.affichagemenu=Menu(self.menubar,tearoff=0)
- self.affichagemenu.add_command(label='Rapport de validation',
- command = self.visuCR)
- self.affichagemenu.add_command(label='shell',command = self.shell)
- #self.affichagemenu.add_command(label='Fichier ࡰlat',command=self.visu_a_plat)
- #self.affichagemenu.add_command(label='Fichier .py',command =self.visuJDC_py)
- #self.affichagemenu.add_command(label='Fichier source',command = self.visu_txt_brut_JDC)
- #self.affichagemenu.add_command(label='Param鵲es Eficas',command=self.affichage_fichier_ini)
-
- #self.optionmenu=Menu(self.menubar,tearoff=0)
- #self.optionmenu.add_command(label='Catalogue d귥loppeur',command=self.choix_cata_developpeur)
-
- self.menubar.add_cascade(label='Fichier',menu=self.filemenu)
- self.menubar.add_cascade(label='Edition',menu=self.editmenu)
- self.menubar.add_cascade(label='Jeu de commandes',menu=self.affichagemenu)
- #self.menubar.add_cascade(label='Browsers',menu=self.browsermenu)
- #self.menubar.add_cascade(label='Catalogue',menu=self.cataloguemenu)
- #self.menubar.add_cascade(label='Options',menu=self.optionmenu)
- self.top.configure(menu=self.menubar)
- self.top.protocol("WM_DELETE_WINDOW",self.quit)
- self.top.minsize(900,500)
- self.top.geometry("900x500")
-
- def shell(self,event=None):
- import Interp
- d={'j':self.tree.item.object}
- Interp.InterpWindow(d,parent=self.parent)
-
- def visuCR(self,mode='Cata'):
- txt = str(self.cata.report())
- titre="Rapport de validation du catalogue"
- Fenetre(self.appli,titre=titre,texte=txt)
-
- def select_node(self,node):
- self.nodes[node]=self.create_panel(node)
-
- def create_panel(self,node):
- if hasattr(node.item,"panel"):
- return getattr(node.item,"panel")(self,self.pane.pane('panel'),node)
-
- def quit(self) :
- self.top.destroy()
-
- def settitle(self):
- self.top.wm_title("Browser de catalogue " )
- self.top.wm_iconname("CataBrowser")
-
-
-dispatch = {
- 'OPER' : OPERItem,
- 'PROC' : PROCItem,
- 'MACRO' : MACROItem,
- 'SIMP' : SIMPItem,
- 'FACT' : FACTItem,
- 'BLOC' : BLOCItem,
- 'TYPE' : TYPEItem,
- 'NIVEAU' : NIVEAUItem
-}
-
-def TYPE(o):
- if isinstance(o,definition_cata.OPER_CATA):return 'OPER'
- elif isinstance(o,definition_cata.PROC_CATA):return 'PROC'
- elif isinstance(o,definition_cata.MACRO_CATA):return 'MACRO'
- elif isinstance(o,definition_cata.SIMP_CATA):return 'SIMP'
- elif isinstance(o,definition_cata.FACT_CATA):return 'FACT'
- elif isinstance(o,definition_cata.BLOC_CATA):return 'BLOC'
- elif isinstance(o,definition_cata.TYPE_CATA):return 'TYPE'
- elif isinstance(o,definition_cata.NIVEAU_CATA) : return 'NIVEAU'
- else:return type(o)
-
-def TYPE_COMPLET(o):
- if isinstance(o,definition_cata.OPER_CATA):return "OPERATEUR"
- elif isinstance(o,definition_cata.PROC_CATA):return "PROCEDURE"
- elif isinstance(o,definition_cata.MACRO_CATA):return "MACRO"
- elif isinstance(o,definition_cata.SIMP_CATA):return "Mot-clé SIMPLE"
- elif isinstance(o,definition_cata.FACT_CATA):return "Mot-clé FACTEUR"
- elif isinstance(o,definition_cata.BLOC_CATA):return "BLOC"
- elif isinstance(o,definition_cata.TYPE_CATA):return "Type"
- elif isinstance(o,definition_cata.NIVEAU_CATA):return "Niveau"
- else: return "Inconnu ("+`type(o)`+")"
-
-def make_objecttreeitem(appli,labeltext, object, setfunction=None,objet_cata_ordonne=None):
- t = TYPE(object)
- if dispatch.has_key(t):
- c = dispatch[t]
- else:
- print 'on a un objet de type :',type(object),' ',object
- c = ATTRIBUTItem
- return c(appli,labeltext, object, setfunction = setfunction,objet_cata_ordonne=objet_cata_ordonne)
-
-
-
+++ /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 fonction utilitaire centerwindow
- qui sert à centrer une fenetre
-"""
-import types
-
-def centerwindow(window,parent = 'avec'):
- if parent =='avec':
- parent = window.winfo_parent()
- if type(parent) == types.StringType:
- parent = window._nametowidget(parent)
- # Find size of window.
- window.update_idletasks()
- width = window.winfo_width()
- height = window.winfo_height()
- if width == 1 and height == 1:
- # If the window has not yet been displayed, its size is
- # reported as 1x1, so use requested size.
- width = window.winfo_reqwidth()
- height = window.winfo_reqheight()
- # Place in centre of screen:
- if parent =='avec' :
- x = (window.winfo_screenwidth() - width) / 2 - parent.winfo_vrootx()
- y = (window.winfo_screenheight() - height) / 3 - parent.winfo_vrooty()
- else:
- x = (window.winfo_screenwidth() - width) / 2
- y = (window.winfo_screenheight() - height) / 3
- if x < 0:
- x = 0
- if y < 0:
- y = 0
- window.geometry('+%d+%d' % (x, y))
-
+++ /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 Tkinter import *
-import Pmw
-
-import Objecttreeitem
-import compofact
-
-
-class BLOCTreeItem(compofact.FACTTreeItem):
- panel = compofact.FACTPanel
-
- def get_objet(self,name) :
- for v in self.object.mc_liste:
- if v.nom == name : return v
- return None
-
- def additem(self,name,pos):
- if isinstance(name,Objecttreeitem.ObjectTreeItem) :
- mcent=self.object.addentite(name.object,pos=pos)
- else :
- mcent = self.object.addentite(name,pos=pos)
- if mcent == 0 :
- # on ne peut ajouter l'élément de nom name
- return 0
- self.expandable=1
- def setfunction(value, object=mcent):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli,mcent.nom + " : ", mcent, setfunction)
- return item
-
- def iscopiable(self):
- return 0
-
-import Accas
-treeitem = BLOCTreeItem
-objet = Accas.MCBLOC
+++ /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 Tkinter import *
-import Pmw
-import string
-
-import Objecttreeitem
-import panels
-import fontes
-
-Fonte_Commentaire = fontes.standard_italique
-
-class COMMPanel(panels.OngletPanel):
-
- def init(self):
- """
- Initialise les frame des panneaux contextuels relatifs à un COMMENTAIRE
- """
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('TexteComm', tab_text='Texte Commentaire')
- nb.add('Commande', tab_text='Nouvelle Commande')
- nb.add('Commentaire',tab_text='Paramètre/Commentaire')
- self.makeCOMMPage(nb.page("TexteComm"))
- self.makeCommandePage(nb.page("Commande"))
- self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
- nb.tab('TexteComm').focus_set()
- nb.setnaturalsize()
-
- def makeCOMMPage(self,page):
- """
- Crée la page qui permet d'afficher et d'éditer le texte du commentaire
- """
- self.frame_valeur = Frame(page)
- self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
- self.widget_text = Pmw.ScrolledText(self.frame_valeur,
- borderframe=1,
- labelpos='n',
- label_text = 'Texte du commentaire\n ')
- self.widget_text.pack(side='top',expand=1,fill='both')
- self.widget_text.configure(hscrollmode='dynamic',
- vscrollmode='dynamic')\r
- self.make_buttons()
- self.display_valeur()
-
- def make_buttons(self):
- """
- Crée les boutons du panneau
- """
- self.bouton_sup.place_forget()
- self.bouton_doc.place_forget()
- self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
- self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
-
- self.bouton_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')
-
-
- def change_valeur(self):
- """
- Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du commentaire
- """
- if self.parent.modified == 'n' : self.parent.init_modif()
- new_valeur = self.widget_text.get()
- self.node.item.set_valeur(new_valeur)
- self.node.update()
-
- def display_valeur(self):
- """
- Affiche dans self.widget_text la valeur de l'objet commentaire
- (annule d'éventuelles modifications faite par l'utilisateur)
- """
- self.widget_text.settext(self.node.item.get_valeur())
-
-class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
- panel = COMMPanel
-
- def init(self):
- self.setfunction = self.set_valeur
-
- def GetIconName(self):
- """
- Retourne le nom de l'icône associée au noeud qui porte self,
- dépendant de la validité de l'objet
- NB : un commentaire est toujours valide ...
- """
- return "ast-white-percent"
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- return 'commentaire',Fonte_Commentaire,None
-
- def get_valeur(self):
- """
- Retourne la valeur de l'objet Commentaire cad son texte
- """
- return self.object.get_valeur() or ''
-
- def GetText(self):
- texte = self.object.valeur
- texte = string.split(texte,'\n')[0]
- if len(texte) < 25 :
- return texte
- else :
- return texte[0:24]
-
- def set_valeur(self,valeur):
- """
- Afefcte valeur à l'objet COMMENTAIRE
- """
- self.object.set_valeur(valeur)
-
- def GetSubList(self):
- """
- 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
-objet = Extensions.commentaire.COMMENTAIRE
+++ /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 Tkinter import *
-import Pmw
-import string
-from tkMessageBox import showerror
-
-import Objecttreeitem
-import panels
-import fontes
-
-Fonte_Commentaire = fontes.standard_italique
-
-class COMMANDE_COMMPanel(panels.OngletPanel):
- """
- Classe servant à définir le panel associé à une commande commentarisée
- """
- def init(self):
- """
- Initialise les frame des panneaux contextuels relatifs à une commande commentarisée
- """
- panneau=Frame(self)
- panneau.pack(expand=1,fill='both')
- self.make_buttons()
- self.makeCOMMPage(panneau)
-
- def makeCOMMPage(self,page):
- """
- Crée la page qui permet d'afficher et d'éditer le texte de la commande commentarisée
- """
- self.frame_valeur = Frame(page)
- self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
- self.widget_text = Pmw.ScrolledText(self.frame_valeur,
- borderframe=1,
- labelpos='n',
- label_text = 'Texte de la commande\n ')
- self.widget_text.pack(side='top',expand=1,fill='both')
- self.widget_text.configure(hscrollmode='dynamic',
- vscrollmode='dynamic')
- self.display_valeur()
-
- def make_buttons(self):
- """
- Crée les boutons du panneau
- """
- self.bouton_sup.place_forget()
- self.bouton_doc.place_forget()
- self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
- self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
- self.bouton_unc = Button(self.fr_but,text='Décommentariser',command=self.uncomment,width=14)
-
- self.bouton_val.place(relx=0.20,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.60,rely=0.5,relheight=0.8,anchor='center')
- self.bouton_unc.place(relx=0.80,rely=0.5,relheight=0.8,anchor='center')
-
- def change_valeur(self):
- """
- Stocke la nouvelle valeur donnée par l'utilisateur comme valeur de la commande commentarisée
- """
- if self.parent.modified == 'n' : self.parent.init_modif()
- new_valeur = self.widget_text.get()
- self.node.item.set_valeur(new_valeur)
- self.node.update()
-
- def display_valeur(self):
- """
- Affiche dans self.widget_text la valeur de la commande commentarisée
- (annule d'éventuelles modifications faite par l'utilisateur)
- """
- self.widget_text.settext(self.node.item.get_valeur())
-
- def uncomment(self):
- """
- Réalise la décommentarisation de self
- """
- try:
- commande,nom = self.node.item.uncomment()
- except Exception,e:
- showerror("Erreur !",str(e))
- return
- self.parent.appli.bureau.JDCDisplay_courant.ReplaceObjectNode(self.node,commande,nom)
-
-class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem):
- panel = COMMANDE_COMMPanel
-
- def init(self):
- self.setfunction = self.set_valeur
-
- def GetIconName(self):
- """
- Retourne le nom de l'icône associée au noeud qui porte self,
- dépendant de la validité de l'objet
- NB : une commande commentarisée est toujours valide ...
- """
- if self.isvalid():
- return "ast-green-percent"
- else:
- return "ast-red-percent"
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- return 'commande commentarisée',Fonte_Commentaire,None
-
- def get_valeur(self):
- """
- Retourne la valeur de la commande commentarisée cad son texte
- """
- return self.object.get_valeur() or ''
-
- def GetText(self):
- texte = self.object.valeur
- texte = string.split(texte,'\n')[0]
- if len(texte) < 25 :
- return texte
- else :
- return texte[0:24]
-
- def set_valeur(self,valeur):
- """
- Afefcte valeur à l'objet commande commentarisée
- """
- self.object.set_valeur(valeur)
-
- def GetSubList(self):
- """
- Retourne la liste des fils de self
- """
- return []
-
- def uncomment(self):
- """
- Demande à l'objet commande commentarisée de se décommentariser.
- Si l'opération s'effectue correctement, retourne l'objet commande
- et éventuellement le nom de la sd produite, sinon lève une exception
- """
- try:
- commande,nom = self.object.uncomment()
- except Exception,e:
- raise e
- return commande,nom
-
-import Accas
-treeitem =COMMANDE_COMMTreeItem
-objet = Accas.COMMANDE_COMM
+++ /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 Pmw
-import Objecttreeitem
-import panels
-
-class FACTPanel(panels.OngletPanel) :
- def init(self) :
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Mocles', tab_text='Ajouter mots-clés')
- #nb.add('Commentaire',tab_text='Insérer commentaire')
- panneau=Pmw.PanedWidget(nb.page("Mocles"),
- orient='horizontal')
- panneau.add('left',min=0.4,max=0.6,size=0.5)
- panneau.add('right',min=0.4,max=0.6,size=0.5)
- panneau.pack(expand=1,fill='both')
- self.makeMoclesPage(panneau.pane('left'))
- self.makeReglesPage(panneau.pane('right'))
- #self.makeCommentairePage(nb.page("Commentaire"))
- nb.tab('Mocles').focus_set()
- nb.setnaturalsize()
- self.affiche()
-
-
-class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
- panel = FACTPanel
-
- def IsExpandable(self):
- return 1
-
- def GetText(self):
- return ''
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- # None --> fonte et couleur par défaut
- return self.object.getlabeltext(),None,None
-
- def isvalid(self):
- return self.object.isvalid()
-
- def iscopiable(self):
- return 1
-
- def isMCFact(self):
- """
- Retourne 1 si l'objet pointé par self est un MCFact, 0 sinon
- """
- return 1
-
- def GetIconName(self):
- if self.object.isvalid():
- return "ast-green-los"
- elif self.object.isoblig():
- return "ast-red-los"
- else:
- return "ast-yel-los"
-
- def keys(self):
- keys=self.object.mc_dict.keys()
- return keys
-
- def GetSubList(self):
- sublist=[]
- for obj in self.object.mc_liste:
- def setfunction(value, object=obj):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
- sublist.append(item)
- return sublist
-
- def additem(self,name,pos):
- if isinstance(name,Objecttreeitem.ObjectTreeItem) :
- objet = self.object.addentite(name.object,pos)
- else :
- objet = self.object.addentite(name,pos)
- self.expandable = 1
- if objet == 0 :
- # on ne peut ajouter l'élément de nom name
- return 0
- def setfunction(value, object=objet):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli,objet.nom + " : ", objet, setfunction)
- return item
-
- def suppitem(self,item) :
- """
- Cette methode a pour fonction de supprimer l'item passé en argument
- des fils de l'item FACT qui est son pere
- item = item du MOCLE à supprimer du MOCLE père
- item.object = MCSIMP ou MCBLOC
- """
- if item.object.isoblig() :
- self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
- return 0
- else :
- self.object.suppentite(item.object)
- message = "Mot-clé " + item.object.nom + " supprimé"
- self.appli.affiche_infos(message)
- return 1
-
- def verif_condition_bloc(self):
- return self.object.verif_condition_bloc()
-
-import Accas
-objet = Accas.MCFACT
-treeitem = FACTTreeItem
+++ /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 les classes permettant de définir les objets graphiques
-représentant un objet de type FORMULE, cad le panneau et l'item de l'arbre
-d'EFICAS
-"""
-
-# import modules Python
-from Tkinter import *
-import Pmw
-import string
-import tkMessageBox
-
-# import modules EFICAS
-import panels
-import fontes
-import compooper
-
-Fonte_TITRE = fontes.standard_gras_souligne
-
-
-class FORMULEPanel(panels.OngletPanel):
- """
- Classe servant à construire le panneau associé à un paramètre.
- C'est au moyen de ce panneau que l'utilisateur peut accéder
- aux nom et valeur du paramètre en vue éventuellement de les
- modifier.
- """
-
- def init(self):
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Formule', tab_text='Définition Formule')
- nb.add('Commande', tab_text='Nouvelle Commande')
- nb.add('Commentaire',tab_text='Paramètre/Commentaire')
- self.makeFormulePage(nb.page("Formule"))
- self.makeCommandePage(nb.page("Commande"))
- self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
- nb.tab('Formule').focus_set()
- nb.setnaturalsize()
-
- def makeFormulePage(self,page):
- """
- Crée la page qui permet d'afficher et d'éditer le texte de la FORMULE
- """
- self.frame_valeur = Frame(page)
- self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
- # affichage du titre du panneau
- self.titre = StringVar()
- self.titre.set("FORMULE "+self.node.item.get_nom())
- Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.,anchor='n')
- # création des labels et entries associés aux nom, type retourné, arguments et corps de la FORMULE
- Label(self.frame_valeur,text= 'Nom de la formule : ').place(relx=0.,rely=0.1)
- self.entry_nom = Entry(self.frame_valeur)
- Label(self.frame_valeur,text= 'Type retourné : ').place(relx=0.,rely=0.25)
- self.option_menu_typ = Pmw.OptionMenu(self.frame_valeur,labelpos='w',
- label_text='',
- items = self.node.item.get_liste_types_autorises())
- 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.60)
- self.entry_exp = Entry(self.frame_valeur)
- # binding sur les entries
- self.entry_nom.bind("<Return>",self.verif_nom)
- self.entry_arg.bind("<Return>",self.verif_arguments)
- self.entry_exp.bind("<Return>",self.verif_corps)
- # affichage des entries
- self.entry_nom.place(relx=0.35,rely=0.10,relwidth=0.2)
- self.entry_arg.place(relx=0.35,rely=0.40,relwidth=0.4)
- Label(self.frame_valeur,text= 'Entrer les arguments sous la forme TYPE : VARIABLE séparés par des ,').place(relx=0.35,rely=0.45)
- Label(self.frame_valeur,text= 'Exemple REEL:INST,ENTIER:COEF').place(relx=0.35,rely=0.49)
- self.entry_exp.place(relx=0.35,rely=0.60,relwidth=0.60)
- # 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 des nom, type retourné, arguments et corps de la FORMULE
- self.display_valeur()
- # affichage des boutons
- self.make_buttons()
- # entry_nom prend le focus
- self.entry_nom.focus()
-
- def make_buttons(self):
- """
- Crée les boutons du panneau
- """
- self.bouton_sup.place_forget()
- self.bouton_doc.place_forget()
- self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
- self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
-
- self.bouton_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):
- """
- Stocke la nouvelle FORMULE décrite par l'utilisateur
- """
- if self.parent.modified == 'n' : self.parent.init_modif()
- # on récupère les nouveaux nom, type retourné, arguments et corps de la FORMULE
- new_nom = self.entry_nom.get()
- new_typ = self.option_menu_typ.getcurselection()
- new_arg = self.entry_arg.get()
- new_exp = self.entry_exp.get()
- # on essaie de les stocker
- test,erreur = self.node.item.save_formule(new_nom,new_typ,new_arg,new_exp)
- if test :
- # on a pu stocker les nouveaux paramètres : il faut rafraîchir l'affichage
- self.node.update()
- self.display_valeur()
- self.parent.appli.affiche_infos("FORMULE %s modifiée" %self.node.item.get_nom())
- else:
- # la formule est incorrecte : on affiche les erreurs
- tkMessageBox.showerror("Formule incorrecte",erreur)
- self.parent.appli.affiche_infos("FORMULE %s non modifiée" %self.node.item.get_nom())
-
- def display_valeur(self):
- """
- Affiche dans self.widget_text de la valeur de l'objet FORMULE
- (annule d'éventuelles modifications faite par l'utilisateur)
- """
- # on efface tout texte affiché dans les entries
- self.entry_nom.delete(0,END)
- self.entry_arg.delete(0,END)
- self.entry_exp.delete(0,END)
- # on rafraîchit le titre du panneau
- self.titre.set('FORMULE '+self.node.item.get_nom())
- # on insére les nouveaux nom, type retourné, arguments et corps de la FORMULE
- nom = self.node.item.get_nom()
- if nom != '':
- self.entry_nom.insert(END,nom)
- type = self.node.item.get_type()
- if type :
- self.option_menu_typ.invoke(type)
- args = self.node.item.get_args()
- if args:
- self.entry_arg.insert(END,args)
- corps = self.node.item.get_corps()
- if corps :
- self.entry_exp.insert(END,self.node.item.get_corps())
-
- def verif_nom(self,event=None):
- """
- Lance la vérification du nom présent dans entry_nom
- """
- nom = self.entry_nom.get()\r
- if nom == '':\r
- test,erreur = 0,"Aucun nom fourni !"\r
- else:
- test,erreur = self.node.item.verif_nom(nom)
- if not test:
- tkMessageBox.showerror("Nom invalide",erreur)
- self.entry_nom.focus()
- self.entry_nom.selection_range(0,END)
- self.parent.appli.affiche_infos("%s n'est pas un nom valide pour une FORMULE" %nom)
- else:
- self.parent.appli.affiche_infos("%s est un nom valide pour une FORMULE" %nom)
- self.entry_arg.focus()
-
- def verif_arguments(self,event=None):
- """
- Lance la vérification des arguments présents dans entry_arg
- """
- arguments = self.entry_arg.get()\r
- if arguments == '' :\r
- test,erreur = 0,"Aucun argument fourni"\r
- else:
- test,erreur = self.node.item.verif_arguments(arguments)
- if not test:
- tkMessageBox.showerror("Argument(s) invalide(s)",erreur)
- self.entry_arg.focus()
- self.entry_arg.selection_range(0,END)
- self.parent.appli.affiche_infos("Argument(s) invalide(s) pour une FORMULE")
- else:
- self.parent.appli.affiche_infos("Argument(s) valide(s) pour une FORMULE")
- self.entry_exp.focus()
-
- def verif_corps(self,event=None):
- """
- Lance la vérification du corps de formule présent dans entry_exp
- """
- new_nom = self.entry_nom.get()
- new_typ = self.option_menu_typ.getcurselection()
- new_arg = self.entry_arg.get()
- new_exp = self.entry_exp.get()
- if new_exp == '':
- test,erreur = 0,"Aucune expression fournie !"
- else:
- test,erreur = self.node.item.verif_formule((new_nom,new_typ,new_arg,new_exp))
-
- if not test:
- tkMessageBox.showerror("Corps de FORMULE invalide",erreur)
- self.entry_exp.focus()
- self.entry_exp.selection_range(0,END)
- self.parent.appli.affiche_infos("Corps de FORMULE invalide")
- else:
- self.parent.appli.affiche_infos("Corps de FORMULE valide")
-
-class FORMULETreeItem(compooper.EtapeTreeItem):
- """
- Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS
- qui représente la FORMULE
- """
- panel = FORMULEPanel
-
- def init(self):
- self.setfunction = self.set_valeur
-
-# ---------------------------------------------------------------------------
-# API de FORMULE pour l'arbre
-# ---------------------------------------------------------------------------
- def GetSubList(self):
- """
- Retourne la liste des fils de self
- On considère que FORMULE n'a pas de fils
- --> modification par rapport à MACRO classique
- """
- # dans EFICAS on ne souhaite pas afficher les mots-clés fils de FORMULE
- # de façon traditionnelle
- return []
-
- def GetIconName(self):
- """
- 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 self.object.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
- else:
- return "ast-white-text"
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- if self.object.isactif():
- # None --> fonte et couleur par défaut
- return self.labeltext,None,None
- else:
- return self.labeltext,fontes.standard_italique,None
-
-# ---------------------------------------------------------------------------
-# Méthodes permettant la modification et la lecture des attributs
-# du paramètre = API graphique de la FORMULE pour Panel et EFICAS
-# ---------------------------------------------------------------------------
-
- def get_nom(self):
- """
- Retourne le nom de la FORMULE
- """
- return self.object.get_nom()
-
- def get_type(self):
- """
- Retourne le type de la valeur retournée par la FORMULE
- """
- return self.object.type_retourne
-
- def get_args(self):
- """
- Retourne les arguments de la FORMULE
- """
- args = self.object.arguments
- if args :
- return self.object.arguments[1:-1] #on enlève les parenthèses ouvrante et fermante
- else:
- return None
-
- def get_corps(self):
- """
- Retourne le corps de la FORMULE
- """
- return self.object.corps
-
- def get_liste_types_autorises(self):
- """
- Retourne la liste des types autorises pour les valeurs de sortie
- d'une FORMULE
- """
- return self.object.l_types_autorises
-
- def save_formule(self,new_nom,new_typ,new_arg,new_exp):
- """
- Vérifie si (new_nom,new_typ,new_arg,new_exp) définit bien une FORMULE
- licite :
- - si oui, stocke ces paramètres comme nouveaux paramètres de la
- FORMULE courante et retourne 1
- - si non, laisse les paramètres anciens de la FORMULE inchangés et
- retourne 0
- """
- test,erreur = self.object.verif_formule(formule=(new_nom,new_typ,new_arg,
- new_exp))
- if test :
- # la formule est bien correcte : on sauve les nouveaux paramètres
- self.object.update(formule=(new_nom,new_typ,new_arg,new_exp))
- return test,erreur
-
-# ---------------------------------------------------------------------------
-# Accès aux méthodes de vérification de l'objet FORM_ETAPE
-# ---------------------------------------------------------------------------
-
- def verif_nom(self,nom):
- """
- Lance la vérification du nom passé en argument
- """
- return self.object.verif_nom(nom)
-
- def verif_arguments(self,arguments):
- """
- Lance la vérification des arguments passés en argument
- """
- return self.object.verif_arguments('('+arguments+')')
-
- def verif_formule(self,formule):
- """
- Lance la vérification de FORMULE passée en argument
- """
- return self.object.verif_formule(formule=formule)
-
-import Accas
-treeitem =FORMULETreeItem
-objet = Accas.FORM_ETAPE
+++ /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 Pmw
-import Objecttreeitem
-import panels
-
-from widgets import ListeChoix
-
-class JDCPanel(panels.OngletPanel):
- def init(self):
- """ Initialise les frame des panneaux contextuels relatifs à un JDC """
- panneau=Pmw.PanedWidget(self,orient='horizontal')
- panneau.add('left',min=0.4,max=0.6,size=0.5)
- panneau.add('right',min=0.4,max=0.6,size=0.5)
- panneau.pack(expand=1,fill='both')
- self.bouton_com.pack_forget()
- self.makeJDCPage(panneau.pane('left'))
- self.makeReglesPage(panneau.pane('right'))
-
- def makeReglesPage(self,page) :
- regles = []
- regles = self.node.item.get_regles()
- texte_regles = []
- l_regles_en_defaut=[]
- if len(regles) > 0:
- l_noms_etapes = self.node.item.get_l_noms_etapes()
- i = 0
- for regle in regles :
- texte_regles.append(regle.gettext())
- texte,test = regle.verif(l_noms_etapes)
- if test == 0 : l_regles_en_defaut.append(i)
- i = i+1
- Liste = ListeChoix(self,page,texte_regles,liste_marques=l_regles_en_defaut,active='non',titre="Règles")
- Liste.affiche_liste()
- # aide associée au panneau
- bulle_aide="""Ce panneau contient la liste des règles qui s'appliquent à l'objet
- en cours d'édition.
- - en noir : règles valides
- - en rouge : règles violées"""
- Liste.MCbox.bind("<Button-3>", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
- Liste.MCbox.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
-
-class JDCTreeItem(Objecttreeitem.ObjectTreeItem):
- panel = JDCPanel
-
- def IsExpandable(self):
-# return len(self.object.etapes) > 0
- return 1
-
- def isJdc(self):
- """
- Retourne 1 si l'objet pointé par self est un JDC, 0 sinon
- """
- return 1
-
- def GetText(self):
- return " "
-
- def get_jdc(self):
- """
- Retourne l'objet pointé par self
- """
- return self.object
-
- def GetIconName(self):
- if self.object.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
-
- def keys(self):
- if self.object.etapes_niveaux != []:
- return range(len(self.object.etapes_niveaux))
- else:
- return range(len(self.object.etapes))
-
- def additem(self,name,pos):
- if isinstance(name,Objecttreeitem.ObjectTreeItem) :
- cmd=self.object.addentite(name.object,pos)
- else :
- cmd = self.object.addentite(name,pos)
- item = self.make_objecttreeitem(self.appli,cmd.nom + " : ", cmd)
- return item
-
- def suppitem(self,item) :
- # item = item de l'ETAPE à supprimer du JDC
- # item.object = ETAPE ou COMMENTAIRE
- # self.object = JDC
- self.object.suppentite(item.object)
- if item.object.nature == "COMMENTAIRE" :
- message = "Commentaire supprimé"
- self.appli.affiche_infos(message)
- else :
- message = "Commande " + item.object.nom + " supprimée"
- self.appli.affiche_infos(message)
- return 1
-
- def GetSubList(self):
- sublist=[]
- if self.object.etapes_niveaux != []:
- liste = self.object.etapes_niveaux
- else:
- liste = self.object.etapes
- key=0
- for value in liste:
- def setfunction(value, key=key, object=liste):
- object[key] = value
- item = self.make_objecttreeitem(self.appli,value.ident() + " : ", value, setfunction)
- sublist.append(item)
- key=key+1
- 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()
-
-
-import Accas
-treeitem =JDCTreeItem
-objet = Accas.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.
-#
-#
-# ======================================================================
-# Modules Python
-import os,sys,string
-import types
-import Tkinter
-import Pmw
-from tkFileDialog import *
-from tkMessageBox import showinfo,showerror,askyesno
-import traceback
-
-# Modules Eficas
-import Objecttreeitem
-import panels
-import fontes
-import compooper
-import convert
-from widgets import Fenetre,FenetreYesNo
-
-#
-__version__="$Name: $"
-__Id__="$Id: compomacro.py,v 1.9 2002/11/12 18:36:08 eficas Exp $"
-#
-
-class MACROPanel(panels.OngletPanel):
- def init(self):
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Mocles', tab_text='Ajouter mots-clés')
- typsd=self.node.item.object.get_type_produit()
- ficini = self.node.item.wait_fichier_init()
- if typsd != None:
- 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='Nouvelle Commande')
- nb.add('Commentaire',tab_text='Paramètre/Commentaire')
- panneau=Pmw.PanedWidget(nb.page("Mocles"),
- orient='horizontal')
- panneau.add('left',min=0.4,max=0.6,size=0.5)
- panneau.add('right',min=0.4,max=0.6,size=0.5)
- panneau.pack(expand=1,fill='both')
- self.makeCommandePage(nb.page("Commande"))
- if typsd != None:
- self.makeConceptPage(nb.page("Concept"))
- if ficini == 1 :
- self.makeFichierPage(nb.page('Fichierinit'))
- self.makeMoclesPage(panneau.pane('left'))
- self.makeReglesPage(panneau.pane('right'))
- self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
- nb.tab('Mocles').focus_set()
- nb.setnaturalsize()
- self.affiche()
-
- def makeFichierPage(self,page):
- """
- Affiche la page d'onglet correspondant au changement du fichier
- dont a besoin la macro\r
- """
- titre = Tkinter.Label(page,text="La commande %s requiert un fichier " %self.node.item.get_nom())
- titre.place(relx=0.5,rely=0.3,anchor='center')
- Tkinter.Label(page,text="Fichier :").place(relx=0.1,rely=0.5,relwidth=0.2)
- self.entry = Tkinter.Entry(page,relief='sunken',bg='white')
- self.entry.place(relx=0.35,rely=0.5,relwidth=0.55)
- 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_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):
- """
- Methode pour convertir le fichier file dans le format courant
- """
- format=self.parent.appli.format_fichier.get()
- if convert.plugins.has_key(format):
- # Le convertisseur existe on l'utilise
- p=convert.plugins[format]()
- p.readfile(file)
- text=p.convert('execnoparseur')
- if not p.cr.estvide():
- self.parent.appli.affiche_infos("Erreur à la conversion")
- Fenetre(self,
- titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier",
- texte = str(p.cr))
- return None
- return text
- else:
- # Il n'existe pas c'est une erreur
- self.parent.appli.affiche_infos("Type de fichier non reconnu")
- showerror("Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier")
- return None
-
- def change_fichier_init(self,event=None):
- """
- Effectue le changement de fichier d'initialisation s'il est valide
- """
- 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"+
- "n'est pas un nom de fichier valide !")
- self.parent.appli.affiche_infos("Fichier introuvable")
- return
- # On convertit le fichier
- text=self.convert_file(new_fic)
- # 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_include(new_fic,text)
- except:
- # 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])
- 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.node.item.object.old_contexte_fichier_init=old_context
- self.node.item.object.contexte_fichier_init={}
- self.node.item.object.reevalue_sd_jdc()
-
- self.node.item.object.fin_modif()
- self.parent.appli.affiche_infos("Fichier invalide ... Nouveau fichier mémorisé")
- self.node.update()
- return
-
- # 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.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):
- """ Restaure dans self.entry le nom de fichier_init"""
- self.entry.delete(0,Tkinter.END)
- 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())
- if file != '' :
- self.entry.delete(0,Tkinter.END)
- self.entry.insert(0,file)
-
-
-class MACROTreeItem(compooper.EtapeTreeItem):
- panel=MACROPanel
-
- def IsExpandable(self):
- return 1
-
- def GetIconName(self):
- """
- Retourne le nom de l'icône à afficher dans l'arbre
- Ce nom dépend de la validité de l'objet
- """
- if not self.object.isactif():
- return "ast-white-square"
- else:
- if self.object.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- if self.object.isactif():
- # None --> fonte et couleur par défaut
- return self.labeltext,None,None
- else:
- return self.labeltext,fontes.standard_italique,None
-
- def get_objet(self,name) :
- for v in self.object.mc_liste:
- if v.nom == name : return v
- return None
-
- def additem(self,name,pos):
- if isinstance(name,Objecttreeitem.ObjectTreeItem) :
- mcent = self.object.addentite(name.object,pos)
- else :
- mcent = self.object.addentite(name,pos)
- self.expandable=1
- if mcent == 0 :
- # on ne peut ajouter l'élément de nom name
- return 0
- def setfunction(value, object=mcent):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli,mcent.nom + " : ", mcent, setfunction)
- return item
-
- def suppitem(self,item) :
- # item : item du MOCLE de l'ETAPE à supprimer
- # 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)
- message = "Mot-clé " + item.object.nom + " supprimé"
- self.appli.affiche_infos(message)
- return 1
-
- def GetText(self):
- try:
- return self.object.get_sdname()
- except:
- return ''
-
- def keys(self):
- keys=self.object.mc_dict.keys()
- return keys
-
- def GetSubList(self):
- sublist=[]
- for obj in self.object.mc_liste:
- def setfunction(value, object=obj):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
- sublist.append(item)
- return sublist
-
- def isvalid(self):
- return self.object.isvalid()
-
- def iscopiable(self):
- """
- Retourne 1 si l'objet est copiable, 0 sinon
- """
- return 1
-
- def isCommande(self):
- """
- Retourne 1 si l'objet pointé par self est une Commande, 0 sinon
- """
- return 1
-
- def verif_condition_bloc(self):
- return self.object.verif_condition_bloc()
-
- def get_noms_sd_oper_reentrant(self):
- return self.object.get_noms_sd_oper_reentrant()
-
-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
-
-import macrodisplay
+++ /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 Tkinter import *
-import Pmw
-import Objecttreeitem
-import panels
-
-class MCLISTPanel(panels.Panel):
- def init(self):
- test_ajout = self.node.item.ajout_possible()
- nom_mcfact = self.node.item.get_nom()
- if test_ajout:
- texte = "Pour ajouter une autre occurrence du mot-clé facteur %s, cliquez ci-dessous" %nom_mcfact
- else:
- texte = "Vous ne pouvez pas ajouter une autre occurrence du mot-clé facteur %s ?" %nom_mcfact
- self.label = Label(self,text = texte)
- self.label.place(relx=0.5,rely=0.4,anchor='center')
- if test_ajout:
- Button(self,text="AJOUTER",command=self.ajout_occurrence).place(relx=0.5,rely=0.6,anchor='center')
- #Button(self,text="NON",command=None).place(relx=0.6,rely=0.6,anchor='center')
-
- def ajout_occurrence(self,event=None):
- self.node.parent.append_child(self.node.item.get_nom())
-
-class MCListTreeItem(Objecttreeitem.SequenceTreeItem):
- panel = MCLISTPanel
-
- def get_docu(self):
- """ Retourne la clé de doc de l'objet pointé par self """
- return self.object.get_docu()
-
- def isMCFact(self):
- """
- 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
-
+++ /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 Tkinter import *
-import Pmw
-
-import Objecttreeitem
-import panels
-import fontes
-from Extensions import commentaire
-
-Fonte_Niveau = fontes.canvas_gras_italique
-Fonte_Niveau_inactif = fontes.canvas_italique
-
-class NIVEAUPanel(panels.OngletPanel):
- def init(self):
- """ Initialise les frame des panneaux contextuels relatifs à un JDC """
- panneau=Pmw.PanedWidget(self,orient='horizontal')
- panneau.add('left',min=0.4,max=0.6,size=0.5)
- panneau.add('right',min=0.4,max=0.6,size=0.5)
- panneau.pack(expand=1,fill='both')
- self.bouton_com.pack_forget()
- self.makeJDCPage(panneau.pane('left'))
-
-class NIVEAUTreeItem(Objecttreeitem.ObjectTreeItem):
- panel = NIVEAUPanel
-
- def isactif(self):
- return self.object.isactif()
-
- def IsExpandable_old(self):
- return self.object.isactif()
-
- def IsExpandable(self):
- return 1
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- if self.isactif():
- fonte = Fonte_Niveau
- else :
- fonte = Fonte_Niveau_inactif
- return self.labeltext,fonte,'#00008b'
-
- def GetIconName(self):
- if self.isactif():
- if self.object.isvalid():
- return "ast-green-text"
- else:
- return "ast-red-text"
- else:
- return "ast-white-text"
-
- def keys_old(self):
- return range(len(self.object.etapes))
-
- def keys(self):
- if self.object.etapes_niveaux != []:
- return range(len(self.object.etapes_niveaux))
- else:
- return range(len(self.object.etapes))
-
- def GetSubList(self):
- sublist=[]
- for key in self.keys():
- if self.object.etapes_niveaux != []:
- liste = self.object.etapes_niveaux
- else:
- 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 additem(self,name,pos):
- if isinstance(name,Objecttreeitem.TreeItem) :
- cmd=self.object.addentite(name.object,pos)
- else :
- cmd = self.object.addentite(name,pos)
- item = self.make_objecttreeitem(self.appli,cmd.nom + " : ", cmd)
- return item
-
- def suppitem(self,item) :
- # item = item de l'ETAPE à supprimer du JDC
- # item.object = ETAPE ou COMMENTAIRE
- # self.object = JDC
- self.object.suppentite(item.object)
- if isinstance(item.object,commentaire.COMMENTAIRE):
- message = "Commentaire supprimé"
- self.appli.affiche_infos(message)
- else :
- message = "Commande " + item.object.nom + " supprimée"
- self.appli.affiche_infos(message)
- return 1
-
- def GetText(self):
- return ''
-
-
-import Accas
-treeitem = NIVEAUTreeItem
-objet = Accas.ETAPE_NIVEAU
+++ /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.
-#
-#
-# ======================================================================
-# Modules Python
-import types
-import Tkinter
-import Pmw
-from repr import Repr
-from copy import copy,deepcopy
-
-# Modules Eficas
-import Objecttreeitem
-import panels
-
-#
-__version__="$Name: $"
-__Id__="$Id: componuplet.py,v 1.1.1.1 2002/03/26 09:08:46 eficas Exp $"
-#
-
-myrepr = Repr()
-myrepr.maxstring = 100
-myrepr.maxother = 100
-
-# Si Expandable vaut 1 les éléments du nuplet apparaissent dans l'arbre
-# Si Expandable vaut 0 les éléments n'apparaissent pas
-Expandable=1
-
-class NUPLETPanel(panels.OngletPanel):
- def init(self):
- """ Initialise les frame des panneaux contextuels relatifs \340 un NUPLET """
- self.nb=Pmw.NoteBook(self,raisecommand=self.raisecmd)
- self.nb.pack(fill = 'both', expand = 1)
- self.nb.add("Valeurs",tab_text="Saisir valeurs")
- self.makeValeurPage(self.nb.page('Valeurs'))
- self.nb.setnaturalsize()
-
- def makeValeurPage(self,page):
- label = Tkinter.Label(page,text='Valeurs :').pack(side=Tkinter.LEFT)
- i=0
- for obj in self.node.item.object.mc_liste:
- frame_valeur=Tkinter.Frame(page)
- frame_valeur.pack(side=Tkinter.LEFT)
- if hasattr(obj,'definition'):
- objet_mc=obj.definition
- else:
- objet_mc=None
- valeur=obj.valeur
- if type(valeur) == types.InstanceType :
- valeur=obj.getval()
- aide=self.gen_aide(obj)
- if objet_mc.into != None :
- l_choix=list(objet_mc.into)
- obj.set_valeur(l_choix[0],evaluation='non')
- option=Pmw.OptionMenu (frame_valeur,
- items = l_choix,
- menubutton_width = 10,
- command = lambda e,obj=obj,s=self:s.record_valeur(val=e,obj=obj),
- )
- option.pack(side=Tkinter.LEFT,padx=1)
- else :
- entry = Tkinter.Entry(frame_valeur,relief='sunken',width=10)
- entry.pack(side=Tkinter.LEFT,padx=1)
- entry.bind("<Return>",
- lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj))
- if i==0:entry.focus_set()
- #aide = Tkinter.Label(frame_valeur, text = aide)
- #aide.place(relx=0.5,rely=0.55,anchor='n')
- if valeur != None :
- entry.delete(0,Tkinter.END)
- entry.insert(0,obj.getval())
- i=i+1
-
- def record_valeur(self,val=None,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
- """
- Enregistre val comme valeur de self.node.item.object SANS faire de
- test de validit\351
- """
- obj.set_valeur(val,evaluation='non')
- self.parent.appli.affiche_infos(mess)
- self.node.parent.verif()
- self.node.update()
-
- def valid_valeur(self,e,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
- """
- Enregistre val comme valeur de self.node.item.object avec
- test de validit\351
- """
- valeur=e.widget.get()
- e.widget.delete(0,Tkinter.END)
- anc_val=obj.getval()
- if anc_val == None:anc_val=''
- test=obj.set_valeur(valeur)
- if test:
- if obj.isvalid():
- self.parent.appli.affiche_infos('Valeur du mot-cl\351 enregistr\351e')
- e.widget.insert(0,obj.getval())
- else:
- obj.set_valeur(anc_val,evaluation='non')
- self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
- e.widget.insert(0,anc_val)
- else:
- print "impossible d'\351valuer : %s " %valeur
- print "test =",test
- self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
- e.widget.delete(0,Tkinter.END)
- e.widget.insert(0,anc_val)
-
- self.node.parent.verif()
- self.node.update()
-
- def gen_aide(self,obj):
- return ""
-
-
-class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem):
- panel=NUPLETPanel
-
- def IsExpandable(self):
- return Expandable
-
- def GetText(self):
- return ''
-
- def isvalid(self):
- return self.object.isvalid()
-
- def GetIconName(self):
- if self.object.isvalid():
- return "ast-green-los"
- elif self.object.isoblig():
- return "ast-red-los"
- else:
- return "ast-yel-los"
-
- def GetSubList(self):
- if not Expandable:return []
- sublist=[]
- for obj in self.object.mc_liste:
- item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, None)
- sublist.append(item)
- return sublist
-
- def additem(self,name,pos):
- raise "NUPLET"
-
- def suppitem(self,item) :
- raise "NUPLET"
-
- def verif_condition_bloc(self):
- return self.object.verif_condition_bloc()
-
-import Accas
-treeitem=NUPLETTreeItem
-objet=Accas.MCNUPLET
+++ /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 Tkinter import *
-import Pmw
-import traceback
-import Objecttreeitem
-import panels
-import fontes
-
-class OPERPanel(panels.OngletPanel):
-
- def init(self):
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Mocles', tab_text='Nouveau mot-clé')
- nb.add('Concept', tab_text='Nommer concept')
- nb.add('Commande', tab_text='Nouvelle Commande')
- nb.add('Commentaire',tab_text='Paramètre/Commentaire')
- panneau=Pmw.PanedWidget(nb.page("Mocles"),
- orient='horizontal')
- panneau.add('left',min=0.4,max=0.6,size=0.5)
- panneau.add('right',min=0.4,max=0.6,size=0.5)
- panneau.pack(expand=1,fill='both')
- self.makeCommandePage(nb.page("Commande"))
- self.makeConceptPage_oper(nb.page("Concept"))
- self.makeMoclesPage(panneau.pane('left'))
- self.makeReglesPage(panneau.pane('right'))
- #self.makeCommentairePage(nb.page("Commentaire"))
- self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
- nb.tab('Mocles').focus_set()
- nb.setnaturalsize()
- self.affiche()
-
- def makeConceptPage_oper(self,page):
- """ Crée la page de saisie du nom du concept """
- if self.node.item.is_reentrant():
- self.makeConceptPage_reentrant(page)
- else:
- self.makeConceptPage(page)
-
- def makeConceptPage_reentrant(self,page):
- """ Crée la page de saisie du nom de concept pour un opérateur reentrant
- cad propose dans la liste des SD utilisées dans la commande celle(s) dont le
- type est compatible avec celui que retourne l'opérateur """
- liste_noms_sd = self.node.item.get_noms_sd_oper_reentrant()
- self.listbox = Pmw.ScrolledListBox(page,
- items=liste_noms_sd,
- labelpos='n',
- label_text="Structure(s) de données à enrichir par l'opérateur courant :",
- listbox_height = 6,
- selectioncommand=self.select_valeur_from_list,
- dblclickcommand=lambda s=self,c=self.execConcept : s.choose_valeur_from_list(c))
- self.listbox.place(relx=0.5,rely=0.3,relheight=0.4,anchor='center')
- Label(page,text='Structure de donnée choisie :').place(relx=0.05,rely=0.6)
- self.valeur_choisie = StringVar()
- self.label_valeur = Label(page,textvariable=self.valeur_choisie)
- self.label_valeur.place(relx=0.45,rely=0.6)
- if len(liste_noms_sd) == 1 :
- self.valeur_choisie.set(liste_noms_sd[0])
-
- def select_valeur_from_list(self):
- try:
- choix = self.listbox.getcurselection()[0]
- self.valeur_choisie.set(choix)
- except:
- traceback.print_exc()
-
-
- def choose_valeur_from_list(self,command):
- try:
- choix = self.listbox.getcurselection()[0]
- self.valeur_choisie.set(choix)
- apply(command,(),{})
- except:
- traceback.print_exc()
-
-class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
- panel = OPERPanel
-
- def IsExpandable(self):
- return 1
-
- def GetIconName(self):
- """
- 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 self.object.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
- else:
- return "ast-white-square"
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- if self.object.isactif():
- # None --> fonte et couleur par défaut
- return self.labeltext,None,None
- else:
- return self.labeltext,fontes.standard_italique,None
-
- def get_objet(self,name) :
- for v in self.object.mc_liste:
- if v.nom == name : return v
- return None
-
- def get_type_sd_prod(self):
- """
- Retourne le nom du type du concept résultat de l'étape
- """
- sd_prod=self.object.get_type_produit()
- if sd_prod:
- return sd_prod.__name__
- else:
- return ""
-
- def additem(self,name,pos):
- if isinstance(name,Objecttreeitem.ObjectTreeItem) :
- mcent = self.object.addentite(name.object,pos)
- else :
- mcent = self.object.addentite(name,pos)
- self.expandable=1
- if mcent == 0 :
- # on ne peut ajouter l'élément de nom name
- return 0
- def setfunction(value, object=mcent):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli,mcent.nom + " : ", mcent, setfunction)
- return item
-
- def suppitem(self,item) :
- # item : item du MOCLE de l'ETAPE à supprimer
- # item.object = MCSIMP, MCFACT, MCBLOC ou MCList
- if item.object.isoblig() :
- self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
- return 0
- else :
- self.object.suppentite(item.object)
- message = "Mot-clé " + item.object.nom + " supprimé"
- self.appli.affiche_infos(message)
- return 1
-
- def GetText(self):
- try:
- return self.object.get_sdname()
- except:
- return ''
-
- def keys(self):
- keys=self.object.mc_dict.keys()
- return keys
-
- def GetSubList(self):
- sublist=[]
- for obj in self.object.mc_liste:
- def setfunction(value, object=obj):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
- sublist.append(item)
- return sublist
-
- def isvalid(self):
- return self.object.isvalid()
-
- def iscopiable(self):
- """
- Retourne 1 si l'objet est copiable, 0 sinon
- """
- return 1
-
- def isCommande(self):
- """
- Retourne 1 si l'objet pointé par self est une Commande, 0 sinon
- """
- return 1
-
- 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 """
- 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()
-
- def get_noms_sd_oper_reentrant(self):
- return self.object.get_noms_sd_oper_reentrant()
-
- def get_objet_commentarise(self):
- """
- Cette méthode retourne un objet commentarisé
- représentatif de self.object
- """
- import generator,string,Accas
- # Format de fichier utilisé
- format=self.appli.format_fichier.get()
- g=generator.plugins[format]()
- texte_commande = g.gener(self.object,format='beautifie')
- # Il faut enlever la première ligne vide de texte_commande que
- # rajoute le generator
- rebut,texte_commande = string.split(texte_commande,'\n',1)
- # on construit l'objet COMMANDE_COMM repésentatif de self mais non
- # enregistré dans le jdc
- commande_comment = Accas.COMMANDE_COMM(texte=texte_commande,reg='non',
- parent=self.object.parent)
- commande_comment.niveau = self.object.niveau
- 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
-
+++ /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 les classes permettant de définir les objets graphiques
- représentant un objet de type PARAMETRE, cad le panneau et l'item de l'arbre
- d'EFICAS
-"""
-
-# import modules Python
-from Tkinter import *
-import Pmw
-import string
-
-# import modules EFICAS
-import Objecttreeitem
-import panels
-import fontes
-
-
-Fonte_PARAMETRE = fontes.standard_italique
-Fonte_TITRE = fontes.standard_gras_souligne
-
-
-class PARAMPanel(panels.OngletPanel):
- """
- Classe servant à construire le panneau associé à un paramètre.
- C'est au moyen de ce panneau que l'utilisateur peut accéder
- aux nom et valeur du paramètre en vue éventuellement de les
- modifier.
- """
-
- def init(self):
- """
- Initialise les frame des panneaux contextuels relatifs à un PARAMETRE
- """
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Parametre', tab_text='Valeur Paramètre')
- nb.add('Commande', tab_text='Nouvelle Commande')
- nb.add('Commentaire',tab_text='Paramètre/Commentaire')
- self.makeParametrePage(nb.page("Parametre"))
- self.makeCommandePage(nb.page("Commande"))
- self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
- nb.tab('Parametre').focus_set()
- nb.setnaturalsize()
- self.make_buttons()
-
- def makeParametrePage(self,page):
- """
- Crée la page qui permet d'afficher et d'éditer le texte du PARAMETRE
- """
- self.frame_valeur = Frame(page)
- self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
- # affichage du titre du panneau
- self.titre = StringVar()
- self.titre.set("PARAMETRE "+self.node.item.get_nom())
- Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.1,anchor='n')
- # création des labels et entries associés aux nom et valeur du paramètre
- Label(self.frame_valeur,text= 'Nom du paramètre : ').place(relx=0.,rely=0.3)
- self.entry_nom = Entry(self.frame_valeur)
- Label(self.frame_valeur,text= 'Valeur du paramètre : ').place(relx=0.,rely=0.5)
- self.entry_val = Entry(self.frame_valeur)
- # binding sur entry_nom
- self.entry_nom.bind("<Return>",lambda e,s=self : s.entry_val.focus())
- self.entry_val.bind("<Return>",lambda e,s=self : s.change_valeur())
- # affichage des entries
- self.entry_nom.place(relx=0.35,rely=0.3,relwidth=0.3)
- self.entry_val.place(relx=0.35,rely=0.5,relwidth=0.5)
- # 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.65,anchor='n')
- # affichage des nom et valeur du paramètre
- self.display_valeur()
- self.entry_nom.focus()
-
- def make_buttons(self):
- """
- Crée les boutons du panneau
- """
- self.bouton_sup.place_forget()
- self.bouton_doc.place_forget()
- self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
- self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
-
- self.bouton_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')
-
- def change_valeur(self):
- """
- Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du PARAMETRE
- """
- if self.parent.modified == 'n' : self.parent.init_modif()
- new_nom = self.entry_nom.get()
- new_val = self.entry_val.get()
- self.node.item.set_nom(new_nom)
- self.node.item.set_valeur(new_val)
- self.node.update()
- self.display_valeur()
-
- def display_valeur(self):
- """
- Affiche dans self.widget_text la valeur de l'objet PARAMETRE
- (annule d'éventuelles modifications faite par l'utilisateur)
- """
- self.entry_nom.delete(0,END)
- self.entry_val.delete(0,END)
- self.titre.set('PARAMETRE '+self.node.item.get_nom())
- self.entry_nom.insert(END,self.node.item.get_nom())
- self.entry_val.insert(END,self.node.item.get_valeur())
-
-class PARAMTreeItem(Objecttreeitem.ObjectTreeItem):
- """
- Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS
- qui représente le PARAMETRE
- """
- panel = PARAMPanel
-
- def init(self):
- self.setfunction = self.set_valeur
-
-# ---------------------------------------------------------------------------
-# API du PARAMETRE pour l'arbre
-# ---------------------------------------------------------------------------
-
- def GetIconName(self):
- """
- Retourne le nom de l'icône associée au noeud qui porte self,
- dépendant de la validité de l'objet
- NB : un PARAMETRE est toujours valide ...
- """
- if self.isactif():
- if self.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
- else:
- return "ast-white-square"
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- return 'Paramètre',Fonte_PARAMETRE,None
-
- def GetText(self):
- """
- Retourne le texte à afficher après le nom de la commande (ici après 'paramètre')
- Ce texte est tronqué à 25 caractères
- """
- texte = repr(self.object)
- texte = string.split(texte,'\n')[0]
- if len(texte) < 25 :
- return texte
- else :
- return texte[0:24]+'...'
-
- def GetSubList(self):
- """
- Retourne la liste des fils de self
- """
- return []
-
-# ---------------------------------------------------------------------------
-# Méthodes permettant la modification et la lecture des attributs
-# du paramètre = API graphique du PARAMETRE pour Panel et EFICAS
-# ---------------------------------------------------------------------------
-
- def get_valeur(self):
- """
- Retourne la valeur de l'objet PARAMETRE cad son texte
- """
- return self.object.valeur or ''
-
- def get_nom(self):
- """
- Retourne le nom du paramètre
- """
- return self.object.nom
-
- def set_valeur(self,new_valeur):
- """
- Affecte valeur à l'objet PARAMETRE
- """
- self.object.set_valeur(new_valeur)
-
- def set_nom(self,new_nom):
- """
- Renomme le paramètre
- """
- self.object.set_attribut('nom',new_nom)
-
- def get_fr(self):
- """
- Retourne le fr associé au paramètre, cad la bulle d'aide pour EFICAS
- """
- return "Définition d'un paramètre"
-
-import Extensions.parametre
-treeitem =PARAMTreeItem
-objet = Extensions.parametre.PARAMETRE
+++ /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 les classes permettant de définir les objets graphiques
-représentant un objet de type PARAMETRE_EVAL, cad le panneau et l'item de l'arbre
-d'EFICAS
-"""
-
-# import modules Python
-from Tkinter import *
-import Pmw
-import string
-import tkMessageBox
-
-# import modules EFICAS
-import Objecttreeitem
-import panels
-import fontes
-
-
-Fonte_PARAMETRE = fontes.standard_italique
-Fonte_TITRE = fontes.standard_gras_souligne
-
-
-class PARAM_EVALPanel(panels.OngletPanel):
- """
- Classe servant à construire le panneau associé à un paramètre.
- C'est au moyen de ce panneau que l'utilisateur peut accéder
- aux nom et valeur du paramètre en vue éventuellement de les
- modifier.
- """
-
- def init(self):
- """
- Initialise les frame des panneaux contextuels relatifs à un PARAMETRE
- """
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Parametre', tab_text='Paramètre EVAL')
- nb.add('Commande', tab_text='Nouvelle Commande')
- nb.add('Commentaire',tab_text='Paramètre/Commentaire')
- self.makeParametrePage(nb.page("Parametre"))
- self.makeCommandePage(nb.page("Commande"))
- self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
- nb.tab('Parametre').focus_set()
- nb.setnaturalsize()
- self.make_buttons()
-
- def makeParametrePage(self,page):
- """
- Crée la page qui permet d'afficher et d'éditer le texte du PARAMETRE
- """
- self.frame_valeur = Frame(page)
- self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
- # affichage du titre du panneau
- self.titre = StringVar()
- self.titre.set("PARAMETRE EVAL "+self.node.item.get_nom())
- Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.1,anchor='n')
- # création des labels et entries associés aux nom et valeur du paramètre
- Label(self.frame_valeur,text= 'Nom du paramètre : ').place(relx=0.,rely=0.3)
- self.entry_nom = Entry(self.frame_valeur)
- Label(self.frame_valeur,text= 'Valeur du paramètre : ').place(relx=0.,rely=0.5)
- self.entry_val = Entry(self.frame_valeur)
- # binding sur entry_nom
- self.entry_nom.bind("<Return>",lambda e,s=self : s.verif_nom())
- self.entry_val.bind("<Return>",lambda e,s=self : s.verif_eval())
- # affichage des entries
- self.entry_nom.place(relx=0.35,rely=0.3,relwidth=0.3)
- self.entry_val.place(relx=0.35,rely=0.5,relwidth=0.5)
- # 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.65,anchor='n')
- # affichage des nom et valeur du paramètre
- self.display_valeur()
- self.entry_nom.focus()
-
- def make_buttons(self):
- """
- Crée les boutons du panneau
- """
- self.bouton_sup.place_forget()
- self.bouton_doc.place_forget()
- self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
- self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
- self.bouton_val.bind("<Return>",lambda e,s=self : s.bouton_val.invoke())
-
- self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center')
- self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center')
- self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center')
-
- def change_valeur(self):
- """
- Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du PARAMETRE
- """
- if self.parent.modified == 'n' : self.parent.init_modif()
- new_nom = self.entry_nom.get()
- new_val = self.entry_val.get()
- #self.node.item.set_nom(new_nom)
- #self.node.item.set_valeur(new_val)
- #self.node.update()
- #self.display_valeur()
- # on essaie de stocker les noms et valeurs
- test,erreur = self.node.item.save_parametre_eval(new_nom,new_val)
- if test :
- # on a pu stocker les nouveaux paramètres : il faut rafraîchir l'affichage
- self.node.update()
- self.display_valeur()
- self.parent.appli.affiche_infos("Expression EVAL %s modifiée" %self.node.item.get_nom())
- else:
- # la formule est incorrecte : on affiche les erreurs
- tkMessageBox.showerror("Expression EVAL incorrecte",erreur)
- self.parent.appli.affiche_infos("Expression EVAL %s non modifiée" %self.node.item.get_nom())
-
- def display_valeur(self):
- """
- Affiche dans self.widget_text la valeur de l'objet PARAMETRE
- (annule d'éventuelles modifications faite par l'utilisateur)
- """
- self.entry_nom.delete(0,END)
- self.entry_val.delete(0,END)
- self.titre.set('PARAMETRE '+self.node.item.get_nom())
- self.entry_nom.insert(END,self.node.item.get_nom())
- self.entry_val.insert(END,self.node.item.get_valeur())
-
- def verif_nom(self):
- """
- Lance la vérification du nom donné par l'utilisateur dans entry_nom
- """
- nom = self.entry_nom.get()
- test,erreur = self.node.item.verif_nom(nom)
- if not test :
- tkMessageBox.showerror("Nom invalide",erreur)
- self.entry_nom.focus()
- self.entry_nom.selection_range(0,END)
- self.parent.appli.affiche_infos("Nom du paramètre refusé")
- else:
- self.parent.appli.affiche_infos("Nom du paramètre accepté")
-
- def verif_eval(self,event=None):
- """
- Lance la vérification de l'expression EVAL présente dans entry_val
- """
- exp_eval = self.entry_val.get()
- test,erreur = self.node.item.verif_eval(exp_eval)
- if not test:
- tkMessageBox.showerror("Expression EVAL invalide",erreur)
- self.entry_val.focus()
- self.entry_val.selection_range(0,END)
- self.parent.appli.affiche_infos("Expression EVAL refusée")
- else:
- self.parent.appli.affiche_infos("Expression EVAL acceptée")
-
-class PARAM_EVALTreeItem(Objecttreeitem.ObjectTreeItem):
- """
- Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS
- qui représente le PARAMETRE
- """
- panel = PARAM_EVALPanel
-
- def init(self):
- self.setfunction = self.set_valeur
-
-# ---------------------------------------------------------------------------
-# API du PARAMETRE pour l'arbre
-# ---------------------------------------------------------------------------
-
- def GetIconName(self):
- """
- Retourne le nom de l'icône associée au noeud qui porte self,
- dépendant de la validité de l'objet
- NB : un PARAMETRE est toujours valide ...
- """
- if self.isactif():
- if self.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
- else:
- return "ast-white-square"
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- return 'EVAL',Fonte_PARAMETRE,None
-
- def GetText(self):
- """
- Retourne le texte à afficher après le nom de la commande (ici après 'paramètre')
- Ce texte est tronqué à 25 caractères
- """
- texte = repr(self.object)
- texte = string.split(texte,'\n')[0]
- if len(texte) < 25 :
- return texte
- else :
- return texte[0:24]+'...'
-
- def GetSubList(self):
- """
- Retourne la liste des fils de self
- """
- return []
-
-# ---------------------------------------------------------------------------
-# Méthodes permettant la modification et la lecture des attributs
-# du paramètre = API graphique du PARAMETRE pour Panel et EFICAS
-# ---------------------------------------------------------------------------
-
- def isvalid(self):
- """
- Indique si l'objet pointé par self est valide
- """
- return self.object.isvalid()
-
- def get_valeur(self):
- """
- Retourne une chaîne représentant la valeur de l'objet PARAMETRE
- cad de l'objet class_eval.EVAL
- """
- return self.object.get_valeur() or ''
-
- def get_nom(self):
- """
- Retourne le nom du paramètre
- """
- return self.object.get_nom()
-
- def set_valeur(self,new_valeur):
- """
- Affecte new_valeur à l'objet PARAMETRE_EVAL
- """
- # on construit le texte de la nouvelle valeur
- new_valeur = 'EVAL("""'+new_valeur+'""")'
- # on affecte la nouvelle valeur à self.object
- self.object.set_valeur(new_valeur)
-
- def set_nom(self,new_nom):
- """
- Renomme le paramètre
- """
- self.object.set_nom(new_nom)
-
- def get_fr(self):
- """
- Retourne le fr associé au paramètre, cad la bulle d'aide pour EFICAS
- """
- return "Définition d'un paramètre de type EVAL"
-
- def verif_nom(self,nom):
- """
- Lance la vérification de validité du nom passé en argument
- """
- return self.object.verif_nom(nom = nom)
-
- def verif_eval(self,valeur):
- """
- Lance la vérification de validité de l'expression EVAL passée en argument
- """
- return self.object.verif_eval(exp_eval = valeur)
-
- def save_parametre_eval(self,new_nom,new_val):
- """
- Vérifie si (new_nom,new_val) définit bien un EVAL licite :
- - si oui, stocke ces paramètres comme nouveaux paramètres de l'EVAL courant et retourne 1
- - si non, laisse les paramètres anciens de EVAL inchangés et retourne 0
- """
- test,erreur = self.object.verif_parametre_eval(param=(new_nom,new_val))
- if test :
- # la formule est bien correcte : on sauve les nouveaux paramètres
- self.object.update(param=(new_nom,new_val))
- return test,erreur
-
-import Extensions.parametre_eval
-treeitem =PARAM_EVALTreeItem
-objet = Extensions.parametre_eval.PARAMETRE_EVAL
+++ /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 Tkinter import *
-import Pmw
-
-import Objecttreeitem
-import panels
-import fontes
-import compooper
-
-class PROCPanel(panels.OngletPanel):
- def init(self):
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Mocles', tab_text='Ajouter mots-clés')
- nb.add('Commande', tab_text='Nouvelle Commande')
- nb.add('Commentaire',tab_text='Paramètre/Commentaire')
- panneau=Pmw.PanedWidget(nb.page("Mocles"),
- orient='horizontal')
- panneau.add('left',min=0.4,max=0.6,size=0.5)
- panneau.add('right',min=0.4,max=0.6,size=0.5)
- panneau.pack(expand=1,fill='both')
- self.makeCommandePage(nb.page("Commande"))
- self.makeMoclesPage(panneau.pane('left'))
- self.makeReglesPage(panneau.pane('right'))
- self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
- nb.setnaturalsize()
- self.affiche()
-
-class ProcEtapeTreeItem(compooper.EtapeTreeItem):
- panel = PROCPanel
-
- def IsExpandable(self):
- return 1
-
- def GetIconName(self):
- """
- 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 self.object.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
- else:
- return "ast-white-square"
-
- def GetLabelText(self):
- """ Retourne 3 valeurs :
- - le texte à afficher dans le noeud représentant l'item
- - la fonte dans laquelle afficher ce texte
- - la couleur du texte
- """
- if self.object.isactif():
- # None --> fonte et couleur par défaut
- return self.labeltext,None,None
- else:
- return self.labeltext,fontes.standard_italique,None
-
- def get_objet(self,name) :
- for v in self.object.mc_liste:
- if v.nom == name : return v
- return None
-
- def additem(self,name,pos):
- if isinstance(name,Objecttreeitem.ObjectTreeItem) :
- mcent = self.object.addentite(name.object,pos)
- else :
- mcent = self.object.addentite(name,pos)
- self.expandable=1
- if mcent == 0 :
- # on ne peut ajouter l'élément de nom name
- return 0
- def setfunction(value, object=mcent):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli,mcent.nom + " : ", mcent, setfunction)
- return item
-
- def suppitem(self,item) :
- # item : item du MOCLE de l'ETAPE à supprimer
- # item.object = MCSIMP, MCFACT, MCBLOC ou MCList
- if item.object.isoblig() :
- self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
- return 0
- else :
- self.object.suppentite(item.object)
- message = "Mot-clé " + item.object.nom + " supprimé"
- self.appli.affiche_infos(message)
- return 1
-
- def GetText(self):
- try:
- #return myrepr.repr(self.object.get_sdname())
- return self.object.get_sdname()
- except:
- return ''
-
- def keys(self):
- keys=self.object.mc_dict.keys()
- return keys
-
- def GetSubList(self):
- sublist=[]
- for obj in self.object.mc_liste:
- def setfunction(value, object=obj):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
- sublist.append(item)
- return sublist
-
- def isvalid(self):
- return self.object.isvalid()
-
- def iscopiable(self):
- return 1
-
- def isCommande(self):
- """
- Retourne 1 si l'objet pointé par self est une Commande, 0 sinon
- """
- return 1
-
- def verif_condition_bloc(self):
- return self.object.verif_condition_bloc()
-
- def get_noms_sd_oper_reentrant(self):
- return self.object.get_noms_sd_oper_reentrant()
-
-import Accas
-treeitem = ProcEtapeTreeItem
-objet = Accas.PROC_ETAPE
-
+++ /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.
-#
-#
-# ======================================================================
-# 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
-import images
-from widgets import ListeChoix
-from widgets import FenetreDeSelection
-
-from Noyau.N_CR import justify_text
-from utils import substract_list
-
-
-class newSIMPPanel(panels.OngletPanel):
- """
- Classe virtuelle servant de classe mère à toutes les classes Panel
- servant à afficher et récupérer la valeur d'un mot-clé simple.
- Le panel est différent suivant le type de la valeur attendu
- """
- def init(self):
- """
- Méthode appelée par le constructeur de OngletPanel :
- construit le notebook à 2 onglets utilisé par tous les panels de
- tous les mots-clés simples
- """
- nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
- nb.pack(fill = 'both', expand = 1)
- self.nb=nb
- nb.add('Valeur', tab_text='Saisir valeur')
- #nb.add('Commentaire',tab_text='Insérer commentaire')
- self.makeValeurPage(nb.page('Valeur'))
- #self.makeCommentairePage(nb.page("Commentaire"))
- nb.setnaturalsize()
-
-# ----------------------------------------------------------------------------------------
-# 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é
- """
- 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.etape.verif_all()
- elif self.node.item.get_position()=='global_jdc':
- self.node.racine.verif_all()
- else :
- self.node.parent.verif()
- self.node.update()
- if self.node.item.isvalid():
- self.node.parent.select()
-
-# ----------------------------------------------------------------------------------------
-# Méthodes utilisées pour la manipulation des items dans les listes de choix
-# ----------------------------------------------------------------------------------------
- def selectValeur(self,name):
- self.selected_valeur = name
-
- def deselectValeur(self,name):
- self.selectValeur = None
-
- def sup_valeur(self,name=None):
- """
- Supprime la valeur selectionnée de la liste des valeurs et la rajoute
- à la liste des choix possibles
- """
- liste_valeurs = self.Liste_valeurs.get_liste()
- liste_valeurs.remove(self.selected_valeur)
- liste_choix = self.node.item.get_definition().into
- liste_choix = substract_list(liste_choix,liste_valeurs)
- self.Liste_valeurs.put_liste(liste_valeurs)
- self.Liste_choix.put_liste(liste_choix)
- self.selected_valeur = None
-
- def add_choix(self,name=None):
- """
- Ajoute le choix selectionné à la liste des valeurs et le retire
- de la liste des choix possibles
- """
- min,max = self.node.item.GetMinMax()
- liste_valeurs = self.Liste_valeurs.get_liste()
- if len(liste_valeurs) >= max :
- self.parent.appli.affiche_infos("La liste ne peut pas avoir plus de %d éléments" %max)
- return
- liste_valeurs.append(self.selected_choix)
- liste_choix = self.Liste_choix.get_liste()
- 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 selectChoix(self,name):
- self.selected_choix = name
-
- 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
- """
-
- def makeValeurPage(self,page):
- """
- Affiche la page concernant l'objet pointé par self qui attend un shell
- """
- objet_mc = self.node.item.get_definition()
- aide = self.gen_aide()
- aide = justify_text(texte=aide)
- self.frame = Frame(page)
- self.frame.place(relx=0,rely=0,relwidth=1,relheight=1)
- label_aide = Label(self.frame,text = aide)
- label_aide.place(relx=0.5,rely=0.1,anchor='center')
- self.text = Text(self.frame,bg='gray95')
- self.text.place(relx=0.2,rely=0.2,relwidth=0.6,relheight=0.6)
- but_val = Button(self.frame,text='Valider',command = self.valide_shell)
- but_ann = Button(self.frame,text='Annuler',command = self.annule_shell)
- but_val.place(relx=0.35,rely=0.9,anchor='center')
- but_ann.place(relx=0.65,rely=0.9,anchor='center')
- self.display_valeur()
-
- def gen_aide(self):
- """
- Retourne une chaîne de caractères d'aide sur la valeur qu'attend l'objet
- pointé par self
- """
- return "Un shell est attendu"
-
- def valide_shell(self,event=None):
- """
- Récupère la valeur saisie par l'utilisateur dans self.text
- et la stocke dans l'objet MCSIMP courant
- """
- texte = self.text.get(1.0,END)
- self.record_valeur(texte)
-
- def annule_shell(self,event=None):
- """
- Annule toute saisie dans self.text
- """
- self.text.delete(0,END)
-
- def display_valeur(self,val=None):
- """
- Affiche la valeur de l'objet pointé par self
- """
- if val != None :
- valeur = val
- else:
- valeur = self.node.item.get_valeur()
- if valeur == None : return
- self.text.insert(END,valeur)
-
-class PLUSIEURS_Panel(newSIMPPanel):
- """
- Classe virtuelle servant de classe mère à toutes celles définissant
- un panneau pour un mot-clé simple qui attend une liste de valeurs
- """
- def accepte_modifs_valeur(self,min,max):
- """
- 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()
- 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")
- return
- if longueur > 1:
- valeur = tuple(l_valeurs)
- elif longueur == 1:
- valeur = l_valeurs[0]
- else:
- valeur = None
- self.parent.appli.affiche_infos("Valeur acceptée")
- self.record_valeur(valeur)
- if self.node.item.isvalid():
- self.node.parent.select()
- # 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
- if self.ajout_valeurs:
- self.ajout_valeurs.quit()
-
- def traite_reel(self,valeur):
- """
- Cette fonction a pour but de rajouter le '.' en fin de chaîne pour un réel
- ou de détecter si on fait référence à un concept produit par DEFI_VALEUR
- ou un EVAL ...
- """
- valeur = string.strip(valeur)
- liste_reels = self.node.item.get_sd_avant_du_bon_type()
- if valeur in liste_reels:
- return valeur
- if len(valeur) >= 3 :
- if valeur[0:4] == 'EVAL' :
- # on a trouvé un EVAL --> on retourne directement la valeur
- return valeur
- if string.find(valeur,'.') == -1 :
- # aucun '.' n'a été trouvé dans valeur --> on en rajoute un à la fin
- return valeur+'.'
- else:
- return valeur
-
- def add_valeur_sans_into(self,name=None):
- """
- Lit ce que l'utilisateur a saisi dans self.entry et cherche à
- l'évaluer :
- - si la valeur est acceptable, elle est ajoutée dans la liste des valeurs
- - sinon elle est refusée
- """
- min,max = self.node.item.GetMinMax()
- if name != None :
- valeur = name
- else:
- valeur = self.get_valeur()
- if self.node.item.wait_reel():
- valeur = self.traite_reel(valeur)
- if self.node.item.wait_geom():
- val,test1 = valeur,1
- else:
- val,test1 = self.node.item.object.eval_valeur(valeur)
- if test1 :
- test2 = self.node.item.object.verif_type(val)
- if test2 :
- liste_valeurs = self.Liste_valeurs.get_liste()
- if len(liste_valeurs) >= max :
- self.parent.appli.affiche_infos("La liste a déjà atteint le nombre maximum d'éléments, ajout refusé")
- self.erase_valeur()
- return
- liste_valeurs.append(val)
- self.Liste_valeurs.put_liste(liste_valeurs)
- self.erase_valeur()
- self.parent.appli.affiche_infos("Nouvelle valeur acceptée")
- else:
- self.parent.appli.affiche_infos("Valeur incorrecte : ajout à la liste refusé")
- else:
- print "impossible d'évaluer %s" %val
- self.parent.appli.affiche_infos("Valeur incorrecte : ajout à la liste refusé")
- #if self.node.item.isvalid():
- # self.node.parent.select()
-
- def sup_valeur_sans_into(self,name=None):
- """
- Méthode qui sert à retirer de la liste des valeurs la valeur sélectionnée
- """
- liste_valeurs = self.Liste_valeurs.get_liste()
- try:
- liste_valeurs.remove(self.selected_valeur)
- except:
- # la valeur sélectionnée n'est pas dans la liste
- return
- self.Liste_valeurs.put_liste(liste_valeurs)
- #self.display_valeur('')
- self.display_valeur(self.selected_valeur)
- self.selected_valeur = None
-
- def display_valeur(self,val=None):
- """
- Affiche la valeur passée en argument dans l'entry de saisie.
- Par défaut affiche la valeur du mot-clé simple
- """
- if not val :
- valeur = self.node.item.getval()
- else:
- valeur = val
- self.entry.delete(0,END)
- if not valeur : return
- self.entry.insert(0,str(valeur))
-
-
-class PLUSIEURS_INTO_Panel(PLUSIEURS_Panel):
- """
- Classe servant à définir le panneau permettant d'afficher et de saisir une
- liste de valeurs à choisir parmi une liste discrètes de valeurs possibles
- """
- def makeValeurPage(self,page):
- """
- Génère la page de saisie de plusieurs valeurs parmi un ensemble discret
- de possibles
- """
- 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
- bulle_aide=self.get_bulle_aide()
- objet_mc = self.node.item.get_definition()
- min,max = self.node.item.GetMinMax()
- l_choix=list(objet_mc.into)
- l_choix.sort()
- l_valeurs = self.node.item.GetListeValeurs()
- # remplissage du panneau
- self.frame_valeurs = Frame(page)
- self.frame_valeurs.place(relx=0.05,rely=0.05,relwidth=0.35,relheight=0.7)
- self.frame_boutons_fleches = Frame(page)
- self.frame_boutons_fleches.place(relx=0.4,rely=0.,relwidth=0.2,relheight=0.7)
- self.frame_choix = Frame(page)
- 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)
- liste_commandes_valeurs = (("<Button-1>",self.selectValeur),
- ("<Button-3>",self.deselectValeur),
- ("<Double-Button-1>",self.sup_valeur))
- liste_commandes_choix = (("<Button-1>",self.selectChoix),
- ("<Button-3>",self.deselectChoix),
- ("<Double-Button-1>",self.add_choix))
- self.Liste_valeurs = ListeChoix(self,self.frame_valeurs,l_valeurs,liste_commandes = liste_commandes_valeurs,
- titre="Valeur(s) actuelle(s)")
- self.Liste_choix = ListeChoix(self,self.frame_choix,l_choix,liste_commandes = liste_commandes_choix,
- titre= "Valeurs possibles")
- bouton_add = Button(self.frame_boutons_fleches,
- #text="<--",
- image = images.get_image('arrow_left'),
- command = self.add_choix)
- bouton_sup = Button(self.frame_boutons_fleches,
- #text="-->",
- image = images.get_image('arrow_right'),
- command = self.sup_valeur)
- bouton_accepter = Button(self.frame_boutons,
- text='Valider',
- command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M))
- bouton_annuler = Button(self.frame_boutons,
- text = 'Annuler',
- command = self.annule_modifs_valeur)
- bouton_add.place(relx=0.3,rely=0.35)
- bouton_sup.place(relx=0.3,rely=0.65)
- for but in (bouton_accepter,bouton_annuler):
- but.pack(side='left',padx=5)
- self.Liste_valeurs.affiche_liste()
- self.Liste_choix.affiche_liste()
- 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)
-
- def get_bulle_aide(self):
- """
- Retourne la bulle d'aide du panneau (affichée par clic droit)
- """
- return """Un clic sur une valeur des deux listes la sélectionne.
- - Un clic sur la flèche gauche stocke la valeur possible sélectionnée
- dans la liste des valeurs que vous voulez affecter au mot-clé simple
- - Un clic sur la flèche droite déstocke la valeur du mot-clé simple
- sélectionnée (elle apparaît alors à nouveau comme choix possible
- dans la liste des choix à droite)
- - Cliquez sur 'Valider' pour affecter la liste des valeurs sélectionnées
- au mot-clé simple courant
- - Cliquez sur 'Annuler' pour restaurer la valeur du mot-clé simple
- avant toute modification depuis le dernier 'Valider'"""
-
-class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel):
- """
- Classe définissant le panel associé aux mots-clés qui demandent
- à l'utilisateur de donner une liste de valeurs qui ne sont pas
- à choisir dans une liste discrètes et qui sont de type de base :
- entier, réel, string,...
- """
- def makeValeurPage(self,page):
- """
- Crée la page de saisie d'une liste de valeurs à priori quelconques,
- cad qui ne sont pas à choisir dans une liste prédéfinie
- """
- # On récupère la bulle d'aide du panneau, l'objet, l'aide,min et max (cardinalité de la liste),
- # et la liste des valeurs déjà affectées à l'objet courant
- bulle_aide=self.get_bulle_aide()
- objet_mc = self.node.item.get_definition()
- aide = self.get_aide()
- aide = justify_text(texte=aide)
- min,max = self.node.item.GetMinMax()
- l_valeurs = self.node.item.GetListeValeurs()
- # création des frames globales
- self.frame1 = Frame(page,relief='groove',bd=2)
- self.frame2 = Frame(page)
- self.frame1.place(relx=0.,rely=0.,relwidth=1.,relheight=0.85)
- self.frame2.place(relx=0.,rely=0.85,relwidth=1,relheight=0.15)
- self.frame_right = Frame(self.frame1)
- self.frame_right.place(relx=0.35,rely=0.,relwidth=0.65,relheight=1.)
- # création des frames internes
- self.frame_valeurs = Frame(self.frame1)
- self.frame_valeurs.place(relx=0.02,rely=0.05,relwidth=0.35,relheight=0.95)
- self.frame_boutons_fleches = Frame(self.frame_right)
- self.frame_boutons_fleches.place(relx=0.,rely=0.2,relwidth=0.2,relheight=0.5)
- self.frame_choix = Frame(self.frame_right)
- self.frame_choix.place(relx=0.2,rely=0.2,relwidth=0.7,relheight=0.5)
- self.frame_aide = Frame(self.frame_right)
- self.frame_aide.place(relx=0.1,rely=0.7,relwidth=0.8,relheight=0.3)
- self.frame_boutons = Frame(self.frame2)
- self.frame_boutons.place(relx=0.35,rely=0.,relwidth=0.3,relheight=1.)
- for fram in (self.frame1,self.frame2,self.frame_right,self.frame_valeurs,
- self.frame_boutons_fleches,self.frame_choix,self.frame_aide,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)
- # création des objets dans les frames
- liste_commandes_valeurs = (("<Button-1>",self.selectValeur),
- ("<Button-3>",self.deselectValeur),
- ("<Double-Button-1>",self.sup_valeur_sans_into))
- self.Liste_valeurs = ListeChoix(self,self.frame_valeurs,l_valeurs,liste_commandes = liste_commandes_valeurs,
- titre="Valeur(s) actuelle(s)")
- # 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)
- # 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,
- image = images.get_image('arrow_left'),
- command = self.add_valeur_sans_into)
- bouton_sup = Button(self.frame_boutons_fleches,
- image = images.get_image('arrow_right'),
- command = self.sup_valeur_sans_into)
- 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',
- 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
- bouton_accepter = Button(self.frame_boutons,
- text='Valider',
- command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M))
- bouton_annuler = Button(self.frame_boutons,
- text = 'Annuler',
- command = self.annule_modifs_valeur)
- for but in (bouton_accepter,bouton_annuler):
- but.pack(side='left',padx=5)
-
- 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):
- """
- Retourne l'aide associée au panneau courant
- """
- return """Taper dans la boîte de saisie de droite la valeur que
- vous voulez affecter au mot-clé simple.
- - Cliquez sur la flèche gauche ou pressez <Return> pour la faire glisser
- dans la liste des valeurs que vous voulez affecter au mot-clé simple
- - Un clic sur une valeur de la liste la sélectionne
- - Un clic sur la flèche droite ou un double-clic retire la valeur
- sélectionnée de la liste
- - Cliquez sur 'Valider' pour que la nouvelle valeur désirée soit affectée
- au mot-clé simple
- - Cliquez sur 'Annuler' pour annuler toutes les modifications faites
- depuis le dernier clic sur 'Valider'"""
-
- 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) : return 'Type de base inconnu'
- if mc.min == mc.max:
- return "Une liste de "+d_aides[type]+" chaînes de caractères est attendue"
- else :
- return "Une liste de "+d_aides[type]+" est attendue (min="+`mc.min`+",max="+`mc.max`+')'
-
- def make_entry(self,frame,command):
- """
- Crée l'entry de saisie de la valeur souhaitée : distingue le
- cas d'un complexe attendu, d'une autre valeur quelconque
- """
- if self.node.item.wait_complex():
- self.typ_cplx=StringVar()
- self.typ_cplx.set('RI')
- rb1 = Radiobutton(frame, text='RI',variable=self.typ_cplx,value='RI')
- rb2 = Radiobutton(frame, text='MP',variable=self.typ_cplx,value='MP')
- self.entry1 = Pmw.EntryField(frame,validate='real')
- self.entry2 = Pmw.EntryField(frame,validate='real')
- rb1.place(relx=0.05,rely = 0.4)
- rb2.place(relx=0.05,rely = 0.6)
- self.entry1.component('entry').bind("<Return>",lambda e,s=self:s.entry2.component('entry').focus)
- self.entry2.component('entry').bind("<Return>",lambda e,c=command:c())
- 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()
- else:
- self.entry = Entry(frame,relief='sunken')
- self.entry.place(relx=0.28,rely=0.5,relwidth=0.6)
- self.entry.bind("<Return>",lambda e,c=command:c())
- self.entry.focus()
-
- def get_valeur(self):
- """
- Retourne la valeur saisie par l'utilisateur dans self.entry
- """
- return self.entry.get()
-
- def erase_valeur(self):
- """
- Efface la valeur donnée par l'utilisateur dans l'entry
- """
- self.entry.delete(0,END)
-
-class PLUSIEURS_ASSD_Panel(PLUSIEURS_Panel):
- """
- Classe définissant le panel associé aux mots-clés qui demandent
- à l'utilisateur de donner une liste de valeurs qui ne sont pas
- à choisir dans une liste discrètes et qui sont de type dérivé d'ASSD
- """
- def makeValeurPage(self,page):
- """
- Génère la page de saisie de plusieurs noms de SD parmi un ensemble discret
- de SD possibles, cad d'un type cohérent avec les types attendus par le mot-clé simple
- """
- # On récupère la bulle d'aide du panneau, l'objet, l'aide, min et max (cardinalité de la liste),
- # la liste des valeurs déjà affectées à l'objet courant et la liste des SD du bon type
- bulle_aide=self.get_bulle_aide()
- self.ajout_valeurs=None
- objet_mc = self.node.item.get_definition()
- aide = self.get_aide()
- aide = justify_text(texte=aide)
- min,max = self.node.item.GetMinMax()
- l_valeurs = self.node.item.GetListeValeurs()
- l_choix=self.node.item.get_sd_avant_du_bon_type()
- l_choix.sort()
- # remplissage du panneau
- self.frame_valeurs = Frame(page)
- self.frame_valeurs.place(relx=0.05,rely=0.05,relwidth=0.35,relheight=0.7)
- self.frame_boutons_fleches = Frame(page)
- self.frame_boutons_fleches.place(relx=0.4,rely=0.,relwidth=0.2,relheight=0.7)
- self.frame_choix = Frame(page)
- 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)
- liste_commandes_valeurs = (("<Button-1>",self.selectValeur),
- ("<Button-3>",self.deselectValeur),
- ("<Double-Button-1>",self.sup_valeur_sans_into))
- liste_commandes_choix = (("<Button-1>",self.selectChoix),
- ("<Button-3>",self.deselectChoix),
- ("<Double-Button-1>",self.add_valeur_sans_into))
- self.Liste_valeurs = ListeChoix(self,self.frame_valeurs,l_valeurs,liste_commandes = liste_commandes_valeurs,
- titre="Valeur(s) actuelle(s)")
- self.Liste_choix = ListeChoix(self,self.frame_choix,l_choix,liste_commandes = liste_commandes_choix,
- titre= "Valeurs possibles")
- bouton_add = Button(self.frame_boutons_fleches,
- #text="<--",
- image = images.get_image('arrow_left'),
- command = self.add_valeur_sans_into)
- bouton_sup = Button(self.frame_boutons_fleches,
- #text="-->",
- image = images.get_image('arrow_right'),
- command = self.sup_valeur_sans_into)
- bouton_accepter = Button(self.frame_boutons,
- text='Valider',
- command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M))
- bouton_annuler = Button(self.frame_boutons,
- text = 'Annuler',
- command = self.annule_modifs_valeur)
- bouton_add.place(relx=0.3,rely=0.35)
- bouton_sup.place(relx=0.3,rely=0.65)
- for but in (bouton_accepter,bouton_annuler):
- but.pack(side='left',padx=5)
- self.Liste_valeurs.affiche_liste()
- self.Liste_choix.affiche_liste()
- 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)
-
- def get_bulle_aide(self):
- """
- Retourne la bulle d'aide associée au panneau
- """
- return """Un clic sur une valeur des deux listes la sélectionne.
- - Un clic sur la flèche gauche stocke la valeur possible sélectionnée
- dans la liste des valeurs que vous voulez affecter au mot-clé simple
- - Un clic sur la flèche droite déstocke la valeur du mot-clé simple
- sélectionnée (elle apparaît alors à nouveau comme choix possible
- dans la liste des choix à droite)
- - Cliquez sur 'Valider' pour affecter la liste des valeurs sélectionnées
- au mot-clé simple courant
- - Cliquez sur 'Annuler' pour restaurer la valeur du mot-clé simple
- avant toute modification depuis le dernier 'Valider'"""
-
- def get_aide(self):
- """
- Retourne la phrase d'aide indiquant de quel type doivent être les
- valeurs que doit entrer l'utilisateur
- """
- mc = self.node.item.get_definition()
- type = mc.type[0].__name__
- if len(mc.type)>1 :
- for typ in mc.type[1:] :
- type = type + ' ou '+typ.__name__
- if mc.min == mc.max:
- return "Une liste de "+`mc.min`+" objets de type "+type+" est attendue"
- else :
- return "Une liste d'objets de type "+type+" est attendue (min="+`mc.min`+",max="+`mc.max`+')'
-
- def sup_valeur(self,name=None):
- """
- Supprime la valeur selectionnée de la liste des valeurs et la rajoute
- à la liste des choix possibles
- """
- liste_valeurs = self.Liste_valeurs.get_liste()
- liste_valeurs.remove(self.selected_valeur)
- liste_choix = self.node.item.get_definition().into
- liste_choix = substract_list(liste_choix,liste_valeurs)
- self.Liste_valeurs.put_liste(liste_valeurs)
- self.Liste_choix.put_liste(liste_choix)
- self.selected_valeur = None
-
- def erase_valeur(self):
- pass
-
- def get_valeur(self):
- """
- Retourne la valeur sélectionnée dans la liste des choix
- """
- return self.selected_choix
-
- def display_valeur(self,val=None):
- """
- Affiche la valeur passée en argument dans l'entry de saisie.
- Par défaut affiche la valeur du mot-clé simple
- """
- # Il n'y a pas d'entry pour ce type de panneau
- return
-
-
-class UNIQUE_Panel(newSIMPPanel):
- """
- Classe virtuelle servant de classe mère à toutes celles définissant un panneau
- permettant l'affichage et la saisie d'une valeur unique pour le mot-clé simple
- """
-
- def erase_valeur(self):
- """
- Efface l'entry de saisie
- """
- self.entry.delete(0,END)
-
- def get_valeur(self):
- """
- Retourne la valeur donnée par l'utilisateur
- """
- return self.entry.get()
-
- 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 = 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)
-
-class UNIQUE_INTO_Panel(UNIQUE_Panel):
- """
- Classe définissant le panel associé aux mots-clés qui demandent
- à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
- discrètes
- """
- def makeValeurPage(self,page):
- """
- Génère la page de saisie d'une seule valeur parmi un ensemble
- discret de possibles
- """
- # récupération de la bulle d'aide et de l'objet mc
- bulle_aide=self.get_bulle_aide()
- objet_mc = self.node.item.get_definition()
- # remplissage du panel
- 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.frame_valeur.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
- l_choix=list(objet_mc.into)
- l_choix.sort()
- self.label = Label(self.frame_valeur,text='Choisir une valeur :')
- self.label.pack(side='top')
- self.frame = Frame(page)
- self.frame.place(relx=0.33,rely=0.2,relwidth=0.33,relheight=0.6)
- liste_commandes = (("<Button-1>",self.selectChoix),
- ("<Button-3>",self.deselectChoix),
- ("<Double-Button-1>",self.record_valeur))
- self.Liste_choix = ListeChoix(self,self.frame,l_choix,liste_commandes = liste_commandes,
- titre="Valeurs possibles")
- self.Liste_choix.affiche_liste()
-
- def get_bulle_aide(self):
- """
- Retourne la bulle d'aide affectée au panneau courant (affichée par clic droit)
- """
- return """Double-cliquez sur la valeur désirée
- pour valoriser le mot-clé simple courant"""
-
-class UNIQUE_ASSD_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 makeValeurPage(self,page):
- """
- Génère la page de saisie de la valeur du mot-clé simple courant qui doit être une
- SD de type dérivé d'ASSD
- """
- # Récupération de l'aide associée au panneau, de l'aide destinée à l'utilisateur,
- # et de la liste des SD du bon type (constituant la liste des choix)
- bulle_aide=self.get_bulle_aide()
- aide=self.get_aide()
- aide= justify_text(texte=aide)
- liste_noms_sd = self.node.item.get_sd_avant_du_bon_type()
- # 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):
- self.valeur_choisie.set(liste_noms_sd[0])
- self.valid_valeur()
-
- 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.frame_valeur.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
- self.listbox = Pmw.ScrolledListBox(self.frame_valeur,
- items=liste_noms_sd,
- labelpos='n',
- label_text="Structures de données du type\n requis par l'objet courant :",
- listbox_height = 6,
- selectioncommand=self.select_valeur_from_list,
- dblclickcommand=lambda s=self,c=self.valid_valeur : s.choose_valeur_from_list(c))
- self.listbox.place(relx=0.5,rely=0.3,relheight=0.4,anchor='center')
- Label(self.frame_valeur,text='Structure de donnée choisie :').place(relx=0.05,rely=0.6)
- #self.label_valeur = Label(self.frame_valeur,textvariable=self.valeur_choisie)
- Label(self.frame_valeur,textvariable=self.valeur_choisie).place(relx=0.5,rely=0.6)
- # affichage de la valeur courante
- self.display_valeur()
-
- def get_bulle_aide(self):
- """
- Retourne l'aide associée au panneau
- """
- return "Double-cliquez sur la structure de donnée désirée pour valoriser le mot-clé simple courant"
-
- def get_aide(self):
- """
- Retourne la phrase d'aide indiquant de quel type doit être la valeur à donner par l'utilisateur
- """
- mc = self.node.item.get_definition()
- type = mc.type[0].__name__
- if len(mc.type)>1 :
- for typ in mc.type[1:] :
- type = type + ' ou '+typ.__name__
- return "Un objet de type "+type+" est attendu"
-
- def select_valeur_from_list(self):
- """
- Affecte à valeur choisie la sélection courante dans la liste des choix proposée
- """
- if len(self.listbox.get()) == 0 : return
- choix = self.listbox.getcurselection()[0]
- self.valeur_choisie.set(choix)
-
- def choose_valeur_from_list(self,command):
- """
- Affecte à valeur choisie la sélection courante dans la liste des choix proposée
- Exécute command
- """
- if len(self.listbox.get()) == 0 : return
- choix = self.listbox.getcurselection()[0]
- self.valeur_choisie.set(choix)
- apply(command,(),{})
-
- def get_valeur(self):
- """
- Retourne la valeur donnée par l'utilisateur au MCS
- """
- return self.valeur_choisie.get()
-
- 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 ...
- self.valeur_choisie.set(valeur.nom)
-
- def erase_valeur(self):
- pass
-
-class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel):
- """
- Classe servant à définir le panneau correspondant à un mot-clé simple
- qui attend une valeur unique de type dérivé d'ASSD ou non encore
- existante (type CO(...) utilisé dans les macros uniquement)
- """
- def makeValeurPage(self,page):
- """
- Génère la page de saisie de la valeur du mot-clé simple courant qui doit être une SD de type dérivé
- d'ASSD
- """
- # Récupération de l'aide associée au panneau, de l'aide destinée à l'utilisateur,
- # et de la liste des SD du bon type (constituant la liste des choix)
- bulle_aide=self.get_bulle_aide()
- aide=self.get_aide()
- aide= justify_text(texte=aide)
- liste_noms_sd = self.node.item.get_sd_avant_du_bon_type()
- # Remplissage du panneau
- 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.frame_valeur.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
- # affichage de la liste des SD existantes et du bon type
- self.listbox = Pmw.ScrolledListBox(self.frame_valeur,
- items=liste_noms_sd,
- labelpos='n',
- label_text="Structures de données du type\n requis par l'objet courant :",
- listbox_height = 6,
- selectioncommand=self.select_valeur_from_list,
- dblclickcommand=lambda s=self,c=self.valid_valeur : s.choose_valeur_from_list(c))
- 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 = ('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.entry_co = Entry(self.frame_valeur)
- self.entry_co.bind('<Return>',self.valid_nom_concept_co)
- # affichage du label de la structure de donnée choisie
- 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.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')
- # affichage de la valeur courante
- self.display_valeur()
-
- def get_bulle_aide(self):
- """
- Retourne la bulle d'aide du panneau
- """
- return """Double-cliquez sur la structure de donnée désirée
- 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()
- 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.node.racine.verif_all()
- else :
- self.node.parent.verif()
- if self.node.item.isvalid():
- self.node.parent.select()
- self.node.update()
-
- def ask_new_concept(self):
- """
- Crée une entry dans le panneau d'un MCS qui attend un concept OU un CO() afin de
- permettre à l'utilisateur de donner le nom du nouveau concept
- """
- new_concept = self.b_co.getcurselection()
- if new_concept == 'OUI':
- self.label_co.place(relx=0.05,rely=0.7)
- self.entry_co.place(relx=0.45,rely=0.7,relwidth=0.25)
- self.l_resu.place_forget()
- self.label_valeur.place_forget()
- self.entry_co.focus()
- elif new_concept == 'NON':
- # On est passe de OUI à NON, on supprime la valeur
- 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 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 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):
- """
- Classe servant à définir le panneau associé aux mots-clés simples qui attendent
- une valeur d'un type de base (entier, réel ou string).
- """
- def makeValeurPage(self,page):
- """
- Génère la page de saisie de la valeur du mot-clé simple courant qui doit être de type
- de base cad entier, réel, string ou complexe
- """
- # Récupération de l'aide associée au panneau, de l'aide destinée à l'utilisateur,
- # et de la liste des SD du bon type (constituant la liste des choix)
- bulle_aide=self.get_bulle_aide()
- aide=self.get_aide()
- aide= justify_text(texte=aide)
- liste_noms_sd = self.node.item.get_sd_avant_du_bon_type()
- # Remplissage du panneau
- 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.frame_valeur.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
- self.label = Label(self.frame_valeur,text='Valeur :')
- self.label.place(relx=0.1,rely=0.5)
- self.entry = Entry(self.frame_valeur,relief='sunken')
- self.entry.place(relx=0.28,rely=0.5,relwidth=0.6)
- self.entry.bind("<Return>",lambda e,c=self.valid_valeur:c())
- self.entry.focus()
- # aide associée au panneau
- 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()
-
- def get_aide(self):
- """
- Retourne la phrase d'aide indiquant de quel type doit être la valeur
- du mot-clé simple fournie par l'utilisateur
- """
- mc = self.node.item.get_definition()
- d_aides = { 'TXM' : "Une chaîne de caractères est attendue",
- 'R' : "Un réel est attendu",
- 'I' : "Un entier est attendu"}
- type = mc.type[0]
- return d_aides.get(type,"Type de base inconnu")
-
- def get_bulle_aide(self):
- """
- Retourne la bulle d'aide associée au panneau et affichée par clic droit
- """
- return """Saisissez la valeur que vous voulez affecter au mot-clé simple
- dans la zone de saisie et pressez <Return>"""
-
- 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 ...
- self.entry.delete(0,END)
- self.entry.insert(0,valeur)
- self.entry.focus()
-
-class UNIQUE_COMP_Panel(UNIQUE_Panel):
- """
- Classe servant à définir le panneau associé aux mots-clés simples
- qui attendent une valeur de type complexe
- """
- def makeValeurPage(self,page):
- """
- Génère la page de saisie de la valeur du mot-clé simple courant qui doit être de type
- de base cad entier, réel, string ou complexe
- """
- # Récupération de l'aide associée au panneau et de l'aide destinée à l'utilisateur
- bulle_aide=self.get_bulle_aide()
- aide=self.get_aide()
- aide= justify_text(texte=aide)
- # Remplissage du panneau
- 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.frame_valeur.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
- self.label = Label(self.frame_valeur,text='Valeur :')
- self.label.place(relx=0.1,rely=0.5)
- self.typ_cplx=StringVar()
- self.typ_cplx.set('RI')
- rb1 = Radiobutton(self.frame_valeur, text='RI',variable=self.typ_cplx,value='RI')
- rb2 = Radiobutton(self.frame_valeur, text='MP',variable=self.typ_cplx,value='MP')
- self.entry1 = Pmw.EntryField(self.frame_valeur,validate='real')
- self.entry2 = Pmw.EntryField(self.frame_valeur,validate='real')
- rb1.place(relx=0.05,rely = 0.4)
- rb2.place(relx=0.05,rely = 0.6)
- self.entry1.component('entry').bind("<Return>",lambda e,s=self:s.entry2.component('entry').focus())
- self.entry2.component('entry').bind("<Return>",lambda e,c=self.valid_valeur:c())
- 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.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):
- """
- Retourne la bulle d'aide du panneau
- """
- return """-Choisissez votre format de saisie du complexe :
- \t 'RI' = parties réelle et imaginaire
- \t 'MP' = module/phase (en degrés)
- - Saisissez ensuite dans les deux zones de saisie les deux nombres attendus"""
-
- def get_aide(self):
- """
- Retourne la phrase d'aide décrivant le type de la valeur que peut prendre
- le mot-clé simple courant
- """
- return 'Un complexe est attendu'
-
- def get_valeur(self):
- """
- Retourne le complexe saisi par l'utilisateur
- """
- l=[]
- l.append(self.typ_cplx.get())
- l.append(string.atof(self.entry1.get()))
- l.append(string.atof(self.entry2.get()))
- return `tuple(l)`
-
- def erase_valeur(self):
- """
- Efface les entries de saisie
- """
- self.typ_cplx = 'RI'
- self.entry1.delete(0,END)
- self.entry2.delete(0,END)
-
-class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
- panel = newSIMPPanel
-
- def init(self) :
- self.expandable = 0
- self.affect_panel()
-
- def affect_panel(self):
- """
- Cette méthode attribue le panel à l'objet pointé par self en fonction de la
- nature de la valeur demandée pour cet objet
- """
- if self.wait_shell():
- # l'objet attend un shell
- self.panel = SHELLPanel
- 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)):
- # l'objet attend une liste de valeurs
- self.panel = PLUSIEURS_INTO_Panel
- else:
- # l'objet n'attend qu'une seule valeur
- self.panel = UNIQUE_INTO_Panel
- else:
- # l'objet prend une ou des valeurs à priori quelconques
- min,max = self.GetMinMax()
- if max != 1 :
- # on attend une liste de valeurs mais de quel type ?
- if self.wait_assd():
- # on attend une liste de SD
- self.panel = PLUSIEURS_ASSD_Panel
- else:
- # on attend une liste de valeurs de types debase (entiers, réels,...)
- self.panel = PLUSIEURS_BASE_Panel
- else:
- # on n'attend qu'une seule valeur mais de quel type ?
- if self.wait_co():
- # on attend une SD ou un objet de la classe CO (qui n'existe pas encore)
- self.panel = UNIQUE_SDCO_Panel
- elif self.wait_assd():
- # on attend une SD
- self.panel = UNIQUE_ASSD_Panel
- else:
- # on attend une valeur d'un type de base (entier,réel,...)
- if self.wait_complex():
- # on attend un complexe
- self.panel = UNIQUE_COMP_Panel
- else:
- # on attend un entier, un réel ou une string
- self.panel = UNIQUE_BASE_Panel
-
- def SetText(self, text):
- try:
- value = eval(text)
- self.object.setval(value)
- except:
- pass
-
- def GetIconName(self):
- if self.isvalid():
- return "ast-green-ball"
- elif self.object.isoblig():
- return "ast-red-ball"
- else:
- return "ast-yel-ball"
-
- def GetText(self):
- """
- Classe SIMPTreeItem
- Retourne le texte à afficher dans l'arbre représentant la valeur de l'objet
- pointé par self
- """
- text= self.object.GetText()
- return text
-
- def wait_co(self):
- """
- Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un objet de type ASSD qui n'existe pas encore (type CO()),
- 0 sinon
- """
- return self.object.wait_co()
-
- def wait_geom(self):
- """
- Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un objet GEOM, 0 sinon
- """
- return self.object.wait_geom()
-
- def wait_complex(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un complexe, 0 sinon """
- if 'C' in self.object.definition.type:
- return 1
- else:
- return 0
-
- def wait_reel(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un réel, 0 sinon """
- if 'R' in self.object.definition.type:
- return 1
- else:
- return 0
-
- def wait_shell(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un shell, 0 sinon """
- if 'shell' in self.object.definition.type:
- return 1
- else:
- return 0
-
- def wait_into(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
- prend ses valeurs dans un ensemble discret (into), 0 sinon """
- if self.object.definition.into != None :
- return 1
- else:
- return 0
-
- def wait_assd(self):
- """Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un objet de type ASSD ou dérivé, 0 sinon """
- return self.object.wait_assd()
-
- def getval(self):
- return self.object.getval()
-
- def GetMinMax(self):
- """ Retourne les valeurs min et max de la définition de object """
- return self.object.get_min_max()
-
- 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
- """
- 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.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 """
- return self.object.get_liste_valeurs()
-
- def verif(self):
- pass
-
- def isvalid(self):
- return self.object.isvalid()
-
- def eval_valeur(self,valeur):
- """ Lance l'interprétation de 'valeur' (chaîne de caractères) comme valeur
- de l'objet pointé par self :
- - retourne l'objet associé si on a pu interpréter (entier, réel, ASSD,...)
- - 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
-
+++ /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 pour charger les paramètres de configuration d'EFICAS
-"""
-# Modules Python
-import os,sys,string,types
-import traceback
-try:
- from tkMessageBox import showinfo,askyesno,showerror,askretrycancel
-except:
- pass
-
-# Modules Eficas
-import utils
-
-class CONFIG:
- def __init__(self,appli,rep_ini):
- # si appli == None on est en mode commande (hors EFICAS)
- self.appli = appli
- if self.appli:self.parent=appli.top
- else:self.parent=None
- self.rep_ini = rep_ini
- self.rep_user = utils.get_rep_user()
- self.lecture_parametres()
-
- def lecture_parametres(self):
- """
- Cette méthode teste l'existence du fichier editeur.ini au bon endroit et lance
- son interprétation
- """
- fic_ini = os.path.join(self.rep_ini,'editeur.ini')
- if not os.path.exists(fic_ini) or not os.path.isfile(fic_ini):
- if self.appli :
- showerror("Erreur","Impossible de trouver le fichier %s ! \n Prévenez la maintenance ..." %fic_ini)
- else:
- print "Impossible de trouver le fichier %s ! \n Prévenez la maintenance ..." %fic_ini
- sys.exit(0)
- self.fic_ini = fic_ini
- self.init_liste_param()
- self.lecture_fichier_ini_standard()
- self.lecture_fichier_ini_utilisateur()
-
- def lecture_fichier_ini_standard(self):
- """
- Relit les paramètres du fichier eficas.ini
- """
- txt = utils.read_file(self.fic_ini)
- d={}
- try:
- exec txt in d
- except:
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
- showerror("Erreur","Une erreur s'est produite dans la relecture du fichier de configuration : "
- + self.fic_ini+"\n"+string.join(l[2:]))
- print "Erreur à la lecture du fichier de configuration : %s" % self.fic_ini
- print string.join(l[2:])
- sys.exit()
- for attr in self.l_nom_param:
- 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")
- return
- setattr(self,nom_attr,valeur)
- self.init_liste_param()
-
- def lecture_fichier_ini_utilisateur(self):
- """
- Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
- """
- self.fic_ini_utilisateur = os.path.join(self.rep_user,'eficas.ini')
- if not os.path.isfile(self.fic_ini_utilisateur):
- # pas de fichier de configuration utilisateur --> on passe
- return
- txt = utils.read_file(self.fic_ini_utilisateur)
- d={}
- try:
- exec txt in d
- except :
- showinfo("Erreur","Impossible d'interpréter le fichier de configuration utilisateur : %s" %self.fic_ini_utilisateur)
- traceback.print_exc()
- return
- for attr in self.l_nom_param:
- nom_attr,statut,defaut = attr
- valeur = d.get(nom_attr,None)
- if valeur :
- setattr(self,nom_attr,valeur)
- self.init_liste_param()
-
- def init_liste_param(self):
- """
- Génère la liste des paramètres
- l_param est une liste de tuples où chaque tuple est de la forme :
- (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))
- else:
- self.l_param.append(("Répertoire de travail",'rep','rep_travail',
- os.path.join(self.rep_user,'uaster','tmp_eficas')))
- # répertoire des catalogues matériaux
- if hasattr(self,'rep_mat'):
- self.l_param.append(("Répertoire materiaux",'rep','rep_mat',self.rep_mat))
- else:
- self.l_param.append(("Répertoire materiaux",'rep','rep_mat','/aster/v4/materiau'))
- # chemin d'accès exécutable acrobat reader
- if hasattr(self,'exec_acrobat'):
- self.l_param.append(("Ligne de commande Acrobat Reader",'file','exec_acrobat',self.exec_acrobat))
- else:
- self.l_param.append(("Ligne de commande Acrobat Reader",'file','exec_acrobat',self.rep_user))
- # répertoire contenant la doc Aster
- if hasattr(self,'path_doc'):
- self.l_param.append(("Chemin d'accès à la doc Aster",'rep','path_doc',self.path_doc))
- else:
- self.l_param.append(("Chemin d'accès à la doc Aster",'rep','path_doc',self.rep_user))
- # chemin(s) d'accès au(x) catalogue(s)
- if hasattr(self,'catalogues'):
- self.l_param.append(("Versions du code ",'cata','catalogues',self.catalogues))
- else:
- self.l_param.append(("Versions du code ",'cata','catalogues',os.path.join(self.rep_ini,'..','Cata/cata.py')))
- # attribut développeur
- if hasattr(self,'isdeveloppeur'):
- self.l_param.append(("Etes-vous développeur ?",'YesNo','isdeveloppeur',self.isdeveloppeur))
- else:
- self.l_param.append(("Etes-vous développeur ?",'YesNo','isdeveloppeur','NON'))
- # répertoire où sont contenus les catalogues développeurs
- if hasattr(self,'path_cata_dev') and hasattr(self,'isdeveloppeur') and self.isdeveloppeur == 'OUI':
- self.l_param.append(("Chemin d'accès aux catalogues développeurs",'rep','path_cata_dev',self.path_cata_dev))
- else:
- self.l_param.append(("Chemin d'accès aux catalogues développeurs",'rep','path_cata_dev',
- os.path.join(self.rep_user,'cata')))
- self.l_param = tuple(self.l_param)
- self.l_nom_param=[]
- statut='o'
- for tup in self.l_param:
- if tup[1] == 'YesNo':
- # les paramètres suivant tup sont facultatifs ...
- statut='f'
- self.l_nom_param.append((tup[2],statut,tup[3])) # nom,statut,defaut
-
- def affichage_fichier_ini(self):
- """
- Affichage des valeurs des paramètres relus par Eficas
- """
- import widgets
- result = widgets.Formulaire(self.parent,
- obj_pere = self,
- titre = "Paramètres nécessaires à la configuration d'EFICAS",
- texte = "Voici les paramètres que requiert Eficas",
- items = self.l_param,
- mode='display',
- commande=('Modifier',self.creation_fichier_ini_si_possible))
- if result.resultat :
- print 'on sauvegarde les nouveaux paramètres :',result.resultat
- self.save_param_ini(result.resultat)
-
- def save_param_ini(self,dico):
- """
- Sauvegarde les nouveaux paramètres dans le fichier de configuration utilisateur
- """
- f=open(self.fic_ini_utilisateur,'w+')
- for k,v in dico.items():
- if k == 'catalogues' :
- f.write(k + '\t=\t' + str(v) + '\n')
- else:
- f.write(k + '\t=\t"' + str(v) + '"\n')
- f.close()
- self.lecture_fichier_ini_utilisateur()
-
- def creation_fichier_ini_si_possible(self):
- return self.creation_fichier_ini(mode='ignorer_annuler')
-
- def creation_fichier_ini(self,mode='considerer_annuler'):
- """
- Récupération des valeurs des paramétres requis pour la création du fichier
- eficas.ini
- """
- import widgets
- texte = "EFICAS a besoin de certains renseignements pour se configurer\n"+\
- "Veuillez remplir TOUS les champs ci-dessous et appuyer sur 'Valider'\n"+\
- "Si vous annulez, EFICAS ne se lancera pas !!"
- items = self.l_param
- result = widgets.Formulaire(self.parent,
- obj_pere = self,
- titre = "Saisie des données indispensables à la configuration d'EFICAS",
- texte = texte,
- items = items,
- mode='query')
- if not result.resultat :
- if mode == 'considerer_annuler':
- test = askretrycancel("Erreur","Données incorrectes !")
- if not test:
- # XXX On sort d'EFICAS, je suppose
- self.appli.exitEFICAS()
- else:
- self.creation_fichier_ini()
- else:
- return None
- else :
- self.save_param_ini(result.resultat)
- return result.resultat
-
-def make_config(appli,rep):
- return CONFIG(appli,rep)
-
-
+++ /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.
-#
-#
-# ======================================================================
-# Modules Python
-import types
-
-# Modules Eficas
-import Accas
-from Noyau.N_CR import CR
-
-class CATALOGUE:
- def __init__(self,modules_cata):
- self.modules_cata = modules_cata # tuple de modules...
- self.cr = CR()
- self.state='undetermined'
- self.entites_attributs = {}
- self.entites_fils = []
- self.build_entites_attributs()
- self.build_entites_fils()
-
- def build_entites_attributs(self):
- pass
-
- def build_entites_fils(self):
- niv_types = Accas.NIVEAU(nom="types",label="Liste des types")
- niv_commandes = Accas.NIVEAU(nom="commandes",label="Liste des commandes")
- self.entites_fils.append(make_commande_cata(niv_types,self))
- self.entites_fils.append(make_commande_cata(niv_commandes,self))
- for module_cata in self.modules_cata:
- for e in dir(module_cata):
- obj = getattr(module_cata,e)
- if isCMD(obj):
- self.entites_fils[1].register(make_commande_cata(obj,self.entites_fils[1]))
- elif type(obj) == types.ClassType:
- if issubclass(obj,Accas.ASSD):
- self.entites_fils[0].register(TYPE_CATA(obj))
-
- def init_modif(self):
- self.state = 'modified'
-
- def report(self):
- """ Classe CATALOGUE
- Methode pour generation d un rapport de validite
- """
- self.cr.purge()
- self.cr.debut="DEBUT CR validation : "
- self.cr.fin="FIN CR validation :"
- self.state = 'modified'
- self.isvalid(cr='oui')
- for fils in self.entites_fils[1].entites :
- self.cr.add(fils.report())
- return self.cr
-
- def isvalid(self,cr='non'):
- if self.state != 'unchanged':
- valid=1
- for fils in self.entites_fils[1].entites_fils:
- if not fils.isvalid():
- valid=0
- break
- self.valid = valid
- self.state='unchanged'
- return self.valid
-
-def make_commande_cata(objet,pere):
- if isinstance(objet,Accas.OPER):
- return OPER_CATA(objet,pere,objet.nom)
- elif isinstance(objet,Accas.PROC):
- return PROC_CATA(objet,pere,objet.nom)
- elif isinstance(objet,Accas.MACRO):
- return MACRO_CATA(objet,pere,objet.nom)
- elif isinstance(objet,Accas.FORM):
- return MACRO_CATA(objet,pere,objet.nom)
- elif isinstance(objet,Accas.NIVEAU):
- return NIVEAU_CATA(objet,pere,objet.nom)
- else:
- print "Erreur dans make_commande_cata : on cherche à évaluer un objet non référencé ",objet
-
-def make_mc_cata(objet,pere,nom=''):
- if isinstance(objet,Accas.BLOC):
- return BLOC_CATA(objet,pere,nom)
- elif isinstance(objet,Accas.FACT):
- return FACT_CATA(objet,pere,nom)
- elif isinstance(objet,Accas.SIMP):
- return SIMP_CATA(objet,pere,nom)
- else:
- print "Erreur dans make_mc_cata : on cherche à évaluer un objet non référencé ",objet
-
-class TYPE_CATA:
- def __init__(self,objet):
- self.objet = objet
- self.nom = objet.__name__
-
- def isvalid(self,cr='non'):
- return 1
-
- def get_valeur_attribut(self,nom_attr):
- if nom_attr == 'nom':return self.nom
- return None
-
-class OBJET_CATA:
- attributs=[]
- attributs_defauts={}
- def __init__(self,objet,pere,nom):
- self.objet = objet
- self.nom = nom
- self.pere = pere
- self.cr = CR()
- self.state='undetermined'
- self.entites_fils = []
- self.entites_attributs = {}
- self.build_entites_attributs()
- self.build_entites_fils()
-
- def __str__(self):
- s=''
- s=self.__class__.__name__+' : '+self.nom
- return s
-
- def build_entites_attributs(self):
- for attribut in self.attributs:
- if hasattr(self.objet,attribut):
- self.entites_attributs[attribut]=ATTR_CATA(attribut,getattr(self.objet,attribut))
- else:
- if self.attributs_defauts.has_key(attribut):
- self.entites_attributs[attribut]=ATTR_CATA(attribut,self.attributs_defauts[attribut])
- else:
- self.entites_attributs[attribut]=ATTR_CATA(attribut,None)
-
- def build_entites_fils(self):
- for k,v in self.objet.entites.items():
- self.entites_fils.append(make_mc_cata(v,self,nom=k))
-
- def get_valeur_attribut(self,nom_attr):
- if nom_attr in self.entites_attributs.keys():
- return self.entites_attributs[nom_attr].valeur
- elif nom_attr in self.attributs_defauts.keys():
- return self.attributs_defauts[nom_attr]
- elif nom_attr == 'domaine_validité':
- if self.entites_attributs['into'].valeur != None :
- return 'discret'
- else:
- return 'continu'
-
- def isvalid(self,cr='non'):
- if self.state =='unchanged':
- return self.valid
- else:
- valid = 1
- if hasattr(self,'valid'):
- old_valid = self.valid
- else:
- old_valid = None
- # on teste self lui-meme
- if self.nom == '' or self.nom == None : valid=0
- # on teste les attributs
- for attribut in self.entites_attributs.values():
- if not attribut.isvalid() : valid =0
- break
- # on teste les fils
- for fils in self.entites_fils:
- if not fils.isvalid(): valid = 0
- break
- self.valid = valid
- self.state = 'unchanged'
- if old_valid:
- if old_valid != self.valid : self.init_modif_up()
- return self.valid
-
- def init_modif_up(self):
- self.pere.state='modified'
-
- def report(self):
- self.cr.purge()
- self.cr.debut="Debut "+self.__class__.__name__+' : '+self.nom
- self.cr.fin = "Fin "+self.__class__.__name__+' : '+self.nom
- self.isvalid(cr='oui')
- for attribut in self.entites_attributs.values():
- self.cr.add(attribut.report())
- for fils in self.entites_fils :
- self.cr.add(fils.report())
- return self.cr
-
- def set_valeur_attribut(self,nom_attr,valeur):
- """
- Affecte la valeur 'valeur' à l'attribut de nom 'nom-attr'
- """
- # il faudra être prudent sur les changements de nom : interdire de changer
- # le nom d'un mot-clé qui serait utilisé dans une règle ???
- self.entites_attributs[nom_attr].valeur = valeur
-
- def addentite(self,name,pos):
- """
- Permet d'ajouter un nouveau fils a self
- """
- self.init_modif()
- if name == 'new_simp':
- objet = Accas.SIMP(typ=('bidon',))
- objet_cata = make_mc_cata(objet,self)
- self.entites_fils.insert(pos,objet_cata)
- return objet_cata
-
- def init_modif(self):
- self.state = 'modified'
- if hasattr(self,'pere'):
- self.pere.init_modif()
-
- def verif_nom(self,cr='non'):
- """
- Méthode appelée par EFICAS et ACCAS
- Booléenne : retourne 1 si l'attribut nom est valide, 0 sinon
- """
- if self.entites_attributs['nom'].valeur == '':
- if cr == 'oui' : self.cr.fatal("L'objet de type %s n'est pas nommé" %self.__class__.__name__)
- return 0
- return 1
-
- def verif_defaut(self,cr='non'):
- """
- Méthode de vérification de validité du défaut
- """
- defaut = self.get_valeur_attribut('defaut')
- if self.get_valeur_attribut('domaine_validite') == 'discret' :
- if defaut not in self.get_valeur_attribut('into'):
- if cr == 'oui' : self.cr.fatal("La valeur %s n'est pas autorisée" %str(defaut))
- return 0
- return 1
- else:
- if defaut == None : return 1
- typ = self.get_valeur_attribut('type')
- # on attend un TXM ?
- if 'TXM' in typ :
- if type(defaut) == types.StringType : return 1
- val_min = self.get_valeur_attribut('val_min')
- val_max = self.get_valeur_attribut('val_max')
- # on attend un reel ?
- if 'R' in typ :
- if type(defaut) == types.StringType:
- try :
- nb = string.atof(defaut)
- except:
- nb=None
- else:
- nb = defaut
- if nb != None :
- test = 1
- if val_min != '**' : test = (nb >= val_min)
- if val_max != '**' : test = test*(nb <= val_max)
- if test : return 1
- # on attend un entier ?
- if 'I' in typ :
- if type(defaut)==types.StringType:
- try:
- nb = string.atoi(defaut)
- except:
- pass
- else:
- nb = defaut
- if nb != None :
- test = 1
- if val_min != '**' : test = (nb >= val_min)
- if val_max != '**' : test = test*(nb <= val_max)
- if test : return 1
- # si on passe par là, c'est que l'on n'a pas su évaluer defaut
- if cr == 'oui' : self.cr.fatal("La valeur %s n'est pas une valeur permise" %str(defaut))
- return 0
-
- def verif_val_min(self,cr='non'):
- """
- Méthode de vérification de val_min.
- Booléenne : retourne 1 si val_min est valide, 0 sinon
- """
- val_min = self.get_valeur_attribut('val_min')
- if not val_min :
- if cr == 'oui' : self.cr.fatal('val_min ne peut valoir None')
- return 0
- if val_min == '**': return 1
- # val_min doit à ce stade être :
- # - soit un entier ou un réel
- # - soit une chaîne de caractères représentant un entier ou un réel (provient d'EFICAS)
- if type(val_min) == types.StringType :
- try :
- val_min = string.atoi(val_min)
- except:
- try:
- val_min = string.atof(val_min)
- except:
- if cr == 'oui' : self.cr.fatal("%s n'est ni un entier ni un réel" %str(val_min))
- return 0
- # A ce stade, val_min doit être un entier ou un réel : on vérifie ...
- if type(val_min) not in (types.IntType,types.FloatType) :
- if cr == 'oui' : self.cr.fatal("%s n'est pas d'un type autorisé" %str(val_min))
- return 0
- # A ce stade valeur est un entier ou un réel : on peut comparer à val_max
- val_max = self.get_valeur_attribut('val_max')
- if val_max == '**' or val_min < val_max : return 1
- # erreur : val_min est supérieur à val_max !!!
- if cr == 'oui' : self.cr.fatal("%s n'est pas inférieur à %s" %(str(val_min),str(val_max)))
- return 0
-
- def verif_val_max(self,cr='non'):
- """
- Méthode de vérification de val_max.
- Booléenne : retourne 1 si val_max est valide, 0 sinon
- """
- val_max = self.get_valeur_attribut('val_max')
- if not val_max :
- if cr == 'oui' : self.cr.fatal('val_max ne peut valoir None')
- return 0
- if val_max == '**': return 1
- # val_max doit à ce stade être :
- # - soit un entier ou un réel
- # - soit une chaîne de caractères représentant un entier ou un réel (provient d'EFICAS)
- if type(val_max) == types.StringType :
- try :
- val_max = string.atoi(val_max)
- except:
- try:
- val_max = string.atof(val_max)
- except:
- if cr == 'oui' : self.cr.fatal("%s n'est ni un entier ni un réel" %str(val_max))
- return 0
- # A ce stade, val_max doit être un entier ou un réel : on vérifie ...
- if type(val_max) not in (types.IntType,types.FloatType) :
- if cr == 'oui' : self.cr.fatal("%s n'est pas d'un type autorisé" %str(val_max))
- return 0
- # A ce stade valeur est un entier ou un réel : on peut comparer à val_max
- val_min = self.get_valeur_attribut('val_min')
- if val_min == '**' or val_min < val_max : return 1
- # erreur : val_min est supérieur à val_max !!!
- if cr == 'oui' : self.cr.fatal("%s n'est pas supérieur à %s" %(str(val_max),str(val_min)))
- return 0
-
-class OPER_CATA(OBJET_CATA):
- attributs = ['ang','docu','fr','niveau','nom','op','op_init','reentrant','regles','repetable','sd_prod']
-
-class PROC_CATA(OBJET_CATA):
- attributs = ['ang','docu','fr','niveau','nom','op','op_init','regles','repetable']
-
-class MACRO_CATA(OBJET_CATA):
- attributs = ['ang','docu','fr','niveau','nom','op','op_init','reentrant','regles','repetable','sd_prod']
-
-class BLOC_CATA(OBJET_CATA):
- attributs = ['ang','condition','docu','fr','nom','regles']
-
-class FACT_CATA(OBJET_CATA):
- attributs=['ang','defaut','docu','fr','max','min','nom','regles','statut']
-
-class SIMP_CATA(OBJET_CATA):
- attributs=['ang','defaut','docu','fr','homo','into','max','min','nom','position','statut','type','val_min','val_max']
- attributs_defauts={'ang':'','defaut':None,'fr':'','homo':1,'into':None,'max':1,'min':1,'nom' : '','position':'local',
- 'regles':None,'statut':'f','type':None,'val_min':'**','val_max':'**','docu':''}
-
- def build_entites_fils(self):
- pass
-
- def isvalid(self,cr='non'):
- """
- Mde appelpar l'externe (EFICAS et ACCAS).
- Boolne : retourne 1 si l'objet est valide, 0 sinon
- """
- if self.state == 'unchanged':
- return self.valid
- else:
- valid = 1
- valid = valid*self.verif_nom(cr=cr)
- valid = valid*self.verif_defaut(cr=cr)
- valid = valid*self.verif_val_min(cr=cr)*self.verif_val_max(cr=cr)
- if hasattr(self,'valid'):
- old_valid = self.valid
- else:
- old_valid = None
- self.valid = valid
- self.state='unchanged'
- if old_valid :
- if old_valid != self.valid : self.init_modif_up()
- return self.valid
-
-class NIVEAU_CATA(OBJET_CATA):
- def __init__(self,objet,pere,nom):
- self.pere = pere
- self.nom = nom
- self.state = 'undetermined'
- self.cr = CR()
- self.objet = objet
- self.entites_fils=[]
- self.entites_attributs = {}
-
- def register(self,fils):
- """
- Enregistre la commande 굡pe :
- - si editmode = 0 : on est en mode relecture d'un fichier de commandes
- auquel cas on ajoute etape a fin de la liste self.etapes
- - si editmode = 1 : on est en mode ajout d'굡pe depuis eficas auquel cas
- cette mode ne fait rien, c'est addentité enregistre etape ࡬a bonne place
- dans self.etapes
- """
- self.entites_fils.append(fils)
-
- def unregister(self,etape):
- self.entites_fils.remove(etape)
-
- def isvalid(self,cr='non'):
- """ Mode boolne qui retourne 0 si le niveau est invalide, 1 sinon """
- if self.state == 'unchanged':
- return self.valid
- else:
- valid = 1
- if len(self.entites_fils) == 0:
- #valid = self.Accas.valide_vide
- valid = 1
- else:
- for commande in self.entites_fils :
- if hasattr(commande,'isvalid'):
- if not commande.isvalid() :
- valid = 0
- break
- else:
- print str(commande)," n'a pas de methode isvalid"
- if hasattr(self,'valid'):
- old_valid = self.valid
- else:
- old_valid = None
- self.valid = valid
- self.state='unchanged'
- if old_valid:
- if old_valid != self.valid : self.init_modif_up()
- return self.valid
-
-
-class ATTR_CATA(OBJET_CATA):
- def __init__(self,nom,valeur=None):
- self.nom = nom
- self.valeur = valeur
- self.cr = CR()
- self.state='undetermined'
- self.entites_attributs={}
- self.entites_fils=()
-
- def isvalid(self,cr='non'):
- return 1
-
-def isCMD(cmd):
- return isinstance(cmd,Accas.OPER) or isinstance(cmd,Accas.PROC) or isinstance(cmd,Accas.MACRO) or isinstance(cmd,Accas.FORM)
-
+++ /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 EFICAS qui est l'application
- proprement dite. Elle est dérivée de la classe APPLI
-"""
-# Modules Python
-import string
-from Tkinter import Label
-import Pmw
-from tkCommonDialog import Dialog
-from tkFileDialog import *
-from tkMessageBox import askyesno,showerror
-import traceback
-
-# Modules Eficas
-import patches
-import appli
-from widgets import Fenetre
-
-class EFICAS(appli.APPLI):
-
- 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)
- texte = texte + 'Catalogue utilisé : %s\n' % self.bureau.fic_cata
- return texte
-
- def exitEFICAS(self):
- self.bureau.exitEFICAS()
-
- def browse(self,result):
- if result == 'Browse':
- self.ulfile = askopenfilename(title="Choix fichier :")
- self._ulfile.setentry(self.ulfile)
- elif result == 'OK':
- self.ulfile = self._ulfile.get()
- # On utilise le convertisseur défini par format_fichier
- source=self.get_source(self.ulfile)
- if source:
- # On a réussi à convertir le fichier self.ulfile
- self.dialog.deactivate(result)
- self.text=source
- else:
- # Une erreur a été rencontrée
- self.text=''
- elif result == 'Cancel':
- self._ulfile.setentry('')
- self.dialog.deactivate(result)
- self.ulfile = None
- self.text=None
-
- def get_file(self,unite=None,fic_origine = ''):
- """
- Retourne le nom du fichier correspondant a l unite logique unite (entier)
- """
- if unite :
- titre = "Choix unite %d " %unite
- else:
- titre = "Choix d'un fichier de poursuite"
- self.dialog=Pmw.Dialog(self.top,
- title = titre,
- buttons = ('OK', 'Browse','Cancel'),
- defaultbutton='OK',
- command=self.browse,
- )
- self.dialog.withdraw()
- if unite :
- texte = "Le fichier %s contient une commande INCLUDE \n" % fic_origine
- texte = texte+'Donnez le nom du fichier correspondant\n à l unité logique %d' % unite
- else:
- texte="Le fichier %s contient une commande %s\n" %(fic_origine,'POURSUITE')
- texte = texte+'Donnez le nom du fichier dont vous \n voulez faire une poursuite'
- w = Label(self.dialog.interior(),
- text = texte)
- w.pack(padx = 10, pady = 10)
- if unite != None :
- labeltexte = 'Fichier pour unite %d :' % unite
- else:
- labeltexte = 'Fichier à poursuivre :'
- self._ulfile=Pmw.EntryField(self.dialog.interior(),
- labelpos = 'w',
- label_text = labeltexte,
- )
- self._ulfile.pack(fill='x', expand=1, padx=10, pady=5)
- self._ulfile.component('entry').focus_set()
- self.dialog.activate(geometry='centerscreenalways')
- return self.ulfile,self.text
-
- def get_source(self,file):
- import convert
- format=self.format_fichier.get()
- # Il faut convertir le contenu du fichier en fonction du format
- if convert.plugins.has_key(format):
- # Le convertisseur existe on l'utilise
- p=convert.plugins[format]()
- p.readfile(file)
- text=p.convert('execnoparseur')
- if not p.cr.estvide():
- self.affiche_infos("Erreur à la conversion")
- Fenetre(self,
- titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier",
- texte = str(p.cr)).wait()
- return text
- return text
- else:
- # Il n'existe pas c'est une erreur
- self.affiche_infos("Type de fichier non reconnu")
- 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()
-
+++ /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 permet de lancer l'application EFICAS en affichant
- un ecran Splash pour faire patentier l'utilisateur
-"""
-# Modules Python
-import Tkinter
-
-# Modules Eficas
-import import_code
-import splash
-
-def lance_eficas(code,fichier=None):
- """
- Lance l'appli EFICAS
- """
- root = Tkinter.Tk()
- splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code)
- splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...")
- import eficas
- if fichier :
- eficas.EFICAS(root,code=code,fichier = fichier)
- else:
- eficas.EFICAS(root,code=code)
-
- root.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.
-#
-#
-# ======================================================================
-"""
- Ce module sert a afficher le texte du FAQ EFICAS
- et à attendre l'acquittement par l'utilisateur
-"""
-# Modules Python
-import os
-import Pmw
-from Tkinter import END
-
-# Modules Eficas
-import prefs
-import fontes
-
-class FAQ:
- def __init__(self,parent):
- self.parent=parent
- self.Dialog = Pmw.Dialog(parent,
- buttons=('Lu',),
- title="FAQs et limitations d'EFICAS",
- command = self.lu_FAQ)
- txt = open(os.path.join(prefs.INSTALLDIR,'Editeur','faqs.txt'),'r').read()
- Texte = Pmw.ScrolledText(self.Dialog.interior(),
- text_font=fontes.standard)
- Texte.insert(END,txt)
- Texte.pack(expand=1,fill='both')
- self.Dialog.activate(geometry = 'centerscreenalways')
-
- def lu_FAQ(self,event=None):
- self.Dialog.destroy()
-
-def affiche(parent):
- FAQ(parent)
+++ /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
-# 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
-from Tkinter import *
-import copy
-
-# Modules Eficas
-from centerwindow import centerwindow
-
-class fenetre_mc_inconnus :
- """
- Cette classe sert à construire la fenêtre qui apparaît dans EFICAS
- lorsque des mots-clés inconnus ont été trouvés dans le fichier de
- commandes que l'on est en train de lire
- """
- def __init__(self,l_mc):
- self.l_mc = l_mc
- self.fenetre = Toplevel()
- self.fenetre.geometry("400x400+0+0")
- self.fenetre.title("Mots-clés inconnus dans le fichier de commandes")
- self.init()
- self.init_frames()
- self.init_label()
- self.init_liste_mc()
- self.init_boutons()
- centerwindow(self.fenetre)
-
- def init(self) :
- """
- Initialise les structures de données
- """
- self.new_l_mc = []
- for mc in self.l_mc :
- self.new_l_mc.append(copy.copy(mc))
- self.mc_courant = None
- self.var_quit = IntVar(0)
- self.entry_courante = None
-
- def init_frames(self):
- """
- Création des 2 frames devant contenir le label et la liste des MC inconnus
- """
- self.frame1 = Frame(self.fenetre)
- self.frame2 = Frame(self.fenetre)
- self.frame3 = Frame(self.fenetre)
- 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)
-
- 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é"
- self.fenetre.update_idletasks()
- Label(self.frame1,
- text = txt,
- wraplength = int(self.frame1.winfo_width()*0.8),
- justify = 'center').place(relx=0.5,rely=0.5,anchor='center')
-
-
- def init_liste_mc(self):
- """
- 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]
- 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.configure(relief='flat',state='disabled')
- self.widgets.append((e,lab))
- i=i+1
-
- def init_boutons(self):
- """
- Construit les boutons Modifier,Supprimer et Fermer
- Les deux premiers sont inactifs tant qu'aucun mot-clé n'est sélectionné
- """
- self.b_mod = Button(self.frame3,
- text = "Modifier",
- disabledforeground = 'grey35',
- state='disabled',
- command = self.modifie_mc)
- self.b_sup = Button(self.frame3,
- text = "Supprimer",
- disabledforeground = 'grey35',
- state='disabled',
- command = self.supprime_mc)
- 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_quit.place(relx=0.50,rely=0.5,anchor='center')
-
- def wait_new_list(self):
- """
- Cette méthode rend cette toplevel bloquante.
- Dès que la variable var_quit est modifiée, on continue l'exécution de cette
- méthode (et on quitte)
- """
- self.fenetre.wait_variable(self.var_quit)
- self.fenetre.destroy()
- return self.new_l_mc
-
- def get_path(self,l_o):
- """
- Construit la chaîne de caractère contenant le chemin d'accès complet du mot-clé
- """
- txt = ''
- for o in l_o :
- txt = txt + o.nom+'/'
- # on enlève le dernier slash en trop
- txt = txt[0:-1]
- return txt
-
- def select_mc(self,mc,entry):
- """
- Enregistre le mot-clé passé en argument comme mot-clé courant
- Active les boutons Modifier et Supprimer
- """
- self.desactive_entry()
- self.mc_courant = mc
- self.entry_courante = entry
- self.active_boutons()
- self.active_entry()
-
- def modifie_mc(self):
- """
- Modifie le nom du mot-clé en prenant la nouvelle valeur lue dans entry_courante
- """
- new_nom_mc = self.entry_courante.get()
- index = self.l_mc.index(self.mc_courant)
- new_mc = self.new_l_mc[index]
- new_mc[-2] = new_nom_mc
- objet_pere = self.mc_courant[-3]
-
- self.desactive_boutons()
- self.desactive_entry()
-
- def supprime_mc(self):
- """
- Supprime le mot-clé courant de la liste
- """
- 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()
-
- def desactive_boutons(self):
- """
- Désactive les boutons Modifier et Supprimer
- """
- self.b_mod.configure(state='disabled')
- self.b_sup.configure(state='disabled')
-
- def active_boutons(self):
- """
- Active les boutons Modifier et Supprimer
- """
- self.b_mod.configure(state='normal')
- self.b_sup.configure(state='normal')
-
- def desactive_entry(self):
- """
- Désactive l'entry courante si elle existe
- """
- if self.entry_courante :
- self.entry_courante.configure(state='disabled',relief='flat')
-
- def active_entry(self):
- """
- Active l'entry courante si elle existe
- """
- if self.entry_courante :
- self.entry_courante.configure(state='normal',relief='sunken')
-
- def quit(self):
- """
- Permet de fermer la fenêtre
- """
- self.var_quit.set(1)
-
-if __name__ == '__main__':
- fenetre_mc_inconnus(('toto','titi'))
+++ /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.
-#
-#
-# ======================================================================
-standard = ("Times",10)
-standard_italique = ("Times",10,'italic')
-standard_gras = ("Times",10,'bold')
-standard_gras_souligne = ("Times",10,'bold','underline')
-
-canvas = ('times',8)
-canvas_italique = ('times',8,'italic')
-canvas_gras = ("Times",8,'bold')
-canvas_gras_italique = ("Times",10,'bold','italic')
-
-standard12 = ("Times",12)
-standard12_gras = ("Times",12,'bold')
-standard12_gras_italique = ( "times",12,'bold','italic')
-
-standardcourier10 = ("Courier",10)
-
+++ /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 joue le role de cache pour les images stockées
- dans le repertoire ICONDIR
-"""
-
-import os
-import Tkinter
-
-if __name__ == '__main__':
- # Programme de test
- import sys
- import images
- root=Tkinter.Tk()
- frame = Tkinter.Frame(root)
- frame.pack(expand=1,fill='both')
-
- for name in ('About24','Save24'):
- Tkinter.Label(frame, image=images.get_image(name)).pack(side=Tkinter.TOP)
-
- root.mainloop()
- sys.exit()
-
-try:
- import prefs
- ICONDIR=prefs.ICONDIR
-except:
- # Par defaut on utilise le repertoire local icons
- ICONDIR=os.path.join(os.path.abspath(os.path.dirname(__file__)),'icons')
-
-dico_images={}
-
-def get_image(name):
- if dico_images.has_key(name):
- return dico_images[name]
- else :
- fic_image = os.path.join(ICONDIR,name)
- if not os.path.isfile(fic_image):
- file, ext = os.path.splitext(fic_image)
- fic_image = file + '.gif'
- image = Tkinter.PhotoImage(file=fic_image)
- dico_images[name]=image
- return image
-
-def update_cache():
- global dico_images
- dico_images={}
-
+++ /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 réalise toutes les mises à jour du chemin pour
- les imports de modules Python
-"""
-import sys
-import prefs
-# Ce chemin permet d'importer les modules Noyau et Validation
-# représentant le code utilisé (si fourni)
-if prefs.CODE_PATH:
- sys.path[:0]=[prefs.CODE_PATH]
- import Noyau,Validation
- del sys.path[0]
-
-# Ensuite on utilise les packages de l'intallation
-sys.path[:0]=[prefs.INSTALLDIR]
-import Accas
+++ /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 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
-
-# Modules Eficas
-import panels
-from treeitemincanvas import TREEITEMINCANVAS
-from tkMessageBox import showinfo,showerror
-
-class CONFIG:
- isdeveloppeur='NON'
-
-class JDCDISPLAY:
- """
- Cette classe ajoute à la class TREEITEMINCANVAS l'affichage des infos
- attachées au noeud sélectionné dans un notebook
- L'objet item associé au jdc est créé par la classe TREEITEMINCANVAS
- """
- def __init__(self,jdc,nom_jdc,appli=None,parent=None):
- self.jdc=jdc
- self.nom_jdc=nom_jdc
- self.fichier=None
- self.panel_courant=None
-
- if not appli:
- class Appli:
- def __init__(self):
- self.CONFIGURATION=CONFIG()
- def affiche_infos(self,message):
- print message
- return
-
- def efface_aide(self,event):
- return
-
- def affiche_aide(self,event,aide):
- print aide
- return
-
- appli=Appli()
- self.appli=appli
-
- if not parent:
- parent=Tkinter.Tk()
- Pmw.initialise(parent)
- self.parent=parent
- self.node_selected = None
- self.modified='n'
-
- self.pane=Pmw.PanedWidget(self.parent,orient='horizontal')
- 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.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):
- """
- Cette méthode est appelée à chaque fois qu'un noeud est sélectionné
- dans l'arbre.
- Elle permet l'affichage du panneau correspondant au noeud sélectionné
- """
- if node is not self.node_selected :
- self.create_panel(node)
- # on conserve la trace du noeud sélectionné et de celui d'avant
- if self.node_selected :
- self.ancien_node = self.node_selected
- self.node_selected = node
- else:
- self.ancien_node = self.node_selected = node
-
- def create_panel(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"):
- 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:
- self.panel_courant = panels.Panel_Inactif(self,self.pane.pane('selected'),node)
- return self.panel_courant
-
- def init_modif(self):
- """
- Met l'attribut modified à 'o' : utilisé par Eficas pour savoir
- si un JDC doit être sauvegardé avant destruction ou non
- """
- self.modified = 'o'
-
- def stop_modif(self):
- """
- Met l'attribut modified à 'n' : utilisé par Eficas pour savoir
- si un JDC doit être sauvegardé avant destruction ou non
- """
- self.modified = 'n'
-
- def mainloop(self):
- self.parent.mainloop()
-
- def ReplaceObjectNode(self,node,new_object,nom_sd=None):
- """
- Cette méthode sert à remplacer l'objet pointé par node par
- new_object.
- Si nom_sd : on remplace un OPER et on essaie de renommer la
- nouvelle sd par nom_sd
- """
- child = node.append_brother(new_object,retour='oui')
- if child == 0:
- self.appli.affiche_infos("Impossible de remplacer l'objet du noeud courant")
- else:
- self.init_modif()
- node.delete()
- if nom_sd:
- child.item.nomme_sd(nom_sd)
- child.update()
-
- def doCut(self):
- """
- Stocke dans Eficas.noeud_a_editer le noeud à couper
- """
- if not self.node_selected.item.iscopiable():
- showinfo("Copie impossible",
- "Cette version d'EFICAS ne permet que la copie d'objets de type 'Commande' ou mot-clé facteur")
- return
- self.edit="couper"
- self.appli.noeud_a_editer = self.node_selected
-
- def doCopy(self):
- """
- Stocke dans Eficas.noeud_a_editer le noeud à copier
- """
- if not self.node_selected.item.iscopiable():
- showinfo("Copie impossible",
- "La copie d'un tel objet n'est pas permise")
- return
- self.edit="copier"
- self.appli.noeud_a_editer = self.node_selected
-
- def doPaste(self):
- """
- Lance la copie de l'objet placé dans self.appli.noeud_a_editer
- 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','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
-
- def doPaste_Commande(self,objet_a_copier):
- """
- 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,pos='first',
- retour='oui')
- else:
- showinfo("Copie impossible",
- "Vous ne pouvez coller la commande copiée à ce niveau de l'arborescence !")
- self.appli.affiche_infos("Copie refusée")
- return
- # il faut déclarer le JDCDisplay_courant modifié
- self.init_modif()
- # suppression éventuelle du noeud sélectionné
- if self.edit == "couper":
- self.appli.noeud_a_editer.delete()
- if child == 0:
- # la copie est impossible
- if self.appli.message != '':
- showerror("Copie refusée",self.appli.message)
- self.appli.message = ''
- self.appli.affiche_infos("Copie refusée")
- # on rend la copie à nouveau possible en libérant le flag edit
- self.edit="copier"
-
- def doPaste_MCF(self,objet_a_copier):
- """
- Réalise la copie de l'objet passé en argument qui est nécessairement un MCF
- """
- if self.node_selected.item.isCommande() :
- # le noeud courant est une ETAPE
- 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,pos='first',retour='oui')
- elif self.node_selected.item.isMCFact():
- # le noeud courant est un MCFACT
- 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 !")
- self.appli.affiche_infos("Copie refusée")
- return
- # il faut déclarer le JDCDisplay_courant modifié
- self.init_modif()
- # suppression éventuelle du noeud sélectionné
- if self.edit == "couper":
- self.appli.noeud_a_editer.delete()
- if child == 0:
- if self.appli.message != '':
- showerror("Copie refusée",self.appli.message)
- self.appli.message = ''
- self.appli.affiche_infos("Copie refusée")
- # 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)
-
+++ /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 Tkinter import Menu
-
-class MENUBAR:
- def __init__(self,appli,parent):
- # L'attribut appli pointe vers l'objet application qui détient la menubar et les autres composants
- self.appli=appli
- # L'attribut parent pointe vers l'objet graphique parent de la menubar
- self.parent=parent
- self.menubar=Menu(self.parent)
- self.parent.configure(menu=self.menubar)
- self.init()
-
- try:
- from prefs import labels
- except:
- labels= ('Fichier','Edition','Jeu de commandes','Catalogue','Browsers','Options','Aide')
-
- def init(self):
- self.menudict={}
- for label in self.labels:
- menu=Menu(self.menubar,tearoff=0)
- self.menudict[label]=menu
- self.menubar.add_cascade(label=label,menu=menu)
-
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# Modules Python
-import os,string
-from tkFileDialog import *
-
-# Modules Eficas
-
-# l'option affichage_commandes peut prendre les valeurs "groupes" ou "alphabetic"
-affichage_commandes="alphabetic"
-
-class OPTIONS:
-
- menu_defs=[
- ('Options',[
- ("Affichage commandes",(("alphabétique",'&affichage_alpha'),("groupes",'&affichage_grp'))),
- # ("Catalogue développeur",'choix_cata_developpeur'),
- ]
- )
- ]
-
- button_defs=[]
-
- def __init__(self,appli,parent):
- 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
- il veut utiliser en remplacement du catalogue standard du code
- NB : il faut que le développeur ait les droits d'écriture dans le répertoire où
- se trouve le catalogue
- """
- file = askopenfilename(title="Choix d'un catalogue personnel",
- defaultextension=".py",
- filetypes = ( ("Catalogue", "cata*.py"),))
- if file != '':
- self.parent.update_idletasks()
- self.appli.reset_affichage_infos()
- rep_fic = os.path.dirname(file)
- nom_fic = string.split(os.path.basename(file),'.')[0]
- rep_courant = os.getcwd()
- os.chdir(rep_fic)
- self.cata = __import__(nom_fic)
- self.code = self.cata.CODE
- os.chdir(rep_courant)
- self.fic_cata = file
- fic_cata_p = nom_fic+'_pickled.py'
- self.fic_cata_p = os.path.join(rep_fic,fic_cata_p)
- pile_erreurs = self.cata.erreurs_cata
- if pile_erreurs.existe_message() :
- messages = pile_erreurs.retourne_messages()
- print messages
- else :
- # XXX ne doit pas fonctionner
- self.catalo = catabrowser.CataItem(cata=self.cata)
- self.Retrouve_Ordre_Cata('personnel')
- pile_erreurs.efface()
-
+++ /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
-""")
-
-
-
+++ /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 à 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 Pmw
-from tkMessageBox import showinfo,showerror
-
-# Modules Eficas
-import prefs
-import splash
-import fontes
-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:
-
- menu_defs=[
- ('Catalogue',[
- ("Rapport de validation catalogue",'visuCRCATA'),
- ]
- )
- ]
-
- button_defs=[]
-
- def __init__(self,appli,parent):
- self.appli=appli
- self.parent=parent
- self.code=self.appli.code
- self.appli.format_fichier.set('python')
- self.OpenCata()
- self.cataitem=None
-
- def OpenCata(self):
- """
- Ouvre le catalogue standard du code courant, cad le catalogue présent
- dans le répertoire Cata
- """
- message1 = "Compilation des fichiers Eficas \n\n Veuillez patienter ..."
- splash._splash.configure(text = message1)
- if len(self.appli.CONFIGURATION.catalogues) == 1:
- self.fic_cata = self.appli.CONFIGURATION.catalogues[0][2]
- self.code = self.appli.CONFIGURATION.catalogues[0][0]
- self.version_code = self.appli.CONFIGURATION.catalogues[0][1]
- self.appli.format_fichier.set(self.appli.CONFIGURATION.catalogues[0][3])
- elif len(self.appli.CONFIGURATION.catalogues) == 0:
- # aucun catalogue défini dans le fichier Accas/editeur.ini
- if self.code == 'ASTER' :
- self.fic_cata = os.path.join(prefs.CODE_PATH,'Cata','cata.py')
- elif self.code == 'SATURNE' :
- self.fic_cata = os.path.join(prefs.CODE_PATH,'Cata','cata_saturne.py')
- elif self.code == 'DESCARTES':
- self.fic_cata = os.path.join(prefs.CODE_PATH,'Cata','cata_descartes.py')
- else :
- print 'Code inconnu'
- sys.exit(0)
- else:
- # plusieurs catalogues sont disponibles : il faut demander à l'utilisateur
- # lequel il veut utiliser ...
- self.ask_choix_catalogue()
- if self.fic_cata == None :
- self.parent.destroy()
- sys.exit(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'
- print "Debut compil cata: ",time.clock()
- # compilation éventuelle du catalogue
- test = self.compile_cata(self.fic_cata,self.fic_cata_c)
- print "Fin compil cata: ",time.clock()
- if not test : showerror("Compilation catalogue","Impossible de compiler le catalogue %s" %self.fic_cata)
- # import du catalogue
- print "Debut import_cata: ",time.clock()
- self.cata = self.import_cata(self.fic_cata)
- print "Fin import_cata: ",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)
- #
- print "Debut Retrouve_Ordre: ",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()
- print "Fin Retrouve_Ordre: ",time.clock()
- #
- # analyse des données liées à l'IHM : UIinfo
- #
- print "Debut UIinfo: ",time.clock()
- uiinfo.traite_UIinfo(self.cata)
- print "Fin UIinfo: ",time.clock()
- #
- # 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')
- if os.path.isfile(fic_cata_dev):
- # il y a bien un catalogue développeur : il faut récupérer le module_object associé ...
- test = self.compile_cata(fic_cata_dev,fic_cata_dev+'c')
- if not test :
- showinfo("Compilation catalogue développeur",
- "Erreur dans la compilation du catalogue développeur")
- self.cata = (self.cata,)
- else:
- self.cata_dev =self.import_cata(fic_cata_dev)
- #self.Retrouve_Ordre_Cata_Developpeur()
- self.Retrouve_Ordre_Cata_Developpeur_autre()
- self.cata = (self.cata,self.cata_dev)
- else:
- self.cata = (self.cata,)
- else:
- self.cata = (self.cata,)
-
- def import_cata(self,cata):
- """
- Réalise l'import du catalogue dont le chemin d'accès est donné par cata
- """
- import imp
- splash._splash.configure(text = "Chargement du catalogue")
- nom_cata = os.path.splitext(os.path.basename(cata))[0]
- rep_cata = os.path.dirname(cata)
- sys.path[:0] = [rep_cata]
- try :
- f,p,d = imp.find_module(nom_cata)
- o = imp.load_module(nom_cata,f,p,d)
- return o
- except Exception,e:
- 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 :
- - 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
- """
- time1 = os.path.getmtime(self.fic_cata)
- try :
- time2 = os.path.getmtime(self.fic_cata_p)
- except:
- time2 = 0
- if time2 > time1 :
- # l'objet catalogue n'a pas été modifié depuis le dernier "pickle"
- self.Get_Ordre_Cata()
- else :
- # le catalogue a été modifié depuis le dernier "pickle" :
- # il faut retrouver l'ordre du catalogue et refaire pickle
- 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 :
- - mode='pickle ': tente de relire le fichier pickle et sinon lance l'analyse du catalogue
- - mode='cata' : force l'analyse du catalogue directement sans relire le pickle
- """
- if mode == 'pickle' :
- try:
- f = open(self.fic_cata_p)
- u = cPickle.Unpickler(f)
- splash._splash.configure(text = "Analyse du catalogue")
- self.cata_ordonne_dico = u.load()
- f.close()
- except :
- # on peut ne pas arriver à relire le fichier pickle s'il a été altéré
- # ou (le plus probable) s'il a été créé sous un autre OS
- self.Get_Ordre_Cata(mode='cata')
- elif mode == 'cata':
- 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.entites
- splash._splash.configure(text = "Sauvegarde des informations sur le catalogue")
- f = open(self.fic_cata_p,'w+')
- p = cPickle.Pickler(f)
- p.dump(self.cata_ordonne_dico)
- f.close()
- else :
- raise Exception("Appel à un mode inconnu de Get_Ordre_Cata : %s" % mode)
- return
-
- def ask_choix_catalogue(self):
- """
- Ouvre une fenêtre de sélection du catalogue dans le cas où plusieurs
- ont été définis dans Accas/editeur.ini
- """
- # construction du dictionnaire et de la liste des catalogues
- self.dico_catalogues = {}
- defaut = None
- for catalogue in self.appli.CONFIGURATION.catalogues:
- if catalogue[0] == self.code :
- self.dico_catalogues[catalogue[1]] = catalogue
- if len(catalogue) == 5 :
- if catalogue[4]=='defaut' : defaut = catalogue[1]
- liste_choix = self.dico_catalogues.keys()
- liste_choix.sort()
- # test si plusieurs catalogues ou non
- if len(liste_choix) == 0:
- showerror("Aucun catalogue déclaré pour %s" %self.code)
- self.quit()
- elif len(liste_choix) == 1:
- self.fic_cata = self.dico_catalogues[liste_choix[0]][2]
- self.version_code = liste_choix[0]
- return
- # création d'une boîte de dialogue modale
- self.fenetre_choix_cata = Pmw.Dialog(self.parent,
- buttons=('OK','ANNULER'),
- defaultbutton = 'OK',
- title = "Choix d'une version du code %s" %self.code,
- command = self.chooseCata)
- # construction des radioboutons
- label = `len(liste_choix)`+' versions du code %s sont disponibles\n' %self.code
- label = label + 'Veuillez choisir celle avec laquelle vous souhaitez travailler :'
- self.radiobutton = Pmw.RadioSelect(self.fenetre_choix_cata.interior(),
- buttontype='radiobutton',
- labelpos = 'w',
- label_text = label,
- label_font = fontes.standard,
- orient='vertical')
- for choix in liste_choix :
- self.radiobutton.add(choix)
- if defaut == None :
- # aucun catalogue par défaut n'a été spécifié dans Accas/editeur.ini
- defaut = liste_choix[0]
- self.radiobutton.invoke(defaut)
- self.radiobutton.pack(fill='x',padx=10,pady=10)
- # centrage de la fenêtre
- self.fenetre_choix_cata.activate(geometry='centerscreenalways')
-
- def chooseCata(self,txt):
- """
- Méthode activée lorsque l'utilisateur a fait son choix et cliqué sur 'OK' ou sur 'ANNULER'
- """
- if txt == 'OK' :
- version_cata = self.radiobutton.getcurselection()
- self.fic_cata = self.dico_catalogues[version_cata][2]
- self.version_code = version_cata
- self.appli.format_fichier.set(self.dico_catalogues[version_cata][3])
- self.fenetre_choix_cata.destroy()
- else:
- self.parent.destroy()
-
- def compile_cata(self,cata,catac):
- """
- Teste si le catalogue a bien besoin d'être recompilé et si oui, le compile et
- affiche un message dans le splash . Retourne 1 si la compilation s'est bien déroulée,
- 0 sinon.
- """
- time1 = os.path.getmtime(cata)
- try:
- time2 = os.path.getmtime(catac)
- except:
- time2 = 0
- if time1 > time2:
- try:
- # le catalogue doit être recompilé avant d'être importé
- splash._splash.configure(text="Compilation du catalogue\nCela peut prendre plusieurs secondes ...")
- py_compile.compile(cata)
- except:
- return 0
- return 1
-
-
-#--------------------------------------------------------------------------------
-# Méthodes concernant la barre de progression lors de l'analyse du catalogue
-#--------------------------------------------------------------------------------
-
- def configure_barre(self,nbcommandes):
- """ Configure la barre de progression en lui passant comme paramètre le
- nombre de commandes du catalogue qui lui sert à déterminer la longueur de son incrément """
- try:
- splash._splash.configure(barre='oui',ratio = nbcommandes)
- except:
- pass
-
- def update_barre(self):
- """ Update la position de la barre de progression : la fait progresser de son incrément """
- try:
- splash._splash.update_barre()
- except:
- pass
-
- def visuCRCATA(self):
- """
- Méthode permettant l'affichage du rapport de validation
- """
- cr = CR( debut = "Début rapport de validation du catalogue",
- fin = "Fin rapport de validation du catalogue")
- titre="rapport de validation du catalogue"
- if hasattr(self,'cata_ordonne_cr') :
- cr.add(self.cata_ordonne_cr)
- if hasattr(self,'cata_dev_ordonne_cr') :
- cr.add(self.cata_dev_ordonne_cr)
- for cata in self.cata:
- if hasattr(cata,'JdC'):
- cr.add(cata.JdC.report())
- texte_cr = str(cr)
- self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr)
-
+++ /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 permet de créer, mettre à jour et détruire
- un écran Splash
-"""
-from Tkinter import *
-
-from centerwindow import centerwindow
-from Tools.foztools.foztools import Slider
-import fontes
-import images
-
-_splash=None
-
-def init_splash(*pos,**args):
- global _splash
- _splash=SplashScreen(*pos,**args)
-
-def fini_splash():
- global _splash
- _splash.quit()
- _splash=None
-
-class SplashScreen(Toplevel):
- """
- Provides a splash screen. Usage:
- Subclass and override 'CreateWidgets()'
- In constructor of main window/application call
- - S = SplashScreen(main=self) (if caller is Toplevel)
- - S = SplashScreen(main=self.master) (if caller is Frame)
- - S.quit() after you are done creating your widgets etc.
- """
- def __init__(self, master=None,**args):
- Toplevel.__init__(self, master, relief='groove',
- borderwidth=5)
- self.main = master
- if self.main != None :
- self.main.iconify()
- self.withdraw()
- self.frame = Frame(self)
- self.frame.pack(expand=1,fill='both')
- self.init(args)
- self.geometry("300x200")
- self.resizable(0,0)
- centerwindow(self)
- self.CreateWidgets()
- self.deiconify()
-
- def init(self,args={}):
- self.text = StringVar()
- self.text.set('')
- self.text2 = StringVar()
- self.text2.set('')
- self.icone = 'logo_edf.gif'
- self.barre = 'non'
- if args == {} : return
- if args.has_key('text'):
- self.text.set(args['text'])
- if args.has_key('info'):
- self.text2.set(args['info'])
- if args.has_key('titre'):
- self.title(args['titre'])
- if args.has_key('code'):
- self.code = args['code']
- else:
- self.code = 'inconnu'
- if args.has_key('icone'):
- self.icone = args['icone']
- if self.code == 'ASTER' :
- self.icone = 'code_aster.gif'
- elif self.code == 'SATURNE':
- self.icone = 'code_saturne.gif'
- elif self.code == 'DESCARTES':
- self.icone = 'code_descartes.gif'
-
- def CreateWidgets(self):
- self.catIcon = images.get_image(self.icone)
- self.label = Label(self.frame, image=self.catIcon)
- self.label.pack(side=TOP)
- self.label = Label(self.frame, textvariable=self.text,font = fontes.standard_gras)
- self.label.pack(side=TOP,expand=1,fill='both')
- self.label2 = Label(self.frame, textvariable=self.text2,font = fontes.standard_italique)
- self.label2.pack(side=TOP,expand=1,fill='both')
- self.progress = Slider(self.frame,value=0,max=100,orientation='horizontal',
- fillColor='#00008b',width=200,height=30,
- background='white',labelColor='red')
- centerwindow(self)
-
- def update_barre(self,event=None):
- """ Permet de faire avancer la barre de progression """
- try:
- self.progress.value = self.progress.value+self.increment
- self.progress.update()
- except:
- pass
-
- def configure_barre(self):
- """
- Calcule l'incrément de progression de la barre en fonction
- du nombre d'opérations à effectuer afin que le compteur
- soit à 100% à la fin des opérations
- """
- self.increment = 100./self.ratio
- self.progress.update()
-
- def configure(self,**args):
- if args.has_key('text'):
- self.text.set(args['text'])
- if args.has_key('info'):
- self.text2.set(args['info'])
- if args.has_key('titre'):
- self.title(args['titre'])
- if args.has_key('barre'):
- old = self.barre
- self.barre = args['barre']
- if self.barre == 'oui' and old == 'non':
- self.progress.frame.pack(in_=self.frame,side='top')
- elif self.barre == 'non' and old == 'oui':
- self.progress.frame.pack_forget()
- if args.has_key('ratio'):
- self.ratio = args['ratio']
- self.configure_barre()
- self.update()
-
- def quit(self):
- self.progress = None
- self.destroy()
- if self.main:
- self.main.update()
- self.main.deiconify()
- centerwindow(self.main,parent='sans')
-
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# Modules Python
-import Tkinter
-
-class STATUSBAR:
- def __init__(self,parent):
- self.parent=parent
- self.frame = Tkinter.Frame(parent,bd=1, relief=Tkinter.RAISED)
- self.frame.pack(side=Tkinter.BOTTOM, fill=Tkinter.X)
- self.label = Tkinter.Label (self.frame,
- fg='black',
- text='',
- justify='left',
- relief='sunken',
- bg='gray95')
- self.label.pack(side='left',expand=1,fill='both')
-
- def affiche_infos(self,texte):
- if len(texte)>150 :
- texte_infos=texte[0:150]
- else :
- texte_infos=texte
- self.label.configure(text=texte_infos)
-
-
- def reset_affichage_infos(self):
- """ Efface tout message présent dans le panneau en bas d'EFICAS """
- self.affiche_infos('')
-
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# Modules Python
-import string
-from Tkinter import *
-import Pmw
-
-# Modules Eficas
-import images
-
-class TOOLBAR:
- def __init__(self,appli,parent):
- # parent représente l'objet graphique parent
- self.parent=parent
- # appli représente l'objet application parent
- self.appli=appli
- self.balloon = None
- self.l_boutons_a_activer = []
- self.barreboutons=Frame(self.parent,relief='ridge',bd=2)
- self.barreboutons.pack(anchor='nw',expand=0,fill=X)
- # 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)
-
- def inactive_boutons(self):
- """
- Inactive les boutons de la liste self.l_boutons_a_activer
- --> cette méthode est appelée dès qu'il n'y a pas de JDC courant
- """
- for but in self.l_boutons_a_activer:
- but.configure(state='disabled')
-
- def active_boutons(self):
- """
- Active les boutons de la liste self.l_boutons_a_activer
- --> cette méthode est appelée dès qu'il y a un JDC courant
- """
- for but in self.l_boutons_a_activer:
- but.configure(state='normal')
-
- def affiche_balloon(self,event,bouton,bulle,pos='left'):
- """
- Affiche le balloon bulle associé au bouton bouton
- """
- etat = bouton.cget('state')
- if etat != 'normal' : return
- geom = bouton.winfo_geometry()
- l_args = string.split(geom,'+')
- x = eval(l_args[1])+event.x+10
- self.balloon = Label(self.parent,
- text = bulle,
- background="yellow",
- borderwidth=2,
- relief='ridge')
- if pos == 'left':
- self.balloon.place(in_=self.parent,x=x,y=32)
- else:
- self.balloon.place(in_=self.parent,x=x,y=32,anchor='ne')
-
- def efface_balloon(self,event=None):
- """
- Efface le balloon courant
- """
- if self.balloon :
- self.balloon.destroy()
- self.balloon = None
-
- def view_infos(self):
- """
- Permet d'afficher des infos sur la session courante d'EFICAS
- """
- self.fen_infos = Pmw.Dialog(self.parent,
- title = 'Informations session EFICAS',
- buttons = ('Fermer',),
- command = self.close_infos)
- self.fen_infos.withdraw()
- texte_infos = self.appli.get_texte_infos()
- Label(self.fen_infos.interior(),
- text = texte_infos,
- anchor='center').pack(side='top',anchor='center')
- self.fen_infos.activate(geometry = 'centerscreenalways')
-
- def close_infos(self,lbl):
- """
- Ferme la fenêtre des infos
- """
- self.fen_infos.destroy()
-
- 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('Sep'),
- state='disabled',
- relief = 'flat').pack(side='left')
- continue
- nom_fic,commande,texte,statut = bouton
- commande=getattr(appli_composant,commande)
- 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)
-
- # inactive les boutons qui doivent l'être tant qu'aucun JDC courant
- self.inactive_boutons()
-
-
+++ /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 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,text=None):
- self.widget=widget
- self.text = text
- self.timer = None
- self.tooltip = None
- self.label = None
- self.bindings = []
- self.bindings.append(self.widget.bind("<Enter>", self._enter))
- self.bindings.append(self.widget.bind("<Leave>", self._leave))
- self.bindings.append(self.widget.bind("<ButtonPress>", self._leave))
- # user overrideable settings
- self.time = 1000 # milliseconds
- self.relief = Tkinter.SOLID
- self.justify = Tkinter.LEFT
- self.fg = "#000000"
- self.bg = "#ffffe0"
- self.xoffset = 20
- self.yoffset = 1
-
- def setText(self, text):
- self.text = text
-
- def _unbind(self):
- if self.bindings and self.widget:
- self.widget.unbind("<Enter>", self.bindings[0])
- self.widget.unbind("<Leave>", self.bindings[1])
- self.widget.unbind("<ButtonPress>", self.bindings[2])
- self.bindings = []
-
- def destroy(self):
- self._unbind()
- self._leave()
-
- def _enter(self, *event):
- after_cancel(self.timer)
- self.timer = after(self.widget, self.time, self._showTip)
-
- def _leave(self, *event):
- after_cancel(self.timer)
- self.timer = None
- if self.tooltip:
- self.label.destroy()
- destruct(self.label)
- self.label = None
- self.tooltip.destroy()
- destruct(self.tooltip)
- self.tooltip = None
-
- def _showTip(self):
- if self.tooltip or not self.text:
- return
- c = self.widget.__class__
- if c in (Tkinter.Button,):
- if self.widget["state"] == Tkinter.DISABLED:
- return
- x = self.widget.winfo_rootx()
- y = self.widget.winfo_rooty() + self.widget.winfo_height()
- x = x + self.xoffset
- y = y + self.yoffset
- self.tooltip = Tkinter.Toplevel()
- self.tooltip.wm_iconify()
- self.tooltip.wm_overrideredirect(1)
- self.tooltip.wm_protocol("WM_DELETE_WINDOW", self.destroy)
- self.label = Tkinter.Label(self.tooltip, text=self.text,
- relief=self.relief, justify=self.justify,
- fg=self.fg, bg=self.bg, bd=1, takefocus=0)
- self.label.pack(ipadx=1, ipady=1)
- 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()
-
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# Modules Python
-import Tkinter,Pmw
-
-# Modules Eficas
-import Objecttreeitem
-import treewidget
-
-class TREEITEMINCANVAS:
- def __init__(self,object,nom="",parent=None,appli=None,sel=None,rmenu=None):
- self.object=object
- self.nom=nom
-
- if not appli:
- class Appli:
- def affiche_infos(self,message):
- pass
- appli=Appli()
- self.appli=appli
-
- if not parent:
- parent=Tkinter.Tk()
- Pmw.initialise(parent)
- self.parent=parent
-
- self.item=Objecttreeitem.make_objecttreeitem(self.appli,self.nom,self.object)
- 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,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()
+++ /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)
-
-
-
-
+++ /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 utilitaires divers
-"""
-import os,re
-import glob
-import traceback
-
-def substract_list(liste1,liste2):
- """
- Enlève tous les éléments de liste2 présents dans liste1 et retourne liste1
- """
- for item in liste2:
- try:
- liste1.remove(item)
- except:
- pass
- return liste1
-
-def get_rep_user():
- """
- Détermine sur quelle plate-forme s'exécute Eficas et recherche
- le répertoire de l'utilisateur /$home/Eficas_install
- """
- if os.name not in ('posix','nt'):
- print "Système non reconnu par Eficas"
- print "Prévenir la maintenance"
- sys.exit(0)
- if os.name == 'nt':
- try:
- drive = os.environ['HOMEDRIVE']
- nom_user = os.environ['USERNAME']
- rep_user_eficas = drive+'\\'+nom_user+'\\'+'Eficas_install'
- except:
- rep_user_eficas = os.path.join('C:','Eficas_install')
- else :
- rep_user_eficas = os.path.join(os.environ['HOME'],'Eficas_install')
- if os.path.exists(rep_user_eficas):
- if os.path.isfile(rep_user_eficas) :
- print "Un fichier de nom %s existe déjà : impossible de créer un répertoire de même nom" %rep_user_eficas
- sys.exit(0)
- else :
- try:
- os.mkdir(rep_user_eficas)
- except:
- print "Création du répertoire %s impossible\n Vérifiez vos droits d'accès" %rep_user_eficas
- return rep_user_eficas
-
-def read_file(file):
- """
- ouvre le fichier file et retourne son contenu
- si pbe retourne None
- """
- try :
- f=open(file)
- text=f.read()
- f.close()
- return text
- except:
- return None
-
-def save_in_file(file,text):
- """
- crée le fichier file (ou l'écrase s'il existe) et écrit text dedans
- retourne 1 si OK 0 sinon
- """
- try :
- f=open(file,'w+')
- f.write(text)
- f.close()
- return 1
- except:
- return 0
-
-def extension_fichier(pathAndFile):
- """ Return ext if path/filename.ext is given """
- return os.path.splitext(pathAndFile)[1][1:]
-
-def stripPath(pathAndFile):
- """ 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
-
+++ /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.
-#
-#
-# ======================================================================
-# ----------------------------------------------------------
-# Cette classe sert à définir les widgets utilisés par
-# EFICAS
-# ----------------------------------------------------------
-
-from Tkinter import *
-import Pmw
-import os,sys,re,string
-import types,fnmatch
-from tkFileDialog import *
-from tkMessageBox import showinfo,askyesno,showerror,askretrycancel
-
-import fontes
-import prefs
-from utils import save_in_file
-from centerwindow import centerwindow
-
-from Noyau.N_utils import repr_float
-
-class Fenetre :
- """ Cette classe permet de créer une fenêtre Toplevel dans laquelle
- on peut afficher un texte et qui permet de le sauver"""
- def __init__(self,appli,titre="",texte=""):
- self.appli=appli
- self.fenetre = Toplevel()
- self.fenetre.configure(width = 800,height=500)
- self.fenetre.protocol("WM_DELETE_WINDOW", self.quit)
- self.fenetre.title("Visualisation du "+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_texte.place(relx=0,rely=0,relwidth=1,relheight=0.9)
- self.frame_boutons.place(relheight=0.1,relx=0,rely=0.9,relwidth=1.)
- # 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_quit = Button(self.frame_boutons,text = "Fermer",command=self.quit)
- self.but_save = Button(self.frame_boutons,text = "sauver",command = self.save)
- self.but_quit.place(relx=0.4,rely=0.5,anchor='center')
- self.but_save.place(relx=0.6,rely=0.5,anchor='center')
- # affichage du texte
- self.affiche_texte(self.texte)
- centerwindow(self.fenetre)
-
- 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 wait(self):
- self.fenetre.grab_set()
- self.zone_texte.focus_set()
- self.fenetre.wait_window(self.fenetre)
-
- def quit(self):
- self.fenetre.destroy()
-
- def efface_scroll(self):
- """ Efface le scroll lorsqu'il n'est pas nécessaire : ne marche pas"""
- self.scroll_v.pack_forget()
- #self.scroll_h.pack_forget()
-
- def affiche_texte(self,texte):
- """ Affiche le texte dans la fenêtre """
- if texte != "" :
- self.zone_texte.insert(END,texte)
- try:
- self.fenetre.update_idletasks()
- x0,y0,x1,y1 = self.zone_texte.bbox(END)
- if (y1-y0) < 300 : self.efface_scroll()
- except:
- pass
-
- def save(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.initialdir,
- title="Sauvegarde du "+self.titre)
- if file != '':
- if not save_in_file(file,self.texte) :
- showerror("Sauvegarde impossible",
- "Impossible de sauvegarder le texte dans le fichier spécifié\n"+
- "Vérifiez les droits d'écriture")
- 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
- 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.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
- """
- def __init__(self,fen_pere,obj_pere=None,titre="",texte="",items=(),mode='query',commande=None):\r
- if items in ((),[]) : return
- self.items = items
- self.titre = titre
- self.texte = texte
- self.fen_pere = fen_pere
- self.obj_pere = obj_pere
- self.mode= mode
- self.command = commande
- self.display()
-
- def display(self):\r
- 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_fenetre(self):\r
- """\r
- Crée la fenêtre Dialog\r
- """
- if self.mode == 'query':
- buttons=('Valider','Annuler')
- defaultbutton = 'Valider'
- elif self.mode == 'display':
- if self.command :
- buttons=(self.command[0],'OK')
- defaultbutton = 'OK'
- else:
- buttons=('OK')
- defaultbutton = 'OK'
- self.fenetre = Pmw.Dialog(self.fen_pere,
- buttons=buttons,
- defaultbutton = defaultbutton,
- title = self.titre,
- command = self.execute)\r
- self.fenetre.withdraw()
-
- def init_texte(self):\r
- """\r
- Crée le label qui affiche le texte à l'intérieur du panneau\r
- """
- fonte=fontes.standard\r
- fr_texte = Frame(self.fenetre.interior(),height=60)\r
- 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
- 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 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
-
- 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
- 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
- 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 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
- """
- if txt == 'Valider':
- self.fini()
- elif txt in ('OK','Annuler'):
- self.quit()
- elif txt == 'Modifier':
- self.resultat = apply(self.command[1],(),{})
- self.fenetre.destroy()
- else :
- 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
- """
- dico={}
- for item,widget in self.item_widgets.items():\r
- nom_var = item[2]\r
- 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
- return
- dico[nom_var] = valeur
- self.fenetre.destroy()
- self.resultat=dico\r
-
- def quit(self):
- self.fenetre.destroy()
- self.resultat=None
-
-class ListeChoix :
- """ Cette classe est utilisée pour afficher une liste de choix passée en paramètre
- en passant les commandes à lancer suivant différents bindings """
- def __init__(self,parent,page,liste,liste_commandes=[],liste_marques =[],active ='oui',filtre='non',titre=''):
- self.parent = parent
- self.page = page
- self.liste = liste
- 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 init(self):
- self.make_label_titre()
- self.make_entry_filtre()
- self.make_text_box()
- try:
- self.entry.component('entry').focus()
- except:
- pass
-
- def make_label_titre(self):
- """ Crée le label correspondant au titre """
- if self.titre == '' : return
- fonte_titre = fontes.standard_gras_souligne
- self.label = Label(self.page,
- text = self.titre,
- font = fonte_titre)
- self.label.pack(side='top',pady=2)
-
- def make_entry_filtre(self):
- """ Crée l'entry permettant à l'utilisateur d'entrer un filtre de sélection dans la liste """
- if self.filtre != 'oui' : return
- self.entry = Pmw.EntryField(self.page,labelpos='w',
- label_text="Filtre :",
- command=self.entry_changed)
- self.entry.pack(side='top',pady=2)
-
- def make_text_box(self):
- """ Crée la fenêtre texte dans laquelle sera affichée la liste """
- self.MCbox = Text (self.page,relief='sunken',bg='gray95',bd=2)
- self.MCscroll = Scrollbar (self.page,command = self.MCbox.yview)
- self.MCscroll.pack(side='right',fill ='y',pady=2)
- self.MCbox.pack(fill='y',expand=1,padx=2,pady=2)
- self.MCbox.configure(yscrollcommand=self.MCscroll.set)
-
- 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 objet in self.liste :
- if type(objet) == types.InstanceType:
- try:
- mot = objet.nom
- except:
- mot = str(objet)
- elif type(objet) in (types.StringType,types.IntType):
- mot = objet
- elif type(objet) == types.FloatType :
- #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)
- 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=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))
-
- for marque in self.liste_marques:
- try:
- self.markitem(liste_labels[marque])
- except:
- pass
-
- self.MCbox.config(state=DISABLED)
- self.selection = None
-
- def chooseitem(self,mot,label,commande):
- """ Active la méthode de choix passée en argument"""
- commande(mot)
-
- def selectitem(self,mot,label,commande) :
- """ Met l'item sélectionné (représenté par son label) en surbrillance
- et lance la commande associée au double-clic"""
- if self.selection != None :
- self.deselectitem(self.selection[1],self.selection[0],self.selection[2],)
- self.highlightitem(label)
- self.selection = (mot,label,commande)
- self.arg_selected = mot
- commande(mot)
-
- def highlightitem(self,label) :
- """ Met l'item représenté par son label en surbrillance """
- label.configure(bg='#00008b',fg='white')
-
- def markitem(self,label):
- """ Met l'item (représenté par son label) en rouge """
- label.configure(bg='gray95',fg='red')
-
- def deselectitem(self,label,mot='',commande=None) :
- """ Remet l'item (représenté par son label) en noir"""
- label.configure(bg='gray95',fg='black')
- self.arg_selected = ''
- if commande != None : commande(mot)
-
- 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)
- for arg in self.liste :
- if fnmatch.fnmatch(arg,filtre) or fnmatch.fnmatch(arg,FILTRE) :
- self.highlightitem(self.dico_labels[arg])
- index = self.MCbox.index(self.dico_labels[arg])
- self.MCbox.see(index)
- self.arg_selected = arg
- break
-
- def get_liste_old(self):
- return self.liste
-
- def get_liste(self):
- l=[]
- for val in self.liste:
- try:
- val = eval(val)
- l.append(val)
- except:
- l.append(val)
- return l
-
- def put_liste(self,liste):
- self.liste = liste
- self.affiche_liste()
-
-class Affichage :
- """ Cette classe permet d'afficher au lancement d'EFICAS le message
- d'attente et la barre de progression"""
- def __init__(self,master,message,barre ='oui'):
- from Tools.foztools.foztools import Slider
- fonte=fontes.standard12_gras
- self.master=master
- self.frame = Frame(self.master)
- self.frame.pack(expand=1,fill='both')
- self.mess = Label(self.frame,text=message,justify='center',
- bd=2,relief='groove',font=fonte)
- self.mess.pack(in_ = self.frame,side='top',expand=1,fill='both')
- self.progress = Slider(self.frame,value=0,max=100,orientation='horizontal',
- fillColor='#00008b',width=200,height=30,
- background='white',labelColor='red')
- if barre == 'oui':
- self.progress.frame.pack(in_=self.frame,side='top')
- self.master.update()
- if barre == 'oui':
- self.progress.frame.after(1000,self.update)
-
- def configure(self,**options):
- if options.has_key('message'):
- self.mess.configure(text=options['message'])
- if options.has_key('barre'):
- if options['barre'] == 'oui' :
- self.progress.frame.pack(in_=self.frame,side='top')
- elif options['barre'] == 'non' :
- self.progress.frame.pack_forget()
- self.master.update_idletasks()
-
- def quit(self):
- self.frame.destroy()
- self.master.update()
-
- def update(self,event=None):
- """ Permet de faire avancer la barre de progression """
- try :
- bar=self.progress
- bar.value = bar.value+self.increment
- bar.update()
- self.master.after(100,self.update)
- except:
- pass
-
- def configure_barre(self,nb):
- """ Calcule l'incrément de progression de la barre en fonction
- du nombre d'opérations à effectuer afin que le compteur
- soit à 100% à la fin des opérations"""
- self.increment = 100./nb
- 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
- """
- def __init__(self,appli):
- self.fenetre = Toplevel()
- self.fenetre.configure(width = 250,height=150)
- self.fenetre.protocol("WM_DELETE_WINDOW", self.quit)
- self.fenetre.title("Choix du format du fichier de commandes")
- # définition des frames
- self.frame_texte = Frame(self.fenetre)
- self.frame_radioboutons = Frame(self.fenetre)
- self.frame_bouton_ok = Frame(self.fenetre)
- self.frame_texte.place(relx=0,rely=0,relwidth=1,relheight=0.3)
- self.frame_radioboutons.place(relheight=0.5,relx=0,rely=0.3,relwidth=1.)
- self.frame_bouton_ok.place(relheight=0.2,relx=0,rely=0.8,relwidth=1.)
- # définition de la zone texte et du scrollbar
- zone_texte = Label(self.frame_texte,text = "Format du fichier à ouvrir :")
- zone_texte.pack(side='top',fill='both',expand=1,padx=5,pady=10)
- # définition des radioboutons
- Radiobutton(self.frame_radioboutons,text='Format Aster (Code_Aster --> v5)',
- variable=appli.format_fichier,value='Aster').pack(anchor='n')
- Radiobutton(self.frame_radioboutons,text='Format Python (Code_Aster v6-->)',
- variable=appli.format_fichier,value='Python').pack(anchor='n')
- # création du bouton OK
- Button(self.frame_bouton_ok,text='OK',command=self.quit).pack(anchor='n')
- # centrage de la fenêtre
- centerwindow(self.fenetre)
-
- def quit(self):
- self.fenetre.destroy()
-
-class BARRE_K2000(Toplevel):
- def __init__(self,master=None,text = ""):
- Toplevel.__init__(self,master,relief='groove')
- self.master.iconify()
- self.geometry("250x100+0+0")
- self.protocol("WM_DELETE_WINDOW",self.quit)
- # frame principale dans self (= Toplevel)
- self.frame = Frame(self)
- self.frame.place(relwidth=1,relheight=1)
- # frame contenant le texte à afficher
- self.frame_text = Frame(self.frame)
- self.frame_text.place(relwidth=1,relheight=0.75,rely=0)
- # frame contenant le canvas de la barre
- self.frame_canv = Frame(self.frame)
- self.frame_canv.place(relwidth=1,relheight=0.25,rely=0.75)
- # canvas dans lequel sera affichée la barre K2000
- self.canvas = Canvas(self.frame_canv)
- self.canvas.place(relx=0.5,rely=0.5,relheight=0.8,relwidth=0.8,anchor='center')
- # on affiche le texte et la barre
- self.build_text(text)
- self.build_batons()
- #self.overrideredirect(1)
- # on active la barre ...
- self.master.after(1000,self.launch)
- # on centre la fenêtre
- centerwindow(self)
- self.focus()
-
- def build_text(self,text):
- """
- Affichage de text dans frame_text
- """
- self.texte_var = StringVar()
- self.texte_var.set(text)
- Label(self.frame_text,textvariable=self.texte_var).place(relx=0.5,rely=0.5,anchor='center')
-
- def build_batons(self):
- """
- Construit la suite de bâtons dans le canvas
- """
- self.l_batons=[]
- self.black = -1
- self.sens = 'D'
- self.quit = 0
- for i in range(0,40):
- id = self.canvas.create_rectangle(i*5,0,(i+1)*5,20,fill='gray90',outline='')
- self.l_batons.append(id)
-
- def launch(self):
- """
- Active la barre K2000 en affichant les bâtons avec des couleurs en dégradé
- """
- if self.quit == 1 :
- self.destroy()
- self.master.deiconify()
- return
- if self.sens == 'D':
- self.black = self.black+1
- l_bat = self.l_batons[0:self.black+1]
- l_bat.reverse()
- elif self.sens == 'G':
- self.black = self.black-1
- l_bat = self.l_batons[self.black:]
- i=0
- for bat in l_bat :
- num_color = 5+i*10
- if num_color < 10 : color = 'black'
- elif num_color > 90 : color = 'white'
- else: color = 'gray'+`num_color`
- self.canvas.itemconfigure(bat,fill=color)
- i=i+1
- if self.black == len(self.l_batons) :
- self.sens = 'G'
- if self.black == 0 and self.sens == 'G':self.sens = 'D'
- self.after(80,self.launch)
-
- def update_text(self,new_text):
- """
- Remplace le texte affiché par new_text
- """
- self.texte_var.set(new_text)
-
- 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
-
+++ /dev/null
-Ce répertoire contient une série d'exemples localisés
-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
+++ /dev/null
-"""
- Vérification des cycles de références d'objets dans Accas
-
- Cet exemple met en oeuvre plusieurs éléments de définition et
- après l'opération de vérification du dictionnaire d
- et l'appel à la méthode supprime de l'objet o
- exécute l'utilitaire Cyclops pour vérifier qu'il ne reste plus
- de cycles de références.
-"""
-
-import sys
-sys.path[:0]=['../..','../../..']
-
-from Accas import SIMP,FACT,BLOC
-from Accas import AU_MOINS_UN
-
-# Construction objet de définition
-
-cata= FACT(mcf1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
- mcf2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- a =SIMP(typ='I'),
- bloc1=BLOC(condition="a==1",
- c=SIMP(typ='I'),
- d=SIMP(typ='I')
- ),
- sect3=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- regles=AU_MOINS_UN('sect3'),
- )
-
-# Vérification objet de définition
-cr=cata.report()
-if cr.estvide():
- print "L'objet de définition est valide "
-else:
- print cr
-
-
-d= {'mcf1':{'a':1,'b':2},
- 'mcf2':({'c':3},{'c':5}),
- 'sect3':{'c':3,'d':5},
- 'a':1,
- 'c':2,
- }
-
-# Création de l'objet MCFACT de nom mcf1
-o=cata(d,'mcf1',None)
-# Vérification objet MCFACT
-cr= o.report()
-if cr.estvide():
- print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d
-else:
- print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
- print cr
-
-o.supprime()
-
-def testcycle():
- """
- Cette fonction permet de détecter les cycles de références entre objets
- à l'aide du module Cyclops
- """
- from Misc import Cyclops
- global o,cr,cata
- z=Cyclops.CycleFinder()
- z.register(o)
- z.register(cata)
- del o,cr,cata
- z.find_cycles()
- z.show_stats()
- z.show_cycles()
- z.show_cycleobjs()
- z.show_sccs()
- z.show_arcs()
- print "dead root set objects:"
- for rc, cyclic, x in z.get_rootset():
- if rc == 0:
- z.show_obj(x)
- z.find_cycles(1)
- z.show_stats()
-
-testcycle()
-
+++ /dev/null
-"""
- Vérification des cycles de référence d'objets sur
- un exemple avec des opérateurs
-"""
-
-import sys
-sys.path[:0]=['../..','../../..']
-
-from Accas import SIMP,FACT,OPER
-
-# Construction objet de définition
-
-class concept:
- def __init__(self,etape):
- self.etape=etape
- def is_object(sd):
- """ Retourne 1 si sd est du bon type par rapport à la classe """
- return 0
- def supprime(self):
- self.etape=None
-
-OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
- a=SIMP(typ='I'),
- c=SIMP(typ='I',position='global'),
- b=SIMP(typ=concept),
- )
-
-# Vérification objet de définition
-cr=OP1.report()
-if cr.estvide():
- print "L'objet de définition est valide "
-else:
- print cr
-
-class context:
- def __init__(self):
- self.etapes=[]
- self.mc_globaux={}
- self.cata_ordonne_dico=None
- self.par_lot="OUI"
-
- def register(self,etape):
- self.etapes.append(etape)
- return self.etapes.index(etape)
- def get_jdc_root(self):
- return self
- def create_sdprod(self,etape,nomsd):
- sd= etape.get_sd_prod()
- if sd != None and etape.reuse == None:
- # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation d un concept
- sd.nom=nomsd
- return sd
-
-
-cont=context()
-CONTEXT.set_current_step(cont)
-
-sd=concept(None)
-# Création de l'objet ETAPE
-co1=OP1(a=1,b=sd)
-
-# Vérification objet ETAPE
-e1=cont.etapes[0]
-cr= e1.report()
-if cr.estvide():
- print "L'objet ETAPE est valide "
-else:
- print "L'objet ETAPE n'est pas valide "
- print cr
-
-# Test avec reutilisation de concept
-co=OP1(reuse=co1,a=1,b=sd)
-e2=cont.etapes[1]
-cr= e2.report()
-if cr.estvide():
- print "L'objet ETAPE est valide "
-else:
- print "L'objet ETAPE n'est pas valide "
- print cr
-
-e1.supprime()
-e2.supprime()
-
-def testcycle():
- """
- Cette fonction permet de détecter les cycles de références entre objets
- à l'aide du module Cyclops
- """
- from Misc import Cyclops
- global e1,e2
- z=Cyclops.CycleFinder()
- z.register(e1)
- z.register(e2)
- del e1,e2
- z.find_cycles()
- z.show_stats()
- z.show_cycles()
- z.show_cycleobjs()
- z.show_sccs()
- z.show_arcs()
- print "dead root set objects:"
- for rc, cyclic, x in z.get_rootset():
- if rc == 0:
- z.show_obj(x)
- z.find_cycles(1)
- z.show_stats()
-
-testcycle()
-
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT,OPER,PROC,JDC_CATA
-
-# Construction objet de définition
-
-class concept:
- def __init__(self,etape):
- self.etape=etape
- def is_object(valeur):
- """
- Indique si valeur est d'un type conforme à la classe (1) ou non conforme (0)
- """
- return 0
- def supprime(self):
- self.etape=None
-
-JdC=JDC_CATA(code="ASTER")
-OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
- a=SIMP(typ='I'),
- b=SIMP(typ=concept),
- )
-DEBUT=PROC(nom='DEBUT',op=0,INFO=SIMP(typ='I'),)
-
+++ /dev/null
-
-"""
- Vérification des cycles de références d'objets sur un exemple
- d'utilisation d'un JDC
-
-"""
-
-import sys
-sys.path[:0]=['../..','../../..']
-
-import cata
-from cata import JdC
-
-cr=JdC.report()
-print cr
-
-text="""
-DEBUT()
-a=OP1(a=1)
-b=OP1(a=1,b=a)
-c=OP1(a=1)
-"""
-
-j=JdC(procedure=text,cata=cata,nom="bidon")
-
-j.compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.exec_compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-cr=j.report()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-JdC.supprime()
-j.supprime()
-
-def testcycle():
- """
- Cette fonction permet de détecter les cycles de références entre objets
- à l'aide du module Cyclops
- """
- from Misc import Cyclops
- global j
- z=Cyclops.CycleFinder()
- z.register(j)
- del j
- z.find_cycles()
- z.show_stats()
- z.show_cycles()
- z.show_cycleobjs()
- z.show_sccs()
- z.show_arcs()
- print "dead root set objects:"
- for rc, cyclic, x in z.get_rootset():
- if rc == 0:
- z.show_obj(x)
- z.find_cycles(1)
- z.show_stats()
-
-testcycle()
-
+++ /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(CODE=_F( NOM = 'EFICA01A'),
- # PAR_LOT='NON'
- )
-
-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_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_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_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_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_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
-
-from Accas import SIMP,FACT,BLOC
-from Accas import AsException,AsType
-from Accas import ASSD,CO,GEOM,fonction
-from Accas import OPER,MACRO,JDC_CATA,FORM,PROC
-from Accas import AU_MOINS_UN,UN_PARMI,PRESENT_PRESENT,EXCLUS,ENSEMBLE,PRESENT_ABSENT
-from Accas import EVAL
-
-# 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
-
-# Autres
-
-class cabl_precont (ASSD):pass
-class cara_elem (ASSD):pass
-class cara_pout (ASSD):pass
-class cham_mater (ASSD):pass
-class char_acou (ASSD):pass
-class char_cine_acou (ASSD):pass
-class char_cine_meca (ASSD):pass
-class char_cine_ther (ASSD):pass
-class char_meca (ASSD):pass
-class char_ther (ASSD):pass
-class courbe (ASSD):pass
-class fond_fiss (ASSD):pass
-class interf_dyna_clas(ASSD):pass
-class interspfact (ASSD):pass
-class listis (ASSD):pass
-class listr8 (ASSD):pass
-class macr_elem_dyna (ASSD):pass
-class macr_elem_stat (ASSD):pass
-class mater (ASSD):pass
-class melasflu (ASSD):pass
-class modele (ASSD):pass
-class modele_gene (ASSD):pass
-class nume_ddl (ASSD):pass
-class nume_ddl_gene (ASSD):pass
-class obstacle (ASSD):pass
-class spectre (ASSD):pass
-class surface (ASSD):pass
-class tran_gene (ASSD):pass
-class type_flui_stru (ASSD):pass
-class valeur (ASSD):pass
-
-# maillage :
-#--------------------------------
-class maillage(ASSD):pass
-class squelette (maillage):pass
-
-# cham_gd (carte,cham_no,cham_elem)
-#--------------------------------
-
-class cham_gd(ASSD):pass
-
-# cham_gd/carte :
-#--------------------------------
-class carte(cham_gd):pass
-class carte_dbel_r (carte):pass
-class carte_depl_c (carte):pass
-class carte_depl_f (carte):pass
-class carte_depl_r (carte):pass
-class carte_durt_r (carte):pass
-class carte_ener_r (carte):pass
-class carte_epsi_r (carte):pass
-class carte_erreur (carte):pass
-class carte_flux_r (carte):pass
-class carte_g_depl_r (carte):pass
-class carte_geom_r (carte):pass
-class carte_hydr_r (carte):pass
-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 carte_sief_r (carte):pass
-class carte_sour_r (carte):pass
-class carte_temp_f (carte):pass
-class carte_temp_r (carte):pass
-class carte_var2_r (carte):pass
-class carte_vnor_c (carte):pass
-
-# cham_gd/cham_elem :
-#--------------------------------
-class cham_elem(cham_gd):pass
-class cham_elem_crit_r(cham_elem):pass
-class cham_elem_dbel_r(cham_elem):pass
-class cham_elem_depl_c(cham_elem):pass
-class cham_elem_depl_f(cham_elem):pass
-class cham_elem_depl_r(cham_elem):pass
-class cham_elem_dommag(cham_elem):pass
-class cham_elem_durt_r(cham_elem):pass
-class cham_elem_ener_r(cham_elem):pass
-class cham_elem_epsi_c(cham_elem):pass
-class cham_elem_epsi_r(cham_elem):pass
-class cham_elem_erreur(cham_elem):pass
-class cham_elem_flux_r(cham_elem):pass
-class cham_elem_g_depl(cham_elem):pass
-class cham_elem_geom_r(cham_elem):pass
-class cham_elem_hydr_r(cham_elem):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_elem_sief_c(cham_elem):pass
-class cham_elem_sief_r(cham_elem):pass
-class cham_elem_sour_r(cham_elem):pass
-class cham_elem_temp_f(cham_elem):pass
-class cham_elem_temp_r(cham_elem):pass
-class cham_elem_vari_r(cham_elem):pass
-class cham_elem_vnor_c(cham_elem):pass
-
-
-# cham_gd/cham_no :
-#--------------------------------
-class cham_no(cham_gd):pass
-class cham_no_dbel_r (cham_no):pass
-class cham_no_depl_c (cham_no):pass
-class cham_no_depl_f (cham_no):pass
-class cham_no_depl_r (cham_no):pass
-class cham_no_durt_r (cham_no):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_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_hydr_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 cham_no_pres_r (cham_no):pass
-class cham_no_sief_r (cham_no):pass
-class cham_no_sour_r (cham_no):pass
-class cham_no_temp_c (cham_no):pass
-class cham_no_temp_f (cham_no):pass
-class cham_no_temp_r (cham_no):pass
-class cham_no_vanl_r (cham_no):pass
-class cham_no_var2_r (cham_no):pass
-class cham_no_vnor_c (cham_no):pass
-
-
-class resultat(ASSD):pass
-
-class acou_harmo (resultat):pass
-class base_modale (resultat):pass
-class comb_fourier (resultat):pass
-class dyna_harmo (resultat):pass
-class dyna_trans (resultat):pass
-class fourier_elas (resultat):pass
-class harm_gene (resultat):pass
-class mode_acou (resultat):pass
-class mode_cycl (resultat):pass
-class mode_flamb (resultat):pass
-class mode_gene (resultat):pass
-class mult_elas (resultat):pass
-class theta_geom (resultat):pass
-
-# resultat/evol :
-#--------------------------------
-class evol(resultat):pass
-class evol_char(evol):pass
-class evol_elas(evol):pass
-class evol_noli(evol):pass
-class evol_ther(evol):pass
-class evol_varc(evol):pass
-
-# resultat/mode_stat :
-#--------------------------------
-class mode_stat(resultat):pass
-class mode_stat_depl(mode_stat):pass
-class mode_stat_acce(mode_stat):pass
-class mode_stat_forc(mode_stat):pass
-
-
-# resultat/mode_meca :
-#--------------------------------
-class mode_meca(resultat):pass
-class mode_meca_c(mode_meca):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
-
-# matr_elem :
-#--------------------------------
-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
-
-# table : (tabl_fonc)
-#--------------------------------
-
-class table(ASSD):pass
-
-class tabl_aire_int (table):pass
-class tabl_calc_g_loca(table):pass
-class tabl_calc_g_th (table):pass
-class tabl_cara_geom (table):pass
-class tabl_char_limite(table):pass
-class tabl_ener_elas (table):pass
-class tabl_ener_pot (table):pass
-class tabl_ener_cin (table):pass
-class tabl_ener_totale(table):pass
-class tabl_indic_ener (table):pass
-class tabl_indic_seuil(table):pass
-class tabl_intsp (table):pass
-class tabl_mass_iner (table):pass
-class tabl_post_alea (table):pass
-class tabl_post_dyna (table):pass
-class tabl_post_f_alea(table):pass
-class tabl_post_fatig (table):pass
-class tabl_post_gouj2e(table):pass
-class tabl_post_k (table):pass
-class tabl_post_rccm (table):pass
-class tabl_post_rele (table):pass
-class tabl_post_simpli(table):pass
-class tabl_post_usur (table):pass
-class tabl_reca_weib (table):pass
-class tabl_rice_tracey(table):pass
-class tabl_texture (table):pass
-class tabl_trc (table):pass
-class tabl_weibull (table):pass
-
-# table/tabl_fonc
-#--------------------------------
-class tabl_fonc (table):pass
-class tabl_fonc_max (tabl_fonc):pass
-class tabl_fonc_noci (tabl_fonc):pass
-class tabl_fonc_rms (tabl_fonc):pass
-
-
-# vect_asse :
-#--------------------------------
-class vect_asse(ASSD):pass
-class vect_asse_gene(vect_asse):pass
-
-# vect_elem :
-#--------------------------------
-class vect_elem(ASSD):pass
-class vect_elem_depl_r(vect_elem):pass
-class vect_elem_pres_c(vect_elem):pass
-class vect_elem_pres_r(vect_elem):pass
-class vect_elem_temp_r(vect_elem):pass
-
-
-JdC=JDC_CATA(code="ASTER")
-
-def DEBUT_prod(self,PAR_LOT,**args):
- """
- Fonction sdprod de la macro DEBUT
- """
- self.jdc.set_par_lot(PAR_LOT)
-
-DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-f1",repetable='n',
- fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
- sd_prod=DEBUT_prod,
-
- PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
- into=("OUI","NON"),defaut="OUI"),
- BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX",
- statut='f',min=01,max=03,
- FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM',
- into=('GLOBALE','VOLATILE','LOCALE'),),
- TITRE =SIMP(statut='f',typ='TXM'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=01,max=03,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=01,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- CODE =FACT("définition d un nom pour l'esemble d'une étude",
- statut='f',min=01,max=01,
- NOM =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=01,max=01,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TEST',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
- GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
- TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
- TAILLE =SIMP(statut='f',typ='I'),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
- PARTITION =SIMP(statut='f',typ='R'),
- ),
- );
-
-LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage,
- fr="Lecture d'un fichier de maillage",
- ang="Readings of a mesh file",
- docu="U4.21.01-f",reentrant='n',
-#
- UNITE =SIMP(statut='f',typ='I',defaut= 20 ),
-#
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
- fr="Format du fichier : ASTER ou MED.",
- ang="Format of the file : ASTER or MED.",),
-#
- ABSC_CURV =FACT(statut='f',min=00,max=01,
- TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-#
- VERI_MAIL =FACT(statut='d',min=01,max=01,
- APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ),
-#
- b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
- fr="Informations complémentaires pour la lecture MED.",
- ang="Further information for MED readings.",
-#
-# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
-# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
-#
- NOM_MED = SIMP(statut='f',typ='TXM',
- fr="Nom du maillage dans le fichier MED.",
- ang="Name of the mesh into the MED file.",),
-#
- INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
- ) ,
-#
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
-) ;
-
-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',
- 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,
- 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='**',
- 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='**'),
- 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","NON_LOCAL") ),
- 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_FLUI_PESA",
- "2D_FLUI_STRU",
- "2D_FLUIDE",
- "3D",
- "3D_ABSO",
- "3D_CONTACT",
- "3D_FAISCEAU",
- "3D_FLUI_ABSO",
- "3D_FLUIDE",
- "3D_HHM" ,
- "3D_HM",
- "3D_INCO",
- "3D_JOINT_CT",
- "3D_SI",
- "3D_THH",
- "3D_THHM",
- "3D_THM",
- "APPUI_REP",
- "ASSE_GRIL",
- "AXIS",
- "AXIS_FLUI_STRU",
- "AXIS_FLUIDE",
- "AXIS_FOURIER",
- "AXIS_HHM",
- "AXIS_HM",
- "AXIS_INCO",
- "AXIS_SI",
- "AXIS_THH",
- "AXIS_THHM",
- "AXIS_THM",
- "BARRE",
- "2D_BARRE",
- "C_PLAN",
- "C_PLAN_SI",
- "CABLE",
- "CABLE_POULIE",
- "COQUE_3D",
- "COQUE_AXIS",
- "COQUE_C_PLAN",
- "COQUE_D_PLAN",
- "CONT_DVP_2D",
- "CONT_DVP_3D",
- "D_PLAN",
- "D_PLAN_ABSO",
- "D_PLAN_HHM",
- "D_PLAN_HM",
- "D_PLAN_SI",
- "D_PLAN_THH",
- "D_PLAN_THHM",
- "D_PLAN_THM",
- "DIS_T",
- "DIS_TR",
- "DKT",
- "DST",
- "FLUI_STRU",
- "GRILLE",
- "PLAN_INCO",
- "POU_C_T",
- "POU_D_E",
- "POU_D_EM",
- "POU_D_T",
- "POU_D_T_GD",
- "POU_D_TG",
- "Q4G",
- "TUYAU",
- "TUYAU_3M",
- "TUYAU_6M"
- ) ) ),
-
- b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'",
- fr="modelisations thermiques",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "3D_DIAG",
- "AXIS",
- "AXIS_DIAG",
- "AXIS_FOURIER",
- "COQUE",
- "COQUE_AXIS",
- "COQUE_PLAN",
- "PLAN",
- "PLAN_DIAG",
- ),),),
- b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
- fr="modelisations acoustiques",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "PLAN"
- ), ),),
-
- b_non_local =BLOC( condition = "PHENOMENE=='NON_LOCAL'",
- fr="modelisations non locales",
- MODELISATION =SIMP(statut='o',typ='TXM',into=(
- "3D",
- "AXIS",
- "C_PLAN",
- "D_PLAN",
- ) ), ),
- ),
-) ;
-
-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-f1",reentrant='n',
- 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='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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',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',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",
- "RZ1","RT1","AI1","JG1","IYR21","IZR21","A2",
- "IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
- "RZ2","RT2","AI2","JG2","IYR22","IZR22","H",
- "HZ","HY","EP","EPY","EPZ","H1","HZ1","HY1",
- "EP1","EPY1","EPZ1","H2","HZ2","HY2","EP2",
- "EPY2","EPZ2","R","R1","R2") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
- ),
- b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
- 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") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"),
- ),
- b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- 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",) ),
- MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- FCX =SIMP(statut='f',typ=(fonction) ),
- ),
-
- BARRE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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"),max=6 ),
- VALE =SIMP(statut='o',typ='R',max=6 ),
- ),
- b_cercle =BLOC( condition = "SECTION=='CERCLE'",
- 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) ),
- ),
-
- COQUE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA' ),
- PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
- 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='f',typ='R',defaut= 0.8333333E0),
- COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
- COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ),
- EXCENTREMENT =SIMP(statut='f',typ='R' ),
- INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
- CABLE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('A','SECTION') ),
- MAILLE =SIMP(statut='f',typ=ma,max='**'),
- GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
- N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ),
- A =SIMP(statut='f',typ='R' ),
- SECTION =SIMP(statut='f',typ='R' ),
- FCX =SIMP(statut='f',typ=(fonction) ),
- ),
-
- DISCRET =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
- 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',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",
- "M_T_L", "M_TR_N", "M_TR_L",
- "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
- "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ),
- VALE =SIMP(statut='o',typ='R',max='**'),
- ),
-
- ORIENTATION =FACT(statut='f',min=01,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='**'),
- 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='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
-
- DEFI_ARC =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
- 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
- PRESENT_PRESENT('ORIE_ARC','RAYON'),
- EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
- EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
- EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
- EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
- PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
- PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
- MAILLE =SIMP(statut='f',typ=ma,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,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,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'),
- COEF_FLEX_XY =SIMP(statut='f',typ='R'),
- INDI_SIGM_XY =SIMP(statut='f',typ='R'),
- COEF_FLEX_XZ =SIMP(statut='f',typ='R'),
- INDI_SIGM_XZ =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
-
- MASSIF =FACT(statut='f',min=01,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,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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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 ),
- A_FLUI =SIMP(statut='o',typ='R'),
- A_CELL =SIMP(statut='o',typ='R'),
- COEF_ECHELLE =SIMP(statut='o',typ='R'),
- ),
-
- GRILLE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),
- EXCLUS('ANGL_REP','ORIG_AXE'),
- EXCLUS('EXCENTREMENT','DIST_N'),
- ENSEMBLE('ORIG_AXE','AXE')),
- 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'),
- POUR_CENT_L =SIMP(statut='f',typ='R'),
- POUR_CENT_T =SIMP(statut='f',typ='R'),
- DIST_N =SIMP(statut='f',typ='R'),
- EXCENTREMENT =SIMP(statut='f',typ='R'),
- ORIG_AXE =SIMP(statut='f',typ='R',max='**'),
- AXE =SIMP(statut='f',typ='R',max='**'),
- COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
- GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,min=1,max=1 ),
- ),
-
- RIGI_PARASOL =FACT(statut='f',min=01,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='**'),
- FONC_GROUP =SIMP(statut='f',typ=(fonction) ),
- COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
- REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
- 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',min=01,max='**',
- regles=(UN_PARMI('MAILLE','GROUP_MA'),),
- 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'),
- PAS_N =SIMP(statut='o',typ='R'),
- ANGL_REP =SIMP(statut='o',typ='R',max='**'),
- COEF_ECHELLE =SIMP(statut='o',typ='R'),
- ),
-
-
- 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'),),
-
- 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,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',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='**'),
-
- CARA =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
- VALE =SIMP(statut='o',typ='R',max='**'),
- COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2),
- ),
-
-
-) ;
-
-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-f1",reentrant='n',
- 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_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) ),
- 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 ),
- 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 ),
- SECH_CALCULEE =SIMP(statut='f',fr="Champ de séchage 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 ),
-
- 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='**'),
- 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",) ),
- 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_INTE =SIMP(statut='f',typ='I',defaut= 2),
- 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),
- 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_INTE =SIMP(statut='f',typ='I',defaut= 2),
- 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'),
- 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),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),),),
- 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_INTE =SIMP(statut='f',typ='I',defaut= 2),
- 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'),
- 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),
- VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),),),
- 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")),
- COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
- MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
- 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),),),
- ),
-
- 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'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- 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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PRE1 =SIMP(statut='f',typ='R' ),
- PRE2 =SIMP(statut='f',typ='R' ),
- UI2 =SIMP(statut='f',typ='R' ),
- UI3 =SIMP(statut='f',typ='R' ),
- UI4 =SIMP(statut='f',typ='R' ),
- UI5 =SIMP(statut='f',typ='R' ),
- UI6 =SIMP(statut='f',typ='R' ),
- UO2 =SIMP(statut='f',typ='R' ),
- UO3 =SIMP(statut='f',typ='R' ),
- UO4 =SIMP(statut='f',typ='R' ),
- UO5 =SIMP(statut='f',typ='R' ),
- UO6 =SIMP(statut='f',typ='R' ),
- VI2 =SIMP(statut='f',typ='R' ),
- VI3 =SIMP(statut='f',typ='R' ),
- VI4 =SIMP(statut='f',typ='R' ),
- VI5 =SIMP(statut='f',typ='R' ),
- VI6 =SIMP(statut='f',typ='R' ),
- VO2 =SIMP(statut='f',typ='R' ),
- VO3 =SIMP(statut='f',typ='R' ),
- VO4 =SIMP(statut='f',typ='R' ),
- VO5 =SIMP(statut='f',typ='R' ),
- VO6 =SIMP(statut='f',typ='R' ),
- WI2 =SIMP(statut='f',typ='R' ),
- WI3 =SIMP(statut='f',typ='R' ),
- WI4 =SIMP(statut='f',typ='R' ),
- WI5 =SIMP(statut='f',typ='R' ),
- WI6 =SIMP(statut='f',typ='R' ),
- WO2 =SIMP(statut='f',typ='R' ),
- WO3 =SIMP(statut='f',typ='R' ),
- WO4 =SIMP(statut='f',typ='R' ),
- WO5 =SIMP(statut='f',typ='R' ),
- WO6 =SIMP(statut='f',typ='R' ),
- WO =SIMP(statut='f',typ='R' ),
- WI1 =SIMP(statut='f',typ='R' ),
- WO1 =SIMP(statut='f',typ='R' ),
- GONF =SIMP(statut='f',typ='R' ),
- ),
-
- 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',),
- AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
- 'TEMP','PRE1','PRE2','DNOR','DTAN'),
- EXCLUS('DNOR','DX'),
- EXCLUS('DNOR','DY'),
- EXCLUS('DNOR','DZ'),
- EXCLUS('DNOR','DRX'),
- EXCLUS('DNOR','DRY'),
- EXCLUS('DNOR','DRZ'),
- EXCLUS('DTAN','DX'),
- EXCLUS('DTAN','DY'),
- EXCLUS('DTAN','DZ'),
- EXCLUS('DTAN','DRX'),
- EXCLUS('DTAN','DRY'),
- EXCLUS('DTAN','DRZ'),),
-# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- DRX =SIMP(statut='f',typ='R' ),
- DRY =SIMP(statut='f',typ='R' ),
- DRZ =SIMP(statut='f',typ='R' ),
- DNOR =SIMP(statut='f',typ='R' ),
- DTAN =SIMP(statut='f',typ='R' ),
- GRX =SIMP(statut='f',typ='R' ),
- PRES =SIMP(statut='f',typ='R' ),
- PHI =SIMP(statut='f',typ='R' ),
- TEMP =SIMP(statut='f',typ='R' ),
- PRE1 =SIMP(statut='f',typ='R' ),
- PRE2 =SIMP(statut='f',typ='R' ),
- ),
- 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' ),
- ),
-
- 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,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_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='**'),
-
- 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",) ),
- ),
-
- 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,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é",
- 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",) ),
- 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",
- min=1,max='**',
- regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
- 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' ),
- ),
- 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,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' ),
- ),
-
- 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' ),
- ),
-
- 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_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('FX','N','VY','VZ'),
- PRESENT_ABSENT('FY','N','VY','VZ'),
- PRESENT_ABSENT('FZ','N','VY','VZ'),
- PRESENT_ABSENT('N','FX','FY','FZ'),
- PRESENT_ABSENT('VY','FX','FY','FZ'),
- PRESENT_ABSENT('VZ','FX','FY','FZ'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,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' ),
- FY =SIMP(statut='f',typ='R' ),
- FZ =SIMP(statut='f',typ='R' ),
-
- N =SIMP(statut='f',typ='R' ),
- VY =SIMP(statut='f',typ='R' ),
- VZ =SIMP(statut='f',typ='R' ),
-
- ),
-
- FORCE_TUYAU =FACT(statut='f',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,max='**'),
- 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='**',
- 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='**'),
- 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_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='**'),
- 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") ),
- ),
- 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",
- 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='**'),
-
- 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' ),
- ),
-
- 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",
- 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_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 ),
- ),
-
- 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",) ),
- ),
-
- 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='**'),
- MAILLE =SIMP(statut='f',typ=ma,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='**',
- 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='**'),
- PRES =SIMP(statut='f',typ='R' ),
- CISA_2D =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) ),
-) ;
-
-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 mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
- if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
- if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
- if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
- if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
- if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
- raise AsException("type de concept resultat non prevu")
-
-MODE_ITER_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-e",reentrant='n',
- 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") ),
- TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE",
- into=("MODE_FLAMB","DYNAMIQUE"),
- fr="Type d analyse" ),
- OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
- fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
-
- b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
- CALC_FREQ =FACT(statut='d',min=0,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",
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
- ),
- b_centre =BLOC(condition = "OPTION == 'CENTRE'",
- fr="Recherche des valeurs propres les plus proches d une valeur donnée",
- CHAR_CRIT =SIMP(statut='o',typ='R',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,max=2,
- fr="Valeur des deux charges critiques délimitant la bande de recherche"),
- ),
- APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
- fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
- regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
- COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- 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 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
- ),
- ),
-
- b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
- CALC_FREQ =FACT(statut='d',min=0,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",
- NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
- ),
- b_centre =BLOC(condition = "OPTION == 'CENTRE'",
- fr="Recherche des valeurs propres les plus proches d une valeur donnée",
- FREQ =SIMP(statut='o',typ='R',min=1,max=1,
- fr="Fréquence autour de laquelle on cherche les fréquences propres"),
- 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,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"),
- fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
- regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
- DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
- COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
- 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 ),
- SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+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,
- fr="Valeur limite admise pour l ereur a posteriori des modes" ),
- STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- ),
- STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-
-def norm_mode_prod(MODE,**args ):
- if AsType(MODE) == mode_meca : return mode_meca
- if AsType(MODE) == mode_meca_c : return mode_meca_c
- if AsType(MODE) == mode_flamb : return mode_flamb
- raise AsException("type de concept resultat non prevu")
-
-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',
- 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,...",
- into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
- NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
- b_noeud =BLOC(condition = "NOEUD != None",
- NOM_CMP =SIMP(statut='o',typ='TXM' ),
- ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',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",
- NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"),
- NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ),
- SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
- fr="Choix du signe" ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-) ;
-
-def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
- if (MODE_STAT != None) : return mode_stat_depl
- if (PSEUDO_MODE !=None) : return mode_stat_acce
- if (FORCE_NODALE != None) : return mode_stat_forc
- raise AsException("type de concept resultat non prevu")
-MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
- fr="Calcul de modes statiques",
- docu="U4.52.14-e",reentrant='n',
- 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='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
- UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- FORCE_NODALE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
- UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",), ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- PSEUDO_MODE =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
- AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
- DIRECTION =SIMP(statut='f',typ='R',min=3,max=3),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- b_dir =BLOC(condition = "DIRECTION != None",
- NOM_DIR =SIMP(statut='f',typ='TXM' ),),
- b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
- regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
- TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
-) ;
-
-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-f",reentrant='n',
- 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='**',
- regles=(UN_PARMI('NOMBRE','PAS'),),
- JUSQU_A =SIMP(statut='o',typ='R'),
- NOMBRE =SIMP(statut='f',typ='I'),
- PAS =SIMP(statut='f',typ='R'),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-
-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='**'),
-) ;
-
-FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
- fr="Définition d une fonction",reentrant = 'n',
- regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
- REEL = SIMP(typ = 'shell',max=1),
- ENTIER = SIMP(typ = 'shell',max=1),
- COMPLEXE = SIMP(typ = 'shell',max=1),
-) ;
-
-CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
- docu="U4.32.01-d1",reentrant='f',
- regles=(UN_PARMI('VALE_R','LIST_PARA'),),
- FONCTION =SIMP(statut='o',typ=fonction ),
- NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE_R =SIMP(statut='f',typ='R',max='**'),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG","INT") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-) ;
-
-def INCLUDE_prod(self,UNITE,**args):
- """ Fonction sd_prod pour la macro include
- """
- # Si unite a change on reevalue le fichier associe
- if not hasattr(self,'unite') or self.unite != UNITE:
- f,text=self.get_file(unite=UNITE)
- self.unite=UNITE
- self.fichier_init = f
- # on execute le texte fourni dans le contexte forme par
- # le contexte de l etape pere (global au sens Python)
- # et le contexte de l etape (local au sens Python)
- code=compile(text,f,'exec')
- if self.jdc and self.jdc.par_lot == 'NON':
- # On est en mode commande par commande
- # On teste la validite de la commande avec interruption eventuelle
- cr=self.report()
- self.parent.cr.add(cr)
- if not cr.estvide():
- raise EOFError
- d={}
- self.g_context = d
- self.contexte_fichier_init = d
- exec code in self.parent.g_context,d
-
-def INCLUDE_context(self,d):
- """ Fonction op_init pour macro INCLUDE
- """
- for k,v in self.g_context.items():
- d[k]=v
-
-INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
- fr="Débranchement vers un fichier de commandes secondaires",
- #fichier_ini=1,
- sd_prod=INCLUDE_prod,
- op_init=INCLUDE_context,
- UNITE = SIMP(statut='o',typ='I'),
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-);
-
-def calc_char_seisme_prod(MATR_MASS,**args ):
- if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r
- raise AsException("type de concept resultat non prevu")
-
-CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod,
- docu="U4.63.01-e",reentrant='n',
- 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é"),
- MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
- b_mode_stat =BLOC ( condition = "MODE_STAT != None",
- regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
- NOEUD =SIMP(statut='f',typ=no,max='**'),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
- ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
-
-def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,**args):
- """
- Ecriture de la macro MACRO_PROJ_BASE
- """
- ier=0
- # On importe les definitions des commandes a utiliser dans la macro
- NUME_DDL_GENE =self.get_cmd('NUME_DDL_GENE')
- PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE')
- PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE')
- # La macro compte pour 1 dans la numerotation des commandes
- self.icmd=1
-
- nompro=None
- iocc=0
- if MATR_ASSE_GENE:
- for m in MATR_ASSE_GENE:
- iocc=iocc+1
- if (iocc==1 or (m['PROFIL']!=nompro)):
- __num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=m['PROFIL'])
- nompro=m['PROFIL']
- motscles={}
- if m['MATR_ASSE'] : motscles['MATR_ASSE'] =m['MATR_ASSE']
- elif m['MATR_ASSE_GENE']: motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE']
- else:
- ier=ier+1
- self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
- return ier
- self.DeclareOut('mm',m['MATRICE'])
- mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=__num,NB_VECT=NB_VECT,**motscles)
-
- iocc=0
- if VECT_ASSE_GENE:
- for v in VECT_ASSE_GENE:
- iocc=iocc+1
- if (iocc==1 and not MATR_ASSE_GENE):
- __num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE='DIAG')
- motscles={}
- if v['VECT_ASSE'] : motscles['VECT_ASSE'] =v['VECT_ASSE']
- elif v['VECT_ASSE_GENE']: motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE']
- else:
- ier=ier+1
- self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
- return ier
- motscles['TYPE_VECT']=v['TYPE_VECT']
- self.DeclareOut('vv',v['VECTEUR'])
- vv=PROJ_VECT_BASE(BASE=BASE,NUME_DDL_GENE=__num,NB_VECT=NB_VECT,**motscles)
-
- return ier
-
-
-def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ):
- if MATR_ASSE_GENE != None:
- for m in MATR_ASSE_GENE:
- self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
- self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r)
- if VECT_ASSE_GENE != None:
- for v in VECT_ASSE_GENE:
- self.type_sdprod(v['VECTEUR'],vect_asse_gene)
- return None
-
-MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.11-c",
- 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='**',
- 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='**',
- 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),
- VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene),
- ),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-) ;
-
-RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-e",
- fr="Retour au fichier de commandes appelant",
-) ;
-
-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',
- TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE",
- into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
- "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
- "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
- "GUID_B_CARTE_900","GUID_C_CARTE_900",
- "GUID_D_CARTE_900","GUID_E_CARTE_900",
- "GUID_F_CARTE_900","GUID_A_CARTE_1300",
- "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
- "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
- "GUID_F_CARTE_1300","GUID_A_CARSP_900",
- "GUID_B_CARSP_900","GUID_C_CARSP_900",
- "GUID_D_CARSP_900","GUID_E_CARSP_900",
- "GUID_F_CARSP_900","GUID_A_CARSP_1300",
- "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
- "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
- "GUID_F_CARSP_1300","GUID_A_GCONT_900",
- "GUID_B_GCONT_900","GUID_C_GCONT_900",
- "GUID_D_GCONT_900","GUID_E_GCONT_900",
- "GUID_F_GCONT_900","GUID_A_GCONT_1300",
- "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
- "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
- "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
- "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
- "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
- "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
- "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
- "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
- "GUID_F_GCOMB_1300",) ),
- VALE =SIMP(statut='f',typ='R',max='**'),
- VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"),
-) ;
-
-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-e",reentrant='f',
- regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'),
- PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
- METHODE =SIMP(statut='f',typ='TXM',defaut="EULER",
- into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
- MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
- RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
- AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
- AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
- LIST_AMOR =SIMP(statut='f',typ=listr8 ),
- 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,
- regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
- EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
- RESU_GENE =SIMP(statut='f',typ=tran_gene ),
- b_resu_gene =BLOC(condition = "RESU_GENE != None",
- INST_INIT =SIMP(statut='f',typ='R' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- ),
- DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- ),
- INCREMENT =FACT(statut='o',min=01,max='**',
- INST_INIT =SIMP(statut='f',typ='R' ),
- INST_FIN =SIMP(statut='o',typ='R' ),
- PAS =SIMP(statut='f',typ='R' ),
- VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
- COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ),
- COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
- PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
- NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
- NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
- ),
- ARCHIVAGE =FACT(statut='f',min=01,max=01,
- regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
- LIST_ARCH =SIMP(statut='f',typ=listis ),
- PAS_ARCH =SIMP(statut='f',typ='I' ),
- ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ),
-
- EXCIT =FACT(statut='f',min=01,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'),
- PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
- PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
- VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
- NUME_MODE =SIMP(statut='f',typ='I' ),
- FONC_MULT =SIMP(statut='f',typ=fonction ),
- COEF_MULT =SIMP(statut='f',typ='R' ),
- 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") ),
- 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") ),
- D_FONC_DT =SIMP(statut='f',typ=fonction ),
- D_FONC_DT2 =SIMP(statut='f',typ=fonction ),
- ),
- CHOC =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- INTITULE =SIMP(statut='f',typ='TXM' ),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- OBSTACLE =SIMP(statut='o',typ=obstacle ),
- ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3),
- NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- JEU =SIMP(statut='f',typ='R',defaut= 1. ),
- DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ),
- SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ),
- SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ),
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-
- LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- b_lame =BLOC(condition="LAME_FLUIDE=='OUI'",
- ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- ),
- ),
- VERI_CHOC =FACT(statut='f',min=01,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='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- OBSTACLE =SIMP(statut='o',typ=obstacle ),
- ORIG_OBST =SIMP(statut='f',typ='R',max='**'),
- NORM_OBST =SIMP(statut='o',typ='R',max='**'),
- ANGL_VRIL =SIMP(statut='f',typ='R' ),
- JEU =SIMP(statut='f',typ='R',defaut= 1. ),
- DIST_1 =SIMP(statut='f',typ='R' ),
- DIST_2 =SIMP(statut='f',typ='R' ),
- REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
- RIGI_NOR =SIMP(statut='f',typ='R' ),
- FNOR_CRIT =SIMP(statut='f',typ='R' ),
- FNOR_POST_FL =SIMP(statut='f',typ='R' ),
- RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
- ),
- ANTI_SISM =FACT(statut='f',min=01,max='**',
- regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
- UN_PARMI('NOEUD_2','GROUP_NO_2'),
- PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
- PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
- NOEUD_1 =SIMP(statut='f',typ=no),
- NOEUD_2 =SIMP(statut='f',typ=no),
- GROUP_NO_1 =SIMP(statut='f',typ=grno),
- GROUP_NO_2 =SIMP(statut='f',typ=grno),
- RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- C =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
- DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ),
- ),
- RELA_EFFO_DEPL =FACT(statut='f',min=01,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='**',
- 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='**',
- 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 ),
- ),
- b_itmi =BLOC(condition = "METHODE=='ITMI'",
- regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
- BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ),
- NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
- ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
- CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- NB_MODE =SIMP(statut='f',typ='I' ),
- NB_MODE_FLUI =SIMP(statut='f',typ='I' ),
- NB_MODE_DIAG =SIMP(statut='f',typ='I' ),
- TS_REG_ETAB =SIMP(statut='f',typ='R' ),
- ),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- IMPRESSION =FACT(statut='f',min=01,max='**',
- regles=(EXCLUS('TOUT','NIVEAU'),),
- TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
- 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='**'),
- ) ;
-
-FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
- docu="U4.11.02-f",
- RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE",
- statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
-) ;
-
-
-
-
+++ /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_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
-"""
- Exemple d'utilisation d'un JDC sur le cas test eficas
- de la base de test d'ASTER
- Ce test va jusqu'à la phase de construction des macros
- en utilisant le module codex qui emule une partie du fonctionnement
- du code ASTER réel
-
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-import cata
-from cata import JdC
-
-cr=JdC.report()
-print cr
-
-f=open('cas.py','r')
-text=f.read()
-f.close()
-j=JdC(procedure=text,cata=cata,nom="eficas")
-
-j.compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.exec_compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-cr=j.report()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.Build()
+++ /dev/null
-"""
- Cet exemple montre :
- - la création d'une définition de mot-clé simple
- - sa vérification (report)
- - la création d'un mot-clé simple valide
- - sa vérification (isvalid)
- - la création d'une autre définition de mot-clé simple
- - sa vérification (report)
- - la création d'un mot-clé simple invalide
- - sa vérification (report)
-
-"""
-import sys
-sys.path[:0]=['../..']
-
-import Accas
-from Accas import SIMP
-
-a=SIMP(typ='I')
-print a.report()
-o=a(1,'mcs1')
-print o
-print o.isvalid()
-
-a=SIMP(typ='I',statut='o')
-cr=a.report()
-if cr.estvide():
- print "Verification sans erreur"
-else:
- print cr
-o=a(None,'mcs1')
-print o.report()
+++ /dev/null
-"""
- Exemple d'utilisation avec des mots-clés facteurs multiples.
- Cet exemple construit un objet de définition (cata) de type FACT
- qui est composé de deux objets FACT
-
- Dans un premier temps on vérifie la conformite de l'objet
- de définition ::
-
- cr=cata.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit plusieurs objets de type
- MCFACT dont la définition est cata et on vérifie la conformité
- de ces objets.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT
-
-# Construction objet de définition
-
-cata= FACT(mcf1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
- mcf2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- )
-
-# Vérification objet de définition
-cr=cata.report()
-if cr.estvide():
- print "L'objet de définition est valide "
-else:
- print cr
-
-
-for d in ({'mcf1':{'a':1}},
- {'mcf1':{'a':1,'b':2}},
- {'mcf1':{'a':1,'b':2},'mcf2':{'c':3}},
- {'mcf1':{'a':1,'b':2},'mcf2':({'c':3},{'c':5})},
- ):
- # Création de l'objet MCFACT de nom mcf1
- o=cata(d,'mcf1',None)
- # Vérification objet MCFACT
- cr= o.report()
- if cr.estvide():
- print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d
- else:
- print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
- print cr
-
+++ /dev/null
-"""
- Exemple d'utilisation avec un opérateur
- Cet exemple construit un objet de définition (OP1) de type OPER
- qui est composé d'un objet SIMP
-
- Dans un premier temps on vérifie la conformite de l'objet
- de définition ::
-
- cr=OP1.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit plusieurs objets de type
- ETAPE dont la définition est OP1 et on vérifie la conformité
- de ces objets.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT,OPER
-
-# Construction objet de définition
-
-class concept:
- def __init__(self,etape):
- self.etape=etape
- def is_object(sd):
- """ 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'),
- b=SIMP(typ=concept),
- )
-
-# Vérification objet de définition
-cr=OP1.report()
-if cr.estvide():
- print "L'objet de définition est valide "
-else:
- print cr
-
-class context:
- def __init__(self):
- self.etapes=[]
- self.mc_globaux={}
- self.cata_ordonne_dico=None
- self.par_lot="OUI"
-
- def register(self,etape):
- self.etapes.append(etape)
- return self.etapes.index(etape)
-
- def get_jdc_root(self):
- return self
-
- def create_sdprod(self,etape,nomsd):
- sd= etape.get_sd_prod()
- if sd != None and etape.reuse == None:
- # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation d un concept
- sd.nom=nomsd
- return sd
-
-
-cont=context()
-CONTEXT.set_current_step(cont)
-
-sd=concept(None)
-# Création de l'objet ETAPE
-co1=OP1(a=1,b=sd)
-
-# Vérification objet ETAPE
-cr= co1.etape.report()
-if cr.estvide():
- print "L'objet ETAPE est valide "
-else:
- print "L'objet ETAPE n'est pas valide "
- print cr
-
-# Test avec reutilisation de concept
-co=OP1(reuse=co1,a=1,b=sd)
-e=cont.etapes[1]
-cr= e.report()
-if cr.estvide():
- print "L'objet ETAPE est valide "
-else:
- print "L'objet ETAPE n'est pas valide "
- print cr
-
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT,OPER,JDC_CATA
-
-# Construction objet de définition
-
-class concept:
- def __init__(self,etape):
- self.etape=etape
- def is_object(valeur):
- """
- Indique si valeur est d'un type conforme à la classe (1) ou non conforme (0)
- """
- return 0
-
-JdC=JDC_CATA(code="ASTER")
-OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
- a=SIMP(typ='I'),
- b=SIMP(typ=concept),
- )
-
+++ /dev/null
-"""
- Exemple d'utilisation d'un JDC
-
- Dans un premier temps on vérifie la conformite de l'objet
- de définition ::
-
- cr=OP1.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit plusieurs objets de type
- ETAPE dont la définition est OP1 et on vérifie la conformité
- de ces objets.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-import cata
-from cata import JdC
-
-cr=JdC.report()
-print cr
-
-text="""
-
-a=OP1(a=1)
-b=OP1(a=1,b=a)
-c=OP1(a=1,b=10)
-"""
-
-j=JdC(procedure=text,cata=cata,nom="bidon")
-
-j.compile()
-print j.cr
-
-j.exec_compile()
-print j.cr
-
-cr=j.report()
-print cr
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT,OPER,PROC,JDC_CATA
-
-# Construction objet de définition
-
-class concept:
- def __init__(self,etape):
- self.etape=etape
- def is_object(valeur):
- """
- Indique si valeur est d'un type conforme à la classe (1) ou non conforme (0)
- """
- return 0
-
-JdC=JDC_CATA(code="ASTER")
-OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
- a=SIMP(typ='I'),
- b=SIMP(typ=concept),
- )
-DEBUT=PROC(nom='DEBUT',op=0,INFO=SIMP(typ='I'),)
-
+++ /dev/null
-"""
- Exemple d'utilisation d'un JDC
-
- Dans un premier temps on importe un catalogue
- de définition contenu dans un module et on le valide ::
-
- import cata
- from cata import JdC
- cr=JdC.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit un jeu de commandes
- a partir d'une chaine de caractères et on vérifie sa
- conformité.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-import cata
-from cata import JdC
-
-cr=JdC.report()
-print cr
-
-text="""
-DEBUT()
-a=OP1(a=1)
-b=OP1(a=1,b=a)
-c=OP1(a=1,b=10)
-"""
-
-j=JdC(procedure=text,cata=cata,nom="bidon")
-
-j.compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.exec_compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-cr=j.report()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
+++ /dev/null
-"""
-"""
-
-from Accas import SIMP,FACT,OPER,PROC,JDC_CATA,MACRO,ASSD
-
-# Construction objet de définition
-
-class concept(ASSD):pass
-
-JdC=JDC_CATA(code="ASTER")
-
-def op2_sdprod(a,**args):
- return concept
-
-OP2 = OPER(nom='OP2',op=2,sd_prod=op2_sdprod,reentrant='f',
- a=SIMP(typ='I'),
- b=SIMP(typ=concept),
- )
-OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
- a=SIMP(typ='I'),
- b=SIMP(typ=concept),
- )
-DEBUT=PROC(nom='DEBUT',op=0,INFO=SIMP(typ='I'),)
-MA_MACRO=MACRO(nom="MA_MACRO",op=-1,sd_prod=concept,
- A=SIMP(typ='I'))
-
-
+++ /dev/null
-"""
- Exemple d'utilisation d'un JDC
-
- Dans un premier temps on importe un catalogue
- de définition contenu dans un module et on le valide ::
-
- import cata
- from cata import JdC
- cr=JdC.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit un jeu de commandes
- a partir d'une chaine de caractères et on vérifie sa
- conformité.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-import cata
-from cata import JdC
-
-cr=JdC.report()
-print cr
-
-text="""
-DEBUT()
-a=OP1(a=1)
-b=OP2(a=1,
- b=a)
-c=OP1(a=1,
- b=10)
-d=MA_MACRO(A=1)
-"""
-
-j=JdC(procedure=text,cata=cata,nom="bidon")
-
-j.compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.exec_compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-cr=j.report()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
+++ /dev/null
-"""
-"""
-
-
-from Accas import SIMP,FACT,OPER,PROC,JDC_CATA,MACRO,ASSD
-
-# Construction objet de définition
-
-class concept(ASSD):pass
-
-JdC=JDC_CATA(code="ASTER")
-
-def op2_sdprod(a,**args):
- return concept
-
-OP2 = OPER(nom='OP2',op=2,sd_prod=op2_sdprod,reentrant='f',
- a=SIMP(typ='I'),
- b=SIMP(typ=concept),
- )
-
+++ /dev/null
-"""
-"""
-
-from Accas import SIMP,FACT,OPER,PROC,JDC_CATA,MACRO,ASSD
-
-# Construction objet de définition
-
-class concept(ASSD):pass
-
-JdC=JDC_CATA(code="ASTER")
-
-OP1 = OPER(nom='OP1',op=1,sd_prod=concept,reentrant='f',
- a=SIMP(typ='I'),
- b=SIMP(typ=concept),
- )
-DEBUT=PROC(nom='DEBUT',op=0,INFO=SIMP(typ='I'),)
-MA_MACRO=MACRO(nom="MA_MACRO",op=-1,sd_prod=concept,
- A=SIMP(typ='I'))
-
+++ /dev/null
-"""
- Exemple d'utilisation d'un JDC
-
- Dans un premier temps on importe un catalogue
- de définition contenu dans un module et on le valide ::
-
- import cata
- from cata import JdC
- cr=JdC.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit un jeu de commandes
- a partir d'une chaine de caractères et on vérifie sa
- conformité.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-import cata
-import cata1
-from cata import JdC
-
-cr=JdC.report()
-print cr
-
-text="""
-DEBUT()
-a=OP1(a=1)
-b=OP2(a=1,
- b=a)
-c=OP1(a=1,
- b=10)
-d=MA_MACRO(A=1)
-"""
-
-j=JdC(procedure=text,cata=(cata,cata1),nom="bidon")
-
-j.compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.exec_compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-cr=j.report()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
+++ /dev/null
-import sys
-sys.path[:0]=['../..','../../..']
-
-# On récupère les plugins de la famille convert
-import convert
-
-p=convert.plugins['asterv5']()
-p.readfile('torsion.comm')
-#p.readfile('totalmod.comm')
-if not p.cr.estvide():
- print p.cr
- sys.exit(0)
-
-s=p.convert('exec')
-if not p.cr.estvide():
- print p.cr
- sys.exit(0)
-
-print s
+++ /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
-DEBUT();
-% LECTURE DES PARAMETRES
-%
-
-
-% LECTURE DES TEMPS
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%cycle 1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-% LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS
-
-PRE_GIBI ();
-%
- ma1 = LIRE_MAILLAGE ();
-%
-&ma1 = DEFI_GROUP ( MAILLAGE : ma1
- CREA_GROUP_NO : (GROUP_MA : ( fixati
- appui
- lias_1
- lias_2
- ebguide
- maintien
- main_sup
- embo_sup
- tub_guid
- grilles
- embo_inf
- pieds
- crayons ))
- ) ;
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% AFFECTATION DU MODELE
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
- mo1 = AFFE_MODELE ( Maillage: ma1
- % crayons combustibles
- AFFE : ( GROUP_MA : crayons
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % tubes guides
- AFFE : ( GROUP_MA : tub_guid
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % embouts
- AFFE : ( GROUP_MA : (embo_sup, embo_inf)
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DKT'
- )
- % pieds
-
- AFFE : ( GROUP_MA : pieds
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
-
- % grilles
- AFFE : ( GROUP_MA : grilles
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % liaison grille crayon
- AFFE : ( GROUP_MA : li_gr_cr
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DIS_TR'
- )
- % liaison grille tube
- AFFE : ( GROUP_MA : li_gr_gu
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DIS_TR'
- )
- % systeme de maintien
- AFFE : ( GROUP_MA : maintien
- PHENOMENE:'MECANIQUE',
- MODELISATION:'POU_D_E'
- % MODELISATION:'POU_D_T'
- )
- );
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
- cara1 = AFFE_CARA_ELEM ( MODELE : mo1
-
-% Famille assemblage : numero_fam
-%
- % crayons
- POUTRE : ( GROUP_MA : cray
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % tube guide partie courante
- POUTRE : ( GROUP_MA : guid
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % tube guide partie retrecie
- POUTRE : ( GROUP_MA : retre
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % grilles
- POUTRE : ( GROUP_MA : ( gril_i )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- POUTRE : ( GROUP_MA : ( gril_e )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- ORIENTATION : ( GROUP_MA : (gril_i , gril_e )
- CARA : 'VECT_Y'
- VALE : (1. 0. 0.)
- )
- % systeme de maintien
- POUTRE : ( GROUP_MA : (mainti_y , mainti_z )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- ORIENTATION : ( GROUP_MA : (mainti_y )
- CARA : 'VECT_Y'
- VALE : (0. 1. 0.)
- )
- ORIENTATION : ( GROUP_MA : (mainti_z )
- CARA : 'VECT_Y'
- VALE : (0. 0. 1.)
- )
- % embout inferieur
- COQUE : ( GROUP_MA : eboinf
- EPAIS : 2.
- ANGL_REP : 90.
- )
- % pieds
- POUTRE : ( GROUP_MA : pi_ple
- SECTION : 'GENERALE'
- CARA : ( 'A' , 'IZ' , 'IY' , 'JX' )
- VALE : (1. 2. 3. 4.)
- )
- POUTRE : ( GROUP_MA : pi_tro
- SECTION : 'GENERALE'
- CARA : ( 'A' , 'IZ' , 'IY' , 'JX' )
- VALE : (1. 2. 3. 4. )
- )
- ORIENTATION : ( GROUP_MA : (pi_ple pi_tro )
- CARA : 'VECT_Y'
- VALE : (0. 1. 0.)
- )
-
- % embout superieur
- COQUE : ( GROUP_MA : ebosup
- EPAIS : 3.
- ANGL_REP : 90.
- )
-
- % liaison grille/crayon
- DISCRET : ( GROUP_MA : elasti
- CARA : 'K_TR_D_L'
- VALE : ( 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- )
- REPERE : 'LOCAL'
- )
- % liaison grille/tube guide
- DISCRET : ( GROUP_MA : rigid
- CARA : 'K_TR_D_L'
- VALE : ( 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- )
- REPERE : 'LOCAL'
- )
-
- ORIENTATION : ( GROUP_MA : (elasti
- rigid )
- CARA : 'VECT_Y'
- VALE : (1. 0. 0.) )
-
- );
-%
-% DEFINITION DES CHARGES ET CONDITIONS LIMITES
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% DEFINITION DES TEMPERATURES NODALES EVOLUTIVES
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
- f_tp1_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
- f_tp2_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
- f_tp3_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
-
- chtem1_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles
- crayons)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp1_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION :(f_tp1_1,f_tp1_1,f_tp1_1))
- );
-
- chtem2_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles
- crayons)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp2_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION :(f_tp2_1,f_tp2_1,f_tp2_1))
- );
-
- chtem3_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp3_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION : (f_tp3_1,f_tp3_1,f_tp3_1))
- AFFE : ( GROUP_NO: crayons
- NOM_CMP : 'TEMP'
- FONCTION :f_tp3_1 )
- );
-
- chth_1 = CREA_RESU ( TYPE_RESU : 'EVOL_THER'
- NOM_CHAM : 'TEMP'
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 0. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 1000. )
- CHAM_GD : ( CHAM_NO : chtem2_1
- INST :2000. )
- CHAM_GD : ( CHAM_NO : chtem3_1
- INST : 3000. )
- CHAM_GD : ( CHAM_NO : chtem3_1
- INST : 4000. )
- CHAM_GD : ( CHAM_NO : chtem2_1
- INST : 5000. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 6000. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 7000. )
- );
-
-% Chargement: charges thermo-mecaniques
-% ----------------------------------------
-
- therm_1 = AFFE_CHAR_MECA ( MODELE: mo1
- TEMP_CALCULEE : chth_1
- );
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% DEFINITION DES CONDITIONS LIMITES
-% DES CONDITIONS DE CONTACT
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Chargement: pesanteur
-%
- pesant_1 = AFFE_CHAR_MECA ( MODELE : mo1
- PESANTEUR : (9.81 -1. 0. 0. )
- );
-
-%
-% Conditions aux limites
-%
- cl_per_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % embout inferieur encastrement
- DDL_IMPO : ( GROUP_NO : fixati
- DX : 0. DY:0. DZ : 0.
- DRX : 0. DRY : 0. DRZ : 0.
- )
- % embout inferieur appui simple
- DDL_IMPO : ( GROUP_NO : appui
- DX : 0.
- )
- % embout superieur liaison guidee
- DDL_IMPO : ( GROUP_NO : ebguide
- DY:0. DZ : 0.
- DRX : 0. DRY : 0. DRZ : 0.
- )
- % liaison systeme de maintien embout superieur
- DDL_IMPO : ( GROUP_NO : (lias_1, lias_2)
- DRX : 0.
- )
- % liaison systeme de maintien embout superieur
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DX' DDL_2 : 'DX'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DY' DDL_2 : 'DY'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DZ' DDL_2 : 'DZ'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DRY' DDL_2 : 'DRY'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DRZ' DDL_2 : 'DRZ'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- );
-%
- cl_ctc = AFFE_CHAR_MECA ( MODELE : mo1
-
-
- CONTACT : ( APPARIEMENT : 'NODAL'
- GROUP_MA_1 : eboinf
- GROUP_MA_2 : mcrbas
- VECT_NORM_2 : (-1. 0. 0.)
- )
- INFO : 1
- );
-%
-% Deplacement du systeme de maintien
-%
-cldi_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-
- cl_di_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % deplacement du systeme de maintien
- DDL_IMPO : ( GROUP_NO : main_sup
- DX : -1.
- )
- );
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% DEFINITION DES FORCES EXTERIEURES
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Fonction multiplicative de la force hydrodynamique normee
-%
-hydr_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-%
-% Profil des forces hydrodynamiques tubes guides a froid
-%
-
-
- hyfrtu_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 1.
- 5. 2. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Profil des forces hydrodynamiques crayon a froid
-%
-
-
- hyfrcr_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : (0. 1.
- 5. 2. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-
-%% Chargement : Forces hydrodynamiques
-%
- hydr_1 = AFFE_CHAR_MECA ( MODELE : mo1
-
- % embout superieur
- FORCE_COQUE : ( GROUP_MA : ebosup
- FX : 10. )
- % embout inferieur
- FORCE_COQUE : ( GROUP_MA : eboinf
- FX : 10. )
- % grille superieure
- FORCE_POUTRE : ( GROUP_MA : (gril10 )
- FX : 10. )
- % grille inferieure
- FORCE_POUTRE : ( GROUP_MA : (gril1 )
- FX : 10. )
- % grille de melange
- FORCE_POUTRE : ( GROUP_MA : (gril2 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril3 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril4 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril5 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril6 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril7 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril8 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril9 )
- FX : 10. )
- );
- toto_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
- fohydr_1 = AFFE_CHAR_MECA_F ( MODELE : mo1
-
- % tubes guides et tube d'instrumentation
- FORCE_POUTRE : ( GROUP_MA : (guid )
- FX : toto_1 )
- % crayons
- FORCE_POUTRE : ( GROUP_MA : cray
- FX : toto_1 )
- );
-%
-% Profil des forces d'Archimede tube guide
-%
-
-
- arfrtu_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Profil des forces d'Archimede crayon
-%
-
-
- arfrcr_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Fonction multiplicative de la force d'Archimede
-%
-arch_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-%
-
-%
-% Chargement : Forces d'Archimede
-% ----------------------------------------
-%
- arch_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % systeme de maintien
- FORCE_POUTRE : ( GROUP_MA : maintien
- FX : 10. )
- % embout superieur
- FORCE_COQUE : ( GROUP_MA : ebosup
- FX : 10. )
- % embout inferieur
- FORCE_COQUE : ( GROUP_MA : eboinf
- FX : 10. )
- % grille superieure
- FORCE_POUTRE : ( GROUP_MA : (gril10 )
- FX : 10. )
- % grille inferieure
- FORCE_POUTRE : ( GROUP_MA : (gril1 )
- FX : 10. )
- % grille de melange
- FORCE_POUTRE : ( GROUP_MA : (gril2 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril3 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril4 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril5 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril6 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril7 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril8 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril9 )
- FX : 10. )
- );
- foarch_1 = AFFE_CHAR_MECA_F ( MODELE : mo1
-
- % tubes guides et tube d'instrumentation
- FORCE_POUTRE : ( GROUP_MA : guid
- FX : arch_f1 )
- % crayons
- FORCE_POUTRE : ( GROUP_MA : cray
- FX :arch_f1 )
- );
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-
-%
-%
-%
-% definition de la liste d'instants
-%
- l_frig = DEFI_LIST_REEL( Debut: 0.0
- Intervalle : (Jusqu_a: 1000. Nombre: 100)
- );
-%
-% Inrterpretation des fonctions
-%
-f1=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f2=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f3=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f4=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f5=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f6=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f7=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f8=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f9=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f10=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-
- frig1 = CALC_FONC_INTERP ( FONCTION : f1
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig2 = CALC_FONC_INTERP ( FONCTION : f2
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig3 = CALC_FONC_INTERP ( FONCTION : f3
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig4 = CALC_FONC_INTERP ( FONCTION : f4
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig5 = CALC_FONC_INTERP ( FONCTION : f5
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig6 = CALC_FONC_INTERP ( FONCTION : f6
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig7 = CALC_FONC_INTERP ( FONCTION : f7
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig8 = CALC_FONC_INTERP ( FONCTION : f8
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig9 = CALC_FONC_INTERP ( FONCTION : f9
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig10= CALC_FONC_INTERP ( FONCTION : f10
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
-%
-% DEFINITION DU FLUX NEUTRONIQUE RADIAL
-
-flux_f1=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00
- 9.74520E+05 4.53280E+05
- 2.63880E+06 2.07785E+06
- 4.08780E+06 3.51279E+06
- 5.42844E+06 4.85677E+06
- 7.24500E+06 6.67627E+06
- 8.85348E+06 8.27977E+06
- 1.04609E+07 9.87261E+06
- 1.22029E+07 1.15869E+07
- 1.39446E+07 1.32952E+07
- 1.41437E+07 1.34902E+07
- 1.55632E+07 1.48753E+07
- 1.72361E+07 1.65069E+07
- 1.79482E+07 1.71992E+07
- 1.81901E+07 1.74334E+07
- 1.81937E+07 1.74352E+07
- 1.81973E+07 1.74352E+07
- 1.82009E+07 1.74352E+07
- )
- ) ;
-% Definition du flux axial pour le cycle 1
-
-fluxax1 = LIRE_FONCTION ( UNITE : 60
- PROL_GAUCHE : 'CONSTANT'
- PROL_DROIT : 'CONSTANT'
- );
-
- fly_1_1 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 3.8032834757835D-07
- -8.8200000000000D-02 3.8083689458689D-07
- -7.5600000000000D-02 3.8296082621083D-07
- -6.3000000000000D-02 3.8584009971510D-07
- -5.0400000000000D-02 3.8946100427350D-07
- -3.7800000000000D-02 3.9259455128205D-07
- -2.5200000000000D-02 3.9258457977208D-07
- -1.2600000000000D-02 3.9294106125356D-07
- 0. 3.9399554843305D-07
- 1.2600000000000D-02 3.9293233618234D-07
- 2.5200000000000D-02 3.9256712962963D-07
- 3.7800000000000D-02 3.9256712962963D-07
- 5.0400000000000D-02 3.8942610398860D-07
- 6.3000000000000D-02 3.8579522792023D-07
- 7.5600000000000D-02 3.8290972222222D-07
- 8.8200000000000D-02 3.8077706552707D-07
- 1.0080000000000D-01 3.8026103988604D-07
- ) ) ;
-
- fly_1_2 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 4.3595566239316D-07
- -8.8200000000000D-02 4.3866542022792D-07
- -7.5600000000000D-02 4.4331463675214D-07
- -6.3000000000000D-02 4.4911556267806D-07
- -5.0400000000000D-02 4.5750658831909D-07
- -3.7800000000000D-02 4.6647222222222D-07
- -2.5200000000000D-02 4.6002938034188D-07
- -1.2600000000000D-02 4.6004309116809D-07
- 0. 4.6686235754986D-07
- 1.2600000000000D-02 4.6003311965812D-07
- 2.5200000000000D-02 4.6000943732194D-07
- 3.7800000000000D-02 4.6643981481481D-07
- 5.0400000000000D-02 4.5746420940171D-07
- 6.3000000000000D-02 4.4906445868946D-07
- 7.5600000000000D-02 4.4325356125356D-07
- 8.8200000000000D-02 4.3859686609687D-07
- 1.0080000000000D-01 4.3587838319088D-07
- ) ) ;
-
- fly_1_3 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 4.9431891025641D-07
- -8.8200000000000D-02 5.0005128205128D-07
- -7.5600000000000D-02 5.1337197293447D-07
- -6.3000000000000D-02 5.2915313390313D-07
- -5.0400000000000D-02 5.3788069800570D-07
- -3.7800000000000D-02 5.3504629629630D-07
- -2.5200000000000D-02 5.3221189458689D-07
- -1.2600000000000D-02 5.3136431623932D-07
- 0. 5.3135870726496D-07
- 1.2600000000000D-02 5.3135309829060D-07
- 2.5200000000000D-02 5.3218696581197D-07
- 3.7800000000000D-02 5.3500827991453D-07
- 5.0400000000000D-02 5.3782959401709D-07
- 6.3000000000000D-02 5.2909205840456D-07
- 7.5600000000000D-02 5.1330217236467D-07
- 8.8200000000000D-02 4.9997150997151D-07
- 1.0080000000000D-01 4.9423165954416D-07
- ) ) ;
-
- fly_1_4 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 5.5489957264957D-07
- -8.8200000000000D-02 5.6477884615385D-07
- -7.5600000000000D-02 5.9007781339031D-07
- -6.3000000000000D-02 5.9726415598291D-07
- -5.0400000000000D-02 6.0445049857550D-07
- -3.7800000000000D-02 5.9840776353276D-07
- -2.5200000000000D-02 5.8440651709402D-07
- -1.2600000000000D-02 5.8263906695157D-07
- 0. 5.9153240740741D-07
- 1.2600000000000D-02 5.8262660256410D-07
- 2.5200000000000D-02 5.8438034188034D-07
- 3.7800000000000D-02 5.9836663105413D-07
- 5.0400000000000D-02 6.0439316239316D-07
- 6.3000000000000D-02 5.9719497863248D-07
- 7.5600000000000D-02 5.8999679487179D-07
- 8.8200000000000D-02 5.6469159544160D-07
- 1.0080000000000D-01 5.5480110398860D-07
- ) ) ;
-
- fly_1_5 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.1267200854701D-07
- -8.8200000000000D-02 6.2962357549858D-07
- -7.5600000000000D-02 6.5655413105413D-07
- -6.3000000000000D-02 6.6164583333333D-07
- -5.0400000000000D-02 6.5190242165242D-07
- -3.7800000000000D-02 6.5212678062678D-07
- -2.5200000000000D-02 6.3746616809117D-07
- -1.2600000000000D-02 6.3547435897436D-07
- 0. 6.4509686609687D-07
- 1.2600000000000D-02 6.3546064814815D-07
- 2.5200000000000D-02 6.3743625356125D-07
- 3.7800000000000D-02 6.5207941595442D-07
- 5.0400000000000D-02 6.5183885327635D-07
- 6.3000000000000D-02 6.6156980056980D-07
- 7.5600000000000D-02 6.5646563390313D-07
- 8.8200000000000D-02 6.2952386039886D-07
- 1.0080000000000D-01 6.1256356837607D-07
- ) ) ;
-
- fly_1_6 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.5755128205128D-07
- -8.8200000000000D-02 6.8336253561254D-07
- -7.5600000000000D-02 6.9012072649573D-07
- -6.3000000000000D-02 6.9687891737892D-07
- -5.0400000000000D-02 6.9362571225071D-07
- -3.7800000000000D-02 6.9074768518519D-07
- -2.5200000000000D-02 6.8786965811966D-07
- -1.2600000000000D-02 6.8586413817664D-07
- 0. 6.8585603632479D-07
- 1.2600000000000D-02 6.8584793447293D-07
- 2.5200000000000D-02 6.8783600427350D-07
- 3.7800000000000D-02 6.9069720441595D-07
- 5.0400000000000D-02 6.9355840455840D-07
- 6.3000000000000D-02 6.9679789886040D-07
- 7.5600000000000D-02 6.9002412749288D-07
- 8.8200000000000D-02 6.8325035612536D-07
- 1.0080000000000D-01 6.5743162393162D-07
- ) ) ;
-
- fly_1_7 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.9684526353276D-07
- -8.8200000000000D-02 7.1406606125356D-07
- -7.5600000000000D-02 7.3236502849003D-07
- -6.3000000000000D-02 7.2076442307692D-07
- -5.0400000000000D-02 7.1793500712251D-07
- -3.7800000000000D-02 7.2835648148148D-07
- -2.5200000000000D-02 7.1444747150997D-07
- -1.2600000000000D-02 7.1130893874644D-07
- 0. 7.2107727920228D-07
- 1.2600000000000D-02 7.1129398148148D-07
- 2.5200000000000D-02 7.1441257122507D-07
- 3.7800000000000D-02 7.2830288461538D-07
- 5.0400000000000D-02 7.1786396011396D-07
- 6.3000000000000D-02 7.2067841880342D-07
- 7.5600000000000D-02 7.3226157407407D-07
- 8.8200000000000D-02 7.1395138888889D-07
- 1.0080000000000D-01 6.9671812678063D-07
- ) ) ;
-
- fly_1_8 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.3679362535613D-07
- -8.8200000000000D-02 7.5423130341880D-07
- -7.5600000000000D-02 7.7215633903134D-07
- -6.3000000000000D-02 7.5865740740741D-07
- -5.0400000000000D-02 7.5547774216524D-07
- -3.7800000000000D-02 7.6662464387464D-07
- -2.5200000000000D-02 7.5088461538462D-07
- -1.2600000000000D-02 7.4313924501424D-07
- 0. 7.4863230056980D-07
- 1.2600000000000D-02 7.4312054843305D-07
- 2.5200000000000D-02 7.5084722222222D-07
- 3.7800000000000D-02 7.6656730769231D-07
- 5.0400000000000D-02 7.5540170940171D-07
- 6.3000000000000D-02 7.5856267806268D-07
- 7.5600000000000D-02 7.7204415954416D-07
- 8.8200000000000D-02 7.5410790598291D-07
- 1.0080000000000D-01 7.3665776353276D-07
- ) ) ;
-
- fly_1_9 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.7370940170940D-07
- -8.8200000000000D-02 8.0144764957265D-07
- -7.5600000000000D-02 8.0374358974359D-07
- -6.3000000000000D-02 8.0603952991453D-07
- -5.0400000000000D-02 8.0238372507123D-07
- -3.7800000000000D-02 7.9936672008547D-07
- -2.5200000000000D-02 7.9634971509972D-07
- -1.2600000000000D-02 7.8317361111111D-07
- 0. 7.8316426282051D-07
- 1.2600000000000D-02 7.8315491452991D-07
- 2.5200000000000D-02 7.9631107549858D-07
- 3.7800000000000D-02 7.9930689102564D-07
- 5.0400000000000D-02 8.0230270655271D-07
- 6.3000000000000D-02 8.0593856837607D-07
- 7.5600000000000D-02 8.0362580128205D-07
- 8.8200000000000D-02 8.0131303418803D-07
- 1.0080000000000D-01 7.7356356837607D-07
- ) ) ;
-
- fly_1_10 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.9424198717949D-07
- -8.8200000000000D-02 8.1225925925926D-07
- -7.5600000000000D-02 8.3075516381766D-07
- -6.3000000000000D-02 8.1540651709402D-07
- -5.0400000000000D-02 8.1131071937322D-07
- -3.7800000000000D-02 8.2297489316239D-07
- -2.5200000000000D-02 8.0577403846154D-07
- -1.2600000000000D-02 7.9717236467236D-07
- 0. 8.0284615384615D-07
- 1.2600000000000D-02 7.9715117521368D-07
- 2.5200000000000D-02 8.0573165954416D-07
- 3.7800000000000D-02 8.2291257122507D-07
- 5.0400000000000D-02 8.1122845441595D-07
- 6.3000000000000D-02 8.1530306267806D-07
- 7.5600000000000D-02 8.3063051994302D-07
- 8.8200000000000D-02 8.1211841168091D-07
- 1.0080000000000D-01 7.9408742877493D-07
- ) ) ;
-
- fly_1_11 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.1647845441595D-07
- -8.8200000000000D-02 8.3510648148148D-07
- -7.5600000000000D-02 8.5487873931624D-07
- -6.3000000000000D-02 8.3969088319088D-07
- -5.0400000000000D-02 8.3502920227920D-07
- -3.7800000000000D-02 8.4651014957265D-07
- -2.5200000000000D-02 8.2973931623932D-07
- -1.2600000000000D-02 8.2549269943020D-07
- 0. 8.3637909544160D-07
- 1.2600000000000D-02 8.2547275641026D-07
- 2.5200000000000D-02 8.2969319800570D-07
- 3.7800000000000D-02 8.4644408831909D-07
- 5.0400000000000D-02 8.3493945868946D-07
- 6.3000000000000D-02 8.3957995014245D-07
- 7.5600000000000D-02 8.5474786324786D-07
- 8.8200000000000D-02 8.3495690883191D-07
- 1.0080000000000D-01 8.1631641737892D-07
- ) ) ;
-
- fly_1_12 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.3948272792023D-07
- -8.8200000000000D-02 8.7002546296296D-07
- -7.5600000000000D-02 8.7608564814815D-07
- -6.3000000000000D-02 8.8214583333333D-07
- -5.0400000000000D-02 8.7589245014245D-07
- -3.7800000000000D-02 8.7128872863248D-07
- -2.5200000000000D-02 8.6668500712251D-07
- -1.2600000000000D-02 8.6321616809117D-07
- 0. 8.6320432692308D-07
- 1.2600000000000D-02 8.6319248575499D-07
- 2.5200000000000D-02 8.6663764245014D-07
- 3.7800000000000D-02 8.7121705840456D-07
- 5.0400000000000D-02 8.7579647435897D-07
- 6.3000000000000D-02 8.8202617521368D-07
- 7.5600000000000D-02 8.7594667022792D-07
- 8.8200000000000D-02 8.6986716524217D-07
- 1.0080000000000D-01 8.3931196581197D-07
- ) ) ;
-
- fly_1_13 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5508315527066D-07
- -8.8200000000000D-02 8.7546616809117D-07
- -7.5600000000000D-02 9.0944533475783D-07
- -6.3000000000000D-02 9.1292663817664D-07
- -5.0400000000000D-02 8.9653721509972D-07
- -3.7800000000000D-02 8.9547275641026D-07
- -2.5200000000000D-02 8.7405644586895D-07
- -1.2600000000000D-02 8.7004789886040D-07
- 0. 8.8226549145299D-07
- 1.2600000000000D-02 8.7002546296296D-07
- 2.5200000000000D-02 8.7400534188034D-07
- 3.7800000000000D-02 8.9539672364672D-07
- 5.0400000000000D-02 8.9643376068376D-07
- 6.3000000000000D-02 9.1279825498576D-07
- 7.5600000000000D-02 9.0929576210826D-07
- 8.8200000000000D-02 8.7530288461538D-07
- 1.0080000000000D-01 8.5490491452991D-07
- ) ) ;
-
- fly_1_14 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5798237179487D-07
- -8.8200000000000D-02 8.6880893874644D-07
- -7.5600000000000D-02 9.0299750712251D-07
- -6.3000000000000D-02 9.0948646723647D-07
- -5.0400000000000D-02 9.1597542735043D-07
- -3.7800000000000D-02 9.0500302706553D-07
- -2.5200000000000D-02 8.8214084757835D-07
- -1.2600000000000D-02 8.7779825498575D-07
- 0. 8.8993732193732D-07
- 1.2600000000000D-02 8.7777207977208D-07
- 2.5200000000000D-02 8.8208974358974D-07
- 3.7800000000000D-02 9.0492325498576D-07
- 5.0400000000000D-02 9.1586574074074D-07
- 6.3000000000000D-02 9.0935434472934D-07
- 7.5600000000000D-02 9.0284294871795D-07
- 8.8200000000000D-02 8.6864066951567D-07
- 1.0080000000000D-01 8.5779665242165D-07
- ) ) ;
-
- fly_1_15 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5773557692308D-07
- -8.8200000000000D-02 8.6180893874644D-07
- -7.5600000000000D-02 8.7862838319088D-07
- -6.3000000000000D-02 8.9924074074074D-07
- -5.0400000000000D-02 9.0872489316239D-07
- -3.7800000000000D-02 9.0174545940171D-07
- -2.5200000000000D-02 8.9476602564103D-07
- -1.2600000000000D-02 8.9122364672365D-07
- 0. 8.9120993589744D-07
- 1.2600000000000D-02 8.9119622507123D-07
- 2.5200000000000D-02 8.9471118233618D-07
- 3.7800000000000D-02 9.0166132478632D-07
- 5.0400000000000D-02 9.0861146723647D-07
- 6.3000000000000D-02 8.9910363247863D-07
- 7.5600000000000D-02 8.7847257834758D-07
- 8.8200000000000D-02 8.6163693019943D-07
- 1.0080000000000D-01 8.5754362535613D-07
- ) ) ;
-
- fly_1_16 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5903935185185D-07
- -8.8200000000000D-02 8.5690046296296D-07
- -7.5600000000000D-02 8.5831018518519D-07
- -6.3000000000000D-02 8.6167307692308D-07
- -5.0400000000000D-02 8.7125320512821D-07
- -3.7800000000000D-02 8.8563586182336D-07
- -2.5200000000000D-02 8.7089298433048D-07
- -1.2600000000000D-02 8.6842877492877D-07
- 0. 8.7942111823362D-07
- 1.2600000000000D-02 8.6840135327635D-07
- 2.5200000000000D-02 8.7083814102564D-07
- 3.7800000000000D-02 8.8554985754986D-07
- 5.0400000000000D-02 8.7113977920228D-07
- 6.3000000000000D-02 8.6153846153846D-07
- 7.5600000000000D-02 8.5815313390313D-07
- 8.8200000000000D-02 8.5672471509972D-07
- 1.0080000000000D-01 8.5884116809117D-07
- ) ) ;
-
- fly_1_17 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.6388675213675D-07
- -8.8200000000000D-02 8.5563782051282D-07
- -7.5600000000000D-02 8.5087019230769D-07
- -6.3000000000000D-02 8.4755965099715D-07
- -5.0400000000000D-02 8.4761698717949D-07
- -3.7800000000000D-02 8.5133636039886D-07
- -2.5200000000000D-02 8.4844088319088D-07
- -1.2600000000000D-02 8.4633689458689D-07
- 0. 8.4644658119658D-07
- 1.2600000000000D-02 8.4630947293447D-07
- 2.5200000000000D-02 8.4838479344729D-07
- 3.7800000000000D-02 8.5125160256410D-07
- 5.0400000000000D-02 8.4750480769231D-07
- 6.3000000000000D-02 8.4742378917379D-07
- 7.5600000000000D-02 8.5071064814815D-07
- 8.8200000000000D-02 8.5545584045584D-07
- 1.0080000000000D-01 8.6368108974359D-07
- ) ) ;
-
- fluxrd1 = DEFI_NAPPE (
- NOM_PARA : 'Z'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- PARA : (
- -1.0080000000000D-01
- -8.8200000000000D-02
- -7.5600000000000D-02
- -6.3000000000000D-02
- -5.0400000000000D-02
- -3.7800000000000D-02
- -2.5200000000000D-02
- -1.2600000000000D-02
- 0.
- 1.2600000000000D-02
- 2.5200000000000D-02
- 3.7800000000000D-02
- 5.0400000000000D-02
- 6.3000000000000D-02
- 7.5600000000000D-02
- 8.8200000000000D-02
- 1.0080000000000D-01
- )
- FONCTION : (
- fly_1_1
- fly_1_2
- fly_1_3
- fly_1_4
- fly_1_5
- fly_1_6
- fly_1_7
- fly_1_8
- fly_1_9
- fly_1_10
- fly_1_11
- fly_1_12
- fly_1_13
- fly_1_14
- fly_1_15
- fly_1_16
- fly_1_17
- )
- );
-%
-% DEFINITION DES MATERIAUX ET AFFECTATIONS
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE ****
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-
-
-% Famille assemblage : numero_fam
-%
-% Embout superieur
-
-e_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-nu_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-al_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
- mt_es = DEFI_MATERIAU ( ELAS_FO : ( E : e_es
- NU : nu_es
- ALPHA : al_es
- RHO : 7800.
- )
- );
-% Embout inferieur
-
-e_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-nu_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-al_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
- mt_ei = DEFI_MATERIAU ( ELAS_FO : ( E : e_ei
- NU : nu_ei
- ALPHA : al_ei
- RHO : 12.
- )
- );
- mt_rig = DEFI_MATERIAU ( ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0.)
- );
-% Fonction couple en fonction de drz pour la liaison grille/crayon
-
- fotrac= DEFI_FONCTION ( NOM_PARA : 'DRZ'
- VALE : ( 1. 1.
- 0. 0.
- 0. 0.
- 0. 0.
- )
- PROL_DROIT : 'LINEAIRE'
- PROL_GAUCHE: 'LINEAIRE' );
-
-
- mt_re1 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO:frig1
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re2 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig2
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re3 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig3
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re4 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig4
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re5 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig5
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re6 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig6
- EFFO_N_INIT :-35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re7 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig7
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re8 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig8
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re9 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO :frig9
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re10 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig10
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
-
-%%%% %%%%%%%%%%%%%%%%%%%%%%%%
-
-% Systeme de maintien
-
- e_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- nu_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- al_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- sy_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- ds_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- np_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mey_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mpy_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mez_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mpz_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (0. 1.
- 5. 2. )
- );
-
- cay_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- cby_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- caz_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- cbz_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- mpx_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-mt_ma = DEFI_MATERIAU ( ELAS_FO : ( E : e_ma
- NU : nu_ma
- ALPHA : al_ma
- RHO : 7800. )
- ECRO_LINE_FO: ( D_SIGM_EPSI:ds_ma
- SY : sy_ma )
- VMIS_POUTRE_FO: ( NP : np_ma
- MEY: mey_ma
- MPY: mpy_ma
- CAY: cay_ma
- CBY: cby_ma
- MEZ: mez_ma
- MPZ: mpz_ma
- CAZ: caz_ma
- CBZ: cbz_ma
- MPX: mpx_ma )
- );
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE ****
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-
-% Grille
-
-
-
-e_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-e_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-nu_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-nu_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-% Tube guide
-
-e_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2.
- )
- );
-
-nu_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-
-
-
-% Crayon
-
-e_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2.
- )
- );
-
-nu_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-
-% GRANDISSEMENT DES GRILLES
-
-
-
-% Grilles extremes 1 et 10
-
-mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre
- NU : nu_gre
- ALPHA : al_gre
- RHO : 7800. )
- GRAN_IRRA:( FLUX_L :fluxax1
- FLUX_TN :fluxrd1
- FONC_MULT:flux_f1
- A : 0.
- S : 1. )
- LEMAITRE :( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 1. )
- );
-
-% Grilles de melange
-
-mt_grm1= DEFI_MATERIAU ( ELAS_FO : ( E : e_grm
- NU : nu_grm
- ALPHA : al_grm
- RHO : 7800. )
- GRAN_IRRA: ( FLUX_L :fluxax1
- FLUX_TN :fluxrd1
- FONC_MULT:flux_f1
- A : 0.
- S : 1. )
- LEMAITRE : (N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2. )
- );
-
-% Definition des materiaux viscoplastiques ( tubes et crayons )
-
-
-mt_tu1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_tu
- NU : nu_tu
- ALPHA : al_tu
- RHO : 7800. )
- GRAN_IRRA: ( FLUX_L : fluxax1
- FLUX_TN : fluxrd1
- FONC_MULT: flux_f1
- A : 0.
- S : 1.)
- LEMAITRE : ( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2.)
- );
-
-
- mt_cr1 = DEFI_MATERIAU (ELAS_FO : ( E : e_cr
- NU : nu_cr
- ALPHA : al_cr
- RHO :7800. )
- GRAN_IRRA: ( FLUX_L : fluxax1
- FLUX_TN : fluxrd1
- FONC_MULT: flux_f1
- A : 0.
- S : 1.)
- LEMAITRE : ( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2.)
-
- );
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% AFFECTATION DES MATERIAUX A CHAUD - CYCLE
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
- a_mat_1 = AFFE_MATERIAU ( MAILLAGE : ma1
-
- % systeme de maintien
- AFFE : ( GROUP_MA : (mainti_y, mainti_z)
- MATER : mt_ma
- TEMP_REF: 100.
- )
- % grilles de melange
- AFFE : ( GROUP_MA : gril_i
- MATER : mt_grm1
- TEMP_REF: 100.
- )
- % grilles de extremes
- AFFE : ( GROUP_MA : gril_e
- MATER : mt_gre1
- TEMP_REF: 100.
- )
- % crayons combustibles
- AFFE : ( GROUP_MA : cray
- MATER : mt_cr1
- TEMP_REF: 100.
- )
- % tubes guides
- AFFE : ( GROUP_MA : guid
- MATER : mt_tu1
- TEMP_REF: 100.
- )
- % embout inferieur
- AFFE : ( GROUP_MA : eboinf
- MATER : mt_ei
- TEMP_REF: 100.
- )
- %pieds
- AFFE : ( GROUP_MA :(pi_ple, pi_tro)
- MATER : mt_ei
- TEMP_REF: 100.
- )
-
- % embout superieur
- AFFE : ( GROUP_MA : ebosup
- MATER : mt_es
- TEMP_REF: 100.
- )
- % liaison grille tubes guides
- AFFE : ( GROUP_MA : rigid
- MATER : mt_rig
- TEMP_REF: 100.
- )
-
- % liaison grille crayon
- AFFE : ( GROUP_MA : ela1
- MATER : mt_re1
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela2
- MATER : mt_re2
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela3
- MATER : mt_re3
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela4
- MATER : mt_re4
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela5
- MATER : mt_re5
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela6
- MATER : mt_re6
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela7
- MATER : mt_re7
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela8
- MATER : mt_re8
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela9
- MATER : mt_re9
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela10
- MATER : mt_re10
- TEMP_REF: 100.
- )
- );
-%
-
-
- L_INST_1 = DEFI_LIST_REEL(
- DEBUT: 0.0
- INTERVALLE : (JUSQU_A: 0.5 NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 1000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 2000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 3000. NOMBRE: 5 )
- INTERVALLE : (JUSQU_A: 4000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 5000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 6000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 7000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 8000. NOMBRE: 1 ));
-
- L_ARCH_1 = DEFI_LIST_REEL(
- DEBUT: 0.0
- INTERVALLE : (JUSQU_A: 0.5 NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 1000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 2000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 3000. NOMBRE: 5 )
- INTERVALLE : (JUSQU_A: 4000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 5000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 6000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 7000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 8000. NOMBRE: 1 ));
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% CALCUL PHASE I A V DU CYCLE 1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-
- RESU = STAT_NON_LINE( MODELE : mo1
- CHAM_MATER : a_mat_1
- CARA_ELEM : cara1
- EXCIT :( CHARGE : arch_1 FONC_MULT: arch_f1 )
- EXCIT :( CHARGE : foarch_1 FONC_MULT: arch_f1 )
- EXCIT :( CHARGE : hydr_1 FONC_MULT: hydr_f1 )
- EXCIT :( CHARGE : fohydr_1 FONC_MULT: hydr_f1 )
- EXCIT :( CHARGE : cl_di_1 FONC_MULT: cldi_f1 )
- EXCIT :( CHARGE : cl_per_1 )
- EXCIT :( CHARGE : cl_ctc )
- EXCIT :( CHARGE : pesant_1 )
- EXCIT :( CHARGE : therm_1 )
- COMP_INCR :(RELATION :'VMIS_POU_LINE'
- GROUP_MA : maintien)
- COMP_INCR :(RELATION :'ASSE_COMBU'
- GROUP_MA : (crayons tub_guid ))
- COMP_INCR :( RELATION :'DIS_CONTACT'
- GROUP_MA : li_gr_cr)
- COMP_INCR :(RELATION :'ELAS'
- COQUE_NCOU : 1
- GROUP_MA :(embo_inf embo_sup pieds
- grilles li_gr_gu ))
-
- INCREMENT :( LIST_INST : l_inst_1
- NUME_INST_FIN : 20
- )
-
- NEWTON : ( MATRICE : 'TANGENTE'
- REAC_ITER : 1 )
- RECH_LINEAIRE : (ITER_LINE_MAXI: 3)
- CONVERGENCE : (RESI_GLOB_RELA: 1.E-4
- ITER_GLOB_MAXI: 50
- ITER_INTE_MAXI: 500
- ARRET : 'OUI' )
- SOLVEUR : ( METHODE : 'MULT_FRONT'
- RENUM : 'MD' )
- PARM_THETA : 0.5
- ARCHIVAGE : ( LIST_INST : l_arch_1)
- );
-
-fin();
+++ /dev/null
-# MODIF DATE 11/12/2001 AUTEUR DURAND C.DURAND
-# TITRE GUIDE D'ONDE A SORTIE ANECHOIQUE (ONDES PLANES) E.F. CLASSIQUES
-# 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.
-# ======================================================================
-# MODELISATION 'ACOUSTIQUE' AVEC ELEMENTS HEXA20 ET FACE8
-# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES
-#
-
-DEBUT(CODE=_F( NOM = 'AHLV100A') )
-
-F=500.
-
-MAIL=LIRE_MAILLAGE( )
-
-AIR=DEFI_MATERIAU( FLUIDE=_F( RHO = 1.3, CELE_C = ('RI',343.,0.,)))
-
-CHAMPMAT=AFFE_MATERIAU( MAILLAGE=MAIL,
- AFFE=_F( TOUT = 'OUI', MATER = AIR) )
-
-GUIDE=AFFE_MODELE( MAILLAGE=MAIL, VERIF='MAILLE',
- AFFE=_F( TOUT = 'OUI', MODELISATION = '3D',
- PHENOMENE = 'ACOUSTIQUE') )
-
-CHARACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- VITE_FACE=_F( GROUP_MA = 'ENTREE', VNOR = ('RI',0.014,0.,)))
-
-IMPEACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- IMPE_FACE=_F( GROUP_MA = 'SORTIE', IMPE = ('RI',445.9,0.,)))
-
-MACRO_MATR_ASSE(
- MODELE=GUIDE, CHARGE=IMPEACOU,
- CHAM_MATER=CHAMPMAT,
- NUME_DDL=CO("NUM"),MATR_ASSE=(
- _F( MATRICE = CO("MATASK"), OPTION = 'RIGI_ACOU'),
- _F( MATRICE = CO("MATASM"), OPTION = 'MASS_ACOU'),
- _F( MATRICE = CO("MATASI"), OPTION = 'AMOR_ACOU'))
- )
-
-#
-
-VECTELEM=CALC_VECT_ELEM( OPTION='CHAR_ACOU', CHAM_MATER=CHAMPMAT,
- CHARGE=CHARACOU )
-
-#
-# IMPRESSION DU VECT_ELEM COMPLEXE VECTELEM SELON LE GRAIN MAILLE
-#
-
-IMPR_MATRICE( MATR_ELEM=_F( MATRICE = VECTELEM,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'MAILLE'))
-
-VECTASS=ASSE_VECTEUR( VECT_ELEM=VECTELEM, NUME_DDL=NUM )
-
-#
-# ____________________CALCUL DES MODES_________________________________
-#
-
-MATASKR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASK, PARTIE = 'REEL', COEF_R = 1.))
-
-MATASMR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASM, PARTIE = 'REEL', COEF_R = 1.))
-
-#
-
-MODES=MODE_ITER_SIMULT( MATR_A=MATASKR,
- MATR_B=MATASMR,
- CALC_FREQ=_F( OPTION = 'BANDE',
- FREQ = ( 1., 1000.,))
- )
-
-TEST_RESU(RESU=(_F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 1, VALE = 171.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 2, VALE = 343.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 3, VALE = 514.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-2,
- NUME_ORDRE = 4, VALE = 686.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 5, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 6, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 7, VALE = 874.482),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 8, VALE = 923.556))
- )
-
-# ----------------------CALCUL DECOMPOSE-------------------------------
-#
-
-MATRES=COMB_MATR_ASSE( COMB_C=( _F( MATR_ASSE = MATASK,
- COEF_R = 1.),
- _F( MATR_ASSE = MATASM,
- COEF_R = -9869604.4),
- _F( MATR_ASSE = MATASI,
- COEF_C = ('RI',0.,3141.5926,)))
- )
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN NOEUD
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'NOEUD',
- OPTION = 'LIGNE'))
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN VALEUR
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'VALEUR',
- OPTION = 'LIGNE'))
-
-VECRES=COMB_CHAM_NO( COMB_C=_F( CHAM_NO = VECTASS,
- COEF_C = ('RI',0.,-3141.5926,))
- )
-
-MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES )
-
-VECRES=RESO_LDLT( reuse=VECRES, MATR_FACT=MATRES,
- CHAM_NO=VECRES
- )
-
-TEST_RESU(CHAM_NO=(
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-CHNODBEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-#
-
-PREEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PIMAG=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-#-----------------------CALCUL HARMONIQUE-------------------------------
-
-
-PRESHARM=DYNA_LINE_HARM( MATR_MASS=MATASM, MATR_RIGI=MATASK,
- MATR_AMOR=MATASI,
- FREQ=F,
- EXCIT=_F( VECT_ASSE = VECTASS, COEF_MULT = -1.,
- PUIS_PULS = 1, PHAS_DEG = 90.))
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_ACTI'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_REAC'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3,
- CRITERE = 'RELATIF'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-FIN()
-#
-#
+++ /dev/null
-"""
- Exemple d'utilisation d'un générateur au format asterv5
-
- Dans un premier temps on importe un catalogue
- de définition contenu dans un module et on le valide ::
-
- import cata
- from cata import JdC
- cr=JdC.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit un jeu de commandes
- a partir d'une chaine de caractères et on vérifie sa
- conformité.
-"""
-
-import sys
-sys.path[:0]=['../..','../../..']
-
-from Cata import cata
-
-cr=cata.JdC.report()
-print cr
-
-f=open('ahlv100a.comm','r')
-text=f.read()
-f.close()
-
-j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a")
-
-j.compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.exec_compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-cr=j.report()
-if not cr.estvide():
- print cr
- sys.exit()
-
-# On récupère les plugins de la famille generator
-import generator
-
-g=generator.plugins['asterv5']()
-print g.gener(j,format='beautifie')
-g.writefile('titi.comm')
-
+++ /dev/null
-
-
-DEBUT(CODE:(NOM:'AHLV100A'));
-
-MAIL=LIRE_MAILLAGE();
-
-AIR=DEFI_MATERIAU(FLUIDE:(RHO:1.3
- CELE_C:('RI',343.0,0.0)));
-
-CHAMPMAT=AFFE_MATERIAU(AFFE:(MATER:AIR
- TOUT:'OUI')
- MAILLAGE:MAIL);
-
-GUIDE=AFFE_MODELE(MAILLAGE:MAIL
- VERIF:'MAILLE'
- AFFE:(TOUT:'OUI'
- PHENOMENE:'ACOUSTIQUE'
- MODELISATION:'3D'));
-
-CHARACOU=AFFE_CHAR_ACOU(MODELE:GUIDE
- VITE_FACE:(VNOR:('RI',0.014,0.0)
- GROUP_MA:ENTREE));
-
-IMPEACOU=AFFE_CHAR_ACOU(MODELE:GUIDE
- IMPE_FACE:(IMPE:('RI',445.89999999999998,0.0)
- GROUP_MA:SORTIE));
-
-MACRO_MATR_ASSE(CHAM_MATER:CHAMPMAT
- MATR_ASSE:(MATRICE:MATASK
- OPTION:'RIGI_ACOU')
- MATR_ASSE:(MATRICE:MATASM
- OPTION:'MASS_ACOU')
- MATR_ASSE:(MATRICE:MATASI
- OPTION:'AMOR_ACOU')
- NUME_DDL:NUM
- MODELE:GUIDE
- CHARGE:IMPEACOU);
-
-VECTELEM=CALC_VECT_ELEM(OPTION:'CHAR_ACOU'
- CHAM_MATER:CHAMPMAT
- CHARGE:CHARACOU);
-
-IMPR_MATRICE(MATR_ELEM:(GRAIN:'MAILLE'
- MATRICE:VECTELEM
- FORMAT:'RESULTAT'
- FICHIER:'RESULTAT'));
-
-VECTASS=ASSE_VECTEUR(VECT_ELEM:VECTELEM
- NUME_DDL:NUM);
-
-MATASKR=COMB_MATR_ASSE(COMB_R:(PARTIE:'REEL'
- MATR_ASSE:MATASK
- COEF_R:1.0));
-
-MATASMR=COMB_MATR_ASSE(COMB_R:(PARTIE:'REEL'
- MATR_ASSE:MATASM
- COEF_R:1.0));
-
-MODES=MODE_ITER_SIMULT(MATR_A:MATASKR
- MATR_B:MATASMR
- CALC_FREQ:(OPTION:'BANDE'
- FREQ:(1.0,1000.0)));
-
-TEST_RESU(RESU:(RESULTAT:MODES
- PRECISION:1.E-4
- CRITERE:'RELATIF'
- VALE:171.5
- NUME_ORDRE:1
- PARA:'FREQ')
- RESU:(RESULTAT:MODES
- PRECISION:1.E-4
- CRITERE:'RELATIF'
- VALE:343.0
- NUME_ORDRE:2
- PARA:'FREQ')
- RESU:(RESULTAT:MODES
- PRECISION:1.E-3
- CRITERE:'RELATIF'
- VALE:514.5
- NUME_ORDRE:3
- PARA:'FREQ')
- RESU:(RESULTAT:MODES
- PRECISION:1.E-2
- CRITERE:'RELATIF'
- VALE:686.0
- NUME_ORDRE:4
- PARA:'FREQ')
- RESU:(RESULTAT:MODES
- PRECISION:1.E-3
- CRITERE:'RELATIF'
- VALE:857.5
- NUME_ORDRE:5
- PARA:'FREQ')
- RESU:(RESULTAT:MODES
- PRECISION:5.0000000000000001E-3
- CRITERE:'RELATIF'
- VALE:857.5
- NUME_ORDRE:6
- PARA:'FREQ')
- RESU:(RESULTAT:MODES
- PRECISION:5.0000000000000001E-3
- CRITERE:'RELATIF'
- VALE:874.48199999999997
- NUME_ORDRE:7
- PARA:'FREQ')
- RESU:(RESULTAT:MODES
- PRECISION:5.0000000000000001E-3
- CRITERE:'RELATIF'
- VALE:923.55600000000004
- NUME_ORDRE:8
- PARA:'FREQ'));
-
-MATRES=COMB_MATR_ASSE(COMB_C:(MATR_ASSE:MATASK
- COEF_R:1.0)
- COMB_C:(MATR_ASSE:MATASM
- COEF_R:-9.8696044000000004E6)
- COMB_C:(COEF_C:('RI',0.0,3141.5925999999999)
- MATR_ASSE:MATASI));
-
-IMPR_MATRICE(MATR_ASSE:(GRAIN:'NOEUD'
- MATRICE:MATRES
- FORMAT:'RESULTAT'
- OPTION:'LIGNE'
- FICHIER:'RESULTAT'));
-
-IMPR_MATRICE(MATR_ASSE:(GRAIN:'VALEUR'
- MATRICE:MATRES
- FORMAT:'RESULTAT'
- OPTION:'LIGNE'
- FICHIER:'RESULTAT'));
-
-VECRES=COMB_CHAM_NO(COMB_C:(COEF_C:('RI',0.0,-3141.5925999999999)
- CHAM_NO:VECTASS));
-
-&MATRES=FACT_LDLT(MATR_ASSE:MATRES);
-
-&VECRES=RESO_LDLT(MATR_FACT:MATRES
- CHAM_NO:VECRES);
-
-TEST_RESU(CHAM_NO:(CHAM_GD:VECRES
- NOM_CMP:'PRES'
- VALE_C:('RI',-6.2426000000000004,0.0)
- NOEUD:NO1)
- CHAM_NO:(CHAM_GD:VECRES
- NOM_CMP:'PRES'
- VALE_C:('RI',-6.2426000000000004,0.0)
- NOEUD:NO780)
- CHAM_NO:(CHAM_GD:VECRES
- NOM_CMP:'PRES'
- VALE_C:('RI',6.0236799999999997,1.6387)
- NOEUD:NO751)
- CHAM_NO:(CHAM_GD:VECRES
- NOM_CMP:'PRES'
- VALE_C:('RI',6.0236799999999997,1.6387)
- NOEUD:NO763));
-
-CHNODBEL=CALC_CHAM_ELEM(MODELE:GUIDE
- CHAM_MATER:CHAMPMAT
- OPTION:'PRES_ELNO_DBEL'
- PRES:VECRES);
-
-TEST_RESU(CHAM_ELEM:(CHAM_GD:CHNODBEL
- MAILLE:MA1
- VALE:109.90000000000001
- NOM_CMP:'DB'
- NOEUD:NO1)
- CHAM_ELEM:(CHAM_GD:CHNODBEL
- MAILLE:MA1
- VALE:109.90000000000001
- NOM_CMP:'DB'
- NOEUD:NO780)
- CHAM_ELEM:(CHAM_GD:CHNODBEL
- MAILLE:MA57
- VALE:109.90000000000001
- NOM_CMP:'DB'
- NOEUD:NO751)
- CHAM_ELEM:(CHAM_GD:CHNODBEL
- MAILLE:MA57
- VALE:109.90000000000001
- NOM_CMP:'DB'
- NOEUD:NO763));
-
-PREEL=CALC_CHAM_ELEM(MODELE:GUIDE
- CHAM_MATER:CHAMPMAT
- OPTION:'PRES_ELNO_REEL'
- PRES:VECRES);
-
-TEST_RESU(CHAM_ELEM:(CHAM_GD:PREEL
- MAILLE:MA1
- VALE:-6.2426000000000004
- NOM_CMP:'PRES'
- NOEUD:NO1)
- CHAM_ELEM:(CHAM_GD:PREEL
- MAILLE:MA1
- VALE:-6.2426000000000004
- NOM_CMP:'PRES'
- NOEUD:NO780)
- CHAM_ELEM:(CHAM_GD:PREEL
- MAILLE:MA57
- VALE:6.0236799999999997
- NOM_CMP:'PRES'
- NOEUD:NO751)
- CHAM_ELEM:(CHAM_GD:PREEL
- MAILLE:MA57
- VALE:6.0236799999999997
- NOM_CMP:'PRES'
- NOEUD:NO763));
-
-PIMAG=CALC_CHAM_ELEM(MODELE:GUIDE
- CHAM_MATER:CHAMPMAT
- OPTION:'PRES_ELNO_IMAG'
- PRES:VECRES);
-
-TEST_RESU(CHAM_ELEM:(CHAM_GD:PIMAG
- MAILLE:MA1
- VALE:0.0
- NOM_CMP:'PRES'
- CRITERE:'ABSOLU'
- NOEUD:NO1)
- CHAM_ELEM:(CHAM_GD:PIMAG
- MAILLE:MA1
- VALE:0.0
- NOM_CMP:'PRES'
- CRITERE:'ABSOLU'
- NOEUD:NO780)
- CHAM_ELEM:(CHAM_GD:PIMAG
- MAILLE:MA57
- VALE:1.6387
- PRECISION:3.3E-3
- NOM_CMP:'PRES'
- NOEUD:NO751)
- CHAM_ELEM:(CHAM_GD:PIMAG
- MAILLE:MA57
- VALE:1.6387
- PRECISION:3.3E-3
- NOM_CMP:'PRES'
- NOEUD:NO763));
-
-PRESHARM=DYNA_LINE_HARM(MATR_MASS:MATASM
- MATR_AMOR:MATASI
- FREQ:500.0
- MATR_RIGI:MATASK
- EXCIT:(PUIS_PULS:1
- VECT_ASSE:VECTASS
- PHAS_DEG:90.0
- COEF_MULT:-1.0));
-
-TEST_RESU(RESU:(NOM_CHAM:'PRES'
- RESULTAT:PRESHARM
- NOEUD:NO1
- VALE_C:('RI',-6.2426000000000004,0.0)
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES'
- RESULTAT:PRESHARM
- NOEUD:NO780
- VALE_C:('RI',-6.2426000000000004,0.0)
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES'
- RESULTAT:PRESHARM
- NOEUD:NO751
- VALE_C:('RI',6.0236799999999997,1.6387)
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES'
- RESULTAT:PRESHARM
- NOEUD:NO763
- VALE_C:('RI',6.0236799999999997,1.6387)
- NOM_CMP:'PRES'
- NUME_ORDRE:1));
-
-&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM
- CHAM_MATER:CHAMPMAT
- MODELE:GUIDE
- OPTION:'INTE_ELNO_ACTI'
- TOUT_ORDRE:'OUI');
-
-TEST_RESU(RESU:(NOM_CHAM:'INTE_ELNO_ACTI'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO1
- PRECISION:0.029999999999999999
- VALE:0.043700000000000003
- NOM_CMP:'INTX'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'INTE_ELNO_ACTI'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO780
- PRECISION:0.029999999999999999
- VALE:0.043700000000000003
- NOM_CMP:'INTX'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'INTE_ELNO_ACTI'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO751
- PRECISION:0.029999999999999999
- VALE:0.043700000000000003
- NOM_CMP:'INTX'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'INTE_ELNO_ACTI'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO763
- PRECISION:0.029999999999999999
- VALE:0.043700000000000003
- NOM_CMP:'INTX'
- NUME_ORDRE:1));
-
-&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM
- CHAM_MATER:CHAMPMAT
- MODELE:GUIDE
- OPTION:'INTE_ELNO_REAC'
- TOUT_ORDRE:'OUI');
-
-TEST_RESU(RESU:(NOM_CHAM:'INTE_ELNO_REAC'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO1
- PRECISION:3.5E-4
- CRITERE:'ABSOLU'
- VALE:0.0
- NOM_CMP:'INTX'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'INTE_ELNO_REAC'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO780
- PRECISION:3.5E-4
- CRITERE:'ABSOLU'
- VALE:0.0
- NOM_CMP:'INTX'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'INTE_ELNO_REAC'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO751
- PRECISION:3.5E-4
- CRITERE:'ABSOLU'
- VALE:0.0
- NOM_CMP:'INTX'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'INTE_ELNO_REAC'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO763
- PRECISION:3.5E-4
- CRITERE:'ABSOLU'
- VALE:0.0
- NOM_CMP:'INTX'
- NUME_ORDRE:1));
-
-&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM
- CHAM_MATER:CHAMPMAT
- MODELE:GUIDE
- OPTION:'PRES_ELNO_DBEL'
- TOUT_ORDRE:'OUI');
-
-TEST_RESU(RESU:(NOM_CHAM:'PRES_ELNO_DBEL'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO1
- VALE:109.90000000000001
- NOM_CMP:'DB'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_DBEL'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO780
- VALE:109.90000000000001
- NOM_CMP:'DB'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_DBEL'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO751
- VALE:109.90000000000001
- NOM_CMP:'DB'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_DBEL'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO763
- VALE:109.90000000000001
- NOM_CMP:'DB'
- NUME_ORDRE:1));
-
-&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM
- CHAM_MATER:CHAMPMAT
- MODELE:GUIDE
- OPTION:'PRES_ELNO_REEL'
- TOUT_ORDRE:'OUI');
-
-TEST_RESU(RESU:(NOM_CHAM:'PRES_ELNO_REEL'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO1
- VALE:-6.2426000000000004
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_REEL'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO780
- VALE:-6.2426000000000004
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_REEL'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO751
- VALE:6.0236799999999997
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_REEL'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO763
- VALE:6.0236799999999997
- NOM_CMP:'PRES'
- NUME_ORDRE:1));
-
-&PRESHARM=CALC_ELEM(RESULTAT:PRESHARM
- CHAM_MATER:CHAMPMAT
- MODELE:GUIDE
- OPTION:'PRES_ELNO_IMAG'
- TOUT_ORDRE:'OUI');
-
-TEST_RESU(RESU:(NOM_CHAM:'PRES_ELNO_IMAG'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO1
- CRITERE:'ABSOLU'
- VALE:0.0
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_IMAG'
- RESULTAT:PRESHARM
- MAILLE:MA1
- NOEUD:NO780
- CRITERE:'ABSOLU'
- VALE:0.0
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_IMAG'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO751
- PRECISION:3.3E-3
- CRITERE:'RELATIF'
- VALE:1.6387
- NOM_CMP:'PRES'
- NUME_ORDRE:1)
- RESU:(NOM_CHAM:'PRES_ELNO_IMAG'
- RESULTAT:PRESHARM
- MAILLE:MA57
- NOEUD:NO763
- PRECISION:3.3E-3
- VALE:1.6387
- NOM_CMP:'PRES'
- NUME_ORDRE:1));
-
-FIN();
+++ /dev/null
-"""
- Cet exemple montre :
- - la création d'une définition de mot-clé facteur comportant un mot-clé simple
- - sa vérification (report)
- - la création d'un mot-clé facteur valide
- - sa vérification (report)
-"""
-import sys
-sys.path[:0]=['../..']
-
-import Accas
-from Accas import SIMP,FACT
-
-a=FACT(b=SIMP(typ='I'))
-
-cr=a.report()
-if cr.estvide():
- print "Verification sans erreur"
-else:
- print cr
-
-o=a({'b':1},'mcf1',None)
-print o
-print o.report()
+++ /dev/null
-# MODIF DATE 11/12/2001 AUTEUR DURAND C.DURAND
-# TITRE GUIDE D'ONDE A SORTIE ANECHOIQUE (ONDES PLANES) E.F. CLASSIQUES
-# 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.
-# ======================================================================
-# MODELISATION 'ACOUSTIQUE' AVEC ELEMENTS HEXA20 ET FACE8
-# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES
-#
-
-DEBUT(CODE=_F( NOM = 'AHLV100A') )
-
-F=500.
-
-MAIL=LIRE_MAILLAGE( )
-
-AIR=DEFI_MATERIAU( FLUIDE=_F( RHO = 1.3, CELE_C = ('RI',343.,0.,)))
-
-CHAMPMAT=AFFE_MATERIAU( MAILLAGE=MAIL,
- AFFE=_F( TOUT = 'OUI', MATER = AIR) )
-
-GUIDE=AFFE_MODELE( MAILLAGE=MAIL, VERIF='MAILLE',
- AFFE=_F( TOUT = 'OUI', MODELISATION = '3D',
- PHENOMENE = 'ACOUSTIQUE') )
-
-CHARACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- VITE_FACE=_F( GROUP_MA = 'ENTREE', VNOR = ('RI',0.014,0.,)))
-
-IMPEACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- IMPE_FACE=_F( GROUP_MA = 'SORTIE', IMPE = ('RI',445.9,0.,)))
-
-MACRO_MATR_ASSE(
- MODELE=GUIDE, CHARGE=IMPEACOU,
- CHAM_MATER=CHAMPMAT,
- NUME_DDL=CO("NUM"),MATR_ASSE=(
- _F( MATRICE = CO("MATASK"), OPTION = 'RIGI_ACOU'),
- _F( MATRICE = CO("MATASM"), OPTION = 'MASS_ACOU'),
- _F( MATRICE = CO("MATASI"), OPTION = 'AMOR_ACOU'))
- )
-
-#
-
-VECTELEM=CALC_VECT_ELEM( OPTION='CHAR_ACOU', CHAM_MATER=CHAMPMAT,
- CHARGE=CHARACOU )
-
-#
-# IMPRESSION DU VECT_ELEM COMPLEXE VECTELEM SELON LE GRAIN MAILLE
-#
-
-IMPR_MATRICE( MATR_ELEM=_F( MATRICE = VECTELEM,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'MAILLE'))
-
-VECTASS=ASSE_VECTEUR( VECT_ELEM=VECTELEM, NUME_DDL=NUM )
-
-#
-# ____________________CALCUL DES MODES_________________________________
-#
-
-MATASKR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASK, PARTIE = 'REEL', COEF_R = 1.))
-
-MATASMR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASM, PARTIE = 'REEL', COEF_R = 1.))
-
-#
-
-MODES=MODE_ITER_SIMULT( MATR_A=MATASKR,
- MATR_B=MATASMR,
- CALC_FREQ=_F( OPTION = 'BANDE',
- FREQ = ( 1., 1000.,))
- )
-
-TEST_RESU(RESU=(_F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 1, VALE = 171.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 2, VALE = 343.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 3, VALE = 514.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-2,
- NUME_ORDRE = 4, VALE = 686.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 5, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 6, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 7, VALE = 874.482),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 8, VALE = 923.556))
- )
-
-# ----------------------CALCUL DECOMPOSE-------------------------------
-#
-
-MATRES=COMB_MATR_ASSE( COMB_C=( _F( MATR_ASSE = MATASK,
- COEF_R = 1.),
- _F( MATR_ASSE = MATASM,
- COEF_R = -9869604.4),
- _F( MATR_ASSE = MATASI,
- COEF_C = ('RI',0.,3141.5926,)))
- )
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN NOEUD
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'NOEUD',
- OPTION = 'LIGNE'))
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN VALEUR
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'VALEUR',
- OPTION = 'LIGNE'))
-
-VECRES=COMB_CHAM_NO( COMB_C=_F( CHAM_NO = VECTASS,
- COEF_C = ('RI',0.,-3141.5926,))
- )
-
-MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES )
-
-VECRES=RESO_LDLT( reuse=VECRES, MATR_FACT=MATRES,
- CHAM_NO=VECRES
- )
-
-TEST_RESU(CHAM_NO=(
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-CHNODBEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-#
-
-PREEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PIMAG=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-#-----------------------CALCUL HARMONIQUE-------------------------------
-
-
-PRESHARM=DYNA_LINE_HARM( MATR_MASS=MATASM, MATR_RIGI=MATASK,
- MATR_AMOR=MATASI,
- FREQ=F,
- EXCIT=_F( VECT_ASSE = VECTASS, COEF_MULT = -1.,
- PUIS_PULS = 1, PHAS_DEG = 90.))
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_ACTI'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_REAC'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3,
- CRITERE = 'RELATIF'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-FIN()
-#
-#
+++ /dev/null
-"""
- Construction d'un item JDC
-"""
-
-import prefs
-
-import sys
-sys.path[:0]=['../..','../../Editeur','../../..']
-
-from Cata import cata
-from analyse_catalogue import analyse_catalogue
-
-f=open('ahlv100a.comm','r')
-text=f.read()
-f.close()
-
-fic_cata="../../../Cata/cata.py"
-cata_ordonne = analyse_catalogue(None,fic_cata)
-j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a",
- cata_ord_dico=cata_ordonne.dico)
-j.compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.exec_compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-import treeitemincanvas
-t=treeitemincanvas.TREEITEMINCANVAS(j,"ahlv100a")
-t.mainloop()
-
-
-
-
+++ /dev/null
-import os
-
-# REPINI sert à localiser le fichier editeur.ini
-REPINI=os.path.dirname(os.path.abspath(__file__))
-
-# ICONDIR sert à localiser le répertoire contenant les icones
-ICONDIR=os.path.join(REPINI,'../..','Editeur','icons')
-
-# CODE_PATH sert à localiser Accas et Cata (si pas infos dans editeur.ini)
-#CODE_PATH = os.path.join(REPINI,'..')
-
-# INSTALLDIR sert à localiser faqs.txt et les modules Eficas
-#INSTALLDIR=os.path.join(REPINI,'..','Editeur')
+++ /dev/null
-import Tkinter
-import Pmw
-
-class CONFIG:
- isdeveloppeur='NON'
-
-class STATUSBAR:
- def __init__(self,parent):
- self.parent=parent
- self.frame = Tkinter.Frame(parent,bd=1, relief=Tkinter.RAISED)
- self.frame.pack(side=Tkinter.BOTTOM, fill=Tkinter.X)
- self.label = Tkinter.Label (self.frame,
- fg='black',
- text='',
- justify='left',
- relief='sunken',
- bg='gray95')
- self.label.pack(side='left',expand=1,fill='both')
-
- def showtext(self,texte):
- if len(texte)>150 :
- texte_infos=texte[0:150]
- else :
- texte_infos=texte
- self.label.configure(text=texte_infos)
-
-class Appli:
- def __init__(self):
- self.CONFIGURATION=CONFIG()
- self.root=Tkinter.Tk()
- Pmw.initialise(self.root)
- self.init()
-
- def init(self):
- self.statusbar=STATUSBAR(self.root)
-
- def affiche_infos(self,message):
- self.statusbar.showtext(message)
- #print message
- return
-
- def efface_aide(self,event):
- return
-
- def affiche_aide(self,event,aide):
- #print aide
- return
-
+++ /dev/null
-# MODIF DATE 11/12/2001 AUTEUR DURAND C.DURAND
-# TITRE GUIDE D'ONDE A SORTIE ANECHOIQUE (ONDES PLANES) E.F. CLASSIQUES
-# 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.
-# ======================================================================
-# MODELISATION 'ACOUSTIQUE' AVEC ELEMENTS HEXA20 ET FACE8
-# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES
-#
-
-DEBUT(CODE=_F( NOM = 'AHLV100A') )
-
-F=500.
-
-MAIL=LIRE_MAILLAGE( )
-
-AIR=DEFI_MATERIAU( FLUIDE=_F( RHO = 1.3, CELE_C = ('RI',343.,0.,)))
-
-CHAMPMAT=AFFE_MATERIAU( MAILLAGE=MAIL,
- AFFE=_F( TOUT = 'OUI', MATER = AIR) )
-
-GUIDE=AFFE_MODELE( MAILLAGE=MAIL, VERIF='MAILLE',
- AFFE=_F( TOUT = 'OUI', MODELISATION = '3D',
- PHENOMENE = 'ACOUSTIQUE') )
-
-CHARACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- VITE_FACE=_F( GROUP_MA = 'ENTREE', VNOR = ('RI',0.014,0.,)))
-
-IMPEACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- IMPE_FACE=_F( GROUP_MA = 'SORTIE', IMPE = ('RI',445.9,0.,)))
-
-MACRO_MATR_ASSE(
- MODELE=GUIDE, CHARGE=IMPEACOU,
- CHAM_MATER=CHAMPMAT,
- NUME_DDL=CO("NUM"),MATR_ASSE=(
- _F( MATRICE = CO("MATASK"), OPTION = 'RIGI_ACOU'),
- _F( MATRICE = CO("MATASM"), OPTION = 'MASS_ACOU'),
- _F( MATRICE = CO("MATASI"), OPTION = 'AMOR_ACOU'))
- )
-
-#
-
-VECTELEM=CALC_VECT_ELEM( OPTION='CHAR_ACOU', CHAM_MATER=CHAMPMAT,
- CHARGE=CHARACOU )
-
-#
-# IMPRESSION DU VECT_ELEM COMPLEXE VECTELEM SELON LE GRAIN MAILLE
-#
-
-IMPR_MATRICE( MATR_ELEM=_F( MATRICE = VECTELEM,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'MAILLE'))
-
-VECTASS=ASSE_VECTEUR( VECT_ELEM=VECTELEM, NUME_DDL=NUM )
-
-#
-# ____________________CALCUL DES MODES_________________________________
-#
-
-MATASKR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASK, PARTIE = 'REEL', COEF_R = 1.))
-
-MATASMR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASM, PARTIE = 'REEL', COEF_R = 1.))
-
-#
-
-MODES=MODE_ITER_SIMULT( MATR_A=MATASKR,
- MATR_B=MATASMR,
- CALC_FREQ=_F( OPTION = 'BANDE',
- FREQ = ( 1., 1000.,))
- )
-
-TEST_RESU(RESU=(_F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 1, VALE = 171.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 2, VALE = 343.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 3, VALE = 514.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-2,
- NUME_ORDRE = 4, VALE = 686.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 5, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 6, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 7, VALE = 874.482),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 8, VALE = 923.556))
- )
-
-# ----------------------CALCUL DECOMPOSE-------------------------------
-#
-
-MATRES=COMB_MATR_ASSE( COMB_C=( _F( MATR_ASSE = MATASK,
- COEF_R = 1.),
- _F( MATR_ASSE = MATASM,
- COEF_R = -9869604.4),
- _F( MATR_ASSE = MATASI,
- COEF_C = ('RI',0.,3141.5926,)))
- )
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN NOEUD
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'NOEUD',
- OPTION = 'LIGNE'))
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN VALEUR
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'VALEUR',
- OPTION = 'LIGNE'))
-
-VECRES=COMB_CHAM_NO( COMB_C=_F( CHAM_NO = VECTASS,
- COEF_C = ('RI',0.,-3141.5926,))
- )
-
-MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES )
-
-VECRES=RESO_LDLT( reuse=VECRES, MATR_FACT=MATRES,
- CHAM_NO=VECRES
- )
-
-TEST_RESU(CHAM_NO=(
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-CHNODBEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-#
-
-PREEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PIMAG=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-#-----------------------CALCUL HARMONIQUE-------------------------------
-
-
-PRESHARM=DYNA_LINE_HARM( MATR_MASS=MATASM, MATR_RIGI=MATASK,
- MATR_AMOR=MATASI,
- FREQ=F,
- EXCIT=_F( VECT_ASSE = VECTASS, COEF_MULT = -1.,
- PUIS_PULS = 1, PHAS_DEG = 90.))
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_ACTI'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_REAC'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3,
- CRITERE = 'RELATIF'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-FIN()
-#
-#
+++ /dev/null
-"""
- Script Python permettant de faire une verification avec
- l'outil pychecker
-"""
-
-import sys
-sys.path[:0]=['../..','../../Editeur','../../..']
-
-from Accas import *
-#from Cata.cata import *
-
-from Appli import Appli
-from jdcdisplay import JDCDISPLAY
-from treeitemincanvas import TREEITEMINCANVAS
-
+++ /dev/null
-"""
- Construction d'un item JDC
-"""
-
-import prefs
-
-import sys
-sys.path[:0]=['../..','../../Editeur','../../Aster' ]
-
-from Cata import cata_STA6
-cata=cata_STA6
-
-from analyse_catalogue import analyse_catalogue
-
-from Appli import Appli
-import jdcdisplay
-
-f=open('ahlv100a.comm','r')
-text=f.read()
-f.close()
-
-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.entites)
-
-j.compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-j.exec_compile()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-a=Appli()
-
-d=jdcdisplay.JDCDISPLAY(j,"ahlv100a",appli=a,parent=a.root)
-
-a.root.mainloop()
-
-
-
-
+++ /dev/null
-import os
-
-# REPINI sert à localiser le fichier editeur.ini
-REPINI=os.path.dirname(os.path.abspath(__file__))
-
-# ICONDIR sert à localiser le répertoire contenant les icones
-ICONDIR=os.path.join(REPINI,'../..','Editeur','icons')
-
-# CODE_PATH sert à localiser Accas et Cata (si pas infos dans editeur.ini)
-#CODE_PATH = os.path.join(REPINI,'..')
-
-# INSTALLDIR sert à localiser faqs.txt et les modules Eficas
-#INSTALLDIR=os.path.join(REPINI,'..','Editeur')
-
-# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
-lang='fr'
-
+++ /dev/null
-Faire ../../Aster/eficas_aster.py
-demander le catalogue v5
-et demander l'ouverture du fichier totalmod.comm dans ce répertoire
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Cata import cata_STA5
-cata=cata_STA5
-
-import convert
-c=convert.plugins['asterv5']()
-c.readfile('totalmod.comm')
-text=c.convert('exec')
-
-j=cata.JdC(procedure=text,cata=cata,nom="totalmod")
-j.analyse()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-# On récupère les plugins de la famille generator
-import generator
-
-g=generator.plugins['asterv5']()
-text= g.gener(j,format='beautifie')
-g.writefile('titi.comm')
-
-g=generator.plugins['python']()
-text= g.gener(j,format='beautifie')
-g.writefile('toto.comm')
-
-
-
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Cata import cata_STA5
-cata=cata_STA5
-
-import convert
-c=convert.plugins['asterv5']()
-c.readfile('titi.comm')
-text=c.convert('exec')
-
-j=cata.JdC(procedure=text,cata=cata,nom="totalmod")
-j.analyse()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-# On récupère les plugins de la famille generator
-import generator
-
-g=generator.plugins['asterv5']()
-textout= g.gener(j,format='beautifie')
-g.writefile('tutu.comm')
-
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Cata import cata_STA5
-cata=cata_STA5
-
-import convert
-c=convert.plugins['python']()
-c.readfile('toto.comm')
-text=c.convert('exec')
-
-j=cata.JdC(procedure=text,cata=cata,nom="totalmod")
-j.analyse()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-# On récupère les plugins de la famille generator
-import generator
-
-g=generator.plugins['python']()
-textout= g.gener(j,format='beautifie')
-g.writefile('tyty.comm')
-
+++ /dev/null
-
-
-DEBUT();
-% LECTURE DES PARAMETRES
-%
-% LECTURE DES TEMPS
-%CYCLE 1
-% LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS
-
-
-PRE_GIBI();
-%
-
-
-MA1=LIRE_MAILLAGE();
-%
-
-
-&MA1=DEFI_GROUP(CREA_GROUP_NO:(GROUP_MA:(FIXATI,APPUI,LIAS_1,LIAS_2,
- EBGUIDE,MAINTIEN,
- MAIN_SUP,EMBO_SUP,
- TUB_GUID,GRILLES,
- EMBO_INF,PIEDS,
- CRAYONS),)
- MAILLAGE:MA1);
-%
-% AFFECTATION DU MODELE
-%
-
-
-MO1=AFFE_MODELE(AFFE:(GROUP_MA:CRAYONS
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- AFFE:(GROUP_MA:TUB_GUID
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- AFFE:(GROUP_MA:(EMBO_SUP,EMBO_INF)
- PHENOMENE:'MECANIQUE'
- MODELISATION:'DKT')
- AFFE:(GROUP_MA:PIEDS
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- AFFE:(GROUP_MA:GRILLES
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- AFFE:(GROUP_MA:LI_GR_CR
- PHENOMENE:'MECANIQUE'
- MODELISATION:'DIS_TR')
- AFFE:(GROUP_MA:LI_GR_GU
- PHENOMENE:'MECANIQUE'
- MODELISATION:'DIS_TR')
- AFFE:(GROUP_MA:MAINTIEN
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- MAILLAGE:MA1);
-%
-% AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES
-%
-
-
-CARA1=AFFE_CARA_ELEM(MODELE:MO1
- COQUE:(ANGL_REP:90.0
- GROUP_MA:EBOINF
- EPAIS:2.0)
- COQUE:(ANGL_REP:90.0
- GROUP_MA:EBOSUP
- EPAIS:3.0)
- DISCRET:(VALE:(1.0,2.0,3.0,4.0,5.0,6.0)
- REPERE:'LOCAL'
- CARA:'K_TR_D_L'
- GROUP_MA:ELASTI)
- DISCRET:(VALE:(1.0,2.0,3.0,4.0,5.0,6.0)
- REPERE:'LOCAL'
- CARA:'K_TR_D_L'
- GROUP_MA:RIGID)
- ORIENTATION:(VALE:(1.0,0.0,0.0)
- CARA:'VECT_Y'
- GROUP_MA:(GRIL_I,GRIL_E))
- ORIENTATION:(VALE:(0.0,1.0,0.0)
- CARA:'VECT_Y'
- GROUP_MA:(MAINTI_Y))
- ORIENTATION:(VALE:(0.0,0.0,1.0)
- CARA:'VECT_Y'
- GROUP_MA:(MAINTI_Z))
- ORIENTATION:(VALE:(0.0,1.0,0.0)
- CARA:'VECT_Y'
- GROUP_MA:(PI_PLE,PI_TRO))
- ORIENTATION:(VALE:(1.0,0.0,0.0)
- CARA:'VECT_Y'
- GROUP_MA:(ELASTI,RIGID))
- POUTRE:(SECTION:'CERCLE'
- GROUP_MA:CRAY
- VALE:(3.0,3.0)
- CARA:('R','EP'))
- POUTRE:(SECTION:'CERCLE'
- GROUP_MA:GUID
- VALE:(3.0,3.0)
- CARA:('R','EP'))
- POUTRE:(SECTION:'CERCLE'
- GROUP_MA:RETRE
- VALE:(3.0,3.0)
- CARA:('R','EP'))
- POUTRE:(SECTION:'RECTANGLE'
- GROUP_MA:(GRIL_I)
- VALE:(3.0,3.0)
- CARA:('HY','HZ'))
- POUTRE:(SECTION:'RECTANGLE'
- GROUP_MA:(GRIL_E)
- VALE:(3.0,3.0)
- CARA:('HY','HZ'))
- POUTRE:(SECTION:'RECTANGLE'
- GROUP_MA:(MAINTI_Y,MAINTI_Z)
- VALE:(3.0,3.0)
- CARA:('HY','HZ'))
- POUTRE:(SECTION:'GENERALE'
- GROUP_MA:PI_PLE
- VALE:(1.0,2.0,3.0,4.0)
- CARA:('A','IZ','IY','JX'))
- POUTRE:(SECTION:'GENERALE'
- GROUP_MA:PI_TRO
- VALE:(1.0,2.0,3.0,4.0)
- CARA:('A','IZ','IY','JX')));
-%
-% DEFINITION DES CHARGES ET CONDITIONS LIMITES
-% DEFINITION DES TEMPERATURES NODALES EVOLUTIVES
-%
-
-
-F_TP1_1=DEFI_FONCTION(NOM_RESU:'TEMP'
- PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,4.0)
- PROL_DROIT:'CONSTANT');
-
-F_TP2_1=DEFI_FONCTION(NOM_RESU:'TEMP'
- PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,4.0)
- PROL_DROIT:'CONSTANT');
-
-F_TP3_1=DEFI_FONCTION(NOM_RESU:'TEMP'
- PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,4.0)
- PROL_DROIT:'CONSTANT');
-
-CHTEM1_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F'
- AFFE:(FONCTION:F_TP1_1
- GROUP_NO:
-
- (MAINTIEN,PIEDS,
- TUB_GUID,GRILLES,
- CRAYONS),
- NOM_CMP:'TEMP')
- AFFE:(FONCTION:(F_TP1_1,F_TP1_1,F_TP1_1)
- GROUP_NO:(EMBO_SUP,EMBO_INF)
- NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP'))
- MAILLAGE:MA1);
-
-CHTEM2_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F'
- AFFE:(FONCTION:F_TP2_1
- GROUP_NO:
-
- (MAINTIEN,PIEDS,
- TUB_GUID,GRILLES,
- CRAYONS),
- NOM_CMP:'TEMP')
- AFFE:(FONCTION:(F_TP2_1,F_TP2_1,F_TP2_1)
- GROUP_NO:(EMBO_SUP,EMBO_INF)
- NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP'))
- MAILLAGE:MA1);
-
-CHTEM3_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F'
- AFFE:(FONCTION:F_TP3_1
- GROUP_NO:(MAINTIEN,PIEDS,TUB_GUID,GRILLES)
- NOM_CMP:'TEMP')
- AFFE:(FONCTION:(F_TP3_1,F_TP3_1,F_TP3_1)
- GROUP_NO:(EMBO_SUP,EMBO_INF)
- NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP'))
- AFFE:(FONCTION:F_TP3_1
- GROUP_NO:CRAYONS
- NOM_CMP:'TEMP')
- MAILLAGE:MA1);
-
-CHTH_1=CREA_RESU(NOM_CHAM:'TEMP'
- CHAM_GD:(INST:0.0
- CHAM_NO:CHTEM1_1)
- CHAM_GD:(INST:1000.0
- CHAM_NO:CHTEM1_1)
- CHAM_GD:(INST:2000.0
- CHAM_NO:CHTEM2_1)
- CHAM_GD:(INST:3000.0
- CHAM_NO:CHTEM3_1)
- CHAM_GD:(INST:4000.0
- CHAM_NO:CHTEM3_1)
- CHAM_GD:(INST:5000.0
- CHAM_NO:CHTEM2_1)
- CHAM_GD:(INST:6000.0
- CHAM_NO:CHTEM1_1)
- CHAM_GD:(INST:7000.0
- CHAM_NO:CHTEM1_1)
- TYPE_RESU:'EVOL_THER');
-% CHARGEMENT: CHARGES THERMO-MECANIQUES
-% ----------------------------------------
-
-
-THERM_1=AFFE_CHAR_MECA(MODELE:MO1
- TEMP_CALCULEE:CHTH_1);
-% DEFINITION DES CONDITIONS LIMITES
-% DES CONDITIONS DE CONTACT
-%
-% CHARGEMENT: PESANTEUR
-%
-
-
-PESANT_1=AFFE_CHAR_MECA(MODELE:MO1
- PESANTEUR:(9.8100000000000005,-1.0,0.0,0.0));
-%
-% CONDITIONS AUX LIMITES
-%
-
-
-CL_PER_1=AFFE_CHAR_MECA(MODELE:MO1
- DDL_IMPO:(DZ:0.0
- DX:0.0
- DY:0.0
- GROUP_NO:FIXATI
- DRZ:0.0
- DRX:0.0
- DRY:0.0)
- DDL_IMPO:(DX:0.0
- GROUP_NO:APPUI)
- DDL_IMPO:(DZ:0.0
- DY:0.0
- GROUP_NO:EBGUIDE
- DRZ:0.0
- DRX:0.0
- DRY:0.0)
- DDL_IMPO:(GROUP_NO:(LIAS_1,LIAS_2)
- DRX:0.0)
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DX'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DX')
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DY'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DY')
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DZ'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DZ')
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DRY'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DRY')
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DRZ'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DRZ'));
-%
-
-
-CL_CTC=AFFE_CHAR_MECA(INFO:1
- MODELE:MO1
- CONTACT:(GROUP_MA_1:EBOINF
- VECT_NORM_2:(-1.0,0.0,0.0)
- APPARIEMENT:'NODAL'
- GROUP_MA_2:MCRBAS));
-%
-% DEPLACEMENT DU SYSTEME DE MAINTIEN
-%
-
-
-CLDI_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:
- (0.0,0.0,1000.0,
- 0.10000000000000001,2000.0,
- 0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,
- 0.20000000000000001,5000.0,
- 0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,
- 0.10000000000000001),
- PROL_DROIT:'CONSTANT');
-
-CL_DI_1=AFFE_CHAR_MECA(MODELE:MO1
- DDL_IMPO:(DX:-1.0
- GROUP_NO:MAIN_SUP));
-% DEFINITION DES FORCES EXTERIEURES
-%
-% FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE
-%
-
-
-HYDR_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:
- (0.0,0.0,1000.0,
- 0.10000000000000001,2000.0,
- 0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,
- 0.20000000000000001,5000.0,
- 0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,
- 0.10000000000000001),
- PROL_DROIT:'CONSTANT');
-%
-% PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID
-%
-
-
-HYFRTU_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-%
-% PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID
-%
-
-
-HYFRCR_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-%
-% CHARGEMENT : FORCES HYDRODYNAMIQUES
-%
-
-
-HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE:(GROUP_MA:(GRIL10)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL1)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL2)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL3)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL4)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL5)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL6)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL7)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL8)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL9)
- FX:10.0)
- MODELE:MO1
- FORCE_COQUE:(FX:10.0
- GROUP_MA:EBOSUP)
- FORCE_COQUE:(FX:10.0
- GROUP_MA:EBOINF));
-
-TOTO_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,10.0,5.0,10.0)
- PROL_DROIT:'CONSTANT');
-%
-
-
-FOHYDR_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:(GUID)
- FX:TOTO_1)
- FORCE_POUTRE:(GROUP_MA:CRAY
- FX:TOTO_1)
- MODELE:MO1);
-%
-% PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE
-%
-
-
-ARFRTU_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,10.0,5.0,10.0)
- PROL_DROIT:'CONSTANT');
-%
-% PROFIL DES FORCES D'ARCHIMEDE CRAYON
-%
-
-
-ARFRCR_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,10.0,5.0,10.0)
- PROL_DROIT:'CONSTANT');
-%
-% FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE
-%
-
-
-ARCH_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:
- (0.0,0.0,1000.0,
- 0.10000000000000001,2000.0,
- 0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,
- 0.20000000000000001,5000.0,
- 0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,
- 0.10000000000000001),
- PROL_DROIT:'CONSTANT');
-%
-%
-% CHARGEMENT : FORCES D'ARCHIMEDE
-% ----------------------------------------
-%
-
-
-ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE:(GROUP_MA:MAINTIEN
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL10)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL1)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL2)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL3)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL4)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL5)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL6)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL7)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL8)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL9)
- FX:10.0)
- MODELE:MO1
- FORCE_COQUE:(FX:10.0
- GROUP_MA:EBOSUP)
- FORCE_COQUE:(FX:10.0
- GROUP_MA:EBOINF));
-
-FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:GUID
- FX:ARCH_F1)
- FORCE_POUTRE:(GROUP_MA:CRAY
- FX:ARCH_F1)
- MODELE:MO1);
-%
-%
-% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON
-%
-%
-%
-%
-%
-% DEFINITION DE LA LISTE D'INSTANTS
-%
-
-
-L_FRIG=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:1000.0
- NOMBRE:100)
- DEBUT:0.0);
-%
-% INRTERPRETATION DES FONCTIONS
-%
-
-
-F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F2=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F3=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F4=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F5=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F6=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F7=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F8=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F9=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F10=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-FRIG1=CALC_FONC_INTERP(FONCTION:F1
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG2=CALC_FONC_INTERP(FONCTION:F2
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG3=CALC_FONC_INTERP(FONCTION:F3
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG4=CALC_FONC_INTERP(FONCTION:F4
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG5=CALC_FONC_INTERP(FONCTION:F5
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG6=CALC_FONC_INTERP(FONCTION:F6
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG7=CALC_FONC_INTERP(FONCTION:F7
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG8=CALC_FONC_INTERP(FONCTION:F8
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG9=CALC_FONC_INTERP(FONCTION:F9
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG10=CALC_FONC_INTERP(FONCTION:F10
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-%
-% DEFINITION DU FLUX NEUTRONIQUE RADIAL
-
-
-FLUX_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:
- (0.0,0.0,4.3200E4,0.0,
- 9.74520E5,4.53280E5,2.638800E6,
- 2.077850E6,4.087800E6,3.512790E6,
- 5.428440E6,4.856770E6,7.245000E6,
- 6.676270E6,8.853480E6,8.279770E6,
- 1.0460900E7,9.872610E6,1.2202900E7,
- 1.1586900E7,1.3944600E7,1.3295200E7,
- 1.4143700E7,1.3490200E7,1.5563200E7,
- 1.4875300E7,1.7236100E7,1.6506900E7,
- 1.7948200E7,1.7199200E7,1.8190100E7,
- 1.7433400E7,1.8193700E7,1.7435200E7,
- 1.8197300E7,1.7435200E7,1.8200900E7,
- 1.7435200E7),
- PROL_DROIT:'CONSTANT');
-% DEFINITION DU FLUX AXIAL POUR LE CYCLE 1
-
-
-FLUXAX1=LIRE_FONCTION(PROL_GAUCHE:'CONSTANT'
- UNITE:60
- PROL_DROIT:'CONSTANT');
-
-FLY_1_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 3.8032834757835002E-07,
- -0.088200000000000001,
- 3.8083689458688999E-07,
- -0.075600000000000001,
- 3.8296082621083001E-07,-0.063,
- 3.858400997151E-07,-0.0504,
- 3.8946100427349999E-07,-0.0378,
- 3.9259455128205E-07,-0.0252,
- 3.9258457977207998E-07,-0.0126,
- 3.9294106125356001E-07,0.0,
- 3.9399554843304999E-07,0.0126,
- 3.9293233618234E-07,0.0252,
- 3.9256712962963002E-07,0.0378,
- 3.9256712962963002E-07,0.0504,
- 3.8942610398860001E-07,0.063,
- 3.8579522792023001E-07,
- 0.075600000000000001,
- 3.8290972222222002E-07,
- 0.088200000000000001,
- 3.8077706552707E-07,0.1008,
- 3.8026103988603998E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_2=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 4.3595566239316001E-07,
- -0.088200000000000001,
- 4.3866542022792E-07,
- -0.075600000000000001,
- 4.4331463675214E-07,-0.063,
- 4.4911556267806002E-07,-0.0504,
- 4.5750658831909E-07,-0.0378,
- 4.6647222222221997E-07,-0.0252,
- 4.6002938034188002E-07,-0.0126,
- 4.6004309116809001E-07,0.0,
- 4.6686235754985997E-07,0.0126,
- 4.6003311965811999E-07,0.0252,
- 4.6000943732193999E-07,0.0378,
- 4.6643981481481001E-07,0.0504,
- 4.5746420940171002E-07,0.063,
- 4.4906445868945999E-07,
- 0.075600000000000001,
- 4.4325356125356E-07,
- 0.088200000000000001,
- 4.3859686609687001E-07,0.1008,
- 4.3587838319088001E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_3=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 4.9431891025640996E-07,
- -0.088200000000000001,
- 5.0005128205127998E-07,
- -0.075600000000000001,
- 5.1337197293447004E-07,-0.063,
- 5.2915313390313001E-07,-0.0504,
- 5.3788069800570004E-07,-0.0378,
- 5.3504629629630004E-07,-0.0252,
- 5.3221189458688998E-07,-0.0126,
- 5.3136431623932E-07,0.0,
- 5.3135870726495999E-07,0.0126,
- 5.3135309829059998E-07,0.0252,
- 5.3218696581197002E-07,0.0378,
- 5.3500827991452996E-07,0.0504,
- 5.3782959401709E-07,0.063,
- 5.2909205840456002E-07,
- 0.075600000000000001,
- 5.1330217236466999E-07,
- 0.088200000000000001,
- 4.9997150997151001E-07,0.1008,
- 4.9423165954416005E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_4=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 5.5489957264956999E-07,
- -0.088200000000000001,
- 5.6477884615384998E-07,
- -0.075600000000000001,
- 5.9007781339030998E-07,-0.063,
- 5.9726415598291003E-07,-0.0504,
- 6.0445049857550001E-07,-0.0378,
- 5.9840776353275996E-07,-0.0252,
- 5.8440651709402002E-07,-0.0126,
- 5.8263906695157003E-07,0.0,
- 5.9153240740741004E-07,0.0126,
- 5.8262660256409999E-07,0.0252,
- 5.8438034188033999E-07,0.0378,
- 5.9836663105413E-07,0.0504,
- 6.0439316239316004E-07,0.063,
- 5.9719497863248E-07,
- 0.075600000000000001,
- 5.8999679487179001E-07,
- 0.088200000000000001,
- 5.6469159544159996E-07,0.1008,
- 5.5480110398860005E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_5=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 6.1267200854701004E-07,
- -0.088200000000000001,
- 6.2962357549858005E-07,
- -0.075600000000000001,
- 6.5655413105413E-07,-0.063,
- 6.6164583333332999E-07,-0.0504,
- 6.5190242165241998E-07,-0.0378,
- 6.5212678062678005E-07,-0.0252,
- 6.3746616809116999E-07,-0.0126,
- 6.3547435897436004E-07,0.0,
- 6.4509686609687001E-07,0.0126,
- 6.3546064814814995E-07,0.0252,
- 6.3743625356125E-07,0.0378,
- 6.5207941595442004E-07,0.0504,
- 6.5183885327634997E-07,0.063,
- 6.6156980056979999E-07,
- 0.075600000000000001,
- 6.5646563390312997E-07,
- 0.088200000000000001,
- 6.2952386039885999E-07,0.1008,
- 6.1256356837606998E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_6=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 6.5755128205127996E-07,
- -0.088200000000000001,
- 6.8336253561253996E-07,
- -0.075600000000000001,
- 6.9012072649573003E-07,-0.063,
- 6.9687891737892E-07,-0.0504,
- 6.9362571225071001E-07,-0.0378,
- 6.9074768518518997E-07,-0.0252,
- 6.8786965811965998E-07,-0.0126,
- 6.8586413817664004E-07,0.0,
- 6.8585603632478996E-07,0.0126,
- 6.8584793447293003E-07,0.0252,
- 6.8783600427350001E-07,0.0378,
- 6.9069720441594996E-07,0.0504,
- 6.9355840455840002E-07,0.063,
- 6.9679789886040002E-07,
- 0.075600000000000001,
- 6.9002412749288002E-07,
- 0.088200000000000001,
- 6.8325035612536003E-07,0.1008,
- 6.5743162393161998E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_7=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 6.9684526353276003E-07,
- -0.088200000000000001,
- 7.1406606125356005E-07,
- -0.075600000000000001,
- 7.3236502849003E-07,-0.063,
- 7.2076442307691997E-07,-0.0504,
- 7.1793500712250995E-07,-0.0378,
- 7.2835648148147998E-07,-0.0252,
- 7.1444747150996998E-07,-0.0126,
- 7.1130893874644005E-07,0.0,
- 7.2107727920227996E-07,0.0126,
- 7.1129398148148005E-07,0.0252,
- 7.1441257122506995E-07,0.0378,
- 7.2830288461537998E-07,0.0504,
- 7.1786396011395999E-07,0.063,
- 7.2067841880341996E-07,
- 0.075600000000000001,
- 7.3226157407406997E-07,
- 0.088200000000000001,
- 7.1395138888889005E-07,0.1008,
- 6.9671812678063005E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_8=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 7.3679362535612996E-07,
- -0.088200000000000001,
- 7.5423130341880005E-07,
- -0.075600000000000001,
- 7.7215633903134002E-07,-0.063,
- 7.5865740740741005E-07,-0.0504,
- 7.5547774216523998E-07,-0.0378,
- 7.6662464387464E-07,-0.0252,
- 7.5088461538461995E-07,-0.0126,
- 7.4313924501423998E-07,0.0,
- 7.486323005698E-07,0.0126,
- 7.4312054843304996E-07,0.0252,
- 7.5084722222222E-07,0.0378,
- 7.6656730769230998E-07,0.0504,
- 7.5540170940170999E-07,0.063,
- 7.5856267806267997E-07,
- 0.075600000000000001,
- 7.7204415954415998E-07,
- 0.088200000000000001,
- 7.5410790598291005E-07,0.1008,
- 7.3665776353275997E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_9=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 7.7370940170939995E-07,
- -0.088200000000000001,
- 8.0144764957264998E-07,
- -0.075600000000000001,
- 8.0374358974358997E-07,-0.063,
- 8.0603952991452995E-07,-0.0504,
- 8.0238372507123005E-07,-0.0378,
- 7.9936672008546997E-07,-0.0252,
- 7.9634971509971995E-07,-0.0126,
- 7.8317361111111004E-07,0.0,
- 7.8316426282051005E-07,0.0126,
- 7.8315491452990996E-07,0.0252,
- 7.9631107549857995E-07,0.0378,
- 7.9930689102564003E-07,0.0504,
- 8.0230270655270996E-07,0.063,
- 8.0593856837607005E-07,
- 0.075600000000000001,
- 8.0362580128205003E-07,
- 0.088200000000000001,
- 8.0131303418803E-07,0.1008,
- 7.7356356837607E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_10=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 7.9424198717948999E-07,
- -0.088200000000000001,
- 8.1225925925926001E-07,
- -0.075600000000000001,
- 8.3075516381766E-07,-0.063,
- 8.1540651709402001E-07,-0.0504,
- 8.1131071937321997E-07,-0.0378,
- 8.2297489316238996E-07,-0.0252,
- 8.0577403846154003E-07,-0.0126,
- 7.9717236467236002E-07,0.0,
- 8.0284615384615001E-07,0.0126,
- 7.9715117521368004E-07,0.0252,
- 8.0573165954416005E-07,0.0378,
- 8.2291257122506995E-07,0.0504,
- 8.1122845441594998E-07,0.063,
- 8.1530306267805998E-07,
- 0.075600000000000001,
- 8.3063051994301999E-07,
- 0.088200000000000001,
- 8.1211841168090999E-07,0.1008,
- 7.9408742877492998E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_11=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.1647845441594995E-07,
- -0.088200000000000001,
- 8.3510648148147996E-07,
- -0.075600000000000001,
- 8.5487873931623998E-07,-0.063,
- 8.3969088319087998E-07,-0.0504,
- 8.3502920227919995E-07,-0.0378,
- 8.4651014957265E-07,-0.0252,
- 8.2973931623932002E-07,-0.0126,
- 8.2549269943020005E-07,0.0,
- 8.3637909544160002E-07,0.0126,
- 8.2547275641026002E-07,0.0252,
- 8.2969319800569997E-07,0.0378,
- 8.4644408831909002E-07,0.0504,
- 8.3493945868945997E-07,0.063,
- 8.3957995014244996E-07,
- 0.075600000000000001,
- 8.5474786324785998E-07,
- 0.088200000000000001,
- 8.3495690883191003E-07,0.1008,
- 8.1631641737892005E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_12=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.3948272792023003E-07,
- -0.088200000000000001,
- 8.7002546296295996E-07,
- -0.075600000000000001,
- 8.7608564814814997E-07,-0.063,
- 8.8214583333333004E-07,-0.0504,
- 8.7589245014244996E-07,-0.0378,
- 8.7128872863248004E-07,-0.0252,
- 8.6668500712251001E-07,-0.0126,
- 8.6321616809117001E-07,0.0,
- 8.6320432692307996E-07,0.0126,
- 8.6319248575499001E-07,0.0252,
- 8.6663764245014005E-07,0.0378,
- 8.7121705840456005E-07,0.0504,
- 8.7579647435896998E-07,0.063,
- 8.8202617521368001E-07,
- 0.075600000000000001,
- 8.7594667022791999E-07,
- 0.088200000000000001,
- 8.6986716524217003E-07,0.1008,
- 8.3931196581196996E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_13=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.5508315527066002E-07,
- -0.088200000000000001,
- 8.7546616809116998E-07,
- -0.075600000000000001,
- 9.0944533475783005E-07,-0.063,
- 9.1292663817663998E-07,-0.0504,
- 8.9653721509972004E-07,-0.0378,
- 8.9547275641025999E-07,-0.0252,
- 8.7405644586895003E-07,-0.0126,
- 8.7004789886040001E-07,0.0,
- 8.8226549145299002E-07,0.0126,
- 8.7002546296295996E-07,0.0252,
- 8.7400534188033999E-07,0.0378,
- 8.9539672364672004E-07,0.0504,
- 8.9643376068376001E-07,0.063,
- 9.1279825498575999E-07,
- 0.075600000000000001,
- 9.0929576210826002E-07,
- 0.088200000000000001,
- 8.7530288461538001E-07,0.1008,
- 8.5490491452990995E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_14=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.5798237179486999E-07,
- -0.088200000000000001,
- 8.6880893874644002E-07,
- -0.075600000000000001,
- 9.0299750712251001E-07,-0.063,
- 9.0948646723646997E-07,-0.0504,
- 9.1597542735043003E-07,-0.0378,
- 9.0500302706552995E-07,-0.0252,
- 8.8214084757835001E-07,-0.0126,
- 8.7779825498574995E-07,0.0,
- 8.8993732193732E-07,0.0126,
- 8.7777207977207998E-07,0.0252,
- 8.8208974358973997E-07,0.0378,
- 9.0492325498575998E-07,0.0504,
- 9.1586574074073996E-07,0.063,
- 9.0935434472933995E-07,
- 0.075600000000000001,
- 9.0284294871795E-07,
- 0.088200000000000001,
- 8.6864066951567002E-07,0.1008,
- 8.5779665242165003E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_15=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.5773557692308004E-07,
- -0.088200000000000001,
- 8.6180893874644003E-07,
- -0.075600000000000001,
- 8.7862838319088002E-07,-0.063,
- 8.9924074074074004E-07,-0.0504,
- 9.0872489316239005E-07,-0.0378,
- 9.0174545940170996E-07,-0.0252,
- 8.9476602564102997E-07,-0.0126,
- 8.9122364672365005E-07,0.0,
- 8.9120993589743996E-07,0.0126,
- 8.9119622507122997E-07,0.0252,
- 8.9471118233617996E-07,0.0378,
- 9.0166132478632003E-07,0.0504,
- 9.0861146723646996E-07,0.063,
- 8.9910363247862999E-07,
- 0.075600000000000001,
- 8.7847257834757996E-07,
- 0.088200000000000001,
- 8.6163693019942995E-07,0.1008,
- 8.5754362535613004E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_16=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.5903935185184999E-07,
- -0.088200000000000001,
- 8.5690046296295998E-07,
- -0.075600000000000001,
- 8.5831018518518999E-07,-0.063,
- 8.6167307692307999E-07,-0.0504,
- 8.7125320512820998E-07,-0.0378,
- 8.8563586182335997E-07,-0.0252,
- 8.7089298433048003E-07,-0.0126,
- 8.6842877492877004E-07,0.0,
- 8.7942111823362E-07,0.0126,
- 8.6840135327634996E-07,0.0252,
- 8.7083814102563997E-07,0.0378,
- 8.8554985754985996E-07,0.0504,
- 8.7113977920228004E-07,0.063,
- 8.6153846153846001E-07,
- 0.075600000000000001,
- 8.5815313390312996E-07,
- 0.088200000000000001,
- 8.5672471509971999E-07,0.1008,
- 8.5884116809116995E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_17=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.6388675213674999E-07,
- -0.088200000000000001,
- 8.5563782051281999E-07,
- -0.075600000000000001,
- 8.5087019230768996E-07,-0.063,
- 8.4755965099714995E-07,-0.0504,
- 8.4761698717949003E-07,-0.0378,
- 8.5133636039885996E-07,-0.0252,
- 8.4844088319088001E-07,-0.0126,
- 8.4633689458689002E-07,0.0,
- 8.4644658119657999E-07,0.0126,
- 8.4630947293447004E-07,0.0252,
- 8.4838479344729004E-07,0.0378,
- 8.512516025641E-07,0.0504,
- 8.4750480769231E-07,0.063,
- 8.4742378917379002E-07,
- 0.075600000000000001,
- 8.5071064814815003E-07,
- 0.088200000000000001,
- 8.5545584045584E-07,0.1008,
- 8.6368108974359E-07),
- PROL_DROIT:'CONSTANT');
-
-FLUXRD1=DEFI_NAPPE(FONCTION:(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,
- FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,
- FLY_1_10,FLY_1_11,FLY_1_12,
- FLY_1_13,FLY_1_14,FLY_1_15,
- FLY_1_16,FLY_1_17),
- PARA:
- (-0.1008,
- -0.088200000000000001,
- -0.075600000000000001,-0.063,-0.0504,
- -0.0378,-0.0252,-0.0126,0.0,0.0126,
- 0.0252,0.0378,0.0504,0.063,
- 0.075600000000000001,
- 0.088200000000000001,0.1008),
- PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Z'
- PROL_DROIT:'CONSTANT');
-%
-% DEFINITION DES MATERIAUX ET AFFECTATIONS
-%
-% **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE ****
-%
-%
-% FAMILLE ASSEMBLAGE : NUMERO_FAM
-%
-% EMBOUT SUPERIEUR
-
-
-E_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-NU_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-AL_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-MT_ES=DEFI_MATERIAU(ELAS_FO:(NU:NU_ES
- ALPHA:AL_ES
- RHO:7800.0
- E:E_ES));
-% EMBOUT INFERIEUR
-
-
-E_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-NU_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-AL_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-MT_EI=DEFI_MATERIAU(ELAS_FO:(NU:NU_EI
- ALPHA:AL_EI
- RHO:12.0
- E:E_EI));
-
-MT_RIG=DEFI_MATERIAU(ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-% FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON
-
-
-FOTRAC=DEFI_FONCTION(PROL_GAUCHE:'LINEAIRE'
- NOM_PARA:'DRZ'
- VALE:(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0)
- PROL_DROIT:'LINEAIRE');
-
-MT_RE1=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG1
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE2=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG2
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE3=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG3
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE4=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG4
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE5=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG5
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE6=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG6
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE7=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG7
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE8=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG8
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE9=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG9
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE10=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG10
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-% SYSTEME DE MAINTIEN
-
-
-E_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-SY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-DS_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-NP_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MEY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MPY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MEZ_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MPZ_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-CAY_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-CBY_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-CAZ_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-CBZ_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-MPX_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MT_MA=DEFI_MATERIAU(VMIS_POUTRE_FO:(MEZ:MEZ_MA
- MPX:MPX_MA
- MPZ:MPZ_MA
- CBY:CBY_MA
- NP:NP_MA
- CBZ:CBZ_MA
- MEY:MEY_MA
- CAY:CAY_MA
- CAZ:CAZ_MA
- MPY:MPY_MA)
- ECRO_LINE_FO:(D_SIGM_EPSI:DS_MA
- SY:SY_MA)
- ELAS_FO:(NU:NU_MA
- ALPHA:AL_MA
- RHO:7800.0
- E:E_MA));
-%
-% **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE ****
-%
-%
-% GRILLE
-
-
-E_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-E_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-% TUBE GUIDE
-
-
-E_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-% CRAYON
-
-
-E_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-% GRANDISSEMENT DES GRILLES
-% GRILLES EXTREMES 1 ET 10
-
-
-MT_GRE1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
- S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
- QSR_K:1.0
- UN_SUR_K:0.0)
- ELAS_FO:(NU:NU_GRE
- ALPHA:AL_GRE
- RHO:7800.0
- E:E_GRE));
-% GRILLES DE MELANGE
-
-
-MT_GRM1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
- S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
- QSR_K:2.0
- UN_SUR_K:0.0)
- ELAS_FO:(NU:NU_GRM
- ALPHA:AL_GRM
- RHO:7800.0
- E:E_GRM));
-% DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS )
-
-
-MT_TU1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
- S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
- QSR_K:2.0
- UN_SUR_K:0.0)
- ELAS_FO:(NU:NU_TU
- ALPHA:AL_TU
- RHO:7800.0
- E:E_TU));
-
-MT_CR1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
- S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
- QSR_K:2.0
- UN_SUR_K:0.0)
- ELAS_FO:(NU:NU_CR
- ALPHA:AL_CR
- RHO:7800.0
- E:E_CR));
-%
-% AFFECTATION DES MATERIAUX A CHAUD - CYCLE
-%
-%
-
-
-A_MAT_1=AFFE_MATERIAU(AFFE:(TEMP_REF:100.0
- MATER:MT_MA
- GROUP_MA:(MAINTI_Y,MAINTI_Z))
- AFFE:(TEMP_REF:100.0
- MATER:MT_GRM1
- GROUP_MA:GRIL_I)
- AFFE:(TEMP_REF:100.0
- MATER:MT_GRE1
- GROUP_MA:GRIL_E)
- AFFE:(TEMP_REF:100.0
- MATER:MT_CR1
- GROUP_MA:CRAY)
- AFFE:(TEMP_REF:100.0
- MATER:MT_TU1
- GROUP_MA:GUID)
- AFFE:(TEMP_REF:100.0
- MATER:MT_EI
- GROUP_MA:EBOINF)
- AFFE:(TEMP_REF:100.0
- MATER:MT_EI
- GROUP_MA:(PI_PLE,PI_TRO))
- AFFE:(TEMP_REF:100.0
- MATER:MT_ES
- GROUP_MA:EBOSUP)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RIG
- GROUP_MA:RIGID)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE1
- GROUP_MA:ELA1)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE2
- GROUP_MA:ELA2)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE3
- GROUP_MA:ELA3)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE4
- GROUP_MA:ELA4)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE5
- GROUP_MA:ELA5)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE6
- GROUP_MA:ELA6)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE7
- GROUP_MA:ELA7)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE8
- GROUP_MA:ELA8)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE9
- GROUP_MA:ELA9)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE10
- GROUP_MA:ELA10)
- MAILLAGE:MA1);
-%
-
-
-L_INST_1=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:0.5
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:1000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:2000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:3000.0
- NOMBRE:5)
- INTERVALLE:(JUSQU_A:4000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:5000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:6000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:7000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:8000.0
- NOMBRE:1)
- DEBUT:0.0);
-
-L_ARCH_1=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:0.5
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:1000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:2000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:3000.0
- NOMBRE:5)
- INTERVALLE:(JUSQU_A:4000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:5000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:6000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:7000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:8000.0
- NOMBRE:1)
- DEBUT:0.0);
-%
-% CALCUL PHASE I A V DU CYCLE 1
-%
-
-
-RESU=STAT_NON_LINE(CHAM_MATER:A_MAT_1
- MODELE:MO1
- ARCHIVAGE:(LIST_INST:L_ARCH_1)
- CONVERGENCE:(ITER_GLOB_MAXI:50
- ITER_INTE_MAXI:500
- RESI_GLOB_RELA:1.E-4
- ARRET:'OUI')
- COMP_INCR:(RELATION:'VMIS_POU_LINE'
- GROUP_MA:MAINTIEN)
- COMP_INCR:(RELATION:'ASSE_COMBU'
- GROUP_MA:(CRAYONS,TUB_GUID))
- COMP_INCR:(RELATION:'DIS_CONTACT'
- GROUP_MA:LI_GR_CR)
- COMP_INCR:(COQUE_NCOU:1
- RELATION:'ELAS'
- GROUP_MA:
-
- (EMBO_INF,EMBO_SUP,
- PIEDS,GRILLES,
- LI_GR_GU),)
- INCREMENT:(NUME_INST_FIN:20
- LIST_INST:L_INST_1)
- CARA_ELEM:CARA1
- RECH_LINEAIRE:(ITER_LINE_MAXI:3)
- NEWTON:(REAC_ITER:1
- MATRICE:'TANGENTE')
- SOLVEUR:(METHODE:'MULT_FRONT'
- RENUM:'MD')
- EXCIT:(FONC_MULT:ARCH_F1
- CHARGE:ARCH_1)
- EXCIT:(FONC_MULT:ARCH_F1
- CHARGE:FOARCH_1)
- EXCIT:(FONC_MULT:HYDR_F1
- CHARGE:HYDR_1)
- EXCIT:(FONC_MULT:HYDR_F1
- CHARGE:FOHYDR_1)
- EXCIT:(FONC_MULT:CLDI_F1
- CHARGE:CL_DI_1)
- EXCIT:(CHARGE:CL_PER_1)
- EXCIT:(CHARGE:CL_CTC)
- EXCIT:(CHARGE:PESANT_1)
- EXCIT:(CHARGE:THERM_1)
- PARM_THETA:0.5);
-
-FIN();
+++ /dev/null
-DEBUT();
-% LECTURE DES PARAMETRES
-%
-
-
-% LECTURE DES TEMPS
-
-%cycle 1
-
-
-% LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS
-
-PRE_GIBI ();
-%
- ma1 = LIRE_MAILLAGE ();
-%
-&ma1 = DEFI_GROUP ( MAILLAGE : ma1
- CREA_GROUP_NO : (GROUP_MA : ( fixati
- appui
- lias_1
- lias_2
- ebguide
- maintien
- main_sup
- embo_sup
- tub_guid
- grilles
- embo_inf
- pieds
- crayons ))
- ) ;
-%
-% AFFECTATION DU MODELE
-%
- mo1 = AFFE_MODELE ( Maillage: ma1
- % crayons combustibles
- AFFE : ( GROUP_MA : crayons
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % tubes guides
- AFFE : ( GROUP_MA : tub_guid
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % embouts
- AFFE : ( GROUP_MA : (embo_sup, embo_inf)
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DKT'
- )
- % pieds
-
- AFFE : ( GROUP_MA : pieds
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
-
- % grilles
- AFFE : ( GROUP_MA : grilles
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'POU_D_E'
- )
- % liaison grille crayon
- AFFE : ( GROUP_MA : li_gr_cr
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DIS_TR'
- )
- % liaison grille tube
- AFFE : ( GROUP_MA : li_gr_gu
- PHENOMENE : 'MECANIQUE'
- MODELISATION : 'DIS_TR'
- )
- % systeme de maintien
- AFFE : ( GROUP_MA : maintien
- PHENOMENE:'MECANIQUE',
- MODELISATION:'POU_D_E'
- % MODELISATION:'POU_D_T'
- )
- );
-%
-% AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES
-%
- cara1 = AFFE_CARA_ELEM ( MODELE : mo1
-
-% Famille assemblage : numero_fam
-%
- % crayons
- POUTRE : ( GROUP_MA : cray
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % tube guide partie courante
- POUTRE : ( GROUP_MA : guid
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % tube guide partie retrecie
- POUTRE : ( GROUP_MA : retre
- SECTION : 'CERCLE'
- CARA : ( 'R','EP' )
- VALE : ( 3. 3. )
- )
- % grilles
- POUTRE : ( GROUP_MA : ( gril_i )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- POUTRE : ( GROUP_MA : ( gril_e )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- ORIENTATION : ( GROUP_MA : (gril_i , gril_e )
- CARA : 'VECT_Y'
- VALE : (1. 0. 0.)
- )
- % systeme de maintien
- POUTRE : ( GROUP_MA : (mainti_y , mainti_z )
- SECTION : 'RECTANGLE'
- CARA : ( 'HY','HZ' )
- VALE : ( 3. 3. )
- )
- ORIENTATION : ( GROUP_MA : (mainti_y )
- CARA : 'VECT_Y'
- VALE : (0. 1. 0.)
- )
- ORIENTATION : ( GROUP_MA : (mainti_z )
- CARA : 'VECT_Y'
- VALE : (0. 0. 1.)
- )
- % embout inferieur
- COQUE : ( GROUP_MA : eboinf
- EPAIS : 2.
- ANGL_REP : 90.
- )
- % pieds
- POUTRE : ( GROUP_MA : pi_ple
- SECTION : 'GENERALE'
- CARA : ( 'A' , 'IZ' , 'IY' , 'JX' )
- VALE : (1. 2. 3. 4.)
- )
- POUTRE : ( GROUP_MA : pi_tro
- SECTION : 'GENERALE'
- CARA : ( 'A' , 'IZ' , 'IY' , 'JX' )
- VALE : (1. 2. 3. 4. )
- )
- ORIENTATION : ( GROUP_MA : (pi_ple pi_tro )
- CARA : 'VECT_Y'
- VALE : (0. 1. 0.)
- )
-
- % embout superieur
- COQUE : ( GROUP_MA : ebosup
- EPAIS : 3.
- ANGL_REP : 90.
- )
-
- % liaison grille/crayon
- DISCRET : ( GROUP_MA : elasti
- CARA : 'K_TR_D_L'
- VALE : ( 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- )
- REPERE : 'LOCAL'
- )
- % liaison grille/tube guide
- DISCRET : ( GROUP_MA : rigid
- CARA : 'K_TR_D_L'
- VALE : ( 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- )
- REPERE : 'LOCAL'
- )
-
- ORIENTATION : ( GROUP_MA : (elasti
- rigid )
- CARA : 'VECT_Y'
- VALE : (1. 0. 0.) )
-
- );
-%
-% DEFINITION DES CHARGES ET CONDITIONS LIMITES
-% DEFINITION DES TEMPERATURES NODALES EVOLUTIVES
-%
- f_tp1_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
- f_tp2_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
- f_tp3_1 = DEFI_FONCTION ( NOM_PARA: 'X'
- NOM_RESU : 'TEMP'
- PROL_DROIT: 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 1.
- 5. 4. )
- );
-
- chtem1_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles
- crayons)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp1_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION :(f_tp1_1,f_tp1_1,f_tp1_1))
- );
-
- chtem2_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles
- crayons)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp2_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION :(f_tp2_1,f_tp2_1,f_tp2_1))
- );
-
- chtem3_1 = AFFE_CHAM_NO ( MAILLAGE : ma1
- GRANDEUR : 'TEMP_F'
- AFFE : ( GROUP_NO: (maintien, pieds
- tub_guid, grilles)
- NOM_CMP : 'TEMP'
- FONCTION : f_tp3_1 )
- AFFE : ( GROUP_NO: (embo_sup, embo_inf)
- NOM_CMP : ('TEMP_INF' 'TEMP'
- 'TEMP_SUP')
- FONCTION : (f_tp3_1,f_tp3_1,f_tp3_1))
- AFFE : ( GROUP_NO: crayons
- NOM_CMP : 'TEMP'
- FONCTION :f_tp3_1 )
- );
-
- chth_1 = CREA_RESU ( TYPE_RESU : 'EVOL_THER'
- NOM_CHAM : 'TEMP'
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 0. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 1000. )
- CHAM_GD : ( CHAM_NO : chtem2_1
- INST :2000. )
- CHAM_GD : ( CHAM_NO : chtem3_1
- INST : 3000. )
- CHAM_GD : ( CHAM_NO : chtem3_1
- INST : 4000. )
- CHAM_GD : ( CHAM_NO : chtem2_1
- INST : 5000. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 6000. )
- CHAM_GD : ( CHAM_NO : chtem1_1
- INST : 7000. )
- );
-
-% Chargement: charges thermo-mecaniques
-% ----------------------------------------
-
- therm_1 = AFFE_CHAR_MECA ( MODELE: mo1
- TEMP_CALCULEE : chth_1
- );
-
-
-
-% DEFINITION DES CONDITIONS LIMITES
-% DES CONDITIONS DE CONTACT
-%
-% Chargement: pesanteur
-%
- pesant_1 = AFFE_CHAR_MECA ( MODELE : mo1
- PESANTEUR : (9.81 -1. 0. 0. )
- );
-
-%
-% Conditions aux limites
-%
- cl_per_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % embout inferieur encastrement
- DDL_IMPO : ( GROUP_NO : fixati
- DX : 0. DY:0. DZ : 0.
- DRX : 0. DRY : 0. DRZ : 0.
- )
- % embout inferieur appui simple
- DDL_IMPO : ( GROUP_NO : appui
- DX : 0.
- )
- % embout superieur liaison guidee
- DDL_IMPO : ( GROUP_NO : ebguide
- DY:0. DZ : 0.
- DRX : 0. DRY : 0. DRZ : 0.
- )
- % liaison systeme de maintien embout superieur
- DDL_IMPO : ( GROUP_NO : (lias_1, lias_2)
- DRX : 0.
- )
- % liaison systeme de maintien embout superieur
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DX' DDL_2 : 'DX'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DY' DDL_2 : 'DY'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DZ' DDL_2 : 'DZ'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DRY' DDL_2 : 'DRY'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- LIAISON_GROUP : ( GROUP_NO_1 : lias_1
- GROUP_NO_2 : lias_2
- DDL_1 : 'DRZ' DDL_2 : 'DRZ'
- COEF_MULT_1 : 1.
- COEF_MULT_2 : -1.
- COEF_IMPO : 0. )
- );
-%
- cl_ctc = AFFE_CHAR_MECA ( MODELE : mo1
-
-
- CONTACT : ( APPARIEMENT : 'NODAL'
- GROUP_MA_1 : eboinf
- GROUP_MA_2 : mcrbas
- VECT_NORM_2 : (-1. 0. 0.)
- )
- INFO : 1
- );
-%
-% Deplacement du systeme de maintien
-%
-cldi_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE: 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-
- cl_di_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % deplacement du systeme de maintien
- DDL_IMPO : ( GROUP_NO : main_sup
- DX : -1.
- )
- );
-
-% DEFINITION DES FORCES EXTERIEURES
-%
-% Fonction multiplicative de la force hydrodynamique normee
-%
-hydr_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-%
-% Profil des forces hydrodynamiques tubes guides a froid
-%
-
-
- hyfrtu_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 1.
- 5. 2. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Profil des forces hydrodynamiques crayon a froid
-%
-
-
- hyfrcr_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : (0. 1.
- 5. 2. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-
-% Chargement : Forces hydrodynamiques
-%
- hydr_1 = AFFE_CHAR_MECA ( MODELE : mo1
-
- % embout superieur
- FORCE_COQUE : ( GROUP_MA : ebosup
- FX : 10. )
- % embout inferieur
- FORCE_COQUE : ( GROUP_MA : eboinf
- FX : 10. )
- % grille superieure
- FORCE_POUTRE : ( GROUP_MA : (gril10 )
- FX : 10. )
- % grille inferieure
- FORCE_POUTRE : ( GROUP_MA : (gril1 )
- FX : 10. )
- % grille de melange
- FORCE_POUTRE : ( GROUP_MA : (gril2 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril3 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril4 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril5 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril6 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril7 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril8 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril9 )
- FX : 10. )
- );
- toto_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
- fohydr_1 = AFFE_CHAR_MECA_F ( MODELE : mo1
-
- % tubes guides et tube d'instrumentation
- FORCE_POUTRE : ( GROUP_MA : (guid )
- FX : toto_1 )
- % crayons
- FORCE_POUTRE : ( GROUP_MA : cray
- FX : toto_1 )
- );
-%
-% Profil des forces d'Archimede tube guide
-%
-
-
- arfrtu_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Profil des forces d'Archimede crayon
-%
-
-
- arfrcr_1 = DEFI_FONCTION (
- NOM_PARA : 'X'
- VALE : ( 0. 10.
- 5. 10. )
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- );
-%
-% Fonction multiplicative de la force d'Archimede
-%
-arch_f1 = DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 0.
- 1000. 0.1
- 2000. 0.2
- 3000. 0.2
- 4000. 0.2
- 5000. 0.2
- 6000. 0.1
- 7000. 0.1 )
- );
-%
-
-%
-% Chargement : Forces d'Archimede
-% ----------------------------------------
-%
- arch_1 = AFFE_CHAR_MECA ( MODELE : mo1
- % systeme de maintien
- FORCE_POUTRE : ( GROUP_MA : maintien
- FX : 10. )
- % embout superieur
- FORCE_COQUE : ( GROUP_MA : ebosup
- FX : 10. )
- % embout inferieur
- FORCE_COQUE : ( GROUP_MA : eboinf
- FX : 10. )
- % grille superieure
- FORCE_POUTRE : ( GROUP_MA : (gril10 )
- FX : 10. )
- % grille inferieure
- FORCE_POUTRE : ( GROUP_MA : (gril1 )
- FX : 10. )
- % grille de melange
- FORCE_POUTRE : ( GROUP_MA : (gril2 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril3 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril4 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril5 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril6 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril7 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril8 )
- FX : 10. )
- FORCE_POUTRE : ( GROUP_MA : (gril9 )
- FX : 10. )
- );
- foarch_1 = AFFE_CHAR_MECA_F ( MODELE : mo1
-
- % tubes guides et tube d'instrumentation
- FORCE_POUTRE : ( GROUP_MA : guid
- FX : arch_f1 )
- % crayons
- FORCE_POUTRE : ( GROUP_MA : cray
- FX :arch_f1 )
- );
-%
-%
-% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON
-%
-%
-
-%
-%
-%
-% definition de la liste d'instants
-%
- l_frig = DEFI_LIST_REEL( Debut: 0.0
- Intervalle : (Jusqu_a: 1000. Nombre: 100)
- );
-%
-% Inrterpretation des fonctions
-%
-f1=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f2=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f3=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f4=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f5=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f6=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f7=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f8=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f9=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-f10=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00 ) );
-
- frig1 = CALC_FONC_INTERP ( FONCTION : f1
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig2 = CALC_FONC_INTERP ( FONCTION : f2
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig3 = CALC_FONC_INTERP ( FONCTION : f3
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig4 = CALC_FONC_INTERP ( FONCTION : f4
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig5 = CALC_FONC_INTERP ( FONCTION : f5
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig6 = CALC_FONC_INTERP ( FONCTION : f6
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig7 = CALC_FONC_INTERP ( FONCTION : f7
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig8 = CALC_FONC_INTERP ( FONCTION : f8
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig9 = CALC_FONC_INTERP ( FONCTION : f9
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
- frig10= CALC_FONC_INTERP ( FONCTION : f10
- LIST_PARA : l_frig
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- INTERPOL : 'LIN'
- );
-%
-% DEFINITION DU FLUX NEUTRONIQUE RADIAL
-
-flux_f1=DEFI_FONCTION ( NOM_PARA : 'INST'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (
- 0.00000E+00 0.00000E+00
- 4.32000E+04 0.00000E+00
- 9.74520E+05 4.53280E+05
- 2.63880E+06 2.07785E+06
- 4.08780E+06 3.51279E+06
- 5.42844E+06 4.85677E+06
- 7.24500E+06 6.67627E+06
- 8.85348E+06 8.27977E+06
- 1.04609E+07 9.87261E+06
- 1.22029E+07 1.15869E+07
- 1.39446E+07 1.32952E+07
- 1.41437E+07 1.34902E+07
- 1.55632E+07 1.48753E+07
- 1.72361E+07 1.65069E+07
- 1.79482E+07 1.71992E+07
- 1.81901E+07 1.74334E+07
- 1.81937E+07 1.74352E+07
- 1.81973E+07 1.74352E+07
- 1.82009E+07 1.74352E+07
- )
- ) ;
-% Definition du flux axial pour le cycle 1
-
-fluxax1 = LIRE_FONCTION ( UNITE : 60
- PROL_GAUCHE : 'CONSTANT'
- PROL_DROIT : 'CONSTANT'
- );
-
- fly_1_1 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 3.8032834757835D-07
- -8.8200000000000D-02 3.8083689458689D-07
- -7.5600000000000D-02 3.8296082621083D-07
- -6.3000000000000D-02 3.8584009971510D-07
- -5.0400000000000D-02 3.8946100427350D-07
- -3.7800000000000D-02 3.9259455128205D-07
- -2.5200000000000D-02 3.9258457977208D-07
- -1.2600000000000D-02 3.9294106125356D-07
- 0. 3.9399554843305D-07
- 1.2600000000000D-02 3.9293233618234D-07
- 2.5200000000000D-02 3.9256712962963D-07
- 3.7800000000000D-02 3.9256712962963D-07
- 5.0400000000000D-02 3.8942610398860D-07
- 6.3000000000000D-02 3.8579522792023D-07
- 7.5600000000000D-02 3.8290972222222D-07
- 8.8200000000000D-02 3.8077706552707D-07
- 1.0080000000000D-01 3.8026103988604D-07
- ) ) ;
-
- fly_1_2 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 4.3595566239316D-07
- -8.8200000000000D-02 4.3866542022792D-07
- -7.5600000000000D-02 4.4331463675214D-07
- -6.3000000000000D-02 4.4911556267806D-07
- -5.0400000000000D-02 4.5750658831909D-07
- -3.7800000000000D-02 4.6647222222222D-07
- -2.5200000000000D-02 4.6002938034188D-07
- -1.2600000000000D-02 4.6004309116809D-07
- 0. 4.6686235754986D-07
- 1.2600000000000D-02 4.6003311965812D-07
- 2.5200000000000D-02 4.6000943732194D-07
- 3.7800000000000D-02 4.6643981481481D-07
- 5.0400000000000D-02 4.5746420940171D-07
- 6.3000000000000D-02 4.4906445868946D-07
- 7.5600000000000D-02 4.4325356125356D-07
- 8.8200000000000D-02 4.3859686609687D-07
- 1.0080000000000D-01 4.3587838319088D-07
- ) ) ;
-
- fly_1_3 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 4.9431891025641D-07
- -8.8200000000000D-02 5.0005128205128D-07
- -7.5600000000000D-02 5.1337197293447D-07
- -6.3000000000000D-02 5.2915313390313D-07
- -5.0400000000000D-02 5.3788069800570D-07
- -3.7800000000000D-02 5.3504629629630D-07
- -2.5200000000000D-02 5.3221189458689D-07
- -1.2600000000000D-02 5.3136431623932D-07
- 0. 5.3135870726496D-07
- 1.2600000000000D-02 5.3135309829060D-07
- 2.5200000000000D-02 5.3218696581197D-07
- 3.7800000000000D-02 5.3500827991453D-07
- 5.0400000000000D-02 5.3782959401709D-07
- 6.3000000000000D-02 5.2909205840456D-07
- 7.5600000000000D-02 5.1330217236467D-07
- 8.8200000000000D-02 4.9997150997151D-07
- 1.0080000000000D-01 4.9423165954416D-07
- ) ) ;
-
- fly_1_4 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 5.5489957264957D-07
- -8.8200000000000D-02 5.6477884615385D-07
- -7.5600000000000D-02 5.9007781339031D-07
- -6.3000000000000D-02 5.9726415598291D-07
- -5.0400000000000D-02 6.0445049857550D-07
- -3.7800000000000D-02 5.9840776353276D-07
- -2.5200000000000D-02 5.8440651709402D-07
- -1.2600000000000D-02 5.8263906695157D-07
- 0. 5.9153240740741D-07
- 1.2600000000000D-02 5.8262660256410D-07
- 2.5200000000000D-02 5.8438034188034D-07
- 3.7800000000000D-02 5.9836663105413D-07
- 5.0400000000000D-02 6.0439316239316D-07
- 6.3000000000000D-02 5.9719497863248D-07
- 7.5600000000000D-02 5.8999679487179D-07
- 8.8200000000000D-02 5.6469159544160D-07
- 1.0080000000000D-01 5.5480110398860D-07
- ) ) ;
-
- fly_1_5 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.1267200854701D-07
- -8.8200000000000D-02 6.2962357549858D-07
- -7.5600000000000D-02 6.5655413105413D-07
- -6.3000000000000D-02 6.6164583333333D-07
- -5.0400000000000D-02 6.5190242165242D-07
- -3.7800000000000D-02 6.5212678062678D-07
- -2.5200000000000D-02 6.3746616809117D-07
- -1.2600000000000D-02 6.3547435897436D-07
- 0. 6.4509686609687D-07
- 1.2600000000000D-02 6.3546064814815D-07
- 2.5200000000000D-02 6.3743625356125D-07
- 3.7800000000000D-02 6.5207941595442D-07
- 5.0400000000000D-02 6.5183885327635D-07
- 6.3000000000000D-02 6.6156980056980D-07
- 7.5600000000000D-02 6.5646563390313D-07
- 8.8200000000000D-02 6.2952386039886D-07
- 1.0080000000000D-01 6.1256356837607D-07
- ) ) ;
-
- fly_1_6 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.5755128205128D-07
- -8.8200000000000D-02 6.8336253561254D-07
- -7.5600000000000D-02 6.9012072649573D-07
- -6.3000000000000D-02 6.9687891737892D-07
- -5.0400000000000D-02 6.9362571225071D-07
- -3.7800000000000D-02 6.9074768518519D-07
- -2.5200000000000D-02 6.8786965811966D-07
- -1.2600000000000D-02 6.8586413817664D-07
- 0. 6.8585603632479D-07
- 1.2600000000000D-02 6.8584793447293D-07
- 2.5200000000000D-02 6.8783600427350D-07
- 3.7800000000000D-02 6.9069720441595D-07
- 5.0400000000000D-02 6.9355840455840D-07
- 6.3000000000000D-02 6.9679789886040D-07
- 7.5600000000000D-02 6.9002412749288D-07
- 8.8200000000000D-02 6.8325035612536D-07
- 1.0080000000000D-01 6.5743162393162D-07
- ) ) ;
-
- fly_1_7 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 6.9684526353276D-07
- -8.8200000000000D-02 7.1406606125356D-07
- -7.5600000000000D-02 7.3236502849003D-07
- -6.3000000000000D-02 7.2076442307692D-07
- -5.0400000000000D-02 7.1793500712251D-07
- -3.7800000000000D-02 7.2835648148148D-07
- -2.5200000000000D-02 7.1444747150997D-07
- -1.2600000000000D-02 7.1130893874644D-07
- 0. 7.2107727920228D-07
- 1.2600000000000D-02 7.1129398148148D-07
- 2.5200000000000D-02 7.1441257122507D-07
- 3.7800000000000D-02 7.2830288461538D-07
- 5.0400000000000D-02 7.1786396011396D-07
- 6.3000000000000D-02 7.2067841880342D-07
- 7.5600000000000D-02 7.3226157407407D-07
- 8.8200000000000D-02 7.1395138888889D-07
- 1.0080000000000D-01 6.9671812678063D-07
- ) ) ;
-
- fly_1_8 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.3679362535613D-07
- -8.8200000000000D-02 7.5423130341880D-07
- -7.5600000000000D-02 7.7215633903134D-07
- -6.3000000000000D-02 7.5865740740741D-07
- -5.0400000000000D-02 7.5547774216524D-07
- -3.7800000000000D-02 7.6662464387464D-07
- -2.5200000000000D-02 7.5088461538462D-07
- -1.2600000000000D-02 7.4313924501424D-07
- 0. 7.4863230056980D-07
- 1.2600000000000D-02 7.4312054843305D-07
- 2.5200000000000D-02 7.5084722222222D-07
- 3.7800000000000D-02 7.6656730769231D-07
- 5.0400000000000D-02 7.5540170940171D-07
- 6.3000000000000D-02 7.5856267806268D-07
- 7.5600000000000D-02 7.7204415954416D-07
- 8.8200000000000D-02 7.5410790598291D-07
- 1.0080000000000D-01 7.3665776353276D-07
- ) ) ;
-
- fly_1_9 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.7370940170940D-07
- -8.8200000000000D-02 8.0144764957265D-07
- -7.5600000000000D-02 8.0374358974359D-07
- -6.3000000000000D-02 8.0603952991453D-07
- -5.0400000000000D-02 8.0238372507123D-07
- -3.7800000000000D-02 7.9936672008547D-07
- -2.5200000000000D-02 7.9634971509972D-07
- -1.2600000000000D-02 7.8317361111111D-07
- 0. 7.8316426282051D-07
- 1.2600000000000D-02 7.8315491452991D-07
- 2.5200000000000D-02 7.9631107549858D-07
- 3.7800000000000D-02 7.9930689102564D-07
- 5.0400000000000D-02 8.0230270655271D-07
- 6.3000000000000D-02 8.0593856837607D-07
- 7.5600000000000D-02 8.0362580128205D-07
- 8.8200000000000D-02 8.0131303418803D-07
- 1.0080000000000D-01 7.7356356837607D-07
- ) ) ;
-
- fly_1_10 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 7.9424198717949D-07
- -8.8200000000000D-02 8.1225925925926D-07
- -7.5600000000000D-02 8.3075516381766D-07
- -6.3000000000000D-02 8.1540651709402D-07
- -5.0400000000000D-02 8.1131071937322D-07
- -3.7800000000000D-02 8.2297489316239D-07
- -2.5200000000000D-02 8.0577403846154D-07
- -1.2600000000000D-02 7.9717236467236D-07
- 0. 8.0284615384615D-07
- 1.2600000000000D-02 7.9715117521368D-07
- 2.5200000000000D-02 8.0573165954416D-07
- 3.7800000000000D-02 8.2291257122507D-07
- 5.0400000000000D-02 8.1122845441595D-07
- 6.3000000000000D-02 8.1530306267806D-07
- 7.5600000000000D-02 8.3063051994302D-07
- 8.8200000000000D-02 8.1211841168091D-07
- 1.0080000000000D-01 7.9408742877493D-07
- ) ) ;
-
- fly_1_11 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.1647845441595D-07
- -8.8200000000000D-02 8.3510648148148D-07
- -7.5600000000000D-02 8.5487873931624D-07
- -6.3000000000000D-02 8.3969088319088D-07
- -5.0400000000000D-02 8.3502920227920D-07
- -3.7800000000000D-02 8.4651014957265D-07
- -2.5200000000000D-02 8.2973931623932D-07
- -1.2600000000000D-02 8.2549269943020D-07
- 0. 8.3637909544160D-07
- 1.2600000000000D-02 8.2547275641026D-07
- 2.5200000000000D-02 8.2969319800570D-07
- 3.7800000000000D-02 8.4644408831909D-07
- 5.0400000000000D-02 8.3493945868946D-07
- 6.3000000000000D-02 8.3957995014245D-07
- 7.5600000000000D-02 8.5474786324786D-07
- 8.8200000000000D-02 8.3495690883191D-07
- 1.0080000000000D-01 8.1631641737892D-07
- ) ) ;
-
- fly_1_12 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.3948272792023D-07
- -8.8200000000000D-02 8.7002546296296D-07
- -7.5600000000000D-02 8.7608564814815D-07
- -6.3000000000000D-02 8.8214583333333D-07
- -5.0400000000000D-02 8.7589245014245D-07
- -3.7800000000000D-02 8.7128872863248D-07
- -2.5200000000000D-02 8.6668500712251D-07
- -1.2600000000000D-02 8.6321616809117D-07
- 0. 8.6320432692308D-07
- 1.2600000000000D-02 8.6319248575499D-07
- 2.5200000000000D-02 8.6663764245014D-07
- 3.7800000000000D-02 8.7121705840456D-07
- 5.0400000000000D-02 8.7579647435897D-07
- 6.3000000000000D-02 8.8202617521368D-07
- 7.5600000000000D-02 8.7594667022792D-07
- 8.8200000000000D-02 8.6986716524217D-07
- 1.0080000000000D-01 8.3931196581197D-07
- ) ) ;
-
- fly_1_13 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5508315527066D-07
- -8.8200000000000D-02 8.7546616809117D-07
- -7.5600000000000D-02 9.0944533475783D-07
- -6.3000000000000D-02 9.1292663817664D-07
- -5.0400000000000D-02 8.9653721509972D-07
- -3.7800000000000D-02 8.9547275641026D-07
- -2.5200000000000D-02 8.7405644586895D-07
- -1.2600000000000D-02 8.7004789886040D-07
- 0. 8.8226549145299D-07
- 1.2600000000000D-02 8.7002546296296D-07
- 2.5200000000000D-02 8.7400534188034D-07
- 3.7800000000000D-02 8.9539672364672D-07
- 5.0400000000000D-02 8.9643376068376D-07
- 6.3000000000000D-02 9.1279825498576D-07
- 7.5600000000000D-02 9.0929576210826D-07
- 8.8200000000000D-02 8.7530288461538D-07
- 1.0080000000000D-01 8.5490491452991D-07
- ) ) ;
-
- fly_1_14 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5798237179487D-07
- -8.8200000000000D-02 8.6880893874644D-07
- -7.5600000000000D-02 9.0299750712251D-07
- -6.3000000000000D-02 9.0948646723647D-07
- -5.0400000000000D-02 9.1597542735043D-07
- -3.7800000000000D-02 9.0500302706553D-07
- -2.5200000000000D-02 8.8214084757835D-07
- -1.2600000000000D-02 8.7779825498575D-07
- 0. 8.8993732193732D-07
- 1.2600000000000D-02 8.7777207977208D-07
- 2.5200000000000D-02 8.8208974358974D-07
- 3.7800000000000D-02 9.0492325498576D-07
- 5.0400000000000D-02 9.1586574074074D-07
- 6.3000000000000D-02 9.0935434472934D-07
- 7.5600000000000D-02 9.0284294871795D-07
- 8.8200000000000D-02 8.6864066951567D-07
- 1.0080000000000D-01 8.5779665242165D-07
- ) ) ;
-
- fly_1_15 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5773557692308D-07
- -8.8200000000000D-02 8.6180893874644D-07
- -7.5600000000000D-02 8.7862838319088D-07
- -6.3000000000000D-02 8.9924074074074D-07
- -5.0400000000000D-02 9.0872489316239D-07
- -3.7800000000000D-02 9.0174545940171D-07
- -2.5200000000000D-02 8.9476602564103D-07
- -1.2600000000000D-02 8.9122364672365D-07
- 0. 8.9120993589744D-07
- 1.2600000000000D-02 8.9119622507123D-07
- 2.5200000000000D-02 8.9471118233618D-07
- 3.7800000000000D-02 9.0166132478632D-07
- 5.0400000000000D-02 9.0861146723647D-07
- 6.3000000000000D-02 8.9910363247863D-07
- 7.5600000000000D-02 8.7847257834758D-07
- 8.8200000000000D-02 8.6163693019943D-07
- 1.0080000000000D-01 8.5754362535613D-07
- ) ) ;
-
- fly_1_16 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.5903935185185D-07
- -8.8200000000000D-02 8.5690046296296D-07
- -7.5600000000000D-02 8.5831018518519D-07
- -6.3000000000000D-02 8.6167307692308D-07
- -5.0400000000000D-02 8.7125320512821D-07
- -3.7800000000000D-02 8.8563586182336D-07
- -2.5200000000000D-02 8.7089298433048D-07
- -1.2600000000000D-02 8.6842877492877D-07
- 0. 8.7942111823362D-07
- 1.2600000000000D-02 8.6840135327635D-07
- 2.5200000000000D-02 8.7083814102564D-07
- 3.7800000000000D-02 8.8554985754986D-07
- 5.0400000000000D-02 8.7113977920228D-07
- 6.3000000000000D-02 8.6153846153846D-07
- 7.5600000000000D-02 8.5815313390313D-07
- 8.8200000000000D-02 8.5672471509972D-07
- 1.0080000000000D-01 8.5884116809117D-07
- ) ) ;
-
- fly_1_17 = DEFI_FONCTION (
- NOM_PARA : 'Y'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- VALE : (
- -1.0080000000000D-01 8.6388675213675D-07
- -8.8200000000000D-02 8.5563782051282D-07
- -7.5600000000000D-02 8.5087019230769D-07
- -6.3000000000000D-02 8.4755965099715D-07
- -5.0400000000000D-02 8.4761698717949D-07
- -3.7800000000000D-02 8.5133636039886D-07
- -2.5200000000000D-02 8.4844088319088D-07
- -1.2600000000000D-02 8.4633689458689D-07
- 0. 8.4644658119658D-07
- 1.2600000000000D-02 8.4630947293447D-07
- 2.5200000000000D-02 8.4838479344729D-07
- 3.7800000000000D-02 8.5125160256410D-07
- 5.0400000000000D-02 8.4750480769231D-07
- 6.3000000000000D-02 8.4742378917379D-07
- 7.5600000000000D-02 8.5071064814815D-07
- 8.8200000000000D-02 8.5545584045584D-07
- 1.0080000000000D-01 8.6368108974359D-07
- ) ) ;
-
- fluxrd1 = DEFI_NAPPE (
- NOM_PARA : 'Z'
- PROL_DROIT :'CONSTANT'
- PROL_GAUCHE :'CONSTANT'
- PARA : (
- -1.0080000000000D-01
- -8.8200000000000D-02
- -7.5600000000000D-02
- -6.3000000000000D-02
- -5.0400000000000D-02
- -3.7800000000000D-02
- -2.5200000000000D-02
- -1.2600000000000D-02
- 0.
- 1.2600000000000D-02
- 2.5200000000000D-02
- 3.7800000000000D-02
- 5.0400000000000D-02
- 6.3000000000000D-02
- 7.5600000000000D-02
- 8.8200000000000D-02
- 1.0080000000000D-01
- )
- FONCTION : (
- fly_1_1
- fly_1_2
- fly_1_3
- fly_1_4
- fly_1_5
- fly_1_6
- fly_1_7
- fly_1_8
- fly_1_9
- fly_1_10
- fly_1_11
- fly_1_12
- fly_1_13
- fly_1_14
- fly_1_15
- fly_1_16
- fly_1_17
- )
- );
-%
-% DEFINITION DES MATERIAUX ET AFFECTATIONS
-%
-% **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE ****
-%
-%
-
-
-% Famille assemblage : numero_fam
-%
-% Embout superieur
-
-e_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-nu_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-al_es = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
- mt_es = DEFI_MATERIAU ( ELAS_FO : ( E : e_es
- NU : nu_es
- ALPHA : al_es
- RHO : 7800.
- )
- );
-% Embout inferieur
-
-e_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-nu_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
-al_ei = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 100. 2.
- 300. 3. )
- );
- mt_ei = DEFI_MATERIAU ( ELAS_FO : ( E : e_ei
- NU : nu_ei
- ALPHA : al_ei
- RHO : 12.
- )
- );
- mt_rig = DEFI_MATERIAU ( ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0.)
- );
-% Fonction couple en fonction de drz pour la liaison grille/crayon
-
- fotrac= DEFI_FONCTION ( NOM_PARA : 'DRZ'
- VALE : ( 1. 1.
- 0. 0.
- 0. 0.
- 0. 0.
- )
- PROL_DROIT : 'LINEAIRE'
- PROL_GAUCHE: 'LINEAIRE' );
-
-
- mt_re1 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO:frig1
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re2 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig2
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re3 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig3
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re4 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig4
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re5 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig5
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re6 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig6
- EFFO_N_INIT :-35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re7 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig7
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re8 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig8
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re9 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO :frig9
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
- mt_re10 = DEFI_MATERIAU ( DIS_CONTACT : (COULOMB : 1.
- RELA_MZ : fotrac
- RIGI_N_FO : frig10
- EFFO_N_INIT : -35.)
- ELAS : ( E : 1.
- NU : 0.
- ALPHA : 0.
- RHO : 0. )
- );
-
-
-% Systeme de maintien
-
- e_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- nu_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- al_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- sy_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- ds_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- np_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mey_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mpy_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mez_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
- mpz_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : (0. 1.
- 5. 2. )
- );
-
- cay_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- cby_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- caz_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- cbz_ma = DEFI_CONSTANTE ( VALE : 0.3 );
-
- mpx_ma = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-mt_ma = DEFI_MATERIAU ( ELAS_FO : ( E : e_ma
- NU : nu_ma
- ALPHA : al_ma
- RHO : 7800. )
- ECRO_LINE_FO: ( D_SIGM_EPSI:ds_ma
- SY : sy_ma )
- VMIS_POUTRE_FO: ( NP : np_ma
- MEY: mey_ma
- MPY: mpy_ma
- CAY: cay_ma
- CBY: cby_ma
- MEZ: mez_ma
- MPZ: mpz_ma
- CAZ: caz_ma
- CBZ: cbz_ma
- MPX: mpx_ma )
- );
-
-%
-% **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE ****
-%
-%
-
-% Grille
-
-
-
-e_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-e_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-nu_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-nu_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_gre = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_grm = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-% Tube guide
-
-e_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2.
- )
- );
-
-nu_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_tu = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-
-
-
-% Crayon
-
-e_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2.
- )
- );
-
-nu_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-al_cr = DEFI_FONCTION ( NOM_PARA : 'TEMP'
- PROL_DROIT : 'CONSTANT'
- PROL_GAUCHE : 'CONSTANT'
- VALE : ( 0. 1.
- 5. 2. )
- );
-
-
-% GRANDISSEMENT DES GRILLES
-
-
-
-% Grilles extremes 1 et 10
-
-mt_gre1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_gre
- NU : nu_gre
- ALPHA : al_gre
- RHO : 7800. )
- GRAN_IRRA:( FLUX_L :fluxax1
- FLUX_TN :fluxrd1
- FONC_MULT:flux_f1
- A : 0.
- S : 1. )
- LEMAITRE :( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 1. )
- );
-
-% Grilles de melange
-
-mt_grm1= DEFI_MATERIAU ( ELAS_FO : ( E : e_grm
- NU : nu_grm
- ALPHA : al_grm
- RHO : 7800. )
- GRAN_IRRA: ( FLUX_L :fluxax1
- FLUX_TN :fluxrd1
- FONC_MULT:flux_f1
- A : 0.
- S : 1. )
- LEMAITRE : (N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2. )
- );
-
-% Definition des materiaux viscoplastiques ( tubes et crayons )
-
-
-mt_tu1 = DEFI_MATERIAU ( ELAS_FO : ( E : e_tu
- NU : nu_tu
- ALPHA : al_tu
- RHO : 7800. )
- GRAN_IRRA: ( FLUX_L : fluxax1
- FLUX_TN : fluxrd1
- FONC_MULT: flux_f1
- A : 0.
- S : 1.)
- LEMAITRE : ( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2.)
- );
-
-
- mt_cr1 = DEFI_MATERIAU (ELAS_FO : ( E : e_cr
- NU : nu_cr
- ALPHA : al_cr
- RHO :7800. )
- GRAN_IRRA: ( FLUX_L : fluxax1
- FLUX_TN : fluxrd1
- FONC_MULT: flux_f1
- A : 0.
- S : 1.)
- LEMAITRE : ( N : 0.
- UN_SUR_K : 0.
- UN_SUR_M : 0.
- QSR_K : 2.)
-
- );
-
-%
-% AFFECTATION DES MATERIAUX A CHAUD - CYCLE
-%
-%
- a_mat_1 = AFFE_MATERIAU ( MAILLAGE : ma1
-
- % systeme de maintien
- AFFE : ( GROUP_MA : (mainti_y, mainti_z)
- MATER : mt_ma
- TEMP_REF: 100.
- )
- % grilles de melange
- AFFE : ( GROUP_MA : gril_i
- MATER : mt_grm1
- TEMP_REF: 100.
- )
- % grilles de extremes
- AFFE : ( GROUP_MA : gril_e
- MATER : mt_gre1
- TEMP_REF: 100.
- )
- % crayons combustibles
- AFFE : ( GROUP_MA : cray
- MATER : mt_cr1
- TEMP_REF: 100.
- )
- % tubes guides
- AFFE : ( GROUP_MA : guid
- MATER : mt_tu1
- TEMP_REF: 100.
- )
- % embout inferieur
- AFFE : ( GROUP_MA : eboinf
- MATER : mt_ei
- TEMP_REF: 100.
- )
- %pieds
- AFFE : ( GROUP_MA :(pi_ple, pi_tro)
- MATER : mt_ei
- TEMP_REF: 100.
- )
-
- % embout superieur
- AFFE : ( GROUP_MA : ebosup
- MATER : mt_es
- TEMP_REF: 100.
- )
- % liaison grille tubes guides
- AFFE : ( GROUP_MA : rigid
- MATER : mt_rig
- TEMP_REF: 100.
- )
-
- % liaison grille crayon
- AFFE : ( GROUP_MA : ela1
- MATER : mt_re1
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela2
- MATER : mt_re2
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela3
- MATER : mt_re3
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela4
- MATER : mt_re4
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela5
- MATER : mt_re5
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela6
- MATER : mt_re6
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela7
- MATER : mt_re7
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela8
- MATER : mt_re8
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela9
- MATER : mt_re9
- TEMP_REF: 100.
- )
- AFFE : ( GROUP_MA : ela10
- MATER : mt_re10
- TEMP_REF: 100.
- )
- );
-%
-
-
- L_INST_1 = DEFI_LIST_REEL(
- DEBUT: 0.0
- INTERVALLE : (JUSQU_A: 0.5 NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 1000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 2000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 3000. NOMBRE: 5 )
- INTERVALLE : (JUSQU_A: 4000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 5000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 6000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 7000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 8000. NOMBRE: 1 ));
-
- L_ARCH_1 = DEFI_LIST_REEL(
- DEBUT: 0.0
- INTERVALLE : (JUSQU_A: 0.5 NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 1000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 2000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 3000. NOMBRE: 5 )
- INTERVALLE : (JUSQU_A: 4000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 5000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 6000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 7000. NOMBRE: 1 )
- INTERVALLE : (JUSQU_A: 8000. NOMBRE: 1 ));
-
-%
-% CALCUL PHASE I A V DU CYCLE 1
-%
-
- RESU = STAT_NON_LINE( MODELE : mo1
- CHAM_MATER : a_mat_1
- CARA_ELEM : cara1
- EXCIT :( CHARGE : arch_1 FONC_MULT: arch_f1 )
- EXCIT :( CHARGE : foarch_1 FONC_MULT: arch_f1 )
- EXCIT :( CHARGE : hydr_1 FONC_MULT: hydr_f1 )
- EXCIT :( CHARGE : fohydr_1 FONC_MULT: hydr_f1 )
- EXCIT :( CHARGE : cl_di_1 FONC_MULT: cldi_f1 )
- EXCIT :( CHARGE : cl_per_1 )
- EXCIT :( CHARGE : cl_ctc )
- EXCIT :( CHARGE : pesant_1 )
- EXCIT :( CHARGE : therm_1 )
- COMP_INCR :(RELATION :'VMIS_POU_LINE'
- GROUP_MA : maintien)
- COMP_INCR :(RELATION :'ASSE_COMBU'
- GROUP_MA : (crayons tub_guid ))
- COMP_INCR :( RELATION :'DIS_CONTACT'
- GROUP_MA : li_gr_cr)
- COMP_INCR :(RELATION :'ELAS'
- COQUE_NCOU : 1
- GROUP_MA :(embo_inf embo_sup pieds
- grilles li_gr_gu ))
-
- INCREMENT :( LIST_INST : l_inst_1
- NUME_INST_FIN : 20
- )
-
- NEWTON : ( MATRICE : 'TANGENTE'
- REAC_ITER : 1 )
- RECH_LINEAIRE : (ITER_LINE_MAXI: 3)
- CONVERGENCE : (RESI_GLOB_RELA: 1.E-4
- ITER_GLOB_MAXI: 50
- ITER_INTE_MAXI: 500
- ARRET : 'OUI' )
- SOLVEUR : ( METHODE : 'MULT_FRONT'
- RENUM : 'MD' )
- PARM_THETA : 0.5
- ARCHIVAGE : ( LIST_INST : l_arch_1)
- );
-
-fin();
+++ /dev/null
-
-
-DEBUT();
-# LECTURE DES PARAMETRES
-#
-# LECTURE DES TEMPS
-#CYCLE 1
-# LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS
-
-
-PRE_GIBI();
-#
-
-
-MA1=LIRE_MAILLAGE();
-#
-
-
-MA1=DEFI_GROUP(reuse =MA1,
- CREA_GROUP_NO=_F(GROUP_MA=('FIXATI','APPUI','LIAS_1','LIAS_2','EBGUIDE','MAINTIEN','MAIN_SUP','EMBO_SUP','TUB_GUID',
- 'GRILLES','EMBO_INF','PIEDS','CRAYONS',),),
- MAILLAGE=MA1,);
-#
-# AFFECTATION DU MODELE
-#
-
-
-MO1=AFFE_MODELE(AFFE=(_F(GROUP_MA='CRAYONS',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),
- _F(GROUP_MA='TUB_GUID',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),
- _F(GROUP_MA=('EMBO_SUP','EMBO_INF',),
- PHENOMENE='MECANIQUE',
- MODELISATION='DKT',),
- _F(GROUP_MA='PIEDS',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),
- _F(GROUP_MA='GRILLES',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),
- _F(GROUP_MA='LI_GR_CR',
- PHENOMENE='MECANIQUE',
- MODELISATION='DIS_TR',),
- _F(GROUP_MA='LI_GR_GU',
- PHENOMENE='MECANIQUE',
- MODELISATION='DIS_TR',),
- _F(GROUP_MA='MAINTIEN',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),),
- MAILLAGE=MA1,);
-#
-# AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES
-#
-
-
-CARA1=AFFE_CARA_ELEM(MODELE=MO1,
- COQUE=(_F(ANGL_REP=90.0,
- GROUP_MA='EBOINF',
- EPAIS=2.0,),
- _F(ANGL_REP=90.0,
- GROUP_MA='EBOSUP',
- EPAIS=3.0,),),
- DISCRET=(_F(VALE=(1.0,2.0,3.0,4.0,5.0,6.0,),
- REPERE='LOCAL',
- CARA='K_TR_D_L',
- GROUP_MA='ELASTI',),
- _F(VALE=(1.0,2.0,3.0,4.0,5.0,6.0,),
- REPERE='LOCAL',
- CARA='K_TR_D_L',
- GROUP_MA='RIGID',),),
- ORIENTATION=(_F(VALE=(1.0,0.0,0.0,),
- CARA='VECT_Y',
- GROUP_MA=('GRIL_I','GRIL_E',),),
- _F(VALE=(0.0,1.0,0.0,),
- CARA='VECT_Y',
- GROUP_MA='MAINTI_Y',),
- _F(VALE=(0.0,0.0,1.0,),
- CARA='VECT_Y',
- GROUP_MA='MAINTI_Z',),
- _F(VALE=(0.0,1.0,0.0,),
- CARA='VECT_Y',
- GROUP_MA=('PI_PLE','PI_TRO',),),
- _F(VALE=(1.0,0.0,0.0,),
- CARA='VECT_Y',
- GROUP_MA=('ELASTI','RIGID',),),),
- POUTRE=(_F(SECTION='CERCLE',
- GROUP_MA='CRAY',
- VALE=(3.0,3.0,),
- CARA=('R','EP',),),
- _F(SECTION='CERCLE',
- GROUP_MA='GUID',
- VALE=(3.0,3.0,),
- CARA=('R','EP',),),
- _F(SECTION='CERCLE',
- GROUP_MA='RETRE',
- VALE=(3.0,3.0,),
- CARA=('R','EP',),),
- _F(SECTION='RECTANGLE',
- GROUP_MA='GRIL_I',
- VALE=(3.0,3.0,),
- CARA=('HY','HZ',),),
- _F(SECTION='RECTANGLE',
- GROUP_MA='GRIL_E',
- VALE=(3.0,3.0,),
- CARA=('HY','HZ',),),
- _F(SECTION='RECTANGLE',
- GROUP_MA=('MAINTI_Y','MAINTI_Z',),
- VALE=(3.0,3.0,),
- CARA=('HY','HZ',),),
- _F(SECTION='GENERALE',
- GROUP_MA='PI_PLE',
- VALE=(1.0,2.0,3.0,4.0,),
- CARA=('A','IZ','IY','JX',),),
- _F(SECTION='GENERALE',
- GROUP_MA='PI_TRO',
- VALE=(1.0,2.0,3.0,4.0,),
- CARA=('A','IZ','IY','JX',),),),);
-#
-# DEFINITION DES CHARGES ET CONDITIONS LIMITES
-# DEFINITION DES TEMPERATURES NODALES EVOLUTIVES
-#
-
-
-F_TP1_1=DEFI_FONCTION(NOM_RESU='TEMP',
- PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,4.0,),
- PROL_DROIT='CONSTANT',);
-
-F_TP2_1=DEFI_FONCTION(NOM_RESU='TEMP',
- PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,4.0,),
- PROL_DROIT='CONSTANT',);
-
-F_TP3_1=DEFI_FONCTION(NOM_RESU='TEMP',
- PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,4.0,),
- PROL_DROIT='CONSTANT',);
-
-CHTEM1_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F',
- AFFE=(_F(FONCTION=F_TP1_1,
- GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',),
- NOM_CMP='TEMP',),
- _F(FONCTION=(F_TP1_1,F_TP1_1,F_TP1_1,),
- GROUP_NO=('EMBO_SUP','EMBO_INF',),
- NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),),
- MAILLAGE=MA1,);
-
-CHTEM2_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F',
- AFFE=(_F(FONCTION=F_TP2_1,
- GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',),
- NOM_CMP='TEMP',),
- _F(FONCTION=(F_TP2_1,F_TP2_1,F_TP2_1,),
- GROUP_NO=('EMBO_SUP','EMBO_INF',),
- NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),),
- MAILLAGE=MA1,);
-
-CHTEM3_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F',
- AFFE=(_F(FONCTION=F_TP3_1,
- GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES',),
- NOM_CMP='TEMP',),
- _F(FONCTION=(F_TP3_1,F_TP3_1,F_TP3_1,),
- GROUP_NO=('EMBO_SUP','EMBO_INF',),
- NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),
- _F(FONCTION=F_TP3_1,
- GROUP_NO='CRAYONS',
- NOM_CMP='TEMP',),),
- MAILLAGE=MA1,);
-
-CHTH_1=CREA_RESU(NOM_CHAM='TEMP',
- CHAM_GD=(_F(INST=0.0,
- CHAM_NO=CHTEM1_1,),
- _F(INST=1000.0,
- CHAM_NO=CHTEM1_1,),
- _F(INST=2000.0,
- CHAM_NO=CHTEM2_1,),
- _F(INST=3000.0,
- CHAM_NO=CHTEM3_1,),
- _F(INST=4000.0,
- CHAM_NO=CHTEM3_1,),
- _F(INST=5000.0,
- CHAM_NO=CHTEM2_1,),
- _F(INST=6000.0,
- CHAM_NO=CHTEM1_1,),
- _F(INST=7000.0,
- CHAM_NO=CHTEM1_1,),),
- TYPE_RESU='EVOL_THER',);
-# CHARGEMENT: CHARGES THERMO-MECANIQUES
-# ----------------------------------------
-
-
-THERM_1=AFFE_CHAR_MECA(MODELE=MO1,
- TEMP_CALCULEE=CHTH_1,);
-# DEFINITION DES CONDITIONS LIMITES
-# DES CONDITIONS DE CONTACT
-#
-# CHARGEMENT: PESANTEUR
-#
-
-
-PESANT_1=AFFE_CHAR_MECA(MODELE=MO1,
- PESANTEUR=(9.8100000000000005,-1.0,0.0,0.0,),);
-#
-# CONDITIONS AUX LIMITES
-#
-
-
-CL_PER_1=AFFE_CHAR_MECA(MODELE=MO1,
- DDL_IMPO=(_F(DZ=0.0,
- DX=0.0,
- DY=0.0,
- GROUP_NO='FIXATI',
- DRZ=0.0,
- DRX=0.0,
- DRY=0.0,),
- _F(DX=0.0,
- GROUP_NO='APPUI',),
- _F(DZ=0.0,
- DY=0.0,
- GROUP_NO='EBGUIDE',
- DRZ=0.0,
- DRX=0.0,
- DRY=0.0,),
- _F(GROUP_NO=('LIAS_1','LIAS_2',),
- DRX=0.0,),),
- LIAISON_GROUP=(_F(COEF_MULT_1=1.0,
- DDL_1='DX',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DX',),
- _F(COEF_MULT_1=1.0,
- DDL_1='DY',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DY',),
- _F(COEF_MULT_1=1.0,
- DDL_1='DZ',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DZ',),
- _F(COEF_MULT_1=1.0,
- DDL_1='DRY',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DRY',),
- _F(COEF_MULT_1=1.0,
- DDL_1='DRZ',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DRZ',),),);
-#
-
-
-CL_CTC=AFFE_CHAR_MECA(INFO=1,
- MODELE=MO1,
- CONTACT=_F(GROUP_MA_1='EBOINF',
- VECT_NORM_2=(-1.0,0.0,0.0,),
- APPARIEMENT='NODAL',
- GROUP_MA_2='MCRBAS',),);
-#
-# DEPLACEMENT DU SYSTEME DE MAINTIEN
-#
-
-
-CLDI_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=
- (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,0.10000000000000001,),
- PROL_DROIT='CONSTANT',);
-
-CL_DI_1=AFFE_CHAR_MECA(MODELE=MO1,
- DDL_IMPO=_F(DX=-1.0,
- GROUP_NO='MAIN_SUP',),);
-# DEFINITION DES FORCES EXTERIEURES
-#
-# FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE
-#
-
-
-HYDR_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=
- (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,0.10000000000000001,),
- PROL_DROIT='CONSTANT',);
-#
-# PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID
-#
-
-
-HYFRTU_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-#
-# PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID
-#
-
-
-HYFRCR_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-#
-# CHARGEMENT : FORCES HYDRODYNAMIQUES
-#
-
-
-HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='GRIL10',
- FX=10.0,),
- _F(GROUP_MA='GRIL1',
- FX=10.0,),
- _F(GROUP_MA='GRIL2',
- FX=10.0,),
- _F(GROUP_MA='GRIL3',
- FX=10.0,),
- _F(GROUP_MA='GRIL4',
- FX=10.0,),
- _F(GROUP_MA='GRIL5',
- FX=10.0,),
- _F(GROUP_MA='GRIL6',
- FX=10.0,),
- _F(GROUP_MA='GRIL7',
- FX=10.0,),
- _F(GROUP_MA='GRIL8',
- FX=10.0,),
- _F(GROUP_MA='GRIL9',
- FX=10.0,),),
- MODELE=MO1,
- FORCE_COQUE=(_F(FX=10.0,
- GROUP_MA='EBOSUP',),
- _F(FX=10.0,
- GROUP_MA='EBOINF',),),);
-
-TOTO_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,10.0,5.0,10.0,),
- PROL_DROIT='CONSTANT',);
-#
-
-
-FOHYDR_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID',
- FX=TOTO_1,),
- _F(GROUP_MA='CRAY',
- FX=TOTO_1,),),
- MODELE=MO1,);
-#
-# PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE
-#
-
-
-ARFRTU_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,10.0,5.0,10.0,),
- PROL_DROIT='CONSTANT',);
-#
-# PROFIL DES FORCES D'ARCHIMEDE CRAYON
-#
-
-
-ARFRCR_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,10.0,5.0,10.0,),
- PROL_DROIT='CONSTANT',);
-#
-# FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE
-#
-
-
-ARCH_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=
- (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,0.10000000000000001,),
- PROL_DROIT='CONSTANT',);
-#
-#
-# CHARGEMENT : FORCES D'ARCHIMEDE
-# ----------------------------------------
-#
-
-
-ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN',
- FX=10.0,),
- _F(GROUP_MA='GRIL10',
- FX=10.0,),
- _F(GROUP_MA='GRIL1',
- FX=10.0,),
- _F(GROUP_MA='GRIL2',
- FX=10.0,),
- _F(GROUP_MA='GRIL3',
- FX=10.0,),
- _F(GROUP_MA='GRIL4',
- FX=10.0,),
- _F(GROUP_MA='GRIL5',
- FX=10.0,),
- _F(GROUP_MA='GRIL6',
- FX=10.0,),
- _F(GROUP_MA='GRIL7',
- FX=10.0,),
- _F(GROUP_MA='GRIL8',
- FX=10.0,),
- _F(GROUP_MA='GRIL9',
- FX=10.0,),),
- MODELE=MO1,
- FORCE_COQUE=(_F(FX=10.0,
- GROUP_MA='EBOSUP',),
- _F(FX=10.0,
- GROUP_MA='EBOINF',),),);
-
-FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID',
- FX=ARCH_F1,),
- _F(GROUP_MA='CRAY',
- FX=ARCH_F1,),),
- MODELE=MO1,);
-#
-#
-# FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON
-#
-#
-#
-#
-#
-# DEFINITION DE LA LISTE D'INSTANTS
-#
-
-
-L_FRIG=DEFI_LIST_REEL(INTERVALLE=_F(JUSQU_A=1000.0,
- NOMBRE=100,),
- DEBUT=0.0,);
-#
-# INRTERPRETATION DES FONCTIONS
-#
-
-
-F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F2=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F3=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F4=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F5=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F6=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F7=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F8=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F9=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F10=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-FRIG1=CALC_FONC_INTERP(FONCTION=F1,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG2=CALC_FONC_INTERP(FONCTION=F2,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG3=CALC_FONC_INTERP(FONCTION=F3,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG4=CALC_FONC_INTERP(FONCTION=F4,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG5=CALC_FONC_INTERP(FONCTION=F5,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG6=CALC_FONC_INTERP(FONCTION=F6,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG7=CALC_FONC_INTERP(FONCTION=F7,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG8=CALC_FONC_INTERP(FONCTION=F8,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG9=CALC_FONC_INTERP(FONCTION=F9,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG10=CALC_FONC_INTERP(FONCTION=F10,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-#
-# DEFINITION DU FLUX NEUTRONIQUE RADIAL
-
-
-FLUX_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=
- (0.0,0.0,43200.0,0.0,974520.0,453280.0,2638800.0,2077850.0,4087800.0,3512790.0,
- 5428440.0,4856770.0,7245000.0,6676270.0,8853480.0,8279770.0,10460900.0,9872610.0,12202900.0,
- 11586900.0,13944600.0,13295200.0,14143700.0,13490200.0,15563200.0,14875300.0,17236100.0,
- 16506900.0,17948200.0,17199200.0,18190100.0,17433400.0,18193700.0,17435200.0,18197300.0,
- 17435200.0,18200900.0,17435200.0,),
- PROL_DROIT='CONSTANT',);
-# DEFINITION DU FLUX AXIAL POUR LE CYCLE 1
-
-
-FLUXAX1=LIRE_FONCTION(PROL_GAUCHE='CONSTANT',
- UNITE=60,
- PROL_DROIT='CONSTANT',);
-
-FLY_1_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,3.8032834757835002e-07,-0.088200000000000001,3.8083689458688999e-07,
- -0.075600000000000001,3.8296082621083001e-07,-0.063,3.858400997151e-07,-0.0504,
- 3.8946100427349999e-07,-0.0378,3.9259455128205e-07,-0.0252,3.9258457977207998e-07,-0.0126,
- 3.9294106125356001e-07,0.0,3.9399554843304999e-07,0.0126,3.9293233618234e-07,0.0252,
- 3.9256712962963002e-07,0.0378,3.9256712962963002e-07,0.0504,3.8942610398860001e-07,0.063,
- 3.8579522792023001e-07,0.075600000000000001,3.8290972222222002e-07,0.088200000000000001,
- 3.8077706552707e-07,0.1008,3.8026103988603998e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_2=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,4.3595566239316001e-07,-0.088200000000000001,4.3866542022792e-07,
- -0.075600000000000001,4.4331463675214e-07,-0.063,4.4911556267806002e-07,-0.0504,
- 4.5750658831909e-07,-0.0378,4.6647222222221997e-07,-0.0252,4.6002938034188002e-07,-0.0126,
- 4.6004309116809001e-07,0.0,4.6686235754985997e-07,0.0126,4.6003311965811999e-07,0.0252,
- 4.6000943732193999e-07,0.0378,4.6643981481481001e-07,0.0504,4.5746420940171002e-07,0.063,
- 4.4906445868945999e-07,0.075600000000000001,4.4325356125356e-07,0.088200000000000001,
- 4.3859686609687001e-07,0.1008,4.3587838319088001e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_3=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,4.9431891025640996e-07,-0.088200000000000001,5.0005128205127998e-07,
- -0.075600000000000001,5.1337197293447004e-07,-0.063,5.2915313390313001e-07,-0.0504,
- 5.3788069800570004e-07,-0.0378,5.3504629629630004e-07,-0.0252,5.3221189458688998e-07,-0.0126,
- 5.3136431623932e-07,0.0,5.3135870726495999e-07,0.0126,5.3135309829059998e-07,0.0252,
- 5.3218696581197002e-07,0.0378,5.3500827991452996e-07,0.0504,5.3782959401709e-07,0.063,
- 5.2909205840456002e-07,0.075600000000000001,5.1330217236466999e-07,0.088200000000000001,
- 4.9997150997151001e-07,0.1008,4.9423165954416005e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_4=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,5.5489957264956999e-07,-0.088200000000000001,5.6477884615384998e-07,
- -0.075600000000000001,5.9007781339030998e-07,-0.063,5.9726415598291003e-07,-0.0504,
- 6.0445049857550001e-07,-0.0378,5.9840776353275996e-07,-0.0252,5.8440651709402002e-07,-0.0126,
- 5.8263906695157003e-07,0.0,5.9153240740741004e-07,0.0126,5.8262660256409999e-07,0.0252,
- 5.8438034188033999e-07,0.0378,5.9836663105413e-07,0.0504,6.0439316239316004e-07,0.063,
- 5.9719497863248e-07,0.075600000000000001,5.8999679487179001e-07,0.088200000000000001,
- 5.6469159544159996e-07,0.1008,5.5480110398860005e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_5=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,6.1267200854701004e-07,-0.088200000000000001,6.2962357549858005e-07,
- -0.075600000000000001,6.5655413105413e-07,-0.063,6.6164583333332999e-07,-0.0504,
- 6.5190242165241998e-07,-0.0378,6.5212678062678005e-07,-0.0252,6.3746616809116999e-07,-0.0126,
- 6.3547435897436004e-07,0.0,6.4509686609687001e-07,0.0126,6.3546064814814995e-07,0.0252,
- 6.3743625356125e-07,0.0378,6.5207941595442004e-07,0.0504,6.5183885327634997e-07,0.063,
- 6.6156980056979999e-07,0.075600000000000001,6.5646563390312997e-07,0.088200000000000001,
- 6.2952386039885999e-07,0.1008,6.1256356837606998e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_6=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,6.5755128205127996e-07,-0.088200000000000001,6.8336253561253996e-07,
- -0.075600000000000001,6.9012072649573003e-07,-0.063,6.9687891737892e-07,-0.0504,
- 6.9362571225071001e-07,-0.0378,6.9074768518518997e-07,-0.0252,6.8786965811965998e-07,-0.0126,
- 6.8586413817664004e-07,0.0,6.8585603632478996e-07,0.0126,6.8584793447293003e-07,0.0252,
- 6.8783600427350001e-07,0.0378,6.9069720441594996e-07,0.0504,6.9355840455840002e-07,0.063,
- 6.9679789886040002e-07,0.075600000000000001,6.9002412749288002e-07,0.088200000000000001,
- 6.8325035612536003e-07,0.1008,6.5743162393161998e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_7=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,6.9684526353276003e-07,-0.088200000000000001,7.1406606125356005e-07,
- -0.075600000000000001,7.3236502849003e-07,-0.063,7.2076442307691997e-07,-0.0504,
- 7.1793500712250995e-07,-0.0378,7.2835648148147998e-07,-0.0252,7.1444747150996998e-07,-0.0126,
- 7.1130893874644005e-07,0.0,7.2107727920227996e-07,0.0126,7.1129398148148005e-07,0.0252,
- 7.1441257122506995e-07,0.0378,7.2830288461537998e-07,0.0504,7.1786396011395999e-07,0.063,
- 7.2067841880341996e-07,0.075600000000000001,7.3226157407406997e-07,0.088200000000000001,
- 7.1395138888889005e-07,0.1008,6.9671812678063005e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_8=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,7.3679362535612996e-07,-0.088200000000000001,7.5423130341880005e-07,
- -0.075600000000000001,7.7215633903134002e-07,-0.063,7.5865740740741005e-07,-0.0504,
- 7.5547774216523998e-07,-0.0378,7.6662464387464e-07,-0.0252,7.5088461538461995e-07,-0.0126,
- 7.4313924501423998e-07,0.0,7.486323005698e-07,0.0126,7.4312054843304996e-07,0.0252,
- 7.5084722222222e-07,0.0378,7.6656730769230998e-07,0.0504,7.5540170940170999e-07,0.063,
- 7.5856267806267997e-07,0.075600000000000001,7.7204415954415998e-07,0.088200000000000001,
- 7.5410790598291005e-07,0.1008,7.3665776353275997e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_9=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,7.7370940170939995e-07,-0.088200000000000001,8.0144764957264998e-07,
- -0.075600000000000001,8.0374358974358997e-07,-0.063,8.0603952991452995e-07,-0.0504,
- 8.0238372507123005e-07,-0.0378,7.9936672008546997e-07,-0.0252,7.9634971509971995e-07,-0.0126,
- 7.8317361111111004e-07,0.0,7.8316426282051005e-07,0.0126,7.8315491452990996e-07,0.0252,
- 7.9631107549857995e-07,0.0378,7.9930689102564003e-07,0.0504,8.0230270655270996e-07,0.063,
- 8.0593856837607005e-07,0.075600000000000001,8.0362580128205003e-07,0.088200000000000001,
- 8.0131303418803e-07,0.1008,7.7356356837607e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_10=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,7.9424198717948999e-07,-0.088200000000000001,8.1225925925926001e-07,
- -0.075600000000000001,8.3075516381766e-07,-0.063,8.1540651709402001e-07,-0.0504,
- 8.1131071937321997e-07,-0.0378,8.2297489316238996e-07,-0.0252,8.0577403846154003e-07,-0.0126,
- 7.9717236467236002e-07,0.0,8.0284615384615001e-07,0.0126,7.9715117521368004e-07,0.0252,
- 8.0573165954416005e-07,0.0378,8.2291257122506995e-07,0.0504,8.1122845441594998e-07,0.063,
- 8.1530306267805998e-07,0.075600000000000001,8.3063051994301999e-07,0.088200000000000001,
- 8.1211841168090999e-07,0.1008,7.9408742877492998e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_11=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.1647845441594995e-07,-0.088200000000000001,8.3510648148147996e-07,
- -0.075600000000000001,8.5487873931623998e-07,-0.063,8.3969088319087998e-07,-0.0504,
- 8.3502920227919995e-07,-0.0378,8.4651014957265e-07,-0.0252,8.2973931623932002e-07,-0.0126,
- 8.2549269943020005e-07,0.0,8.3637909544160002e-07,0.0126,8.2547275641026002e-07,0.0252,
- 8.2969319800569997e-07,0.0378,8.4644408831909002e-07,0.0504,8.3493945868945997e-07,0.063,
- 8.3957995014244996e-07,0.075600000000000001,8.5474786324785998e-07,0.088200000000000001,
- 8.3495690883191003e-07,0.1008,8.1631641737892005e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_12=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.3948272792023003e-07,-0.088200000000000001,8.7002546296295996e-07,
- -0.075600000000000001,8.7608564814814997e-07,-0.063,8.8214583333333004e-07,-0.0504,
- 8.7589245014244996e-07,-0.0378,8.7128872863248004e-07,-0.0252,8.6668500712251001e-07,-0.0126,
- 8.6321616809117001e-07,0.0,8.6320432692307996e-07,0.0126,8.6319248575499001e-07,0.0252,
- 8.6663764245014005e-07,0.0378,8.7121705840456005e-07,0.0504,8.7579647435896998e-07,0.063,
- 8.8202617521368001e-07,0.075600000000000001,8.7594667022791999e-07,0.088200000000000001,
- 8.6986716524217003e-07,0.1008,8.3931196581196996e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_13=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.5508315527066002e-07,-0.088200000000000001,8.7546616809116998e-07,
- -0.075600000000000001,9.0944533475783005e-07,-0.063,9.1292663817663998e-07,-0.0504,
- 8.9653721509972004e-07,-0.0378,8.9547275641025999e-07,-0.0252,8.7405644586895003e-07,-0.0126,
- 8.7004789886040001e-07,0.0,8.8226549145299002e-07,0.0126,8.7002546296295996e-07,0.0252,
- 8.7400534188033999e-07,0.0378,8.9539672364672004e-07,0.0504,8.9643376068376001e-07,0.063,
- 9.1279825498575999e-07,0.075600000000000001,9.0929576210826002e-07,0.088200000000000001,
- 8.7530288461538001e-07,0.1008,8.5490491452990995e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_14=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.5798237179486999e-07,-0.088200000000000001,8.6880893874644002e-07,
- -0.075600000000000001,9.0299750712251001e-07,-0.063,9.0948646723646997e-07,-0.0504,
- 9.1597542735043003e-07,-0.0378,9.0500302706552995e-07,-0.0252,8.8214084757835001e-07,-0.0126,
- 8.7779825498574995e-07,0.0,8.8993732193732e-07,0.0126,8.7777207977207998e-07,0.0252,
- 8.8208974358973997e-07,0.0378,9.0492325498575998e-07,0.0504,9.1586574074073996e-07,0.063,
- 9.0935434472933995e-07,0.075600000000000001,9.0284294871795e-07,0.088200000000000001,
- 8.6864066951567002e-07,0.1008,8.5779665242165003e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_15=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.5773557692308004e-07,-0.088200000000000001,8.6180893874644003e-07,
- -0.075600000000000001,8.7862838319088002e-07,-0.063,8.9924074074074004e-07,-0.0504,
- 9.0872489316239005e-07,-0.0378,9.0174545940170996e-07,-0.0252,8.9476602564102997e-07,-0.0126,
- 8.9122364672365005e-07,0.0,8.9120993589743996e-07,0.0126,8.9119622507122997e-07,0.0252,
- 8.9471118233617996e-07,0.0378,9.0166132478632003e-07,0.0504,9.0861146723646996e-07,0.063,
- 8.9910363247862999e-07,0.075600000000000001,8.7847257834757996e-07,0.088200000000000001,
- 8.6163693019942995e-07,0.1008,8.5754362535613004e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_16=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.5903935185184999e-07,-0.088200000000000001,8.5690046296295998e-07,
- -0.075600000000000001,8.5831018518518999e-07,-0.063,8.6167307692307999e-07,-0.0504,
- 8.7125320512820998e-07,-0.0378,8.8563586182335997e-07,-0.0252,8.7089298433048003e-07,-0.0126,
- 8.6842877492877004e-07,0.0,8.7942111823362e-07,0.0126,8.6840135327634996e-07,0.0252,
- 8.7083814102563997e-07,0.0378,8.8554985754985996e-07,0.0504,8.7113977920228004e-07,0.063,
- 8.6153846153846001e-07,0.075600000000000001,8.5815313390312996e-07,0.088200000000000001,
- 8.5672471509971999e-07,0.1008,8.5884116809116995e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_17=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.6388675213674999e-07,-0.088200000000000001,8.5563782051281999e-07,
- -0.075600000000000001,8.5087019230768996e-07,-0.063,8.4755965099714995e-07,-0.0504,
- 8.4761698717949003e-07,-0.0378,8.5133636039885996e-07,-0.0252,8.4844088319088001e-07,-0.0126,
- 8.4633689458689002e-07,0.0,8.4644658119657999e-07,0.0126,8.4630947293447004e-07,0.0252,
- 8.4838479344729004e-07,0.0378,8.512516025641e-07,0.0504,8.4750480769231e-07,0.063,
- 8.4742378917379002e-07,0.075600000000000001,8.5071064814815003e-07,0.088200000000000001,
- 8.5545584045584e-07,0.1008,8.6368108974359e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLUXRD1=DEFI_NAPPE(FONCTION=(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,FLY_1_10,FLY_1_11,FLY_1_12,
- FLY_1_13,FLY_1_14,FLY_1_15,FLY_1_16,FLY_1_17,),
- PARA=
- (-0.1008,-0.088200000000000001,-0.075600000000000001,-0.063,-0.0504,-0.0378,-0.0252,
- -0.0126,0.0,0.0126,0.0252,0.0378,0.0504,0.063,0.075600000000000001,0.088200000000000001,0.1008,),
- PROL_GAUCHE='CONSTANT',
- NOM_PARA='Z',
- PROL_DROIT='CONSTANT',);
-#
-# DEFINITION DES MATERIAUX ET AFFECTATIONS
-#
-# **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE ****
-#
-#
-# FAMILLE ASSEMBLAGE : NUMERO_FAM
-#
-# EMBOUT SUPERIEUR
-
-
-E_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-MT_ES=DEFI_MATERIAU(ELAS_FO=_F(NU=NU_ES,
- ALPHA=AL_ES,
- RHO=7800.0,
- E=E_ES,),);
-# EMBOUT INFERIEUR
-
-
-E_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-MT_EI=DEFI_MATERIAU(ELAS_FO=_F(NU=NU_EI,
- ALPHA=AL_EI,
- RHO=12.0,
- E=E_EI,),);
-
-MT_RIG=DEFI_MATERIAU(ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-# FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON
-
-
-FOTRAC=DEFI_FONCTION(PROL_GAUCHE='LINEAIRE',
- NOM_PARA='DRZ',
- VALE=(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,),
- PROL_DROIT='LINEAIRE',);
-
-MT_RE1=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG1,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE2=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG2,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE3=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG3,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE4=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG4,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE5=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG5,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE6=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG6,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE7=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG7,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE8=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG8,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE9=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG9,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE10=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG10,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-# SYSTEME DE MAINTIEN
-
-
-E_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-SY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-DS_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-NP_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MEY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MPY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MEZ_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MPZ_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-CAY_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-CBY_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-CAZ_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-CBZ_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-MPX_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MT_MA=DEFI_MATERIAU(VMIS_POUTRE_FO=_F(MEZ=MEZ_MA,
- MPX=MPX_MA,
- MPZ=MPZ_MA,
- CBY=CBY_MA,
- NP=NP_MA,
- CBZ=CBZ_MA,
- MEY=MEY_MA,
- CAY=CAY_MA,
- CAZ=CAZ_MA,
- MPY=MPY_MA,),
- ECRO_LINE_FO=_F(D_SIGM_EPSI=DS_MA,
- SY=SY_MA,),
- ELAS_FO=_F(NU=NU_MA,
- ALPHA=AL_MA,
- RHO=7800.0,
- E=E_MA,),);
-#
-# **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE ****
-#
-#
-# GRILLE
-
-
-E_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-E_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-# TUBE GUIDE
-
-
-E_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-# CRAYON
-
-
-E_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-# GRANDISSEMENT DES GRILLES
-# GRILLES EXTREMES 1 ET 10
-
-
-MT_GRE1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1,
- FLUX_L=FLUXAX1,
- FLUX_TN=FLUXRD1,
- S=1.0,
- A=0.0,),
- LEMAITRE=_F(N=0.0,
- UN_SUR_M=0.0,
- QSR_K=1.0,
- UN_SUR_K=0.0,),
- ELAS_FO=_F(NU=NU_GRE,
- ALPHA=AL_GRE,
- RHO=7800.0,
- E=E_GRE,),);
-# GRILLES DE MELANGE
-
-
-MT_GRM1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1,
- FLUX_L=FLUXAX1,
- FLUX_TN=FLUXRD1,
- S=1.0,
- A=0.0,),
- LEMAITRE=_F(N=0.0,
- UN_SUR_M=0.0,
- QSR_K=2.0,
- UN_SUR_K=0.0,),
- ELAS_FO=_F(NU=NU_GRM,
- ALPHA=AL_GRM,
- RHO=7800.0,
- E=E_GRM,),);
-# DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS )
-
-
-MT_TU1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1,
- FLUX_L=FLUXAX1,
- FLUX_TN=FLUXRD1,
- S=1.0,
- A=0.0,),
- LEMAITRE=_F(N=0.0,
- UN_SUR_M=0.0,
- QSR_K=2.0,
- UN_SUR_K=0.0,),
- ELAS_FO=_F(NU=NU_TU,
- ALPHA=AL_TU,
- RHO=7800.0,
- E=E_TU,),);
-
-MT_CR1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1,
- FLUX_L=FLUXAX1,
- FLUX_TN=FLUXRD1,
- S=1.0,
- A=0.0,),
- LEMAITRE=_F(N=0.0,
- UN_SUR_M=0.0,
- QSR_K=2.0,
- UN_SUR_K=0.0,),
- ELAS_FO=_F(NU=NU_CR,
- ALPHA=AL_CR,
- RHO=7800.0,
- E=E_CR,),);
-#
-# AFFECTATION DES MATERIAUX A CHAUD - CYCLE
-#
-#
-
-
-A_MAT_1=AFFE_MATERIAU(AFFE=(_F(TEMP_REF=100.0,
- MATER=MT_MA,
- GROUP_MA=('MAINTI_Y','MAINTI_Z',),),
- _F(TEMP_REF=100.0,
- MATER=MT_GRM1,
- GROUP_MA='GRIL_I',),
- _F(TEMP_REF=100.0,
- MATER=MT_GRE1,
- GROUP_MA='GRIL_E',),
- _F(TEMP_REF=100.0,
- MATER=MT_CR1,
- GROUP_MA='CRAY',),
- _F(TEMP_REF=100.0,
- MATER=MT_TU1,
- GROUP_MA='GUID',),
- _F(TEMP_REF=100.0,
- MATER=MT_EI,
- GROUP_MA='EBOINF',),
- _F(TEMP_REF=100.0,
- MATER=MT_EI,
- GROUP_MA=('PI_PLE','PI_TRO',),),
- _F(TEMP_REF=100.0,
- MATER=MT_ES,
- GROUP_MA='EBOSUP',),
- _F(TEMP_REF=100.0,
- MATER=MT_RIG,
- GROUP_MA='RIGID',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE1,
- GROUP_MA='ELA1',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE2,
- GROUP_MA='ELA2',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE3,
- GROUP_MA='ELA3',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE4,
- GROUP_MA='ELA4',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE5,
- GROUP_MA='ELA5',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE6,
- GROUP_MA='ELA6',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE7,
- GROUP_MA='ELA7',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE8,
- GROUP_MA='ELA8',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE9,
- GROUP_MA='ELA9',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE10,
- GROUP_MA='ELA10',),),
- MAILLAGE=MA1,);
-#
-
-
-L_INST_1=DEFI_LIST_REEL(INTERVALLE=(_F(JUSQU_A=0.5,
- NOMBRE=1,),
- _F(JUSQU_A=1000.0,
- NOMBRE=1,),
- _F(JUSQU_A=2000.0,
- NOMBRE=1,),
- _F(JUSQU_A=3000.0,
- NOMBRE=5,),
- _F(JUSQU_A=4000.0,
- NOMBRE=1,),
- _F(JUSQU_A=5000.0,
- NOMBRE=1,),
- _F(JUSQU_A=6000.0,
- NOMBRE=1,),
- _F(JUSQU_A=7000.0,
- NOMBRE=1,),
- _F(JUSQU_A=8000.0,
- NOMBRE=1,),),
- DEBUT=0.0,);
-
-L_ARCH_1=DEFI_LIST_REEL(INTERVALLE=(_F(JUSQU_A=0.5,
- NOMBRE=1,),
- _F(JUSQU_A=1000.0,
- NOMBRE=1,),
- _F(JUSQU_A=2000.0,
- NOMBRE=1,),
- _F(JUSQU_A=3000.0,
- NOMBRE=5,),
- _F(JUSQU_A=4000.0,
- NOMBRE=1,),
- _F(JUSQU_A=5000.0,
- NOMBRE=1,),
- _F(JUSQU_A=6000.0,
- NOMBRE=1,),
- _F(JUSQU_A=7000.0,
- NOMBRE=1,),
- _F(JUSQU_A=8000.0,
- NOMBRE=1,),),
- DEBUT=0.0,);
-#
-# CALCUL PHASE I A V DU CYCLE 1
-#
-
-
-RESU=STAT_NON_LINE(CHAM_MATER=A_MAT_1,
- MODELE=MO1,
- ARCHIVAGE=_F(LIST_INST=L_ARCH_1,),
- CONVERGENCE=_F(ITER_GLOB_MAXI=50,
- ITER_INTE_MAXI=500,
- RESI_GLOB_RELA=1.E-4,
- ARRET='OUI',),
- COMP_INCR=(_F(RELATION='VMIS_POU_LINE',
- GROUP_MA='MAINTIEN',),
- _F(RELATION='ASSE_COMBU',
- GROUP_MA=('CRAYONS','TUB_GUID',),),
- _F(RELATION='DIS_CONTACT',
- GROUP_MA='LI_GR_CR',),
- _F(COQUE_NCOU=1,
- RELATION='ELAS',
- GROUP_MA=('EMBO_INF','EMBO_SUP','PIEDS','GRILLES','LI_GR_GU',),),),
- INCREMENT=_F(NUME_INST_FIN=20,
- LIST_INST=L_INST_1,),
- CARA_ELEM=CARA1,
- RECH_LINEAIRE=_F(ITER_LINE_MAXI=3,),
- NEWTON=_F(REAC_ITER=1,
- MATRICE='TANGENTE',),
- SOLVEUR=_F(METHODE='MULT_FRONT',
- RENUM='MD',),
- EXCIT=(_F(FONC_MULT=ARCH_F1,
- CHARGE=ARCH_1,),
- _F(FONC_MULT=ARCH_F1,
- CHARGE=FOARCH_1,),
- _F(FONC_MULT=HYDR_F1,
- CHARGE=HYDR_1,),
- _F(FONC_MULT=HYDR_F1,
- CHARGE=FOHYDR_1,),
- _F(FONC_MULT=CLDI_F1,
- CHARGE=CL_DI_1,),
- _F(CHARGE=CL_PER_1,),
- _F(CHARGE=CL_CTC,),
- _F(CHARGE=PESANT_1,),
- _F(CHARGE=THERM_1,),),
- PARM_THETA=0.5,);
-
-FIN();
+++ /dev/null
-
-
-DEBUT();
-% LECTURE DES PARAMETRES
-%
-% LECTURE DES TEMPS
-%CYCLE 1
-% LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS
-
-
-PRE_GIBI();
-%
-
-
-MA1=LIRE_MAILLAGE();
-%
-
-
-&MA1=DEFI_GROUP(CREA_GROUP_NO:(GROUP_MA:(FIXATI,APPUI,LIAS_1,LIAS_2,
- EBGUIDE,MAINTIEN,
- MAIN_SUP,EMBO_SUP,
- TUB_GUID,GRILLES,
- EMBO_INF,PIEDS,
- CRAYONS),)
- MAILLAGE:MA1);
-%
-% AFFECTATION DU MODELE
-%
-
-
-MO1=AFFE_MODELE(AFFE:(GROUP_MA:CRAYONS
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- AFFE:(GROUP_MA:TUB_GUID
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- AFFE:(GROUP_MA:(EMBO_SUP,EMBO_INF)
- PHENOMENE:'MECANIQUE'
- MODELISATION:'DKT')
- AFFE:(GROUP_MA:PIEDS
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- AFFE:(GROUP_MA:GRILLES
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- AFFE:(GROUP_MA:LI_GR_CR
- PHENOMENE:'MECANIQUE'
- MODELISATION:'DIS_TR')
- AFFE:(GROUP_MA:LI_GR_GU
- PHENOMENE:'MECANIQUE'
- MODELISATION:'DIS_TR')
- AFFE:(GROUP_MA:MAINTIEN
- PHENOMENE:'MECANIQUE'
- MODELISATION:'POU_D_E')
- MAILLAGE:MA1);
-%
-% AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES
-%
-
-
-CARA1=AFFE_CARA_ELEM(MODELE:MO1
- COQUE:(ANGL_REP:90.0
- GROUP_MA:EBOINF
- EPAIS:2.0)
- COQUE:(ANGL_REP:90.0
- GROUP_MA:EBOSUP
- EPAIS:3.0)
- DISCRET:(VALE:(1.0,2.0,3.0,4.0,5.0,6.0)
- REPERE:'LOCAL'
- CARA:'K_TR_D_L'
- GROUP_MA:ELASTI)
- DISCRET:(VALE:(1.0,2.0,3.0,4.0,5.0,6.0)
- REPERE:'LOCAL'
- CARA:'K_TR_D_L'
- GROUP_MA:RIGID)
- ORIENTATION:(VALE:(1.0,0.0,0.0)
- CARA:'VECT_Y'
- GROUP_MA:(GRIL_I,GRIL_E))
- ORIENTATION:(VALE:(0.0,1.0,0.0)
- CARA:'VECT_Y'
- GROUP_MA:(MAINTI_Y))
- ORIENTATION:(VALE:(0.0,0.0,1.0)
- CARA:'VECT_Y'
- GROUP_MA:(MAINTI_Z))
- ORIENTATION:(VALE:(0.0,1.0,0.0)
- CARA:'VECT_Y'
- GROUP_MA:(PI_PLE,PI_TRO))
- ORIENTATION:(VALE:(1.0,0.0,0.0)
- CARA:'VECT_Y'
- GROUP_MA:(ELASTI,RIGID))
- POUTRE:(SECTION:'CERCLE'
- GROUP_MA:CRAY
- VALE:(3.0,3.0)
- CARA:('R','EP'))
- POUTRE:(SECTION:'CERCLE'
- GROUP_MA:GUID
- VALE:(3.0,3.0)
- CARA:('R','EP'))
- POUTRE:(SECTION:'CERCLE'
- GROUP_MA:RETRE
- VALE:(3.0,3.0)
- CARA:('R','EP'))
- POUTRE:(SECTION:'RECTANGLE'
- GROUP_MA:(GRIL_I)
- VALE:(3.0,3.0)
- CARA:('HY','HZ'))
- POUTRE:(SECTION:'RECTANGLE'
- GROUP_MA:(GRIL_E)
- VALE:(3.0,3.0)
- CARA:('HY','HZ'))
- POUTRE:(SECTION:'RECTANGLE'
- GROUP_MA:(MAINTI_Y,MAINTI_Z)
- VALE:(3.0,3.0)
- CARA:('HY','HZ'))
- POUTRE:(SECTION:'GENERALE'
- GROUP_MA:PI_PLE
- VALE:(1.0,2.0,3.0,4.0)
- CARA:('A','IZ','IY','JX'))
- POUTRE:(SECTION:'GENERALE'
- GROUP_MA:PI_TRO
- VALE:(1.0,2.0,3.0,4.0)
- CARA:('A','IZ','IY','JX')));
-%
-% DEFINITION DES CHARGES ET CONDITIONS LIMITES
-% DEFINITION DES TEMPERATURES NODALES EVOLUTIVES
-%
-
-
-F_TP1_1=DEFI_FONCTION(NOM_RESU:'TEMP'
- PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,4.0)
- PROL_DROIT:'CONSTANT');
-
-F_TP2_1=DEFI_FONCTION(NOM_RESU:'TEMP'
- PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,4.0)
- PROL_DROIT:'CONSTANT');
-
-F_TP3_1=DEFI_FONCTION(NOM_RESU:'TEMP'
- PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,4.0)
- PROL_DROIT:'CONSTANT');
-
-CHTEM1_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F'
- AFFE:(FONCTION:F_TP1_1
- GROUP_NO:
-
- (MAINTIEN,PIEDS,
- TUB_GUID,GRILLES,
- CRAYONS),
- NOM_CMP:'TEMP')
- AFFE:(FONCTION:(F_TP1_1,F_TP1_1,F_TP1_1)
- GROUP_NO:(EMBO_SUP,EMBO_INF)
- NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP'))
- MAILLAGE:MA1);
-
-CHTEM2_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F'
- AFFE:(FONCTION:F_TP2_1
- GROUP_NO:
-
- (MAINTIEN,PIEDS,
- TUB_GUID,GRILLES,
- CRAYONS),
- NOM_CMP:'TEMP')
- AFFE:(FONCTION:(F_TP2_1,F_TP2_1,F_TP2_1)
- GROUP_NO:(EMBO_SUP,EMBO_INF)
- NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP'))
- MAILLAGE:MA1);
-
-CHTEM3_1=AFFE_CHAM_NO(GRANDEUR:'TEMP_F'
- AFFE:(FONCTION:F_TP3_1
- GROUP_NO:(MAINTIEN,PIEDS,TUB_GUID,GRILLES)
- NOM_CMP:'TEMP')
- AFFE:(FONCTION:(F_TP3_1,F_TP3_1,F_TP3_1)
- GROUP_NO:(EMBO_SUP,EMBO_INF)
- NOM_CMP:('TEMP_INF','TEMP','TEMP_SUP'))
- AFFE:(FONCTION:F_TP3_1
- GROUP_NO:CRAYONS
- NOM_CMP:'TEMP')
- MAILLAGE:MA1);
-
-CHTH_1=CREA_RESU(NOM_CHAM:'TEMP'
- CHAM_GD:(INST:0.0
- CHAM_NO:CHTEM1_1)
- CHAM_GD:(INST:1000.0
- CHAM_NO:CHTEM1_1)
- CHAM_GD:(INST:2000.0
- CHAM_NO:CHTEM2_1)
- CHAM_GD:(INST:3000.0
- CHAM_NO:CHTEM3_1)
- CHAM_GD:(INST:4000.0
- CHAM_NO:CHTEM3_1)
- CHAM_GD:(INST:5000.0
- CHAM_NO:CHTEM2_1)
- CHAM_GD:(INST:6000.0
- CHAM_NO:CHTEM1_1)
- CHAM_GD:(INST:7000.0
- CHAM_NO:CHTEM1_1)
- TYPE_RESU:'EVOL_THER');
-% CHARGEMENT: CHARGES THERMO-MECANIQUES
-% ----------------------------------------
-
-
-THERM_1=AFFE_CHAR_MECA(MODELE:MO1
- TEMP_CALCULEE:CHTH_1);
-% DEFINITION DES CONDITIONS LIMITES
-% DES CONDITIONS DE CONTACT
-%
-% CHARGEMENT: PESANTEUR
-%
-
-
-PESANT_1=AFFE_CHAR_MECA(MODELE:MO1
- PESANTEUR:(9.8100000000000005,-1.0,0.0,0.0));
-%
-% CONDITIONS AUX LIMITES
-%
-
-
-CL_PER_1=AFFE_CHAR_MECA(MODELE:MO1
- DDL_IMPO:(DZ:0.0
- DX:0.0
- DY:0.0
- GROUP_NO:FIXATI
- DRZ:0.0
- DRX:0.0
- DRY:0.0)
- DDL_IMPO:(DX:0.0
- GROUP_NO:APPUI)
- DDL_IMPO:(DZ:0.0
- DY:0.0
- GROUP_NO:EBGUIDE
- DRZ:0.0
- DRX:0.0
- DRY:0.0)
- DDL_IMPO:(GROUP_NO:(LIAS_1,LIAS_2)
- DRX:0.0)
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DX'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DX')
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DY'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DY')
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DZ'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DZ')
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DRY'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DRY')
- LIAISON_GROUP:(COEF_MULT_1:1.0
- DDL_1:'DRZ'
- COEF_MULT_2:-1.0
- COEF_IMPO:0.0
- GROUP_NO_1:LIAS_1
- GROUP_NO_2:LIAS_2
- DDL_2:'DRZ'));
-%
-
-
-CL_CTC=AFFE_CHAR_MECA(INFO:1
- MODELE:MO1
- CONTACT:(GROUP_MA_1:EBOINF
- VECT_NORM_2:(-1.0,0.0,0.0)
- APPARIEMENT:'NODAL'
- GROUP_MA_2:MCRBAS));
-%
-% DEPLACEMENT DU SYSTEME DE MAINTIEN
-%
-
-
-CLDI_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:
- (0.0,0.0,1000.0,
- 0.10000000000000001,2000.0,
- 0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,
- 0.20000000000000001,5000.0,
- 0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,
- 0.10000000000000001),
- PROL_DROIT:'CONSTANT');
-
-CL_DI_1=AFFE_CHAR_MECA(MODELE:MO1
- DDL_IMPO:(DX:-1.0
- GROUP_NO:MAIN_SUP));
-% DEFINITION DES FORCES EXTERIEURES
-%
-% FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE
-%
-
-
-HYDR_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:
- (0.0,0.0,1000.0,
- 0.10000000000000001,2000.0,
- 0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,
- 0.20000000000000001,5000.0,
- 0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,
- 0.10000000000000001),
- PROL_DROIT:'CONSTANT');
-%
-% PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID
-%
-
-
-HYFRTU_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-%
-% PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID
-%
-
-
-HYFRCR_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-%
-% CHARGEMENT : FORCES HYDRODYNAMIQUES
-%
-
-
-HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE:(GROUP_MA:(GRIL10)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL1)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL2)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL3)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL4)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL5)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL6)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL7)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL8)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL9)
- FX:10.0)
- MODELE:MO1
- FORCE_COQUE:(FX:10.0
- GROUP_MA:EBOSUP)
- FORCE_COQUE:(FX:10.0
- GROUP_MA:EBOINF));
-
-TOTO_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,10.0,5.0,10.0)
- PROL_DROIT:'CONSTANT');
-%
-
-
-FOHYDR_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:(GUID)
- FX:TOTO_1)
- FORCE_POUTRE:(GROUP_MA:CRAY
- FX:TOTO_1)
- MODELE:MO1);
-%
-% PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE
-%
-
-
-ARFRTU_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,10.0,5.0,10.0)
- PROL_DROIT:'CONSTANT');
-%
-% PROFIL DES FORCES D'ARCHIMEDE CRAYON
-%
-
-
-ARFRCR_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'X'
- VALE:(0.0,10.0,5.0,10.0)
- PROL_DROIT:'CONSTANT');
-%
-% FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE
-%
-
-
-ARCH_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:
- (0.0,0.0,1000.0,
- 0.10000000000000001,2000.0,
- 0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,
- 0.20000000000000001,5000.0,
- 0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,
- 0.10000000000000001),
- PROL_DROIT:'CONSTANT');
-%
-%
-% CHARGEMENT : FORCES D'ARCHIMEDE
-% ----------------------------------------
-%
-
-
-ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE:(GROUP_MA:MAINTIEN
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL10)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL1)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL2)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL3)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL4)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL5)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL6)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL7)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL8)
- FX:10.0)
- FORCE_POUTRE:(GROUP_MA:(GRIL9)
- FX:10.0)
- MODELE:MO1
- FORCE_COQUE:(FX:10.0
- GROUP_MA:EBOSUP)
- FORCE_COQUE:(FX:10.0
- GROUP_MA:EBOINF));
-
-FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE:(GROUP_MA:GUID
- FX:ARCH_F1)
- FORCE_POUTRE:(GROUP_MA:CRAY
- FX:ARCH_F1)
- MODELE:MO1);
-%
-%
-% FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON
-%
-%
-%
-%
-%
-% DEFINITION DE LA LISTE D'INSTANTS
-%
-
-
-L_FRIG=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:1000.0
- NOMBRE:100)
- DEBUT:0.0);
-%
-% INRTERPRETATION DES FONCTIONS
-%
-
-
-F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F2=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F3=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F4=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F5=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F6=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F7=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F8=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F9=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-F10=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:(0.0,0.0,4.3200E4,0.0)
- PROL_DROIT:'CONSTANT');
-
-FRIG1=CALC_FONC_INTERP(FONCTION:F1
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG2=CALC_FONC_INTERP(FONCTION:F2
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG3=CALC_FONC_INTERP(FONCTION:F3
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG4=CALC_FONC_INTERP(FONCTION:F4
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG5=CALC_FONC_INTERP(FONCTION:F5
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG6=CALC_FONC_INTERP(FONCTION:F6
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG7=CALC_FONC_INTERP(FONCTION:F7
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG8=CALC_FONC_INTERP(FONCTION:F8
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG9=CALC_FONC_INTERP(FONCTION:F9
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-
-FRIG10=CALC_FONC_INTERP(FONCTION:F10
- PROL_DROIT:'CONSTANT'
- INTERPOL:'LIN'
- PROL_GAUCHE:'CONSTANT'
- LIST_PARA:L_FRIG);
-%
-% DEFINITION DU FLUX NEUTRONIQUE RADIAL
-
-
-FLUX_F1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'INST'
- VALE:
- (0.0,0.0,4.3200E4,0.0,
- 9.74520E5,4.53280E5,2.638800E6,
- 2.077850E6,4.087800E6,3.512790E6,
- 5.428440E6,4.856770E6,7.245000E6,
- 6.676270E6,8.853480E6,8.279770E6,
- 1.0460900E7,9.872610E6,1.2202900E7,
- 1.1586900E7,1.3944600E7,1.3295200E7,
- 1.4143700E7,1.3490200E7,1.5563200E7,
- 1.4875300E7,1.7236100E7,1.6506900E7,
- 1.7948200E7,1.7199200E7,1.8190100E7,
- 1.7433400E7,1.8193700E7,1.7435200E7,
- 1.8197300E7,1.7435200E7,1.8200900E7,
- 1.7435200E7),
- PROL_DROIT:'CONSTANT');
-% DEFINITION DU FLUX AXIAL POUR LE CYCLE 1
-
-
-FLUXAX1=LIRE_FONCTION(PROL_GAUCHE:'CONSTANT'
- UNITE:60
- PROL_DROIT:'CONSTANT');
-
-FLY_1_1=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 3.8032834757835002E-07,
- -0.088200000000000001,
- 3.8083689458688999E-07,
- -0.075600000000000001,
- 3.8296082621083001E-07,-0.063,
- 3.858400997151E-07,-0.0504,
- 3.8946100427349999E-07,-0.0378,
- 3.9259455128205E-07,-0.0252,
- 3.9258457977207998E-07,-0.0126,
- 3.9294106125356001E-07,0.0,
- 3.9399554843304999E-07,0.0126,
- 3.9293233618234E-07,0.0252,
- 3.9256712962963002E-07,0.0378,
- 3.9256712962963002E-07,0.0504,
- 3.8942610398860001E-07,0.063,
- 3.8579522792023001E-07,
- 0.075600000000000001,
- 3.8290972222222002E-07,
- 0.088200000000000001,
- 3.8077706552707E-07,0.1008,
- 3.8026103988603998E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_2=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 4.3595566239316001E-07,
- -0.088200000000000001,
- 4.3866542022792E-07,
- -0.075600000000000001,
- 4.4331463675214E-07,-0.063,
- 4.4911556267806002E-07,-0.0504,
- 4.5750658831909E-07,-0.0378,
- 4.6647222222221997E-07,-0.0252,
- 4.6002938034188002E-07,-0.0126,
- 4.6004309116809001E-07,0.0,
- 4.6686235754985997E-07,0.0126,
- 4.6003311965811999E-07,0.0252,
- 4.6000943732193999E-07,0.0378,
- 4.6643981481481001E-07,0.0504,
- 4.5746420940171002E-07,0.063,
- 4.4906445868945999E-07,
- 0.075600000000000001,
- 4.4325356125356E-07,
- 0.088200000000000001,
- 4.3859686609687001E-07,0.1008,
- 4.3587838319088001E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_3=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 4.9431891025640996E-07,
- -0.088200000000000001,
- 5.0005128205127998E-07,
- -0.075600000000000001,
- 5.1337197293447004E-07,-0.063,
- 5.2915313390313001E-07,-0.0504,
- 5.3788069800570004E-07,-0.0378,
- 5.3504629629630004E-07,-0.0252,
- 5.3221189458688998E-07,-0.0126,
- 5.3136431623932E-07,0.0,
- 5.3135870726495999E-07,0.0126,
- 5.3135309829059998E-07,0.0252,
- 5.3218696581197002E-07,0.0378,
- 5.3500827991452996E-07,0.0504,
- 5.3782959401709E-07,0.063,
- 5.2909205840456002E-07,
- 0.075600000000000001,
- 5.1330217236466999E-07,
- 0.088200000000000001,
- 4.9997150997151001E-07,0.1008,
- 4.9423165954416005E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_4=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 5.5489957264956999E-07,
- -0.088200000000000001,
- 5.6477884615384998E-07,
- -0.075600000000000001,
- 5.9007781339030998E-07,-0.063,
- 5.9726415598291003E-07,-0.0504,
- 6.0445049857550001E-07,-0.0378,
- 5.9840776353275996E-07,-0.0252,
- 5.8440651709402002E-07,-0.0126,
- 5.8263906695157003E-07,0.0,
- 5.9153240740741004E-07,0.0126,
- 5.8262660256409999E-07,0.0252,
- 5.8438034188033999E-07,0.0378,
- 5.9836663105413E-07,0.0504,
- 6.0439316239316004E-07,0.063,
- 5.9719497863248E-07,
- 0.075600000000000001,
- 5.8999679487179001E-07,
- 0.088200000000000001,
- 5.6469159544159996E-07,0.1008,
- 5.5480110398860005E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_5=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 6.1267200854701004E-07,
- -0.088200000000000001,
- 6.2962357549858005E-07,
- -0.075600000000000001,
- 6.5655413105413E-07,-0.063,
- 6.6164583333332999E-07,-0.0504,
- 6.5190242165241998E-07,-0.0378,
- 6.5212678062678005E-07,-0.0252,
- 6.3746616809116999E-07,-0.0126,
- 6.3547435897436004E-07,0.0,
- 6.4509686609687001E-07,0.0126,
- 6.3546064814814995E-07,0.0252,
- 6.3743625356125E-07,0.0378,
- 6.5207941595442004E-07,0.0504,
- 6.5183885327634997E-07,0.063,
- 6.6156980056979999E-07,
- 0.075600000000000001,
- 6.5646563390312997E-07,
- 0.088200000000000001,
- 6.2952386039885999E-07,0.1008,
- 6.1256356837606998E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_6=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 6.5755128205127996E-07,
- -0.088200000000000001,
- 6.8336253561253996E-07,
- -0.075600000000000001,
- 6.9012072649573003E-07,-0.063,
- 6.9687891737892E-07,-0.0504,
- 6.9362571225071001E-07,-0.0378,
- 6.9074768518518997E-07,-0.0252,
- 6.8786965811965998E-07,-0.0126,
- 6.8586413817664004E-07,0.0,
- 6.8585603632478996E-07,0.0126,
- 6.8584793447293003E-07,0.0252,
- 6.8783600427350001E-07,0.0378,
- 6.9069720441594996E-07,0.0504,
- 6.9355840455840002E-07,0.063,
- 6.9679789886040002E-07,
- 0.075600000000000001,
- 6.9002412749288002E-07,
- 0.088200000000000001,
- 6.8325035612536003E-07,0.1008,
- 6.5743162393161998E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_7=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 6.9684526353276003E-07,
- -0.088200000000000001,
- 7.1406606125356005E-07,
- -0.075600000000000001,
- 7.3236502849003E-07,-0.063,
- 7.2076442307691997E-07,-0.0504,
- 7.1793500712250995E-07,-0.0378,
- 7.2835648148147998E-07,-0.0252,
- 7.1444747150996998E-07,-0.0126,
- 7.1130893874644005E-07,0.0,
- 7.2107727920227996E-07,0.0126,
- 7.1129398148148005E-07,0.0252,
- 7.1441257122506995E-07,0.0378,
- 7.2830288461537998E-07,0.0504,
- 7.1786396011395999E-07,0.063,
- 7.2067841880341996E-07,
- 0.075600000000000001,
- 7.3226157407406997E-07,
- 0.088200000000000001,
- 7.1395138888889005E-07,0.1008,
- 6.9671812678063005E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_8=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 7.3679362535612996E-07,
- -0.088200000000000001,
- 7.5423130341880005E-07,
- -0.075600000000000001,
- 7.7215633903134002E-07,-0.063,
- 7.5865740740741005E-07,-0.0504,
- 7.5547774216523998E-07,-0.0378,
- 7.6662464387464E-07,-0.0252,
- 7.5088461538461995E-07,-0.0126,
- 7.4313924501423998E-07,0.0,
- 7.486323005698E-07,0.0126,
- 7.4312054843304996E-07,0.0252,
- 7.5084722222222E-07,0.0378,
- 7.6656730769230998E-07,0.0504,
- 7.5540170940170999E-07,0.063,
- 7.5856267806267997E-07,
- 0.075600000000000001,
- 7.7204415954415998E-07,
- 0.088200000000000001,
- 7.5410790598291005E-07,0.1008,
- 7.3665776353275997E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_9=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 7.7370940170939995E-07,
- -0.088200000000000001,
- 8.0144764957264998E-07,
- -0.075600000000000001,
- 8.0374358974358997E-07,-0.063,
- 8.0603952991452995E-07,-0.0504,
- 8.0238372507123005E-07,-0.0378,
- 7.9936672008546997E-07,-0.0252,
- 7.9634971509971995E-07,-0.0126,
- 7.8317361111111004E-07,0.0,
- 7.8316426282051005E-07,0.0126,
- 7.8315491452990996E-07,0.0252,
- 7.9631107549857995E-07,0.0378,
- 7.9930689102564003E-07,0.0504,
- 8.0230270655270996E-07,0.063,
- 8.0593856837607005E-07,
- 0.075600000000000001,
- 8.0362580128205003E-07,
- 0.088200000000000001,
- 8.0131303418803E-07,0.1008,
- 7.7356356837607E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_10=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 7.9424198717948999E-07,
- -0.088200000000000001,
- 8.1225925925926001E-07,
- -0.075600000000000001,
- 8.3075516381766E-07,-0.063,
- 8.1540651709402001E-07,-0.0504,
- 8.1131071937321997E-07,-0.0378,
- 8.2297489316238996E-07,-0.0252,
- 8.0577403846154003E-07,-0.0126,
- 7.9717236467236002E-07,0.0,
- 8.0284615384615001E-07,0.0126,
- 7.9715117521368004E-07,0.0252,
- 8.0573165954416005E-07,0.0378,
- 8.2291257122506995E-07,0.0504,
- 8.1122845441594998E-07,0.063,
- 8.1530306267805998E-07,
- 0.075600000000000001,
- 8.3063051994301999E-07,
- 0.088200000000000001,
- 8.1211841168090999E-07,0.1008,
- 7.9408742877492998E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_11=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.1647845441594995E-07,
- -0.088200000000000001,
- 8.3510648148147996E-07,
- -0.075600000000000001,
- 8.5487873931623998E-07,-0.063,
- 8.3969088319087998E-07,-0.0504,
- 8.3502920227919995E-07,-0.0378,
- 8.4651014957265E-07,-0.0252,
- 8.2973931623932002E-07,-0.0126,
- 8.2549269943020005E-07,0.0,
- 8.3637909544160002E-07,0.0126,
- 8.2547275641026002E-07,0.0252,
- 8.2969319800569997E-07,0.0378,
- 8.4644408831909002E-07,0.0504,
- 8.3493945868945997E-07,0.063,
- 8.3957995014244996E-07,
- 0.075600000000000001,
- 8.5474786324785998E-07,
- 0.088200000000000001,
- 8.3495690883191003E-07,0.1008,
- 8.1631641737892005E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_12=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.3948272792023003E-07,
- -0.088200000000000001,
- 8.7002546296295996E-07,
- -0.075600000000000001,
- 8.7608564814814997E-07,-0.063,
- 8.8214583333333004E-07,-0.0504,
- 8.7589245014244996E-07,-0.0378,
- 8.7128872863248004E-07,-0.0252,
- 8.6668500712251001E-07,-0.0126,
- 8.6321616809117001E-07,0.0,
- 8.6320432692307996E-07,0.0126,
- 8.6319248575499001E-07,0.0252,
- 8.6663764245014005E-07,0.0378,
- 8.7121705840456005E-07,0.0504,
- 8.7579647435896998E-07,0.063,
- 8.8202617521368001E-07,
- 0.075600000000000001,
- 8.7594667022791999E-07,
- 0.088200000000000001,
- 8.6986716524217003E-07,0.1008,
- 8.3931196581196996E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_13=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.5508315527066002E-07,
- -0.088200000000000001,
- 8.7546616809116998E-07,
- -0.075600000000000001,
- 9.0944533475783005E-07,-0.063,
- 9.1292663817663998E-07,-0.0504,
- 8.9653721509972004E-07,-0.0378,
- 8.9547275641025999E-07,-0.0252,
- 8.7405644586895003E-07,-0.0126,
- 8.7004789886040001E-07,0.0,
- 8.8226549145299002E-07,0.0126,
- 8.7002546296295996E-07,0.0252,
- 8.7400534188033999E-07,0.0378,
- 8.9539672364672004E-07,0.0504,
- 8.9643376068376001E-07,0.063,
- 9.1279825498575999E-07,
- 0.075600000000000001,
- 9.0929576210826002E-07,
- 0.088200000000000001,
- 8.7530288461538001E-07,0.1008,
- 8.5490491452990995E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_14=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.5798237179486999E-07,
- -0.088200000000000001,
- 8.6880893874644002E-07,
- -0.075600000000000001,
- 9.0299750712251001E-07,-0.063,
- 9.0948646723646997E-07,-0.0504,
- 9.1597542735043003E-07,-0.0378,
- 9.0500302706552995E-07,-0.0252,
- 8.8214084757835001E-07,-0.0126,
- 8.7779825498574995E-07,0.0,
- 8.8993732193732E-07,0.0126,
- 8.7777207977207998E-07,0.0252,
- 8.8208974358973997E-07,0.0378,
- 9.0492325498575998E-07,0.0504,
- 9.1586574074073996E-07,0.063,
- 9.0935434472933995E-07,
- 0.075600000000000001,
- 9.0284294871795E-07,
- 0.088200000000000001,
- 8.6864066951567002E-07,0.1008,
- 8.5779665242165003E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_15=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.5773557692308004E-07,
- -0.088200000000000001,
- 8.6180893874644003E-07,
- -0.075600000000000001,
- 8.7862838319088002E-07,-0.063,
- 8.9924074074074004E-07,-0.0504,
- 9.0872489316239005E-07,-0.0378,
- 9.0174545940170996E-07,-0.0252,
- 8.9476602564102997E-07,-0.0126,
- 8.9122364672365005E-07,0.0,
- 8.9120993589743996E-07,0.0126,
- 8.9119622507122997E-07,0.0252,
- 8.9471118233617996E-07,0.0378,
- 9.0166132478632003E-07,0.0504,
- 9.0861146723646996E-07,0.063,
- 8.9910363247862999E-07,
- 0.075600000000000001,
- 8.7847257834757996E-07,
- 0.088200000000000001,
- 8.6163693019942995E-07,0.1008,
- 8.5754362535613004E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_16=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.5903935185184999E-07,
- -0.088200000000000001,
- 8.5690046296295998E-07,
- -0.075600000000000001,
- 8.5831018518518999E-07,-0.063,
- 8.6167307692307999E-07,-0.0504,
- 8.7125320512820998E-07,-0.0378,
- 8.8563586182335997E-07,-0.0252,
- 8.7089298433048003E-07,-0.0126,
- 8.6842877492877004E-07,0.0,
- 8.7942111823362E-07,0.0126,
- 8.6840135327634996E-07,0.0252,
- 8.7083814102563997E-07,0.0378,
- 8.8554985754985996E-07,0.0504,
- 8.7113977920228004E-07,0.063,
- 8.6153846153846001E-07,
- 0.075600000000000001,
- 8.5815313390312996E-07,
- 0.088200000000000001,
- 8.5672471509971999E-07,0.1008,
- 8.5884116809116995E-07),
- PROL_DROIT:'CONSTANT');
-
-FLY_1_17=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Y'
- VALE:
- (-0.1008,
- 8.6388675213674999E-07,
- -0.088200000000000001,
- 8.5563782051281999E-07,
- -0.075600000000000001,
- 8.5087019230768996E-07,-0.063,
- 8.4755965099714995E-07,-0.0504,
- 8.4761698717949003E-07,-0.0378,
- 8.5133636039885996E-07,-0.0252,
- 8.4844088319088001E-07,-0.0126,
- 8.4633689458689002E-07,0.0,
- 8.4644658119657999E-07,0.0126,
- 8.4630947293447004E-07,0.0252,
- 8.4838479344729004E-07,0.0378,
- 8.512516025641E-07,0.0504,
- 8.4750480769231E-07,0.063,
- 8.4742378917379002E-07,
- 0.075600000000000001,
- 8.5071064814815003E-07,
- 0.088200000000000001,
- 8.5545584045584E-07,0.1008,
- 8.6368108974359E-07),
- PROL_DROIT:'CONSTANT');
-
-FLUXRD1=DEFI_NAPPE(FONCTION:(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,
- FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,
- FLY_1_10,FLY_1_11,FLY_1_12,
- FLY_1_13,FLY_1_14,FLY_1_15,
- FLY_1_16,FLY_1_17),
- PARA:
- (-0.1008,
- -0.088200000000000001,
- -0.075600000000000001,-0.063,-0.0504,
- -0.0378,-0.0252,-0.0126,0.0,0.0126,
- 0.0252,0.0378,0.0504,0.063,
- 0.075600000000000001,
- 0.088200000000000001,0.1008),
- PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'Z'
- PROL_DROIT:'CONSTANT');
-%
-% DEFINITION DES MATERIAUX ET AFFECTATIONS
-%
-% **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE ****
-%
-%
-% FAMILLE ASSEMBLAGE : NUMERO_FAM
-%
-% EMBOUT SUPERIEUR
-
-
-E_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-NU_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-AL_ES=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-MT_ES=DEFI_MATERIAU(ELAS_FO:(NU:NU_ES
- ALPHA:AL_ES
- RHO:7800.0
- E:E_ES));
-% EMBOUT INFERIEUR
-
-
-E_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-NU_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-AL_EI=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(100.0,2.0,300.0,3.0)
- PROL_DROIT:'CONSTANT');
-
-MT_EI=DEFI_MATERIAU(ELAS_FO:(NU:NU_EI
- ALPHA:AL_EI
- RHO:12.0
- E:E_EI));
-
-MT_RIG=DEFI_MATERIAU(ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-% FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON
-
-
-FOTRAC=DEFI_FONCTION(PROL_GAUCHE:'LINEAIRE'
- NOM_PARA:'DRZ'
- VALE:(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0)
- PROL_DROIT:'LINEAIRE');
-
-MT_RE1=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG1
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE2=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG2
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE3=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG3
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE4=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG4
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE5=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG5
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE6=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG6
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE7=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG7
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE8=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG8
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE9=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG9
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-
-MT_RE10=DEFI_MATERIAU(DIS_CONTACT:(EFFO_N_INIT:-35.0
- RELA_MZ:FOTRAC
- RIGI_N_FO:FRIG10
- COULOMB:1.0)
- ELAS:(NU:0.0
- ALPHA:0.0
- RHO:0.0
- E:1.0));
-% SYSTEME DE MAINTIEN
-
-
-E_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-SY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-DS_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-NP_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MEY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MPY_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MEZ_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MPZ_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-CAY_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-CBY_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-CAZ_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-CBZ_MA=DEFI_CONSTANTE(VALE:0.29999999999999999);
-
-MPX_MA=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-MT_MA=DEFI_MATERIAU(VMIS_POUTRE_FO:(MEZ:MEZ_MA
- MPX:MPX_MA
- MPZ:MPZ_MA
- CBY:CBY_MA
- NP:NP_MA
- CBZ:CBZ_MA
- MEY:MEY_MA
- CAY:CAY_MA
- CAZ:CAZ_MA
- MPY:MPY_MA)
- ECRO_LINE_FO:(D_SIGM_EPSI:DS_MA
- SY:SY_MA)
- ELAS_FO:(NU:NU_MA
- ALPHA:AL_MA
- RHO:7800.0
- E:E_MA));
-%
-% **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE ****
-%
-%
-% GRILLE
-
-
-E_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-E_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_GRE=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_GRM=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-% TUBE GUIDE
-
-
-E_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_TU=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-% CRAYON
-
-
-E_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-NU_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-
-AL_CR=DEFI_FONCTION(PROL_GAUCHE:'CONSTANT'
- NOM_PARA:'TEMP'
- VALE:(0.0,1.0,5.0,2.0)
- PROL_DROIT:'CONSTANT');
-% GRANDISSEMENT DES GRILLES
-% GRILLES EXTREMES 1 ET 10
-
-
-MT_GRE1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
- S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
- QSR_K:1.0
- UN_SUR_K:0.0)
- ELAS_FO:(NU:NU_GRE
- ALPHA:AL_GRE
- RHO:7800.0
- E:E_GRE));
-% GRILLES DE MELANGE
-
-
-MT_GRM1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
- S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
- QSR_K:2.0
- UN_SUR_K:0.0)
- ELAS_FO:(NU:NU_GRM
- ALPHA:AL_GRM
- RHO:7800.0
- E:E_GRM));
-% DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS )
-
-
-MT_TU1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
- S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
- QSR_K:2.0
- UN_SUR_K:0.0)
- ELAS_FO:(NU:NU_TU
- ALPHA:AL_TU
- RHO:7800.0
- E:E_TU));
-
-MT_CR1=DEFI_MATERIAU(GRAN_IRRA:(FONC_MULT:FLUX_F1
- FLUX_L:FLUXAX1
- FLUX_TN:FLUXRD1
- S:1.0
- A:0.0)
- LEMAITRE:(N:0.0
- UN_SUR_M:0.0
- QSR_K:2.0
- UN_SUR_K:0.0)
- ELAS_FO:(NU:NU_CR
- ALPHA:AL_CR
- RHO:7800.0
- E:E_CR));
-%
-% AFFECTATION DES MATERIAUX A CHAUD - CYCLE
-%
-%
-
-
-A_MAT_1=AFFE_MATERIAU(AFFE:(TEMP_REF:100.0
- MATER:MT_MA
- GROUP_MA:(MAINTI_Y,MAINTI_Z))
- AFFE:(TEMP_REF:100.0
- MATER:MT_GRM1
- GROUP_MA:GRIL_I)
- AFFE:(TEMP_REF:100.0
- MATER:MT_GRE1
- GROUP_MA:GRIL_E)
- AFFE:(TEMP_REF:100.0
- MATER:MT_CR1
- GROUP_MA:CRAY)
- AFFE:(TEMP_REF:100.0
- MATER:MT_TU1
- GROUP_MA:GUID)
- AFFE:(TEMP_REF:100.0
- MATER:MT_EI
- GROUP_MA:EBOINF)
- AFFE:(TEMP_REF:100.0
- MATER:MT_EI
- GROUP_MA:(PI_PLE,PI_TRO))
- AFFE:(TEMP_REF:100.0
- MATER:MT_ES
- GROUP_MA:EBOSUP)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RIG
- GROUP_MA:RIGID)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE1
- GROUP_MA:ELA1)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE2
- GROUP_MA:ELA2)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE3
- GROUP_MA:ELA3)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE4
- GROUP_MA:ELA4)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE5
- GROUP_MA:ELA5)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE6
- GROUP_MA:ELA6)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE7
- GROUP_MA:ELA7)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE8
- GROUP_MA:ELA8)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE9
- GROUP_MA:ELA9)
- AFFE:(TEMP_REF:100.0
- MATER:MT_RE10
- GROUP_MA:ELA10)
- MAILLAGE:MA1);
-%
-
-
-L_INST_1=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:0.5
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:1000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:2000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:3000.0
- NOMBRE:5)
- INTERVALLE:(JUSQU_A:4000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:5000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:6000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:7000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:8000.0
- NOMBRE:1)
- DEBUT:0.0);
-
-L_ARCH_1=DEFI_LIST_REEL(INTERVALLE:(JUSQU_A:0.5
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:1000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:2000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:3000.0
- NOMBRE:5)
- INTERVALLE:(JUSQU_A:4000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:5000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:6000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:7000.0
- NOMBRE:1)
- INTERVALLE:(JUSQU_A:8000.0
- NOMBRE:1)
- DEBUT:0.0);
-%
-% CALCUL PHASE I A V DU CYCLE 1
-%
-
-
-RESU=STAT_NON_LINE(CHAM_MATER:A_MAT_1
- MODELE:MO1
- ARCHIVAGE:(LIST_INST:L_ARCH_1)
- CONVERGENCE:(ITER_GLOB_MAXI:50
- ITER_INTE_MAXI:500
- RESI_GLOB_RELA:1.E-4
- ARRET:'OUI')
- COMP_INCR:(RELATION:'VMIS_POU_LINE'
- GROUP_MA:MAINTIEN)
- COMP_INCR:(RELATION:'ASSE_COMBU'
- GROUP_MA:(CRAYONS,TUB_GUID))
- COMP_INCR:(RELATION:'DIS_CONTACT'
- GROUP_MA:LI_GR_CR)
- COMP_INCR:(COQUE_NCOU:1
- RELATION:'ELAS'
- GROUP_MA:
-
- (EMBO_INF,EMBO_SUP,
- PIEDS,GRILLES,
- LI_GR_GU),)
- INCREMENT:(NUME_INST_FIN:20
- LIST_INST:L_INST_1)
- CARA_ELEM:CARA1
- RECH_LINEAIRE:(ITER_LINE_MAXI:3)
- NEWTON:(REAC_ITER:1
- MATRICE:'TANGENTE')
- SOLVEUR:(METHODE:'MULT_FRONT'
- RENUM:'MD')
- EXCIT:(FONC_MULT:ARCH_F1
- CHARGE:ARCH_1)
- EXCIT:(FONC_MULT:ARCH_F1
- CHARGE:FOARCH_1)
- EXCIT:(FONC_MULT:HYDR_F1
- CHARGE:HYDR_1)
- EXCIT:(FONC_MULT:HYDR_F1
- CHARGE:FOHYDR_1)
- EXCIT:(FONC_MULT:CLDI_F1
- CHARGE:CL_DI_1)
- EXCIT:(CHARGE:CL_PER_1)
- EXCIT:(CHARGE:CL_CTC)
- EXCIT:(CHARGE:PESANT_1)
- EXCIT:(CHARGE:THERM_1)
- PARM_THETA:0.5);
-
-FIN();
+++ /dev/null
-
-
-DEBUT();
-# LECTURE DES PARAMETRES
-#
-# LECTURE DES TEMPS
-#CYCLE 1
-# LECTURE DU MAILLAGE ET DEFINITIONS DES PROPRIETES ELEMENTS FINIS
-
-
-PRE_GIBI();
-#
-
-
-MA1=LIRE_MAILLAGE();
-#
-
-
-MA1=DEFI_GROUP(reuse =MA1,
- CREA_GROUP_NO=_F(GROUP_MA=('FIXATI','APPUI','LIAS_1','LIAS_2','EBGUIDE','MAINTIEN','MAIN_SUP','EMBO_SUP','TUB_GUID',
- 'GRILLES','EMBO_INF','PIEDS','CRAYONS',),),
- MAILLAGE=MA1,);
-#
-# AFFECTATION DU MODELE
-#
-
-
-MO1=AFFE_MODELE(AFFE=(_F(GROUP_MA='CRAYONS',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),
- _F(GROUP_MA='TUB_GUID',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),
- _F(GROUP_MA=('EMBO_SUP','EMBO_INF',),
- PHENOMENE='MECANIQUE',
- MODELISATION='DKT',),
- _F(GROUP_MA='PIEDS',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),
- _F(GROUP_MA='GRILLES',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),
- _F(GROUP_MA='LI_GR_CR',
- PHENOMENE='MECANIQUE',
- MODELISATION='DIS_TR',),
- _F(GROUP_MA='LI_GR_GU',
- PHENOMENE='MECANIQUE',
- MODELISATION='DIS_TR',),
- _F(GROUP_MA='MAINTIEN',
- PHENOMENE='MECANIQUE',
- MODELISATION='POU_D_E',),),
- MAILLAGE=MA1,);
-#
-# AFFECTATION DES CARACTERISTIQUES GEOMETRIQUES ELEMENTAIRES
-#
-
-
-CARA1=AFFE_CARA_ELEM(MODELE=MO1,
- COQUE=(_F(ANGL_REP=90.0,
- GROUP_MA='EBOINF',
- EPAIS=2.0,),
- _F(ANGL_REP=90.0,
- GROUP_MA='EBOSUP',
- EPAIS=3.0,),),
- DISCRET=(_F(VALE=(1.0,2.0,3.0,4.0,5.0,6.0,),
- REPERE='LOCAL',
- CARA='K_TR_D_L',
- GROUP_MA='ELASTI',),
- _F(VALE=(1.0,2.0,3.0,4.0,5.0,6.0,),
- REPERE='LOCAL',
- CARA='K_TR_D_L',
- GROUP_MA='RIGID',),),
- ORIENTATION=(_F(VALE=(1.0,0.0,0.0,),
- CARA='VECT_Y',
- GROUP_MA=('GRIL_I','GRIL_E',),),
- _F(VALE=(0.0,1.0,0.0,),
- CARA='VECT_Y',
- GROUP_MA='MAINTI_Y',),
- _F(VALE=(0.0,0.0,1.0,),
- CARA='VECT_Y',
- GROUP_MA='MAINTI_Z',),
- _F(VALE=(0.0,1.0,0.0,),
- CARA='VECT_Y',
- GROUP_MA=('PI_PLE','PI_TRO',),),
- _F(VALE=(1.0,0.0,0.0,),
- CARA='VECT_Y',
- GROUP_MA=('ELASTI','RIGID',),),),
- POUTRE=(_F(SECTION='CERCLE',
- GROUP_MA='CRAY',
- VALE=(3.0,3.0,),
- CARA=('R','EP',),),
- _F(SECTION='CERCLE',
- GROUP_MA='GUID',
- VALE=(3.0,3.0,),
- CARA=('R','EP',),),
- _F(SECTION='CERCLE',
- GROUP_MA='RETRE',
- VALE=(3.0,3.0,),
- CARA=('R','EP',),),
- _F(SECTION='RECTANGLE',
- GROUP_MA='GRIL_I',
- VALE=(3.0,3.0,),
- CARA=('HY','HZ',),),
- _F(SECTION='RECTANGLE',
- GROUP_MA='GRIL_E',
- VALE=(3.0,3.0,),
- CARA=('HY','HZ',),),
- _F(SECTION='RECTANGLE',
- GROUP_MA=('MAINTI_Y','MAINTI_Z',),
- VALE=(3.0,3.0,),
- CARA=('HY','HZ',),),
- _F(SECTION='GENERALE',
- GROUP_MA='PI_PLE',
- VALE=(1.0,2.0,3.0,4.0,),
- CARA=('A','IZ','IY','JX',),),
- _F(SECTION='GENERALE',
- GROUP_MA='PI_TRO',
- VALE=(1.0,2.0,3.0,4.0,),
- CARA=('A','IZ','IY','JX',),),),);
-#
-# DEFINITION DES CHARGES ET CONDITIONS LIMITES
-# DEFINITION DES TEMPERATURES NODALES EVOLUTIVES
-#
-
-
-F_TP1_1=DEFI_FONCTION(NOM_RESU='TEMP',
- PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,4.0,),
- PROL_DROIT='CONSTANT',);
-
-F_TP2_1=DEFI_FONCTION(NOM_RESU='TEMP',
- PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,4.0,),
- PROL_DROIT='CONSTANT',);
-
-F_TP3_1=DEFI_FONCTION(NOM_RESU='TEMP',
- PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,4.0,),
- PROL_DROIT='CONSTANT',);
-
-CHTEM1_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F',
- AFFE=(_F(FONCTION=F_TP1_1,
- GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',),
- NOM_CMP='TEMP',),
- _F(FONCTION=(F_TP1_1,F_TP1_1,F_TP1_1,),
- GROUP_NO=('EMBO_SUP','EMBO_INF',),
- NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),),
- MAILLAGE=MA1,);
-
-CHTEM2_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F',
- AFFE=(_F(FONCTION=F_TP2_1,
- GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES','CRAYONS',),
- NOM_CMP='TEMP',),
- _F(FONCTION=(F_TP2_1,F_TP2_1,F_TP2_1,),
- GROUP_NO=('EMBO_SUP','EMBO_INF',),
- NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),),
- MAILLAGE=MA1,);
-
-CHTEM3_1=AFFE_CHAM_NO(GRANDEUR='TEMP_F',
- AFFE=(_F(FONCTION=F_TP3_1,
- GROUP_NO=('MAINTIEN','PIEDS','TUB_GUID','GRILLES',),
- NOM_CMP='TEMP',),
- _F(FONCTION=(F_TP3_1,F_TP3_1,F_TP3_1,),
- GROUP_NO=('EMBO_SUP','EMBO_INF',),
- NOM_CMP=('TEMP_INF','TEMP','TEMP_SUP',),),
- _F(FONCTION=F_TP3_1,
- GROUP_NO='CRAYONS',
- NOM_CMP='TEMP',),),
- MAILLAGE=MA1,);
-
-CHTH_1=CREA_RESU(NOM_CHAM='TEMP',
- CHAM_GD=(_F(INST=0.0,
- CHAM_NO=CHTEM1_1,),
- _F(INST=1000.0,
- CHAM_NO=CHTEM1_1,),
- _F(INST=2000.0,
- CHAM_NO=CHTEM2_1,),
- _F(INST=3000.0,
- CHAM_NO=CHTEM3_1,),
- _F(INST=4000.0,
- CHAM_NO=CHTEM3_1,),
- _F(INST=5000.0,
- CHAM_NO=CHTEM2_1,),
- _F(INST=6000.0,
- CHAM_NO=CHTEM1_1,),
- _F(INST=7000.0,
- CHAM_NO=CHTEM1_1,),),
- TYPE_RESU='EVOL_THER',);
-# CHARGEMENT: CHARGES THERMO-MECANIQUES
-# ----------------------------------------
-
-
-THERM_1=AFFE_CHAR_MECA(MODELE=MO1,
- TEMP_CALCULEE=CHTH_1,);
-# DEFINITION DES CONDITIONS LIMITES
-# DES CONDITIONS DE CONTACT
-#
-# CHARGEMENT: PESANTEUR
-#
-
-
-PESANT_1=AFFE_CHAR_MECA(MODELE=MO1,
- PESANTEUR=(9.8100000000000005,-1.0,0.0,0.0,),);
-#
-# CONDITIONS AUX LIMITES
-#
-
-
-CL_PER_1=AFFE_CHAR_MECA(MODELE=MO1,
- DDL_IMPO=(_F(DZ=0.0,
- DX=0.0,
- DY=0.0,
- GROUP_NO='FIXATI',
- DRZ=0.0,
- DRX=0.0,
- DRY=0.0,),
- _F(DX=0.0,
- GROUP_NO='APPUI',),
- _F(DZ=0.0,
- DY=0.0,
- GROUP_NO='EBGUIDE',
- DRZ=0.0,
- DRX=0.0,
- DRY=0.0,),
- _F(GROUP_NO=('LIAS_1','LIAS_2',),
- DRX=0.0,),),
- LIAISON_GROUP=(_F(COEF_MULT_1=1.0,
- DDL_1='DX',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DX',),
- _F(COEF_MULT_1=1.0,
- DDL_1='DY',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DY',),
- _F(COEF_MULT_1=1.0,
- DDL_1='DZ',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DZ',),
- _F(COEF_MULT_1=1.0,
- DDL_1='DRY',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DRY',),
- _F(COEF_MULT_1=1.0,
- DDL_1='DRZ',
- COEF_MULT_2=-1.0,
- COEF_IMPO=0.0,
- GROUP_NO_1='LIAS_1',
- GROUP_NO_2='LIAS_2',
- DDL_2='DRZ',),),);
-#
-
-
-CL_CTC=AFFE_CHAR_MECA(INFO=1,
- MODELE=MO1,
- CONTACT=_F(GROUP_MA_1='EBOINF',
- VECT_NORM_2=(-1.0,0.0,0.0,),
- APPARIEMENT='NODAL',
- GROUP_MA_2='MCRBAS',),);
-#
-# DEPLACEMENT DU SYSTEME DE MAINTIEN
-#
-
-
-CLDI_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=
- (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,0.10000000000000001,),
- PROL_DROIT='CONSTANT',);
-
-CL_DI_1=AFFE_CHAR_MECA(MODELE=MO1,
- DDL_IMPO=_F(DX=-1.0,
- GROUP_NO='MAIN_SUP',),);
-# DEFINITION DES FORCES EXTERIEURES
-#
-# FONCTION MULTIPLICATIVE DE LA FORCE HYDRODYNAMIQUE NORMEE
-#
-
-
-HYDR_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=
- (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,0.10000000000000001,),
- PROL_DROIT='CONSTANT',);
-#
-# PROFIL DES FORCES HYDRODYNAMIQUES TUBES GUIDES A FROID
-#
-
-
-HYFRTU_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-#
-# PROFIL DES FORCES HYDRODYNAMIQUES CRAYON A FROID
-#
-
-
-HYFRCR_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-#
-# CHARGEMENT : FORCES HYDRODYNAMIQUES
-#
-
-
-HYDR_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='GRIL10',
- FX=10.0,),
- _F(GROUP_MA='GRIL1',
- FX=10.0,),
- _F(GROUP_MA='GRIL2',
- FX=10.0,),
- _F(GROUP_MA='GRIL3',
- FX=10.0,),
- _F(GROUP_MA='GRIL4',
- FX=10.0,),
- _F(GROUP_MA='GRIL5',
- FX=10.0,),
- _F(GROUP_MA='GRIL6',
- FX=10.0,),
- _F(GROUP_MA='GRIL7',
- FX=10.0,),
- _F(GROUP_MA='GRIL8',
- FX=10.0,),
- _F(GROUP_MA='GRIL9',
- FX=10.0,),),
- MODELE=MO1,
- FORCE_COQUE=(_F(FX=10.0,
- GROUP_MA='EBOSUP',),
- _F(FX=10.0,
- GROUP_MA='EBOINF',),),);
-
-TOTO_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,10.0,5.0,10.0,),
- PROL_DROIT='CONSTANT',);
-#
-
-
-FOHYDR_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID',
- FX=TOTO_1,),
- _F(GROUP_MA='CRAY',
- FX=TOTO_1,),),
- MODELE=MO1,);
-#
-# PROFIL DES FORCES D'ARCHIMEDE TUBE GUIDE
-#
-
-
-ARFRTU_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,10.0,5.0,10.0,),
- PROL_DROIT='CONSTANT',);
-#
-# PROFIL DES FORCES D'ARCHIMEDE CRAYON
-#
-
-
-ARFRCR_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='X',
- VALE=(0.0,10.0,5.0,10.0,),
- PROL_DROIT='CONSTANT',);
-#
-# FONCTION MULTIPLICATIVE DE LA FORCE D'ARCHIMEDE
-#
-
-
-ARCH_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=
- (0.0,0.0,1000.0,0.10000000000000001,2000.0,0.20000000000000001,3000.0,
- 0.20000000000000001,4000.0,0.20000000000000001,5000.0,0.20000000000000001,6000.0,
- 0.10000000000000001,7000.0,0.10000000000000001,),
- PROL_DROIT='CONSTANT',);
-#
-#
-# CHARGEMENT : FORCES D'ARCHIMEDE
-# ----------------------------------------
-#
-
-
-ARCH_1=AFFE_CHAR_MECA(FORCE_POUTRE=(_F(GROUP_MA='MAINTIEN',
- FX=10.0,),
- _F(GROUP_MA='GRIL10',
- FX=10.0,),
- _F(GROUP_MA='GRIL1',
- FX=10.0,),
- _F(GROUP_MA='GRIL2',
- FX=10.0,),
- _F(GROUP_MA='GRIL3',
- FX=10.0,),
- _F(GROUP_MA='GRIL4',
- FX=10.0,),
- _F(GROUP_MA='GRIL5',
- FX=10.0,),
- _F(GROUP_MA='GRIL6',
- FX=10.0,),
- _F(GROUP_MA='GRIL7',
- FX=10.0,),
- _F(GROUP_MA='GRIL8',
- FX=10.0,),
- _F(GROUP_MA='GRIL9',
- FX=10.0,),),
- MODELE=MO1,
- FORCE_COQUE=(_F(FX=10.0,
- GROUP_MA='EBOSUP',),
- _F(FX=10.0,
- GROUP_MA='EBOINF',),),);
-
-FOARCH_1=AFFE_CHAR_MECA_F(FORCE_POUTRE=(_F(GROUP_MA='GUID',
- FX=ARCH_F1,),
- _F(GROUP_MA='CRAY',
- FX=ARCH_F1,),),
- MODELE=MO1,);
-#
-#
-# FORCE DE SERRAGE DE LA LIAISON GRILLE - CRAYON
-#
-#
-#
-#
-#
-# DEFINITION DE LA LISTE D'INSTANTS
-#
-
-
-L_FRIG=DEFI_LIST_REEL(INTERVALLE=_F(JUSQU_A=1000.0,
- NOMBRE=100,),
- DEBUT=0.0,);
-#
-# INRTERPRETATION DES FONCTIONS
-#
-
-
-F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F2=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F3=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F4=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F5=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F6=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F7=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F8=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F9=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-F10=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=(0.0,0.0,43200.0,0.0,),
- PROL_DROIT='CONSTANT',);
-
-FRIG1=CALC_FONC_INTERP(FONCTION=F1,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG2=CALC_FONC_INTERP(FONCTION=F2,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG3=CALC_FONC_INTERP(FONCTION=F3,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG4=CALC_FONC_INTERP(FONCTION=F4,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG5=CALC_FONC_INTERP(FONCTION=F5,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG6=CALC_FONC_INTERP(FONCTION=F6,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG7=CALC_FONC_INTERP(FONCTION=F7,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG8=CALC_FONC_INTERP(FONCTION=F8,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG9=CALC_FONC_INTERP(FONCTION=F9,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-
-FRIG10=CALC_FONC_INTERP(FONCTION=F10,
- PROL_DROIT='CONSTANT',
- INTERPOL='LIN',
- PROL_GAUCHE='CONSTANT',
- LIST_PARA=L_FRIG,);
-#
-# DEFINITION DU FLUX NEUTRONIQUE RADIAL
-
-
-FLUX_F1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='INST',
- VALE=
- (0.0,0.0,43200.0,0.0,974520.0,453280.0,2638800.0,2077850.0,4087800.0,3512790.0,
- 5428440.0,4856770.0,7245000.0,6676270.0,8853480.0,8279770.0,10460900.0,9872610.0,12202900.0,
- 11586900.0,13944600.0,13295200.0,14143700.0,13490200.0,15563200.0,14875300.0,17236100.0,
- 16506900.0,17948200.0,17199200.0,18190100.0,17433400.0,18193700.0,17435200.0,18197300.0,
- 17435200.0,18200900.0,17435200.0,),
- PROL_DROIT='CONSTANT',);
-# DEFINITION DU FLUX AXIAL POUR LE CYCLE 1
-
-
-FLUXAX1=LIRE_FONCTION(PROL_GAUCHE='CONSTANT',
- UNITE=60,
- PROL_DROIT='CONSTANT',);
-
-FLY_1_1=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,3.8032834757835002e-07,-0.088200000000000001,3.8083689458688999e-07,
- -0.075600000000000001,3.8296082621083001e-07,-0.063,3.858400997151e-07,-0.0504,
- 3.8946100427349999e-07,-0.0378,3.9259455128205e-07,-0.0252,3.9258457977207998e-07,-0.0126,
- 3.9294106125356001e-07,0.0,3.9399554843304999e-07,0.0126,3.9293233618234e-07,0.0252,
- 3.9256712962963002e-07,0.0378,3.9256712962963002e-07,0.0504,3.8942610398860001e-07,0.063,
- 3.8579522792023001e-07,0.075600000000000001,3.8290972222222002e-07,0.088200000000000001,
- 3.8077706552707e-07,0.1008,3.8026103988603998e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_2=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,4.3595566239316001e-07,-0.088200000000000001,4.3866542022792e-07,
- -0.075600000000000001,4.4331463675214e-07,-0.063,4.4911556267806002e-07,-0.0504,
- 4.5750658831909e-07,-0.0378,4.6647222222221997e-07,-0.0252,4.6002938034188002e-07,-0.0126,
- 4.6004309116809001e-07,0.0,4.6686235754985997e-07,0.0126,4.6003311965811999e-07,0.0252,
- 4.6000943732193999e-07,0.0378,4.6643981481481001e-07,0.0504,4.5746420940171002e-07,0.063,
- 4.4906445868945999e-07,0.075600000000000001,4.4325356125356e-07,0.088200000000000001,
- 4.3859686609687001e-07,0.1008,4.3587838319088001e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_3=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,4.9431891025640996e-07,-0.088200000000000001,5.0005128205127998e-07,
- -0.075600000000000001,5.1337197293447004e-07,-0.063,5.2915313390313001e-07,-0.0504,
- 5.3788069800570004e-07,-0.0378,5.3504629629630004e-07,-0.0252,5.3221189458688998e-07,-0.0126,
- 5.3136431623932e-07,0.0,5.3135870726495999e-07,0.0126,5.3135309829059998e-07,0.0252,
- 5.3218696581197002e-07,0.0378,5.3500827991452996e-07,0.0504,5.3782959401709e-07,0.063,
- 5.2909205840456002e-07,0.075600000000000001,5.1330217236466999e-07,0.088200000000000001,
- 4.9997150997151001e-07,0.1008,4.9423165954416005e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_4=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,5.5489957264956999e-07,-0.088200000000000001,5.6477884615384998e-07,
- -0.075600000000000001,5.9007781339030998e-07,-0.063,5.9726415598291003e-07,-0.0504,
- 6.0445049857550001e-07,-0.0378,5.9840776353275996e-07,-0.0252,5.8440651709402002e-07,-0.0126,
- 5.8263906695157003e-07,0.0,5.9153240740741004e-07,0.0126,5.8262660256409999e-07,0.0252,
- 5.8438034188033999e-07,0.0378,5.9836663105413e-07,0.0504,6.0439316239316004e-07,0.063,
- 5.9719497863248e-07,0.075600000000000001,5.8999679487179001e-07,0.088200000000000001,
- 5.6469159544159996e-07,0.1008,5.5480110398860005e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_5=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,6.1267200854701004e-07,-0.088200000000000001,6.2962357549858005e-07,
- -0.075600000000000001,6.5655413105413e-07,-0.063,6.6164583333332999e-07,-0.0504,
- 6.5190242165241998e-07,-0.0378,6.5212678062678005e-07,-0.0252,6.3746616809116999e-07,-0.0126,
- 6.3547435897436004e-07,0.0,6.4509686609687001e-07,0.0126,6.3546064814814995e-07,0.0252,
- 6.3743625356125e-07,0.0378,6.5207941595442004e-07,0.0504,6.5183885327634997e-07,0.063,
- 6.6156980056979999e-07,0.075600000000000001,6.5646563390312997e-07,0.088200000000000001,
- 6.2952386039885999e-07,0.1008,6.1256356837606998e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_6=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,6.5755128205127996e-07,-0.088200000000000001,6.8336253561253996e-07,
- -0.075600000000000001,6.9012072649573003e-07,-0.063,6.9687891737892e-07,-0.0504,
- 6.9362571225071001e-07,-0.0378,6.9074768518518997e-07,-0.0252,6.8786965811965998e-07,-0.0126,
- 6.8586413817664004e-07,0.0,6.8585603632478996e-07,0.0126,6.8584793447293003e-07,0.0252,
- 6.8783600427350001e-07,0.0378,6.9069720441594996e-07,0.0504,6.9355840455840002e-07,0.063,
- 6.9679789886040002e-07,0.075600000000000001,6.9002412749288002e-07,0.088200000000000001,
- 6.8325035612536003e-07,0.1008,6.5743162393161998e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_7=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,6.9684526353276003e-07,-0.088200000000000001,7.1406606125356005e-07,
- -0.075600000000000001,7.3236502849003e-07,-0.063,7.2076442307691997e-07,-0.0504,
- 7.1793500712250995e-07,-0.0378,7.2835648148147998e-07,-0.0252,7.1444747150996998e-07,-0.0126,
- 7.1130893874644005e-07,0.0,7.2107727920227996e-07,0.0126,7.1129398148148005e-07,0.0252,
- 7.1441257122506995e-07,0.0378,7.2830288461537998e-07,0.0504,7.1786396011395999e-07,0.063,
- 7.2067841880341996e-07,0.075600000000000001,7.3226157407406997e-07,0.088200000000000001,
- 7.1395138888889005e-07,0.1008,6.9671812678063005e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_8=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,7.3679362535612996e-07,-0.088200000000000001,7.5423130341880005e-07,
- -0.075600000000000001,7.7215633903134002e-07,-0.063,7.5865740740741005e-07,-0.0504,
- 7.5547774216523998e-07,-0.0378,7.6662464387464e-07,-0.0252,7.5088461538461995e-07,-0.0126,
- 7.4313924501423998e-07,0.0,7.486323005698e-07,0.0126,7.4312054843304996e-07,0.0252,
- 7.5084722222222e-07,0.0378,7.6656730769230998e-07,0.0504,7.5540170940170999e-07,0.063,
- 7.5856267806267997e-07,0.075600000000000001,7.7204415954415998e-07,0.088200000000000001,
- 7.5410790598291005e-07,0.1008,7.3665776353275997e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_9=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,7.7370940170939995e-07,-0.088200000000000001,8.0144764957264998e-07,
- -0.075600000000000001,8.0374358974358997e-07,-0.063,8.0603952991452995e-07,-0.0504,
- 8.0238372507123005e-07,-0.0378,7.9936672008546997e-07,-0.0252,7.9634971509971995e-07,-0.0126,
- 7.8317361111111004e-07,0.0,7.8316426282051005e-07,0.0126,7.8315491452990996e-07,0.0252,
- 7.9631107549857995e-07,0.0378,7.9930689102564003e-07,0.0504,8.0230270655270996e-07,0.063,
- 8.0593856837607005e-07,0.075600000000000001,8.0362580128205003e-07,0.088200000000000001,
- 8.0131303418803e-07,0.1008,7.7356356837607e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_10=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,7.9424198717948999e-07,-0.088200000000000001,8.1225925925926001e-07,
- -0.075600000000000001,8.3075516381766e-07,-0.063,8.1540651709402001e-07,-0.0504,
- 8.1131071937321997e-07,-0.0378,8.2297489316238996e-07,-0.0252,8.0577403846154003e-07,-0.0126,
- 7.9717236467236002e-07,0.0,8.0284615384615001e-07,0.0126,7.9715117521368004e-07,0.0252,
- 8.0573165954416005e-07,0.0378,8.2291257122506995e-07,0.0504,8.1122845441594998e-07,0.063,
- 8.1530306267805998e-07,0.075600000000000001,8.3063051994301999e-07,0.088200000000000001,
- 8.1211841168090999e-07,0.1008,7.9408742877492998e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_11=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.1647845441594995e-07,-0.088200000000000001,8.3510648148147996e-07,
- -0.075600000000000001,8.5487873931623998e-07,-0.063,8.3969088319087998e-07,-0.0504,
- 8.3502920227919995e-07,-0.0378,8.4651014957265e-07,-0.0252,8.2973931623932002e-07,-0.0126,
- 8.2549269943020005e-07,0.0,8.3637909544160002e-07,0.0126,8.2547275641026002e-07,0.0252,
- 8.2969319800569997e-07,0.0378,8.4644408831909002e-07,0.0504,8.3493945868945997e-07,0.063,
- 8.3957995014244996e-07,0.075600000000000001,8.5474786324785998e-07,0.088200000000000001,
- 8.3495690883191003e-07,0.1008,8.1631641737892005e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_12=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.3948272792023003e-07,-0.088200000000000001,8.7002546296295996e-07,
- -0.075600000000000001,8.7608564814814997e-07,-0.063,8.8214583333333004e-07,-0.0504,
- 8.7589245014244996e-07,-0.0378,8.7128872863248004e-07,-0.0252,8.6668500712251001e-07,-0.0126,
- 8.6321616809117001e-07,0.0,8.6320432692307996e-07,0.0126,8.6319248575499001e-07,0.0252,
- 8.6663764245014005e-07,0.0378,8.7121705840456005e-07,0.0504,8.7579647435896998e-07,0.063,
- 8.8202617521368001e-07,0.075600000000000001,8.7594667022791999e-07,0.088200000000000001,
- 8.6986716524217003e-07,0.1008,8.3931196581196996e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_13=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.5508315527066002e-07,-0.088200000000000001,8.7546616809116998e-07,
- -0.075600000000000001,9.0944533475783005e-07,-0.063,9.1292663817663998e-07,-0.0504,
- 8.9653721509972004e-07,-0.0378,8.9547275641025999e-07,-0.0252,8.7405644586895003e-07,-0.0126,
- 8.7004789886040001e-07,0.0,8.8226549145299002e-07,0.0126,8.7002546296295996e-07,0.0252,
- 8.7400534188033999e-07,0.0378,8.9539672364672004e-07,0.0504,8.9643376068376001e-07,0.063,
- 9.1279825498575999e-07,0.075600000000000001,9.0929576210826002e-07,0.088200000000000001,
- 8.7530288461538001e-07,0.1008,8.5490491452990995e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_14=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.5798237179486999e-07,-0.088200000000000001,8.6880893874644002e-07,
- -0.075600000000000001,9.0299750712251001e-07,-0.063,9.0948646723646997e-07,-0.0504,
- 9.1597542735043003e-07,-0.0378,9.0500302706552995e-07,-0.0252,8.8214084757835001e-07,-0.0126,
- 8.7779825498574995e-07,0.0,8.8993732193732e-07,0.0126,8.7777207977207998e-07,0.0252,
- 8.8208974358973997e-07,0.0378,9.0492325498575998e-07,0.0504,9.1586574074073996e-07,0.063,
- 9.0935434472933995e-07,0.075600000000000001,9.0284294871795e-07,0.088200000000000001,
- 8.6864066951567002e-07,0.1008,8.5779665242165003e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_15=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.5773557692308004e-07,-0.088200000000000001,8.6180893874644003e-07,
- -0.075600000000000001,8.7862838319088002e-07,-0.063,8.9924074074074004e-07,-0.0504,
- 9.0872489316239005e-07,-0.0378,9.0174545940170996e-07,-0.0252,8.9476602564102997e-07,-0.0126,
- 8.9122364672365005e-07,0.0,8.9120993589743996e-07,0.0126,8.9119622507122997e-07,0.0252,
- 8.9471118233617996e-07,0.0378,9.0166132478632003e-07,0.0504,9.0861146723646996e-07,0.063,
- 8.9910363247862999e-07,0.075600000000000001,8.7847257834757996e-07,0.088200000000000001,
- 8.6163693019942995e-07,0.1008,8.5754362535613004e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_16=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.5903935185184999e-07,-0.088200000000000001,8.5690046296295998e-07,
- -0.075600000000000001,8.5831018518518999e-07,-0.063,8.6167307692307999e-07,-0.0504,
- 8.7125320512820998e-07,-0.0378,8.8563586182335997e-07,-0.0252,8.7089298433048003e-07,-0.0126,
- 8.6842877492877004e-07,0.0,8.7942111823362e-07,0.0126,8.6840135327634996e-07,0.0252,
- 8.7083814102563997e-07,0.0378,8.8554985754985996e-07,0.0504,8.7113977920228004e-07,0.063,
- 8.6153846153846001e-07,0.075600000000000001,8.5815313390312996e-07,0.088200000000000001,
- 8.5672471509971999e-07,0.1008,8.5884116809116995e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLY_1_17=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='Y',
- VALE=
- (-0.1008,8.6388675213674999e-07,-0.088200000000000001,8.5563782051281999e-07,
- -0.075600000000000001,8.5087019230768996e-07,-0.063,8.4755965099714995e-07,-0.0504,
- 8.4761698717949003e-07,-0.0378,8.5133636039885996e-07,-0.0252,8.4844088319088001e-07,-0.0126,
- 8.4633689458689002e-07,0.0,8.4644658119657999e-07,0.0126,8.4630947293447004e-07,0.0252,
- 8.4838479344729004e-07,0.0378,8.512516025641e-07,0.0504,8.4750480769231e-07,0.063,
- 8.4742378917379002e-07,0.075600000000000001,8.5071064814815003e-07,0.088200000000000001,
- 8.5545584045584e-07,0.1008,8.6368108974359e-07,),
- PROL_DROIT='CONSTANT',);
-
-FLUXRD1=DEFI_NAPPE(FONCTION=(FLY_1_1,FLY_1_2,FLY_1_3,FLY_1_4,FLY_1_5,FLY_1_6,FLY_1_7,FLY_1_8,FLY_1_9,FLY_1_10,FLY_1_11,FLY_1_12,
- FLY_1_13,FLY_1_14,FLY_1_15,FLY_1_16,FLY_1_17,),
- PARA=
- (-0.1008,-0.088200000000000001,-0.075600000000000001,-0.063,-0.0504,-0.0378,-0.0252,
- -0.0126,0.0,0.0126,0.0252,0.0378,0.0504,0.063,0.075600000000000001,0.088200000000000001,0.1008,),
- PROL_GAUCHE='CONSTANT',
- NOM_PARA='Z',
- PROL_DROIT='CONSTANT',);
-#
-# DEFINITION DES MATERIAUX ET AFFECTATIONS
-#
-# **** DEFINITION DES MATERIAUX SANS FLUX NEUTRONIQUE ****
-#
-#
-# FAMILLE ASSEMBLAGE : NUMERO_FAM
-#
-# EMBOUT SUPERIEUR
-
-
-E_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_ES=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-MT_ES=DEFI_MATERIAU(ELAS_FO=_F(NU=NU_ES,
- ALPHA=AL_ES,
- RHO=7800.0,
- E=E_ES,),);
-# EMBOUT INFERIEUR
-
-
-E_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_EI=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(100.0,2.0,300.0,3.0,),
- PROL_DROIT='CONSTANT',);
-
-MT_EI=DEFI_MATERIAU(ELAS_FO=_F(NU=NU_EI,
- ALPHA=AL_EI,
- RHO=12.0,
- E=E_EI,),);
-
-MT_RIG=DEFI_MATERIAU(ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-# FONCTION COUPLE EN FONCTION DE DRZ POUR LA LIAISON GRILLE/CRAYON
-
-
-FOTRAC=DEFI_FONCTION(PROL_GAUCHE='LINEAIRE',
- NOM_PARA='DRZ',
- VALE=(1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,),
- PROL_DROIT='LINEAIRE',);
-
-MT_RE1=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG1,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE2=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG2,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE3=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG3,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE4=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG4,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE5=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG5,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE6=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG6,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE7=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG7,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE8=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG8,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE9=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG9,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-
-MT_RE10=DEFI_MATERIAU(DIS_CONTACT=_F(EFFO_N_INIT=-35.0,
- RELA_MZ=FOTRAC,
- RIGI_N_FO=FRIG10,
- COULOMB=1.0,),
- ELAS=_F(NU=0.0,
- ALPHA=0.0,
- RHO=0.0,
- E=1.0,),);
-# SYSTEME DE MAINTIEN
-
-
-E_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-SY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-DS_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-NP_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MEY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MPY_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MEZ_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MPZ_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-CAY_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-CBY_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-CAZ_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-CBZ_MA=DEFI_CONSTANTE(VALE=0.29999999999999999,);
-
-MPX_MA=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-MT_MA=DEFI_MATERIAU(VMIS_POUTRE_FO=_F(MEZ=MEZ_MA,
- MPX=MPX_MA,
- MPZ=MPZ_MA,
- CBY=CBY_MA,
- NP=NP_MA,
- CBZ=CBZ_MA,
- MEY=MEY_MA,
- CAY=CAY_MA,
- CAZ=CAZ_MA,
- MPY=MPY_MA,),
- ECRO_LINE_FO=_F(D_SIGM_EPSI=DS_MA,
- SY=SY_MA,),
- ELAS_FO=_F(NU=NU_MA,
- ALPHA=AL_MA,
- RHO=7800.0,
- E=E_MA,),);
-#
-# **** DEFINITION DES MATERIAUX AVEC FLUX NEUTRONIQUE ****
-#
-#
-# GRILLE
-
-
-E_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-E_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_GRE=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_GRM=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-# TUBE GUIDE
-
-
-E_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_TU=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-# CRAYON
-
-
-E_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-NU_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-
-AL_CR=DEFI_FONCTION(PROL_GAUCHE='CONSTANT',
- NOM_PARA='TEMP',
- VALE=(0.0,1.0,5.0,2.0,),
- PROL_DROIT='CONSTANT',);
-# GRANDISSEMENT DES GRILLES
-# GRILLES EXTREMES 1 ET 10
-
-
-MT_GRE1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1,
- FLUX_L=FLUXAX1,
- FLUX_TN=FLUXRD1,
- S=1.0,
- A=0.0,),
- LEMAITRE=_F(N=0.0,
- UN_SUR_M=0.0,
- QSR_K=1.0,
- UN_SUR_K=0.0,),
- ELAS_FO=_F(NU=NU_GRE,
- ALPHA=AL_GRE,
- RHO=7800.0,
- E=E_GRE,),);
-# GRILLES DE MELANGE
-
-
-MT_GRM1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1,
- FLUX_L=FLUXAX1,
- FLUX_TN=FLUXRD1,
- S=1.0,
- A=0.0,),
- LEMAITRE=_F(N=0.0,
- UN_SUR_M=0.0,
- QSR_K=2.0,
- UN_SUR_K=0.0,),
- ELAS_FO=_F(NU=NU_GRM,
- ALPHA=AL_GRM,
- RHO=7800.0,
- E=E_GRM,),);
-# DEFINITION DES MATERIAUX VISCOPLASTIQUES ( TUBES ET CRAYONS )
-
-
-MT_TU1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1,
- FLUX_L=FLUXAX1,
- FLUX_TN=FLUXRD1,
- S=1.0,
- A=0.0,),
- LEMAITRE=_F(N=0.0,
- UN_SUR_M=0.0,
- QSR_K=2.0,
- UN_SUR_K=0.0,),
- ELAS_FO=_F(NU=NU_TU,
- ALPHA=AL_TU,
- RHO=7800.0,
- E=E_TU,),);
-
-MT_CR1=DEFI_MATERIAU(GRAN_IRRA=_F(FONC_MULT=FLUX_F1,
- FLUX_L=FLUXAX1,
- FLUX_TN=FLUXRD1,
- S=1.0,
- A=0.0,),
- LEMAITRE=_F(N=0.0,
- UN_SUR_M=0.0,
- QSR_K=2.0,
- UN_SUR_K=0.0,),
- ELAS_FO=_F(NU=NU_CR,
- ALPHA=AL_CR,
- RHO=7800.0,
- E=E_CR,),);
-#
-# AFFECTATION DES MATERIAUX A CHAUD - CYCLE
-#
-#
-
-
-A_MAT_1=AFFE_MATERIAU(AFFE=(_F(TEMP_REF=100.0,
- MATER=MT_MA,
- GROUP_MA=('MAINTI_Y','MAINTI_Z',),),
- _F(TEMP_REF=100.0,
- MATER=MT_GRM1,
- GROUP_MA='GRIL_I',),
- _F(TEMP_REF=100.0,
- MATER=MT_GRE1,
- GROUP_MA='GRIL_E',),
- _F(TEMP_REF=100.0,
- MATER=MT_CR1,
- GROUP_MA='CRAY',),
- _F(TEMP_REF=100.0,
- MATER=MT_TU1,
- GROUP_MA='GUID',),
- _F(TEMP_REF=100.0,
- MATER=MT_EI,
- GROUP_MA='EBOINF',),
- _F(TEMP_REF=100.0,
- MATER=MT_EI,
- GROUP_MA=('PI_PLE','PI_TRO',),),
- _F(TEMP_REF=100.0,
- MATER=MT_ES,
- GROUP_MA='EBOSUP',),
- _F(TEMP_REF=100.0,
- MATER=MT_RIG,
- GROUP_MA='RIGID',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE1,
- GROUP_MA='ELA1',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE2,
- GROUP_MA='ELA2',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE3,
- GROUP_MA='ELA3',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE4,
- GROUP_MA='ELA4',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE5,
- GROUP_MA='ELA5',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE6,
- GROUP_MA='ELA6',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE7,
- GROUP_MA='ELA7',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE8,
- GROUP_MA='ELA8',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE9,
- GROUP_MA='ELA9',),
- _F(TEMP_REF=100.0,
- MATER=MT_RE10,
- GROUP_MA='ELA10',),),
- MAILLAGE=MA1,);
-#
-
-
-L_INST_1=DEFI_LIST_REEL(INTERVALLE=(_F(JUSQU_A=0.5,
- NOMBRE=1,),
- _F(JUSQU_A=1000.0,
- NOMBRE=1,),
- _F(JUSQU_A=2000.0,
- NOMBRE=1,),
- _F(JUSQU_A=3000.0,
- NOMBRE=5,),
- _F(JUSQU_A=4000.0,
- NOMBRE=1,),
- _F(JUSQU_A=5000.0,
- NOMBRE=1,),
- _F(JUSQU_A=6000.0,
- NOMBRE=1,),
- _F(JUSQU_A=7000.0,
- NOMBRE=1,),
- _F(JUSQU_A=8000.0,
- NOMBRE=1,),),
- DEBUT=0.0,);
-
-L_ARCH_1=DEFI_LIST_REEL(INTERVALLE=(_F(JUSQU_A=0.5,
- NOMBRE=1,),
- _F(JUSQU_A=1000.0,
- NOMBRE=1,),
- _F(JUSQU_A=2000.0,
- NOMBRE=1,),
- _F(JUSQU_A=3000.0,
- NOMBRE=5,),
- _F(JUSQU_A=4000.0,
- NOMBRE=1,),
- _F(JUSQU_A=5000.0,
- NOMBRE=1,),
- _F(JUSQU_A=6000.0,
- NOMBRE=1,),
- _F(JUSQU_A=7000.0,
- NOMBRE=1,),
- _F(JUSQU_A=8000.0,
- NOMBRE=1,),),
- DEBUT=0.0,);
-#
-# CALCUL PHASE I A V DU CYCLE 1
-#
-
-
-RESU=STAT_NON_LINE(CHAM_MATER=A_MAT_1,
- MODELE=MO1,
- ARCHIVAGE=_F(LIST_INST=L_ARCH_1,),
- CONVERGENCE=_F(ITER_GLOB_MAXI=50,
- ITER_INTE_MAXI=500,
- RESI_GLOB_RELA=1.E-4,
- ARRET='OUI',),
- COMP_INCR=(_F(RELATION='VMIS_POU_LINE',
- GROUP_MA='MAINTIEN',),
- _F(RELATION='ASSE_COMBU',
- GROUP_MA=('CRAYONS','TUB_GUID',),),
- _F(RELATION='DIS_CONTACT',
- GROUP_MA='LI_GR_CR',),
- _F(COQUE_NCOU=1,
- RELATION='ELAS',
- GROUP_MA=('EMBO_INF','EMBO_SUP','PIEDS','GRILLES','LI_GR_GU',),),),
- INCREMENT=_F(NUME_INST_FIN=20,
- LIST_INST=L_INST_1,),
- CARA_ELEM=CARA1,
- RECH_LINEAIRE=_F(ITER_LINE_MAXI=3,),
- NEWTON=_F(REAC_ITER=1,
- MATRICE='TANGENTE',),
- SOLVEUR=_F(METHODE='MULT_FRONT',
- RENUM='MD',),
- EXCIT=(_F(FONC_MULT=ARCH_F1,
- CHARGE=ARCH_1,),
- _F(FONC_MULT=ARCH_F1,
- CHARGE=FOARCH_1,),
- _F(FONC_MULT=HYDR_F1,
- CHARGE=HYDR_1,),
- _F(FONC_MULT=HYDR_F1,
- CHARGE=FOHYDR_1,),
- _F(FONC_MULT=CLDI_F1,
- CHARGE=CL_DI_1,),
- _F(CHARGE=CL_PER_1,),
- _F(CHARGE=CL_CTC,),
- _F(CHARGE=PESANT_1,),
- _F(CHARGE=THERM_1,),),
- PARM_THETA=0.5,);
-
-FIN();
+++ /dev/null
-# MODIF DATE 11/12/2001 AUTEUR DURAND C.DURAND
-# TITRE GUIDE D'ONDE A SORTIE ANECHOIQUE (ONDES PLANES) E.F. CLASSIQUES
-# 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.
-# ======================================================================
-# MODELISATION 'ACOUSTIQUE' AVEC ELEMENTS HEXA20 ET FACE8
-# GUIDE D'ONDE ACOUSTIQUE EN E.F. CLASSIQUES
-#
-
-DEBUT(CODE=_F( NOM = 'AHLV100A') )
-
-F=500.
-
-MAIL=LIRE_MAILLAGE( )
-
-AIR=DEFI_MATERIAU( FLUIDE=_F( RHO = 1.3, CELE_C = ('RI',343.,0.,)))
-
-CHAMPMAT=AFFE_MATERIAU( MAILLAGE=MAIL,
- AFFE=_F( TOUT = 'OUI', MATER = AIR) )
-
-GUIDE=AFFE_MODELE( MAILLAGE=MAIL, VERIF='MAILLE',
- AFFE=_F( TOUT = 'OUI', MODELISATION = '3D',
- PHENOMENE = 'ACOUSTIQUE') )
-
-CHARACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- VITE_FACE=_F( GROUP_MA = 'ENTREE', VNOR = ('RI',0.014,0.,)))
-
-IMPEACOU=AFFE_CHAR_ACOU( MODELE=GUIDE,
- IMPE_FACE=_F( GROUP_MA = 'SORTIE', IMPE = ('RI',445.9,0.,)))
-
-MACRO_MATR_ASSE(
- MODELE=GUIDE, CHARGE=IMPEACOU,
- CHAM_MATER=CHAMPMAT,
- NUME_DDL=CO("NUM"),MATR_ASSE=(
- _F( MATRICE = CO("MATASK"), OPTION = 'RIGI_ACOU'),
- _F( MATRICE = CO("MATASM"), OPTION = 'MASS_ACOU'),
- _F( MATRICE = CO("MATASI"), OPTION = 'AMOR_ACOU'))
- )
-
-#
-
-VECTELEM=CALC_VECT_ELEM( OPTION='CHAR_ACOU', CHAM_MATER=CHAMPMAT,
- CHARGE=CHARACOU )
-
-#
-# IMPRESSION DU VECT_ELEM COMPLEXE VECTELEM SELON LE GRAIN MAILLE
-#
-
-IMPR_MATRICE( MATR_ELEM=_F( MATRICE = VECTELEM,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'MAILLE'))
-
-VECTASS=ASSE_VECTEUR( VECT_ELEM=VECTELEM, NUME_DDL=NUM )
-
-#
-# ____________________CALCUL DES MODES_________________________________
-#
-
-MATASKR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASK, PARTIE = 'REEL', COEF_R = 1.))
-
-MATASMR=COMB_MATR_ASSE( COMB_R=_F( MATR_ASSE = MATASM, PARTIE = 'REEL', COEF_R = 1.))
-
-#
-
-MODES=MODE_ITER_SIMULT( MATR_A=MATASKR,
- MATR_B=MATASMR,
- CALC_FREQ=_F( OPTION = 'BANDE',
- FREQ = ( 1., 1000.,))
- )
-
-TEST_RESU(RESU=(_F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 1, VALE = 171.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-4,
- NUME_ORDRE = 2, VALE = 343.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 3, VALE = 514.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-2,
- NUME_ORDRE = 4, VALE = 686.),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 1.E-3,
- NUME_ORDRE = 5, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 6, VALE = 857.5),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 7, VALE = 874.482),
- _F( RESULTAT = MODES, PARA = 'FREQ',
- CRITERE = 'RELATIF', PRECISION = 5.E-3,
- NUME_ORDRE = 8, VALE = 923.556))
- )
-
-# ----------------------CALCUL DECOMPOSE-------------------------------
-#
-
-MATRES=COMB_MATR_ASSE( COMB_C=( _F( MATR_ASSE = MATASK,
- COEF_R = 1.),
- _F( MATR_ASSE = MATASM,
- COEF_R = -9869604.4),
- _F( MATR_ASSE = MATASI,
- COEF_C = ('RI',0.,3141.5926,)))
- )
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN NOEUD
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'NOEUD',
- OPTION = 'LIGNE'))
-
-#
-# IMPRESSION DE LA MATRICE COMPLEXE MATRES SELON LE GRAIN VALEUR
-#
-
-IMPR_MATRICE( MATR_ASSE=_F( MATRICE = MATRES,
- FORMAT = 'RESULTAT',
- FICHIER = 'RESULTAT',
- GRAIN = 'VALEUR',
- OPTION = 'LIGNE'))
-
-VECRES=COMB_CHAM_NO( COMB_C=_F( CHAM_NO = VECTASS,
- COEF_C = ('RI',0.,-3141.5926,))
- )
-
-MATRES=FACT_LDLT( reuse=MATRES, MATR_ASSE=MATRES )
-
-VECRES=RESO_LDLT( reuse=VECRES, MATR_FACT=MATRES,
- CHAM_NO=VECRES
- )
-
-TEST_RESU(CHAM_NO=(
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( CHAM_GD = VECRES,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-CHNODBEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( CHAM_GD = CHNODBEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-#
-
-PREEL=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( CHAM_GD = PREEL,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PIMAG=CALC_CHAM_ELEM( MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- PRES=VECRES,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(CHAM_ELEM=(
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3),
- _F( CHAM_GD = PIMAG,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-#-----------------------CALCUL HARMONIQUE-------------------------------
-
-
-PRESHARM=DYNA_LINE_HARM( MATR_MASS=MATASM, MATR_RIGI=MATASK,
- MATR_AMOR=MATASI,
- FREQ=F,
- EXCIT=_F( VECT_ASSE = VECTASS, COEF_MULT = -1.,
- PUIS_PULS = 1, PHAS_DEG = 90.))
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE_C = ('RI',-6.2426,0.,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES', NUME_ORDRE = 1,
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE_C = ('RI',6.02368,1.6387,)))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_ACTI'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_ACTI', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.04370, PRECISION = 3.E-2))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='INTE_ELNO_REAC'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'INTE_ELNO_REAC', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'INTX', VALE = 0.0, PRECISION = 3.5E-4,
- CRITERE = 'ABSOLU'))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_DBEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'DB', VALE = 109.9),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_DBEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'DB', VALE = 109.9))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_REEL'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = -6.2426),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 6.02368),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_REEL', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 6.02368))
- )
-
-PRESHARM=CALC_ELEM( reuse=PRESHARM, MODELE=GUIDE, CHAM_MATER=CHAMPMAT,
- TOUT_ORDRE='OUI',
- RESULTAT=PRESHARM,
- OPTION='PRES_ELNO_IMAG'
- )
-
-TEST_RESU(RESU=(
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO1', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA1',
- NOEUD = 'NO780', NOM_CMP = 'PRES', VALE = 0.,
- CRITERE = 'ABSOLU'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO751', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3,
- CRITERE = 'RELATIF'),
- _F( RESULTAT = PRESHARM, NOM_CHAM = 'PRES_ELNO_IMAG', NUME_ORDRE = 01,
- MAILLE = 'MA57',
- NOEUD = 'NO763', NOM_CMP = 'PRES', VALE = 1.6387, PRECISION = 3.3E-3))
- )
-
-FIN()
-#
-#
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Cata import cata
-
-f=open('ahlv100a.comm','r')
-text=f.read()
-f.close()
-
-j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a")
-j.analyse()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-# On récupère les plugins de la famille generator
-import generator
-
-g=generator.plugins['python']()
-print g.gener(j,format='beautifie')
-g.writefile('titi.comm')
-
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Cata import cata
-
-f=open('titi.comm','r')
-text=f.read()
-f.close()
-
-j=cata.JdC(procedure=text,cata=cata,nom="ahlv100a")
-j.analyse()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-# On récupère les plugins de la famille generator
-import generator
-
-g=generator.plugins['python']()
-print g.gener(j,format='beautifie')
-g.writefile('toto.comm')
-
+++ /dev/null
-
-
-DEBUT(CODE=_F(NOM='AHLV100A',),);
-
-MAIL=LIRE_MAILLAGE();
-
-AIR=DEFI_MATERIAU(FLUIDE=_F(RHO=1.3,
- CELE_C=('RI',343.0,0.0),),);
-
-CHAMPMAT=AFFE_MATERIAU(AFFE=_F(MATER=AIR,
- TOUT='OUI',),
- MAILLAGE=MAIL,);
-
-GUIDE=AFFE_MODELE(MAILLAGE=MAIL,
- VERIF='MAILLE',
- AFFE=_F(TOUT='OUI',
- PHENOMENE='ACOUSTIQUE',
- MODELISATION='3D',),);
-
-CHARACOU=AFFE_CHAR_ACOU(MODELE=GUIDE,
- VITE_FACE=_F(VNOR=('RI',0.014,0.0),
- GROUP_MA='ENTREE',),);
-
-IMPEACOU=AFFE_CHAR_ACOU(MODELE=GUIDE,
- IMPE_FACE=_F(IMPE=('RI',445.89999999999998,0.0),
- GROUP_MA='SORTIE',),);
-
-MACRO_MATR_ASSE(CHAM_MATER=CHAMPMAT,
- MATR_ASSE=(_F(MATRICE=CO('MATASK'),
- OPTION='RIGI_ACOU',),
- _F(MATRICE=CO('MATASM'),
- OPTION='MASS_ACOU',),
- _F(MATRICE=CO('MATASI'),
- OPTION='AMOR_ACOU',),),
- NUME_DDL=CO('NUM'),
- MODELE=GUIDE,
- CHARGE=IMPEACOU,);
-
-VECTELEM=CALC_VECT_ELEM(OPTION='CHAR_ACOU',
- CHAM_MATER=CHAMPMAT,
- CHARGE=CHARACOU,);
-
-IMPR_MATRICE(MATR_ELEM=_F(GRAIN='MAILLE',
- MATRICE=VECTELEM,
- FORMAT='RESULTAT',
- FICHIER='RESULTAT',),);
-
-VECTASS=ASSE_VECTEUR(VECT_ELEM=VECTELEM,
- NUME_DDL=NUM,);
-
-MATASKR=COMB_MATR_ASSE(COMB_R=_F(PARTIE='REEL',
- MATR_ASSE=MATASK,
- COEF_R=1.0,),);
-
-MATASMR=COMB_MATR_ASSE(COMB_R=_F(PARTIE='REEL',
- MATR_ASSE=MATASM,
- COEF_R=1.0,),);
-
-MODES=MODE_ITER_SIMULT(MATR_A=MATASKR,
- MATR_B=MATASMR,
- CALC_FREQ=_F(OPTION='BANDE',
- FREQ=(1.0,1000.0),),);
-
-TEST_RESU(RESU=(_F(RESULTAT=MODES,
- PRECISION=1.E-4,
- CRITERE='RELATIF',
- VALE=171.5,
- NUME_ORDRE=1,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=1.E-4,
- CRITERE='RELATIF',
- VALE=343.0,
- NUME_ORDRE=2,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=1.E-3,
- CRITERE='RELATIF',
- VALE=514.5,
- NUME_ORDRE=3,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=1.E-2,
- CRITERE='RELATIF',
- VALE=686.0,
- NUME_ORDRE=4,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=1.E-3,
- CRITERE='RELATIF',
- VALE=857.5,
- NUME_ORDRE=5,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=5.0000000000000001E-3,
- CRITERE='RELATIF',
- VALE=857.5,
- NUME_ORDRE=6,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=5.0000000000000001E-3,
- CRITERE='RELATIF',
- VALE=874.48199999999997,
- NUME_ORDRE=7,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=5.0000000000000001E-3,
- CRITERE='RELATIF',
- VALE=923.55600000000004,
- NUME_ORDRE=8,
- PARA='FREQ',),),);
-
-MATRES=COMB_MATR_ASSE(COMB_C=(_F(MATR_ASSE=MATASK,
- COEF_R=1.0,),
- _F(MATR_ASSE=MATASM,
- COEF_R=-9.8696044000000004E6,),
- _F(COEF_C=('RI',0.0,3141.5925999999999),
- MATR_ASSE=MATASI,),),);
-
-IMPR_MATRICE(MATR_ASSE=_F(GRAIN='NOEUD',
- MATRICE=MATRES,
- FORMAT='RESULTAT',
- OPTION='LIGNE',
- FICHIER='RESULTAT',),);
-
-IMPR_MATRICE(MATR_ASSE=_F(GRAIN='VALEUR',
- MATRICE=MATRES,
- FORMAT='RESULTAT',
- OPTION='LIGNE',
- FICHIER='RESULTAT',),);
-
-VECRES=COMB_CHAM_NO(COMB_C=_F(COEF_C=('RI',0.0,-3141.5925999999999),
- CHAM_NO=VECTASS,),);
-
-MATRES=FACT_LDLT(reuse =MATRES,
- MATR_ASSE=MATRES,);
-
-VECRES=RESO_LDLT(reuse =VECRES,
- MATR_FACT=MATRES,
- CHAM_NO=VECRES,);
-
-TEST_RESU(CHAM_NO=(_F(CHAM_GD=VECRES,
- NOM_CMP='PRES',
- VALE_C=('RI',-6.2426000000000004,0.0),
- NOEUD='NO1',),
- _F(CHAM_GD=VECRES,
- NOM_CMP='PRES',
- VALE_C=('RI',-6.2426000000000004,0.0),
- NOEUD='NO780',),
- _F(CHAM_GD=VECRES,
- NOM_CMP='PRES',
- VALE_C=('RI',6.0236799999999997,1.6387),
- NOEUD='NO751',),
- _F(CHAM_GD=VECRES,
- NOM_CMP='PRES',
- VALE_C=('RI',6.0236799999999997,1.6387),
- NOEUD='NO763',),),);
-
-CHNODBEL=CALC_CHAM_ELEM(MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- OPTION='PRES_ELNO_DBEL',
- PRES=VECRES,);
-
-TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=CHNODBEL,
- MAILLE='MA1',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NOEUD='NO1',),
- _F(CHAM_GD=CHNODBEL,
- MAILLE='MA1',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NOEUD='NO780',),
- _F(CHAM_GD=CHNODBEL,
- MAILLE='MA57',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NOEUD='NO751',),
- _F(CHAM_GD=CHNODBEL,
- MAILLE='MA57',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NOEUD='NO763',),),);
-
-PREEL=CALC_CHAM_ELEM(MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- OPTION='PRES_ELNO_REEL',
- PRES=VECRES,);
-
-TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=PREEL,
- MAILLE='MA1',
- VALE=-6.2426000000000004,
- NOM_CMP='PRES',
- NOEUD='NO1',),
- _F(CHAM_GD=PREEL,
- MAILLE='MA1',
- VALE=-6.2426000000000004,
- NOM_CMP='PRES',
- NOEUD='NO780',),
- _F(CHAM_GD=PREEL,
- MAILLE='MA57',
- VALE=6.0236799999999997,
- NOM_CMP='PRES',
- NOEUD='NO751',),
- _F(CHAM_GD=PREEL,
- MAILLE='MA57',
- VALE=6.0236799999999997,
- NOM_CMP='PRES',
- NOEUD='NO763',),),);
-
-PIMAG=CALC_CHAM_ELEM(MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- OPTION='PRES_ELNO_IMAG',
- PRES=VECRES,);
-
-TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=PIMAG,
- MAILLE='MA1',
- VALE=0.0,
- NOM_CMP='PRES',
- CRITERE='ABSOLU',
- NOEUD='NO1',),
- _F(CHAM_GD=PIMAG,
- MAILLE='MA1',
- VALE=0.0,
- NOM_CMP='PRES',
- CRITERE='ABSOLU',
- NOEUD='NO780',),
- _F(CHAM_GD=PIMAG,
- MAILLE='MA57',
- VALE=1.6387,
- PRECISION=3.3E-3,
- NOM_CMP='PRES',
- NOEUD='NO751',),
- _F(CHAM_GD=PIMAG,
- MAILLE='MA57',
- VALE=1.6387,
- PRECISION=3.3E-3,
- NOM_CMP='PRES',
- NOEUD='NO763',),),);
-
-PRESHARM=DYNA_LINE_HARM(MATR_MASS=MATASM,
- MATR_AMOR=MATASI,
- FREQ=500.0,
- MATR_RIGI=MATASK,
- EXCIT=_F(PUIS_PULS=1,
- VECT_ASSE=VECTASS,
- PHAS_DEG=90.0,
- COEF_MULT=-1.0,),);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='PRES',
- RESULTAT=PRESHARM,
- NOEUD='NO1',
- VALE_C=('RI',-6.2426000000000004,0.0),
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES',
- RESULTAT=PRESHARM,
- NOEUD='NO780',
- VALE_C=('RI',-6.2426000000000004,0.0),
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES',
- RESULTAT=PRESHARM,
- NOEUD='NO751',
- VALE_C=('RI',6.0236799999999997,1.6387),
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES',
- RESULTAT=PRESHARM,
- NOEUD='NO763',
- VALE_C=('RI',6.0236799999999997,1.6387),
- NOM_CMP='PRES',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='INTE_ELNO_ACTI',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='INTE_ELNO_ACTI',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- PRECISION=0.029999999999999999,
- VALE=0.043700000000000003,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_ACTI',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- PRECISION=0.029999999999999999,
- VALE=0.043700000000000003,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_ACTI',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- PRECISION=0.029999999999999999,
- VALE=0.043700000000000003,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_ACTI',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- PRECISION=0.029999999999999999,
- VALE=0.043700000000000003,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='INTE_ELNO_REAC',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='INTE_ELNO_REAC',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- PRECISION=3.5E-4,
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_REAC',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- PRECISION=3.5E-4,
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_REAC',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- PRECISION=3.5E-4,
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_REAC',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- PRECISION=3.5E-4,
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='PRES_ELNO_DBEL',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_DBEL',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_DBEL',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_DBEL',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_DBEL',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='PRES_ELNO_REEL',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_REEL',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- VALE=-6.2426000000000004,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_REEL',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- VALE=-6.2426000000000004,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_REEL',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- VALE=6.0236799999999997,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_REEL',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- VALE=6.0236799999999997,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='PRES_ELNO_IMAG',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_IMAG',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_IMAG',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_IMAG',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- PRECISION=3.3E-3,
- CRITERE='RELATIF',
- VALE=1.6387,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_IMAG',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- PRECISION=3.3E-3,
- VALE=1.6387,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),),);
-
-FIN();
+++ /dev/null
-
-
-DEBUT(CODE=_F(NOM='AHLV100A',),);
-
-MAIL=LIRE_MAILLAGE();
-
-AIR=DEFI_MATERIAU(FLUIDE=_F(RHO=1.3,
- CELE_C=('RI',343.0,0.0),),);
-
-CHAMPMAT=AFFE_MATERIAU(AFFE=_F(MATER=AIR,
- TOUT='OUI',),
- MAILLAGE=MAIL,);
-
-GUIDE=AFFE_MODELE(MAILLAGE=MAIL,
- VERIF='MAILLE',
- AFFE=_F(TOUT='OUI',
- PHENOMENE='ACOUSTIQUE',
- MODELISATION='3D',),);
-
-CHARACOU=AFFE_CHAR_ACOU(MODELE=GUIDE,
- VITE_FACE=_F(VNOR=('RI',0.014,0.0),
- GROUP_MA='ENTREE',),);
-
-IMPEACOU=AFFE_CHAR_ACOU(MODELE=GUIDE,
- IMPE_FACE=_F(IMPE=('RI',445.89999999999998,0.0),
- GROUP_MA='SORTIE',),);
-
-MACRO_MATR_ASSE(CHAM_MATER=CHAMPMAT,
- MATR_ASSE=(_F(MATRICE=CO('MATASK'),
- OPTION='RIGI_ACOU',),
- _F(MATRICE=CO('MATASM'),
- OPTION='MASS_ACOU',),
- _F(MATRICE=CO('MATASI'),
- OPTION='AMOR_ACOU',),),
- NUME_DDL=CO('NUM'),
- MODELE=GUIDE,
- CHARGE=IMPEACOU,);
-
-VECTELEM=CALC_VECT_ELEM(OPTION='CHAR_ACOU',
- CHAM_MATER=CHAMPMAT,
- CHARGE=CHARACOU,);
-
-IMPR_MATRICE(MATR_ELEM=_F(GRAIN='MAILLE',
- MATRICE=VECTELEM,
- FORMAT='RESULTAT',
- FICHIER='RESULTAT',),);
-
-VECTASS=ASSE_VECTEUR(VECT_ELEM=VECTELEM,
- NUME_DDL=NUM,);
-
-MATASKR=COMB_MATR_ASSE(COMB_R=_F(PARTIE='REEL',
- MATR_ASSE=MATASK,
- COEF_R=1.0,),);
-
-MATASMR=COMB_MATR_ASSE(COMB_R=_F(PARTIE='REEL',
- MATR_ASSE=MATASM,
- COEF_R=1.0,),);
-
-MODES=MODE_ITER_SIMULT(MATR_A=MATASKR,
- MATR_B=MATASMR,
- CALC_FREQ=_F(OPTION='BANDE',
- FREQ=(1.0,1000.0),),);
-
-TEST_RESU(RESU=(_F(RESULTAT=MODES,
- PRECISION=1.E-4,
- CRITERE='RELATIF',
- VALE=171.5,
- NUME_ORDRE=1,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=1.E-4,
- CRITERE='RELATIF',
- VALE=343.0,
- NUME_ORDRE=2,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=1.E-3,
- CRITERE='RELATIF',
- VALE=514.5,
- NUME_ORDRE=3,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=1.E-2,
- CRITERE='RELATIF',
- VALE=686.0,
- NUME_ORDRE=4,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=1.E-3,
- CRITERE='RELATIF',
- VALE=857.5,
- NUME_ORDRE=5,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=5.0000000000000001E-3,
- CRITERE='RELATIF',
- VALE=857.5,
- NUME_ORDRE=6,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=5.0000000000000001E-3,
- CRITERE='RELATIF',
- VALE=874.48199999999997,
- NUME_ORDRE=7,
- PARA='FREQ',),
- _F(RESULTAT=MODES,
- PRECISION=5.0000000000000001E-3,
- CRITERE='RELATIF',
- VALE=923.55600000000004,
- NUME_ORDRE=8,
- PARA='FREQ',),),);
-
-MATRES=COMB_MATR_ASSE(COMB_C=(_F(MATR_ASSE=MATASK,
- COEF_R=1.0,),
- _F(MATR_ASSE=MATASM,
- COEF_R=-9.8696044000000004E6,),
- _F(COEF_C=('RI',0.0,3141.5925999999999),
- MATR_ASSE=MATASI,),),);
-
-IMPR_MATRICE(MATR_ASSE=_F(GRAIN='NOEUD',
- MATRICE=MATRES,
- FORMAT='RESULTAT',
- OPTION='LIGNE',
- FICHIER='RESULTAT',),);
-
-IMPR_MATRICE(MATR_ASSE=_F(GRAIN='VALEUR',
- MATRICE=MATRES,
- FORMAT='RESULTAT',
- OPTION='LIGNE',
- FICHIER='RESULTAT',),);
-
-VECRES=COMB_CHAM_NO(COMB_C=_F(COEF_C=('RI',0.0,-3141.5925999999999),
- CHAM_NO=VECTASS,),);
-
-MATRES=FACT_LDLT(reuse =MATRES,
- MATR_ASSE=MATRES,);
-
-VECRES=RESO_LDLT(reuse =VECRES,
- MATR_FACT=MATRES,
- CHAM_NO=VECRES,);
-
-TEST_RESU(CHAM_NO=(_F(CHAM_GD=VECRES,
- NOM_CMP='PRES',
- VALE_C=('RI',-6.2426000000000004,0.0),
- NOEUD='NO1',),
- _F(CHAM_GD=VECRES,
- NOM_CMP='PRES',
- VALE_C=('RI',-6.2426000000000004,0.0),
- NOEUD='NO780',),
- _F(CHAM_GD=VECRES,
- NOM_CMP='PRES',
- VALE_C=('RI',6.0236799999999997,1.6387),
- NOEUD='NO751',),
- _F(CHAM_GD=VECRES,
- NOM_CMP='PRES',
- VALE_C=('RI',6.0236799999999997,1.6387),
- NOEUD='NO763',),),);
-
-CHNODBEL=CALC_CHAM_ELEM(MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- OPTION='PRES_ELNO_DBEL',
- PRES=VECRES,);
-
-TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=CHNODBEL,
- MAILLE='MA1',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NOEUD='NO1',),
- _F(CHAM_GD=CHNODBEL,
- MAILLE='MA1',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NOEUD='NO780',),
- _F(CHAM_GD=CHNODBEL,
- MAILLE='MA57',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NOEUD='NO751',),
- _F(CHAM_GD=CHNODBEL,
- MAILLE='MA57',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NOEUD='NO763',),),);
-
-PREEL=CALC_CHAM_ELEM(MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- OPTION='PRES_ELNO_REEL',
- PRES=VECRES,);
-
-TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=PREEL,
- MAILLE='MA1',
- VALE=-6.2426000000000004,
- NOM_CMP='PRES',
- NOEUD='NO1',),
- _F(CHAM_GD=PREEL,
- MAILLE='MA1',
- VALE=-6.2426000000000004,
- NOM_CMP='PRES',
- NOEUD='NO780',),
- _F(CHAM_GD=PREEL,
- MAILLE='MA57',
- VALE=6.0236799999999997,
- NOM_CMP='PRES',
- NOEUD='NO751',),
- _F(CHAM_GD=PREEL,
- MAILLE='MA57',
- VALE=6.0236799999999997,
- NOM_CMP='PRES',
- NOEUD='NO763',),),);
-
-PIMAG=CALC_CHAM_ELEM(MODELE=GUIDE,
- CHAM_MATER=CHAMPMAT,
- OPTION='PRES_ELNO_IMAG',
- PRES=VECRES,);
-
-TEST_RESU(CHAM_ELEM=(_F(CHAM_GD=PIMAG,
- MAILLE='MA1',
- VALE=0.0,
- NOM_CMP='PRES',
- CRITERE='ABSOLU',
- NOEUD='NO1',),
- _F(CHAM_GD=PIMAG,
- MAILLE='MA1',
- VALE=0.0,
- NOM_CMP='PRES',
- CRITERE='ABSOLU',
- NOEUD='NO780',),
- _F(CHAM_GD=PIMAG,
- MAILLE='MA57',
- VALE=1.6387,
- PRECISION=3.3E-3,
- NOM_CMP='PRES',
- NOEUD='NO751',),
- _F(CHAM_GD=PIMAG,
- MAILLE='MA57',
- VALE=1.6387,
- PRECISION=3.3E-3,
- NOM_CMP='PRES',
- NOEUD='NO763',),),);
-
-PRESHARM=DYNA_LINE_HARM(MATR_MASS=MATASM,
- MATR_AMOR=MATASI,
- FREQ=500.0,
- MATR_RIGI=MATASK,
- EXCIT=_F(PUIS_PULS=1,
- VECT_ASSE=VECTASS,
- PHAS_DEG=90.0,
- COEF_MULT=-1.0,),);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='PRES',
- RESULTAT=PRESHARM,
- NOEUD='NO1',
- VALE_C=('RI',-6.2426000000000004,0.0),
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES',
- RESULTAT=PRESHARM,
- NOEUD='NO780',
- VALE_C=('RI',-6.2426000000000004,0.0),
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES',
- RESULTAT=PRESHARM,
- NOEUD='NO751',
- VALE_C=('RI',6.0236799999999997,1.6387),
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES',
- RESULTAT=PRESHARM,
- NOEUD='NO763',
- VALE_C=('RI',6.0236799999999997,1.6387),
- NOM_CMP='PRES',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='INTE_ELNO_ACTI',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='INTE_ELNO_ACTI',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- PRECISION=0.029999999999999999,
- VALE=0.043700000000000003,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_ACTI',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- PRECISION=0.029999999999999999,
- VALE=0.043700000000000003,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_ACTI',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- PRECISION=0.029999999999999999,
- VALE=0.043700000000000003,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_ACTI',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- PRECISION=0.029999999999999999,
- VALE=0.043700000000000003,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='INTE_ELNO_REAC',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='INTE_ELNO_REAC',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- PRECISION=3.5E-4,
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_REAC',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- PRECISION=3.5E-4,
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_REAC',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- PRECISION=3.5E-4,
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='INTE_ELNO_REAC',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- PRECISION=3.5E-4,
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='INTX',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='PRES_ELNO_DBEL',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_DBEL',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_DBEL',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_DBEL',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_DBEL',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- VALE=109.90000000000001,
- NOM_CMP='DB',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='PRES_ELNO_REEL',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_REEL',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- VALE=-6.2426000000000004,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_REEL',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- VALE=-6.2426000000000004,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_REEL',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- VALE=6.0236799999999997,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_REEL',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- VALE=6.0236799999999997,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),),);
-
-PRESHARM=CALC_ELEM(reuse =PRESHARM,
- RESULTAT=PRESHARM,
- CHAM_MATER=CHAMPMAT,
- MODELE=GUIDE,
- OPTION='PRES_ELNO_IMAG',
- TOUT_ORDRE='OUI',);
-
-TEST_RESU(RESU=(_F(NOM_CHAM='PRES_ELNO_IMAG',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO1',
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_IMAG',
- RESULTAT=PRESHARM,
- MAILLE='MA1',
- NOEUD='NO780',
- CRITERE='ABSOLU',
- VALE=0.0,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_IMAG',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO751',
- PRECISION=3.3E-3,
- CRITERE='RELATIF',
- VALE=1.6387,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),
- _F(NOM_CHAM='PRES_ELNO_IMAG',
- RESULTAT=PRESHARM,
- MAILLE='MA57',
- NOEUD='NO763',
- PRECISION=3.3E-3,
- VALE=1.6387,
- NOM_CMP='PRES',
- NUME_ORDRE=1,),),);
-
-FIN();
+++ /dev/null
-"""
- Cet exemple montre l'utilisation d'un catalogue avec NIVEAU
-"""
+++ /dev/null
-
-sansnom=DEFI_SONDE(Z=45,
- X=None,
- Y=None,);
-SD_1=DEFI_SONDE(Z=None,
- X=None,
- Y=None,);
-sd1=DEFI_SONDE(Z=1.1,
- X=1.2,
- Y=1.3,);
-sd2=DEFI_SONDE(Z=2.2,
- X=2.1,
- Y=2.3,);
-sd3=DEFI_SONDE(Z=3.1,
- X=3.2,
- Y=3.3,);
-temperature=DEFI_SCALA(RESTITUE=_F(NOMVAR='temperature',),
- MODELE=_F(VALREF=300,
- VISLS0=0.1,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
-cb=DEFI_SCALA(RESTITUE=_F(NOMVAR='bore',),
- MODELE=_F(VALREF=1000,
- VISLS0=0.12,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
-CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2,
- FICEVI='enveloppe_vers_solveur ',
- IMPEVI=13,
- IMPEVO=14,FICEVO='solveur_vers_enveloppe ',),
- CONSTANTES_PHYSIQUES=_F(FLUIDE=_F(VISCL0=0.12,
- P0=1000000.0,
- RO0=995.3,),
- GRAVITE=_F(GX=0,GY=0,GZ=0,),),
- HISTORIQUE_PONCTUEL=_F(),
- EQUATIONS=_F(TURBULENCE=_F(ITURB=1,ISCALT=temperature,IGRAKE=0,),),
- DEFINITION_EQUATION=_F(INC_PRESSION=_F(ICONV=0,),
- INC_VITESSEZ=_F(ICONV=1,BLENCV=0,),
- INC_VITESSEY=_F(ICONV=1,BLENCV=0,),
- INC_VITESSEX=_F(ICONV=1,BLENCV=0,),
- INC_K=_F(ICONV=1,BLENCV=0,),
- INC_EPS=_F(ICONV=1,BLENCV=0,),),
- VARIABLES=_F(VITESSE_Z=_F(NOMVAR='Vitesse_w1',IHISVR=(sd2,sd3),),
- VITESSE_X=_F(NOMVAR='Vitesse_u1',),
- VITESSE_Y=_F(NOMVAR='Vitesse_v1',),
- PRESSION=_F(NOMVAR='Pression',),
- MASVOL1=_F(NOMVAR='Masse_vol1',),
- E_TURB=_F(NOMVAR='Energie_1',IHISVR=sd1,),
- V_TURB=_F(NOMVAR='Visc_turb1',),
- D_TURB=_F(NOMVAR='Dissipation',),),
- FICHIERS_CALCUL=_F(),
- GESTION_CALCUL=_F(NTMABS=1000,ISUITE=0,),
- MARCHE_TEMPS=_F(DTREF=0.01,XCFMAX=0.5,),
- );
+++ /dev/null
-
-SD1=DEFI_SONDE(Z=1,
- X=2,
- Y=3,);
-SD2=DEFI_SONDE(Z=1,
- X=2,
- Y=3,);
-SD3=DEFI_SONDE(Z=3,
- X=4,
- Y=5,);
-SD4=DEFI_SONDE(Z=12,
- X=11,
- Y=10,);
-SD5=DEFI_SONDE(Z=21,
- X=21,
- Y=21,);
-temperature=DEFI_SCALA(RESTITUE=_F(NOMVAR='temperature',
- ILISVR=1,
- ICHRVR=1,
- IHISVR=SD1,),
- MODELE=_F(SIGMAS=0.9,
- SCAMAX=1000,
- VALREF=300.0,
- SCAMIN=270,
- VISLS0=0.05,
- IVISLS=1,
- ),
- NUMERIC=_F(IMLIGR=1,
- CLIMGR=1.7,
- EPSRGR=0.0001,
- NITMAX=1000,
- IDIRCL=0,
- IDIFF=1,
- NSWRGR=2,
- NSWRSM=10,
- EPSILO=1e-05,
- ISTAT=1,
- ICONV=1,
- BLENCV=0.5,
- ISCHCV=1,),);
-cb=DEFI_SCALA(RESTITUE=_F(NOMVAR='bore',),
- MODELE=_F(VALREF=1000.0,
- VISLS0=0.3,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
-CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2,
- FICEVI='Enveloppe_vers_solveur ',
- IMPEVI=83,
- IMPEVO=84,
- FICEVO='Solveur_vers_enveloppe ',),
- OPTIONS_TURBULENCE=_F(ISCALT=temperature),
- CONSTANTES_PHYSIQUES=_F(FLUIDE=_F(VISCL0=0.1,
- P0=10000.0,
- RO0=1000.0,),
- GRAVITE=_F(GX=0,
- GY=0,
- GZ=0,),),
- HISTORIQUE_PONCTUEL=_F(FICHIERS_HISTORIQUES=_F(EXTHIS='histo',
- EMPHIS='./',),
- NTHIST=1,
- NTHSAV=20,),
- VARIABLES=_F( MASVOL1=_F(NOMVAR='Masse_vol1',
- IHISVR=SD2,
- ICHRVR=0,
- ILISVR=1,),
- NTLIST=2,
- IWARNI=3,),
- GESTION_CALCUL=_F(NTMABS=1000,
- ISUITE=0,
- NTPABS=100,
- TTPABS=10.5,),
- MARCHE_TEMPS=_F(DTREF=0.001,
- IDTVAR=2,),
- FICHIERS_CALCUL=_F(FICHIER_STOP=_F(FICSTP='ficstop',
- IMPSTP=82,),
- SUITE_AVAL=_F(FICAVA='sui_amo',
- IMPAVA=70,
- IFOAVA=1,),),
- POST_PROC_ENSIGHT=_F(IFOENS=1,
- NTCHR=3,
- ITCHR=10,),);
-
+++ /dev/null
-
-sansnom=DEFI_SONDE(Z=None,
- X=None,
- Y=None,);
-sansnom=DEFI_DTURB(RESTITUE=_F(NOMVAR=None,),
- MODELE=_F(VALREF=None,
- VISLS0=None,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
\ No newline at end of file
+++ /dev/null
-
-
-
-SD0=DEFI_SONDE(X=2,
- Y=3,
- Z=1,);
-#
-
-
-
-##SD6=DEFI_SONDE(X=2,
-## Y=3,
-## Z=1,);
-
+++ /dev/null
-
-
-SD1=DEFI_SONDE(X=2,
- Y=3,
- Z=1,);
-#
-
-#
-
-_param_1 = 1;
-
-_param_2 = 2 ;
-
-_param_4 = EVAL("""23""")
-
-
-
-##SD2=DEFI_SONDE(X=2,
-## Y=3,
-## Z=1,);
-
-SD3=DEFI_SONDE(X=4,
- Y=5,
- Z=3,);
-
-SD4=DEFI_SONDE(X=11,
- Y=10,
- Z=12,);
-
-SD5=DEFI_SONDE(X=21,
- Y=21,
- Z=21,);
-
-temperature=DEFI_SCALA(NUMERIC=_F(ICONV=1,
- ISTAT=1,
- IDIFF=1,
- IDIRCL=0,
- BLENCV=0.5,
- ISCHCV=1,
- NITMAX=1000,
- EPSILO=1.0000000000000001E-05,
- IMLIGR=1,
- NSWRGR=2,
- NSWRSM=10,
- CLIMGR=1.7,
- EPSRGR=1.E-4,),
- RESTITUE=_F(NOMVAR='temperature',
- ICHRVR=1,
- ILISVR=1,
- IHISVR=SD1,),
- MODELE=_F(VALREF=300.0,
- SCAMIN=270,
- SCAMAX=1000,
- SIGMAS=0.90000000000000002,
- VISLS0=0.050000000000000003,
- IVISLS=1,),);
-
-cb=DEFI_SCALA(NUMERIC=_F(ICONV=1,
- BLENCV=0,),
- RESTITUE=_F(NOMVAR='bore',),
- MODELE=_F(VALREF=1000.0,
- VISLS0=0.29999999999999999,),);
-
-CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2,
- IMPEVI=83,
- FICEVI='Enveloppe_vers_solveur ',
- IMPEVO=84,
- FICEVO='Solveur_vers_enveloppe ',),
- FICHIERS_CALCUL=_F(FICHIER_STOP=_F(IMPSTP=82,
- FICSTP='ficstop',),
- SUITE_AVAL=_F(IMPAVA=70,
- FICAVA='sui_amo',
- IFOAVA=1,),),
- POST_PROC_ENSIGHT=_F(IFOENS=1,
- NTCHR=3,
- ITCHR=10,),
- HISTORIQUE_PONCTUEL=_F(FICHIERS_HISTORIQUES=_F(EMPHIS='./',
- EXTHIS='histo',),
- NTHIST=1,
- NTHSAV=20,),
- OPTIONS_TURBULENCE=_F(IGRAKE=0,
- ISCALT=temperature,),
- MARCHE_TEMPS=_F(DTREF=1.E-3,
- IDTVAR=2,
- XCFMAX=0.5,),
- OPTIONS_EQUATIONS=_F(),
- VARIABLES=_F(NTLIST=2,
- IWARNI=3,
- MASVOL1=_F(NOMVAR='Masse_vol1',
- ICHRVR=0,
- ILISVR=1,
- IHISVR=SD2,),),
- GESTION_CALCUL=_F(ISUITE=0,
- NTPABS=100,
- NTMABS=1000,
- TTPABS=10.5,),
- CONSTANTES_PHYSIQUES=_F(GRAVITE=_F(GX=0,
- GY=0,
- GZ=0,),
- FLUIDE=_F(RO0=1000.0,
- VISCL0=0.10000000000000001,
- P0=1.E4,),),
- );
+++ /dev/null
-"""
-"""
-
-import sys
-sys.path[:0]=['../..','../../Minicode']
-
-import cata_saturne
-
-import convert
-c=convert.plugins['python']()
-c.readfile('kk.py')
-text=c.convert('exec')
-print text
-
-j=cata_saturne.JdC(procedure=text,cata=cata_saturne,nom="essai_saturne")
-
-j.analyse()
-if not j.cr.estvide():
- print j.cr
- sys.exit()
-
-cr=j.report()
-if not cr.estvide():
- print cr
- sys.exit()
-
-# On récupère les plugins de la famille generator
-import generator
-
-g=generator.plugins['python']()
-print g.gener(j,format='beautifie')
-g.writefile('titi.comm')
-
+++ /dev/null
-
-
-SD1=DEFI_SONDE(Z=1,
- X=2,
- Y=3,);
-#
-#
-#
-
-_param_1 = 1;
-
-_param_2 = 2;
-
-_param_4 = EVAL("""23""");
-
-
-SD2=DEFI_SONDE(Z=1,
- X=2,
- Y=3,);
-
-SD3=DEFI_SONDE(Z=3,
- X=4,
- Y=5,);
-
-SD4=DEFI_SONDE(Z=12,
- X=11,
- Y=10,);
-
-SD5=DEFI_SONDE(Z=21,
- X=21,
- Y=21,);
-
-temperature=DEFI_SCALA(RESTITUE=_F(NOMVAR='temperature',
- ILISVR=1,
- ICHRVR=1,
- IHISVR=SD1,),
- MODELE=_F(SIGMAS=0.90000000000000002,
- SCAMAX=1000,
- VALREF=300.0,
- SCAMIN=270,
- VISLS0=0.050000000000000003,
- IVISLS=1,),
- NUMERIC=_F(IMLIGR=1,
- CLIMGR=1.7,
- EPSRGR=1.E-4,
- NITMAX=1000,
- IDIRCL=0,
- IDIFF=1,
- NSWRGR=2,
- NSWRSM=10,
- EPSILO=1.0000000000000001E-05,
- ISTAT=1,
- ICONV=1,
- BLENCV=0.5,
- ISCHCV=1,),);
-
-cb=DEFI_SCALA(RESTITUE=_F(NOMVAR='bore',),
- MODELE=_F(VALREF=1000.0,
- VISLS0=0.29999999999999999,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
-
-CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2,
- FICEVI='Enveloppe_vers_solveur ',
- IMPEVI=83,
- IMPEVO=84,
- FICEVO='Solveur_vers_enveloppe ',),
- CONSTANTES_PHYSIQUES=_F(FLUIDE=_F(VISCL0=0.10000000000000001,
- P0=1.E4,
- RO0=1000.0,),
- GRAVITE=_F(GX=0,
- GY=0,
- GZ=0,),),
- HISTORIQUE_PONCTUEL=_F(FICHIERS_HISTORIQUES=_F(EXTHIS='histo',
- EMPHIS='./',),
- NTHSAV=20,
- NTHIST=1,),
- OPTIONS_TURBULENCE=_F(ISCALT=temperature,
- IGRAKE=0,),
- VARIABLES=_F(IWARNI=3,
- NTLIST=2,
- MASVOL1=_F(NOMVAR='Masse_vol1',
- ILISVR=1,
- ICHRVR=0,
- IHISVR=SD2,),),
- MARCHE_TEMPS=_F(IDTVAR=2,
- DTREF=1.E-3,
- XCFMAX=0.5,),
- FICHIERS_CALCUL=_F(SUITE_AVAL=_F(FICAVA='sui_amo',
- IMPAVA=70,
- IFOAVA=1,),
- FICHIER_STOP=_F(FICSTP='ficstop',
- IMPSTP=82,),),
- GESTION_CALCUL=_F(NTMABS=1000,
- TTPABS=10.5,
- ISUITE=0,
- NTPABS=100,),
- OPTIONS_EQUATIONS=_F(),
- POST_PROC_ENSIGHT=_F(IFOENS=1,
- NTCHR=3,
- ITCHR=10,),
- );
\ No newline at end of file
+++ /dev/null
-"""
- Cet exemple montre :
- - la création d'une définition de mot-clé facteur
- - sa vérification (report)
- - la création d'un mot-clé facteur à partir d'un fichier .ini
- - sa vérification (report)
-
-"""
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT
-from parse import MyConfParser
-
-p=MyConfParser()
-p.read('toto.ini')
-
-
-cata= FACT(sect1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
- sect2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- )
-
-cr=cata.report()
-if cr.estvide():
- print "Verification sans erreur"
-else:
- print cr
-
-o=cata(p.getdict(),'mcf1',None)
-print o
-print o.report()
+++ /dev/null
-
-from ConfigParser import ConfigParser
-
-class MyConfParser(ConfigParser):
- def getdicttext(self):
- s='{'
- for section in self.sections():
- s=s+ "'" + section + "' : {"
- options=self.options(section)
- for option in options:
- value=self.get(section,option)
- s=s+"'%s' : %s," % (option, value)
- s=s+"}, "
- s=s+"}"
- return s
-
- def getdict(self):
- return eval(self.getdicttext())
-
-if __name__ == '__main__':
- p=MyConfParser()
- p.read("toto.ini")
- print p.getdicttext()
- print p.getdict()
+++ /dev/null
-[sect1]
-a=1.
-b=2
-[sect2]
-c=3
-d=6
+++ /dev/null
-import sys
-sys.path[:0]=['../..','../../..']
-
-from Accas import SIMP,FACT
-
-cata= FACT(sect1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
- sect2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- )
-
-cr=cata.report()
-if cr.estvide():
- print "Verification sans erreur"
-else:
- print cr
-
-# On récupère les plugins de la famille convert
-import convert
-
-p=convert.plugins['ini']()
-p.readfile('toto.ini')
-s=p.convert('eval')
-if not p.cr.estvide():
- print p.cr
- sys.exit(0)
-
-o=cata(eval(s),'mcf1',None)
-print o
-print o.report()
-
-o=cata(p.convert('dict'),'mcf2',None)
-print o
-print o.report()
-
-p=convert.plugins['pyth']()
-p.readfile('toto.pyth')
-d=p.convert('dict')
-if not p.cr.estvide():
- print p.cr
- sys.exit(0)
-
-o=cata(d,'mcf3',None)
-print o
-print o.report()
+++ /dev/null
-[sect1]
-a=1
-b=25
-[sect2]
-c=3
-d=6
+++ /dev/null
-var1=1
-var2=3
+++ /dev/null
-import sys
-sys.path[:0]=['../..','../../..']
-
-from Accas import SIMP,FACT
-
-cata= FACT(sect1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
- sect2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- )
-
-cr=cata.report()
-if cr.estvide():
- print "Verification sans erreur"
-else:
- print cr
-
-# On récupère les plugins de la famille convert
-import convert
-
-p=convert.plugins['ini']()
-p.readfile('toto.ini')
-s=p.convert('eval')
-if not p.cr.estvide():
- print p.cr
- sys.exit(0)
-
-o=cata(eval(s),'mcf1',None)
-print o
-print o.report()
-
-o=cata(p.convert('dict'),'mcf2',None)
-print o
-print o.report()
-
-# On récupère les plugins de la famille generator
-import generator
-
-g=generator.plugins['ini']()
-g.gener(o)
-g.writefile('titi.ini')
-
-g=generator.plugins['pyth']()
-g.gener(o)
-g.writefile('titi.pyth')
-
-p=convert.plugins['pyth']()
-p.readfile('toto.pyth')
-d=p.convert('dict')
-if not p.cr.estvide():
- print p.cr
- sys.exit(0)
-
-o=cata(d,'mcf3',None)
-print o
-print o.report()
+++ /dev/null
-[sect1]
-b = 25
-a = 1
-
-[sect2]
-c = 3
-d = 6
+++ /dev/null
-sect1 = {'b' : 25,
-'a' : 1,
-}
-sect2 = {'c' : 3,
-'d' : 6,
-}
+++ /dev/null
-[sect1]
-a=1
-b=25
-[sect2]
-c=3
-d=6
+++ /dev/null
-var1=1
-var2=3
+++ /dev/null
-"""
- Cet exemple construit un objet regle (cata)
- de type AU_MOINS_UN
-
- Ensuite on vérifie le fonctionnement de la règle sur un dictionnaire non conforme
- à la règle et un dictionnaire conforme à la règle.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import AU_MOINS_UN
-
-# Construction objet de définition
-
-cata= AU_MOINS_UN('sect3')
-
-
-# Vérification dictionnaire d
-
-d={'sect1':{'a':1},'sect2':{'c':3}}
-
-text,valid= cata.verif(d)
-
-if valid:
- print "Le dictionnaire %s est conforme à la règle" % d
-else:
- print "Le dictionnaire %s n'est pas conforme à la règle" % d
-
-d={'sect3':{'a':1},'sect2':{'c':3}}
-text,valid= cata.verif(d)
-if valid:
- print "Le dictionnaire %s est conforme à la règle" % d
-else:
- print "Le dictionnaire %s n'est pas conforme à la règle" % d
+++ /dev/null
-"""
- Cet exemple construit un objet de définition (cata) de type FACT
- qui est composé de 3 objets de définition de type FACT et
- d'une règle AU_MOINS_UN.
-
- Dans un premier temps on vérifie la conformite de l'objet
- de définition ::
-
- cr=cata.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit deux objets de type
- MCFACT dont la définition est cata et on vérifie la conformité
- de ces objets.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT
-from Accas import AU_MOINS_UN
-
-# Construction objet de définition
-
-cata= FACT(sect1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
- sect2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- sect3=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- regles=AU_MOINS_UN('sect3')
- )
-
-# Vérification objet de définition
-
-cr=cata.report()
-if cr.estvide():
- print "L'objet de définition est valide "
-else:
- print cr
-
-# Création de l'objet MCFACT de nom mcf1
-
-d={'sect1':{'a':1},'sect2':{'c':3}}
-o=cata(d,'mcf1',None)
-
-# Vérification objet MCFACT
-
-cr= o.report()
-if cr.estvide():
- print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d
-else:
- print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
- print cr
-
-d={'sect1':{'a':1},'sect3':{'c':3}}
-o=cata(d,'mcf1',None)
-cr= o.report()
-if cr.estvide():
- print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d
-else:
- print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
- print cr
+++ /dev/null
-"""
- Cet exemple construit un objet de définition (cata) de type BLOC
- contenant deux objets SIMP
-
- Dans un premier temps on vérifie la conformite de l'objet
- de définition ::
-
- cr=cata.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit des objets de type
- MCBLOC dont la définition est cata et on vérifie la conformité
- de ces objets.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT,BLOC
-
-# Construction objet de définition
-
-cata= BLOC(condition="a==1",
- c=SIMP(typ='I'),
- d=SIMP(typ='I'),
- )
-
-# Vérification objet de définition
-cr=cata.report()
-if cr.estvide():
- print "L'objet de définition est valide "
-else:
- print cr
-
-
-for d in ({'a':1},
- {'a':1,'c':3},
- {'a':2,'c':3},
- ):
- # Création de l'objet MCBLOC de nom mcf1
- o=cata(d,'mcf1',None)
- print "Mots-clés restants : ",o.reste_val
- # Vérification objet MCBLOC
- cr= o.report()
- if cr.estvide():
- print "L'objet MCBLOC basé sur le dictionnaire %s est valide " % d
- else:
- print "L'objet MCBLOC basé sur le dictionnaire %s n'est pas valide " % d
- print cr
-
+++ /dev/null
-"""
- Cet exemple construit un objet de définition (cata) de type FACT
- qui est composé d'un objet SIMP et d'un bloc conditionnel
- contenant deux objets SIMP
-
- Dans un premier temps on vérifie la conformite de l'objet
- de définition ::
-
- cr=cata.report()
- if cr.estvide(): ...
-
- Dans un deuxième temps, on construit plusieurs objets de type
- MCFACT dont la définition est cata et on vérifie la conformité
- de ces objets.
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-from Accas import SIMP,FACT,BLOC
-
-# Construction objet de définition
-
-cata= FACT(a =SIMP(typ='I'),
- bloc1=BLOC(condition="a==1",
- c=SIMP(typ='I'),
- d=SIMP(typ='I')
- ),
- )
-
-# Vérification objet de définition
-cr=cata.report()
-if cr.estvide():
- print "L'objet de définition est valide "
-else:
- print cr
-
-
-for d in ({'a':1},
- {'a':1,'c':3},
- {'a':2,'c':3},
- ):
- # Création de l'objet MCFACT de nom mcf1
- o=cata(d,'mcf1',None)
- # Vérification objet MCFACT
- cr= o.report()
- if cr.estvide():
- print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d
- else:
- print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
- print cr
-
+++ /dev/null
-"""
- Cet exemple met en oeuvre le profiling de Python sur un cas
- avec plusieurs éléments de définition,
- une opération de vérification du dictionnaire d
- et l'appel à la méthode supprime de l'objet o
-"""
-
-import sys
-sys.path[:0]=['../..']
-
-def main():
- from Accas import SIMP,FACT,BLOC
- from Accas import AU_MOINS_UN
-
- # Construction objet de définition
-
- cata= FACT(mcf1=FACT(a=SIMP(typ='I'),b=SIMP(typ='I')),
- mcf2=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- a =SIMP(typ='I'),
- bloc1=BLOC(condition="a==1",
- c=SIMP(typ='I'),
- d=SIMP(typ='I')
- ),
- sect3=FACT(c=SIMP(typ='I'),d=SIMP(typ='I')),
- regles=AU_MOINS_UN('sect3'),
- )
-
- # Vérification objet de définition
- cr=cata.report()
- if cr.estvide():
- print "L'objet de définition est valide "
- else:
- print cr
-
-
- d= {'mcf1':{'a':1,'b':2},
- 'mcf2':({'c':3},{'c':5}),
- 'sect3':{'c':3,'d':5},
- 'a':1,
- 'c':2,
- }
-
- # Création de l'objet MCFACT de nom mcf1
- o=cata(d,'mcf1',None)
- # Vérification objet MCFACT
- cr= o.report()
- if cr.estvide():
- print "L'objet MCFACT basé sur le dictionnaire %s est valide " % d
- else:
- print "L'objet MCFACT basé sur le dictionnaire %s n'est pas valide " % d
- print cr
-
- o.supprime()
-
-import profile
-#profile.run("main()")
-prof=profile.Profile()
-try:
- prof.run("main()")
-except SystemExit:
- pass
-
-import pstats
-# Impression de différentes statistiques
-p=pstats.Stats(prof)
-
-print "*********************************************"
-print "* Trié par temps interne (20 plus grands) *"
-print "*********************************************"
-p.sort_stats('time').print_stats(20)
-
-print "***********************************************"
-print "* Liste des appellés triée par temps interne *"
-print "***********************************************"
-p.print_callees()
-
-print "************************************************************"
-print "* Liste des appellants de is_reel triée par temps interne *"
-print "************************************************************"
-p.print_callers('is_reel')
-
-print "*********************************************"
-print "* Trié par temps cumulé (20 plus grands) *"
-print "*********************************************"
-p.sort_stats('cumulative').print_stats(20)
-
-print "*********************************************"
-print "* Trié par noms de fonction *"
-print "*********************************************"
-p.sort_stats('name').print_stats()
-
-print "*********************************************"
-print "* Statistique standard *"
-print "*********************************************"
-prof.print_stats()
-
-print "*************************************************"
-print "* Trié par fichier seulement methodes __init__ *"
-print "*************************************************"
-p.sort_stats('file').print_stats('__init__')
-
-
-
-
-
+++ /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'),
- ]
- ),
- ]
- }
-
+++ /dev/null
-L'objet de définition est valide
-L'objet MCFACT basé sur le dictionnaire {'sect3': {'c': 3, 'd': 5}, 'a': 1, 'mcf1': {'b': 2, 'a': 1}, 'c': 2, 'mcf2': ({'c': 3}, {'c': 5})} est valide
-*********************************************
-* Trié par temps interne (20 plus grands) *
-*********************************************
- 750 function calls (669 primitive calls) in 0.170 CPU seconds
-
- Ordered by: internal time
- List reduced from 288 to 20 due to restriction <20>
-
- ncalls tottime percall cumtime percall filename:lineno(function)
- 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCLIST.py:15(init)
- 6/1 0.010 0.002 0.010 0.010 ../../../Validation/V_MCCOMPO.py:32(report)
- 1 0.010 0.010 0.170 0.170 profile:0(main())
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_MACRO_ETAPE.py:1(?)
- 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?)
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_A_CLASSER.py:1(?)
- 3 0.010 0.003 0.010 0.003 ../../../Noyau/N_MCBLOC.py:18(__init__)
- 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCFACT.py:5(?)
- 16 0.010 0.001 0.010 0.001 ../../../Noyau/N_OBJECT.py:27(supprime)
- 1 0.010 0.010 0.010 0.010 ../../Noyau/N_JDC_CATA.py:4(?)
- 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/types.py:4(?)
- 1 0.010 0.010 0.010 0.010 ../../Build/B_ETAPE.py:2(?)
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_JDC.py:1(?)
- 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_OPER.py:12(OPER)
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_MCSIMP.py:1(?)
- 29/2 0.010 0.000 0.010 0.005 ../../Noyau/N_CR.py:48(estvide)
- 11/7 0.010 0.001 0.010 0.001 ../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:23(error)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_ENTITE.py:3(?)
-
-
-***********************************************
-* Liste des appellés triée par temps interne *
-***********************************************
- Ordered by: internal time
-
-Function called...
-../../../Noyau/N_MCLIST.py:15(init) --
-../../../Validation/V_MCCOMPO.py:32(report) ../../../Validation/V_MCCOMPO.py:32(report)(3) 0.010
- ../../../Validation/V_MCFACT.py:24(isvalid)(5) 0.000
- ../../../Validation/V_MCLIST.py:51(report)(1) 0.000
- ../../Noyau/N_CR.py:10(__init__)(6) 0.000
- ../../Noyau/N_CR.py:44(add)(12) 0.000
- ../../Validation/V_MCBLOC.py:24(isvalid)(1) 0.000
- ../../Validation/V_MCSIMP.py:385(report)(8) 0.000
-profile:0(main()) <string>:1(?)(1) 0.160
-../../Accas/A_MACRO_ETAPE.py:1(?) ../../../Validation/V_MACRO_ETAPE.py:8(?)(1) 0.000
- ../../Accas/A_MACRO_ETAPE.py:6(MACRO_ETAPE)(1) 0.000
- ../../Build/B_MACRO_ETAPE.py:2(?)(1) 0.000
- ../../Execution/E_MACRO_ETAPE.py:1(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?) /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:14(?)(1) 0.000
-../../Accas/A_A_CLASSER.py:1(?) ../../Accas/A_A_CLASSER.py:4(A_CLASSER)(1) 0.000
- ../../Validation/V_A_CLASSER.py:2(?)(1) 0.000
-../../../Noyau/N_MCBLOC.py:18(__init__) ../../../Noyau/N_MCCOMPO.py:16(build_mc)(3) 0.030
-../../../Noyau/N_MCFACT.py:5(?) ../../../Noyau/N_MCCOMPO.py:4(?)(1) 0.000
- ../../../Noyau/N_MCFACT.py:9(MCFACT)(1) 0.000
-../../../Noyau/N_OBJECT.py:27(supprime) --
-../../Noyau/N_JDC_CATA.py:4(?) ../../../Noyau/N_JDC.py:3(?)(1) 0.000
- ../../Noyau/N_JDC_CATA.py:11(JDC_CATA)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/traceback.py:1(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/types.py:4(?) /home01/chris/pkg/python2.1/lib/python2.1/types.py:35(_C)(1) 0.000
-../../Build/B_ETAPE.py:2(?) ../../../Noyau/N_BLOC.py:4(?)(1) 0.000
- ../../../Noyau/N_MCBLOC.py:5(?)(1) 0.000
- ../../Build/B_ETAPE.py:18(ETAPE)(1) 0.000
- ../../Noyau/N_EVAL.py:2(?)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/repr.py:1(?)(1) 0.000
-../../Accas/A_JDC.py:1(?) ../../Accas/A_JDC.py:6(JDC)(1) 0.000
- ../../Build/B_JDC.py:2(?)(1) 0.000
- ../../Build/__init__.py:0(?)(1) 0.000
- ../../Execution/E_JDC.py:2(?)(1) 0.000
- ../../Execution/__init__.py:0(?)(1) 0.000
- ../../Validation/V_JDC.py:8(?)(1) 0.000
- ../../Validation/__init__.py:6(?)(1) 0.000
-../../../Noyau/N_OPER.py:12(OPER) --
-../../Accas/A_MCSIMP.py:1(?) ../../Accas/A_MCSIMP.py:4(MCSIMP)(1) 0.000
- ../../Validation/V_MCSIMP.py:8(?)(1) 0.000
-../../Noyau/N_CR.py:48(estvide) ../../Noyau/N_CR.py:48(estvide)(27) 0.010
-../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs) ../../../Noyau/N_BLOC.py:63(__call__)(2) 0.010
- ../../../Noyau/N_BLOC.py:90(verif_presence)(2) 0.000
- ../../../Noyau/N_MCBLOC.py:51(get_valeur)(1) 0.000
- ../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs)(2) 0.010
- ../../../Noyau/N_MCCOMPO.py:165(recherche_mc_globaux)(11) 0.000
- ../../../Noyau/N_MCCOMPO.py:195(supprime)(2) 0.010
- ../../../Noyau/N_MCFACT.py:47(get_valeur)(4) 0.000
- ../../../Noyau/N_MCLIST.py:29(get_valeur)(2) 0.000
- ../../../Noyau/N_MCSIMP.py:55(get_valeur)(9) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:23(error) --
-../../../Noyau/N_PROC.py:4(?) ../../../Noyau/N_PROC.py:11(PROC)(1) 0.000
- ../../../Noyau/N_PROC_ETAPE.py:4(?)(1) 0.000
-../../Build/B_ENTITE.py:3(?) ../../Build/B_ENTITE.py:9(ENTITE)(1) 0.000
- ../../Build/utils.py:2(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/repr.py:5(Repr) --
-/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:343(_code) /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:19(_compile)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:234(_compile_info)(1) 0.000
-../../Validation/V_MCBLOC.py:8(?) ../../Validation/V_MCBLOC.py:15(MCBLOC)(1) 0.000
-../../Validation/V_AU_MOINS_UN.py:2(?) ../../Validation/V_AU_MOINS_UN.py:2(AU_MOINS_UN)(1) 0.000
-../../../Noyau/N_MCSIMP.py:9(MCSIMP) --
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:73(__init__) --
-../../../Noyau/N_MCBLOC.py:5(?) ../../../Noyau/N_MCBLOC.py:11(MCBLOC)(1) 0.000
-../../Accas/A_PROC_ETAPE.py:1(?) ../../Accas/A_PROC_ETAPE.py:6(PROC_ETAPE)(1) 0.000
- ../../Build/B_PROC_ETAPE.py:2(?)(1) 0.000
- ../../Execution/E_PROC_ETAPE.py:1(?)(1) 0.000
- ../../Validation/V_PROC_ETAPE.py:8(?)(1) 0.000
-../../Accas/A_SIMP.py:4(SIMP) --
-../../../Noyau/N_MCCOMPO.py:4(?) ../../../Noyau/N_MCCOMPO.py:10(MCCOMPO)(1) 0.000
-../../../Noyau/N_ENTITE.py:27(affecter_parente) --
-../../../Noyau/N_MCFACT.py:13(__init__) ../../../Noyau/N_MCCOMPO.py:16(build_mc)(5) 0.030
- ../../../Noyau/N_MCFACT.py:37(GETVAL)(5) 0.000
-../../../Validation/V_ETAPE.py:18(ETAPE) --
-../../Accas/A_PRESENT_PRESENT.py:4(PRESENT_PRESENT) --
-../../../Noyau/N_BLOC.py:29(__init__) ../../../Noyau/N_ENTITE.py:27(affecter_parente)(1) 0.000
-../../Noyau/N_Exception.py:3(?) ../../Noyau/N_Exception.py:8(AsException)(1) 0.000
-../../Noyau/N_CR.py:44(add) --
-../../Noyau/N_GEOM.py:3(?) ../../Noyau/N_GEOM.py:6(GEOM)(1) 0.000
- ../../Noyau/N_GEOM.py:45(geom)(1) 0.000
-../../Noyau/N_FORM_ETAPE.py:3(FORM_ETAPE) --
-../../Build/B_PROC_ETAPE.py:8(PROC_ETAPE) --
-../../Validation/V_PROC_ETAPE.py:17(PROC_ETAPE) --
-../../Accas/A_SIMP.py:1(?) ../../Accas/A_MCSIMP.py:1(?)(1) 0.010
- ../../Accas/A_SIMP.py:4(SIMP)(1) 0.000
-../../../Noyau/N_ENTITE.py:3(?) ../../../Noyau/N_ENTITE.py:7(ENTITE)(1) 0.000
- ../../Noyau/N_CR.py:2(?)(1) 0.000
-../../Accas/A_PRESENT_ABSENT.py:1(?) ../../Accas/A_PRESENT_ABSENT.py:4(PRESENT_ABSENT)(1) 0.000
- ../../Validation/V_PRESENT_ABSENT.py:2(?)(1) 0.000
-../../Accas/A_FACT.py:6(FACT) --
-../../../Noyau/N_MCCOMPO.py:10(MCCOMPO) --
-../../../Noyau/N_FACT.py:69(__call__) ../../../Noyau/N_MCLIST.py:15(init)(1) 0.010
- ../../Accas/A_MCFACT.py:5(__init__)(5) 0.030
- ../../Accas/A_MCLIST.py:5(__init__)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:73(append)(2) 0.000
-../../../Noyau/N_PROC.py:11(PROC) --
-../../../Validation/V_MCCOMPO.py:73(dict_mc_presents) /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:17(__eq__)(1) 0.000
-../../../Noyau/N_FACT.py:3(?) ../../../Noyau/N_FACT.py:11(FACT)(1) 0.000
- ../../../Noyau/N_MCFACT.py:5(?)(1) 0.010
- ../../../Noyau/N_MCLIST.py:5(?)(1) 0.000
-../../../Noyau/N_MCLIST.py:9(MCList) --
-../../../Noyau/N_MCCOMPO.py:195(supprime) ../../../Noyau/N_MCCOMPO.py:195(supprime)(3) 0.010
- ../../../Noyau/N_MCLIST.py:44(supprime)(1) 0.010
- ../../../Noyau/N_OBJECT.py:27(supprime)(16) 0.010
-../../Build/B_ETAPE.py:18(ETAPE) --
-../../../Noyau/N_MACRO.py:4(?) ../../../Noyau/N_MACRO.py:12(MACRO)(1) 0.000
- ../../../Noyau/N_MACRO_ETAPE.py:4(?)(1) 0.000
-../../../Noyau/N_MCLIST.py:44(supprime) ../../../Noyau/N_MCCOMPO.py:195(supprime)(2) 0.010
-../../Validation/V_MCSIMP.py:107(verif_type) ../../Validation/V_MCSIMP.py:314(compare_type)(16) 0.000
-../../../Validation/V_MACRO_ETAPE.py:19(MACRO_ETAPE) --
-../../../Noyau/N_JDC.py:15(JDC) ../../Noyau/utils.py:3(?)(1) 0.000
-../../Validation/V_EXCLUS.py:2(EXCLUS) --
-../../Accas/A_OPER.py:1(?) ../../../Noyau/N_OPER.py:4(?)(1) 0.020
- ../../Accas/A_ETAPE.py:1(?)(1) 0.010
- ../../Accas/A_OPER.py:5(OPER)(1) 0.000
- ../../Build/B_ENTITE.py:3(?)(1) 0.000
-../../../Noyau/N_BLOC.py:63(__call__) ../../Accas/A_MCBLOC.py:6(__init__)(3) 0.010
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:181(__next) --
-../../Build/B_CODE.py:4(?) ../../Build/B_CODE.py:7(CODE)(1) 0.000
- ../../Build/codex.py:3(?)(1) 0.000
-../../../Noyau/N_MCLIST.py:5(?) ../../../Noyau/N_MCLIST.py:9(MCList)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:1(?)(1) 0.000
-../../../Validation/V_MCLIST.py:17(MCList) --
-/home01/chris/pkg/python2.1/lib/python2.1/string.py:20(?) --
-../../../Noyau/N_MCFACT.py:47(get_valeur) --
-../../Accas/A_JDC_CATA.py:1(?) ../../Accas/A_JDC.py:1(?)(1) 0.010
- ../../Accas/A_JDC_CATA.py:4(JDC_CATA)(1) 0.000
- ../../Noyau/N_JDC_CATA.py:4(?)(1) 0.010
- ../../Noyau/__init__.py:10(?)(1) 0.020
-../../Validation/V_PROC_ETAPE.py:8(?) ../../Validation/V_PROC_ETAPE.py:17(PROC_ETAPE)(1) 0.000
-../../Noyau/N_FONCTION.py:1(?) ../../Noyau/N_FONCTION.py:3(FONCTION)(1) 0.000
- ../../Noyau/N_FONCTION.py:5(fonction)(1) 0.000
-../../Validation/V_MCSIMP.py:38(__init__) --
-../../Validation/V_PRESENT_ABSENT.py:2(?) ../../Validation/V_PRESENT_ABSENT.py:2(PRESENT_ABSENT)(1) 0.000
-../../Noyau/N_SIMP.py:104(__call__) ../../Accas/A_MCSIMP.py:5(__init__)(8) 0.000
-../../Validation/V_JDC.py:8(?) ../../../Validation/V_MCCOMPO.py:4(?)(1) 0.000
- ../../Validation/V_JDC.py:17(JDC)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:14(?) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:71(Pattern)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:90(SubPattern)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:176(Tokenizer)(1) 0.000
-../../Validation/V_MCBLOC.py:24(isvalid) ../../../Validation/V_MCCOMPO.py:49(verif_regles)(2) 0.000
- ../../Validation/V_MCSIMP.py:41(isvalid)(2) 0.000
-../../Build/B_MACRO_ETAPE.py:48(MACRO_ETAPE) --
-/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:19(_compile) --
-../../../Noyau/N_MACRO.py:12(MACRO) --
-../../Accas/A_FORM.py:1(?) ../../Accas/A_FORM.py:5(FORM)(1) 0.000
- ../../Accas/A_FORM_ETAPE.py:1(?)(1) 0.000
- ../../Noyau/N_FORM.py:1(?)(1) 0.000
-../../Accas/A_ENSEMBLE.py:1(?) ../../Accas/A_ENSEMBLE.py:4(ENSEMBLE)(1) 0.000
- ../../Validation/V_ENSEMBLE.py:2(?)(1) 0.000
-../../Execution/E_ETAPE.py:2(?) ../../Execution/E_ETAPE.py:11(ETAPE)(1) 0.000
- ../../Execution/genpy.py:12(?)(1) 0.000
-../../../Noyau/N_BLOC.py:70(verif_cata) ../../../Noyau/N_ENTITE.py:68(verif_cata_regles)(1) 0.000
-../../../Noyau/N_ENTITE.py:15(__init__) --
-../../Accas/A_FORM_ETAPE.py:6(FORM_ETAPE) --
-../../../Validation/V_MCLIST.py:51(report) ../../../Validation/V_MCCOMPO.py:32(report)(2) 0.010
- ../../../Validation/V_MCLIST.py:29(isvalid)(1) 0.000
- ../../Noyau/N_CR.py:10(__init__)(1) 0.000
- ../../Noyau/N_CR.py:44(add)(2) 0.000
-../../../Noyau/N_BLOC.py:90(verif_presence) <string>:0(?)(3) 0.000
-../../Noyau/N_SIMP.py:10(SIMP) --
-../../Validation/V_JDC.py:17(JDC) --
-main.py:11(main) ../../../Noyau/N_BLOC.py:29(__init__)(1) 0.000
- ../../../Noyau/N_ENTITE.py:49(report)(1) 0.000
- ../../../Noyau/N_FACT.py:29(__init__)(4) 0.000
- ../../../Noyau/N_FACT.py:69(__call__)(1) 0.030
- ../../../Noyau/N_MCCOMPO.py:195(supprime)(1) 0.010
- ../../../Validation/V_MCCOMPO.py:32(report)(1) 0.010
- ../../Accas/__init__.py:11(?)(1) 0.100
- ../../Noyau/N_CR.py:48(estvide)(2) 0.010
- ../../Noyau/N_REGLE.py:23(__init__)(1) 0.000
- ../../Noyau/N_SIMP.py:26(__init__)(9) 0.000
-../../../Noyau/N_MCSIMP.py:45(GETVAL) --
-/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:1(?) /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:3(UserList)(1) 0.000
-../../Accas/A_MCSIMP.py:4(MCSIMP) --
-../../Validation/V_MCSIMP.py:155(verif_into) ../../Validation/V_MCSIMP.py:357(isinintervalle)(16) 0.000
-../../Build/B_CODE.py:7(CODE) --
-../../../Noyau/N_MCFACT.py:37(GETVAL) --
-../../Validation/V_MCSIMP.py:82(verif_card) --
-../../Noyau/N_CO.py:1(?) ../../Noyau/N_CO.py:3(CO)(1) 0.000
-../../Accas/A_ETAPE.py:6(ETAPE) --
-../../Validation/V_A_CLASSER.py:4(A_CLASSER) --
-../../Noyau/N_CR.py:6(CR) --
-../../Validation/V_EXCLUS.py:2(?) ../../Validation/V_EXCLUS.py:2(EXCLUS)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:141(makedict) --
-../../Build/B_OBJECT.py:12(OBJECT) --
-/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:21(__cast) --
-/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:3(UserList) --
-../../Accas/A_PROC.py:5(PROC) --
-../../Build/B_JDC.py:2(?) ../../Build/B_CODE.py:4(?)(1) 0.000
- ../../Build/B_JDC.py:9(JDC)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/repr.py:1(?) /home01/chris/pkg/python2.1/lib/python2.1/repr.py:5(Repr)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/repr.py:6(__init__)(1) 0.000
-../../../Noyau/N_ENTITE.py:49(report) ../../../Noyau/N_BLOC.py:70(verif_cata)(1) 0.000
- ../../../Noyau/N_ENTITE.py:49(report)(13) 0.000
- ../../../Noyau/N_FACT.py:109(verif_cata)(4) 0.000
- ../../Noyau/N_CR.py:10(__init__)(14) 0.000
- ../../Noyau/N_CR.py:44(add)(13) 0.000
- ../../Noyau/N_SIMP.py:78(verif_cata)(9) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:307(_parse_sub) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:194(match)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:362(_parse)(1) 0.000
-../../Noyau/N__F.py:3(_F) --
-/home01/chris/pkg/python2.1/lib/python2.1/sre.py:125(_compile) /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:358(compile)(1) 0.000
-../../Validation/V_MCSIMP.py:77(isoblig) --
-../../Accas/A_MCSIMP.py:5(__init__) ../../../Noyau/N_MCSIMP.py:13(__init__)(8) 0.000
- ../../Validation/V_MCSIMP.py:38(__init__)(8) 0.000
-../../Accas/A_MCBLOC.py:1(?) ../../Accas/A_MCBLOC.py:5(MCBLOC)(1) 0.000
- ../../Build/B_OBJECT.py:2(?)(1) 0.000
- ../../Validation/V_MCBLOC.py:8(?)(1) 0.000
-../../Validation/V_AU_MOINS_UN.py:11(verif) ../../Noyau/N_REGLE.py:42(liste_to_dico)(1) 0.000
-../../Noyau/N_Exception.py:8(AsException) --
-../../../Noyau/N_OBJECT.py:4(?) ../../../Noyau/N_OBJECT.py:6(OBJECT)(1) 0.000
-../../Execution/E_JDC.py:2(?) ../../Execution/E_JDC.py:7(JDC)(1) 0.000
-../../../Noyau/N_PROC_ETAPE.py:15(PROC_ETAPE) --
-../../../Validation/V_MCCOMPO.py:4(?) ../../../Validation/V_MCCOMPO.py:13(MCCOMPO)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre.py:17(?) /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:5(?)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:14(pickle)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre.py:125(_compile)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre.py:228(Scanner)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?)(1) 0.010
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:14(?)(1) 0.000
-../../Execution/E_ETAPE.py:11(ETAPE) --
-../../Noyau/N_FONCTION.py:3(FONCTION) --
-../../Accas/A_MACRO_ETAPE.py:6(MACRO_ETAPE) --
-../../Execution/genpy.py:12(?) ../../Execution/genpy.py:19(genpy)(1) 0.000
- ../../Execution/utils.py:2(?)(1) 0.000
-../../Noyau/N_EVAL.py:4(EVAL) --
-../../../Noyau/N_MCBLOC.py:11(MCBLOC) --
-../../Validation/V_A_CLASSER.py:2(?) ../../Validation/V_A_CLASSER.py:4(A_CLASSER)(1) 0.000
-../../Execution/genpy.py:19(genpy) --
-../../Build/utils.py:2(?) --
-../../Accas/A_JDC_CATA.py:4(JDC_CATA) --
-../../Validation/__init__.py:6(?) --
-../../Build/B_EVAL.py:2(?) ../../Build/B_EVAL.py:7(EVAL)(1) 0.000
-../../Build/codex.py:3(?) --
-../../Noyau/N_REGLE.py:22(REGLE) --
-../../../Noyau/nommage.py:14(?) /home01/chris/pkg/python2.1/lib/python2.1/re.py:23(?)(1) 0.010
-../../Accas/A_BLOC.py:1(?) ../../Accas/A_BLOC.py:5(BLOC)(1) 0.000
- ../../Accas/A_MCBLOC.py:1(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:194(match) --
-/home01/chris/pkg/python2.1/lib/python2.1/traceback.py:1(?) /home01/chris/pkg/python2.1/lib/python2.1/linecache.py:6(?)(1) 0.000
-../../../Noyau/N_FACT.py:11(FACT) --
-../../../Validation/V_UN_PARMI.py:2(UN_PARMI) --
-../../Validation/V_AU_MOINS_UN.py:2(AU_MOINS_UN) --
-../../Noyau/N_SIMP.py:3(?) ../../../Noyau/N_ENTITE.py:3(?)(1) 0.000
- ../../../Noyau/N_MCSIMP.py:5(?)(1) 0.000
- ../../Noyau/N_SIMP.py:10(SIMP)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/types.py:4(?)(1) 0.010
-../../../Validation/V_MCCOMPO.py:49(verif_regles) ../../../Validation/V_MCCOMPO.py:73(dict_mc_presents)(11) 0.000
- ../../Validation/V_AU_MOINS_UN.py:11(verif)(1) 0.000
-../../Accas/A_AU_MOINS_UN.py:1(?) ../../Accas/A_AU_MOINS_UN.py:4(AU_MOINS_UN)(1) 0.000
- ../../Noyau/N_REGLE.py:18(?)(1) 0.000
- ../../Validation/V_AU_MOINS_UN.py:2(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:176(Tokenizer) --
-../../../Validation/V_MCFACT.py:24(isvalid) ../../../Validation/V_MCCOMPO.py:49(verif_regles)(9) 0.000
- ../../../Validation/V_MCFACT.py:24(isvalid)(2) 0.000
- ../../../Validation/V_MCLIST.py:29(isvalid)(1) 0.000
- ../../Validation/V_MCBLOC.py:24(isvalid)(1) 0.000
- ../../Validation/V_MCSIMP.py:41(isvalid)(13) 0.000
-../../../Noyau/N_MACRO_ETAPE.py:4(?) ../../../Noyau/N_MACRO_ETAPE.py:17(MACRO_ETAPE)(1) 0.000
-../../Accas/A_MCFACT.py:4(MCFACT) --
-../../Validation/V_MCSIMP.py:8(?) ../../Validation/V_MCSIMP.py:17(MCSIMP)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/linecache.py:6(?) --
-../../Noyau/N_FORM_ETAPE.py:1(?) ../../Noyau/N_FORM_ETAPE.py:3(FORM_ETAPE)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre.py:228(Scanner) --
-../../Accas/A_MACRO.py:1(?) ../../../Noyau/N_MACRO.py:4(?)(1) 0.000
- ../../Accas/A_MACRO.py:5(MACRO)(1) 0.000
- ../../Accas/A_MACRO_ETAPE.py:1(?)(1) 0.010
-../../Accas/A_MCLIST.py:4(MCList) --
-/home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:5(?) /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:14(pickle)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:607(parse) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:73(__init__)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:177(__init__)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:200(get)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:307(_parse_sub)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:358(compile) /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:343(_code)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:607(parse)(1) 0.000
-../../Accas/A_OPER.py:5(OPER) --
-../../../Noyau/N_BLOC.py:13(BLOC) --
-../../Noyau/N_FONCTION.py:5(fonction) --
-../../Accas/A_AU_MOINS_UN.py:4(AU_MOINS_UN) --
-../../Execution/E_MACRO_ETAPE.py:1(?) ../../Execution/E_MACRO_ETAPE.py:2(MACRO_ETAPE)(1) 0.000
-../../../Validation/V_MCCOMPO.py:13(MCCOMPO) --
-../../../Validation/V_MACRO_ETAPE.py:8(?) ../../../Validation/V_MACRO_ETAPE.py:19(MACRO_ETAPE)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:90(SubPattern) --
-../../../Noyau/N_ENTITE.py:68(verif_cata_regles) --
-../../../Noyau/N_FACT.py:109(verif_cata) ../../../Noyau/N_ENTITE.py:68(verif_cata_regles)(4) 0.000
-../../../Validation/V_MCLIST.py:29(isvalid) ../../../Validation/V_MCFACT.py:24(isvalid)(4) 0.000
-../../Validation/V_PRESENT_PRESENT.py:2(PRESENT_PRESENT) --
-../../Build/B_PROC_ETAPE.py:2(?) ../../Build/B_PROC_ETAPE.py:8(PROC_ETAPE)(1) 0.000
-../../Noyau/__init__.py:10(?) ../../../Noyau/N_FACT.py:3(?)(1) 0.010
- ../../Noyau/N_SIMP.py:3(?)(1) 0.010
- ../../Noyau/context.py:1(?)(1) 0.000
-../../Accas/A_PRESENT_PRESENT.py:1(?) ../../Accas/A_PRESENT_PRESENT.py:4(PRESENT_PRESENT)(1) 0.000
- ../../Validation/V_PRESENT_PRESENT.py:2(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/re.py:23(?) /home01/chris/pkg/python2.1/lib/python2.1/sre.py:17(?)(1) 0.010
-../../Accas/A_FACT.py:1(?) ../../Accas/A_FACT.py:6(FACT)(1) 0.000
- ../../Accas/A_MCFACT.py:1(?)(1) 0.000
- ../../Accas/A_MCLIST.py:1(?)(1) 0.000
-../../Accas/A_EXCLUS.py:1(?) ../../Accas/A_EXCLUS.py:4(EXCLUS)(1) 0.000
- ../../Validation/V_EXCLUS.py:2(?)(1) 0.000
-../../Validation/V_MCBLOC.py:15(MCBLOC) --
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:92(__init__) --
-../../Build/B_EVAL.py:7(EVAL) --
-../../../Noyau/N_MACRO_ETAPE.py:17(MACRO_ETAPE) --
-../../Execution/__init__.py:0(?) --
-../../Validation/V_MCSIMP.py:385(report) ../../Noyau/N_CR.py:10(__init__)(8) 0.000
- ../../Validation/V_MCSIMP.py:41(isvalid)(8) 0.000
-../../Accas/A_EXCLUS.py:4(EXCLUS) --
-../../Build/B_MACRO_ETAPE.py:2(?) ../../Build/B_MACRO_ETAPE.py:48(MACRO_ETAPE)(1) 0.000
- ../../Noyau/N__F.py:1(?)(1) 0.000
-../../Validation/V_MCSIMP.py:41(isvalid) ../../Validation/V_MCSIMP.py:77(isoblig)(16) 0.000
- ../../Validation/V_MCSIMP.py:82(verif_card)(16) 0.000
- ../../Validation/V_MCSIMP.py:107(verif_type)(16) 0.000
- ../../Validation/V_MCSIMP.py:155(verif_into)(16) 0.000
-../../../Validation/V_MCFACT.py:15(MCFACT) --
-/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:4(__init__) --
-../../Accas/A_MCFACT.py:5(__init__) ../../../Noyau/N_MCFACT.py:13(__init__)(5) 0.030
- ../../../Validation/V_MCCOMPO.py:21(__init__)(5) 0.000
-../../Noyau/N_GEOM.py:6(GEOM) --
-../../../Noyau/N_OPER.py:4(?) ../../../Noyau/N_ETAPE.py:4(?)(1) 0.000
- ../../../Noyau/N_OPER.py:12(OPER)(1) 0.010
- ../../../Noyau/nommage.py:14(?)(1) 0.010
-../../../Noyau/N_FACT.py:29(__init__) ../../../Noyau/N_ENTITE.py:27(affecter_parente)(4) 0.000
-../../Noyau/N_JDC_CATA.py:11(JDC_CATA) --
-../../../Noyau/N_OBJECT.py:17(get_etape) ../../../Noyau/N_OBJECT.py:17(get_etape)(5) 0.000
-../../Accas/A_MCLIST.py:5(__init__) /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:4(__init__)(1) 0.000
-../../Noyau/context.py:1(?) --
-../../../Noyau/N_JDC.py:3(?) ../../../Noyau/N_JDC.py:15(JDC)(1) 0.000
- ../../Noyau/N_ASSD.py:3(?)(1) 0.000
- ../../Noyau/N_Exception.py:3(?)(1) 0.000
-../../Validation/V_ENSEMBLE.py:2(?) ../../Validation/V_ENSEMBLE.py:2(ENSEMBLE)(1) 0.000
-../../Noyau/N_ASSD.py:3(?) ../../Noyau/N_ASSD.py:6(ASSD)(1) 0.000
- ../../Noyau/N_ASSD.py:74(assd)(1) 0.000
-../../Execution/E_MACRO_ETAPE.py:2(MACRO_ETAPE) --
-../../Noyau/N__F.py:1(?) ../../Noyau/N__F.py:3(_F)(1) 0.000
-../../Accas/__init__.py:11(?) ../../Accas/A_AU_MOINS_UN.py:1(?)(1) 0.000
- ../../Accas/A_A_CLASSER.py:1(?)(1) 0.010
- ../../Accas/A_BLOC.py:1(?)(1) 0.000
- ../../Accas/A_ENSEMBLE.py:1(?)(1) 0.000
- ../../Accas/A_EVAL.py:1(?)(1) 0.000
- ../../Accas/A_EXCLUS.py:1(?)(1) 0.000
- ../../Accas/A_FACT.py:1(?)(1) 0.000
- ../../Accas/A_FORM.py:1(?)(1) 0.000
- ../../Accas/A_JDC_CATA.py:1(?)(1) 0.040
- ../../Accas/A_MACRO.py:1(?)(1) 0.010
- ../../Accas/A_OPER.py:1(?)(1) 0.030
- ../../Accas/A_PRESENT_ABSENT.py:1(?)(1) 0.000
- ../../Accas/A_PRESENT_PRESENT.py:1(?)(1) 0.000
- ../../Accas/A_PROC.py:1(?)(1) 0.000
- ../../Accas/A_SIMP.py:1(?)(1) 0.010
- ../../Accas/A_UN_PARMI.py:1(?)(1) 0.000
- ../../Noyau/N_CO.py:1(?)(1) 0.000
- ../../Noyau/N_FONCTION.py:1(?)(1) 0.000
- ../../Noyau/N_GEOM.py:3(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:14(?) /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:23(error)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:141(makedict)(3) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:177(__init__) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:181(__next)(1) 0.000
-../../Execution/utils.py:2(?) --
-../../Accas/A_UN_PARMI.py:1(?) ../../../Validation/V_UN_PARMI.py:2(?)(1) 0.000
- ../../Accas/A_UN_PARMI.py:4(UN_PARMI)(1) 0.000
-../../Accas/A_JDC.py:6(JDC) --
-../../Noyau/N_GEOM.py:45(geom) --
-../../Accas/A_A_CLASSER.py:4(A_CLASSER) --
-../../Noyau/N_SIMP.py:78(verif_cata) --
-/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:73(append) --
-../../Accas/A_FORM.py:5(FORM) --
-../../Execution/E_PROC_ETAPE.py:1(?) ../../Execution/E_PROC_ETAPE.py:2(PROC_ETAPE)(1) 0.000
-../../Accas/A_MACRO.py:5(MACRO) --
-../../Validation/V_MCSIMP.py:257(is_entier) --
-../../../Noyau/N_OBJECT.py:6(OBJECT) --
-../../../Noyau/N_BLOC.py:4(?) ../../../Noyau/N_BLOC.py:13(BLOC)(1) 0.000
-../../Noyau/N_EVAL.py:2(?) ../../Noyau/N_EVAL.py:4(EVAL)(1) 0.000
-../../Noyau/N_FORM.py:4(FORM) --
-../../Validation/V_MCSIMP.py:357(isinintervalle) --
-../../../Noyau/N_ENTITE.py:7(ENTITE) --
-../../Accas/A_EVAL.py:1(?) ../../Accas/A_EVAL.py:4(EVAL)(1) 0.000
- ../../Build/B_EVAL.py:2(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/types.py:35(_C) --
-../../Accas/A_PROC.py:1(?) ../../../Noyau/N_PROC.py:4(?)(1) 0.000
- ../../Accas/A_PROC.py:5(PROC)(1) 0.000
- ../../Accas/A_PROC_ETAPE.py:1(?)(1) 0.000
-../../Validation/V_PRESENT_PRESENT.py:2(?) ../../Validation/V_PRESENT_PRESENT.py:2(PRESENT_PRESENT)(1) 0.000
-../../Validation/V_MCSIMP.py:314(compare_type) ../../Validation/V_MCSIMP.py:257(is_entier)(16) 0.000
-../../Noyau/utils.py:3(?) --
-../../Validation/V_MCSIMP.py:17(MCSIMP) --
-<string>:0(?) --
-../../../Noyau/N_MCSIMP.py:13(__init__) ../../../Noyau/N_MCSIMP.py:45(GETVAL)(8) 0.000
-../../../Validation/V_ETAPE.py:8(?) ../../../Validation/V_ETAPE.py:18(ETAPE)(1) 0.000
-../../Accas/A_ENSEMBLE.py:4(ENSEMBLE) --
-../../Build/B_JDC.py:9(JDC) --
-../../../Noyau/N_PROC_ETAPE.py:4(?) ../../../Noyau/N_PROC_ETAPE.py:15(PROC_ETAPE)(1) 0.000
-../../../Validation/V_MCCOMPO.py:21(__init__) --
-../../Accas/A_BLOC.py:5(BLOC) --
-../../Accas/A_MCLIST.py:1(?) ../../../Validation/V_MCLIST.py:8(?)(1) 0.000
- ../../Accas/A_MCLIST.py:4(MCList)(1) 0.000
-../../Noyau/N_ASSD.py:6(ASSD) --
-../../Noyau/N_REGLE.py:42(liste_to_dico) --
-../../../Noyau/N_MCCOMPO.py:165(recherche_mc_globaux) ../../../Noyau/N_OBJECT.py:17(get_etape)(11) 0.000
-../../Noyau/N_CR.py:10(__init__) --
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:200(get) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:181(__next)(2) 0.000
-../../../Noyau/N_ETAPE.py:4(?) ../../../Noyau/N_ETAPE.py:17(ETAPE)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:141(getwidth) --
-/home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:25(constructor) --
-../../../Noyau/N_MCLIST.py:29(get_valeur) --
-../../Accas/A_EVAL.py:4(EVAL) --
-../../../Noyau/N_MCBLOC.py:51(get_valeur) ../../../Noyau/N_MCSIMP.py:55(get_valeur)(1) 0.000
-../../../Noyau/N_MCCOMPO.py:16(build_mc) ../../../Noyau/N_BLOC.py:63(__call__)(1) 0.010
- ../../../Noyau/N_BLOC.py:90(verif_presence)(1) 0.000
- ../../../Noyau/N_FACT.py:69(__call__)(3) 0.030
- ../../../Noyau/N_MCCOMPO.py:81(ordonne_liste)(8) 0.000
- ../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs)(9) 0.010
- ../../Noyau/N_SIMP.py:104(__call__)(8) 0.000
-../../../Noyau/N_ETAPE.py:17(ETAPE) --
-../../Accas/A_UN_PARMI.py:4(UN_PARMI) --
-../../Noyau/N_FORM.py:1(?) ../../Noyau/N_FORM.py:4(FORM)(1) 0.000
- ../../Noyau/N_FORM_ETAPE.py:1(?)(1) 0.000
-../../Noyau/N_SIMP.py:26(__init__) ../../../Noyau/N_ENTITE.py:15(__init__)(9) 0.000
-../../../Validation/V_MCLIST.py:8(?) ../../../Validation/V_MCLIST.py:17(MCList)(1) 0.000
-../../Accas/A_FORM_ETAPE.py:1(?) ../../Accas/A_FORM_ETAPE.py:6(FORM_ETAPE)(1) 0.000
-../../Noyau/N_REGLE.py:18(?) ../../Noyau/N_REGLE.py:22(REGLE)(1) 0.000
-../../Accas/A_ETAPE.py:1(?) ../../../Validation/V_ETAPE.py:8(?)(1) 0.000
- ../../Accas/A_ETAPE.py:6(ETAPE)(1) 0.000
- ../../Build/B_ETAPE.py:2(?)(1) 0.010
- ../../Execution/E_ETAPE.py:2(?)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/repr.py:6(__init__) --
-<string>:1(?) main.py:11(main)(1) 0.160
-../../Build/B_OBJECT.py:2(?) ../../Build/B_OBJECT.py:12(OBJECT)(1) 0.000
-../../../Noyau/N_MCSIMP.py:5(?) ../../../Noyau/N_MCSIMP.py:9(MCSIMP)(1) 0.000
- ../../../Noyau/N_OBJECT.py:4(?)(1) 0.000
-../../../Validation/V_MCFACT.py:8(?) ../../../Validation/V_MCFACT.py:15(MCFACT)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:71(Pattern) --
-../../Accas/A_MCFACT.py:1(?) ../../../Validation/V_MCFACT.py:8(?)(1) 0.000
- ../../Accas/A_MCFACT.py:4(MCFACT)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:234(_compile_info) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:141(getwidth)(1) 0.000
-/home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:362(_parse) /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:92(__init__)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:200(get)(1) 0.000
-../../Noyau/N_REGLE.py:23(__init__) --
-../../../Validation/V_UN_PARMI.py:2(?) ../../../Validation/V_UN_PARMI.py:2(UN_PARMI)(1) 0.000
-../../Accas/A_MCBLOC.py:5(MCBLOC) --
-../../Noyau/N_CR.py:2(?) ../../Noyau/N_CR.py:6(CR)(1) 0.000
- /home01/chris/pkg/python2.1/lib/python2.1/string.py:20(?)(1) 0.000
-../../Accas/A_MCBLOC.py:6(__init__) ../../../Noyau/N_MCBLOC.py:18(__init__)(3) 0.010
- ../../../Validation/V_MCCOMPO.py:21(__init__)(3) 0.000
-../../Accas/A_PROC_ETAPE.py:6(PROC_ETAPE) --
-../../Execution/E_JDC.py:7(JDC) --
-../../Execution/E_PROC_ETAPE.py:2(PROC_ETAPE) --
-../../Noyau/N_ASSD.py:74(assd) --
-../../Validation/V_PRESENT_ABSENT.py:2(PRESENT_ABSENT) --
-../../Accas/A_PRESENT_ABSENT.py:4(PRESENT_ABSENT) --
-../../../Noyau/N_MCCOMPO.py:81(ordonne_liste) --
-../../Validation/V_ENSEMBLE.py:2(ENSEMBLE) --
-/home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:14(pickle) /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:25(constructor)(2) 0.000
-profile:0(profiler) profile:0(main())(1) 0.170
-/home01/chris/pkg/python2.1/lib/python2.1/UserList.py:17(__eq__) /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:21(__cast)(1) 0.000
-../../../Noyau/N_MCSIMP.py:55(get_valeur) --
-../../../Noyau/N_MCFACT.py:9(MCFACT) --
-../../Build/__init__.py:0(?) --
-../../Build/B_ENTITE.py:9(ENTITE) --
-../../Noyau/N_CO.py:3(CO) --
-
-
-************************************************************
-* Liste des appellants de is_reel triée par temps interne *
-************************************************************
-*********************************************
-* Trié par temps cumulé (20 plus grands) *
-*********************************************
- 750 function calls (669 primitive calls) in 0.170 CPU seconds
-
- Ordered by: cumulative time
- List reduced from 288 to 20 due to restriction <20>
-
- ncalls tottime percall cumtime percall filename:lineno(function)
- 1 0.010 0.010 0.170 0.170 profile:0(main())
- 1 0.000 0.000 0.160 0.160 <string>:1(?)
- 1 0.000 0.000 0.160 0.160 main.py:11(main)
- 1 0.000 0.000 0.100 0.100 ../../Accas/__init__.py:11(?)
- 1 0.000 0.000 0.040 0.040 ../../Accas/A_JDC_CATA.py:1(?)
- 5/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCFACT.py:13(__init__)
- 8/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCCOMPO.py:16(build_mc)
- 5/1 0.000 0.000 0.030 0.030 ../../Accas/A_MCFACT.py:5(__init__)
- 4/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_FACT.py:69(__call__)
- 1 0.000 0.000 0.030 0.030 ../../Accas/A_OPER.py:1(?)
- 1 0.000 0.000 0.020 0.020 ../../../Noyau/N_OPER.py:4(?)
- 1 0.000 0.000 0.020 0.020 ../../Noyau/__init__.py:10(?)
- 3 0.000 0.000 0.010 0.003 ../../Accas/A_MCBLOC.py:6(__init__)
- 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCLIST.py:15(init)
- 16 0.010 0.001 0.010 0.001 ../../../Noyau/N_OBJECT.py:27(supprime)
- 6/1 0.010 0.002 0.010 0.010 ../../../Validation/V_MCCOMPO.py:32(report)
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_MACRO_ETAPE.py:1(?)
- 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?)
- 1 0.000 0.000 0.010 0.010 ../../../Noyau/N_MCLIST.py:44(supprime)
- 1 0.000 0.000 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/re.py:23(?)
-
-
-*********************************************
-* Trié par noms de fonction *
-*********************************************
- 750 function calls (669 primitive calls) in 0.170 CPU seconds
-
- Ordered by: function name
-
- ncalls tottime percall cumtime percall filename:lineno(function)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_ENTITE.py:3(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_MCBLOC.py:8(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_AU_MOINS_UN.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCBLOC.py:5(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_PROC_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCCOMPO.py:4(?)
- 1 0.010 0.010 0.010 0.010 ../../Noyau/N_JDC_CATA.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_Exception.py:3(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_GEOM.py:3(?)
- 1 0.000 0.000 0.010 0.010 ../../Accas/A_SIMP.py:1(?)
- 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/types.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:3(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_PRESENT_ABSENT.py:1(?)
- 1 0.000 0.000 0.010 0.010 ../../Accas/A_ETAPE.py:1(?)
- 1 0.000 0.000 0.160 0.160 <string>:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_PRESENT_PRESENT.py:1(?)
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_A_CLASSER.py:1(?)
- 1 0.000 0.000 0.010 0.010 ../../Noyau/N_SIMP.py:3(?)
- 1 0.000 0.000 0.020 0.020 ../../Noyau/__init__.py:10(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_AU_MOINS_UN.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_PROC_ETAPE.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MACRO_ETAPE.py:8(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MACRO_ETAPE.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../Execution/E_MACRO_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:8(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/linecache.py:6(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FORM_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_OBJECT.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:5(?)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCFACT.py:8(?)
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_MCSIMP.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCFACT.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_UN_PARMI.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/__init__.py:0(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N__F.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_ASSD.py:3(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_MACRO_ETAPE.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_A_CLASSER.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../Execution/E_JDC.py:2(?)
- 1 0.000 0.000 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/sre.py:17(?)
- 1 0.000 0.000 0.000 0.000 ../../Execution/genpy.py:12(?)
- 1 0.000 0.000 0.040 0.040 ../../Accas/A_JDC_CATA.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FORM.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_OBJECT.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ETAPE.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCLIST.py:1(?)
- 1 0.000 0.000 0.010 0.010 ../../../Noyau/N_FACT.py:3(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC_ETAPE.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCLIST.py:8(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MACRO.py:4(?)
- 1 0.010 0.010 0.010 0.010 ../../Build/B_ETAPE.py:2(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/traceback.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_EVAL.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_FORM_ETAPE.py:1(?)
- 1 0.000 0.000 0.030 0.030 ../../Accas/A_OPER.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_ETAPE.py:8(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_CODE.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCLIST.py:5(?)
- 3 0.000 0.000 0.000 0.000 <string>:0(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/string.py:20(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/utils.py:3(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_PRESENT_PRESENT.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_PROC_ETAPE.py:8(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FONCTION.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_PROC.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_PRESENT_ABSENT.py:2(?)
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_JDC.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_JDC.py:8(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:14(?)
- 1 0.000 0.000 0.000 0.000 ../../Execution/__init__.py:0(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:18(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:5(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_FORM.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_ENSEMBLE.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Execution/E_ETAPE.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_EVAL.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:4(?)
- 1 0.000 0.000 0.010 0.010 ../../Accas/A_MACRO.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Execution/E_PROC_ETAPE.py:1(?)
- 1 0.000 0.000 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/re.py:23(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_FACT.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_BLOC.py:1(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:1(?)
- 1 0.000 0.000 0.010 0.010 ../../../Noyau/nommage.py:14(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_UN_PARMI.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_EXCLUS.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Execution/utils.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_CO.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/codex.py:3(?)
- 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCFACT.py:5(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_EXCLUS.py:2(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:14(?)
- 1 0.000 0.000 0.100 0.100 ../../Accas/__init__.py:11(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_EVAL.py:2(?)
- 1 0.010 0.010 0.010 0.010 ../../Accas/A_MACRO_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_ENSEMBLE.py:2(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_JDC.py:2(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/repr.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_JDC.py:3(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/context.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Validation/__init__.py:6(?)
- 1 0.000 0.000 0.020 0.020 ../../../Noyau/N_OPER.py:4(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/utils.py:2(?)
- 1 0.010 0.010 0.010 0.010 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:11(?)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCBLOC.py:1(?)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_ASSD.py:6(ASSD)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_AU_MOINS_UN.py:2(AU_MOINS_UN)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_AU_MOINS_UN.py:4(AU_MOINS_UN)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_A_CLASSER.py:4(A_CLASSER)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_A_CLASSER.py:4(A_CLASSER)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_Exception.py:8(AsException)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_BLOC.py:5(BLOC)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:13(BLOC)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_CO.py:3(CO)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_CODE.py:7(CODE)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:6(CR)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_ENSEMBLE.py:2(ENSEMBLE)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_ENSEMBLE.py:4(ENSEMBLE)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_ENTITE.py:9(ENTITE)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:7(ENTITE)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_ETAPE.py:18(ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_ETAPE.py:6(ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ETAPE.py:17(ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_ETAPE.py:18(ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Execution/E_ETAPE.py:11(ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_EVAL.py:4(EVAL)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_EVAL.py:7(EVAL)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_EVAL.py:4(EVAL)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_EXCLUS.py:4(EXCLUS)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_EXCLUS.py:2(EXCLUS)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_FACT.py:6(FACT)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_FACT.py:11(FACT)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FONCTION.py:3(FONCTION)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_FORM.py:5(FORM)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FORM.py:4(FORM)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FORM_ETAPE.py:3(FORM_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_FORM_ETAPE.py:6(FORM_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_GEOM.py:6(GEOM)
- 5 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCFACT.py:37(GETVAL)
- 8 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:45(GETVAL)
- 1 0.000 0.000 0.000 0.000 ../../Execution/E_JDC.py:7(JDC)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_JDC.py:6(JDC)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_JDC.py:17(JDC)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_JDC.py:15(JDC)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_JDC.py:9(JDC)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_JDC_CATA.py:4(JDC_CATA)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_JDC_CATA.py:11(JDC_CATA)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MACRO.py:5(MACRO)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MACRO.py:12(MACRO)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MACRO_ETAPE.py:17(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Execution/E_MACRO_ETAPE.py:2(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_MACRO_ETAPE.py:48(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MACRO_ETAPE.py:19(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MACRO_ETAPE.py:6(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCBLOC.py:5(MCBLOC)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_MCBLOC.py:15(MCBLOC)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCBLOC.py:11(MCBLOC)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:13(MCCOMPO)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCCOMPO.py:10(MCCOMPO)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCFACT.py:9(MCFACT)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCFACT.py:4(MCFACT)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCFACT.py:15(MCFACT)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCLIST.py:4(MCList)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCLIST.py:9(MCList)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCLIST.py:17(MCList)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:9(MCSIMP)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCSIMP.py:4(MCSIMP)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:17(MCSIMP)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_OBJECT.py:12(OBJECT)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_OBJECT.py:6(OBJECT)
- 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_OPER.py:12(OPER)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_OPER.py:5(OPER)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_PRESENT_ABSENT.py:2(PRESENT_ABSENT)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_PRESENT_ABSENT.py:4(PRESENT_ABSENT)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_PRESENT_PRESENT.py:4(PRESENT_PRESENT)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_PRESENT_PRESENT.py:2(PRESENT_PRESENT)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC.py:11(PROC)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_PROC.py:5(PROC)
- 1 0.000 0.000 0.000 0.000 ../../Build/B_PROC_ETAPE.py:8(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_PROC_ETAPE.py:17(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_PROC_ETAPE.py:6(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../Execution/E_PROC_ETAPE.py:2(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_PROC_ETAPE.py:15(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:71(Pattern)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:22(REGLE)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/repr.py:5(Repr)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_SIMP.py:4(SIMP)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:10(SIMP)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre.py:228(Scanner)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:90(SubPattern)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:176(Tokenizer)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_UN_PARMI.py:2(UN_PARMI)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_UN_PARMI.py:4(UN_PARMI)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:3(UserList)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/types.py:35(_C)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N__F.py:3(_F)
- 4/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_FACT.py:69(__call__)
- 3 0.000 0.000 0.010 0.003 ../../../Noyau/N_BLOC.py:63(__call__)
- 8 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:104(__call__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:21(__cast)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:17(__eq__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:73(__init__)
- 5/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCFACT.py:13(__init__)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:29(__init__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/repr.py:6(__init__)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:23(__init__)
- 3 0.000 0.000 0.010 0.003 ../../Accas/A_MCBLOC.py:6(__init__)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCLIST.py:5(__init__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:92(__init__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:177(__init__)
- 9 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:15(__init__)
- 3 0.010 0.003 0.010 0.003 ../../../Noyau/N_MCBLOC.py:18(__init__)
- 8 0.000 0.000 0.000 0.000 ../../Accas/A_MCSIMP.py:5(__init__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:4(__init__)
- 9 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:26(__init__)
- 5/1 0.000 0.000 0.030 0.030 ../../Accas/A_MCFACT.py:5(__init__)
- 8 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:38(__init__)
- 29 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:10(__init__)
- 4 0.000 0.000 0.000 0.000 ../../../Noyau/N_FACT.py:29(__init__)
- 8 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:21(__init__)
- 8 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:13(__init__)
- 3 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:181(__next)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:343(_code)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:19(_compile)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre.py:125(_compile)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:234(_compile_info)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:362(_parse)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:307(_parse_sub)
- 27 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:44(add)
- 5 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:27(affecter_parente)
- 2 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:73(append)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_ASSD.py:74(assd)
- 8/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCCOMPO.py:16(build_mc)
- 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:314(compare_type)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_compile.py:358(compile)
- 2 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:25(constructor)
- 11/7 0.010 0.001 0.010 0.001 ../../../Noyau/N_MCCOMPO.py:93(cree_dict_valeurs)
- 11 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:73(dict_mc_presents)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:23(error)
- 29/2 0.010 0.000 0.010 0.005 ../../Noyau/N_CR.py:48(estvide)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_FONCTION.py:5(fonction)
- 1 0.000 0.000 0.000 0.000 ../../Execution/genpy.py:19(genpy)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_GEOM.py:45(geom)
- 2 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:200(get)
- 16/11 0.000 0.000 0.000 0.000 ../../../Noyau/N_OBJECT.py:17(get_etape)
- 10 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:55(get_valeur)
- 4 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCFACT.py:47(get_valeur)
- 2 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCLIST.py:29(get_valeur)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCBLOC.py:51(get_valeur)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:141(getwidth)
- 1 0.010 0.010 0.010 0.010 ../../../Noyau/N_MCLIST.py:15(init)
- 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:257(is_entier)
- 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:357(isinintervalle)
- 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:77(isoblig)
- 2 0.000 0.000 0.000 0.000 ../../Validation/V_MCBLOC.py:24(isvalid)
- 23 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:41(isvalid)
- 11/7 0.000 0.000 0.000 0.000 ../../../Validation/V_MCFACT.py:24(isvalid)
- 2 0.000 0.000 0.000 0.000 ../../../Validation/V_MCLIST.py:29(isvalid)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:42(liste_to_dico)
- 1 0.000 0.000 0.160 0.160 main.py:11(main)
- 1 0.010 0.010 0.170 0.170 profile:0(main())
- 3 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_constants.py:141(makedict)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:194(match)
- 8 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCCOMPO.py:81(ordonne_liste)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:607(parse)
- 2 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/copy_reg.py:14(pickle)
- 0 0.000 0.000 profile:0(profiler)
- 11 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCCOMPO.py:165(recherche_mc_globaux)
- 8 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:385(report)
- 6/1 0.010 0.002 0.010 0.010 ../../../Validation/V_MCCOMPO.py:32(report)
- 1 0.000 0.000 0.000 0.000 ../../../Validation/V_MCLIST.py:51(report)
- 14/1 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:49(report)
- 16 0.010 0.001 0.010 0.001 ../../../Noyau/N_OBJECT.py:27(supprime)
- 8/3 0.000 0.000 0.010 0.003 ../../../Noyau/N_MCCOMPO.py:195(supprime)
- 1 0.000 0.000 0.010 0.010 ../../../Noyau/N_MCLIST.py:44(supprime)
- 1 0.000 0.000 0.000 0.000 ../../Validation/V_AU_MOINS_UN.py:11(verif)
- 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:82(verif_card)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:70(verif_cata)
- 4 0.000 0.000 0.000 0.000 ../../../Noyau/N_FACT.py:109(verif_cata)
- 9 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:78(verif_cata)
- 5 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:68(verif_cata_regles)
- 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:155(verif_into)
- 3 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:90(verif_presence)
- 11 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:49(verif_regles)
- 16 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:107(verif_type)
-
-
-*********************************************
-* Statistique standard *
-*********************************************
- 750 function calls (669 primitive calls) in 0.170 CPU seconds
-
- Ordered by: standard name
-
- ncalls tottime percall cumtime percall filename:lineno(function)
- 3 0.000 0.000 0.000 0.000 <string>:0(?)
- 1 0.000 0.000 0.160 0.160 <string>:1(?)
- 1 0.000 0.000 0.000 0.000 A_AU_MOINS_UN.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_AU_MOINS_UN.py:4(AU_MOINS_UN)
- 1 0.010 0.010 0.010 0.010 A_A_CLASSER.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_A_CLASSER.py:4(A_CLASSER)
- 1 0.000 0.000 0.000 0.000 A_BLOC.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_BLOC.py:5(BLOC)
- 1 0.000 0.000 0.000 0.000 A_ENSEMBLE.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_ENSEMBLE.py:4(ENSEMBLE)
- 1 0.000 0.000 0.010 0.010 A_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_ETAPE.py:6(ETAPE)
- 1 0.000 0.000 0.000 0.000 A_EVAL.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_EVAL.py:4(EVAL)
- 1 0.000 0.000 0.000 0.000 A_EXCLUS.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_EXCLUS.py:4(EXCLUS)
- 1 0.000 0.000 0.000 0.000 A_FACT.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_FACT.py:6(FACT)
- 1 0.000 0.000 0.000 0.000 A_FORM.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_FORM.py:5(FORM)
- 1 0.000 0.000 0.000 0.000 A_FORM_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_FORM_ETAPE.py:6(FORM_ETAPE)
- 1 0.010 0.010 0.010 0.010 A_JDC.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_JDC.py:6(JDC)
- 1 0.000 0.000 0.040 0.040 A_JDC_CATA.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_JDC_CATA.py:4(JDC_CATA)
- 1 0.000 0.000 0.010 0.010 A_MACRO.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_MACRO.py:5(MACRO)
- 1 0.010 0.010 0.010 0.010 A_MACRO_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_MACRO_ETAPE.py:6(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 A_MCBLOC.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_MCBLOC.py:5(MCBLOC)
- 3 0.000 0.000 0.010 0.003 A_MCBLOC.py:6(__init__)
- 1 0.000 0.000 0.000 0.000 A_MCFACT.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_MCFACT.py:4(MCFACT)
- 5/1 0.000 0.000 0.030 0.030 A_MCFACT.py:5(__init__)
- 1 0.000 0.000 0.000 0.000 A_MCLIST.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_MCLIST.py:4(MCList)
- 1 0.000 0.000 0.000 0.000 A_MCLIST.py:5(__init__)
- 1 0.010 0.010 0.010 0.010 A_MCSIMP.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_MCSIMP.py:4(MCSIMP)
- 8 0.000 0.000 0.000 0.000 A_MCSIMP.py:5(__init__)
- 1 0.000 0.000 0.030 0.030 A_OPER.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_OPER.py:5(OPER)
- 1 0.000 0.000 0.000 0.000 A_PRESENT_ABSENT.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_PRESENT_ABSENT.py:4(PRESENT_ABSENT)
- 1 0.000 0.000 0.000 0.000 A_PRESENT_PRESENT.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_PRESENT_PRESENT.py:4(PRESENT_PRESENT)
- 1 0.000 0.000 0.000 0.000 A_PROC.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_PROC.py:5(PROC)
- 1 0.000 0.000 0.000 0.000 A_PROC_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_PROC_ETAPE.py:6(PROC_ETAPE)
- 1 0.000 0.000 0.010 0.010 A_SIMP.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_SIMP.py:4(SIMP)
- 1 0.000 0.000 0.000 0.000 A_UN_PARMI.py:1(?)
- 1 0.000 0.000 0.000 0.000 A_UN_PARMI.py:4(UN_PARMI)
- 1 0.000 0.000 0.000 0.000 B_CODE.py:4(?)
- 1 0.000 0.000 0.000 0.000 B_CODE.py:7(CODE)
- 1 0.000 0.000 0.000 0.000 B_ENTITE.py:3(?)
- 1 0.000 0.000 0.000 0.000 B_ENTITE.py:9(ENTITE)
- 1 0.000 0.000 0.000 0.000 B_ETAPE.py:18(ETAPE)
- 1 0.010 0.010 0.010 0.010 B_ETAPE.py:2(?)
- 1 0.000 0.000 0.000 0.000 B_EVAL.py:2(?)
- 1 0.000 0.000 0.000 0.000 B_EVAL.py:7(EVAL)
- 1 0.000 0.000 0.000 0.000 B_JDC.py:2(?)
- 1 0.000 0.000 0.000 0.000 B_JDC.py:9(JDC)
- 1 0.000 0.000 0.000 0.000 B_MACRO_ETAPE.py:2(?)
- 1 0.000 0.000 0.000 0.000 B_MACRO_ETAPE.py:48(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 B_OBJECT.py:12(OBJECT)
- 1 0.000 0.000 0.000 0.000 B_OBJECT.py:2(?)
- 1 0.000 0.000 0.000 0.000 B_PROC_ETAPE.py:2(?)
- 1 0.000 0.000 0.000 0.000 B_PROC_ETAPE.py:8(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 E_ETAPE.py:11(ETAPE)
- 1 0.000 0.000 0.000 0.000 E_ETAPE.py:2(?)
- 1 0.000 0.000 0.000 0.000 E_JDC.py:2(?)
- 1 0.000 0.000 0.000 0.000 E_JDC.py:7(JDC)
- 1 0.000 0.000 0.000 0.000 E_MACRO_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 E_MACRO_ETAPE.py:2(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 E_PROC_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 E_PROC_ETAPE.py:2(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 N_ASSD.py:3(?)
- 1 0.000 0.000 0.000 0.000 N_ASSD.py:6(ASSD)
- 1 0.000 0.000 0.000 0.000 N_ASSD.py:74(assd)
- 1 0.000 0.000 0.000 0.000 N_BLOC.py:13(BLOC)
- 1 0.000 0.000 0.000 0.000 N_BLOC.py:29(__init__)
- 1 0.000 0.000 0.000 0.000 N_BLOC.py:4(?)
- 3 0.000 0.000 0.010 0.003 N_BLOC.py:63(__call__)
- 1 0.000 0.000 0.000 0.000 N_BLOC.py:70(verif_cata)
- 3 0.000 0.000 0.000 0.000 N_BLOC.py:90(verif_presence)
- 1 0.000 0.000 0.000 0.000 N_CO.py:1(?)
- 1 0.000 0.000 0.000 0.000 N_CO.py:3(CO)
- 29 0.000 0.000 0.000 0.000 N_CR.py:10(__init__)
- 1 0.000 0.000 0.000 0.000 N_CR.py:2(?)
- 27 0.000 0.000 0.000 0.000 N_CR.py:44(add)
- 29/2 0.010 0.000 0.010 0.005 N_CR.py:48(estvide)
- 1 0.000 0.000 0.000 0.000 N_CR.py:6(CR)
- 9 0.000 0.000 0.000 0.000 N_ENTITE.py:15(__init__)
- 5 0.000 0.000 0.000 0.000 N_ENTITE.py:27(affecter_parente)
- 1 0.000 0.000 0.000 0.000 N_ENTITE.py:3(?)
- 14/1 0.000 0.000 0.000 0.000 N_ENTITE.py:49(report)
- 5 0.000 0.000 0.000 0.000 N_ENTITE.py:68(verif_cata_regles)
- 1 0.000 0.000 0.000 0.000 N_ENTITE.py:7(ENTITE)
- 1 0.000 0.000 0.000 0.000 N_ETAPE.py:17(ETAPE)
- 1 0.000 0.000 0.000 0.000 N_ETAPE.py:4(?)
- 1 0.000 0.000 0.000 0.000 N_EVAL.py:2(?)
- 1 0.000 0.000 0.000 0.000 N_EVAL.py:4(EVAL)
- 1 0.000 0.000 0.000 0.000 N_Exception.py:3(?)
- 1 0.000 0.000 0.000 0.000 N_Exception.py:8(AsException)
- 4 0.000 0.000 0.000 0.000 N_FACT.py:109(verif_cata)
- 1 0.000 0.000 0.000 0.000 N_FACT.py:11(FACT)
- 4 0.000 0.000 0.000 0.000 N_FACT.py:29(__init__)
- 1 0.000 0.000 0.010 0.010 N_FACT.py:3(?)
- 4/1 0.000 0.000 0.030 0.030 N_FACT.py:69(__call__)
- 1 0.000 0.000 0.000 0.000 N_FONCTION.py:1(?)
- 1 0.000 0.000 0.000 0.000 N_FONCTION.py:3(FONCTION)
- 1 0.000 0.000 0.000 0.000 N_FONCTION.py:5(fonction)
- 1 0.000 0.000 0.000 0.000 N_FORM.py:1(?)
- 1 0.000 0.000 0.000 0.000 N_FORM.py:4(FORM)
- 1 0.000 0.000 0.000 0.000 N_FORM_ETAPE.py:1(?)
- 1 0.000 0.000 0.000 0.000 N_FORM_ETAPE.py:3(FORM_ETAPE)
- 1 0.000 0.000 0.000 0.000 N_GEOM.py:3(?)
- 1 0.000 0.000 0.000 0.000 N_GEOM.py:45(geom)
- 1 0.000 0.000 0.000 0.000 N_GEOM.py:6(GEOM)
- 1 0.000 0.000 0.000 0.000 N_JDC.py:15(JDC)
- 1 0.000 0.000 0.000 0.000 N_JDC.py:3(?)
- 1 0.000 0.000 0.000 0.000 N_JDC_CATA.py:11(JDC_CATA)
- 1 0.010 0.010 0.010 0.010 N_JDC_CATA.py:4(?)
- 1 0.000 0.000 0.000 0.000 N_MACRO.py:12(MACRO)
- 1 0.000 0.000 0.000 0.000 N_MACRO.py:4(?)
- 1 0.000 0.000 0.000 0.000 N_MACRO_ETAPE.py:17(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 N_MACRO_ETAPE.py:4(?)
- 1 0.000 0.000 0.000 0.000 N_MCBLOC.py:11(MCBLOC)
- 3 0.010 0.003 0.010 0.003 N_MCBLOC.py:18(__init__)
- 1 0.000 0.000 0.000 0.000 N_MCBLOC.py:5(?)
- 1 0.000 0.000 0.000 0.000 N_MCBLOC.py:51(get_valeur)
- 1 0.000 0.000 0.000 0.000 N_MCCOMPO.py:10(MCCOMPO)
- 8/1 0.000 0.000 0.030 0.030 N_MCCOMPO.py:16(build_mc)
- 11 0.000 0.000 0.000 0.000 N_MCCOMPO.py:165(recherche_mc_globaux)
- 8/3 0.000 0.000 0.010 0.003 N_MCCOMPO.py:195(supprime)
- 1 0.000 0.000 0.000 0.000 N_MCCOMPO.py:4(?)
- 8 0.000 0.000 0.000 0.000 N_MCCOMPO.py:81(ordonne_liste)
- 11/7 0.010 0.001 0.010 0.001 N_MCCOMPO.py:93(cree_dict_valeurs)
- 5/1 0.000 0.000 0.030 0.030 N_MCFACT.py:13(__init__)
- 5 0.000 0.000 0.000 0.000 N_MCFACT.py:37(GETVAL)
- 4 0.000 0.000 0.000 0.000 N_MCFACT.py:47(get_valeur)
- 1 0.010 0.010 0.010 0.010 N_MCFACT.py:5(?)
- 1 0.000 0.000 0.000 0.000 N_MCFACT.py:9(MCFACT)
- 1 0.010 0.010 0.010 0.010 N_MCLIST.py:15(init)
- 2 0.000 0.000 0.000 0.000 N_MCLIST.py:29(get_valeur)
- 1 0.000 0.000 0.010 0.010 N_MCLIST.py:44(supprime)
- 1 0.000 0.000 0.000 0.000 N_MCLIST.py:5(?)
- 1 0.000 0.000 0.000 0.000 N_MCLIST.py:9(MCList)
- 8 0.000 0.000 0.000 0.000 N_MCSIMP.py:13(__init__)
- 8 0.000 0.000 0.000 0.000 N_MCSIMP.py:45(GETVAL)
- 1 0.000 0.000 0.000 0.000 N_MCSIMP.py:5(?)
- 10 0.000 0.000 0.000 0.000 N_MCSIMP.py:55(get_valeur)
- 1 0.000 0.000 0.000 0.000 N_MCSIMP.py:9(MCSIMP)
- 16/11 0.000 0.000 0.000 0.000 N_OBJECT.py:17(get_etape)
- 16 0.010 0.001 0.010 0.001 N_OBJECT.py:27(supprime)
- 1 0.000 0.000 0.000 0.000 N_OBJECT.py:4(?)
- 1 0.000 0.000 0.000 0.000 N_OBJECT.py:6(OBJECT)
- 1 0.010 0.010 0.010 0.010 N_OPER.py:12(OPER)
- 1 0.000 0.000 0.020 0.020 N_OPER.py:4(?)
- 1 0.000 0.000 0.000 0.000 N_PROC.py:11(PROC)
- 1 0.000 0.000 0.000 0.000 N_PROC.py:4(?)
- 1 0.000 0.000 0.000 0.000 N_PROC_ETAPE.py:15(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 N_PROC_ETAPE.py:4(?)
- 1 0.000 0.000 0.000 0.000 N_REGLE.py:18(?)
- 1 0.000 0.000 0.000 0.000 N_REGLE.py:22(REGLE)
- 1 0.000 0.000 0.000 0.000 N_REGLE.py:23(__init__)
- 1 0.000 0.000 0.000 0.000 N_REGLE.py:42(liste_to_dico)
- 1 0.000 0.000 0.000 0.000 N_SIMP.py:10(SIMP)
- 8 0.000 0.000 0.000 0.000 N_SIMP.py:104(__call__)
- 9 0.000 0.000 0.000 0.000 N_SIMP.py:26(__init__)
- 1 0.000 0.000 0.010 0.010 N_SIMP.py:3(?)
- 9 0.000 0.000 0.000 0.000 N_SIMP.py:78(verif_cata)
- 1 0.000 0.000 0.000 0.000 N__F.py:1(?)
- 1 0.000 0.000 0.000 0.000 N__F.py:3(_F)
- 1 0.000 0.000 0.000 0.000 UserList.py:1(?)
- 1 0.000 0.000 0.000 0.000 UserList.py:17(__eq__)
- 1 0.000 0.000 0.000 0.000 UserList.py:21(__cast)
- 1 0.000 0.000 0.000 0.000 UserList.py:3(UserList)
- 1 0.000 0.000 0.000 0.000 UserList.py:4(__init__)
- 2 0.000 0.000 0.000 0.000 UserList.py:73(append)
- 1 0.000 0.000 0.000 0.000 V_AU_MOINS_UN.py:11(verif)
- 1 0.000 0.000 0.000 0.000 V_AU_MOINS_UN.py:2(?)
- 1 0.000 0.000 0.000 0.000 V_AU_MOINS_UN.py:2(AU_MOINS_UN)
- 1 0.000 0.000 0.000 0.000 V_A_CLASSER.py:2(?)
- 1 0.000 0.000 0.000 0.000 V_A_CLASSER.py:4(A_CLASSER)
- 1 0.000 0.000 0.000 0.000 V_ENSEMBLE.py:2(?)
- 1 0.000 0.000 0.000 0.000 V_ENSEMBLE.py:2(ENSEMBLE)
- 1 0.000 0.000 0.000 0.000 V_ETAPE.py:18(ETAPE)
- 1 0.000 0.000 0.000 0.000 V_ETAPE.py:8(?)
- 1 0.000 0.000 0.000 0.000 V_EXCLUS.py:2(?)
- 1 0.000 0.000 0.000 0.000 V_EXCLUS.py:2(EXCLUS)
- 1 0.000 0.000 0.000 0.000 V_JDC.py:17(JDC)
- 1 0.000 0.000 0.000 0.000 V_JDC.py:8(?)
- 1 0.000 0.000 0.000 0.000 V_MACRO_ETAPE.py:19(MACRO_ETAPE)
- 1 0.000 0.000 0.000 0.000 V_MACRO_ETAPE.py:8(?)
- 1 0.000 0.000 0.000 0.000 V_MCBLOC.py:15(MCBLOC)
- 2 0.000 0.000 0.000 0.000 V_MCBLOC.py:24(isvalid)
- 1 0.000 0.000 0.000 0.000 V_MCBLOC.py:8(?)
- 1 0.000 0.000 0.000 0.000 V_MCCOMPO.py:13(MCCOMPO)
- 8 0.000 0.000 0.000 0.000 V_MCCOMPO.py:21(__init__)
- 6/1 0.010 0.002 0.010 0.010 V_MCCOMPO.py:32(report)
- 1 0.000 0.000 0.000 0.000 V_MCCOMPO.py:4(?)
- 11 0.000 0.000 0.000 0.000 V_MCCOMPO.py:49(verif_regles)
- 11 0.000 0.000 0.000 0.000 V_MCCOMPO.py:73(dict_mc_presents)
- 1 0.000 0.000 0.000 0.000 V_MCFACT.py:15(MCFACT)
- 11/7 0.000 0.000 0.000 0.000 V_MCFACT.py:24(isvalid)
- 1 0.000 0.000 0.000 0.000 V_MCFACT.py:8(?)
- 1 0.000 0.000 0.000 0.000 V_MCLIST.py:17(MCList)
- 2 0.000 0.000 0.000 0.000 V_MCLIST.py:29(isvalid)
- 1 0.000 0.000 0.000 0.000 V_MCLIST.py:51(report)
- 1 0.000 0.000 0.000 0.000 V_MCLIST.py:8(?)
- 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:107(verif_type)
- 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:155(verif_into)
- 1 0.000 0.000 0.000 0.000 V_MCSIMP.py:17(MCSIMP)
- 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:257(is_entier)
- 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:314(compare_type)
- 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:357(isinintervalle)
- 8 0.000 0.000 0.000 0.000 V_MCSIMP.py:38(__init__)
- 8 0.000 0.000 0.000 0.000 V_MCSIMP.py:385(report)
- 23 0.000 0.000 0.000 0.000 V_MCSIMP.py:41(isvalid)
- 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:77(isoblig)
- 1 0.000 0.000 0.000 0.000 V_MCSIMP.py:8(?)
- 16 0.000 0.000 0.000 0.000 V_MCSIMP.py:82(verif_card)
- 1 0.000 0.000 0.000 0.000 V_PRESENT_ABSENT.py:2(?)
- 1 0.000 0.000 0.000 0.000 V_PRESENT_ABSENT.py:2(PRESENT_ABSENT)
- 1 0.000 0.000 0.000 0.000 V_PRESENT_PRESENT.py:2(?)
- 1 0.000 0.000 0.000 0.000 V_PRESENT_PRESENT.py:2(PRESENT_PRESENT)
- 1 0.000 0.000 0.000 0.000 V_PROC_ETAPE.py:17(PROC_ETAPE)
- 1 0.000 0.000 0.000 0.000 V_PROC_ETAPE.py:8(?)
- 1 0.000 0.000 0.000 0.000 V_UN_PARMI.py:2(?)
- 1 0.000 0.000 0.000 0.000 V_UN_PARMI.py:2(UN_PARMI)
- 2 0.000 0.000 0.000 0.000 __init__.py:0(?)
- 1 0.000 0.000 0.020 0.020 __init__.py:10(?)
- 1 0.000 0.000 0.100 0.100 __init__.py:11(?)
- 1 0.000 0.000 0.000 0.000 __init__.py:6(?)
- 1 0.000 0.000 0.000 0.000 codex.py:3(?)
- 1 0.000 0.000 0.000 0.000 context.py:1(?)
- 2 0.000 0.000 0.000 0.000 copy_reg.py:14(pickle)
- 2 0.000 0.000 0.000 0.000 copy_reg.py:25(constructor)
- 1 0.000 0.000 0.000 0.000 copy_reg.py:5(?)
- 1 0.000 0.000 0.000 0.000 genpy.py:12(?)
- 1 0.000 0.000 0.000 0.000 genpy.py:19(genpy)
- 1 0.000 0.000 0.000 0.000 linecache.py:6(?)
- 1 0.000 0.000 0.160 0.160 main.py:11(main)
- 1 0.000 0.000 0.010 0.010 nommage.py:14(?)
- 1 0.010 0.010 0.170 0.170 profile:0(main())
- 0 0.000 0.000 profile:0(profiler)
- 1 0.000 0.000 0.010 0.010 re.py:23(?)
- 1 0.000 0.000 0.000 0.000 repr.py:1(?)
- 1 0.000 0.000 0.000 0.000 repr.py:5(Repr)
- 1 0.000 0.000 0.000 0.000 repr.py:6(__init__)
- 1 0.000 0.000 0.000 0.000 sre.py:125(_compile)
- 1 0.000 0.000 0.010 0.010 sre.py:17(?)
- 1 0.000 0.000 0.000 0.000 sre.py:228(Scanner)
- 1 0.010 0.010 0.010 0.010 sre_compile.py:11(?)
- 1 0.000 0.000 0.000 0.000 sre_compile.py:19(_compile)
- 1 0.000 0.000 0.000 0.000 sre_compile.py:234(_compile_info)
- 1 0.000 0.000 0.000 0.000 sre_compile.py:343(_code)
- 1 0.000 0.000 0.000 0.000 sre_compile.py:358(compile)
- 1 0.000 0.000 0.000 0.000 sre_constants.py:14(?)
- 3 0.000 0.000 0.000 0.000 sre_constants.py:141(makedict)
- 1 0.000 0.000 0.000 0.000 sre_constants.py:23(error)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:14(?)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:141(getwidth)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:176(Tokenizer)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:177(__init__)
- 3 0.000 0.000 0.000 0.000 sre_parse.py:181(__next)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:194(match)
- 2 0.000 0.000 0.000 0.000 sre_parse.py:200(get)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:307(_parse_sub)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:362(_parse)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:607(parse)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:71(Pattern)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:73(__init__)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:90(SubPattern)
- 1 0.000 0.000 0.000 0.000 sre_parse.py:92(__init__)
- 1 0.000 0.000 0.000 0.000 string.py:20(?)
- 1 0.000 0.000 0.000 0.000 traceback.py:1(?)
- 1 0.000 0.000 0.000 0.000 types.py:35(_C)
- 1 0.010 0.010 0.010 0.010 types.py:4(?)
- 2 0.000 0.000 0.000 0.000 utils.py:2(?)
- 1 0.000 0.000 0.000 0.000 utils.py:3(?)
-
-
-*************************************************
-* Trié par fichier seulement methodes __init__ *
-*************************************************
- 750 function calls (669 primitive calls) in 0.170 CPU seconds
-
- Ordered by: file name
- List reduced from 288 to 25 due to restriction <'__init__'>
-
- ncalls tottime percall cumtime percall filename:lineno(function)
- 1 0.000 0.000 0.000 0.000 ../../../Noyau/N_BLOC.py:29(__init__)
- 9 0.000 0.000 0.000 0.000 ../../../Noyau/N_ENTITE.py:15(__init__)
- 4 0.000 0.000 0.000 0.000 ../../../Noyau/N_FACT.py:29(__init__)
- 3 0.010 0.003 0.010 0.003 ../../../Noyau/N_MCBLOC.py:18(__init__)
- 5/1 0.000 0.000 0.030 0.030 ../../../Noyau/N_MCFACT.py:13(__init__)
- 8 0.000 0.000 0.000 0.000 ../../../Noyau/N_MCSIMP.py:13(__init__)
- 8 0.000 0.000 0.000 0.000 ../../../Validation/V_MCCOMPO.py:21(__init__)
- 3 0.000 0.000 0.010 0.003 ../../Accas/A_MCBLOC.py:6(__init__)
- 5/1 0.000 0.000 0.030 0.030 ../../Accas/A_MCFACT.py:5(__init__)
- 1 0.000 0.000 0.000 0.000 ../../Accas/A_MCLIST.py:5(__init__)
- 8 0.000 0.000 0.000 0.000 ../../Accas/A_MCSIMP.py:5(__init__)
- 1 0.000 0.000 0.100 0.100 ../../Accas/__init__.py:11(?)
- 1 0.000 0.000 0.000 0.000 ../../Build/__init__.py:0(?)
- 1 0.000 0.000 0.000 0.000 ../../Execution/__init__.py:0(?)
- 29 0.000 0.000 0.000 0.000 ../../Noyau/N_CR.py:10(__init__)
- 1 0.000 0.000 0.000 0.000 ../../Noyau/N_REGLE.py:23(__init__)
- 9 0.000 0.000 0.000 0.000 ../../Noyau/N_SIMP.py:26(__init__)
- 1 0.000 0.000 0.020 0.020 ../../Noyau/__init__.py:10(?)
- 8 0.000 0.000 0.000 0.000 ../../Validation/V_MCSIMP.py:38(__init__)
- 1 0.000 0.000 0.000 0.000 ../../Validation/__init__.py:6(?)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/UserList.py:4(__init__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/repr.py:6(__init__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:73(__init__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:177(__init__)
- 1 0.000 0.000 0.000 0.000 /home01/chris/pkg/python2.1/lib/python2.1/sre_parse.py:92(__init__)
-
-
+++ /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.
-#
-#
-# ======================================================================
+++ /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,traceback,string
-
-from Noyau.N_CR import CR
-from Noyau.N_Exception import AsException
-
-class COMMANDE_COMM:
- """
- Cette classe sert à définir les objets de type Commande commentarisée
- """
- nature = "COMMANDE_COMMENTARISEE"
- idracine='_comm'
-
- def __init__(self,texte='',parent=None,reg='oui'):
- self.valeur = texte
- if not parent :
- self.jdc = self.parent = CONTEXT.get_current_step()
- else:
- self.jdc = self.parent = parent
- if hasattr(self.parent,'etape'):
- self.etape = self.parent.etape
- else :
- self.etape = None
- 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()
-
- def isvalid(self):
- return 1
-
- def report(self):
- """
- Génère l'objet rapport (classe CR)
- """
- self.cr=CR()
- if not self.isvalid(): self.cr.warn("Objet commande commentarisé invalide")
- return self.cr
-
- def copy(self):
- """
- Retourne une copie de self cad un objet COMMANDE_COMM
- """
- # XXX self.texte ne semble pas exister ???
- return COMMANDE_COMM(self.texte,parent = self.parent,reg='non')
-
- def init_modif(self):
- self.state = 'modified'
- self.parent.init_modif()
-
- def set_valeur(self,new_valeur):
- """
- Remplace la valeur de self(si elle existe) par new_valeur)
- """
- self.valeur = new_valeur
- self.init_modif()
-
- def get_valeur(self) :
- """
- Retourne la valeur de self, cad le texte de la commande commentarisée
- """
- return self.valeur
-
- def register(self):
- """
- Enregistre la commande commenatrisée dans la liste des étapes de son parent lorsque celui-ci
- est un JDC
- """
- self.parent.register(self)
-
- def isoblig(self):
- """
- Indique si self est obligatoire ou non : retourne toujours 0
- """
- return 0
-
- def ident(self):
- """
- Retourne le nom interne associé à self
- Ce nom n'est jamais vu par l'utilisateur dans EFICAS
- """
- return self.nom
-
- def isrepetable(self):
- """
- Indique si self est répétable ou non : retourne toujours 1
- """
- return 1
-
- def get_attribut(self,nom_attribut) :
- """
- Retourne l'attribut de nom nom_attribut de self (ou hérité)
- """
- if hasattr(self,nom_attribut) :
- return getattr(self,nom_attribut)
- else :
- return None
-
- def get_fr(self):
- """
- Retourne l'attribut fr de self.definition
- """
- try :
- return getattr(self.definition,'fr')
- except:
- return ''
-
- def liste_mc_presents(self):
- return []
-
- def supprime(self):
- """
- Méthode qui supprime toutes les boucles de références afin que l'objet puisse
- être correctement détruit par le garbage collector
- """
- self.parent = None
- self.etape = None
- self.jdc = None
- self.niveau = None
- self.definition = None
- self.valeur = None
- self.val = None
- self.appel = None
-
- def supprime_sdprods(self):
- pass
-
- def update_context(self,d):
- """
- Update le dictionnaire d avec les concepts ou objets produits par self
- --> ne fait rien pour une commande en commentaire
- """
- pass
-
- def delete_concept(self,sd):
- pass
-
- def get_sdprods(self,nom_sd):
- return None
-
- def uncomment(self):
- """
- Cette méthode a pour but de décommentariser l'objet courant,
- cad de retourner un tuple contenant :
- - l'objet CMD associé
- - le nom de la sdprod éventuellement produite (sinon None)
- """
- # on récupère le contexte avant la commande commentarisée
- context_ini = self.jdc.get_contexte_avant(self)
- try:
- # on essaie de créer un objet JDC...
- CONTEXT.unset_current_step()
- J=self.jdc.__class__(procedure=self.valeur,
- definition=self.jdc.definition,
- cata=self.jdc.cata,
- cata_ord_dico=self.jdc.cata_ordonne_dico,
- context_ini = context_ini,
- )
- J.analyse()
- except Exception,e:
- traceback.print_exc()
- #self.jdc.set_context()
- raise AsException("Erreur",str(e))
- if len(J.cr.crfatal)>0 :
- # des erreurs fatales ont été rencontrées
- #self.jdc.set_context()
- print 'erreurs fatales !!!'
- raise AsException("Erreurs fatales",string.join(J.cr.crfatal))
- #self.jdc.set_context()
- new_etape = J.etapes[0]
- if new_etape.sd :
- nom_sd = new_etape.sd.nom
- else:
- nom_sd = None
- return (new_etape.copy(),nom_sd)
-
- def active(self):
- """
- Rend l'etape courante active
- """
- self.actif = 1
-
- def inactive(self):
- """
- Rend l'etape courante inactive
- """
- self.actif = 0
-
- def isactif(self):
- """
- Booléenne qui retourne 1 si self est valide, 0 sinon
- """
- return self.actif
-
- def verif_condition_bloc(self):
- """
- Evalue les conditions de tous les blocs fils possibles
- (en fonction du catalogue donc de la définition) de self et
- retourne deux listes :
- - la première contient les noms des blocs à rajouter
- - la seconde contient les noms des blocs à supprimer
- """
- return [],[]
-
- def verif_condition_regles(self,liste_presents):
- """
- Retourne la liste des mots-clés à rajouter pour satisfaire les règles
- en fonction de la liste des mots-clés présents
- """
- 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
+++ /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 COMMENTAIRE qui sert dans EFICAS
- pour gérer les commentaires dans un JDC
-"""
-
-from Noyau.N_CR import CR
-
-class COMMENTAIRE :
- """
- Cette classe permet de créer des objets de type COMMENTAIRE
- """
- nature = 'COMMENTAIRE'
- idracine = '_comm'
-
- def __init__(self,valeur,parent=None):
- # parent est un objet de type OBJECT (ETAPE ou MC ou JDC...)
- self.valeur=valeur
- if not parent :
- self.jdc = self.parent = CONTEXT.get_current_step()
- else:
- self.jdc = self.parent = parent
- # La classe COMMENTAIRE n'a pas de définition. On utilise self
- # pour complétude
- self.definition=self
- self.nom=''
- self.niveau = self.parent.niveau
- self.actif=1
- self.state="unchanged"
- self.register()
-
- def register(self):
- """
- Enregistre le commentaire dans la liste des étapes de son parent
- lorsque celui-ci est un JDC
- """
- if self.parent.nature == 'JDC':
- # le commentaire est entre deux commandes:
- # il faut l'enregistrer dans la liste des étapes
- self.parent.register(self)
-
- def isvalid(self):
- """
- Retourne 1 si self est valide, 0 sinon
- Retourne toujours 1 car un commentaire est toujours valide
- """
- return 1
-
- def isoblig(self):
- """ Indique si self est obligatoire ou non : retourne toujours 0 """
- return 0
-
- def isrepetable(self):
- """ Indique si self est répétable ou non : retourne toujours 1 """
- return 1
-
- def active(self):
- """
- Rend l'etape courante active
- """
- self.actif = 1
-
- def inactive(self):
- """
- Rend l'etape courante inactive
- NB : un commentaire est toujours actif !
- """
- self.actif = 1
-
- def isactif(self):
- """
- Booléenne qui retourne 1 si self est valide, 0 sinon
- """
- return self.actif
-
- def supprime(self):
- """
- Méthode qui supprime toutes les boucles de références afin que
- l'objet puisse être correctement détruit par le garbage collector
- """
- self.parent=None
- self.jdc=None
- self.definition = None
- self.niveau = None
-
- def liste_mc_presents(self):
- return []
-
- def get_valeur(self) :
- """ Retourne la valeur de self, cad le contenu du commentaire """
- try :
- return self.valeur
- except:
- return None
-
- def set_valeur(self,new_valeur):
- """
- Remplace la valeur de self(si elle existe) par new_valeur
- """
- self.valeur = new_valeur
- self.init_modif()
-
- def init_modif(self):
- self.state = 'modified'
- if self.parent:
- self.parent.init_modif()
-
- def supprime_sdprods(self):
- pass
-
- def update_context(self,d):
- """
- Update le dictionnaire d avec les concepts ou objets produits par self
- --> ne fait rien pour un commentaire
- """
- pass
-
- def report(self):
- """ Génère l'objet rapport (classe CR) """
- self.cr=CR()
- if not self.isvalid(): self.cr.warn("Objet commentaire non valorisé")
- return self.cr
-
- def ident(self):
- """ Retourne le nom interne associé à self
- Ce nom n'est jamais vu par l'utilisateur dans EFICAS
- """
- return self.nom
-
- def delete_concept(self,sd):
- pass
-
- def verif_condition_bloc(self):
- """
- Evalue les conditions de tous les blocs fils possibles
- (en fonction du catalogue donc de la définition) de self et
- retourne deux listes :
- - la première contient les noms des blocs à rajouter
- - la seconde contient les noms des blocs à supprimer
- """
- return [],[]
-
- def verif_condition_regles(self,liste_presents):
- """
- Retourne la liste des mots-clés à rajouter pour satisfaire les règles
- en fonction de la liste des mots-clés présents
- """
- 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
-
+++ /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 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):
-
- def __init__(self,niveau,parent):
- self.parent = parent
- self.jdc = self.parent.get_jdc_root()
- self.niveau = self
- self.definition = niveau
- self.etapes=[]
- self.etapes_niveaux = []
- self.dict_niveaux={}
- self.editmode = 0
- self.state="undetermined"
- self.build_niveaux()
-
- def build_niveaux(self):
- for niveau in self.definition.l_niveaux:
- etape_niveau = ETAPE_NIVEAU(niveau,self)
- self.etapes_niveaux.append(etape_niveau)
- self.dict_niveaux[niveau.nom]=etape_niveau
-
- def register(self,etape):
- """
- Enregistre la commande étape :
- - si editmode = 0 : on est en mode relecture d'un fichier de commandes
- auquel cas on ajoute etape à la fin de la liste self.etapes
- - si editmode = 1 : on est en mode ajout d'étape depuis eficas auquel cas
- cette méthode ne fait rien, c'est addentité qui enregistre etape
- à la bonne place dans self.etapes
- """
- if self.editmode : return
- self.etapes.append(etape)
-
- def unregister(self,etape):
- """
- Desenregistre l'etape du niveau
- """
- self.etapes.remove(etape)
-
- def ident(self):
- return self.definition.label
-
- def isactif(self):
- #print 'Niveau : ',self.definition.nom
- #print '\tactif =',self.definition.actif
- if self.definition.actif == 1 :
- return 1
- else :
- # self.actif est une condition à évaluer dans un certain contexte ...
- d = self.cree_dict_valeurs()
- try:
- t=eval(self.definition.actif,d)
- return t
- except:
- traceback.print_exc()
- return 0
-
- def cree_dict_valeurs(self):
- """
- Retourne le dictionnaire des frères aînés de self composé des couples :
- {nom_frère isvalid()}
- """
- d={}
- for niveau in self.parent.etapes_niveaux:
- if niveau is self : break
- d[niveau.definition.nom]=niveau.isvalid()
- return d
-
- def isvalid(self):
- """ Méthode booléenne qui retourne 0 si le niveau est invalide, 1 sinon """
- if self.etapes_niveaux == []:
- if len(self.etapes) == 0:
- return self.definition.valide_vide
- else:
- for etape in self.etapes :
- if not etape.isvalid() : return 0
- return 1
- else:
- for etape_niveau in self.etapes_niveaux :
- if not etape_niveau.isvalid() : return 0
- return 1
-
- def accept(self,visitor):
- visitor.visitETAPE_NIVEAU(self)
-
- def addentite(self,name,pos_rel):
- self.editmode = 1
- try :
- pos_abs=self.jdc.get_nb_etapes_avant(self)+pos_rel
- cmd = self.jdc.addentite(name,pos_abs)
- self.etapes.insert(pos_rel,cmd)
- self.editmode = 0
- return cmd
- except:
- traceback.print_exc()
- self.editmode = 0
- return None
-
- def suppentite(self,etape) :
- """ Classe ETAPE_NIVEAU
- Supprime une étape
- """
- 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 ''
-
+++ /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 string,re,sys,exceptions,types
-
-from Noyau.N_CR import CR
-
-def group(*choices): return '(' + string.join(choices, '|') + ')'
-def any(*choices): return apply(group, choices) + '*'
-def maybe(*choices): return apply(group, choices) + '?'
-
-Intnumber = r'[1-9]\d*'
-Exponent = r'[eEdD][-+]?\d+'
-Pointfloat = group(r'\d+\.\d*', r'\.\d+') + maybe(Exponent)
-Expfloat = r'[1-9]\d*' + Exponent
-Floatnumber = group(Pointfloat, Expfloat)
-
-pat_number = re.compile(r'^([+-]?)([0-9]+)(\.\d*)?(.*)')
-pat_number_complet = re.compile(r'^([+-]?)([0-9]+)(\.\d*)?([eEdD][+-]?\d+)(.*)')
-pat_constante = re.compile(r'^([+-]?)([a-zA-Z][a-zA-Z_0-9]*\s*)(.*)')
-
-def cmp_function(arg1,arg2):
- """
- Fonction de comparaison permettant de classer les listes de
- fonctions unaires et binaires selon la longueur de leurs arguments
- On classe les arguments les plus longs en premier
- """
- if len(arg1) > len(arg2):
- return -1
- elif len(arg1) == len(arg2):
- return 0
- else:
- return 1
-
-class InterpreteurException(exceptions.Exception):
- """
- Classe servant à définir les exceptions levées par l'interpréteur de formule
- """
- def __init__(self,args=None):
- self.args = args
-
- def __str__(self):
- return self.args
-
-class Interpreteur_Formule:
- """
- Cette classe sert à construire un interpréteur de formules Aster
- """
- l_fonctions_binaires = ['+','-','*','/','**','=','MOD','MIN','MAX','ATAN2']
- l_fonctions_unaires = ['+','-','INT','REAL','AIMAG','ABS','SQRT','EXP','LOG',
- 'LOG10','SIN','COS','TAN','ASIN','ACOS','ATAN','SINH',
- 'COSH','TANH','HEAVYSID']
- l_constantes = ['PI','RD_RG','DG_RD']
-
- def __init__(self,formule=None,constantes=[],fonctions=[],parent=None):
- """
- Constructeur d'interpréteurs de formule Aster
- - formule = tuple (nom,type,arguments,corps)
- - constantes = liste des noms de constantes externes
- - fonctions_unaires = dictionnaire {nom_fonction externe : nb arguments de cette fonction}
- """
- self.new_constantes = constantes
- self.new_fonctions_unaires = fonctions
- self.cr = CR()
- self.l_operateurs = []
- self.parent = parent
- self.l_children = []
- if formule :
- self.set_formule(formule)
- if self.parent :
- self.parent.enregistre(self)
-
- def set_formule(self,formule):
- """
- Stocke formule (tuple) dans l'attribut t_formule
- Méthode externe
- """
- if type(formule) != types.TupleType:
- raise InterpreteurException,"La formule passée à l'interpréteur doit être sous forme de tuple"
- self.t_formule = formule
- self.init_cr()
- self.modify_listes()
- self.ordonne_listes()
-
- def init_cr(self):
- """
- Initialise le cr,cad valorise les chaînes debut et fin
- """
- nom = self.t_formule[0]
- if nom :
- if nom[0] in ('+','-') : nom = nom[1:]
- self.cr.debut = "Début Fonction %s" %nom
- self.cr.fin = "Fin Fonction %s" %nom
-
- def str(self):
- """
- Retourne une liste de chaînes de caractères représentant la formule
- """
- l_txt = []
- l_txt.append(self.t_formule[0])
- for oper in self.l_operateurs:
- # oper est ici une liste décrivant oper
- txt = []
- for elem in oper:
- txt.append(str(elem))
- l_txt.append(txt)
- return l_txt
-
- def report(self,decalage=1):
- """
- Retourne le rapport de FORMULE
- """
- txt = self.cr.report()
- return txt
-
- def enregistre(self,fils):
- """
- Enregistre un opérateur fils dans la liste des children
- """
- self.l_children.append(fils)
- self.cr.add(fils.cr)
-
- def isvalid(self):
- """
- Booléenne qui retourne 1 si la formule est valide, 0 sinon
- Méthode externe
- """
- self.l_operateurs = []
- self.cr.purge() # on vide le cr
- self.init_cr() # on initialise le cr
- self.interprete_formule()
- return self.cr.estvide()
-
- def interprete_formule(self):
- """
- Réalise l'interprétation du corps de la formule
- """
- texte = self.t_formule[3]\r
- if not texte : return
- if type(texte) != types.ListType:
- 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:
- self.cr.fatal(str(e))
-
- def modify_listes(self):
- """
- Modifie la liste des constantes en lui ajoutant le nom des paramètres
- de la fonction à interpréter
- """
- args = self.t_formule[2]
- # l'interpréteur de formule sert aussi à évaluer les EVAL
- # dans ce cas il n'y a pas d'arguments puisque pas de fonction ...
- if args :
- args = args[1:-1] # on enlève les parenthèses ouvrante et fermante
- l_args = string.split(args,',')
- for arg in l_args:
- typ,nom = string.split(arg,':')
- nom = string.strip(nom)
- self.l_constantes.append(nom)
- # on considère que les fonctions unaires de base sont toutes à un seul argument :
- l_f = []
- self.d_fonctions_unaires = {}
- for fct in self.l_fonctions_unaires:
- self.d_fonctions_unaires[fct]=1
- # on ajoute les constantes externes
- for cte in self.new_constantes:
- self.l_constantes.append(cte)
- # on ajoute les fonctions unaires externes au dictionnaire des fonctions unaires
- for new_fonc in self.new_fonctions_unaires:
- self.d_fonctions_unaires[new_fonc[0]] = self.get_nb_args(new_fonc)
- #self.d_fonctions_unaires.update(self.new_fonctions_unaires)
- self.l_fonctions_unaires = self.d_fonctions_unaires.keys()
-
- def ordonne_listes(self):
- """
- Ordonne les listes de fonctions unaires et binaires
- """
- self.l_fonctions_binaires.sort(cmp_function)
- self.l_fonctions_unaires.sort(cmp_function)
- self.l_constantes.sort(cmp_function)
-
-
- def split_operateurs(self,texte):
- """
- Splite le texte passé en argument en opérateurs plus élémentaires.
- N'analyse pas l'intérieur des opérateurs (ne fait qu'une passe)
- """
- l_operateurs = []
- texte = string.strip(texte)
- # on recherche un nombre en début de texte
- try:
- oper,reste = self.cherche_nombre(texte)
- except InterpreteurException,e:
- raise InterpreteurException,str(e)
- if not oper :
- # on recherche une constante en début de texte
- try:
- oper,reste = self.cherche_constante(texte)
- except InterpreteurException,e:
- raise InterpreteurException,str(e)
- if not oper :
- # on recherche une expression entre parenthèses...
- try:
- oper,reste = self.cherche_expression_entre_parentheses(texte)
- except InterpreteurException,e:
- raise InterpreteurException,str(e)
- if not oper :
- # on recherche le début d'un opérateur unaire en début de texte
- try:
- oper,reste = self.cherche_operateur_unaire(texte)
- except InterpreteurException,e:
- raise InterpreteurException,str(e)
- if not oper :
- type_objet,nom_objet = self.get_type(texte)
- if type_objet == 'constante':
- raise InterpreteurException, "Constante %s inconnue" %nom_objet
- elif type_objet == 'fonction':
- raise InterpreteurException, "Fonction %s inconnue dans %s" %(nom_objet,texte)
- else:
- raise InterpreteurException, "Impossible d'interpréter : %s" %texte
- # on a trouvé un opérateur (nombre, constante ou unaire)
- # il faut encore vérifier que l'on est en fin de texte ou qu'il est bien suivi
- # d'un opérateur binaire
- l_operateurs.append(oper)
- if reste :
- texte = string.strip(reste)
- oper,reste = self.cherche_operateur_binaire(texte)
- if not oper :
- # on a un reste et pas d'opérateur binaire --> erreur
- raise InterpreteurException,"L'opérateur %s doit être suivi d'un opérateur binaire" %l_operateurs[-1]
- else:
- # on a bien trouvé un opérateur binaire:
- l_operateurs.append(oper)
- # il faut recommencer l'analyse du reste par split_operateurs ...
- try:
- l_op = self.split_operateurs(reste)
- except InterpreteurException,e:
- raise InterpreteurException,str(e)
- l_operateurs.extend(l_op)
- return l_operateurs
- else:
- # on a fini d'analyser texte
- return l_operateurs
-
- def cherche_nombre(self,texte):
- """
- Cherche un nombre en début de texte
- Retourne ce nombre et le reste ou None et le texte initial
- Peut lever une InterpreteurException dans le cas où le nombre n'est pas valide
- """
- texte = string.strip(texte)
- m = pat_number_complet.match(texte)
- if m:
- # on a trouvé un nombre avec exposant
- l_groups = m.groups()
- sgn = l_groups[0]
- nb = l_groups[1]
- if l_groups[2]:
- nb = nb+l_groups[2]
- if l_groups[3]:
- nb = nb+l_groups[3]
- nombre = sgn+nb
- return nombre,l_groups[4]
- else:
- m = pat_number.match(texte)
- if m :
- # on a trouvé un nombre sans exposant
- l_groups = m.groups()
- sgn = l_groups[0]
- nb = l_groups[1]
- if l_groups[2]:
- nb = nb+l_groups[2]
- nombre = sgn+nb
- # il faut vérifier si ce nombre n'est pas suivi d'un exposant incomplet ...
- reste = string.strip(l_groups[3])
- if reste == '':
- return nombre,l_groups[3]
- if reste[0] in ('e','E','d','D') :
- raise InterpreteurException,"La syntaxe de l'exposant de %s est erronée " %nb
- else:
- return nombre,l_groups[3]
- else:
- # on n'a pas trouvé de nombre
- return None,texte
-
- def cherche_constante_old(self,texte):
- """
- Recherche une constante en début de texte parmi la liste des constantes.
- Retourne le texte représentant la constante et le reste du texte ou
- Retourne None,texte si aucune constante trouvée
- """
- txt = None
- texte = string.strip(texte)
- for cte in self.l_constantes:
- index = string.find(texte,cte)
- #if index == 0 : print 'on a trouvé %s dans %s en %d' %(cte,texte,index)
- if index == 0 :
- txt = cte
- zz,reste = string.split(texte,cte,1)
- break
- if txt :
- return txt,reste
- else:
- # aucune constante trouvée
- return None,texte
-
- def cherche_constante(self,texte):
- """
- Recherche une constante en début de texte parmi la liste des constantes.
- Retourne le texte représentant la constante et le reste du texte ou
- Retourne None,texte si aucune constante trouvée
- """
- txt = None
- texte = string.strip(texte)
- m = pat_constante.match(texte)
- if m :
- # on a trouvé un identificateur en début de texte
- l_groups = m.groups()
- sgn = l_groups[0]
- identificateur = string.strip(l_groups[1])
- reste = l_groups[2]
- # il faut vérifier qu'il ne s'agit pas d'un appel à une fonction
- if reste :
- if reste[0] == '(' :
- # --> appel de fonction
- return None,texte
- # il faut encore vérifier qu'elle est bien dans la liste des constantes...
- if identificateur not in self.l_constantes :
- raise InterpreteurException,"La constante %s est inconnue dans %s" %(identificateur,texte)
- else:
- return sgn+identificateur,reste
- else:
- # aucune constante trouvée
- return None,texte
-
- def cherche_args(self,texte):
- """
- Cherche au début de texte une liste d'arguments entre parenthèses
- """
- if texte[0]!='(':
- return None,texte
- else:
- n=0
- cpt=1
- while cpt != 0:
- n=n+1
- if n>= len(texte):
- # on a atteint la fin de texte sans avoir trouvé la parenthèse fermante --> erreur
- raise InterpreteurException,"Manque parenthèse fermante dans %s" %texte
- if texte[n] == '(':
- cpt=cpt+1
- elif texte[n]==')':
- cpt=cpt-1
- if (n+1 < len(texte)):
- return texte[0:n+1],texte[n+1:]
- else:
- # on a fini d'analyser le texte : reste = None
- return texte,None
-
- def cherche_operateur_unaire_old(self,texte):
- """
- Cherche dans texte un operateur unaire
- """
- txt = None
- texte = string.strip(texte)
- for oper in self.l_fonctions_unaires:
- index = string.find(texte,oper)
- if index == 0 :
- txt = oper
- zz,reste = string.split(texte,oper,1)
- break
- if txt :
- #print 'on a trouvé :',txt
- operateur = txt
- texte = reste
- try:
- args,reste = self.cherche_args(texte)
- except InterpreteurException,e:
- raise InterpreteurException,str(e)
- if not args :
- # opérateur unaire sans arguments
- raise InterpreteurException,'opérateur unaire %s sans arguments' %operateur
- else:
- #operateur = operateur+args
- args = self.split_args(txt,args,self.d_fonctions_unaires[operateur])
- formule_operateur = (txt,'',self.t_formule[2],args)
- operateur = Interpreteur_Formule(formule = formule_operateur,
- constantes = self.new_constantes,
- fonctions_unaires = self.new_fonctions_unaires,
- parent = self)
- operateur.interprete_formule()
- texte = reste
- return operateur,reste
- else:
- # aucun opérateur unaire trouvé
- return None,texte
-
- def cherche_operateur_unaire(self,texte):
- """
- Cherche dans texte un operateur unaire
- """
- txt = None
- texte = string.strip(texte)
- m = pat_constante.match(texte)
- if m :
- # on a trouvé un identificateur en début de texte
- # il faut encore vérifier que l'on a bien à faire à un appel de fonction ...
- l_groups = m.groups()
- sgn = l_groups[0]
- identificateur = string.strip(l_groups[1])
- reste = l_groups[2]
- try:
- args,reste = self.cherche_args(reste)
- except InterpreteurException,e:
- raise InterpreteurException,str(e)
- if not args :
- # opérateur unaire sans arguments
- # en principe on ne doit jamais être dans ce cas car il est déjà trappé par cherche_constante ...
- raise InterpreteurException,'Fonction %s sans arguments !' %identificateur
- else:
- # il faut encore vérifier que l'on a bien à faire à une fonction connue
- if identificateur not in self.l_fonctions_unaires:
- raise InterpreteurException,'Fonction %s inconnue dans %s !' %(identificateur,texte)
- args = self.split_args(identificateur,args,self.d_fonctions_unaires[identificateur])
- formule_operateur = (sgn+identificateur,'',self.t_formule[2],args)
- operateur = Interpreteur_Formule(formule = formule_operateur,
- constantes = self.new_constantes,
- fonctions = self.new_fonctions_unaires,
- parent = self)
- operateur.interprete_formule()
- texte = reste
- return operateur,reste
- elif texte[0] == '-':
- # Il faut pouvoir trapper les expressions du type exp(-(x+1)) ...
- try :
- args,reste = self.cherche_args(texte[1:])
- except InterpreteurException,e:
- raise InterpreteurException,str(e)
- if not args :
- # Il ne s'agit pas de '-' comme opérateur unaire --> on retourne None
- return None,texte
- else:
- identificateur = '-'
- args = self.split_args(identificateur,args,self.d_fonctions_unaires[identificateur])
- formule_operateur = (identificateur,'',self.t_formule[2],args)
- operateur = Interpreteur_Formule(formule = formule_operateur,
- constantes = self.new_constantes,
- fonctions = self.new_fonctions_unaires,
- parent = self)
- operateur.interprete_formule()
- texte = reste
- return operateur,reste
- else:
- return None,texte
-
- def cherche_operateur_binaire(self,texte):
- """
- Cherche dans texte un operateur unaire
- """
- txt = None
- texte = string.strip(texte)
- for oper in self.l_fonctions_binaires:
- index = string.find(texte,oper)
- #if index != -1 : print 'on a trouvé %s dans %s en %d' %(oper,texte,index)
- if index == 0 :
- txt = oper
- zz,reste = string.split(texte,oper,1)
- break
- if txt :
- return txt,reste
- else:
- # aucun opérateur unaire trouvé
- return None,texte
-
- def cherche_expression_entre_parentheses(self,texte):
- """
- Cherche en début de texte une expression entre parentheses
- """
- args,reste = self.cherche_args(string.strip(texte))
- if not args :
- return None,texte
- else:
- # on a trouvé une expression entre parenthèses en début de texte
- # --> on retourne un objet Interpreteur_Formule
- formule_operateur = ('','',self.t_formule[2],args[1:-1])
- operateur = Interpreteur_Formule(formule = formule_operateur,
- constantes = self.new_constantes,
- fonctions = self.new_fonctions_unaires,
- parent = self)
- operateur.interprete_formule()
- texte = reste
- return operateur,reste
-
- def split_args(self,nom_fonction,args,nb_args):
- """
- Tente de partager args en nb_args éléments
- Retourne une liste de chaînes de caractères (liste de longueur nb_args)
- """
- args = args[1:-1] # on enlève les parenthèses ouvrante et fermante
- if nb_args == 1 : return args
- l_args = string.split(args,',')
- if len(l_args) != nb_args:
- raise InterpreteurException,"La fonction %s requiert %d arguments : %d fourni(s)" %(nom_fonction,nb_args,len(l_args))
- else:
- return l_args
-
- def get_type(self,texte):
- """
- Retourne le type de l'objet défini dans texte, à savoir:
- - constante
- - fonction
- - unknown
- et son nom
- """
- texte = string.strip(texte)
- if '(' not in texte:
- return 'constante',texte
- if texte[-1] != ')':
- return 'unknown',''
- nom_oper,args = string.split(texte,'(',1)
- return 'fonction',nom_oper
-
- def get_nb_args(self,formule):
- """
- Retourne le nombre d'arguments dans la définition de formule (sous forme de tuple)
- """
- args = formule[2][1:-1] # on enlève les parenthèses ouvrante et fermante
- l_args = string.split(args,',')
- return len(l_args)
-
-if __name__ == '__main__':
- constantes = ['FREQ3','AMOR1']
- fonctions_unaires=[('ACC','REEL','(REEL:x)','''bidon'''),]
- f1 = ('f1','REEL','(REEL:x)','''SIN(x)+3*x''')
- f2 = ('f2','REEL','(REEL:x)','''ATAN(x+3)+3*x''')
- f3 = ('f3','REEL','(REEL:INST)','''ACC(INST,FREQ3,AMOR1)''')
- f4 = ('f4','REEL','(REEL:INST)','''ACC(INST,FREQ2,AMOR1)''')
- f5 = ('f5','REEL','(REEL:INST,REEL:Y)','''ACC(INST,FREQ3,AMOR1)+Y*INST''')
- f6 = ('f6','REEL','(REEL:x)','''(x+ 3)/ 35.698''')
- f7 = ('f7','REEL','(REEL:x)','''(x+ 3)/ 35.698E-10''')
- f8 = ('f8','REEL','(REEL:x)','''(x+ 3)/ 35.698E''')
- f9 = ('f9','REEL','(REEL:INSTA,REEl:INSTB)','''2.*SIN((PI/4)+((INSTA-INSTB)/2.))* COS((PI/4)-((INSTA+INSTB)/2.))''')
- f10 = ('f10','REEL','(REEL:X)','''EXP(-(X+1))''')
- for formule in (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10):
- i = Interpreteur_Formule(formule = formule,
- constantes = constantes,
- fonctions = fonctions_unaires)
- txt = i.str()
- print '\nformule %s = %s' %(str(formule),txt)
- if i.isvalid() :
- print "\n\tPas d'erreur !"
- else:
- print i.report()
+++ /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 mixin qui porte les méthodes
- pour traiter les niveaux au sein d'un JDC
-"""
-import etape_niveau
-
-class JDC:
- def __init__(self):
- self.dict_niveaux={}
- self.build_niveaux()
-
- def build_niveaux(self):
- for niveau in self.definition.l_niveaux:
- etape_niv = etape_niveau.ETAPE_NIVEAU(niveau,self)
- self.etapes_niveaux.append(etape_niv)
- self.dict_niveaux[niveau.nom]=etape_niv
- self.dict_niveaux.update(etape_niv.dict_niveaux)
-
+++ /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')
- )
- )
-
-
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# Modules Python
-import string
-
-# Modules Eficas
-from Noyau import N_MCCOMPO
-from Validation import V_MCCOMPO
-
-class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
- """
- """
- nature = "MCNUPLET"
- txt_nat="Nuplet : "
-
- def __init__(self,val,definition,nom,parent):
- # val contient la valeur initial du nuplet
- self.val = val
- if val == None: self.val=()
- self.definition=definition
- self.nom=nom
- self.parent = parent
- # GETVAL affecte la valeur par defaut si necessaire
- self.valeur=self.GETVAL(self.val)
- if parent :
- self.jdc = self.parent.jdc
- self.niveau = self.parent.niveau
- self.etape = self.parent.etape
- else:
- # Le mot cle a été créé sans parent
- self.jdc = None
- self.niveau = None
- self.etape = None
- self.state = 'undetermined'
- self.actif=1
- self.mc_liste=self.build_mc()
-
- def build_mc(self):
- """
- Construit la liste des sous-entites de MCNUPLET
- à partir de la liste des arguments (valeur)
- """
- args = self.valeur
- if args ==None : args =()
- mc_liste=[]
-
- # on crée les sous entites du NUPLET a partir des valeurs initiales
- k=0
- for v in self.definition.entites:
- if k < len(args):
- val=args[k]
- else:
- val=None
- objet=v(val=val,nom=`k`,parent=self)
- if hasattr(objet.definition,'position'):
- if objet.definition.position == 'global' :
- self.append_mc_global(objet)
- #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'):
- """
- Indique si self (MCNUPLET) est un objet valide ou non : retourne 1 si oui, 0 sinon
- """
- if self.state == 'unchanged' :
- return self.valid
- else:
- valid = 1
- if hasattr(self,'valid'):
- old_valid = self.valid
- else:
- old_valid = None
- for child in self.mc_liste :
- if not child.isvalid():
- valid = 0
- break
- if len(self.mc_liste) != len(self.definition.entites):
- valid=0
- if cr == 'oui' :
- self.cr.fatal(string.join(("Nuplet : ",self.nom," Longueur incorrecte")))
- self.valid = valid
- self.state = 'unchanged'
- if old_valid:
- if old_valid != self.valid : self.init_modif_up()
- return self.valid
-
- def __getitem__(self,key):
- """
- Retourne le key ème élément du nuplet
- """
- # Un nuplet est toujours une liste de mots cles simples
- # On retourne donc la valeur
- return self.mc_liste[key].valeur
-
- def __str__(self):
- """
- Retourne une représentation du nuplet sous forme de chaine
- de caractères
- """
- s='('
- for e in self.mc_liste:
- s=s + str(e.valeur) + ','
- return s + ')'
-
- def __repr__(self):
- """
- Retourne une représentation du nuplet sous forme de chaine
- de caractères
- """
- s='('
- for e in self.mc_liste:
- s=s + str(e.valeur) + ','
- return s + ')'
-
- def get_regles(self):
- """
- Retourne la liste des règles attachées au nuplet
- """
- return []
-
- def verif_condition_bloc(self):
- """
- Vérifie s'il y a des blocs sous le nuplet et retourne
- les blocs en question
- """
- # Il n y a pas de BLOCs sous un NUPLET
- return [],[]
-
- def isrepetable(self):
- """
- Indique si le NUPLET peut etre répété.
- Retourne 1 si c'est le cas.
- Retourne 0 dans le cas contraire.
- L'information est donnée par le catalogue, cad la définition de self
- """
- if self.definition.min != self.definition.max :
- return 1
- else :
- return 0
-
- def makeobjet(self):
- return self.definition(val = None, nom = self.nom,parent = self.parent)
-
- def get_valeur(self):
- """
- Cette méthode doit retourner la valeur de l'objet. Elle est utilisée par
- cree_dict_valeurs pour construire un dictionnaire contenant les mots clés
- d'une étape.
- Dans le cas d'un nuplet, on retournera comme valeur une liste des valeurs
- des mots clé simples contenus.
- """
- l=[]
- for v in self.mc_liste:
- l.append(v.valeur)
- return l
-
- def get_val(self):
- """
- Une autre méthode qui retourne une "autre" valeur du mot clé facteur.
- Elle est utilisée par la méthode get_mocle
- """
- l=[]
- for v in self.mc_liste:
- l.append(v.valeur)
- return l
-
- 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 ''
-
-
-
+++ /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 NIVEAU qui sert à définir
- des groupes de commandes dans le catalogue
-"""
-
-class NIVEAU:
- def __init__(self,nom='',label='',niveaux=(),valide_vide=1,actif=1):
- self.nom = nom
- self.label = label
- self.statut='o'
- self.min = 1
- self.max = 1
- self.entites = []
- self.l_noms_entites=[]
- self.valide_vide = valide_vide
- self.actif = actif
- self.d_niveaux = {}
- self.l_niveaux = niveaux
- for niveau in niveaux:
- self.d_niveaux[niveau.nom]=niveau
- self.d_niveaux.update(niveau.d_niveaux)
-
- def enregistre(self,commande):
- self.entites.append(commande)
- self.l_noms_entites.append(commande.nom)
-
- def get_liste_cmd(self):
- self.l_noms_entites.sort()
- return self.l_noms_entites
-
+++ /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 de définition pour les nuplets NUPL
-"""
-# Modules Python
-import types
-
-# Modules Eficas
-from Noyau import N_ENTITE,N_MCLIST,N_CR
-from Ihm import I_ENTITE
-import mcnuplet
-
-class NUPL(N_ENTITE.ENTITE,I_ENTITE.ENTITE):
- """
- """
- class_instance = mcnuplet.MCNUPLET
- list_instance = N_MCLIST.MCList
- label='NUPLET'
- CR=N_CR.CR
-
- 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
- self.statut=statut
- self.defaut=defaut
- self.min=min
- self.max=max
- self.entites=elements
- self.regles=()
- # on force le statut des sous entites a obligatoire
- for e in elements:e.statut='o'
- self.idracine="NUPLET"
- self.affecter_parente()
-
- def verif_cata(self):
- """
- Cette methode sert à valider les attributs de l'objet de définition
- de la classe NUPL
- """
- if type(self.min) != types.IntType :
- if self.min != '**':
- self.cr.fatal("L'attribut 'min' doit être un entier : "+`self.min`)
- if type(self.max) != types.IntType :
- if self.max != '**' :
- self.cr.fatal("L'attribut 'max' doit être un entier : "+`self.max`)
- if self.min > self.max :
- self.cr.fatal("Nombres d'occurrence min et max invalides : %s %s" %(`self.min`,`self.max`))
- if type(self.fr) != types.StringType :
- self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" +`self.fr`)
- if self.statut not in ['o','f','c','d']:
- self.cr.fatal("L'attribut 'statut' doit valoir 'o','f','c' ou 'd' : %s" %`self.statut`)
- if type(self.docu) != types.StringType :
- self.cr.fatal("L'attribut 'docu' doit être une chaîne de caractères : %s" %`self.docu`)
- self.verif_cata_regles()
-
- def __call__(self,val,nom,parent):
- """
- Construit la structure de donnees pour un NUPLET a partir de sa definition (self)
- de sa valeur (val), de son nom (nom) et de son parent dans l arboresence (parent)
- """
- if (type(val) == types.TupleType or type(val) == types.ListType) and type(val[0]) == types.TupleType:
- # On est en presence d une liste de nuplets
- l=self.list_instance()
- l.init(nom=nom,parent=parent)
- for v in val:
- objet=self.class_instance(nom=nom,definition=self,val=v,parent=parent)
- l.append(objet)
- return l
- else:
- # on est en presence d un seul nuplet
- return self.class_instance(nom=nom,definition=self,val=val,parent=parent)
-
- def report(self):
- """
- Méthode qui crée le rapport de vérification du catalogue du nuplet
- """
- self.cr = self.CR()
- self.verif_cata()
- for v in self.entites :
- cr = v.report()
- cr.debut = "Début "+v.__class__.__name__+ ' : '
- cr.fin = "Fin "+v.__class__.__name__+ ' : '
- self.cr.add(cr)
- return self.cr
-
- def affecter_parente(self):
- """
- Cette methode a pour fonction de donner un nom et un pere aux
- sous entités qui n'ont aucun moyen pour atteindre leur parent
- directement
- Il s'agit principalement des mots cles
- """
- k=0
- for v in self.entites:
- v.pere = self
- v.nom = str(k)
- k=k+1
-
+++ /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 PARAMETRE qui sert à définir
- des objets paramètres qui sont compréhensibles et donc affichables
- par EFICAS.
- Ces objets sont créés à partir de la modification du fichier de commandes
- de l'utilisateur par le parseur de fichiers Python
-"""
-
-# import de modules Python
-import string,types
-
-# import de modules Eficas
-from Noyau.N_CR import CR
-
-class PARAMETRE :
- """
- Cette classe permet de créer des objets de type PARAMETRE
- cad des affectations directes dans le jeu de commandes (ex: a=10.)
- qui sont interprétées par le parseur de fichiers Python.
- Les objets ainsi créés constituent des paramètres pour le jdc
- """
-
- nature = 'PARAMETRE'
- idracine = 'param'
-
- def __init__(self,nom,valeur=None):
- # parent ne peut être qu'un objet de type JDC
- self.valeur = self.interprete_valeur(valeur)
- self.val=valeur
- self.nom = nom
- # La classe PARAMETRE n'a pas de définition : on utilise self pour
- # complétude
- 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):
- """
- Essaie d'interpréter val (chaîne de caractères)comme :
- - un entier
- - un réel
- - une chaîne de caractères
- - une liste d'items d'un type qui précède
- Retourne la valeur interprétée
- """
- if not val : return None
- valeur = None
- # on vérifie si val est un entier
- try :
- valeur = string.atoi(val) # on a un entier
- return valeur
- except :
- pass
- # on vérifie si val est un réel
- try:
- valeur = string.atof(val) # on a un réel
- return valeur
- except :
- pass
- # on vérifie si val est un tuple
- try :
- valeur = eval(val)
- except:
- pass
- if valeur != None :
- if type(valeur) == types.TupleType:
- l_new_val = []
- typ = None
- for v in valeur :
- if not typ:
- typ = type(v)
- else:
- if type(v) != typ :
- # la liste est hétérogène --> on refuse d'interpréter
- # self comme une liste
- # on retourne la string initiale
- print 'liste hétérogène ',val
- return val
- l_new_val.append(v)
- return tuple(l_new_val)
- else:
- # on a réussi à évaluer val en autre chose qu'un tuple ...
- print "on a réussi à évaluer %s en autre chose qu'un tuple ..." %val
- print 'on trouve : ',str(valeur),' de type : ',type(valeur)
- # on retourne val comme une string car on n'a pas su l'interpréter
- return val
-
- def set_valeur(self,new_valeur):
- """
- Remplace la valeur de self par new_valeur interprétée
- """
- self.valeur = self.interprete_valeur(new_valeur)
- self.init_modif()
-
- def init_modif(self):
- """
- Méthode qui déclare l'objet courant comme modifié et propage
- cet état modifié à ses ascendants
- """
- self.state = 'modified'
- if self.parent:
- self.parent.init_modif()
-
- def register(self):
- """
- Enregistre le paramètre dans la liste des étapes de son parent (JDC)
- """
- self.parent.register_parametre(self)
- self.parent.register(self)
-
- def isvalid(self,cr='non'):
- """
- Retourne 1 si self est valide, 0 sinon
- Un paramètre est considéré comme valide si :
- - il a un nom
- - il a une valeur
- """
- if self.nom == '' :
- if cr == 'oui':
- self.cr.fatal("Pas de nom donné au paramètre ")
- return 0
- else:
- if self.valeur == None :
- if cr == 'oui' :
- self.cr.fatal("Le paramètre %s ne peut valoir None" % self.nom)
- return 0
- return 1
-
- def isoblig(self):
- """
- Indique si self est obligatoire ou non : retourne toujours 0
- """
- return 0
-
- def isrepetable(self):
- """
- Indique si self est répétable ou non : retourne toujours 1
- """
- return 1
-
- def liste_mc_presents(self):
- return []
-
- def supprime(self):
- """
- Méthode qui supprime toutes les boucles de références afin que
- l'objet puisse être correctement détruit par le garbage collector
- """
- self.parent = None
- self.jdc = None
- self.definition=None
-
- def active(self):
- """
- Rend l'etape courante active.
- Il faut ajouter le paramètre au contexte global du JDC
- """
- self.actif = 1
- try:
- self.jdc.append_param(self)
- except:
- pass
-
- def inactive(self):
- """
- Rend l'etape courante inactive
- Il faut supprimer le paramètre du contexte global du JDC
- """
- self.actif = 0
- self.jdc.del_param(self)
- self.jdc.delete_concept_after_etape(self,self)
-
- def isactif(self):
- """
- Booléenne qui retourne 1 si self est actif, 0 sinon
- """
- return self.actif
-
- def set_attribut(self,nom_attr,new_valeur):
- """
- Remplace la valeur de self.nom_attr par new_valeur)
- """
- if hasattr(self,nom_attr):
- setattr(self,nom_attr,new_valeur)
- self.init_modif()
-
- def supprime_sdprods(self):
- """
- Il faut supprimer le paramètre qui a été entré dans la liste des
- paramètres du JDC
- """
- self.jdc.delete_param(self)
-
- def update_context(self,d):
- """
- Update le dictionnaire d avec le paramètre que produit self
- """
- d[self.nom]=self
-
- def __repr__(self):
- """
- Donne un echo de self sous la forme nom = valeur
- """
- return self.nom+' = '+str(self.valeur)+'\n'
-
- def __str__(self):
- """
- Retourne le nom du paramètre comme représentation de self
- """
- return self.nom
-
- def get_sdprods(self,nom_sd):
- """
- Retourne les concepts produits par la commande
- """
- return None
-
- def report(self):
- """ Génère l'objet rapport (classe CR) """
- self.cr=CR()
- self.isvalid(cr='oui')
- return self.cr
-
- def ident(self):
- """
- Retourne le nom interne associé à self
- Ce nom n'est jamais vu par l'utilisateur dans EFICAS
- """
- return self.nom
-
- def delete_concept(self,sd):
- pass
-
- def verif_condition_bloc(self):
- """
- Evalue les conditions de tous les blocs fils possibles
- (en fonction du catalogue donc de la définition) de self et
- retourne deux listes :
- - la première contient les noms des blocs à rajouter
- - la seconde contient les noms des blocs à supprimer
- """
- return [],[]
-
- def verif_condition_regles(self,liste_presents):
- """
- Retourne la liste des mots-clés à rajouter pour satisfaire les règles
- en fonction de la liste des mots-clés présents
- """
- return []
-
- def verif_existence_sd(self):
- pass
-
- def control_sdprods(self,d):
- """sans objet """
- 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 la classe PARAMETRE_EVAL qui sert à définir
-des objets paramètres qui sont compréhensibles et donc affichables
-par EFICAS.
-Ces objets sont créés à partir de la modification du fichier de commandes
-de l'utilisateur par le parseur de fichiers Python
-"""
-# import de modules Python
-import string,types,re
-import traceback
-
-# import modules Eficas
-import Accas
-import interpreteur_formule
-from Noyau.N_CR import CR
-import parametre
-
-pattern_eval = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)')
-
-class PARAMETRE_EVAL(parametre.PARAMETRE) :
- """
- Cette classe permet de créer des objets de type PARAMETRE_EVAL
- cad des affectations directes évaluées dans le jeu de commandes
- (ex: a=EVAL('''10.*SQRT(25)'''))
- qui sont interprétées par le parseur de fichiers Python.
- Les objets ainsi créés constituent des paramètres évalués pour le jdc
- """
- nature = 'PARAMETRE_EVAL'
- idracine='param_eval'
-
- def __init__(self,nom,valeur=None):
- # parent ne peut être qu'un objet de type JDC
- self.valeur = self.interprete_valeur(valeur)
- self.val = valeur
- self.nom = nom
- 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()
-
- def __repr__(self):
- """
- Donne un echo de self sous la forme nom = valeur
- """
- return self.nom+' = '+ repr(self.valeur) + '\n'
-
- def __str__(self):
- """
- Retourne le nom du paramètre évalué comme représentation de self
- """
- return self.nom
-
- def interprete_valeur(self,val):
- """
- Essaie d'interpréter val (chaîne de caractères ou None) comme :
- une instance de Accas.EVAL
- Retourne la valeur interprétée
- """
- 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)
- return valeur
- except:
- traceback.print_exc()
- print "Le texte %s n'est pas celui d'un paramètre évalué" %val
- return None
-
- def set_valeur(self,new_valeur):
- """
- Remplace la valeur de self par new_valeur interprétée.
- """
- self.valeur = self.interprete_valeur(new_valeur)
- self.val = new_valeur
- self.init_modif()
-
- def get_nom(self) :
- """
- Retourne le nom du paramètre
- """
- return self.nom
-
- def get_valeur(self):
- """
- Retourne la valeur de self, cad le texte de l'objet class_eval.EVAL
- """
- if self.valeur :
- return self.valeur.valeur
- else:
- return ''
-
- def verif_eval(self,exp_eval=None,cr='non'):
- """
- Cette méthode a pour but de vérifier si l'expression EVAL
- est syntaxiquement correcte.
- Retourne :
- - un booléen, qui vaut 1 si licite, 0 sinon
- - un message d'erreurs ('' si illicite)
- """
- if not exp_eval:
- if self.valeur :
- exp_eval = self.valeur.valeur[3:-3] # on enlève les triples guillemets
- else:
- exp_eval = None
- if exp_eval :
- # on construit un interpréteur de formule
- formule=(self.nom,'',None,exp_eval)
- # on récupère la liste des constantes et des autres fonctions prédéfinies
- # et qui peuvent être utilisées dans le corps de la formule courante
- l_ctes,l_form = self.jdc.get_parametres_fonctions_avant_etape(self)
- # on crée un objet vérificateur
- verificateur = interpreteur_formule.Interpreteur_Formule(formule=formule,
- constantes = l_ctes,
- fonctions = l_form)
- if cr == 'oui' :
- if not verificateur.cr.estvide():
- self.cr.fatal(verificateur.cr.get_mess_fatal())
- return verificateur.isvalid(),string.join(verificateur.cr.crfatal)
- else:
- # pas d'expression EVAL --> self non valide
- if cr == 'oui' :
- self.cr.fatal("Le paramètre EVAL %s ne peut valoir None" % self.nom)
- return 0,"Le paramètre EVAL ne peut valoir None"
-
- def verif_nom(self,nom=None,cr='non'):
- """
- Vérifie si le nom passé en argument (si aucun prend le nom courant)
- est un nom valide pour un paramètre EVAL
- Retourne :
- - un booléen, qui vaut 1 si nom licite, 0 sinon
- - un message d'erreurs ('' si illicite)
- """
- if not nom :
- nom = self.nom
- if nom == "" :
- if cr == 'oui' : self.cr.fatal("Pas de nom donné au paramètre EVAL")
- return 0,"Pas de nom donné au paramètre EVAL"
- if len(nom) > 8 :
- if cr == 'oui' : self.cr.fatal("Un nom de paramètre ne peut dépasser 8 caractères")
- return 0,"Un nom de paramètre ne peut dépasser 8 caractères"
- sd = self.parent.get_sd_autour_etape(nom,self)
- if sd :
- if cr == 'oui' : self.cr.fatal("Un concept de nom %s existe déjà !" %nom)
- return 0,"Un concept de nom %s existe déjà !" %nom
- return 1,''
-
- def verif_parametre_eval(self,param=None,cr='non'):
- """
- Vérifie la validité du paramètre EVAL passé en argument.
- Ce nouveau paramètre est passé sous la forme d'un tuple :
- (nom,valeur)
- Si aucun tuple passé, prend les valeurs courantes de l'objet
- Retourne :
- - un booléen, qui vaut 1 si EVAL licite, 0 sinon
- - un message d'erreurs ('' si illicite)
- """
- if not param :
- if self.valeur :
- param = (self.nom,self.valeur.valeur)
- else:
- param = (self.nom,None)
- test_nom,erreur_nom = self.verif_nom(param[0],cr=cr)
- test_eval,erreur_eval = self.verif_eval(param[1],cr=cr)
- # test global = produit des tests partiels
- test = test_nom*test_eval
- # message d'erreurs global = concaténation des messages partiels
- erreur = ''
- if not test :
- for mess in (erreur_nom,erreur_eval):
- erreur = erreur+(len(mess) > 0)*'\n'+mess
- return test,erreur
-
- def update(self,param):
- """
- Méthode externe.
- Met à jour les champs nom, valeur de self
- par les nouvelles valeurs passées dans le tuple formule.
- On stocke les valeurs SANS vérifications.
- """
- self.init_modif()
- self.set_nom(param[0])
- self.set_valeur('EVAL("""'+param[1]+'""")')
-
- def isvalid(self,cr='non'):
- """
- Retourne 1 si self est valide, 0 sinon
- Un paramètre évalué est considéré comme valide si :
- - il a un nom
- - il a une valeur qui est interprétable par l'interpréteur de FORMULEs
- """
- resu,erreur= self.verif_parametre_eval(cr=cr)
- return resu
-
- def report(self):
- """
- Génère l'objet rapport (classe CR)
- """
- self.cr = CR()
- self.isvalid(cr='oui')
- return self.cr
-
- def set_nom(self,new_nom):
- """
- Remplace le nom de self par new_nom
- """
- self.nom = new_nom
-
-
+++ /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 le chargeur dynamique de plugins (emprunté à HappyDoc)
-"""
-
-import glob,os,sys,traceback
-import UserDict
-
-class PluginLoader(UserDict.UserDict):
- def __init__(self,module):
- UserDict.UserDict.__init__(self)
- self.plugin_dir=module.__path__[0]
- self.plugin_set_name=module.__name__
- _module_list = glob.glob( os.path.join( self.plugin_dir,
- '%s*py' % self.plugin_set_name,
- )
- )
- _module_list.sort()
-
- for _module_name in _module_list:
-
- _module_name = os.path.basename(_module_name)[:-3]
- _import_name = '%s.%s' % ( self.plugin_set_name,
- _module_name )
-
- try:
- _module = __import__( _import_name )
- except:
- sys.stderr.write('\n--- Plugin Module Error ---\n')
- traceback.print_exc()
- sys.stderr.write('---------------------------\n\n')
- continue
- try:
- _module = getattr(_module, _module_name)
- except AttributeError:
- sys.stderr.write('ERROR: Could not retrieve %s\n' % _import_name)
-
- try:
- info = _module.entryPoint()
- except AttributeError:
- pass
- else:
- self.addEntryPoint(info)
-
-
- def addEntryPoint(self,infoDict):
- name=infoDict['name']
- factory=infoDict['factory']
- self[name]=factory
-
+++ /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__)
+++ /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 string
-
-import I_REGLE
-
-class A_CLASSER(I_REGLE.REGLE):
- def gettext(self):
- text = 'Règle ' + self.__class__.__name__+ ' :\n'
- t=" D'abord :\n"+' '*8
- for arg in self.args0:
- t=t+string.strip(arg)+' ou '
- text = text + t[0:-4] +'\n'
- t = " Ensuite :\n"+' '*8
- for arg in self.args1:
- t=t+string.strip(arg)+' ou '
- text = text + t[0:-4] +'\n'
- return text
-
- def init_couples_permis(self):
- """
- Crée la liste des couples permis parmi les self.args,
- càd pour chaque élément de self.args0 crée tous les couples possibles
- avec un élément de self.args1
- """
- liste = []
- for arg0 in self.args0:
- for arg1 in self.args1:
- liste.append((arg0,arg1))
- self.liste_couples = liste
-
+++ /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.
-#
-#
-# ======================================================================
-_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
- else:
- if hasattr(self,'pere'):
- return self.pere.get_docu()
- else:
- return None
- else:
- return None
-
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# 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 ident(self):
- return self.nom
-
- 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:
- 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 ''
- return sdname
-
- def is_reentrant(self):
- """
- Indique si la commande est reentrante
- """
- return self.definition.reentrant == 'o'
-
- def init_modif(self):
- """
- Met l'état de l'étape à : modifié
- Propage la modification au parent
- """
- # Une action
- # doit etre realisée apres init_modif et la validite reevaluée
- # apres cette action. L'état modified de tous les objets doit etre
- # preservé.
- self.state = 'modified'
- if self.parent:
- self.parent.init_modif()
-
- def fin_modif(self):
- """
- Méthode appelée une fois qu'une modification a été faite afin de
- déclencher d'éventuels traitements post-modification
- ex : INCLUDE et POURSUITE
- """
- if self.isvalid() :
- 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
- produit par l'étape (self).
- - si le concept n'existe pas, on essaye de le créer (à condition que l'étape soit valide ET non réentrante)
- - si il existe déjà, on le renomme et on répercute les changements dans les autres étapes
- Les valeurs de retour sont :
- 0 si le nommage n'a pas pu etre mené à son terme,
- 1 dans le cas contraire
- """
- if len(nom) > 8 and self.jdc.definition.code == 'ASTER':
- return 0,"Nom de concept trop long (maxi 8 caractères)"
- self.init_modif()
- #
- # 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_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 :
- # 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 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, on risque de modifier une SD produite par un autre opérateur
- if self.reuse :
- 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):
- # 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:
- # 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 :
- 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):
- """
- 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
-
- def active(self):
- """
- Rend l'etape courante active.
- 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
- try:
- self.jdc.append_sdprod(self.sd)
- except:
- pass
-
- def inactive(self):
- """
- Rend l'etape courante inactive
- Il faut supprimer la sd du contexte global du JDC
- et de la liste des sd
- """
- self.actif = 0
- if not self.sd : return
- 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:
- Lors d'une destruction d'etape, detruit tous les concepts produits
- Un opérateur n a qu un concept produit
- Une procedure n'en a aucun
- Une macro en a en général plus d'un
- """
- if not self.is_reentrant() :
- # l'étape n'est pas réentrante
- # le concept retourné par l'étape est à supprimer car il était
- # créé par l'étape
- if self.sd != None :
- self.parent.del_sdprod(self.sd)
- self.parent.delete_concept(self.sd)
-
- def delete_concept(self,sd):
- """
- Inputs :
- sd=concept detruit
- Fonction :
- 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
- """
- if self.reuse and self.reuse == sd:
- self.sd=self.reuse=None
- self.init_modif()
- 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()
- self.id= self.parent.register(self)
- if self.definition.niveau :
- # La définition est dans un niveau. En plus on
- # l'enregistre dans le niveau
- self.nom_niveau_definition = self.definition.niveau.nom
- self.niveau = self.parent.dict_niveaux[self.nom_niveau_definition]
- self.niveau.register(self)
- else:
- # La définition est au niveau global
- self.nom_niveau_definition = 'JDC'
- self.niveau=self.parent
- else:
- self.jdc = self.parent =None
- self.id=None
- self.niveau=None
-
- def copy(self):
- """ Méthode qui retourne une copie de self non enregistrée auprès du JDC
- et sans sd
- """
- etape = copy(self)
- etape.sd = None
- 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
-
- def get_noms_sd_oper_reentrant(self):
- """
- Retourne la liste des noms de concepts utilisés à l'intérieur de la commande
- qui sont du type que peut retourner cette commande
- """
- liste_sd = self.get_sd_utilisees()
- l_noms = []
- if type(self.definition.sd_prod) == types.FunctionType:
- d=self.cree_dict_valeurs(self.mc_liste)
- try:
- classe_sd_prod = apply(self.definition.sd_prod,(),d)
- except:
- return []
- else:
- classe_sd_prod = self.definition.sd_prod
- for sd in liste_sd :
- if sd.__class__ is classe_sd_prod : l_noms.append(sd.nom)
- l_noms.sort()
- return l_noms
-
- def get_sd_utilisees(self):
- """
- Retourne la liste des concepts qui sont utilisés à l'intérieur d'une commande
- ( comme valorisation d'un MCS)
- """
- l=[]
- for child in self.mc_liste:
- 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))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+++ /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 I_REGLE
-
-class EXCLUS(I_REGLE.REGLE):
- def purge_liste(self,liste_a_purger,liste_mc_presents):
- regle_active=0
- for mc_present in liste_mc_presents:
- if mc_present in self.mcs:
- regle_active=1
- break
- if not regle_active : return liste_a_purger
-
- for mc in self.mcs:
- # 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''')
-
-class fonction(FONCTION) : 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.
-#
-#
-# ======================================================================
-"""
-"""
-import string,traceback
-
-from I_MACRO_ETAPE import MACRO_ETAPE
-from Extensions import interpreteur_formule
-from Editeur import analyse_catalogue
-
-analyse_catalogue.l_noms_commandes.append('FORM') # déclare le nom FORM à l'analyseur de catalogue
-
-
-class FORM_ETAPE(MACRO_ETAPE):
-
- interpreteur = interpreteur_formule.Interpreteur_Formule
-
- def McBuild(self):
- self.mc_liste=self.build_mc()
- # on crée la liste des types autorisés (liste des noms de mots-clés
- # simples dans le catalogue de FORMULE)
- self.l_types_autorises = self.definition.entites.keys()
- # en plus de la construction traditionnelle des fils de self
- # il faut pour les FORMULE décortiquer l'expression ...
- self.type_retourne,self.arguments,self.corps = self.analyse_formule()
-
- def analyse_formule(self):
- """
- Cette méthode décortique l'expression de la FORMULE.
- Elle retourne 3 valeurs:
- - le type retourné par la FORMULE
- - les arguments de la FORMULE
- - le corps de la FORMULE, cad son expression
- """
- if len(self.mc_liste) == 0:
- # pas de fils pour self --> la FORMULE est incomplète
- return None,None,None
- child = self.mc_liste[0] # child est un MCSIMP
- type_retourne = child.definition.nom
- valeur = child.getval()
- # c'est dans valeur que se trouvent la liste des arguments et le corps de la fonction
- try:
- l_args,corps = string.split(valeur,'=',1)
- except:
- # pas de signe = --> la formule est fausse
- return type_retourne,None,None
- l_args = string.strip(l_args)
- corps = string.strip(corps)
- return type_retourne,l_args,corps
-
- def get_nom(self):
- """
- Retourne le nom de la FORMULE, cad le nom de la SD si elle existe,
- la string vide sinon
- """
- if self.sd :
- return self.sd.get_name()
- 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)
- sont des arguments valide pour une FORMULE.
- Retourne :
- - un booléen, qui vaut 1 si arguments licites, 0 sinon
- - un message d'erreurs ('' si illicites)
- """
- if not arguments :
- arguments = self.arguments
- if not arguments :
- return 0,"Une formule doit avoir au minimum un argument"
- # il faut au préalable enlever les parenthèses ouvrantes et fermantes
- # encadrant les arguments
- arguments = string.strip(arguments)
- if arguments[0] != '(':
- return 0,"La liste des arguments d'une formule doit être entre parenthèses : parenthèse ouvrante manquante"
- if arguments[-1] != ')':
- return 0,"La liste des arguments d'une formule doit être entre parenthèses : parenthèse fermante manquante"
- # on peut tester la syntaxe de chaque argument maintenant
- erreur=''
- test = 1
- arguments = arguments[1:-1] # on enlève les parenthèses ouvrante et fermante
- l_arguments = string.split(arguments,',')
- for argument in l_arguments:
- argument = string.strip(argument)
- try:
- typ,nom = string.split(argument,':')
- # pas de vérification sur le nom de l'argument
- # vérification du type de l'argument
- typ = string.strip(typ)
- if typ not in self.l_types_autorises :
- test = 0
- erreur = erreur + "Le type "+typ+" n'est pas un type permis pour "+nom+'\n'
- except:
- # l'argument ne respecte pas la syntaxe : typ_arg : nom_arg
- test = 0
- erreur = erreur+"Syntaxe argument non valide : "+argument+'\n'
- return test,erreur
-
- def verif_corps(self,corps=None,arguments=None):
- """
- Cette méthode a pour but de vérifier si le corps de la FORMULE
- est syntaxiquement correct.
- Retourne :
- - un booléen, qui vaut 1 si corps de FORMULE licite, 0 sinon
- - un message d'erreurs ('' si illicite)
- """
- if not corps :
- corps = self.corps
- if not arguments :
- arguments = self.arguments
- formule=(self.get_nom(),self.type_retourne,arguments,corps)
- # on récupère la liste des constantes et des autres fonctions prédéfinies
- # et qui peuvent être utilisées dans le corps de la formule courante
- l_ctes,l_form = self.jdc.get_parametres_fonctions_avant_etape(self)
- # on crée un objet vérificateur
- try:
- verificateur = self.interpreteur(formule=formule,
- constantes = l_ctes,
- fonctions = l_form)
- except :
- traceback.print_exc()
- return 0,"Impossible de réaliser la vérification de la formule"
- return verificateur.isvalid(),verificateur.report()
-
- def verif_nom(self,nom=None):
- """
- Vérifie si le nom passé en argument (si aucun prend le nom courant)
- est un nom valide pour une FORMULE.
- Retourne :
- - un booléen, qui vaut 1 si nom licite, 0 sinon
- - un message d'erreurs ('' si illicite)
- """
- if not nom :
- nom = self.get_nom()
- if nom == "" :
- return 0,"Pas de nom donné à la FORMULE"
- if len(nom) > 8 :
- return 0,"Un nom de FORMULE ne peut dépasser 8 caractères"
- sd = self.parent.get_sd_autour_etape(nom,self)
- if sd :
- return 0,"Un concept de nom %s existe déjà !" %nom
- return 1,''
-
- def verif_type(self,type=None):
- """
- Vérifie si le type passé en argument (si aucun prend le type courant)
- est un type valide pour une FORMULE.
- Retourne :
- - un booléen, qui vaut 1 si type licite, 0 sinon
- - un message d'erreurs ('' si illicite)
- """
- if not type:
- type = self.type_retourne
- if not type :
- return 0,"Le type de la valeur retournée n'est pas spécifié"
- if type not in self.l_types_autorises:
- return 0,"Une formule ne peut retourner une valeur de type : %s" %type
- return 1,''
-
- def verif_formule(self,formule=None):
- """
- Vérifie la validité de la formule passée en argument.
- Cette nouvelle formule est passée sous la forme d'un tuple :
- (nom,type_retourne,arguments,corps)
- Si aucune formule passée, prend les valeurs courantes de la formule
- Retourne :
- - un booléen, qui vaut 1 si formule licite, 0 sinon
- - un message d'erreurs ('' si illicite)
- """
- if not formule :
- formule = (None,None,None,None)
- test_nom,erreur_nom = self.verif_nom(formule[0])
- test_type,erreur_type = self.verif_type(formule[1])
- if formule[2]:
- args = '('+formule[2]+')'
- else:
- args = None
- test_arguments,erreur_arguments = self.verif_arguments(args)
- test_corps,erreur_corps = self.verif_corps(corps = formule[3], arguments = args)
- # test global = produit des tests partiels
- test = test_nom*test_type*test_arguments*test_corps
- # message d'erreurs global = concaténation des messages partiels
- erreur = ''
- if not test :
- for mess in (erreur_nom,erreur_type,erreur_arguments,erreur_corps):
- erreur = erreur+(len(mess) > 0)*'\n'+mess
- return test,erreur
-
- def update(self,formule):
- """
- Méthode externe.
- Met à jour les champs nom, type_retourne,arguments et corps de la FORMULE
- par les nouvelles valeurs passées dans le tuple formule.
- On stocke les valeurs SANS vérifications.
- """
- self.init_modif()
- self.type_retourne = formule[1]
- self.arguments = '('+formule[2]+')'
- self.corps = formule[3]
- # il faut ajouter le mot-clé simple correspondant dans mc_liste
- # pour cela on utilise la méthode générale build_mc
- # du coup on est obligé de modifier le dictionnaire valeur de self ...
- self.valeur = {}
- self.valeur[self.type_retourne] = self.arguments+' = ' + self.corps
- self.McBuild()
- sd = self.get_sd_prod()
- if sd:
- sd.nom = formule[0]
-
- def active(self):
- """
- Rend l'etape courante active.
- Il faut ajouter la formule au contexte global du JDC
- """
- self.actif = 1
- nom = self.get_nom()
- if nom == '' : return
- try:
- self.jdc.append_fonction(self.sd)
- except:
- pass
-
- def inactive(self):
- """
- Rend l'etape courante inactive
- Il faut supprimer la formule du contexte global du JDC
- """
- self.actif = 0
- if not self.sd : return
- self.jdc.del_fonction(self.sd)
-
- def delete_concept(self,sd):
- """
- Inputs :
- sd=concept detruit
- Fonction :
- 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
- utilisé dans le corps de la fonction
- """
- 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()
-
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# Modules Python
-import types,traceback
-import string,linecache
-
-# Modules Eficas
-import I_OBJECT
-from Noyau.N_ASSD import ASSD
-from Noyau.N_ETAPE import ETAPE
-from Noyau.N_Exception import AsException
-from Extensions import commentaire,parametre,parametre_eval
-
-class JDC(I_OBJECT.OBJECT):
- """
- """
- def __init__(self):
- self.editmode=0
- self.etapes_niveaux=[]
- self.niveau=self
- self.params=[]
- self.fonctions=[]
- self._etape_context=None
- self.recorded_units={}
- self.old_recorded_units={}
-
- def get_cmd(self,nomcmd):
- """
- Retourne l'objet de type COMMANDE de nom nomcmd
- """
- for cata in self.cata:
- if hasattr(cata,nomcmd):
- return getattr(cata,nomcmd)
-
- def get_sd_avant_du_bon_type(self,etape,types_permis):
- """
- Retourne la liste des concepts avant etape d'un type acceptable
- """
- d=self.get_contexte_avant(etape)
- l=[]
- for k,v in d.items():
- if type(v) != types.InstanceType : continue
- # 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 :
- Si name est le nom d une commande ou un commentaire ajoute
- une etape au JDC
- Sinon remonte une erreur
- """
- self.init_modif()
- self.editmode=1
- if name == "COMMENTAIRE" :
- # ajout d'un commentaire
- self.set_current_step()
- ind = 1
- for child in self.etapes :
- if isinstance(child,commentaire.COMMENTAIRE):
- ind = ind+1
- objet = commentaire.COMMENTAIRE('',parent=self)
- objet.nom = "_comm_"+`ind`
- if pos == None : pos = 0
- self.etapes.insert(pos,objet)
- self.editmode=0
- self.active_etapes()
- return objet
- elif name == "PARAMETRE":
- # ajout d'un parametre
- self.set_current_step()
- nom_param = '_param_'+str(len(self.params)+1)
- objet = parametre.PARAMETRE(nom=nom_param)
- 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":
- # ajout d'un parametre EVAL
- self.set_current_step()
- nom_param = '_param_'+str(len(self.params)+1)
- objet = parametre_eval.PARAMETRE_EVAL(nom=nom_param)
- 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:
- # on est dans le cas où on veut ajouter une commande déjà
- # existante (par copie donc)
- # on est donc nécessairement en mode editeur ...
- objet = name
- # 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':
- # l'objet dépend directement du JDC
- objet.niveau = self
- else:
- # l'étape dépend d'un niveau et non directement du JDC :
- # il faut l'enregistrer dans le niveau de parent
- 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
- try:
- self.set_current_step()
- 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:
- traceback.print_exc()
- self.reset_current_step()
- self.editmode=0
- raise AsException("Impossible d ajouter la commande "+name)
-
- def set_current_step(self):
- CONTEXT.unset_current_step()
- CONTEXT.set_current_step(self)
-
- def reset_current_step(self):
- CONTEXT.unset_current_step()
-
- def liste_mc_presents(self):
- return []
-
- def get_sd_avant_etape(self,nom_sd,etape):
- return self.get_contexte_avant(etape).get(nom_sd,None)
-
- 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
- Si avec vaut 'non' exclut etape de la recherche
- """
- ietap=self.etapes.index(etape)
- if avec == 'non':ietap=ietap+1
- for e in self.etapes[ietap:]:
- sd=e.get_sdprods(nom_sd)
- if sd:
- if hasattr(e,'reuse'):
- if e.reuse != sd:
- return sd
- return None
-
- 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,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):
- """
- Cette méthode a pour fonction de désactiver les étapes qui doivent
- l'être cad, dans le cas d'ASTER, les étapes qui ne sont pas
- comprises entre le premier DEBUT/POURSUITE et le premier FIN
- et rendre actives les autres
- """
- if self.definition.code == 'ASTER' :
- # Seulement pour ASTER :
- # Avant DEBUT actif vaut 0
- # Apres DEBUT et avant le 1er FIN actif vaut 1
- # Apres le 1er FIN actif vaut -1
- actif=0
- else:
- actif=1
- for etape in self.etapes:
- if actif == 0 and etape.nom in ['DEBUT','POURSUITE']:actif=1
- if actif == 1:
- etape.active()
- else:
- etape.inactive()
- if etape.nom == 'FIN':actif=-1
-
- def suppentite(self,etape) :
- """
- Cette methode a pour fonction de supprimer une étape dans
- 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
- # Il faut la désenregistrer
- etape.niveau.unregister(etape)
- etape.supprime_sdprods()
- self.active_etapes()
-
- # 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()
- if not self.cr.estvide():return
- self.exec_compile()
- self.active_etapes()
-
- def register(self,etape):
- """
- Cette méthode ajoute etape dans la liste
- des etapes self.etapes et retourne l identificateur d'étape
- fourni par l appel a g_register
- A quoi sert editmode ?
- - Si editmode vaut 1, on est en mode edition de JDC. On cherche
- à enregistrer une étape que l'on a créée avec eficas (en passant
- par addentite) auquel cas on ne veut récupérer que son numéro
- d'enregistrement et c'est addentité qui l'enregistre dans
- self.etapes à la bonne place...
- - Si editmode vaut 0, on est en mode relecture d'un fichier de
- commandes et on doit enregistrer l'étape à la fin de self.etapes
- (dans ce cas l'ordre des étapes est bien l'ordre chronologique
- de leur création )
- """
- if not self.editmode:
- self.etapes.append(etape)
- else:
- pass
- return self.g_register(etape)
-
- def register_parametre(self,param):
- """
- Cette méthode sert à ajouter un paramètre dans la liste des paramètres
- """
- 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
- 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 get_parametres_fonctions_avant_etape(self,etape):
- """
- Retourne deux éléments :
- - une liste contenant les noms des paramètres (constantes ou EVAL)
- définis avant etape
- - une liste contenant les formules définies avant etape
- """
- l_constantes = []
- l_fonctions = []
- # on récupère le contexte avant etape
- # on ne peut mettre dans les deux listes que des éléments de ce contexte
- d=self.get_contexte_avant(etape)
- # construction de l_constantes
- for param in self.params:
- nom = param.nom
- if not nom : continue
- if d.has_key(nom): l_constantes.append(nom)
- # construction de l_fonctions
- for form in self.fonctions:
- 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
-
- def get_nb_etapes_avant(self,niveau):
- """
- Retourne le nombre d etapes avant le debut de niveau
- """
- nb=0
- for niv in self.etapes_niveaux:
- if niv == niveau:break
- nb=nb+len(niv.etapes)
- return nb
-
- def send_message(self,message):
- if self.appli:
- self.appli.send_message(message)
-
- def init_modif(self):
- """
- Méthode appelée au moment où une modification va être faite afin de
- déclencher d'éventuels traitements pré-modification
- """
- self.state = 'modified'
-
- def fin_modif(self):
- self.isvalid()
- pass
-
- def get_liste_mc_inconnus(self):
- """
- Retourne une liste contenant les mots-clés inconnus à la relecture du JDC
- """
- # cette liste a le format suivant : [etape,(bloc,mcfact,...),nom_mc,valeur_mc]
- l_mc = []
- for etape in self.etapes :
- if etape.isactif() :
- if not etape.isvalid() :
- l = etape.get_liste_mc_inconnus()
- if l : l_mc.extend(l)
- return l_mc
-
- def get_file(self,unite=None,fic_origine=''):
- """
- Retourne le nom du fichier correspondant à un numero d'unité
- logique (entier) ainsi que le source contenu dans le fichier
- """
- if self.appli :
- # Si le JDC est relié à une application maitre, on délègue la recherche
- file,text = self.appli.get_file(unite,fic_origine)
- else:
- file = None
- if unite != None:
- 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)
- if not os.path.exists(file):
- raise AsException("%s n'est pas un fichier existant" % unite)
- 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
-
+++ /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 Noyau import N_JDC_CATA
-
-class JDC_CATA:
- def __init__(self):
- self.l_noms_entites=[]
-
- def enregistre(self,commande):
- """
- Cette méthode surcharge la méthode de la classe du Noyau
- Marche avec Noyau mais si un autre package l'a déjà surchargée ???
- """
- N_JDC_CATA.JDC_CATA.enregistre(self,commande)
- self.l_noms_entites.append(commande.nom)
-
- def get_liste_cmd(self):
- self.l_noms_entites.sort()
- return self.l_noms_entites
-
+++ /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.
-#
-#
-# ======================================================================
-"""
-"""
-# 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):
- self.typret=None
- self.recorded_units={}
-
- 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 and self.sd.nom == nom_sd :return self.sd
- for co in self.sdprods:
- 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 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 auxiliaire avec un contexte initial
- context_ini = self.parent.get_contexte_avant(self)
-
- # Indispensable avant de creer un nouveau JDC
- CONTEXT.unset_current_step()
- 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
-
- if not j.cr.estvide():
- # 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))
-
- 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)
-
- # Cette verification n'est plus necessaire elle est integree dans le JDC_INCLUDE
- self.verif_contexte(j_context)
-
- # 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):
- """
- On verifie que le contexte context peut etre inséré dans le jeu
- de commandes à la position de self
- """
- for nom_sd,sd in context.items():
- if not isinstance(sd,ASSD):continue
- #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 toutes les étapes et descendants
- """
- 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 ou ne derivent pas de la meme classe
- et des sd qui ont ete remplacees
- """
- 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])
- 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:
- Lors d'une destruction d'etape, detruit tous les concepts produits
- Un opérateur n a qu un concept produit
- Une procedure n'en a aucun
- Une macro en a en général plus d'un
- """
- if not self.is_reentrant() :
- # l'étape n'est pas réentrante
- # le concept retourné par l'étape est à supprimer car il était
- # créé par l'étape
- if self.sd != None :
- self.parent.del_sdprod(self.sd)
- self.parent.delete_concept(self.sd)
- # On détruit les concepts à droite du signe =
- for co in self.sdprods:
- self.parent.del_sdprod(co)
- self.parent.delete_concept(co)
- # 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
- 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
-
+++ /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 I_MCCOMPO
-class MCBLOC(I_MCCOMPO.MCCOMPO):
- def makeobjet(self):
- return self.definition(val = None, nom = self.nom,parent = self.parent)
-
+++ /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 string,types
-from copy import copy
-
-from Noyau.N_MCLIST import MCList
-from Noyau.N_MCSIMP import MCSIMP
-from Noyau.N_MCFACT import MCFACT
-from Noyau.N_MCBLOC import MCBLOC
-import I_OBJECT
-
-class MCCOMPO(I_OBJECT.OBJECT):
- def getlabeltext(self):
- """
- Retourne le label de self suivant qu'il s'agit d'un MCFACT,
- d'un MCBLOC ou d'un MCFACT appartenant à une MCList :
- utilisée pour l'affichage dans l'arbre
- """
- objet = self.parent.get_child(self.nom)
- # objet peut-être self ou une MCList qui contient self ...
- if isinstance(objet,MCList) :
- index = objet.get_index(self)+1 # + 1 à cause de la numérotation qui commence à 0
- label = self.nom +'_'+`index`+':'
- return label
- else:
- return self.nom
-
- def get_liste_mc_ordonnee(self,liste,dico):
- """
- Retourne la liste ordonnée (suivant le catalogue) 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 + ...
- il faut encore réarranger cette liste (certains mots-clés déjà
- présents ne doivent plus être proposés, règles ...)
- """
- return self.filtre_liste_mc(self.get_liste_mc_ordonnee_brute(liste,dico))
-
- 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 filtre_liste_mc(self,liste_brute):
- """
- Cette méthode est appelée par EFICAS afin de présenter à
- l'utilisateur la liste des enfants possibles de self actualisée
- en fonction du contexte de self. En clair, sont supprimés de la
- liste des possibles (fournie par la définition), les mots-clés
- exclus par les règles de self et les mots-clés ne pouvant plus
- être répétés
- """
- liste = copy(liste_brute)
- liste_mc_presents = self.liste_mc_presents()
- # on enlève les mots-clés non permis par les règles
- for regle in self.definition.regles:
- # la méthode purge_liste est à développer pour chaque règle qui
- # influe sur la liste de choix à proposer à l'utilisateur
- # --> EXCLUS,UN_PARMI,PRESENT_ABSENT
- liste = regle.purge_liste(liste,liste_mc_presents)
- # on enlève les mots-clés dont l'occurrence est déjà atteinte
- liste_copy = copy(liste)
- for k in liste_copy:
- objet = self.get_child(k,restreint = 'oui')
- if objet != None :
- # l'objet est déjà présent : il faut distinguer plusieurs cas
- if isinstance(objet,MCSIMP):
- # un mot-clé simple ne peut pas être répété
- liste.remove(k)
- elif isinstance(objet,MCBLOC):
- # un bloc conditionnel ne doit pas apparaître dans la liste de choix
- liste.remove(k)
- elif 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.remove(k)
- elif isinstance(objet,MCList):
- try :
- nb_occur_maxi = objet[0].definition.max
- if len(objet) >= nb_occur_maxi:
- liste.remove(k)
- except:
- pass
- else :
- #XXX CCAR : les MCNUPLET ne sont pas traités
- if CONTEXT.debug : print ' ',k,' est un objet de type inconnu :',type(objet)
- else :
- # l'objet est absent : on enlève de la liste les blocs
- if self.definition.entites[k].statut=='c' :
- 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):
- """
- Retourne la liste des noms des mots-clés fils de self présents construite
- à partir de self.mc_liste
- """
- l=[]
- for v in self.mc_liste:
- k=v.nom
- l.append(k)
- return l
-
- def ordonne_liste_mc(self,liste_mc_a_ordonner,liste_noms_mc_ordonnee):
- """
- Retourne liste_mc_a_ordonner ordonnée suivant l'ordre
- donné par liste_noms_mc_ordonnee
- """
- liste = []
- # on transforme liste_a_ordonner en un dictionnaire (plus facile à consulter)
- d_mc = {}
- for mc in liste_mc_a_ordonner:
- d_mc[mc.nom]=mc
- # on construit la liste des objets ordonnés
- for nom_mc in liste_noms_mc_ordonnee:
- if d_mc.has_key(nom_mc):
- liste.append(d_mc.get(nom_mc))
- # on la retourne
- return liste
-
- def suppentite(self,objet) :
- """
- Supprime le fils 'objet' de self :
- Retourne 1 si la suppression a pu être effectuée,
- Retourne 0 dans le cas contraire
- """
- self.init_modif()
- if not objet in self.mc_liste:
- # Impossible de supprimer objet. Il n'est pas dans mc_liste
- self.fin_modif()
- return 0
-
- try :
- if hasattr(objet.definition,'position'):
- if objet.definition.position == 'global' :
- self.delete_mc_global(objet)
- elif objet.definition.position == 'global_jdc' :
- self.delete_mc_global_jdc(objet)
- self.mc_liste.remove(objet)
- self.fin_modif()
- return 1
- except:
- self.fin_modif()
- return 0
-
- def isoblig(self):
- return self.definition.statut=='o'
-
- def addentite(self,name,pos=None):
- """
- Ajoute le mot-cle name à la liste des mots-cles de
- l'objet MCCOMPOSE
- """
- 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'):
- if objet.definition.position == 'global' :
- self.append_mc_global(objet)
- 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
- # par la MCList
- test1 = objet.isrepetable()
- old_obj = self.get_child(objet.nom,restreint = 'oui')
- test2 = self.ispermis(objet)
- #print "test1,test2=",test1,test2
- if test1 == 0 and old_obj :
- self.jdc.send_message("L'objet %s ne peut pas être répété" %objet.nom)
- self.fin_modif()
- return 0
- if test2 == 0:
- self.jdc.send_message("L'objet %s ne peut être un fils de %s" %(objet.nom,self.nom))
- self.fin_modif()
- return 0
- if test1 :
- if old_obj :
- #if not isinstance(old_obj,MCList):
- if not old_obj.isMCList():
- # un objet de même nom existe déjà mais ce n'est pas une MCList
- # Il faut en créer une
- # L'objet existant (old_obj) est certainement un MCFACT
- # qui pointe vers un constructeur
- # de MCList : definition.liste_instance
- #print "un objet de même type existe déjà"
- index = self.mc_liste.index(old_obj)
- #XXX remplacé par definition.list_instance : new_obj = MCList()
- new_obj = old_obj.definition.list_instance()
- 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()
- return new_obj
- else :
- # 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
-
- def ispermis(self,fils):
- """
- Retourne 1 si l'objet de nom nom_fils
- est bien permis, cad peut bien être un fils de self,
- Retourne 0 sinon
- """
- if type(fils) == types.StringType :
- # on veut juste savoir si self peut avoir un fils de nom 'fils'
- if self.definition.entites.has_key(fils):
- return 1
- else :
- return 0
- elif type(fils) == types.InstanceType:
- # fils est un objet (commande,mcf,mclist)
- # on est dans le cas d'une tentative de copie de l'objet
- # on veut savoir si l'objet peut bien être un fils de self :
- # la vérification du nom de suffit pas (plusieurs commandes
- # ont le même mot-clé facteur AFFE ... et c'est l'utilisateur
- # qui choisit le père d'où un risque d'erreur)
- if not self.definition.entites.has_key(fils.nom):
- return 0
- else:
- if fils.parent.nom != self.nom : return 0
- return 1
-
- def liste_mc_presents(self):
- """
- Retourne la liste des noms des mots-clés fils de self présents
- construite à partir de self.mc_liste
- """
- l=[]
- for v in self.mc_liste:
- k=v.nom
- l.append(k)
- return l
-
- def delete_concept(self,sd):
- """
- Inputs :
- sd=concept detruit
- Fonction :
- Mettre a jour les fils de l objet suite à la disparition du
- concept sd
- Seuls les mots cles simples MCSIMP font un traitement autre que
- de transmettre aux fils
- """
- 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
- """
- etape = self.get_etape()
- if etape :
- nom = mc.nom
- del etape.mc_globaux[nom]
-
- def delete_mc_global_jdc(self,mc):
- """
- Supprime le mot-clé mc de la liste des mots-clés globaux du jdc
- """
- nom = mc.nom
- del self.jdc.mc_globaux[nom]
-
- 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
-
- 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 child in self.mc_liste:
- l.extend(child.get_sd_utilisees())
- return l
-
- def get_liste_mc_inconnus(self):
- """
- Retourne la liste des mots-clés inconnus dans self
- """
- l_mc = []
- if self.reste_val != {}:
- for k,v in self.reste_val.items() :
- l_mc.append([self,k,v])
- for child in self.mc_liste :
- if child.isvalid() : continue
- l_child = child.get_liste_mc_inconnus()
- for mc in l_child:
- l = [self]
- l.extend(mc)
- l_mc.append(l)
- return l_mc
-
- def verif_condition_bloc(self):
- """
- Evalue les conditions de tous les blocs fils possibles
- (en fonction du catalogue donc de la définition) de self
- et retourne deux listes :
- - la première contient les noms des blocs à rajouter
- - la seconde contient les noms des blocs à supprimer
- """
- liste_ajouts = []
- liste_retraits = []
- dict = self.cree_dict_valeurs(self.mc_liste)
- for k,v in self.definition.entites.items():
- if v.label=='BLOC' :
- 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_ajouts.append(k)
- else :
- # le bloc doit être absent
- if self.get_child(k,restreint = 'oui'):
- # le bloc est présent : il faut l'enlever
- 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()
+++ /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 I_MCCOMPO
-class MCFACT(I_MCCOMPO.MCCOMPO):
- def isrepetable(self):
- """
- Indique si l'objet est répétable.
- Retourne 1 si le mot-clé facteur self peut être répété
- Retourne 0 dans le cas contraire
- """
- if self.definition.max > 1:
- # marche avec '**'
- return 1
- else :
- return 0
-
- def makeobjet(self):
- return self.definition(val = None, nom = self.nom,parent = self.parent)
-
+++ /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 copy import copy
-
-class MCList:
- def isMCList(self):
- """
- Retourne 1 si self est une MCList (liste de mots-clés), 0 sinon (défaut)
- """
- return 1
-
- def get_index(self,objet):
- """
- Retourne la position d'objet dans la liste self
- """
- return self.data.index(objet)
-
- def ajout_possible(self):
- """
- Méthode booléenne qui retourne 1 si on peut encore ajouter une occurrence
- de l'élément que contient self, 0 sinon
- """
- max = self.data[0].definition.max
- if max == '**':
- return 1
- else:
- if len(self) < max :
- return 1
- else:
- return 0
-
- def isoblig(self):
- """
- 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 []
-
- def delete_concept(self,sd):
- """
- Inputs :
- sd=concept detruit
- Fonction :
- Mettre a jour les fils de l objet suite à la disparition
- du concept sd
- Seuls les mots cles simples MCSIMP font un traitement autre
- que de transmettre aux fils
- """
- 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()
- # 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
-
- def get_docu(self):
- return self.data[0].definition.get_docu()
-
- def get_liste_mc_inconnus(self):
- """
- Retourne la liste des mots-clés inconnus dans self
- """
- l_mc = []
- for mcfact in self.data :
- if mcfact.isvalid() : continue
- l_child = mcfact.get_liste_mc_inconnus()
- for mc in l_child:
- l = [self]
- l.extend(mc)
- l_mc.append(l)
- return l_mc
-
- def verif_condition_regles(self,liste_presents):
- """
- Retourne la liste des mots-clés à rajouter pour satisfaire les règles
- en fonction de la liste des mots-clés présents
- """
- # Sans objet pour une liste de mots clés facteurs
- return []
-
- def verif_condition_bloc(self):
- """
- Evalue les conditions de tous les blocs fils possibles
- (en fonction du catalogue donc de la définition) de self et
- retourne deux listes :
- - la première contient les noms des blocs à rajouter
- - la seconde contient les noms des blocs à supprimer
- """
- # 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 ''
-
+++ /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 types,string
-import traceback
-from copy import copy
-from repr import Repr
-myrepr = Repr()
-myrepr.maxstring = 100
-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
-# fin attention
-
-from Extensions import parametre
-import I_OBJECT
-
-class MCSIMP(I_OBJECT.OBJECT):
- def GetText(self):
- """
- Retourne le texte à afficher dans l'arbre représentant la valeur de l'objet
- pointé par self
- """
- if self.valeur == None :
- return None
- elif type(self.valeur) == types.FloatType :
- #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 :
- # 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:
- txt = txt + i*','+ myrepr.repr(val)
- i=1
- txt=txt+')'
- else:
- txt = self.getval()
- if type(txt) != types.StringType:
- if type(txt) == types.InstanceType:
- if isinstance(txt,parametre.PARAMETRE):
- return str(txt)
- return repr(txt)
- # 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 :
- return txt
- else:
- return txt[0:29]
-
- def getval(self):
- """
- Retourne une chaîne de caractère représentant la valeur de self
- """
- val=self.valeur
- if type(val) != types.TupleType :
- try:
- return val.get_name()
- except:
- return val
- else :
- s='( '
- for item in val :
- try :
- s=s+item.get_name()+','
- except:
- s=s+`item`+','
- s=s+' )'
- return s
-
- def get_min_max(self):
- return self.definition.min,self.definition.max
-
- def wait_co(self):
- """
- Méthode booléenne qui retourne 1 si l'objet attend un objet ASSD
- qui n'existe pas encore (type CO()), 0 sinon
- """
- for typ in self.definition.type:
- if type(typ) == types.ClassType :
- if issubclass(typ,CO) :
- return 1
- return 0
-
- def wait_assd(self):
- """
- Méthode booléenne qui retourne 1 si le MCS attend un objet de type ASSD
- ou dérivé, 0 sinon
- """
- for typ in self.definition.type:
- if type(typ) == types.ClassType :
- if issubclass(typ,ASSD) and not issubclass(typ,GEOM):
- return 1
- return 0
-
- def wait_assd_or_geom(self):
- """
- Retourne 1 si le mot-clé simple attend un objet de type
- assd, ASSD, geom ou GEOM
- Retourne 0 dans le cas contraire
- """
- for typ in self.definition.type:
- if type(typ) == types.ClassType :
- if typ.__name__ in ("GEOM","ASSD","geom","assd") or issubclass(typ,GEOM) :
- return 1
- return 0
-
- def wait_geom(self):
- """
- Retourne 1 si le mot-clé simple attend un objet de type GEOM
- Retourne 0 dans le cas contraire
- """
- for typ in self.definition.type:
- if type(typ) == types.ClassType :
- if issubclass(typ,GEOM) : return 1
- return 0
-
- def wait_TXM(self):
- """
- Retourne 1 si le mot-clé simple attend un objet de type TXM
- Retourne 0 dans le cas contraire
- """
- for typ in self.definition.type:
- if typ == 'TXM' :return 1
- return 0
-
- def get_liste_valeurs(self):
- """
- """
- if self.valeur == None:
- return []
- elif type(self.valeur) == types.TupleType:
- return list(self.valeur)
- elif type(self.valeur) == types.ListType:
- return self.valeur
- else:
- return [self.valeur]
-
- def isoblig(self):
- return self.definition.statut=='o'
-
- def set_valeur(self,new_valeur,evaluation='oui'):
- """
- Remplace la valeur de self(si elle existe) par new_valeur
- - si evaluation = 'oui' :
- essaie d'évaluer new_valeur dans le contexte
- - si evaluation = 'non' :
- n'essaie pas d'évaluer (on stocke une string ou
- une valeur de la liste into )
- """
- if evaluation == 'oui' and not self.wait_assd_or_geom():
- valeur,test = self.eval_valeur(new_valeur)
- if test :
- 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
- # dans le contexte
- # Si le mot cle simple attend un type CO on crée un objet de ce
- # 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.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.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.fin_modif()
- return 1
- except:
- self.valeur = new_valeur
- self.val = new_valeur
- self.fin_modif()
- return 1
-
- def eval_valeur(self,new_valeur):
- """
- Essaie d'évaluer new_valeur comme une SD, une déclaration Python
- ou un EVAL:
- Retourne la valeur évaluée (ou None) et le test de réussite (1 ou 0)
- """
- #sd = self.jdc.get_sd_avant_etape(new_valeur,self.etape)
- sd = self.jdc.get_contexte_avant(self.etape).get(new_valeur,None)
- if sd :
- 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:
- if CONTEXT.debug : traceback.print_exc()
- return None,0
-
- def delete_concept(self,sd):
- """
- Inputs :
- sd=concept detruit
- Fonction :
- Met a jour la valeur du mot cle simple suite à la disparition
- du concept sd
- """
- if type(self.valeur) == types.TupleType :
- if sd in self.valeur:
- self.valeur=list(self.valeur)
- self.valeur.remove(sd)
- self.init_modif()
- elif type(self.valeur) == types.ListType:
- if sd in self.valeur:
- self.valeur.remove(sd)
- self.init_modif()
- else:
- if self.valeur == sd:
- self.valeur=None
- 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()
- # 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):
- return self.definition(val = None, nom = self.nom,parent = self.parent)
-
- def get_sd_utilisees(self):
- """
- Retourne une liste qui contient la SD utilisée par self si c'est le cas
- ou alors une liste vide
- """
- l=[]
- if type(self.valeur) == types.InstanceType:
- #XXX Est ce différent de isinstance(self.valeur,ASSD) ??
- if issubclass(self.valeur.__class__,ASSD) : l.append(self.valeur)
- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+++ /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 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),
- 0 sinon (défaut)
- """
- return 0
-
- def get_regles(self):
- """
- Retourne les règles de self
- """
- if hasattr(self,'definition'):
- return self.definition.regles
- elif hasattr(self,'regles'):
- return self.regles
- else :
- 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 fin_modif(self):
- """
- Méthode appelée après qu'une modification a été faite afin de déclencher
- d'éventuels traitements post-modification
- """
- # pour les objets autres que les commandes, aucun traitement spécifique
- # on remonte l'info de fin de modif au parent
- if self.parent:
- self.parent.fin_modif()
-
- def isrepetable(self):
- """
- Indique si l'objet est répétable
- """
- return 0
-
- def liste_mc_presents(self):
- """
- Retourne la liste des noms des mots clés présents
- """
- return []
-
- def get_docu(self):
- return self.definition.get_docu()
-
- def get_liste_mc_inconnus(self):
- """
- Retourne la liste des mots-clés inconnus dans self
- """
- return []
-
- def verif_condition_regles(self,liste_presents):
- """
- Retourne la liste des mots-clés à rajouter pour satisfaire les règles
- en fonction de la liste des mots-clés présents
- """
- liste=[]
- for regle in self.definition.regles:
- liste=regle.verif_condition_regle(liste,liste_presents)
- return liste
-
- def verif_condition_bloc(self):
- """
- Evalue les conditions de tous les blocs fils possibles
- (en fonction du catalogue donc de la définition) de self et
- retourne deux listes :
- - la première contient les noms des blocs à rajouter
- - la seconde contient les noms des blocs à supprimer
- """
- 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 ''
-
-
+++ /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 I_REGLE
-
-class PRESENT_ABSENT(I_REGLE.REGLE):
- def purge_liste(self,liste_a_purger,liste_mc_presents):
- regle_active=0
- if self.mcs[0] in liste_mc_presents:regle_active=1
- if not regle_active : return 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
-
+++ /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 I_REGLE
-
-class PRESENT_PRESENT(I_REGLE.REGLE):
- def verif_condition_regle(self,liste,l_mc_presents):
- mc0=self.mcs[0]
- for mc_present in l_mc_presents:
- if mc_present == mc0 :
- for mc in self.mcs[1:]:
- nb = l_mc_presents.count(mc)
- if nb == 0 : liste.append(mc)
- return liste
- return liste
-
-
+++ /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 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 ""
-
- def get_sdprods(self,nom_sd):
- """
- Fonction : retourne le concept produit par l etape de nom nom_sd
- s il existe sinon None
- Une PROC ne produit aucun concept
- """
- return None
-
- def delete_concept(self,sd):
- """
- Inputs :
- sd=concept detruit
- Fonction :
- Mettre a jour les mots cles de l etape
- suite à la disparition du concept sd
- Seuls les mots cles simples MCSIMP font un traitement autre
- que de transmettre aux fils
- """
- 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:
- 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))
+++ /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 string
-
-class REGLE:
-
- def gettext(self):
- text = self.__class__.__name__+ ' :\n'
- for mc in self.mcs :
- text = text + '\t' + string.strip(mc) + '\n'
- return text
-
- def purge_liste(self,liste_a_purger,liste_mc_presents):
- """
- Cette méthode doit retirer de la liste liste_a_purger
- les éléments qui ne doivent plus apparaitre en fonction du contexte
- """
- # Dans le cas général on ne touche pas à la liste
- return liste_a_purger
-
- def has_operande(self,nom):
- # On peut faire aussi try:self.mcs.index(nom);return 1;except:return 0
- for mc in self.mcs:
- if mc==nom : return 1
- return 0
-
- def verif_condition_regle(self,liste,l_mc_presents):
- return []
-
-
-
+++ /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 I_REGLE
-
-class UN_PARMI(I_REGLE.REGLE):
-
- def purge_liste(self,liste_a_purger,liste_mc_presents):
- regle_active=0
- for mc_present in liste_mc_presents:
- if mc_present in self.mcs:
- regle_active=1
- break
- 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 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.
-#
-#
-# ======================================================================
-"""
- 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()
+++ /dev/null
-# debut entete
-
-import Accas
-from Accas import *
-
-#CONTEXT.debug=1
-
-import ops
-
-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 varpre(ASSD):pass
-class varvitx(ASSD):pass
-class varvity(ASSD):pass
-class varvitz(ASSD):pass
-class eturb(ASSD):pass
-class dturb(ASSD):pass
-class tsr11(ASSD):pass
-class tsr22(ASSD):pass
-class tsr33(ASSD):pass
-class tsr12(ASSD):pass
-class tsr13(ASSD):pass
-class tsr23(ASSD):pass
-class resti(ASSD):pass
-
-class maillage(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
-
-INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
- 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)),
-);
-
-POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude",
- docu="U4.11.03-f1",sd_prod = ops.POURSUITE,
- 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"),
- BASE =FACT(fr="définition des parmè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'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=1,max=3,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=1,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=1,max=1,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TES',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
- GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
- TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
- TAILLE =SIMP(statut='f',typ='I'),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
- PARTITION =SIMP(statut='f',typ='R' ),
- ),
- CODE =FACT("définition d un nom pour l'esemble d'une étude",
- statut='f',min=1,max=1,
- NOM =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
-) ;
-
-FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
- fr="Définition d une fonction",reentrant = 'n',
- regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
- REEL = SIMP(typ = 'shell',max=1),
- ENTIER = SIMP(typ = 'shell',max=1),
- 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",
- X = SIMP(statut ='o',typ='R',
- fr="coordonnée X de la sonde"),
- Y = SIMP(statut ='o',typ='R',
- fr="coordonnée Y de la sonde"),
- Z = SIMP(statut ='o',typ='R',
- fr="coordonnée Z de la sonde")
- );
-
-def defi_scala_prod(**args):
- return varsca
-
-DEFI_SCALA = OPER(nom="DEFI_SCALA",op=2,sd_prod=defi_scala_prod,
-fr="définition d'une inconnue scalaire avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_FLUSCA = OPER(nom="DEFI_FLUSCA",op=2,sd_prod=flusca,fr="définition des fluctuations d'une inconnue scalaire avec ses paramètres physico numériques",
- VARFL = SIMP(statut='o',typ=varsca,fr="scalaire associé au calcul de la variance des fluctuations"),
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable"),
- RVARFL = SIMP(statut='o',typ='R',val_min=0,defaut=0.8,
- fr="nombre de Prandtl pour la variance des fluctuations du scalaire")
- )
- );
-
-DEFI_PRESSION = OPER(nom="DEFI_PRESSION",op=2,sd_prod=varpre,fr="définition del'inconnue pression avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de pression",
- ICONV = SIMP(statut='o',typ='I',defaut=0,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="Pression"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITX = OPER(nom="DEFI_VITX",op=2,sd_prod=varvitx,fr="définition de l'inconnue vitesse X avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse X",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_u1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITY = OPER(nom="DEFI_VITY",op=2,sd_prod=varvity,fr="définition de l'inconnue vitesse Y avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse Y",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_v1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITZ = OPER(nom="DEFI_VITZ",op=2,sd_prod=varvitz,fr="définition de l'inconnue vitesse Z avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse Z",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_w1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable"),
- )
- );
-
-
-DEFI_ETURB = OPER(nom="DEFI_ETURB",op=2,sd_prod=eturb,fr="définition de l'inconnue energie turbulente k-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_DTURB = OPER(nom="DEFI_DTURB",op=2,sd_prod=dturb,fr="définition de l'inconnue dissipation turbulente k-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR11 = OPER(nom="DEFI_TSR11",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R11 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR22 = OPER(nom="DEFI_TSR22",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R22 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR33 = OPER(nom="DEFI_TSR33",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R33 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR12 = OPER(nom="DEFI_TSR12",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R12 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR13 = OPER(nom="DEFI_TSR13",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R13 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR23 = OPER(nom="DEFI_TSR23",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R23 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-
-DEFI_RESTI = OPER(nom="DEFI_RESTI",op=2,sd_prod=resti,fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- );
-
-CALCUL_SATURNE = PROC(nom = "CALCUL_SATURNE",op = 1,
- fr = "définition des paramètres généraux pour un calcul Saturne",
- docu = "néant",reentrant = 'n',
- NomsBibliotheque = NUPL ( max = '**',
- statut = 'o',
- elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"),
- SIMP (typ='TXM',fr="Identifiant de l'isotope dans la bibliotheque")
- )
- ),
- ENVELOPPE = FACT(statut='o',max=01,fr = "gestion de l'enveloppe",
- IFOENV = SIMP(statut='o',typ='I',defaut=2,into=(0,1,2),position='global',
- fr = "mode de communication enveloppe solveur"),
- ENVTOSOLV = BLOC(condition="IFOENV > 0",
- fr = "liaison enveloppe vers solveur",
- IMPEVI = SIMP(statut='o',typ='I',defaut=13,val_min=0,val_max=99,
- fr = "numéro de fichier enveloppe vers solveur"),
- FICEVI = SIMP(statut='o',typ='TXM',defaut="enveloppe_vers_solveur ",
- fr = "nom de fichier enveloppe vers solveur")
- ),
- SOLVTOENV = BLOC(condition="IFOENV > 0",
- fr = "liaison solveur vers enveloppe",
- IMPEVO = SIMP(statut='o',typ='I',defaut=14,val_min=0,val_max=99,
- fr = "numéro de fichier solveur vers enveloppe"),
- FICEVO = SIMP(statut='o',typ='TXM',defaut="solveur_vers_enveloppe ",
- fr = "nom de fichier solveur vers enveloppe")
- )
- ),
- FICHIERS_CALCUL = FACT(statut='f',max=01,
- fr ="définition des fichiers géométrie, suite, stop",
- GEOMETRIE = BLOC(condition="IFOENV == 0",
- fr = "fichier géométrique (pas d'enveloppe)",
- IMPGEO = SIMP(statut='o',typ='I',defaut=10,val_min=0,val_max=99,
- fr = "numéro de fichier géométrique"),
- FICGEO = SIMP(statut='o',typ='TXM',defaut="geomet",
- fr = "nom de fichier géométrique")
- ),
- SUITE_AMONT = BLOC(condition="ISUITE == 1",
- fr = "fichier suite amont",
- IMPAMO = SIMP(statut='o',typ='I',defaut=11,val_min=0,val_max=99,
- fr = "numéro de fichier suite amont"),
- FICGEO = SIMP(statut='o',typ='TXM',defaut="suiamo",
- fr = "nom de fichier suite amont"),
- IFOAMO = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr = "format du fichier suite amont, 0 = binaire")
- ),
- FICHIER_STOP = FACT(fr = "fichier stop",
- IMPSTP = SIMP(statut='o',typ='I',defaut=12,val_min=0,val_max=99,
- fr = "numéro de fichier stop"),
- FICSTP = SIMP(statut='o',typ='TXM',defaut="ficstp",
- fr = "nom de fichier stop")
- ),
- SUITE_AVAL = FACT(fr = "fichier suite aval",
- IMPAVA = SIMP(statut='o',typ='I',defaut=20,val_min=0,val_max=99,
- fr = "numéro de fichier suite aval"),
- FICAVA = SIMP(statut='o',typ='TXM',defaut="suiamo",
- fr = "nom de fichier suite aval"),
- IFOAVA = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr = "format du fichier suite aval, 0 = binaire")
- )
- ),
- POST_PROC_ENSIGHT = FACT(statut='f',max=01,
- fr = "options de post processing par Ensight",
- IFOENS = SIMP(statut='f',typ='I',defaut=-2,into=(-2,-1,0,1),
- fr = "option type de fichier et processus générateur"),
- NTCHR = SIMP(statut='f',typ='I',defaut=-1,
- fr = "périodicité de sortie des fichiers Ensight"),
- ITCHR = SIMP(statut='f',typ='I',defaut=0,val_min=0,
- fr = "compteur des sorties des fichiers Ensight"),
- N3S_ASCII_NOY = BLOC(condition="(IFOENS == -1) and (IFOENV == 0)",
- fr = "format Ensight N3S ASCII généré par le noyau",
- IMPPST = SIMP(statut='o',typ='I',defaut=21,val_min=0,val_max=99,
- fr = "numéro de fichier Ensight"),
- FICPST = SIMP(statut='o',typ='TXM',defaut="dessin",
- fr = "nom de fichier Ensight")
- ),
- P0_NOY = BLOC(condition="((IFOENS == 0) or (IFOENS == 1)) and (IFOENV == 0)",
- fr = "format Ensight P0 généré par le noyau",
- IMPEP0 = SIMP(statut='o',typ='I',defaut=22,val_min=0,val_max=99,
- fr = "numéro de fichier Ensight"),
- EMPCHR = SIMP(statut='o',typ='TXM',defaut="./",
- fr = "répertoire de fichier Ensight"),
- ENTCHR = SIMP(statut='o',typ='TXM',defaut="chr",
- fr = "préfixe nom de fichier Ensight")
- )
- ),
- HISTORIQUE_PONCTUEL = FACT(statut='o',max=01,
- fr = "Sondes historiques",
- FICHIERS_HISTORIQUES = FACT(statut='f',max=01,
- fr = "description des fichiers historiques",
- EMPHIS = SIMP(statut='o',typ='TXM',defaut="./",
- fr="répertoire fichiers historiques"),
- EXTHIS = SIMP(statut='o',typ='TXM',defaut="hst",
- fr="extension fichiers historiques")
- ),
- NTHIST = SIMP(statut='f',typ='I',defaut=-999,
- fr="fréquence de sortie des historiques en pas de temps"),
- NTHSAV = SIMP(statut='f',typ='I',defaut=-999,
- fr="fréquence de sauvegarde des historiques en pas de temps")
- ),
- OPTIONS_TURBULENCE = FACT(statut='o',max=01,
- fr="modèle de turbulence",
- ITURB = SIMP(statut='f',fr="laminaire : 0, k-epsilon :1,Rij-epsilon :2",
- typ='I',into=(0,1,2),defaut=1,position='global'),
- MODTURB = BLOC(condition="ITURB == 1",
- fr = "option k-epsilon",
- IGRAKE = SIMP(statut='o',typ='I',
- fr="prise en compte gravité dans k-epsilon",
- into=(0,1),defaut=0),
- IDEUCH = SIMP(statut='f',typ='I',
- fr="prise en compte k-epsilon deux échelles",
- into=(0,1),defaut=1),
- IKEKOU = SIMP(statut='f',typ='I',
- fr="prise en compte couplage en incréments sur k-epsilon",
- into=(0,1),defaut=1)
- ),
- TEMPTURB = BLOC(condition="ITURB == 1",
- fr = "option k-epsilon",
- ISCALT = SIMP(statut='o',typ=varsca,
- fr=" identificateur inconnue scalaire température ")
- )
- ),
- MARCHE_TEMPS = FACT(statut='o',max=01,
- fr = "définition de la marche en temps",
- DTREF = SIMP(statut='o',fr="pas de temps de référence",
- typ='R',val_min=0),
- IDTVAR = SIMP(statut='f',fr="pas de temps constant : 0, variable temps espace : 1, variable temps : 2",
- typ='I',into=(0,1,2),defaut=0,position='global'),
- # probleme trace eficas quand un mot cle position global change
- PASVAR = BLOC(condition="IDTVAR != 0",fr="options pas de temps variable",
- XCFMAX = SIMP(statut='o',fr="nombre de Courant-Fourier cible",
- typ='R',defaut=0.5,val_min=0),
- FMIN = SIMP(statut='f',fr="rapport min pas calculé DTREF",
- typ='R',defaut=0.1,val_min=0),
- FMAX = SIMP(statut='f',fr="rapport max pas calculé DTREF",
- typ='R',defaut=1000,val_min=0),
- VARRDT = SIMP(statut='f',fr="variation relative max pas calculé entre deux instants",
- typ='R',defaut=0.1,val_min=0)
- )
- ),
- OPTIONS_EQUATIONS = FACT(statut='o',max=01,
- fr = "propriétés des équations, inconnues principales",
- IMGR = SIMP(statut='f',fr="utilisation du multigrille pour la résolution des systèmes linéaires",
- typ='I',into=(0,1),defaut=0),
- IMRGRA = SIMP(statut='f',fr="type de reconstruction des gradients 1 : moindres carrés",
- typ='I',into=(0,1),defaut=0),
- ),
- VARIABLES = FACT(statut='o',max=01,
- fr = "Restitution des grandeurs principales",
- NTLIST = SIMP(statut='f',typ='I',defaut=1,val_min=1,val_max='**',
- fr = "fréquence de sortie (en pas de temps) dans le compte rendu d'éxécution"),
- IWARNI = SIMP(statut='f',typ='I',defaut=2,val_min=0,val_max='**',
- fr = "niveau de détail des impressions dans le compte rendu d'éxécution"),
- MASVOL1 = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée : masse volumique",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : masse volumique",
- defaut="Masse_vol1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur masse volumique")
- ),
- TURB_KE = BLOC(condition="ITURB == 1",
- E_TURB = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée : énergie turbulente",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : energie turbulente",
- defaut="Energie_1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur énergie turbulente")
- ),
- D_TURB = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée : dissipation turbulente",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : dissipation turbulente",
- defaut="Dissipation"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur dissipation turbulente")
- ),
- V_TURB = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée : viscosité turbulente",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : viscosité turbulente",
- defaut="Visc_turb1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur viscosité turbulente")
- ),
- )
- ),
- GESTION_CALCUL = FACT(statut='o',max=01,
- fr = "calcul suite et numéros de pas de temps début et fin",
- ISUITE = SIMP(statut='o',typ='I',defaut=0,into=(0,1),position='global',
- fr = "indicateur calcul suite (1 = suite)"),
- NTPABS = SIMP(statut='f',typ='I',defaut=0,
- fr = "numéro dernier pas de temps calcul précédent (initialisation automatique)"),
- NTMABS = SIMP(statut='o',typ='I',
- fr = "numéro dernier pas de temps visé (absolu)"),
- TTPABS = SIMP(statut='f',typ='R',defaut=0,
- fr = "temps simulation au dernier pas de temps précédent (initialisation automatique)")
- ),
- CONSTANTES_PHYSIQUES=FACT(statut='o',max=01,
- fr = "Grandeurs physiques et modélisation",
- GRAVITE = FACT(statut='o',max=01,
- fr = "composantes de la gravité",
- GX = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon X"),
- GY = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon Y"),
- GZ = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon Z")
- ),
- FLUIDE = FACT(statut='o',max=01,
- fr = "propriétés du fluide",
- RO0 = SIMP(statut ='o',typ='R',val_min=0,fr="masse volumique de référence"),
- VISCL0 = SIMP(statut ='o',typ='R',val_min=0,fr="viscosité dynamique de référence"),
- P0 = SIMP(statut ='o',typ='R',val_min=0,fr="pression de référence")
- ),
- TURBULENCE = BLOC(condition="ITURB >= 0",
- XKAPPA = SIMP(statut ='o',typ='R',defaut=0.42,val_min=0,fr="constante de Karman"),
- CSTLOG = SIMP(statut ='f',typ='R',defaut=5.2,val_min=0,fr="constante de la loi log"),
- YPLULI = SIMP(statut ='f',typ='R',defaut=2/0.42,val_min=0,fr="valeur limite de y+ pour la sous couche visqueuse"),
- CMU = SIMP(statut ='f',typ='R',defaut=0.009,val_min=0,fr="constante C mu"),
- CE1 = SIMP(statut ='f',typ='R',defaut=1.44,val_min=0,fr="constante C epsilon 1"),
- CE2 = SIMP(statut ='f',typ='R',defaut=1.92,val_min=0,fr="constante C epsilon 2"),
- CE3 = SIMP(statut ='f',typ='R',defaut=1.0,val_min=0,fr="constante C epsilon 3"),
- SIGMAK = SIMP(statut ='f',typ='R',defaut=1.0,val_min=0,fr="nombre de Prandtl pour k en k-epsilon"),
- SIGMAE = SIMP(statut ='f',typ='R',defaut=1.3,val_min=0,fr="nombre de Prandtl pour epsilon en k-epsilon"),
- ALMAX = SIMP(statut ='f',typ='R',val_min=0,fr="longueur macroscopique caractéristique du domaine"),
- UREF = SIMP(statut ='f',typ='R',val_min=0,fr="vitesse caractéristique de l'écoulement pour l'initialisation du k-epsilon")
- )
- )
- );
-
-CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
- docu="U4.32.01-d1",reentrant='f',
- regles=(UN_PARMI('VALE_R','LIST_PARA'),),
- FONCTION =SIMP(statut='o',typ=fonction ),
- NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
- VALE_R =SIMP(statut='f',typ='R',max='**'),
- LIST_PARA =SIMP(statut='f',typ=listr8 ),
- INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG","INT") ),
- PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-) ;
-
-LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage,
- fr="Lecture d'un fichier de maillage",
- ang="Readings of a mesh file",
- docu="U4.21.01-f",reentrant='n',
-#
- UNITE =SIMP(statut='f',typ='I',defaut= 20 ),
-#
- FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
- fr="Format du fichier : ASTER ou MED.",
- ang="Format of the file : ASTER or MED.",),
-#
- ABSC_CURV =FACT(statut='f',min=00,max=01,
- TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
- ),
-#
- VERI_MAIL =FACT(statut='d',min=01,max=01,
- APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- ),
-#
- b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
- fr="Informations complémentaires pour la lecture MED.",
- ang="Further information for MED readings.",
-#
-# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
-# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
-#
- NOM_MED = SIMP(statut='f',typ='TXM',
- fr="Nom du maillage dans le fichier MED.",
- ang="Name of the mesh into the MED file.",),
-#
- INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
- ) ,
-#
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
-) ;
-
-DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-f1",repetable='n',
- fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
- sd_prod=ops.DEBUT,
-
- PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
- into=("OUI","NON"),defaut="OUI"),
- BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX",
- statut='f',min=01,max=03,
- FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM',
- into=('GLOBALE','VOLATILE','LOCALE'),),
- TITRE =SIMP(statut='f',typ='TXM'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=01,max=03,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=01,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- CODE =FACT("définition d un nom pour l'esemble d'une étude",
- statut='f',min=01,max=01,
- NOM =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=01,max=01,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TEST',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
- GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
- TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
- TAILLE =SIMP(statut='f',typ='I'),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
- PARTITION =SIMP(statut='f',typ='R'),
- ),
- );
-
-FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
- docu="U4.11.02-f",
- RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE",
- statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données",
- statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
- FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
-) ;
-
-
-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",
-) ;
-
+++ /dev/null
-# debut entete
-import Accas
-from Accas import AU_MOINS_UN,UN_PARMI,EXCLUS,PRESENT_PRESENT
-from Accas import ENSEMBLE,PRESENT_ABSENT
-from Accas import JDC_CATA,NIVEAU
-from Accas import OPER,PROC,MACRO,FORM
-from Accas import SIMP,FACT,BLOC
-from Accas import EVAL,PARAMETRE,COMMENTAIRE,PARAMETRE_EVAL,COMMANDE_COMM
-from Accas import ASSD,CO,GEOM,fonction,geom,assd
-#
-__version__="$Name: $"
-__Id__="$Id: cata_saturne.py,v 1.10 2000/10/24 10:32:56 iliade Exp $"
-#
-
-import ops
-
-JdC = JDC_CATA(code='SATURNE',
- execmodul=None,
- regles = (AU_MOINS_UN('CALCUL_SATURNE'),),
- )
-
-# 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
-
-class sonde(ASSD):pass
-class varsca(ASSD):pass
-class flusca(ASSD):pass
-class varpre(ASSD):pass
-class varvitx(ASSD):pass
-class varvity(ASSD):pass
-class varvitz(ASSD):pass
-class eturb(ASSD):pass
-class dturb(ASSD):pass
-class tsr11(ASSD):pass
-class tsr22(ASSD):pass
-class tsr33(ASSD):pass
-class tsr12(ASSD):pass
-class tsr13(ASSD):pass
-class tsr23(ASSD):pass
-class resti(ASSD):pass
-
-# fin entete
-
-INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
- 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)),
-);
-
-POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude",
- docu="U4.11.03-f1",sd_prod = ops.POURSUITE,
- 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"),
- BASE =FACT(fr="définition des parmè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'),
- CAS =SIMP(statut='f',typ='TXM'),
- NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
- LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
- LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
- ),
- IMPRESSION =FACT(statut='f',min=1,max=3,
- FICHIER =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='o',typ='I'),
- ),
- CATALOGUE =FACT(statut='f',min=1,max=10,
- FICHIER =SIMP(statut='o',typ='TXM'),
- TITRE =SIMP(statut='f',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I'),
- ),
- DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
- statut='f',min=1,max=1,
- JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- JEVEUX =SIMP(fr="force les déchargement sur disque",
- statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
- ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
- statut='f',typ='TXM',into=('TES',)),
- ),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
- GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
- TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
- TAILLE =SIMP(statut='f',typ='I'),
- TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
- PARTITION =SIMP(statut='f',typ='R' ),
- ),
- CODE =FACT("définition d un nom pour l'esemble d'une étude",
- statut='f',min=1,max=1,
- NOM =SIMP(statut='o',typ='TXM'),
- UNITE =SIMP(statut='f',typ='I',defaut=15),
- ),
-) ;
-
-FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
- fr="Définition d une fonction",reentrant = 'n',
- regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
- REEL = SIMP(typ = 'shell',max=1),
- ENTIER = SIMP(typ = 'shell',max=1),
- COMPLEXE = SIMP(typ = 'shell',max=1),
-) ;
-
-DEFI_SONDE = OPER(nom="DEFI_SONDE",op= 1,sd_prod=sonde,
- docu="U2D1",
- fr="définition d'une sonde historique avec ses coordonnées",
- X = SIMP(statut ='o',typ='R',
- fr="coordonnée X de la sonde"),
- Y = SIMP(statut ='o',typ='R',
- fr="coordonnée Y de la sonde"),
- Z = SIMP(statut ='o',typ='R',
- fr="coordonnée Z de la sonde")
- );
-
-def defi_scala_prod(**args):
- return varsca
-
-DEFI_SCALA = OPER(nom="DEFI_SCALA",op=2,sd_prod=defi_scala_prod,
-fr="définition d'une inconnue scalaire avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_FLUSCA = OPER(nom="DEFI_FLUSCA",op=2,sd_prod=flusca,fr="définition des fluctuations d'une inconnue scalaire avec ses paramètres physico numériques",
- VARFL = SIMP(statut='o',typ=varsca,fr="scalaire associé au calcul de la variance des fluctuations"),
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable"),
- RVARFL = SIMP(statut='o',typ='R',val_min=0,defaut=0.8,
- fr="nombre de Prandtl pour la variance des fluctuations du scalaire")
- )
- );
-
-DEFI_PRESSION = OPER(nom="DEFI_PRESSION",op=2,sd_prod=varpre,fr="définition del'inconnue pression avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de pression",
- ICONV = SIMP(statut='o',typ='I',defaut=0,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="Pression"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITX = OPER(nom="DEFI_VITX",op=2,sd_prod=varvitx,fr="définition de l'inconnue vitesse X avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse X",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_u1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITY = OPER(nom="DEFI_VITY",op=2,sd_prod=varvity,fr="définition de l'inconnue vitesse Y avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse Y",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_v1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITZ = OPER(nom="DEFI_VITZ",op=2,sd_prod=varvitz,fr="définition de l'inconnue vitesse Z avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse Z",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_w1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable"),
- )
- );
-
-
-DEFI_ETURB = OPER(nom="DEFI_ETURB",op=2,sd_prod=eturb,fr="définition de l'inconnue energie turbulente k-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_DTURB = OPER(nom="DEFI_DTURB",op=2,sd_prod=dturb,fr="définition de l'inconnue dissipation turbulente k-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR11 = OPER(nom="DEFI_TSR11",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R11 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR22 = OPER(nom="DEFI_TSR22",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R22 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR33 = OPER(nom="DEFI_TSR33",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R33 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR12 = OPER(nom="DEFI_TSR12",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R12 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR13 = OPER(nom="DEFI_TSR13",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R13 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR23 = OPER(nom="DEFI_TSR23",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R23 Rij-eps avec ses paramètres physico numériques",
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-
-DEFI_RESTI = OPER(nom="DEFI_RESTI",op=2,sd_prod=resti,fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- );
-
-CALCUL_SATURNE = PROC(nom = "CALCUL_SATURNE",op = 1,
- fr = "définition des paramètres généraux pour un calcul Saturne",
- docu = "néant",reentrant = 'n',
- ENVELOPPE = FACT(statut='o',max=01,fr = "gestion de l'enveloppe",
- IFOENV = SIMP(statut='o',typ='I',defaut=2,into=(0,1,2),position='global',
- fr = "mode de communication enveloppe solveur"),
- ENVTOSOLV = BLOC(condition="IFOENV > 0",
- fr = "liaison enveloppe vers solveur",
- IMPEVI = SIMP(statut='o',typ='I',defaut=13,val_min=0,val_max=99,
- fr = "numéro de fichier enveloppe vers solveur"),
- FICEVI = SIMP(statut='o',typ='TXM',defaut="enveloppe_vers_solveur ",
- fr = "nom de fichier enveloppe vers solveur")
- ),
- SOLVTOENV = BLOC(condition="IFOENV > 0",
- fr = "liaison solveur vers enveloppe",
- IMPEVO = SIMP(statut='o',typ='I',defaut=14,val_min=0,val_max=99,
- fr = "numéro de fichier solveur vers enveloppe"),
- FICEVO = SIMP(statut='o',typ='TXM',defaut="solveur_vers_enveloppe ",
- fr = "nom de fichier solveur vers enveloppe")
- )
- ),
- FICHIERS_CALCUL = FACT(statut='f',max=01,
- fr ="définition des fichiers géométrie, suite, stop",
- GEOMETRIE = BLOC(condition="IFOENV == 0",
- fr = "fichier géométrique (pas d'enveloppe)",
- IMPGEO = SIMP(statut='o',typ='I',defaut=10,val_min=0,val_max=99,
- fr = "numéro de fichier géométrique"),
- FICGEO = SIMP(statut='o',typ='TXM',defaut="geomet",
- fr = "nom de fichier géométrique")
- ),
- SUITE_AMONT = BLOC(condition="ISUITE == 1",
- fr = "fichier suite amont",
- IMPAMO = SIMP(statut='o',typ='I',defaut=11,val_min=0,val_max=99,
- fr = "numéro de fichier suite amont"),
- FICGEO = SIMP(statut='o',typ='TXM',defaut="suiamo",
- fr = "nom de fichier suite amont"),
- IFOAMO = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr = "format du fichier suite amont, 0 = binaire")
- ),
- ),
- POST_PROC_ENSIGHT = FACT(statut='f',max=01,
- fr = "options de post processing par Ensight",
- IFOENS = SIMP(statut='f',typ='I',defaut=-2,into=(-2,-1,0,1),
- fr = "option type de fichier et processus générateur"),
- NTCHR = SIMP(statut='f',typ='I',defaut=-1,
- fr = "périodicité de sortie des fichiers Ensight"),
- ITCHR = SIMP(statut='f',typ='I',defaut=0,val_min=0,
- fr = "compteur des sorties des fichiers Ensight"),
- N3S_ASCII_NOY = BLOC(condition="(IFOENS == -1) and (IFOENV == 0)",
- fr = "format Ensight N3S ASCII généré par le noyau",
- IMPPST = SIMP(statut='o',typ='I',defaut=21,val_min=0,val_max=99,
- fr = "numéro de fichier Ensight"),
- FICPST = SIMP(statut='o',typ='TXM',defaut="dessin",
- fr = "nom de fichier Ensight")
- ),
- P0_NOY = BLOC(condition="((IFOENS == 0) or (IFOENS == 1)) and (IFOENV == 0)",
- fr = "format Ensight P0 généré par le noyau",
- IMPEP0 = SIMP(statut='o',typ='I',defaut=22,val_min=0,val_max=99,
- fr = "numéro de fichier Ensight"),
- EMPCHR = SIMP(statut='o',typ='TXM',defaut="./",
- fr = "répertoire de fichier Ensight"),
- ENTCHR = SIMP(statut='o',typ='TXM',defaut="chr",
- fr = "préfixe nom de fichier Ensight")
- )
- ),
- HISTORIQUE_PONCTUEL = FACT(statut='o',max=01,
- fr = "Sondes historiques",
- NTHIST = SIMP(statut='f',typ='I',defaut=-999,
- fr="fréquence de sortie des historiques en pas de temps"),
- NTHSAV = SIMP(statut='f',typ='I',defaut=-999,
- fr="fréquence de sauvegarde des historiques en pas de temps")
- ),
- OPTIONS_TURBULENCE = FACT(statut='o',max=01,
- fr="modèle de turbulence",
- ITURB = SIMP(statut='f',fr="laminaire : 0, k-epsilon :1,Rij-epsilon :2",
- typ='I',into=(0,1,2),defaut=1,position='global'),
- MODTURB = BLOC(condition="ITURB == 1",
- fr = "option k-epsilon",
- IGRAKE = SIMP(statut='o',typ='I',
- fr="prise en compte gravité dans k-epsilon",
- into=(0,1),defaut=0),
- IDEUCH = SIMP(statut='f',typ='I',
- fr="prise en compte k-epsilon deux échelles",
- into=(0,1),defaut=1),
- IKEKOU = SIMP(statut='f',typ='I',
- fr="prise en compte couplage en incréments sur k-epsilon",
- into=(0,1),defaut=1)
- ),
- TEMPTURB = BLOC(condition="ITURB == 1",
- fr = "option k-epsilon",
- ISCALT = SIMP(statut='o',typ=varsca,
- fr=" identificateur inconnue scalaire température ")
- )
- ),
- MARCHE_TEMPS = FACT(statut='o',max=01,
- fr = "définition de la marche en temps",
- DTREF = SIMP(statut='o',fr="pas de temps de référence",
- typ='R',val_min=0),
- IDTVAR = SIMP(statut='f',fr="pas de temps constant : 0, variable temps espace : 1, variable temps : 2",
- typ='I',into=(0,1,2),defaut=0,position='global'),
- # probleme trace eficas quand un mot cle position global change
- PASVAR = BLOC(condition="IDTVAR != 0",fr="options pas de temps variable",
- XCFMAX = SIMP(statut='o',fr="nombre de Courant-Fourier cible",
- typ='R',defaut=0.5,val_min=0),
- FMIN = SIMP(statut='f',fr="rapport min pas calculé DTREF",
- typ='R',defaut=0.1,val_min=0),
- FMAX = SIMP(statut='f',fr="rapport max pas calculé DTREF",
- typ='R',defaut=1000,val_min=0),
- VARRDT = SIMP(statut='f',fr="variation relative max pas calculé entre deux instants",
- typ='R',defaut=0.1,val_min=0)
- )
- ),
- OPTIONS_EQUATIONS = FACT(statut='o',max=01,
- fr = "propriétés des équations, inconnues principales",
- IMGR = SIMP(statut='f',fr="utilisation du multigrille pour la résolution des systèmes linéaires",
- typ='I',into=(0,1),defaut=0),
- IMRGRA = SIMP(statut='f',fr="type de reconstruction des gradients 1 : moindres carrés",
- typ='I',into=(0,1),defaut=0),
- ),
- VARIABLES = FACT(statut='o',max=01,
- fr = "Restitution des grandeurs principales",
- NTLIST = SIMP(statut='f',typ='I',defaut=1,val_min=1,val_max='**',
- fr = "fréquence de sortie (en pas de temps) dans le compte rendu d'éxécution"),
- IWARNI = SIMP(statut='f',typ='I',defaut=2,val_min=0,val_max='**',
- fr = "niveau de détail des impressions dans le compte rendu d'éxécution"),
- ),
- GESTION_CALCUL = FACT(statut='o',max=01,
- fr = "calcul suite et numéros de pas de temps début et fin",
- ISUITE = SIMP(statut='o',typ='I',defaut=0,into=(0,1),position='global',
- fr = "indicateur calcul suite (1 = suite)"),
- NTPABS = SIMP(statut='f',typ='I',defaut=0,
- fr = "numéro dernier pas de temps calcul précédent (initialisation automatique)"),
- NTMABS = SIMP(statut='o',typ='I',
- fr = "numéro dernier pas de temps visé (absolu)"),
- TTPABS = SIMP(statut='f',typ='R',defaut=0,
- fr = "temps simulation au dernier pas de temps précédent (initialisation automatique)")
- ),
- CONSTANTES_PHYSIQUES=FACT(statut='o',max=01,
- fr = "Grandeurs physiques et modélisation",
- TURBULENCE = BLOC(condition="ITURB >= 0",
- XKAPPA = SIMP(statut ='o',typ='R',defaut=0.42,val_min=0,fr="constante de Karman"),
- CSTLOG = SIMP(statut ='f',typ='R',defaut=5.2,val_min=0,fr="constante de la loi log"),
- YPLULI = SIMP(statut ='f',typ='R',defaut=2/0.42,val_min=0,fr="valeur limite de y+ pour la sous couche visqueuse"),
- CMU = SIMP(statut ='f',typ='R',defaut=0.009,val_min=0,fr="constante C mu"),
- CE1 = SIMP(statut ='f',typ='R',defaut=1.44,val_min=0,fr="constante C epsilon 1"),
- CE2 = SIMP(statut ='f',typ='R',defaut=1.92,val_min=0,fr="constante C epsilon 2"),
- CE3 = SIMP(statut ='f',typ='R',defaut=1.0,val_min=0,fr="constante C epsilon 3"),
- SIGMAK = SIMP(statut ='f',typ='R',defaut=1.0,val_min=0,fr="nombre de Prandtl pour k en k-epsilon"),
- SIGMAE = SIMP(statut ='f',typ='R',defaut=1.3,val_min=0,fr="nombre de Prandtl pour epsilon en k-epsilon"),
- ALMAX = SIMP(statut ='f',typ='R',val_min=0,fr="longueur macroscopique caractéristique du domaine"),
- UREF = SIMP(statut ='f',typ='R',val_min=0,fr="vitesse caractéristique de l'écoulement pour l'initialisation du k-epsilon")
- )
- )
- );
-
+++ /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/xpdf"
-# Utilisateur/Développeur
-isdeveloppeur = "NON"
-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 = (
- ('ASTER','v1',os.path.join(rep_cata,'cata_saturne2.py'),'asterv5'),
- ('ASTER','v2',os.path.join(rep_cata,'cata_saturne.py'),'python','defaut'),
- )
-
+++ /dev/null
-#!/usr/bin/env python
-"""
- Ce module sert à lancer EFICAS configuré pour Code_Mini
-"""
-# Modules Python
-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
-
-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:
- main()
-
-
+++ /dev/null
-#@ MODIF ops Cata DATE 23/10/2002 AUTEUR DURAND C.DURAND
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-# Modules Python
-import types
-import string,linecache,os,traceback,re
-
-# Modules Eficas
-import Accas
-from Accas import ASSD
-
-try:
- import aster
- # Si le module aster est présent, on le connecte
- # au JDC
- import Build.B_CODE
- Build.B_CODE.CODE.codex=aster
-except:
- pass
-
-def DEBUT(self,PAR_LOT,**args):
- """
- Fonction sdprod de la macro DEBUT
- """
- self.jdc.set_par_lot(PAR_LOT)
-
-def POURSUITE(self,PAR_LOT,**args):
- """
- Fonction sdprod de la macro POURSUITE
- """
- self.jdc.set_par_lot(PAR_LOT)
- if self.codex and os.path.isfile("glob.1"):
- # Le module d'execution est accessible et glob.1 est present
- if hasattr(self,'fichier_init'):return
- self.fichier_init='glob.1'
- self.jdc.initexec()
- lot,ier,lonuti,concepts=self.codex.poursu(self,1)
- self.icmd=lonuti
- #print "Fin de debut",ier,lot,lonuti
- pos=0
- d={}
- while pos+80 < len(concepts)+1:
- nomres=concepts[pos:pos+8]
- concep=concepts[pos+8:pos+24]
- nomcmd=concepts[pos+24:pos+40]
- statut=concepts[pos+40:pos+48]
- if nomres[0] not in (' ','.','&') and statut != '&DETRUIT':
- exec nomres+'='+string.lower(concep)+'()' in self.parent.g_context,d
- pos=pos+80
- for k,v in d.items():
- self.parent.NommerSdprod(v,k)
- self.g_context=d
- return
- else:
- # Si le module d'execution n est pas accessible ou glob.1 absent on
- # demande un fichier (EFICAS)
- # Il faut éviter de réinterpréter le fichier à chaque appel de
- # POURSUITE
- if hasattr(self,'fichier_init'):
- return
- self.make_poursuite()
-
-def POURSUITE_context(self,d):
- """
- Fonction op_init de la macro POURSUITE
- """
- # self représente la macro POURSUITE ...
- d.update(self.g_context)
- # Une commande POURSUITE n'est possible qu'au niveau le plus haut
- # On ajoute directement les concepts dans le contexte du jdc
- # XXX est ce que les concepts ne sont pas ajoutés plusieurs fois ??
- for v in self.g_context.values():
- if isinstance(v,ASSD) : self.jdc.sds.append(v)
-
-def INCLUDE(self,UNITE,**args):
- """
- Fonction sd_prod pour la macro INCLUDE
- """
- if not UNITE : return
- if hasattr(self,'unite'):return
- self.unite=UNITE
-
- if self.jdc and self.jdc.par_lot == 'NON':
- # On est en mode commande par commande
- # On teste la validite de la commande avec interruption eventuelle
- cr=self.report()
- self.parent.cr.add(cr)
- if not cr.estvide():
- raise EOFError
-
- self.make_include(unite=UNITE)
-
-def INCLUDE_context(self,d):
- """
- Fonction op_init pour macro INCLUDE
- """
- for k,v in self.g_context.items():
- d[k]=v
-
-def detruire(self,d):
- """
- Cette fonction est la fonction op_init de la PROC DETRUIRE
- """
- sd=[]
- for mc in self["CONCEPT"]:
- mcs=mc["NOM"]
- if type(mcs) == types.ListType or type(mcs) == types.TupleType:
- for e in mcs:
- if isinstance(e,ASSD):
- sd.append(e)
- e=e.nom
- if d.has_key(e):del d[e]
- if self.jdc.sds_dict.has_key(e):del self.jdc.sds_dict[e]
- else:
- if isinstance(mcs,ASSD):
- sd.append(mcs)
- mcs=mcs.nom
- if d.has_key(mcs):del d[mcs]
- if self.jdc.sds_dict.has_key(mcs):del self.jdc.sds_dict[mcs]
- for s in sd:
- # On signale au parent que le concept s n'existe plus apres l'étape self
- self.parent.delete_concept_after_etape(self,s)
-
-def subst_materiau(text,NOM_MATER,EXTRACTION):
- """
- Cette fonction retourne un texte obtenu à partir du texte passé en argument (text)
- en substituant le nom du materiau par NOM_MATER
- et en réalisant les extractions spéciifées dans EXTRACTION
- """
- lines=string.split(text,'\n')
- if EXTRACTION:
- ll=[]
- regmcf=re.compile(r" *(.*) *= *_F\( *## +(.*) +(.*)")
- regmcs=re.compile(r" *(.*) *= *([^ ,]*) *, *## +([^ ]*) *([^ ]*)")
- regfin=re.compile(r" *\) *")
- temps={};lmcf=[]
- for e in EXTRACTION:
- mcf=e['COMPOR']
- lmcf.append(mcf)
- temps[mcf]=e['TEMP_EVAL']
- FLAG=0
- for l in lines:
- m=regmcf.match(l)
- if m: # On a trouve un mot cle facteur "commentarise"
- if m.group(2) == "SUBST": # il est de plus substituable
- if temps.has_key(m.group(3)): # Il est a substituer
- ll.append(" "+m.group(3)+"=_F(")
- mcf=m.group(3)
- TEMP=temps[mcf]
- FLAG=1 # Indique que l'on est en cours de substitution
- else: # Il n est pas a substituer car il n est pas dans la liste demandee
- ll.append(l)
- else: # Mot cle facteur commentarise non substituable
- ll.append(l)
- else: # La ligne ne contient pas un mot cle facteur commentarise
- if FLAG == 0: # On n est pas en cours de substitution
- ll.append(l)
- else: # On est en cours de substitution. On cherche les mots cles simples commentarises
- m=regmcs.match(l)
- if m: # On a trouve un mot cle simple commentarise
- if m.group(3) == "EVAL":
- ll.append(" "+m.group(1)+' = EVAL("'+m.group(4)+"("+str(TEMP)+')"),')
- elif m.group(3) == "SUPPR":
- pass
- else:
- ll.append(l)
- else: # On cherche la fin du mot cle facteur en cours de substitution
- m=regfin.match(l)
- if m: # On l a trouve. On le supprime de la liste
- FLAG=0
- del temps[mcf]
- ll.append(l)
- else:
- ll=lines
-
- for l in ll:
- print l
- lines=ll
- ll=[]
- for l in lines:
- l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1)
- ll.append(l)
- text=string.join(ll,'\n')
- return text
-
-def INCLUDE_MATERIAU(self,NOM_AFNOR,TYPE_MODELE,VARIANTE,TYPE_VALE,NOM_MATER,
- EXTRACTION,INFO,**args):
- """
- Fonction sd_prod pour la macro INCLUDE_MATERIAU
- """
- mat=string.join((NOM_AFNOR,'_',TYPE_MODELE,'_',VARIANTE,'.',TYPE_VALE),'')
- if not hasattr(self,'mat') or self.mat != mat or self.nom_mater != NOM_MATER :
- # On récupère le répertoire des matériaux dans les arguments
- # supplémentaires du JDC
- rep_mat=self.jdc.args.get("rep_mat","NOrep_mat")
- f=os.path.join(rep_mat,mat)
- self.mat=mat
- self.nom_mater=NOM_MATER
- if not os.path.isfile(f):
- del self.mat
- self.make_contexte(f,"#Texte sans effet pour reinitialiser le contexte a vide\n")
- raise "Erreur sur le fichier materiau: "+f
- # Les materiaux sont uniquement disponibles en syntaxe Python
- # On lit le fichier et on supprime les éventuels \r
- text=string.replace(open(f).read(),'\r\n','\n')
- # On effectue les substitutions necessaires
- self.prefix=NOM_MATER
- self.text= subst_materiau(text,NOM_MATER,EXTRACTION)
- if INFO == 2:
- print "INCLUDE_MATERIAU: ", self.mat,' ',NOM_MATER,'\n'
- print self.text
- # on execute le texte fourni dans le contexte forme par
- # le contexte de l etape pere (global au sens Python)
- # et le contexte de l etape (local au sens Python)
- # Il faut auparavant l'enregistrer aupres du module linecache (utile pour nommage.py)
- linecache.cache[f]=0,0,string.split(self.text,'\n'),f
- if self.jdc.par_lot == 'NON':
- # On est en mode commande par commande
- # On teste la validite de la commande avec interruption eventuelle
- cr=self.report()
- self.parent.cr.add(cr)
- if not cr.estvide():
- raise EOFError
- # Et en plus il faut executer la fonction ops014 avant les sous
- # commandes car le prefixe PRFXCO doit etre initialise dans le Fortran
- self.codex.opsexe(self,0,-1,-self.definition.op)
-
- self.make_contexte(f,self.text)
-
+++ /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')
-#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
-# Module Cyclops version 0.9.4.
-# Released to the public domain 18-Jul-1999,
-# by Tim Peters (tim_one@email.msn.com).
-
-# Provided as-is; use at your own risk; no warranty; no promises; enjoy!
-
-# Some parts of the code, and many ideas, were stolen with gratitude from:
-# Lars Marius Garshol's Plumbo.py.
-# Guido van Rossum.
-# Python's standard library module repr.py.
-
-"""Module Cyclops -- stare at cycles in Python data structures.
-
-Cyclops started life as a faster implementation of Lars Marius
-Garshol's Plumbo.py, but almost instantly diverged due to feature
-bloat.
-
-The only object of real interest is class CycleFinder. First get an
-instance of that:
-
-import Cyclops
-z = Cyclops.CycleFinder()
-
-This creates a cycle-tracker with an empty "root set". Then tell z
-which objects you're curious about (more on that later).
-
-After running your regular code, tell z to look for cycles:
-
-z.find_cycles(purge_dead_roots=0)
- Look for cycles reachable from the root set.
- Return 1 if a cycle was found, else 0.
- If optional arg purge_dead_roots is true, first remove objects
- from the root set whose true refcount (exclusive of CycleFinder
- internal references) is 0.
- See also method install_cycle_filter.
-
-Then various methods can be used to get useful reports. Which are
-*most* useful you'll just have to play with. If you have a few small
-cycles, show_cycles is very revealing; if you have many cycles,
-show_sccs and show_arcs *may* cut to the heart of the problem quickly.
-
-z.show_stats()
- Print some stats about the last run of find_cycles: number of
- distinct structured objects reachable from the root set, number of
- distinct objects involved in a cycle, number of cycles found,
- number of strongly connected components, number of objects in the
- root set, and number of edges (graph arcs) examined.
-
-z.show_cycles()
- Print each cycle found to stdout.
-
-z.show_cycleobjs(compare=typename_address_cmp)
- Print a listing of all objects involved in some cycle. The
- objects are first sorted via the optional "compare" function. By
- default, sorts first by type name and then by address (id); among
- objects of instance type, sorts by the instances' class names;
- among objects of class type, sorts by the classes' names.
-
-x.show_sccs(compare=typename_address_cmp)
- Print a listing of cycle objects partitioned into strongly
- connected components (that is, the largest groupings possible such
- that each object in an SCC is reachable from every other object in
- that SCC). Within each SCC, objects are sorted as for
- show_cycleobjs.
-
-z.show_arcs(compare=None)
- Print a listing of all arc types involved in some cycle. An arc
- is characterized by:
- 1) its source object type or class,
- 2) the selector (e.g. attribute) from the source, and
- 3) its destination object type or class.
- The output is a table with four columns: count, source, selector,
- destination. The table is sorted by default on columns 2, 3, 4
- in that order; the first column (count) is ignored. Specify an
- alternative compare function to change the sort; the compare
- function sees pairs of the form
- ((source_type, selector, destination_type), count)
- where each element of the triple is a string and count is an int.
-
-z.show_obj(obj)
- Print a 2-line description of obj, including its address, adjusted
- refcount, type name and a short representation of its contents.
- See the method docstring for details.
-
-There are two ways to add objects to the root set:
-
-z.run(func, args=(), kwargs={})
- Run func (with optional args and keyword arguments kwargs), adding
- every object initialized by an __init__ function to the root set.
- This is the closest Cyclops gets to plumbo's "lazy" mode. It's
- factored out here so it can be intermixed with the next method.
-
-z.register(obj)
- Add obj to the root set.
-
-To see the current root set,
-
-z.get_rootset()
- Return the root set, as a list of (rc, cyclic?, obj) tuples.
- See method docstring for details. In short, rc is the true
- refcount (CycleFinder internal references are subtracted out);
- cyclic is true iff the object is in a known cycle; and obj is the
- object.
-
-Finally, to empty the root set again:
-
-z.clear()
- Empty the root set, and release all other internal references to
- register'ed objects.
-
-Notes:
-
-+ Run Cyclops.py directly to exercise its _test() function; _test()
- sets up some common kinds of cycles, and should be easy to follow.
- Stare at the _test() code and the output until their relationship is
- clear.
-
-+ find_cycles is linear-time, in the number of objects reachable from
- the root set plus the number of arcs connecting them. This makes
- Cyclops pleasant for "real life" apps with tens of thousands of
- reachable objects, and at least usable well beyond that.
-
-+ A (at least one) reference to each root-set object is maintained
- internally, so roots cannot die before invoking .clear() (or the
- CycleFinder is finalized). This can distort the truth of your
- program, if a __del__ method of some root object that's not involved
- in a cycle could have caused cycles to get broken (this is unusual,
- but possible!).
-
- If you suspect it's happening, run find_cycles again passing true
- (optional arg purge_dead_roots): find_cycles then releases all
- internal refs to root set objects whose true refcount is 0, thus
- allowing their __del__ methods to get invoked. After that,
- find_cycles chases the remaining root set objects again. You may
- need several iterations of invoking find_cycles(1) before reaching a
- steady state!
-
-+ By default, cycles are chased through these (& only these) objects:
-
- - Lists.
- - Tuples.
- - Dicts (both keys and values).
- - Class instances (through their attributes).
- - Classes (through their attributes).
- - Instance method objects (through .im_self and .im_class).
-
- In particular, modules are not chased. Maybe they should be. See
- the next section for a way to force modules to get chased.
-
-
-CHANGING THE SET OF INTERESTING TYPES
-
-Methods of a CycleFinder object can be used to alter/query its view of
-the set of types find_cycles "chases":
-
-z.chase_type(t, t_refs_func, t_tag_func)
- Add type t to the set of interesting types.
- t_refs_func is a function of one argument x, where type(x) is t;
- it should return a sequence (typically a list or tuple) of all
- objects directly reachable from x.
- t_tag_func is a function of two arguments x and i, where type(x)
- is t and i in range(len(t_refs_func(x))). It should return a
- brief string describing how t_refs_func(x][i] was obtained from
- x.
- See the _XXX_refs and _XXX_tag functions at the start of the
- module for examples of all this.
-
-z.dont_chase_type(t)
- Remove type t from the set of interesting types. find_cycles
- will not attempt to chase the objects reachable from objects of
- type t.
-
-z.get_chased_types()
- Return the set of interesting types, as a list.
-
-
-CHANGING THE SET OF INTERESTING CYCLES
-
-Sometimes there are "expected" cycles you would like to ignore; e.g.,
-this can happen if you install a module-chaser, because there are
-cycles in Python's implementation you typically don't care about (for
-example, if your module imports sys, there's a cycle because
-sys.modules points back to your module!).
-
-z.install_cycle_filter(filter_func=None)
- filter_func=None -> a way to ignore "expected" cycles.
-
- filter_func is a function of one argument, a cycle. Each time
- find_cycles finds a cycle, the cycle is passed to filter_func. The
- cycle is ignored unless filter_func returns true. Passing None
- for filter_func restores the default behavior (do not ignore any
- cycle).
-
- A cycle is a list of (object, index) pairs, where the first object
- in the list is the same as the last object in the list, and where
- the object at cycle[i][0] is the cycle[i][1]'th object obtained
- from object cycle[i-1][0]. cycle[0][1] should be ignored (it tells
- us how we got to the first item in the cycle to begin with, but
- that's irrelevant to the cycle).
-
-
-CASE STUDY
-
-Below is the driver I used to track cycles in IDLE; it's a replacement
-for IDLE's idle.py.
-
-At first it didn't install function or module chasers, or a cycle filter,
-and printed everything. This turned up a bunch of easy cases, and the
-show_sccs output was surprisingly revealing (all the cycles fell into a
-handful of SCCs, which corresponded to distinct cycle-creating IDLE
-subsystems). show_arcs was also very helpful in getting the big picture.
-show_cycles output was too voluminous to be helpful.
-
-After those cycles were broken, the job got harder. A module chaser was
-added, which turned up another class of cycles, and then a function
-chaser turned up 100s more. Most of these involved expected cycles due
-to Python's implementation, so a cycle filter was installed to ignore
-cycles that didn't contain at least one class instance. The remaining
-cycles were isolated special cases, and only show_cycles output was
-of real use.
-
-After all cycles were purged, IDLE was still leaking, so driver output was
-added to display the root-set objects still alive at the end. This turned
-up many cases where objects were living only because registration in the
-root set was keeping them alive. So a loop was added to the driver that
-repeatedly purges dead root-set objects and tries again. The __del__
-methods of the purged roots caused other root objects to become trash,
-and after several iterations of this the output reaches a steady state.
-
-IDLE is still leaking (as of 18-Jul-1999), but ever less so, and while
-Cyclops is no longer finding cycles, the driver's "live at the end"
-output is still the best clue I've got for guessing what to do next.
-
-Interesting: At the start of this, it turned out that almost all cycles
-were reachable from places outside themselves. That is, they would not
-have been considered trash even if Python used a mark-&-sweep form of
-garbage collection. IDLE's problems, in large part inherited from Tkinter,
-are simply that "everything points to everything else". The good news is
-that Guido was able to clean most of this up just by adding reference-
-purging code to widgets' explicitly-called destroy() methods.
-
-#! /usr/bin/env python
-import PyShell
-import Cyclops
-import types
-
-def mod_refs(x):
- return x.__dict__.values()
-
-def mod_tag(x, i):
- return "." + x.__dict__.keys()[i]
-
-def func_refs(x):
- return x.func_globals, x.func_defaults
-
-def func_tag(x, i):
- return (".func_globals", ".func_defaults")[i]
-
-def instance_filter(cycle):
- for obj, index in cycle:
- if type(obj) is types.InstanceType:
- return 1
- return 0
-
-# Note: PyShell binds ModifiedInterpreter.locals to __main__.__dict__,
-# and __main__ is *us*. So if we don't keep the CycleFinder instance
-# out of the global namespace here, z starts chewing over its own
-# instance attributes. Nothing breaks, but the output is at best
-# surprising.
-
-def hidez():
- z = Cyclops.CycleFinder()
- z.chase_type(types.ModuleType, mod_refs, mod_tag)
- z.chase_type(types.FunctionType, func_refs, func_tag)
- z.install_cycle_filter(instance_filter)
- z.run(PyShell.main)
- z.find_cycles()
- z.show_stats()
- z.show_cycles()
- # z.show_cycleobjs()
- # z.show_sccs()
- z.show_arcs()
- while 1:
- print "*" * 70
- print "non-cyclic root set objects:"
- sawitalready = {}
- numsurvivors = numdead = 0
- for rc, cyclic, x in z.get_rootset():
- if not sawitalready.has_key(id(x)):
- sawitalready[id(x)] = 1
- if rc == 0:
- print "DEAD",
- numdead = numdead + 1
- z.show_obj(x)
- elif not cyclic:
- numsurvivors = numsurvivors + 1
- z.show_obj(x)
- x = None
- print numdead, "dead;", numsurvivors, "non-cycle & alive"
- if numdead == 0:
- break
- print "releasing dead root-set objects and trying again"
- z.find_cycles(1)
- z.show_stats()
-
-hidez()
-"""
-
-# 0,9,4 18-Jul-1999
-# added purge_dead_roots arg to find_cycles
-# rearranged module docstring; added IDLE driver sample
-# 0,9,3 29-Jun-1999
-# renamed print_obj to show_obj, and advertised it
-# redid adjusted refcount computations to account for root-set
-# objects too
-# changed get_rootset to return (refcount, cyclic?, obj) triples
-# 0,9,2 27-Jun-1999
-# freed __init_tracer from dependence on name "self"
-# rearranged __find_cycles' inner loop for a nice little speed gain
-# which was promptly way more than lost by new code to compute &
-# display adjusted refcounts
-# which was partly regained by rewriting all that
-# 0,9,1 26-Jun-1999
-# added SCC computation/display
-# added show_cycles; find_cycles no longer prints anything
-# changed all showXXX names to show_XXX
-# added install_cycle_filter
-# 0,9,0 24-Jun-1999
-# first version I put under source control
-
-__version__ = 0, 9, 4
-
-#########################################################################
-# Type-specific reference revealers.
-#
-# _T_refs(obj) should return a sequence of all objects directly
-# reachable from obj.
-#
-# _T_tag(obj, i) should return a string briefly describing how
-# _T_refs(obj][i] was obtained from obj.
-#
-# Why the separation? Speed and space: string tags are never
-# computed unless a cycle is found and so something needs to be
-# printed.
-
-def _dict_refs(x):
- return x.keys() + x.values()
-def _dict_tag(x, i):
- n = len(x)
- if i < n:
- return ".keys()[%d]" % i
- else:
- return "[%s]" % _quickrepr(x.keys()[i-n])
-
-def _list_refs(x):
- return x
-def _list_tag(x, i):
- return "[%d]" % i
-
-_tuple_refs = _list_refs
-_tuple_tag = _list_tag
-
-def _instance_refs(x):
- # the keys are strings, so not interesting to return
- return x.__dict__.values()
-def _instance_tag(x, i):
- return "." + x.__dict__.keys()[i]
-
-_class_refs = _instance_refs
-_class_tag = _instance_tag
-
-def _instance_method_refs(x):
- return (x.im_self, x.im_class)
-def _instance_method_tag(x, i):
- return (".im_self", ".im_class")[i]
-
-import types
-_default_refs_dispatcher = {
- types.DictType: _dict_refs,
- types.ListType: _list_refs,
- types.TupleType: _tuple_refs,
- types.InstanceType: _instance_refs,
- types.ClassType: _class_refs,
- types.MethodType: _instance_method_refs,
-}
-_default_tag_dispatcher = {
- types.DictType: _dict_tag,
- types.ListType: _list_tag,
- types.TupleType: _tuple_tag,
- types.InstanceType: _instance_tag,
- types.ClassType: _class_tag,
- types.MethodType: _instance_method_tag,
-}
-_InstanceType = types.InstanceType
-_ClassType = types.ClassType
-del types
-
-del _dict_refs, _list_refs, _tuple_refs, _instance_refs, \
- _class_refs, _instance_method_refs
-del _dict_tag, _list_tag, _tuple_tag, _instance_tag, \
- _class_tag, _instance_method_tag
-
-#########################################################################
-# A class to make short string representations of objects, for speed
-# and brevity. The std repr.repr sorts dicts by keys, but we refer to
-# the keys via numeric subscript in cycle reports, so first a derived
-# class that leaves dicts in raw order. Also, instances, instance
-# methods and classes frequently appear in cycle reports, so avoid
-# chopping their reprs at all. We're only trying to prevent massive
-# expense for massive lists, tuples & dicts.
-
-import repr
-_repr = repr
-del repr
-
-class _CyclopsRepr(_repr.Repr):
-
- def __init__(self):
- _repr.Repr.__init__(self)
- # Boost the limit on types we don't know about; else it's too
- # easy to get a useless repr string when adding new types via
- # CycleFinder.chase_type.
- # Perhaps better to expose this class too, but-- sheesh --
- # this module is complicated enough!
- self.maxstring = self.maxother = 40
-
- # override base dictionary formatter; the code is almost the same,
- # we just leave the dict order alone
-
- def repr_dictionary(self, x, level):
- n = len(x)
- if n == 0:
- return '{}'
- if level <= 0:
- return '{...}'
- s = ''
- for k, v in x.items()[:min(n, self.maxdict)]:
- if s:
- s = s + ', '
- s = s + self.repr1(k, level-1)
- s = s + ': ' + self.repr1(v, level-1)
- if n > self.maxdict:
- s = s + ', ...'
- return '{' + s + '}'
-
- # don't chop instance, class or instance method reprs
-
- def repr_instance(self, x, level):
- try:
- return `x`
- # Bugs in x.__repr__() can cause arbitrary
- # exceptions -- then make up something
- except:
- return '<' + x.__class__.__name__ + ' instance at ' + \
- hex(id(x))[2:] + '>'
-
- def repr_class(self, x, level):
- return `x`
-
- repr_instance_method = repr_class
-
-_quickrepr = _CyclopsRepr().repr
-
-#########################################################################
-# CycleFinder is the workhorse.
-
-def typename_address_cmp(x, y):
- if isinstance(x, _InstanceType) and isinstance(y, _InstanceType):
- xname, yname = x.__class__.__name__, y.__class__.__name__
- elif isinstance(x, _ClassType) and isinstance(y, _ClassType):
- xname, yname = x.__name__, y.__name__
- else:
- xname, yname = type(x).__name__, type(y).__name__
- return cmp((xname, id(x)), (yname, id(y)))
-
-class CycleFinder:
- """Class for finding cycles in Python data structures.
-
- See Cyclops module docstring for details.
- """
-
- def __init__(self):
- """Create a cycle finder with empty root set."""
-
- self.clear()
- self.refs_dispatcher = _default_refs_dispatcher.copy()
- self.tag_dispatcher = _default_tag_dispatcher.copy()
- self.cycle_filter = None
-
- def clear(self):
- """Remove all internal references to external objects.
-
- Empties the root set.
- Does not change the set of types this CycleFinder chases.
- Does not change the cycle filter in effect.
- """
-
- self.roots = []
- self.__reset()
-
- def register(self, obj):
- """obj -> add object obj to the root set."""
-
- self.roots.append(obj)
-
- def run(self, func, args=(), kwargs={}):
- """func, args=(), kwargs={} -> add objects to root set by magic.
-
- Function func is invoked with arguments args and keyword
- arguments kwargs. For the duration of the call, each class
- instance initialized by an __init__ call is automatically
- added to the root set. The result of invoking func is
- returned. """
-
- # This clever method of trapping __init__ invocations was
- # stolen from Lars' plumbo.py.
- import sys
- sys.setprofile(self.__init_tracer)
- try:
- return apply(func, args, kwargs)
- finally:
- sys.setprofile(None)
-
- def find_cycles(self, purge_dead_roots=0):
- """purge_dead_roots=0 -> look for cycles, return true if found.
-
- Identify all cycles among objects reachable from the root set.
- Return true iff at least one cycle is found.
-
- This should be called before any of the show_XXX methods.
- Note that it's OK to add more objects to the root set and
- call it again, or to change the set of chased types, etc.
- find_cycles starts over from scratch each time it's called.
-
- If optional arg purge_dead_roots is true (default false),
- before searching for cycles the root set is purged of all
- objects that the preceding run of find_cycles determined had a
- true refcount of 0 (that is, the root set objects that are
- still alive only because they appear in the root set).
- Purging these allows their finalizers to get invoked, which
- may allow a cascade of other objects (including cycles) to go
- away too.
-
- See also method install_cycle_filter.
- """
-
- if purge_dead_roots and self.roots:
- id2rc = self.id2rc.get
- survivors = []
- for x in self.roots:
- if id2rc(id(x), None) != 0:
- survivors.append(x)
- self.roots = survivors
- del x, survivors, id2rc
-
- self.__reset()
- self.__find_cycles(self.roots, 0)
- del self.seenids[id(self.roots)] # not a user-visible object
-
- # Compute true refcounts for objects in cycles.
- id2rc = self.id2rc
- from sys import getrefcount
- for x in self.cycleobjs.values():
- # From the system refcount, subtract one for each of:
- # being an element in the loop temp cycleobjs.values()
- # being bound to "x"
- # being an argument to getrefcount
- # being a value in the cycleobjs dict
- # showing up exactly once somewhere in self.sccno2objs
- xid = id(x)
- id2rc[xid] = getrefcount(x) - 5
-
- # Need also to subtract refs due to appearances in
- # self.cycles. Complication: some pairs in self.cycles may
- # be shared.
- seenpairs = {}
- isknown = seenpairs.has_key
- for cycle in self.cycles:
- for pair in cycle:
- pairid = id(pair)
- if not isknown(pairid):
- seenpairs[pairid] = 1
- xid = id(pair[0])
- id2rc[xid] = id2rc[xid] - 1
- del isknown, seenpairs
-
- # And need also to subtract refs for membership is self.roots.
- # While we're at it, also compute adjusted refcounts for other
- # root set objects.
- for x in self.roots:
- xid = id(x)
- if id2rc.has_key(xid):
- id2rc[xid] = id2rc[xid] - 1
- else:
- assert not self.cycleobjs.has_key(xid)
- # Subtract one for each of:
- # being bound to "x"
- # being an argument to getrefcount
- # being in self.roots
- id2rc[xid] = getrefcount(x) - 3
-
- return len(self.cycles) > 0
-
- def install_cycle_filter(self, filter_func=None):
- """filter_func=None -> a way to ignore "expected" cycles.
-
- See module docstring for details. This is a callback function
- invoked whenever find_cycles() finds a cycle; the cycle is
- ignored unless the callback returns true.
- """
-
- self.cycle_filter = filter_func
-
- def show_stats(self):
- """Print statistics for the last run of find_cycles."""
-
- self._print_separator()
- print "# objects in root set:", len(self.roots)
- print "# distinct structured objects reachable:", len(self.seenids)
- print "# distinct structured objects in cycles:", len(self.cycleobjs)
- print "# cycles found:", len(self.cycles)
- print "# cycles filtered out:", self.ncyclesignored
- print "# strongly-connected components:", len(self.sccno2objs)
- print "# arcs examined:", self.narcs
-
- def show_cycles(self):
- """Print all cycles to stdout."""
-
- self._print_separator()
- print "# all cycles:"
- n = len(self.cycles)
- for i in xrange(n):
- self._print_cycle(self.cycles[i])
- if i < n-1:
- print "-" * 20
-
- def show_cycleobjs(self, compare=typename_address_cmp):
- """compare=typename_address_cmp -> print all objects in cycles.
-
- Prints to stdout. Each distinct object find_cycles found in a
- cycle is displayed. The set of objects found in cycles is
- first sorted by the optional "compare" function. By default,
- objects are sorted using their type name as the primary key
- and their storage address (id) as the secondary key; among
- objects of instance type, sorts by the instances' class names;
- among objects of class type, sorts by the classes' names.
- """
-
- self._print_separator()
- print "# objects involved in cycles:"
- objs = self.cycleobjs.values()
- objs.sort(compare)
- for obj in objs:
- self.show_obj(obj)
-
- def show_sccs(self, compare=typename_address_cmp):
- """compare=typename_address_cmp -> print SCCs.
-
- Prints to stdout. Shows the objects in cycles partitioned into
- strongly connected components (that is, the largest groupings
- possible such that each object in an SCC is reachable from every
- other object in that SCC). Within each SCC, objects are sorted
- as for show_cycleobjs.
- """
-
- self._print_separator()
- print "# cycle objects partitioned into maximal SCCs:"
- sccs = self.sccno2objs.values()
- n = len(sccs)
- for i in xrange(n):
- print "--- SCC", i+1, "of", n
- objs = sccs[i]
- objs.sort(compare)
- for obj in objs:
- self.show_obj(obj)
-
- def show_arcs(self, compare=None):
- """compare=None -> print unique arc types in cycles.
-
- See module docstring for details. Briefly, each arc in a
- cycle is categorized by the type of the source node, the kind
- of arc (how we got from the source to the destination), and
- the type of the destination node. Each line of output
- consists of those three pieces of info preceded by the count
- of arcs of that kind. By default, the rows are sorted first
- by column 2 (source node type), then by columns 3 and 4.
- """
-
- self._print_separator()
- print "# arc types involved in cycles:"
- items = self.arctypes.items()
- if compare:
- items.sort(compare)
- else:
- items.sort()
- for triple, count in items:
- print "%6d %-20s %-20s -> %-20s" % ((count,) + triple)
-
- def get_rootset(self):
- """Return the root set, as a list of (rc, cyclic?, obj) tuples.
-
- Should be called after find_cycles. For each object in the
- root set, returns a triple consisting of
- refcount
- number of outstanding references less those due to
- CycleFinder internals; see show_obj docstring for more
- details; this will be None if find_cycles hasn't been
- run, or not since the last clear()
- cyclic?
- true (1) iff obj is known to be in a cycle
- obj
- the object
- """
-
- result = []
- getrc = self.id2rc.get
- incycle = self.cycleobjs.has_key
- for x in self.roots:
- xid = id(x)
- result.append((getrc(xid, None), incycle(xid), x))
- return result
-
- def chase_type(self, t, t_refs_func, t_tag_func):
- """t, t_refs_func, t_tag_func -> chase type t.
-
- See module docstring for details.
- """
-
- self.refs_dispatcher[t] = t_refs_func
- self.tag_dispatcher[t] = t_tag_func
-
- def dont_chase_type(self, t):
- """t -> remove type t from the set of chased types.
-
- See module docstring for details.
- """
-
- try:
- del self.refs_dispatcher[t], \
- self.tag_dispatcher[t]
- except KeyError:
- pass
-
- def get_chased_types(self):
- """Return the set of chased types, as a list."""
-
- return self.refs_dispatcher.keys()
-
- def __init_tracer(self, frame, event, args):
- if event == "call" and frame.f_code.co_name == "__init__":
- # We want to capture the first argument -- this works whether
- # or not it's named "self", and in case the function is like
- # def __init__(*args):
- # it's still OK: we'll pick up the name 'args', and add the
- # tuple it's bound to to the root set; the tuple's first
- # element is "self", so will be found by the tuple-chaser.
- locals = frame.f_code.co_varnames
- if locals:
- # first argname is first element of locals
- self.register(frame.f_locals[locals[0]])
-
- def __reset(self):
- # Clear out everything except:
- # the root set
- # the refs_dispatcher
- # the tag_dispatcher
- # the cycle filter
-
- # stack exactly mirrors __find_cycles' recursive calls; it's a
- # list of (object, index) pairs.
- self.stack = []
-
- # Map id of active object to its index in self.stack. Since
- # it's a depth-first search, there's a cycle iff we hit an
- # object that's already on the stack.
- self.id2stacki = {}
-
- # Set of (addresses of) all interesting objects seen. Since
- # we use a depth-first search, there's never a reason to
- # revisit a node.
- self.seenids = {}
-
- # List of all cycles found; each element is a stack slice (a
- # list of (object, index) pairs).
- self.cycles = []
-
- # Set of objects found in cycles (maps id(obj) -> obj).
- self.cycleobjs = {}
-
- # Classifies arcs found in cycles, mapping
- # (source_type, selector, destination_type) triples to a count
- # of how many times that triple appears in a cycle.
- self.arctypes = {}
-
- # Support for computing strongly-connected components (SCC).
- # We do this by merging cycles into equivalence classes.
- # Could be done faster by e.g. Tarjan's algorithm in
- # __find_cycles, but would rather keep that lean since cycles
- # are expected to be unusual.
- self.nextsccno = 1 # monotonically increasing SCC id
- self.id2sccno = {} # map id(obj) to obj's sccno
- self.sccno2objs = {} # map sccno back to list of objects
-
- # For objects in cycles and root set, map address to true
- # reference count.
- self.id2rc = {}
-
- # Number of arcs examined.
- self.narcs = 0
-
- # Number of cycles ignored (filtered out).
- self.ncyclesignored = 0
-
- def __find_cycles(self, obj, i, id=id, type=type, len=len):
- # This can be called an enormous number of times, so speed
- # tricks are appropriate.
-
- stack = self.stack
-
- # Set of ids of objects being, or formerly, chased.
- seenids = self.seenids
- already_seen = seenids.has_key
-
- # Maps active object id to index in stack.
- id2stacki = self.id2stacki
- currently_on_stack = id2stacki.has_key
-
- refs_dispatcher = self.refs_dispatcher
- is_interesting_type = refs_dispatcher.has_key
-
- myid = id(obj)
- seenids[myid] = 1
- id2stacki[myid] = len(stack)
- stack.append((obj, i))
- refs = refs_dispatcher[type(obj)](obj)
- self.narcs = self.narcs + len(refs)
- for i in xrange(len(refs)):
- child = refs[i]
- if is_interesting_type(type(child)):
- childid = id(child)
- if not already_seen(childid):
- self.__find_cycles(child, i)
- elif currently_on_stack(childid):
- cycle = stack[id2stacki[childid]:]
- cycle.append((child, i)) # complete the cycle
- self.__study_cycle(cycle)
-
- del stack[-1], id2stacki[myid]
-
- # a helper for __study_cycle
- def __obj2arcname(self, obj):
- if isinstance(obj, _InstanceType):
- name = obj.__class__.__name__ + "()"
- elif isinstance(obj, _ClassType):
- name = obj.__name__
- else:
- name = type(obj).__name__
- return name
-
- def __study_cycle(self, slice):
- assert len(slice) >= 2
-
- if self.cycle_filter is not None and \
- not self.cycle_filter(slice):
- self.ncyclesignored = self.ncyclesignored + 1
- return
-
- self.cycles.append(slice)
-
- # Pick (or create) an SCC equivalence class for this cycle.
- sccnowinner = self.id2sccno.get(id(slice[0][0]), None)
- if sccnowinner is None:
- sccnowinner = self.nextsccno
- self.nextsccno = self.nextsccno + 1
- self.sccno2objs[sccnowinner] = []
- classwinner = self.sccno2objs[sccnowinner]
-
- for i in xrange(len(slice)-1):
- obj1 = slice[i][0]
- key1 = self.__obj2arcname(obj1)
-
- obj2, index = slice[i+1]
- key2 = self.tag_dispatcher[type(obj1)](obj1, index)
-
- key3 = self.__obj2arcname(obj2)
-
- key = (key1, key2, key3)
- self.arctypes[key] = self.arctypes.get(key, 0) + 1
-
- self.cycleobjs[id(obj1)] = obj1
-
- # Merge the equivalence class for obj1 into classwinner.
- thissccno = self.id2sccno.get(id(obj1), None)
- if thissccno is None:
- self.id2sccno[id(obj1)] = sccnowinner
- classwinner.append(obj1)
- elif thissccno != sccnowinner:
- # merge obj1's entire equivalence class
- tomerge = self.sccno2objs[thissccno]
- for obj2 in tomerge:
- self.id2sccno[id(obj2)] = sccnowinner
- classwinner.extend(tomerge)
- del self.sccno2objs[thissccno]
-
- ################################################################
- # Various output routines. If someone is motivated enough to
- # change one of these, they're motivated enough to subclass us!
-
- def show_obj(self, obj):
- """obj -> print short description of obj to sdtout.
-
- This is of the form
-
- <address> rc:<refcount> <typename>
- repr: <shortrepr>
-
- where
- <address>
- hex address of obj
- <refcount>
- If find_cycles() has been run and obj is in the root set
- or was found in a cycle, this is the number of references
- outstanding less the number held internally by
- CycleFinder. In most cases, this is what the true
- refcount would be had you not used CycleFinder at all.
- You can screw that up, e.g. by installing a cycle filter
- that holds on to references to one or more cycle elements.
- If find_cycles() has not been run, or has but obj wasn't
- found in a cycle and isn't in the root set, <refcount> is
- "?".
- <typename>
- type(obj), as a string. If obj.__class__ exists, also
- prints the class name.
- <shortrepr>
- repr(obj), but using a variant of the std module repr.py
- that limits the number of characters displayed.
- """
-
- objid = id(obj)
- rc = self.id2rc.get(objid, "?")
- print hex(objid), "rc:" + str(rc), type(obj).__name__,
- if hasattr(obj, "__class__"):
- print obj.__class__,
- print
- print " repr:", _quickrepr(obj)
-
- def _print_separator(self):
- print "*" * 70
-
- def _print_cycle(self, slice):
- n = len(slice)
- assert n >= 2
- print "%d-element cycle" % (n-1)
- for i in xrange(n):
- obj = slice[i][0]
- self.show_obj(obj)
- if i < n-1:
- index = slice[i+1][1]
- print " this" + \
- self.tag_dispatcher[type(obj)](obj, index), \
- "->"
-
-def _test():
- class X:
- def __init__(me, name):
- me.name = name
- def __repr__(self):
- return "X(" + `self.name` + ")"
-
- a, b, c, d = X('a'), X('b'), X('c'), X('d')
- a.k = b
- b.k = c
- c.k = a
- a.y = b.y = c.y = d
- d.k = {'harrumph': (1, 2, d, 3)}
- e = X('e')
- e.selfref = e
- a.gotoe = e
- a.__repr__ = a.__repr__
-
- class Y: pass
- X.gotoy = Y
- Y.gotox = X
-
- lonely = X('lonely')
-
- z = CycleFinder()
- z.register(a)
- z.register(lonely)
- del a, b, c, d, e, X, Y, lonely
- z.find_cycles()
- z.show_stats()
- z.show_cycles()
- z.show_cycleobjs()
- z.show_sccs()
- z.show_arcs()
- print "dead root set objects:"
- for rc, cyclic, x in z.get_rootset():
- if rc == 0:
- z.show_obj(x)
- z.find_cycles(1)
- z.show_stats()
-
-if __name__ == "__main__":
- _test()
+++ /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)
+++ /dev/null
-"""
- Ce module sert à tracer les appels aux methodes pendant
- l'exécution.
- Mode d'emploi :
- Au début de la zone à tracer faire : Trace.begin_trace()
- à la fin de la zone faire : Trace.end_trace()
-
-"""
-import sys
-
-def begin_trace():
- sys.settrace(trace_dispatch)
-
-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 = '???'
- 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 == '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()
-
+++ /dev/null
-import time
-f=open('timing.out','w')
-temps={}
-
-def debut(event):
- #temps[event]=time.clock()
- temps[event]=time.time()
-
-def fin(event):
- #temps[event]=time.clock()-temps[event]
- temps[event]=time.time()-temps[event]
- f.write("%s %.4f\n"%(event,temps[event]))
+++ /dev/null
-#@ MODIF N_ASSD Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
-
-"""
-import string
-
-class ASSD:
- """
- Classe de base pour definir des types de structures de donnees ASTER
- equivalent d un concept ASTER
- """
- idracine="SD"
-
- def __init__(self,etape=None,sd=None,reg='oui'):
- """
- reg est un paramètre qui vaut oui ou non :
- - si oui (défaut) : on enregistre la SD auprès du JDC
- - si non : on ne l'enregistre pas
- """
- self.etape=etape
- self.sd=sd
- self.nom=None
- if etape:
- self.parent=etape.parent
- else:
- self.parent=CONTEXT.get_current_step()
- if self.parent :
- self.jdc = self.parent.get_jdc_root()
- else:
- self.jdc = None
-
- if not self.parent:
- self.id=None
- elif reg == 'oui' :
- self.id = self.parent.reg_sd(self)
- else :
- self.id = self.parent.o_register(self)
-
- def __getitem__(self,key):
- return self.etape[key]
-
- def is_object(valeur):
- """
- Indique si valeur est d'un type conforme à la classe (retourne 1)
- ou non conforme (retourne 0)
- """
- return 0
-
- def get_name(self):
- """
- Retourne le nom de self, éventuellement en le demandant au JDC
- """
- if not self.nom :
- try:
- self.nom=self.parent.get_name(self) or self.id
- except:
- self.nom=""
- if string.find(self.nom,'sansnom') != -1 or self.nom == '':
- self.nom = self.id
- return self.nom
-
- def supprime(self):
- """
- Cassage des boucles de références pour destruction du JDC
- """
- self.etape = None
- self.sd = None
- self.jdc = None
- self.parent = None
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitASSD(self)
-
-
-class assd(ASSD):
- def is_object(valeur):
- """
- Indique si valeur est d'un type conforme à la classe (1)
- ou non conforme (0)
- La classe assd est utilisée pour valider tout objet
- """
- return 1
-
-
+++ /dev/null
-#@ MODIF N_BLOC Noyau DATE 29/05/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe de definition BLOC
- qui permet de spécifier les caractéristiques des blocs de mots clés
-"""
-
-import types,string,sys
-import traceback
-
-import N_ENTITE
-import N_MCBLOC
-from N_Exception import AsException
-
-class BLOC(N_ENTITE.ENTITE):
- """
- Classe pour definir un bloc de mots-cles
-
- Cette classe a deux attributs de classe :
-
- - class_instance qui indique la classe qui devra etre utilisée
- pour créer l'objet qui servira à controler la conformité d'un
- bloc de mots-clés avec sa définition
-
- - label qui indique la nature de l'objet de définition (ici, BLOC)
-
- """
- class_instance = N_MCBLOC.MCBLOC
- label = 'BLOC'
-
- def __init__(self,fr="",ang="",docu="",regles=(),statut='f',condition=None,
- **args):
-
- """
- Un bloc est caractérisé par les attributs suivants :
-
- - fr : chaine de caractere commentaire pour aide en ligne (en francais)
-
- - ang : chaine de caractere commentaire pour aide en ligne (en anglais)
-
- - regles : liste d'objets de type REGLE pour vérifier la cohérence des sous-objets
-
- - statut : obligatoire ('o') ou facultatif ('f')
-
- - condition : chaine de caractère evaluable par l'interpreteur Python
-
- - entites : dictionnaire contenant les sous-objets de self (mots-clés). La clé du dictionnaire
- est le nom du mot-clé et la valeur l'objet de définition correspondant. Cet attribut
- est initialisé avec l'argument args de la méthode __init__
-
- """
- # Initialisation des attributs
- self.fr=fr
- self.ang=ang
- self.docu=docu
- if type(regles)== types.TupleType:
- self.regles=regles
- else:
- self.regles=(regles,)
- self.statut=statut
- self.condition=condition
- self.entites=args
- self.affecter_parente()
-
- def __call__(self,val,nom,parent=None):
- """
- Construit un objet MCBLOC a partir de sa definition (self)
- de sa valeur (val), de son nom (nom) et de son parent dans l arboresence (parent)
- """
- return self.class_instance(nom=nom,definition=self,val=val,parent=parent)
-
- def verif_cata(self):
- """
- Cette méthode vérifie si les attributs de définition sont valides.
- Les éventuels messages d'erreur sont écrits dans l'objet compte-rendu (self.cr).
- """
- if type(self.fr) != types.StringType :
- self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`)
- if type(self.docu) != types.StringType :
- self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu`)
- if type(self.regles) != types.TupleType :
- self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles` )
- if self.statut not in ['f','o'] :
- self.cr.fatal("L'attribut 'statut' doit valoir 'o' ou 'f' : %s" %`self.statut` )
- if self.condition != None :
- if type(self.condition) != types.StringType :
- self.cr.fatal("L'attribut 'condition' doit etre une chaine de caractères : %s" %`self.condition`)
- else:
- self.cr.fatal("La condition ne doit pas valoir None !")
- self.verif_cata_regles()
-
- def verif_presence(self,dict,globs):
- """
- Cette méthode vérifie si le dictionnaire passé en argument (dict)
- est susceptible de contenir un bloc de mots-clés conforme à la
- définition qu'il porte.
-
- Si la réponse est oui, la méthode retourne 1
-
- Si la réponse est non, la méthode retourne 0
-
- Le dictionnaire dict a pour clés les noms des mots-clés et pour valeurs
- les valeurs des mots-clés
- """
- # On recopie le dictionnaire pour protéger l'original
- dico=dict.copy()
- if self.condition != None :
- try:
- test = eval(self.condition,globs,dico)
- return test
- except NameError:
- # erreur 'normale' : un mot-clé n'est pas présent et on veut l'évaluer dans la condition
- 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 SyntaxError:
- # le texte de la condition n'est pas du Python correct --> faute de catalogue
- 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:
- 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))
- else :
- return 0
-
+++ /dev/null
-#@ MODIF N_CO Noyau DATE 29/05/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 N_ASSD import ASSD
-from N_Exception import AsException
-import N_utils
-
-class CO(ASSD):
- def __init__(self,nom):
- ASSD.__init__(self,etape=None,sd=None,reg='oui')
- #
- # On demande le nommage du concept
- #
- if self.parent :
- try:
- self.parent.NommerSdprod(self,nom)
- except AsException,e:
- appel=N_utils.callee_where(niveau=2)
- raise AsException("Concept CO, fichier: ",appel[1]," ligne : ",appel[0],'\n',e)
- else:
- self.nom=nom
-
+++ /dev/null
-#@ MODIF N_CR Noyau DATE 29/05/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.
-#
-#
-# ======================================================================
-""" Ce module contient la classe compte-rendu de validation
-"""
-
-import string
-
-class CR :
- """
- Classe servant à la construction et à l'affichage des objets Comptes-rendus
- """
- def __init__(self,verbeux = 'non',debut='',fin='',dec=' '):
- """
- Attributs
- - verbeux
- - debut
- - fin
- - dec
- """
- self.verbeux = verbeux
- self.debut=debut
- self.fin=fin
- self.dec=dec
- self.crok=[]
- self.crwarn=[]
- self.crfatal=[]
- self.crexception=[]
- self.subcr=[]
-
- def ok(self,comment):
- """ Ajoute un commentaire OK à la liste crok"""
- self.crok.append(comment)
-
- def warn(self,comment):
- """ Ajoute un commentaire Warning à la liste crwarn"""
- self.crwarn.append(comment)
-
- def fatal(self,comment):
- """ Ajoute un commentaire Erreur Fatale à la liste crfatal"""
- self.crfatal.append(comment)
-
- def exception(self,comment):
- """ Ajoute un commentaire Exception à la liste crexception"""
- self.crexception.append(comment)
-
- def add(self,cr):
- """ Ajoute un objet CR à la liste subcr :il s'agit de l'objet CR d'un fils de self """
- self.subcr.append(cr)
-
- def estvide(self):
- """
- Retourne 1 si self ne contient aucun message grave (fatal ou exception) et
- aucun CR qui en contienne,
- 0 sinon
- """
- if self.crexception : return 0
- if self.crfatal : return 0
- for s in self.subcr :
- if not s.estvide(): return 0
- return 1
-
- def purge(self):
- """
- Purge complètement le CR sauf les exceptions
- """
- self.debut=''
- self.fin=''
- self.dec=' '
- self.crok=[]
- self.crwarn=[]
- self.crfatal=[]
- self.subcr=[]
-
- def beautifie_messages(self):
- """
- Beautifie les messages stockés dans crok,crfatal,crexception et crwarn
- """
- l=[]
- for mess in self.crok:
- l.append(mess+'\n')
- self.crok_belle=l
- l=[]
- for mess in self.crwarn:
- l.append(encadre_message(mess,'*'))
- self.crwarn_belle = l
- l=[]
- for mess in self.crfatal:
- l.append(encadre_message(mess,'!'))
- self.crfatal_belle = l
- l=[]
- for mess in self.crexception:
- l.append(encadre_message(mess,'!'))
- self.crexception_belle = l
-
- def indent(self,s):
- """
- Insère en tete de chaque ligne du texte s la chaine self.dec
- """
- l = string.split(s,'\n')
- return self.dec+string.join(l,'\n'+self.dec)[:-3]
-
- def __str__(self):
- """
- Retourne une chaine de caractères décorée et représentative de self
- """
- s=''
- self.beautifie_messages()
- s=s+string.join(self.crok_belle,'')
- s=s+string.join(self.crwarn_belle,'')
- s=s+string.join(self.crfatal_belle,'')
- s=s+string.join(self.crexception_belle,'')
- for subcr in self.subcr:
- if self.verbeux == 'oui':
- s=s+str(subcr)+'\n'
- else:
- if not subcr.estvide():
- s=s+str(subcr)
- if s != '':
- s=self.debut+'\n'+self.indent(s)+self.fin+'\n'
- else :
- s=self.debut+'\n'+self.fin+'\n'
- return s
-
- def report(self,decalage = 2):
- """
- Retourne une chaine de caractères non encadrée mais représentative de self
- """
- s=''
- # on stocke dans s les messages de premier niveau
- for mess in self.crok :
- s=s + decalage*self.dec + mess + self.dec + '\n'
- for mess in self.crwarn:
- s=s + decalage*self.dec + mess + self.dec + '\n'
- for mess in self.crfatal:
- s=s + decalage*self.dec + mess + self.dec + '\n'
- for mess in self.crexception:
- s=s + decalage*self.dec + mess + self.dec + '\n'
- # on récupère les messages des sous comptes-rendus ...
- for subcr in self.subcr:
- if not subcr.estvide():
- s=s+subcr.report(decalage = decalage + 1)
- # on rajoute les flags de début et de fin ... (si self n'est pas vide)
- if not self.estvide() :
- s = (decalage-1)*self.dec+self.debut+'\n'+s+ \
- (decalage-1)*self.dec+self.fin+'\n'
- return s
-
- def get_mess_fatal(self):
- """
- Retourne une chaine de caractères contenant les messages de
- la liste crfatal (du dernier au premier)
- """
- self.crfatal.reverse()
- s=''
- for elem in self.crfatal :
- s=s+elem
- self.crfatal.reverse()
- return s
-
- def get_mess_exception(self):
- """
- Retourne une chaine de caractères contenant les messages
- de la liste crexception (du dernier au premier)
- """
- self.crexception.reverse()
- s=''
- for elem in self.crexception :
- s=s+elem
- self.crexception.reverse()
- return s
-
-
-
-
-def justify_text(texte='',cesure=50):
- """
- Prend la chaine de caractères 'texte' et la retourne avec un retour chariot
- tous les 'cesure' caractères s'il y a lieu (le retour chariot est placé dans un blanc
- et non au milieu d'un mot
- """
- texte = string.strip(texte)
- if len(texte) < cesure : return texte
- liste_lignes = string.split(texte,'\n')
- texte_justifie = ''
- for ligne in liste_lignes :
- ligne = string.strip(ligne)
- if len(ligne) <= cesure :
- texte_justifie = texte_justifie + ligne + '\n'
- continue
- longueur = 0
- new_text = ''
- liste_mots = string.split(ligne,' ')
- for mot in liste_mots :
- new_longueur = longueur + len(mot)+1
- if new_longueur < cesure :
- new_text = new_text+' '+mot
- longueur = longueur + len(mot) + 1
- else :
- longueur = 0
- new_text = new_text + '\n'+mot
- texte_justifie = texte_justifie + string.strip(new_text) + '\n'
- return texte_justifie[0:-1]
-
-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
-
-
-
-
+++ /dev/null
-#@ MODIF N_ENTITE Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe ENTITE qui est la classe de base
- de toutes les classes de definition d'EFICAS.
-"""
-
-import N_CR
-
-class ENTITE:
- """
- Classe de base pour tous les objets de definition : mots cles et commandes
- Cette classe ne contient que des methodes utilitaires
- Elle ne peut etre instanciee et doit d abord etre specialisee
- """
- CR=N_CR.CR
-
- def __init__(self):
- """
- Initialise les deux attributs regles et entites d'une classe dérivée
- à : pas de règles et pas de sous-entités.
-
- L'attribut regles doit contenir la liste des regles qui s'appliquent
- sur ses sous-entités
-
- L'attribut entités doit contenir le dictionnaires des sous-entités
- (clé = nom, valeur=objet)
- """
- self.regles=()
- self.entites={}
-
- def affecter_parente(self):
- """
- Cette methode a pour fonction de donner un nom et un pere aux
- sous entités qui n'ont aucun moyen pour atteindre leur parent
- directement
- Il s'agit principalement des mots cles
- """
- for k,v in self.entites.items():
- v.pere = self
- v.nom = k
-
- def verif_cata(self):
- """
- Cette methode sert à valider les attributs de l'objet de définition
- """
- raise "La méthode verif_cata de la classe %s doit etre implémentée" % self.__class__.__name__
-
- def __call__(self):
- """
- Cette methode doit retourner un objet dérivé de la classe OBJECT
- """
- raise "La méthode __call__ de la classe %s doit etre implémentée" % self.__class__.__name__
-
- def report(self):
- """
- Cette méthode construit pour tous les objets dérivés de ENTITE un
- rapport de validation de la définition portée par cet objet
- """
- self.cr = self.CR()
- self.verif_cata()
- for k,v in self.entites.items() :
- try :
- cr = v.report()
- cr.debut = "Début "+v.__class__.__name__+ ' : ' + k
- cr.fin = "Fin "+v.__class__.__name__+ ' : ' + k
- self.cr.add(cr)
- except:
- self.cr.fatal("Impossible d'obtenir le rapport de %s %s" %(k,`v`))
- print "Impossible d'obtenir le rapport de %s %s" %(k,`v`)
- print "père =",self
- return self.cr
-
- def verif_cata_regles(self):
- """
- Cette méthode vérifie pour tous les objets dérivés de ENTITE que
- les objets REGLES associés ne portent que sur des sous-entités
- existantes
- """
- for regle in self.regles :
- l=[]
- for mc in regle.mcs :
- if not self.entites.has_key(mc) :
- l.append(mc)
- if l != [] :
- txt = str(regle)
- self.cr.fatal("Argument(s) non permis : %s pour la règle : %s" %(`l`,txt))
-
-
+++ /dev/null
-#@ MODIF N_ETAPE Noyau DATE 03/09/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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 qui sert à vérifier et à exécuter
- une commande
-"""
-
-# Modules Python
-import types,sys,string,os
-import linecache
-import traceback
-from copy import copy
-
-# Modules EFICAS
-import N_MCCOMPO
-from N_Exception import AsException
-import N_utils
-from N_utils import AsType
-
-class ETAPE(N_MCCOMPO.MCCOMPO):
- """
- Cette classe hérite de MCCOMPO car ETAPE est un OBJECT composite
-
- """
- nature = "OPERATEUR"
-
- # L'attribut de classe codex est utilisé pour rattacher le module de calcul éventuel (voir Build)
- # On le met à None pour indiquer qu'il n'y a pas de module de calcul rattaché
- codex=None
-
- def __init__(self,oper=None,reuse=None,args={}):
- """
- Attributs :
-
- - definition : objet portant les attributs de définition d'une étape de type opérateur. Il
- est initialisé par l'argument oper.
-
- - reuse : indique le concept d'entrée réutilisé. Il se trouvera donc en sortie
- si les conditions d'exécution de l'opérateur l'autorise
-
- - valeur : arguments d'entrée de type mot-clé=valeur. Initialisé avec l'argument args.
-
- """
- self.definition=oper
- self.reuse=reuse
- self.valeur=args
- self.nettoiargs()
- self.parent=CONTEXT.get_current_step()
- self.etape = self
- self.nom=oper.nom
- self.idracine=oper.label
- self.appel=N_utils.callee_where()
- self.mc_globaux={}
- self.sd=None
- self.actif=1
- self.make_register()
-
- def make_register(self):
- """
- Initialise les attributs jdc, id, niveau et réalise les
- enregistrements nécessaires
- """
- if self.parent :
- self.jdc = self.parent.get_jdc_root()
- self.id=self.parent.register(self)
- self.niveau=None
- else:
- self.jdc = self.parent =None
- self.id=None
- self.niveau=None
-
- def nettoiargs(self):
- """
- Cette methode a pour fonction de retirer tous les arguments egaux à None
- de la liste des arguments. Ils sont supposés non présents et donc retirés.
- """
- for k in self.valeur.keys():
- if self.valeur[k] == None:del self.valeur[k]
-
- def McBuild(self):
- """
- Demande la construction des sous-objets et les stocke dans l'attribut
- mc_liste.
- """
- self.mc_liste=self.build_mc()
-
- 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
- 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:
- 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))
-
- def Execute(self):
- """
- Cette methode est prevue pour faire une execution dans le cas
- ou par_lot == 'NON'
- Par defaut, elle ne fait rien
- """
- return
-
- def get_sd_prod(self):
- """
- Retourne le concept résultat de l'étape
- Deux cas :
- cas 1 : sd_prod de oper n'est pas une fonction
- il s'agit d'une sous classe de ASSD
- on construit le sd à partir de cette classe
- et on le retourne
- cas 2 : il s'agit d'une fonction
- on l'évalue avec les mots-clés de l'étape (mc_liste)
- on construit le sd à partir de la classe obtenue
- et on le retourne
- """
- if type(self.definition.sd_prod) == types.FunctionType:
- d=self.cree_dict_valeurs(self.mc_liste)
- try:
- sd_prod= apply(self.definition.sd_prod,(),d)
- except EOFError:
- raise
- except:
- if CONTEXT.debug: traceback.print_exc()
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
- sys.exc_info()[2])
- raise AsException("impossible d affecter un type au resultat",
- string.join(l[2:]))
- # sys.exc_info()[0],sys.exc_info()[1],)
- 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.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 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):
- """
- Retourne le type du concept résultat de l'étape
- Deux cas :
- cas 1 : sd_prod de oper n'est pas une fonction
- il s'agit d'une sous classe de ASSD
- on retourne le nom de la classe
- cas 2 : il s'agit d'une fonction
- on l'évalue avec les mots-clés de l'étape (mc_liste)
- et on retourne son résultat
- """
- if type(self.definition.sd_prod) == types.FunctionType:
- d=self.cree_dict_valeurs(self.mc_liste)
- try:
- sd_prod= apply(self.definition.sd_prod,(),d)
- except:
- #traceback.print_exc()
- return None
- else:
- sd_prod=self.definition.sd_prod
- return sd_prod
-
- 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 fait double emploi avec self.etape ????
- """
- return self
-
- def supprime(self):
- """
- Méthode qui supprime toutes les références arrières afin que l'objet puisse
- etre correctement détruit par le garbage collector
- """
- N_MCCOMPO.MCCOMPO.supprime(self)
- self.jdc=None
- self.appel=None
- if self.sd : self.sd.supprime()
-
- def isactif(self):
- """
- Indique si l'étape est active (1) ou inactive (0)
- """
- return self.actif
-
- def set_current_step(self):
- """
- Methode utilisee pour que l etape self se declare etape
- courante. Utilise par les macros
- """
- #print "set_current_step ",self.nom
- #traceback.print_stack(limit=3,file=sys.stdout)
- cs= CONTEXT.get_current_step()
- if self.parent != cs :
- raise "L'étape courante %s devrait etre le parent de self : %s" % (cs,self)
- else :
- CONTEXT.unset_current_step()
- CONTEXT.set_current_step(self)
-
- def reset_current_step(self):
- """
- Methode utilisee par l'etape self qui remet son etape parent comme
- etape courante
- """
- #print "reset_current_step ",self.nom
- #traceback.print_stack(limit=3,file=sys.stdout)
- cs= CONTEXT.get_current_step()
- if self != cs :
- raise "L'étape courante %s devrait etre self : %s" % (cs,self)
- else :
- CONTEXT.unset_current_step()
- CONTEXT.set_current_step(self.parent)
-
- def issubstep(self,etape):
- """
- Cette methode retourne un entier indiquant si etape est une
- sous etape de self ou non
- 1 = oui
- 0 = non
- Une étape simple n'a pas de sous etape
- """
- return 0
-
- def get_file(self,unite=None,fic_origine=''):
- """
- Retourne le nom du fichier associe a l unite logique unite (entier)
- ainsi que le source contenu dans le fichier
- """
- if self.jdc : return self.jdc.get_file(unite=unite,fic_origine=fic_origine)
- else :
- file = None
- if unite != None:
- 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)
- if not os.path.exists(file):
- raise AsException("%s n'est pas un fichier existant" % unite)
- fproc=open(file,'r')
- text=string.replace(fproc.read(),'\r\n','\n')
- fproc.close()
- linecache.cache[file]=0,0,string.split(text,'\n'),file
- return file,text
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitETAPE(self)
-
- def update_context(self,d):
- """
- Cette methode doit updater le contexte fournit par
- l'appelant en argument (d) en fonction de sa definition
- """
- if type(self.definition.op_init) == types.FunctionType:
- apply(self.definition.op_init,(self,d))
- if self.sd:
- d[self.sd.nom]=self.sd
-
- def copy(self):
- """ Méthode qui retourne une copie de self non enregistrée auprès du JDC
- et sans sd
- """
- etape = copy(self)
- etape.sd = None
- 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
-
- def copy_reuse(self,old_etape):
- """ Méthode qui copie le reuse d'une autre étape.
- """
- if hasattr(old_etape,"reuse") :
- self.reuse = old_etape.reuse
-
- def copy_sdnom(self,old_etape):
- """ Méthode qui copie le sdnom d'une autre étape.
- """
- if hasattr(old_etape,"sdnom") :
- self.sdnom = old_etape.sdnom
-
- def get_sd_utilisees(self):
- """
- Retourne la liste des concepts qui sont utilisés à l'intérieur d'une commande
- ( comme valorisation d'un MCS)
- """
- l=[]
- for child in self.mc_liste:
- l.extend(child.get_sd_utilisees())
- return l
-
- 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)
+++ /dev/null
-#@ MODIF N_EVAL Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
-"""
-
-class EVAL :
- """
- """
- def __init__(self,str):
- """
- L'objet EVAL est initialise avec une chaine de caracteres (str)
- """
- self.valeur = str
- self.val=None
-
- def __repr__(self):
- return 'EVAL("""'+self.valeur+'""")'
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitEVAL(self)
-
+++ /dev/null
-#@ MODIF N_Exception Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe AsException
-"""
-
-# Modules Python
-import types
-
-class AsException(Exception):
- def __str__(self):
- if not self.args:
- return ''
- elif len(self.args) == 1:
- return str(self.args[0])
- else:
- s=''
- for e in self.args:
- if type(e) == types.StringType: s=s+ ' ' + e
- else:s=s+ ' ' + str(e)
- return s
-
+++ /dev/null
-#@ MODIF N_FACT Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-""" Ce module contient la classe de definition FACT
- qui permet de spécifier les caractéristiques des mots clés facteurs
-"""
-
-import types
-
-import N_ENTITE
-import N_MCFACT
-import N_MCLIST
-
-class FACT(N_ENTITE.ENTITE):
- """
- Classe pour definir un mot cle facteur
-
- Cette classe a trois attributs de classe
-
- - class_instance qui indique la classe qui devra etre utilisée
- pour créer l'objet qui servira à controler la conformité d'un
- mot-clé facteur avec sa définition
-
- - list_instance
-
- - label qui indique la nature de l'objet de définition (ici, FACT)
- """
- class_instance = N_MCFACT.MCFACT
- list_instance = N_MCLIST.MCList
- label = 'FACT'
-
- def __init__(self,fr="",ang="",docu="",regles=(),statut='f',defaut=None,
- min=0,max=1,**args):
-
- """
- Un mot-clé facteur est caractérisé par les attributs suivants :
-
- - fr :
-
- - ang :
-
- - statut :
-
- - defaut :
-
- - regles
-
- - min
-
- - max
-
- - position
-
- - docu
- """
- # Initialisation des attributs
- self.fr=fr
- self.ang=ang
- self.docu = docu
- if type(regles)== types.TupleType:
- self.regles=regles
- else:
- self.regles=(regles,)
- self.statut=statut
- self.defaut=defaut
- self.min=min
- self.max=max
- self.entites=args
- self.position=None
- self.affecter_parente()
-
- def __call__(self,val,nom,parent):
- """
- Construit la structure de donnee pour un mot cle facteur a partir
- de sa definition (self) de sa valeur (val), de son nom (nom) et de
- son parent dans l arboresence (parent)
-
- Suivant le type de la valeur on retournera soit un objet de type
- MCFACT soit une liste de type MCLIST.
-
- La creation d un mot cle facteur depend de son statut
- Si statut ='o' il est obligatoire
- Si statut == 'd' il est facultatif mais ses sous mots cles avec
- defaut sont visibles
- Si statut == 'f' il est facultatif et ses sous mots avec defaut ne
- sont pas visibles
- Si statut == 'c' il est cache ???
- Si defaut != None, on utilise cette valeur pour calculer la valeur
- par defaut du mot cle facteur
- """
- if val == None:
- if self.defaut == None:
- val={}
- elif type(self.defaut) == types.TupleType:
- val=self.defaut
- # Est ce utile ? Le défaut pourrait etre uniquement un dict
- elif type(self.defaut) == types.DictType or isinstance(self.defaut,N_MCFACT._F):
- val=self.defaut
- else:
- # On ne devrait jamais passer par la
- print "On ne devrait jamais passer par la"
- return None
-
- if type(val) == types.TupleType or type(val) == types.ListType :
- # on est en présence d'un MCFACT multiple !
- l=self.list_instance()
- l.init(nom = nom,parent=parent)
- for v in val:
- objet=self.class_instance(nom=nom,definition=self,val=v,parent=parent)
- l.append(objet)
- return l
- else:
- return self.class_instance(nom=nom,definition=self,val=val,parent=parent)
-
-
- def verif_cata(self):
- if type(self.min) != types.IntType :
- if self.min != '**':
- self.cr.fatal("L'attribut 'min' doit etre un entier : %s" %`self.min`)
- if type(self.max) != types.IntType :
- if self.max != '**':
- self.cr.fatal("L'attribut 'max' doit etre un entier : %s" %`self.max`)
- if self.min > self.max :
- self.cr.fatal("Nombres d'occurrence min et max invalides : %s %s" %(`self.min`,`self.max`))
- if type(self.fr) != types.StringType :
- self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`)
- if type(self.regles) != types.TupleType :
- self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`)
- if self.statut not in ['f','o','c','d'] :
- self.cr.fatal("L'attribut 'statut' doit valoir 'o','f','c' ou 'd' : %s" %`self.statut`)
- if type(self.docu) != types.StringType :
- self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu`)
- self.verif_cata_regles()
-
+++ /dev/null
-#@ MODIF N_FONCTION Noyau DATE 27/03/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 N_ASSD import ASSD
-
-class FONCTION(ASSD):pass
-
-class fonction(FONCTION) : pass
+++ /dev/null
-#@ MODIF N_FORM Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-import N_MACRO
-import N_FORM_ETAPE
-
-class FORM(N_MACRO.MACRO):
- """
- Cette classe sert à définir dans le catalogue des objets de type
- FORMULE pour ASTER.
- Elle surcharge la classe MACRO
- """
- class_instance=N_FORM_ETAPE.FORM_ETAPE
-
+++ /dev/null
-#@ MODIF N_FORM_ETAPE Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-import N_MACRO_ETAPE
-
-class FORM_ETAPE(N_MACRO_ETAPE.MACRO_ETAPE):
- """
- Cette classe sert à construire l'objet ACCAS correspondant à une
- FORMULE Aster.
- Il s'agit d'un objet MACRO_ETAPE légèrement modifié
- """
-
+++ /dev/null
-#@ MODIF N_GEOM Noyau DATE 27/03/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 N_ASSD import ASSD
-
-class GEOM(ASSD):
- """
- Cette classe sert à définir les types de concepts
- géométriques comme GROUP_NO, GROUP_MA,NOEUD et MAILLE
-
- """
- def __init__(self,nom,etape=None,sd=None,reg='oui'):
- """
- """
- self.etape=etape
- self.sd=sd
- if etape:
- self.parent=etape.parent
- else:
- self.parent=CONTEXT.get_current_step()
- if self.parent :
- self.jdc = self.parent.get_jdc_root()
- else:
- self.jdc = None
-
- if not self.parent:
- self.id=None
- elif reg == 'oui' :
- self.id = self.parent.reg_sd(self)
- self.nom=nom
-
- def get_name(self):
- return self.nom
-
- def is_object(valeur):
- """
- Indique si valeur est d'un type conforme à la classe (1)
- ou non conforme (0)
- La classe GEOM est utilisée pour tous les objets géométriques
- Elle valide tout objet
- """
- return 1
-
-
-class geom(GEOM):pass
-
+++ /dev/null
-#@ MODIF N_JDC Noyau DATE 23/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe JDC qui sert à interpréter un jeu de commandes
-"""
-
-# Modules Python
-import os,string,traceback
-import types,sys,linecache
-
-# Modules EFICAS
-import N_OBJECT
-import N_CR
-from N_Exception import AsException
-from N_ASSD import ASSD
-
-class JDC(N_OBJECT.OBJECT):
- """
- Cette classe interprete un jeu de commandes fourni sous
- la forme d'une chaine de caractères
-
- Attributs de classe :
-
- Attributs d'instance :
-
- """
- nature = "JDC"
- CR=N_CR.CR
- exec_init="""
-import Accas
-from Accas import _F
-from Accas import *
-NONE = None
-"""
-
- from N_utils import SEP
-
- def __init__(self,definition=None,procedure=None,cata=None,
- cata_ord_dico=None,parent=None,
- nom='SansNom',appli=None,context_ini=None,**args):
- self.procedure=procedure
- self.definition = definition
- self.cata=cata
- if type(self.cata) != types.TupleType and cata != None:
- self.cata=(self.cata,)
- self.cata_ordonne_dico=cata_ord_dico
- self.nom = nom
- self.appli=appli
- self.parent=parent
- self.context_ini=context_ini
- # On conserve les arguments supplémentaires. Il est possible de passer
- # des informations globales au JDC par ce moyen. Il pourrait etre plus
- # sur de mettre en place le mecanisme des mots-cles pour verifier la
- # validité des valeurs passées.
- # Ceci reste à faire
- # On initialise avec les parametres de la definition puis on
- # update avec ceux du JDC
- self.args=self.definition.args
- self.args.update(args)
- self.nstep=0
- self.nsd=0
- self.par_lot='OUI'
- if definition:
- self.regles=definition.regles
- self.code = definition.code
- else:
- self.regles=()
- self.code = "CODE"
- #
- # Creation de l objet compte rendu pour collecte des erreurs
- #
- self.cr = self.CR(debut = "CR phase d'initialisation",
- fin = "fin CR phase d'initialisation")
- self.g_context={}
- # Liste pour stocker tous les concepts produits dans le JDC
- self.sds=[]
- # Dictionnaire pour stocker tous les concepts du JDC (acces rapide par le nom)
- self.sds_dict={}
- self.etapes=[]
- self.mc_globaux={}
- self.current_context={}
- self.condition_context={}
- self.index_etape_courante=0
-
- def compile(self):
- """
- Cette methode compile la chaine procedure
- Si des erreurs se produisent, elles sont consignées dans le
- compte-rendu self.cr
- """
- try:
- if self.appli != None :
- self.appli.affiche_infos('Compilation du fichier de commandes \
- en cours ...')
- self.proc_compile=compile(self.procedure,self.nom,'exec')
- except SyntaxError,e:
- if CONTEXT.debug : traceback.print_exc()
- l=traceback.format_exception_only(SyntaxError,e)
- self.cr.exception("Compilation impossible : "+string.join(l))
- return
-
- def exec_compile(self):
- """
- Cette méthode execute le jeu de commandes compilé dans le contexte
- self.g_context de l'objet JDC
- """
- CONTEXT.set_current_step(self)
- # Le module nommage utilise le module linecache pour accéder
- # au source des commandes du jeu de commandes.
- # Dans le cas d'un fichier, on accède au contenu de ce fichier
- # Dans le cas d'une chaine de caractères il faut accéder
- # aux commandes qui sont dans la chaine
- import linecache
- linecache.cache[self.nom]=0,0,string.split(self.procedure,'\n'),self.nom
- try:
- exec self.exec_init in self.g_context
- for obj_cata in self.cata:
- if type(obj_cata) == types.ModuleType :
- init2 = "from "+obj_cata.__name__+" import *"
- exec init2 in self.g_context
-
- # Initialisation du contexte global pour l'évaluation des conditions de BLOC
- # On utilise une copie de l'initialisation du contexte du jdc
- self.condition_context=self.g_context.copy()
-
- # Si l'attribut context_ini n'est pas vide, on ajoute au contexte global
- # le contexte initial (--> permet d'évaluer un JDC en récupérant un contexte
- # d'un autre par exemple)
- if self.context_ini :
- self.g_context.update(self.context_ini)
- # Update du dictionnaire des concepts
- for sdnom,sd in self.context_ini.items():
- if isinstance(sd,ASSD):self.sds_dict[sdnom]=sd
-
- if self.appli != None :
- self.appli.affiche_infos('Interprétation du fichier de \
- commandes en cours ...')
- # On sauve le contexte pour garder la memoire des constantes
- # En mode edition (EFICAS) ou lors des verifications le contexte
- # est recalculé
- # mais les constantes sont perdues
- self.const_context=self.g_context
- exec self.proc_compile in self.g_context
-
- CONTEXT.unset_current_step()
- if self.appli != None : self.appli.affiche_infos('')
-
- except EOFError:
- # Exception utilise pour interrompre un jeu
- # de commandes avant la fin
- # Fonctionnement normal, ne doit pas etre considere comme une erreur
- CONTEXT.unset_current_step()
-
- except AsException,e:
- # une erreur a ete identifiee
- if CONTEXT.debug :
- traceback.print_exc()
- self.cr.exception(str(e))
- CONTEXT.unset_current_step()
-
- except NameError,e:
- etype, value, tb = sys.exc_info()
- l= traceback.extract_tb(tb)
- 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 :
- # 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()
- #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))
- CONTEXT.unset_current_step()
-
- def register(self,etape):
- """
- Cette méthode ajoute etape dans la liste des etapes : self.etapes
- et retourne un numéro d'enregistrement
- """
- self.etapes.append(etape)
- return self.g_register(etape)
-
- def o_register(self,sd):
- """
- Retourne un identificateur pour concept
- """
- self.nsd=self.nsd+1
- nom=sd.idracine + self.SEP + `self.nsd`
- return nom
-
- def g_register(self,etape):
- """
- Retourne un identificateur pour etape
- """
- self.nstep=self.nstep+1
- idetape=etape.idracine + self.SEP + `self.nstep`
- return idetape
-
- def create_sdprod(self,etape,nomsd):
- """
- Intention : Cette methode doit fabriquer le concept produit retourne
- par l'etape etape et le nommer.
- Elle est appelée à l'initiative de l'etape
- pendant le processus de construction de cette etape :
- methode __call__ de la classe CMD (OPER ou MACRO)
- Ce travail est réalisé par le contexte supérieur
- (etape.parent) car dans certains cas, le concept ne doit
- pas etre fabriqué mais l'etape doit simplement utiliser
- un concept préexistant.
- Cas 1 : etape.reuse != None : le concept est réutilisé
- Cas 2 : l'étape appartient à une macro qui a déclaré un
- concept de sortie qui doit etre produit par cette
- etape.
- Dans le cas du JDC, le deuxième cas ne peut pas se produire.
- """
- sd= etape.get_sd_prod()
- if sd != None and etape.reuse == None:
- # ATTENTION : On ne nomme la SD que dans le cas de non reutilisation
- # d un concept
- self.NommerSdprod(sd,nomsd)
- return sd
-
- 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
- """
- 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)
-
- # 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 reg_sd(self,sd):
- """
- Methode appelee dans l __init__ d un ASSD lors de sa creation
- pour s enregistrer
- """
- self.sds.append(sd)
- return self.o_register(sd)
-
- def delete_concept_after_etape(self,etape,sd):
- """
- Met à jour les étapes du JDC qui sont après etape suite à
- la disparition du concept sd
- """
- # Cette methode est définie dans le noyau mais ne sert que pendant
- # la phase de creation des etapes et des concepts. Il n'y a aucun
- # traitement particulier à réaliser.
- # Dans d'autres conditions, il faut surcharger cette méthode
- return
-
- def supprime(self):
- N_OBJECT.OBJECT.supprime(self)
- for etape in self.etapes:
- etape.supprime()
-
- def get_file(self,unite=None,fic_origine=''):
- """
- Retourne le nom du fichier correspondant à un numero d'unité
- logique (entier) ainsi que le source contenu dans le fichier
- """
- if self.appli :
- # Si le JDC est relié à une application maitre, on délègue la recherche
- file= self.appli.get_file(unite,fic_origine)
- else:
- file = None
- if unite != None:
- 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)
- if not os.path.exists(file):
- raise AsException("%s n'est pas un fichier existant" % unite)
- fproc=open(file,'r')
- text=string.replace(fproc.read(),'\r\n','\n')
- fproc.close()
- linecache.cache[file]=0,0,string.split(text,'\n'),file
- return file,text
-
- def set_par_lot(self,par_lot):
- """
- Met le mode de traitement a PAR LOT
- ou a COMMANDE par COMMANDE
- en fonction de la valeur du mot cle PAR_LOT et
- du contexte : application maitre ou pas
- """
- if self.appli == None:
- # Pas d application maitre
- self.par_lot=par_lot
- else:
- # Avec application maitre
- self.par_lot='OUI'
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitJDC(self)
-
- def interact(self):
- """
- Cette methode a pour fonction d'ouvrir un interpreteur
- pour que l'utilisateur entre des commandes interactivement
- """
- CONTEXT.set_current_step(self)
- try:
- # Le module nommage utilise le module linecache pour accéder
- # au source des commandes du jeu de commandes.
- # Dans le cas d'un fichier, on accède au contenu de ce fichier
- # Dans le cas de la console interactive, il faut pouvoir accéder
- # aux commandes qui sont dans le buffer de la console
- import linecache,code
- console= code.InteractiveConsole(self.g_context,filename="<console>")
- linecache.cache["<console>"]=0,0,console.buffer,"<console>"
- banner="""***********************************************
-* Interpreteur interactif %s
-***********************************************""" % self.code
- console.interact(banner)
- finally:
- console=None
- CONTEXT.unset_current_step()
-
- 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
- liste_etapes=self.etapes[self.index_etape_courante:index_etape]
- else:
- d=self.current_context={}
- 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_global_contexte(self):
- return self.g_context.copy()
+++ /dev/null
-#@ MODIF N_JDC_CATA Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe de definition JDC_CATA
- qui permet de spécifier les caractéristiques d'un JDC
-"""
-
-import types,string,traceback
-
-import N_ENTITE
-import N_JDC
-
-class JDC_CATA(N_ENTITE.ENTITE):
- """
- Classe pour definir un jeu de commandes
-
- Attributs de classe :
-
- - class_instance qui indique la classe qui devra etre utilisée
- pour créer l'objet qui servira à controler la conformité
- du jeu de commandes avec sa définition
-
- - label qui indique la nature de l'objet de définition (ici, JDC)
-
- """
- class_instance = N_JDC.JDC
- label = 'JDC'
-
- def __init__(self,code='',execmodul=None,regles=(),niveaux=(),**args):
- """
- """
- self.code = code
- self.execmodul=execmodul
- if type(regles)== types.TupleType:
- self.regles = regles
- else:
- self.regles=(regles,)
- # Tous les arguments supplémentaires sont stockés dans l'attribut args
- # et seront passés au JDC pour initialiser ses paramètres propres
- self.args=args
- self.d_niveaux={}
- self.l_niveaux=niveaux
- self.commandes=[]
- for niveau in niveaux:
- self.d_niveaux[niveau.nom]=niveau
- # On change d'objet catalogue. Il faut d'abord mettre le catalogue
- # courant à None
- CONTEXT.unset_current_cata()
- CONTEXT.set_current_cata(self)
-
- def __call__(self,procedure=None,cata=None,cata_ord_dico=None,
- nom='SansNom',parent=None,**args):
- """
- Construit l'objet JDC a partir de sa definition (self),
- """
- return self.class_instance(definition=self,procedure=procedure,
- cata=cata,cata_ord_dico=cata_ord_dico,
- nom=nom,
- parent=parent,
- **args
- )
-
- def enregistre(self,commande):
- """
- Methode qui permet aux definitions de commandes de s'enregistrer aupres
- d'un JDC_CATA
- """
- self.commandes.append(commande)
-
- def verif_cata(self):
- """
- Méthode de vérification des attributs de définition
- """
- if type(self.regles) != types.TupleType :
- self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`)
- self.verif_cata_regles()
-
- def verif_cata_regles(self):
- """
- Cette méthode vérifie pour tous les objets stockés dans la liste entités
- respectent les REGLES associés à self
- """
- # A FAIRE
-
- def report(self):
- """
- Methode pour produire un compte-rendu de validation d'un catalogue de commandes
- """
- self.cr = self.CR(debut = "Compte-rendu de validation du catalogue "+self.code,
- fin = "Fin Compte-rendu de validation du catalogue "+self.code)
- self.verif_cata()
- for commande in self.commandes:
- cr = commande.report()
- cr.debut = "Début Commande :"+commande.nom
- cr.fin = "Fin commande :"+commande.nom
- self.cr.add(cr)
- return self.cr
-
- def supprime(self):
- """
- Méthode pour supprimer les références arrières susceptibles de provoquer
- des cycles de références
- """
- for commande in self.commandes:
- commande.supprime()
-
- def get_niveau(self,nom_niveau):
- """
- Retourne l'objet de type NIVEAU de nom nom_niveau
- ou None s'il n'existe pas
- """
- return self.d_niveaux.get(nom_niveau,None)
-
-
-
+++ /dev/null
-#@ MODIF N_MACRO Noyau 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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe de definition MACRO
- qui permet de spécifier les caractéristiques d'une macro-commande
-"""
-
-import types,string,traceback
-
-import N_ENTITE
-import N_MACRO_ETAPE
-import nommage
-
-class MACRO(N_ENTITE.ENTITE):
- """
- Classe pour definir une macro-commande
-
- Cette classe a trois attributs de classe
-
- - class_instance qui indique la classe qui devra etre utilisée
- pour créer l'objet qui servira à controler la conformité d'un
- macro-commande avec sa définition
-
- - label qui indique la nature de l'objet de définition (ici, MACRO)
-
- - nommage qui est un module Python qui fournit la fonctionnalité de nommage
-
- et les attributs d'instance suivants :
-
- - nom : son nom
-
- - op : le numéro d'opérateur
-
- - sd_prod : le type de concept produit. C'est une classe ou une fonction qui retourne
- une classe
-
- - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur
- réentrant peut modifier un concept d'entrée et le produire comme concept de sortie
-
- - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur
- non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort
- de l'objet gérant le contexte d'exécution de vérifier cette contrainte.
-
- - fr : commentaire associé en francais
-
- - ang : commentaire associé en anglais
-
- - docu : clé de documentation associée
-
- - regles : liste des règles associées
-
- - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette
- fonction est exécutée lors des phases d'initialisation de l'étape associée.
-
- - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre
- rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement.
- Si niveau vaut None, l'opérateur est rangé au niveau global.
-
- - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit
- des entités de définition pour les mots-clés : FACT, BLOC, SIMP. Cet attribut
- est initialisé avec args, c'est à dire les arguments d'appel restants.
-
-
- """
- class_instance = N_MACRO_ETAPE.MACRO_ETAPE
- label = 'MACRO'
- nommage = nommage
-
- def __init__(self,nom,op,sd_prod=None,reentrant='n',repetable='o',fr="",ang="",
- docu="",regles=(),op_init=None,niveau = None,fichier_ini=0,UIinfo=None,**args):
- """
- Méthode d'initialisation de l'objet MACRO. Les arguments sont utilisés pour initialiser
- les attributs de meme nom
- """
- # XXX fichier_ini n'est pas utilisé pour l'instant
- self.nom=nom
- # op est obligatoire et permet de spécifier la procédure de construction de la macro
- # - Si op est un entier la construction de la macro est réalisée par une subroutine fortran opsxxx ou
- # xxx est donné par la valeur absolue de op. L'execution est egalement effectuée via cette subroutine.
- # - Si op est une fonction Python, la construction de la macro est effectuée par l'appel à cette fonction
- # Suivant le cas on garde l info dans self.op ou dans self.proc
- if type(op) == types.IntType:
- self.proc=None
- self.op=op
- else:
- self.op=None
- self.proc=op
-
- self.sd_prod=sd_prod
- self.reentrant=reentrant
- self.fr=fr
- self.ang=ang
- self.repetable = repetable
- self.docu=docu
- if type(regles)== types.TupleType:
- self.regles=regles
- else:
- self.regles=(regles,)
- self.fichier_ini = fichier_ini
- # Attribut op_init : Fonction a appeler a la construction de l operateur sauf si == None
- self.op_init=op_init
- self.entites=args
- current_cata=CONTEXT.get_current_cata()
- if niveau == None:
- self.niveau=None
- current_cata.enregistre(self)
- else:
- self.niveau=current_cata.get_niveau(niveau)
- self.niveau.enregistre(self)
- self.UIinfo=UIinfo
- self.affecter_parente()
-
- def __call__(self,reuse=None,**args):
- """
- Construit l'objet MACRO_ETAPE a partir de sa definition (self),
- puis demande la construction de ses sous-objets et du concept produit.
- """
- nomsd=self.nommage.GetNomConceptResultat(self.nom)
- etape= self.class_instance(oper=self,reuse=reuse,args=args)
- etape.McBuild()
- return etape.Build_sd(nomsd)
-
- def make_objet(self,mc_list='oui'):
- """
- Cette méthode crée l'objet MACRO_ETAPE dont la définition est self sans
- créer sa sdprod.
- Normalement l'étape est enregistrée auprès de son parent.
- Si l'argument mc_list vaut 'oui', elle déclenche en plus la construction
- des objets MCxxx.
- """
- etape= self.class_instance(oper=self,reuse=None,args={})
- if mc_list == 'oui':etape.McBuild()
- return etape
-
- def verif_cata(self):
- """
- Méthode de vérification des attributs de définition
- """
- if self.op is not None and (type(self.op) != types.IntType or self.op > 0) :
- self.cr.fatal("L'attribut 'op' doit etre un entier signé : %s" %`self.op`)
- if self.proc is not None and type(self.proc) != types.FunctionType:
- self.cr.fatal("L'attribut op doit etre une fonction Python : %s" % `self.proc`)
- if type(self.regles) != types.TupleType :
- self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`)
- if type(self.fr) != types.StringType :
- self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`)
- if type(self.docu) != types.StringType :
- self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu` )
- if type(self.nom) != types.StringType :
- self.cr.fatal("L'attribut 'nom' doit etre une chaine de caractères : %s" %`self.nom`)
- if self.reentrant not in ('o','n','f'):
- self.cr.fatal("L'attribut 'reentrant' doit valoir 'o','n' ou 'f' : %s" %`self.reentrant`)
- self.verif_cata_regles()
-
- def supprime(self):
- """
- Méthode pour supprimer les références arrières susceptibles de provoquer
- des cycles de références
- """
- self.niveau=None
-
-
+++ /dev/null
-#@ MODIF N_MACRO_ETAPE Noyau DATE 23/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe MACRO_ETAPE qui sert à vérifier et à exécuter
- une commande
-"""
-
-# Modules Python
-import types,sys,string
-import traceback
-
-# Modules EFICAS
-import N_MCCOMPO
-import N_ETAPE
-from N_Exception import AsException
-import N_utils
-from N_utils import AsType
-
-class MACRO_ETAPE(N_ETAPE.ETAPE):
- """
-
- """
- nature = "COMMANDE"
- def __init__(self,oper=None,reuse=None,args={}):
- """
- Attributs :
-
- - definition : objet portant les attributs de définition d'une étape
- de type macro-commande. Il est initialisé par
- l'argument oper.
-
- - reuse : indique le concept d'entrée réutilisé. Il se trouvera donc
- en sortie si les conditions d'exécution de l'opérateur
- l'autorise
-
- - valeur : arguments d'entrée de type mot-clé=valeur. Initialisé
- avec l'argument args.
-
- """
- self.definition=oper
- self.reuse=reuse
- self.valeur=args
- self.nettoiargs()
- self.parent=CONTEXT.get_current_step()
- self.etape = self
- self.nom=oper.nom
- self.idracine=oper.label
- self.appel=N_utils.callee_where()
- self.mc_globaux={}
- self.g_context={}
- # Contexte courant
- self.current_context={}
- self.index_etape_courante=0
- self.etapes=[]
- self.sds=[]
- # Dans le cas d'une macro écrite en Python, l'attribut Outputs est un
- # dictionnaire qui contient les concepts produits de sortie
- # (nom : ASSD) déclarés dans la fonction sd_prod
- self.Outputs={}
- self.sd=None
- self.actif=1
- self.sdprods=[]
- self.make_register()
-
- def make_register(self):
- """
- Initialise les attributs jdc, id, niveau et réalise les enregistrements
- nécessaires
- """
- if self.parent :
- self.jdc = self.parent.get_jdc_root()
- self.id=self.parent.register(self)
- self.niveau=None
- else:
- self.jdc = self.parent =None
- self.id=None
- self.niveau=None
-
- 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
- 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()
- 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.reset_current_step()
- 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 get_sd_prod(self):
- """
- Retourne le concept résultat d'une macro étape
- La difference avec une etape ou une proc-etape tient a ce que
- le concept produit peut exister ou pas
- Si sd_prod == None le concept produit n existe pas on retourne None
- Deux cas :
- cas 1 : sd_prod n'est pas une fonction
- il s'agit d'une sous classe de ASSD
- on construit le sd à partir de cette classe
- et on le retourne
- cas 2 : sd_prod est une fonction
- on l'évalue avec les mots-clés de l'étape (mc_liste)
- on construit le sd à partir de la classe obtenue
- et on le retourne
- """
- sd_prod=self.definition.sd_prod
- self.typret=None
- if type(self.definition.sd_prod) == types.FunctionType:
- d=self.cree_dict_valeurs(self.mc_liste)
- try:
- # la sd_prod d'une macro a l'objet macro_etape lui meme en premier argument
- # Comme sd_prod peut invoquer la méthode type_sdprod qui ajoute
- # 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:
- raise
- except:
- if CONTEXT.debug: traceback.print_exc()
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
- 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.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:
- self.sd=None
- else:
- self.sd= sd_prod(etape=self)
- self.typret=sd_prod
- # 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):
- """
- Retourne le type du concept résultat de l'étape et eventuellement type
- les concepts produits "à droite" du signe égal (en entrée)
- Deux cas :
- cas 1 : sd_prod de oper n'est pas une fonction
- il s'agit d'une sous classe de ASSD
- on retourne le nom de la classe
- cas 2 : il s'agit d'une fonction
- on l'évalue avec les mots-clés de l'étape (mc_liste)
- et on retourne son résultat
- """
- if not force and hasattr(self,'typret'): return self.typret
- if type(self.definition.sd_prod) == types.FunctionType:
- d=self.cree_dict_valeurs(self.mc_liste)
- try:
- # Comme sd_prod peut invoquer la méthode type_sdprod qui ajoute
- # les concepts produits dans self.sdprods, il faut le mettre à zéro
- self.sdprods=[]
- sd_prod= apply(self.definition.sd_prod,(self,),d)
- except:
- #traceback.print_exc()
- return None
- else:
- sd_prod=self.definition.sd_prod
- return sd_prod
-
- def get_contexte_avant(self,etape):
- """
- Retourne le dictionnaire des concepts connus avant etape
- pour les commandes internes a la macro
- On tient compte des commandes qui modifient le contexte
- comme DETRUIRE ou les macros
- """
- # L'étape courante pour laquelle le contexte a été calculé est
- # mémorisée dans self.index_etape_courante
- # 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
- liste_etapes=self.etapes[self.index_etape_courante:index_etape]
- else:
- d=self.current_context={}
- 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 supprime(self):
- """
- Méthode qui supprime toutes les références arrières afin que
- l'objet puisse etre correctement détruit par le garbage collector
- """
- N_MCCOMPO.MCCOMPO.supprime(self)
- self.jdc=None
- self.appel=None
- if self.sd : self.sd.supprime()
- for concept in self.sdprods:
- concept.supprime()
- for etape in self.etapes:
- etape.supprime()
-
- def type_sdprod(self,co,t):
- """
- Cette methode a pour fonction de typer le concept co avec le type t
- dans les conditions suivantes
- 1- co est un concept produit de self
- 2- co est un concept libre : on le type et on l attribue à self
- Elle enregistre egalement les concepts produits (on fait l hypothese
- que la liste sdprods a été correctement initialisee, vide probablement)
- """
- if not hasattr(co,'etape'):
- # Le concept vaut None probablement. On ignore l'appel
- return
-
- if co.etape == None:
- # le concept est libre
- co.etape=self
- co.__class__ = t
- self.sdprods.append(co)
- elif co.etape== self:
- # le concept est produit par self
- co.__class__ = t
- self.sdprods.append(co)
- elif co.etape== self.parent:
- # le concept est produit par la macro superieure
- # on transfere la propriete
- # On verifie que le type du concept existant co.__class__ est un sur type de celui attendu
- # Cette règle est normalement cohérente avec les règles de vérification des mots-clés
- if not issubclass(t,co.__class__):
- raise AsException("Le type du concept produit %s devrait etre une sur classe de %s" %(co.__class__,t))
- co.etape=self
- co.__class__ = t
- self.sdprods.append(co)
- elif self.issubstep(co.etape):
- # Le concept est propriété d'une sous etape de self. Il doit etre considere
- # comme produit par la macro => ajout dans self.sdprods
- self.sdprods.append(co)
- else:
- # le concept est produit par une autre étape
- return
-
- def issubstep(self,etape):
- """
- Cette methode retourne un entier indiquant si etape est une
- sous etape de la macro self ou non
- 1 = oui
- 0 = non
- """
- if etape in self.etapes:return 1
- for etap in self.etapes:
- if etap.issubstep(etape):return 1
- return 0
-
- def register(self,etape):
- """
- Enregistrement de etape dans le contexte de la macro : liste etapes
- et demande d enregistrement global aupres du JDC
- """
- self.etapes.append(etape)
- idetape=self.jdc.g_register(etape)
- return idetape
-
- def reg_sd(self,sd):
- """
- Methode appelee dans l __init__ d un ASSD a sa creation pour
- s enregistrer (reserve aux ASSD créés au sein d'une MACRO)
- """
- self.sds.append(sd)
- return self.jdc.o_register(sd)
-
- def create_sdprod(self,etape,nomsd):
- """
- Intention : Cette methode doit fabriquer le concept produit retourne
- par l'etape etape et le nommer.
- Elle est appelée à l'initiative de l'etape
- pendant le processus de construction de cette etape : methode __call__
- de la classe CMD (OPER ou MACRO)
- Ce travail est réalisé par le contexte supérieur (etape.parent)
- car dans certains cas, le concept ne doit pas etre fabriqué mais
- l'etape doit simplement utiliser un concept préexistant.
- Cas 1 : etape.reuse != None : le concept est réutilisé
- Cas 2 : l'étape appartient à une macro qui a déclaré un concept
- de sortie qui doit etre produit par cette etape.
- """
- if self.Outputs.has_key(nomsd):
- # Il s'agit d'un concept de sortie de la macro. Il ne faut pas le créer
- # Il faut quand meme appeler la fonction sd_prod si elle existe.
- # get_type_produit le fait et donne le type attendu par la commande pour verification ultérieure.
- sdprod=etape.get_type_produit()
- sd=self.Outputs[nomsd]
- # On verifie que le type du concept existant sd.__class__ est un sur type de celui attendu
- # Cette règle est normalement cohérente avec les règles de vérification des mots-clés
- if not issubclass(sdprod,sd.__class__):
- raise AsException("Le type du concept produit %s devrait etre une sur classe de %s" %(sd.__class__,sdprod))
- # La propriete du concept est transferee a l'etape avec le type attendu par l'étape
- etape.sd=sd
- sd.etape=etape
- # On donne au concept le type produit par la sous commande.
- # Le principe est le suivant : apres avoir verifie que le type deduit par la sous commande
- # est bien coherent avec celui initialement affecte par la macro (voir ci dessus)
- # on affecte au concept ce type car il peut etre plus precis (derive, en general)
- sd.__class__=sdprod
- # 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.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
- sd= etape.get_sd_prod()
- # Dans le cas d'un concept nomme automatiquement : _xxx, __xxx,
- # On force le nom stocke dans l'attribut sdnom de l'objet etape : on lui donne le nom
- # du concept reutilise (sd ou etape.reuse c'est pareil)
- # Ceci est indispensable pour eviter des erreurs lors des verifications des macros
- # En effet une commande avec reutilisation d'un concept verifie que le nom de
- # la variable a gauche du signe = est le meme que celui du concept reutilise.
- # Lorsqu'une telle commande apparait dans une macro, on supprime cette verification.
- if etape.sdnom[0] == '_':
- etape.sdnom=sd.nom
- else:
- # On est dans le cas de la creation d'un nouveau concept
- sd= etape.get_sd_prod()
- if sd != None :
- self.NommerSdprod(sd,nomsd)
- return sd
-
- def NommerSdprod(self,sd,sdnom,restrict='non'):
- """
- Cette methode est appelee par les etapes internes de la macro
- La macro appelle le JDC pour valider le nommage
- On considere que l espace de nom est unique et géré par le JDC
- Si le nom est deja utilise, l appel leve une exception
- Si restrict=='non', on insere le concept dans le contexte de la macro
- Si restrict=='oui', on n'insere pas le concept dans le contexte de la macro
- """
- # Normalement, lorsqu'on appelle cette methode, on ne veut nommer que des concepts nouvellement crees.
- # Le filtrage sur les concepts a creer ou a ne pas creer est fait dans la methode
- # create_sdprod. La seule chose a verifier apres conversion eventuelle du nom
- # est de verifier que le nom n'est pas deja attribue. Ceci est fait en delegant
- # au JDC par l'intermediaire du parent.
-
- #XXX attention inconsistence : prefix et gcncon ne sont pas
- # définis dans le package Noyau. La methode NommerSdprod pour
- # 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[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
- # nom commencant par __ : il s'agit de concepts qui seront detruits
- # nom commencant par _ : il s'agit de concepts intermediaires qui seront gardes
- # ATTENTION : il faut traiter différemment les concepts dont le nom
- # commence par _ mais qui sont des concepts nommés automatiquement par
- # une éventuelle sous macro.
- # Le test suivant n'est pas tres rigoureux mais permet de fonctionner pour le moment (a améliorer)
- if sdnom[1] in string.digits:
- # Ce concept provient probablement d'une macro appelee par self
- pass
- elif sdnom[1] == '_':
- sdnom=self.gcncon('.')
- else:
- sdnom=self.gcncon('_')
- else:
- # On est dans le cas d'un nom de concept global.
- pass
-
- if restrict == 'non':
- # On demande le nommage au parent mais sans ajout du concept dans le contexte du parent
- # car on va l'ajouter dans le contexte de la macro
- self.parent.NommerSdprod(sd,sdnom,restrict='oui')
- # On ajoute dans le contexte de la macro les concepts nommes
- # Ceci est indispensable pour les CO (macro) dans un INCLUDE
- self.g_context[sdnom]=sd
- else:
- # La demande de nommage vient probablement d'une macro qui a mis
- # le concept dans son contexte. On ne traite plus que le nommage (restrict="oui")
- self.parent.NommerSdprod(sd,sdnom,restrict='oui')
-
- def delete_concept_after_etape(self,etape,sd):
- """
- Met à jour les étapes de la MACRO qui sont après etape suite à
- la disparition du concept sd
- """
- # Cette methode est définie dans le noyau mais ne sert que pendant la phase de creation
- # des etapes et des concepts. Il n'y a aucun traitement particulier à réaliser
- # Dans d'autres conditions, il faudrait surcharger cette méthode.
- return
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitMACRO_ETAPE(self)
-
- def update_context(self,d):
- """
- Met à jour le contexte contenu dans le dictionnaire d
- Une MACRO_ETAPE peut ajouter plusieurs concepts dans le contexte
- Une fonction enregistree dans op_init peut egalement modifier le contexte
- """
- if type(self.definition.op_init) == types.FunctionType:
- apply(self.definition.op_init,(self,d))
- if self.sd != None:d[self.sd.nom]=self.sd
- for co in self.sdprods:
- d[co.nom]=co
-
- def make_include(self,unite=None):
- """
- Inclut un fichier dont l'unite logique est unite
- """
- if not unite : return
- f,text=self.get_file(unite=unite,fic_origine=self.parent.nom)
- self.fichier_init = f
- if f == None:return
- self.make_contexte(f,text)
-
- def make_poursuite(self):
- """
- Inclut un fichier poursuite
- """
- try:
- f,text=self.get_file(fic_origine=self.parent.nom)
- except:
- raise AsException("Impossible d'ouvrir la base pour une poursuite")
- self.fichier_init=f
- if f == None:return
- self.make_contexte(f,text)
-
- def make_contexte(self,f,text):
- """
- Interprete le texte fourni (text) issu du fichier f
- dans le contexte du parent.
- Cette methode est utile pour le fonctionnement des
- INCLUDE
- """
- # on execute le texte fourni dans le contexte forme par
- # le contexte de l etape pere (global au sens Python)
- # et le contexte de l etape (local au sens Python)
- code=compile(text,f,'exec')
- d={}
- self.g_context = d
- self.contexte_fichier_init = d
- globs=self.parent.get_global_contexte()
- exec code in globs,d
-
- def get_global_contexte(self):
- """
- Cette methode retourne le contexte global fourni
- par le parent(self) a une etape fille (l'appelant) pour
- realiser des evaluations de texte Python (INCLUDE,...)
- """
- # Le contexte global est forme par concatenation du contexte
- # du parent de self et de celui de l'etape elle meme (self)
- d=self.parent.get_global_contexte()
- d.update(self.g_context)
- return d
-
-
-
-
-
-
-
+++ /dev/null
-#@ MODIF N_MCBLOC Noyau DATE 03/09/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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 MCBLOC qui sert à controler la valeur
- d'un bloc de mots-clés par rapport à sa définition portée par un objet
- de type ENTITE
-"""
-
-import types
-
-import N_MCCOMPO
-
-class MCBLOC(N_MCCOMPO.MCCOMPO):
- """
- Classe support d'un bloc de mots-clés.
-
- """
-
- nature = "MCBLOC"
- def __init__(self,val,definition,nom,parent):
- """
- Attributs :
-
- - val : valeur du bloc (dictionnaire dont les clés sont des noms de mots-clés et les valeurs
- les valeurs des mots-clés)
-
- - definition : objet de définition de type BLOC associé au bloc (porte les attributs de définition)
-
- - nom : nom du bloc. Ce nom lui est donné par celui qui crée le bloc de mot-clé
-
- - parent : le créateur du bloc. Ce peut etre un mot-clé facteur ou un autre objet composite de type
- OBJECT. Si parent vaut None, le bloc ne possède pas de contexte englobant.
-
- - mc_liste : liste des sous-objets du bloc construite par appel à la méthode build_mc
-
- """
- self.definition=definition
- self.nom=nom
- self.val = val
- self.parent = parent
- self.valeur = val
- if parent :
- self.jdc = self.parent.jdc
- self.niveau = self.parent.niveau
- self.etape = self.parent.etape
- else:
- # Le mot cle a été créé sans parent
- self.jdc = None
- self.niveau = None
- self.etape = None
- self.mc_liste=self.build_mc()
-
- def get_valeur(self):
- """
- Retourne la "valeur" de l'objet bloc. Il s'agit d'un dictionnaire dont
- les clés seront les noms des objets de self.mc_liste et les valeurs
- les valeurs des objets de self.mc_liste obtenues par application de
- la méthode get_valeur.
-
- Dans le cas particulier d'un objet bloc les éléments du dictionnaire
- obtenu par appel de la méthode get_valeur sont intégrés au niveau
- supérieur.
-
- """
- dico={}
- for v in self.mc_liste:
- val = v.get_valeur()
- if type(val)==types.DictionaryType:
- for i,w in val.items():
- dico[i]=w
- else :
- dico[v.nom]=val
- return dico
-
- def isBLOC(self):
- """
- Indique si l'objet est un BLOC
- """
- return 1
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitMCBLOC(self)
-
- def makeobjet(self):
- return self.definition(val = None, nom = self.nom,parent = self.parent)
+++ /dev/null
-#@ MODIF N_MCCOMPO Noyau DATE 03/09/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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 MCCOMPO qui sert à factoriser les comportements
- des OBJECT composites
-"""
-
-import types
-from copy import copy
-import N_OBJECT
-
-class MCCOMPO(N_OBJECT.OBJECT):
- """
- Classe support d'un OBJECT composite
-
- """
-
- def build_mc(self):
- """
- Construit la liste des sous-entites du MCCOMPO
- à partir du dictionnaire des arguments (valeur)
- """
- if CONTEXT.debug : print "MCCOMPO.build_mc ",self.nom
- # Dans la phase de reconstruction args peut contenir des mots-clés
- # qui ne sont pas dans le dictionnaire des entites de definition (self.definition.entites)
- # de l'objet courant (self)
- # mais qui sont malgré tout des descendants de l'objet courant (petits-fils, ...)
- args = self.valeur
- if args == None : args ={}
- mc_liste=[]
-
- # On recopie le dictionnaire des arguments pour protéger l'original des delete (del args[k])
- args = args.copy()
-
- # Phase 1:
- # On construit les sous entites presentes ou obligatoires
- # 1- les entites présentes dans les arguments et dans la définition
- # 2- les entités non présentes dans les arguments, présentes dans la définition avec un défaut
- for k,v in self.definition.entites.items():
- if args.has_key(k) or v.statut=='o' :
- #
- # Creation par appel de la methode __call__ de la definition de la sous entite k de self
- # si une valeur existe dans args ou est obligatoire (generique si toutes les
- # entites ont l attribut statut )
- #
- objet=self.definition.entites[k](val=args.get(k,None),nom=k,parent=self)
- mc_liste.append(objet)
- # Si l'objet a une position globale on l'ajoute aux listes correspondantes
- if hasattr(objet.definition,'position'):
- if objet.definition.position == 'global' :
- self.append_mc_global(objet)
- elif objet.definition.position == 'global_jdc' :
- self.append_mc_global_jdc(objet)
- if args.has_key(k):
- del args[k]
-
- # Phase 2:
- # On construit les objets (en général, blocs) conditionnés par les mots-clés précédemment créés.
- # A ce stade, mc_liste ne contient que les fils de l'objet courant
- # args ne contient plus que des mots-clés qui n'ont pas été attribués car ils sont
- # à attribuer à des blocs du niveau inférieur ou bien sont des mots-clés erronés
- dico_valeurs = self.cree_dict_valeurs(mc_liste)
- for k,v in self.definition.entites.items():
- if v.label != 'BLOC':continue
- # condition and a or b : Equivalent de l'expression : condition ? a : b du langage C
- globs= self.jdc and self.jdc.condition_context or {}
- if v.verif_presence(dico_valeurs,globs):
- # Si le bloc existe :
- # 1- on le construit
- # 2- on l'ajoute à mc_liste
- # 3- on récupère les arguments restant
- # 4- on reconstruit le dictionnaire équivalent à mc_liste
- bloc = v(nom=k,val=args,parent=self)
- mc_liste.append(bloc)
- args=bloc.reste_val
- dico_valeurs = self.cree_dict_valeurs(mc_liste)
-
- # On conserve les arguments superflus dans l'attribut reste_val
- self.reste_val=args
- # On ordonne la liste ainsi créée suivant l'ordre du catalogue
- # (utile seulement pour IHM graphique)
- mc_liste = self.ordonne_liste(mc_liste)
- # on retourne la liste ainsi construite
- return mc_liste
-
- def ordonne_liste(self,mc_liste):
- """
- Ordonne la liste suivant l'ordre du catalogue.
- Seulement pour IHM graphique
- """
- if self.jdc and self.jdc.cata_ordonne_dico != None :
- liste_noms_mc_ordonnee = self.get_liste_mc_ordonnee_brute(
- self.get_genealogie(),self.jdc.cata_ordonne_dico)
- return self.ordonne_liste_mc(mc_liste,liste_noms_mc_ordonnee)
- else:
- return mc_liste
-
- def cree_dict_valeurs(self,liste=[]):
- """
- Cette méthode crée le contexte de l'objet courant sous la forme
- d'un dictionnaire.
- L'opération consiste à transformer une liste d'OBJECT en un
- dictionnaire.
- Ce dictionnaire servira de contexte pour évaluer les conditions des
- blocs fils.
-
- Cette méthode réalise les opérations suivantes en plus de transformer
- la liste en dictionnaire :
-
- - ajouter tous les mots-clés non présents avec la valeur None
-
- - ajouter tous les mots-clés globaux (attribut position = 'global'
- et 'global_jdc')
-
- ATTENTION : -- on ne remonte pas (semble en contradiction avec la
- programmation de la méthode get_valeur du bloc) les
- mots-clé fils d'un bloc au niveau du
- contexte car celà peut générer des erreurs.
-
- L'argument liste est, en général, une mc_liste en cours de
- construction, contenant les mots-clés locaux et les blocs déjà créés.
-
- """
- dico={}
- for v in liste:
- k=v.nom
- val = v.get_valeur()
- # Si val est un dictionnaire, on inclut ses items dans le dictionnaire
- # représentatif du contexte. Les blocs sont retournés par get_valeur
- # sous la forme d'un dictionnaire : les mots-clés fils de blocs sont
- # donc remontés au niveau du contexte.
- if type(val)==types.DictionaryType:
- for i,w in val.items():
- dico[i]=w
- else:
- dico[k]=val
- # on rajoute tous les autres mots-clés locaux possibles avec la valeur
- # par défaut ou None
- # Pour les mots-clés facteurs, on ne tient pas compte du défaut
- # (toujours None)
- for k,v in self.definition.entites.items():
- if not dico.has_key(k):
- if v.label == 'SIMP':
- dico[k]=v.defaut
- # S il est declare global il n est pas necessaire de l ajouter
- # aux mots cles globaux de l'etape
- # car la methode recherche_mc_globaux les rajoutera
- elif v.label == 'FACT' and v.statut in ('c','d') :
- dico[k]=v(val=None,nom=k,parent=self)
- # On demande la suppression des pointeurs arrieres
- # pour briser les eventuels cycles
- dico[k].supprime()
- elif v.label != 'BLOC':
- dico[k]=None
- # A ce stade on a rajouté tous les mots-clés locaux possibles (fils directs) avec leur
- # valeur par défaut ou la valeur None
- # on rajoute les mots-clés globaux ...
- dico_mc = self.recherche_mc_globaux()
- for nom,mc in dico_mc.items() :
- if not dico.has_key(nom) : dico[nom]=mc.valeur
- # Il nous reste à évaluer la présence des blocs en fonction du contexte qui a changé
- for k,v in self.definition.entites.items():
- if v.label != 'BLOC' : continue
- # condition and a or b : Equivalent de l'expression : condition ? a : b du langage C
- globs= self.jdc and self.jdc.condition_context or {}
- if v.verif_presence(dico,globs):
- # le bloc k doit etre présent : on crée temporairement l'objet MCBLOC correspondant
- # on lui passe un parent égal à None pour qu'il ne soit pas enregistré
- bloc = v(nom=k,val=None,parent=None)
- dico_bloc = bloc.cree_dict_valeurs()
- bloc.supprime()
- # on va updater dico avec dico_bloc en veillant à ne pas écraser
- # des valeurs déjà présentes
- for cle in dico_bloc.keys():
- if not dico.has_key(cle):
- dico[cle]=dico_bloc[cle]
- return dico
-
- def recherche_mc_globaux(self):
- """
- Retourne la liste des mots-clés globaux de l'étape à laquelle appartient self
- et des mots-clés globaux du jdc
- """
- etape = self.get_etape()
- if etape :
- dict_mc_globaux_fac = self.recherche_mc_globaux_facultatifs()
- dict_mc_globaux_fac.update(etape.mc_globaux)
- if self.jdc : dict_mc_globaux_fac.update(self.jdc.mc_globaux)
- return dict_mc_globaux_fac
- else :
- return {}
-
- def recherche_mc_globaux_facultatifs(self):
- """
- Cette méthode interroge la définition de self et retourne la liste des mots-clés fils
- directs de self de type 'global'
- """
- dico={}
- etape = self.get_etape()
- if not etape : return {}
- for k,v in etape.definition.entites.items():
- if v.label != 'SIMP' : continue
- if v.position != 'global' : continue
- if v.statut == 'o':continue
- obj = v(val=None,nom=k,parent=etape)
- dico[k]=obj
- return dico
-
- def supprime(self):
- """
- Méthode qui supprime toutes les références arrières afin que l'objet puisse
- etre correctement détruit par le garbage collector
- """
- N_OBJECT.OBJECT.supprime(self)
- for child in self.mc_liste :
- child.supprime()
-
- def __getitem__(self,key):
- """
- Cette méthode retourne la valeur d'un sous mot-clé (key)
- """
- return self.get_mocle(key)
-
- def get_mocle(self,key):
- """
- Retourne la valeur du sous mot-clé key
- Ce sous mot-clé peut exister, avoir une valeur par defaut ou etre
- dans un BLOC fils de self
- """
- # on cherche dans les mots cles presents, le mot cle de nom key
- # s'il est là on retourne sa valeur (méthode get_val)
- for child in self.mc_liste:
- if child.nom == key : return child.get_val()
- # Si on n a pas trouve de mot cle present on retourne le defaut
- # eventuel pour les mots cles accessibles dans la definition
- # a ce niveau
- try:
- d=self.definition.entites[key]
- if d.label == 'SIMP':
- return d.defaut
- elif d.label == 'FACT':
- # il faut construire les objets necessaires pour
- # evaluer les conditions des blocs eventuels (a faire)
- if d.statut == 'o' :return None
- if d.statut != 'c' and d.statut != 'd' :
- return None
- else :
- return d(val=None,nom=key,parent=self)
- except KeyError:
- # le mot cle n est pas defini a ce niveau
- pass
- # Si on a toujours rien trouve, on cherche dans les blocs presents
- # On suppose que tous les blocs possibles ont ete crees meme ceux
- # induits par un mot cle simple absent avec defaut (???)
- for mc in self.mc_liste :
- if not mc.isBLOC() : continue
- try:
- return mc.get_mocle(key)
- except:
- # On n a rien trouve dans ce bloc, on passe au suivant
- pass
- # On a rien trouve, le mot cle est absent.
- # On leve une exception
- raise IndexError,"Le mot cle %s n existe pas dans %s" % (key,self)
-
- def get_child(self,name,restreint = 'non'):
- """
- Retourne le fils de self de nom name ou None s'il n'existe pas
- Si restreint vaut oui : ne regarde que dans la mc_liste
- Si restreint vaut non : regarde aussi dans les entites possibles
- avec defaut
- (Ce dernier cas n'est utilisé que dans le catalogue)
- """
- for v in self.mc_liste:
- if v.nom == name : return v
- if restreint == 'non' :
- for k,v in self.definition.entites.items():
- if k == name:
- if v.valeur != None : return v(None,k,None)
- return None
-
- def append_mc_global(self,mc):
- """
- Ajoute le mot-clé mc à la liste des mots-clés globaux de l'étape
- """
- etape = self.get_etape()
- if etape :
- nom = mc.nom
- etape.mc_globaux[nom]=mc
-
- def append_mc_global_jdc(self,mc):
- """
- Ajoute le mot-clé mc à la liste des mots-clés globaux du jdc
- """
- nom = mc.nom
- self.jdc.mc_globaux[nom]=mc
-
- def copy(self):
- """ Retourne une copie de self """
- objet = self.makeobjet()
- # FR : attention !!! avec makeobjet, objet a le meme 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
-
- 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 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 child in self.mc_liste:
- l.extend(child.get_sd_utilisees())
- return l
+++ /dev/null
-#@ MODIF N_MCFACT Noyau DATE 03/09/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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 MCFACT qui sert à controler la valeur
- d'un mot-clé facteur par rapport à sa définition portée par un objet
- de type ENTITE
-"""
-
-import N_MCCOMPO
-
-class MCFACT(N_MCCOMPO.MCCOMPO):
- """
- """
- nature = "MCFACT"
- def __init__(self,val,definition,nom,parent):
- """
- Attributs :
- - val : valeur du mot clé simple
- - definition
- - nom
- - parent
- """
- self.definition=definition
- self.nom=nom
- self.val = val
- self.parent = parent
- self.valeur = self.GETVAL(self.val)
- if parent :
- self.jdc = self.parent.jdc
- self.niveau = self.parent.niveau
- self.etape = self.parent.etape
- else:
- # Le mot cle a été créé sans parent
- self.jdc = None
- self.niveau = None
- self.etape = None
- self.mc_liste=self.build_mc()
-
- def GETVAL(self,val):
- """
- Retourne la valeur effective du mot-clé en fonction
- de la valeur donnée. Defaut si val == None
- """
- if (val is None and hasattr(self.definition,'defaut')) :
- return self.definition.defaut
- else:
- return val
-
- def get_valeur(self):
- """
- Retourne la "valeur" d'un mot-clé facteur qui est l'objet lui-meme.
- Cette valeur est utilisée lors de la création d'un contexte
- d'évaluation d'expressions à l'aide d'un interpréteur Python
- """
- return self
-
- def get_val(self):
- """
- Une autre méthode qui retourne une "autre" valeur du mot clé facteur.
- Elle est utilisée par la méthode get_mocle
- """
- return [self]
-
- def __getitem__(self,key):
- """
- Dans le cas d un mot cle facteur unique on simule une liste de
- longueur 1
- """
- if key == 0:return self
- return self.get_mocle(key)
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitMCFACT(self)
-
- def makeobjet(self):
- return self.definition(val = None, nom = self.nom,parent = self.parent)
+++ /dev/null
-#@ MODIF N_MCLIST Noyau DATE 03/09/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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 MCList qui sert à controler la valeur
- d'une liste de mots-clés facteur par rapport à sa définition portée par un objet
- de type ENTITE
-"""
-
-from copy import copy
-import UserList
-
-class MCList(UserList.UserList):
- """ Liste semblable a la liste Python
- mais avec quelques methodes en plus
- = liste de MCFACT
- """
- nature = 'MCList'
- def init(self,nom,parent):
- self.definition = None
- self.nom = nom
- self.parent=parent
- if parent :
- self.jdc = self.parent.jdc
- self.niveau = self.parent.niveau
- self.etape = self.parent.etape
- else:
- # Le mot cle a été créé sans parent
- self.jdc = None
- self.niveau = None
- self.etape = None
-
- def get_valeur(self):
- """
- Retourne la "valeur" d'un objet MCList. Sert à construire
- un contexte d'évaluation pour une expression Python.
- On retourne l'objet lui-meme.
- """
- return self
-
- def get_val(self):
- """
- Une autre méthode qui retourne une "autre" valeur d'une MCList
- Elle est utilisée par la méthode get_mocle
- """
- return self
-
- def supprime(self):
- """
- Méthode qui supprime toutes les références arrières afin que l'objet puisse
- etre correctement détruit par le garbage collector
- """
- self.parent = None
- self.etape = None
- self.jdc = None
- self.niveau = None
- for child in self.data :
- child.supprime()
-
- def get_child(self,name):
- """
- Retourne le fils de nom name s'il est contenu dans self
- Par défaut retourne le fils du premier de la liste
- """
- obj = self.data[0]
- # Phase 1 : on cherche dans les fils directs de obj
- for child in obj.mc_liste :
- if child.nom == name: return child
- # Phase 2 : on cherche dans les blocs de self
- for child in obj.mc_liste:
- if child.isBLOC() :
- resu = child.get_child(name)
- if resu != None : return resu
- # Phase 3 : on cherche dans les entites possibles pour les défauts
- for k,v in obj.definition.entites.items():
- #if k == name: return v.defaut
- if k == name:
- if v.defaut != None : return v(None,k,None)
- # si on passe ici, c'est que l'on demande un fils qui n'est pas possible --> erreur
- #print "Erreur : %s ne peut etre un descendant de %s" %(name,self.nom)
- return None
-
- def isBLOC(self):
- """
- Indique si l'objet est de type BLOC
- """
- return 0
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitMCList(self)
-
- 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 child in self.data:
- l.extend(child.get_sd_utilisees())
- return l
-
- def copy(self):
- """
- Réalise la copie d'une MCList
- """
- liste = self.data[0].definition.list_instance()
- # 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
-
- 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)
+++ /dev/null
-#@ MODIF N_MCSIMP Noyau DATE 03/09/2002 AUTEUR GNICOLAS G.NICOLAS
-# 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 MCSIMP qui sert à controler la valeur
- d'un mot-clé simple par rapport à sa définition portée par un objet
- de type ENTITE
-"""
-
-import types
-from copy import copy
-
-from Noyau.N_ASSD import ASSD,assd
-import N_OBJECT
-
-class MCSIMP(N_OBJECT.OBJECT):
- """
- """
- nature = 'MCSIMP'
- def __init__(self,val,definition,nom,parent):
- """
- Attributs :
-
- - val : valeur du mot clé simple
-
- - definition
-
- - nom
-
- - parent
-
- Autres attributs :
-
- - valeur : valeur du mot-clé simple en tenant compte de la valeur par défaut
-
- """
- self.definition=definition
- self.nom=nom
- self.val = val
- self.parent = parent
- self.valeur = self.GETVAL(self.val)
- if parent :
- self.jdc = self.parent.jdc
- self.niveau = self.parent.niveau
- self.etape = self.parent.etape
- else:
- # Le mot cle simple a été créé sans parent
- self.jdc = None
- self.niveau = None
- self.etape = None
-
- def GETVAL(self,val):
- """
- Retourne la valeur effective du mot-clé en fonction
- de la valeur donnée. Defaut si val == None
- """
- if (val is None and hasattr(self.definition,'defaut')) :
- return self.definition.defaut
- else:
- return val
-
- def get_valeur(self):
- """
- Retourne la "valeur" d'un mot-clé simple.
- Cette valeur est utilisée lors de la création d'un contexte
- d'évaluation d'expressions à l'aide d'un interpréteur Python
- """
- return self.valeur
-
- def get_val(self):
- """
- Une autre méthode qui retourne une "autre" valeur du mot clé simple.
- Elle est utilisée par la méthode get_mocle
- """
- return self.valeur
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitMCSIMP(self)
-
- def copy(self):
- """ Retourne une copie de self """
- objet = self.makeobjet()
- # il faut copier les listes et les tuples mais pas les autres valeurs
- # possibles (réel,SD,...)
- if type(self.valeur) in (types.ListType,types.TupleType):
- objet.valeur = copy(self.valeur)
- else:
- objet.valeur = self.valeur
- objet.val = objet.valeur
- return objet
-
- def makeobjet(self):
- return self.definition(val = None, nom = self.nom,parent = self.parent)
-
- 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 get_sd_utilisees(self):
- """
- Retourne une liste qui contient la SD utilisée par self si c'est le cas
- ou alors une liste vide
- """
- l=[]
- if type(self.valeur) == types.InstanceType:
- #XXX Est ce différent de isinstance(self.valeur,ASSD) ??
- if issubclass(self.valeur.__class__,ASSD) : l.append(self.valeur)
- elif type(self.valeur) in (types.TupleType,types.ListType):
- for val in self.valeur :
- if type(val) == types.InstanceType:
- if issubclass(val.__class__,ASSD) : l.append(val)
- return l
+++ /dev/null
-#@ MODIF N_OBJECT Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe OBJECT classe mère de tous les objets
- servant à controler les valeurs par rapport aux définitions
-"""
-
-class OBJECT:
- """
- Classe OBJECT : cette classe est virtuelle et sert de classe mère
- aux classes de type ETAPE et MOCLES.
- Elle ne peut etre instanciée.
- Une sous classe doit obligatoirement implémenter les méthodes :
-
- - __init__
-
- """
-
- 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 supprime(self):
- """
- Méthode qui supprime les références arrières suffisantes pour
- que l'objet puisse etre correctement détruit par le
- garbage collector
- """
- self.parent = None
- self.etape = None
- self.jdc = None
- self.niveau = None
-
- def get_val(self):
- """
- Retourne la valeur de l'objet. Cette méthode fournit
- une valeur par defaut. Elle doit etre dérivée pour chaque
- type d'objet
- """
- return self
-
- def isBLOC(self):
- """
- Indique si l'objet est un BLOC
- """
- return 0
-
- def get_jdc_root(self):
- """
- Cette méthode doit retourner l'objet racine c'est à dire celui qui
- n'a pas de parent
- """
- if self.parent:
- return self.parent.get_jdc_root()
- else:
- return self
-
- def GETVAL(self,val):
- """
- Retourne la valeur effective du mot-clé en fonction
- de la valeur donnée. Defaut si val == None
- """
- if (val is None and hasattr(self.definition,'defaut')) :
- return self.definition.defaut
- else:
- return val
-
+++ /dev/null
-#@ MODIF N_OPER Noyau 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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe de definition OPER
- qui permet de spécifier les caractéristiques d'un opérateur
-"""
-
-import types,string,traceback
-
-import N_ENTITE
-import N_ETAPE
-import nommage
-
-class OPER(N_ENTITE.ENTITE):
- """
- Classe pour definir un opérateur
-
- Cette classe a trois attributs de classe
-
- - class_instance qui indique la classe qui devra etre utilisée
- pour créer l'objet qui servira à controler la conformité d'un
- opérateur avec sa définition
-
- - label qui indique la nature de l'objet de définition (ici, OPER)
-
- - nommage qui est un module Python qui fournit la fonctionnalité de nommage
-
- et les attributs d'instance suivants :
-
- - nom : son nom
-
- - op : le numéro d'opérateur
-
- - sd_prod : le type de concept produit. C'est une classe ou une fonction qui retourne
- une classe
-
- - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur
- réentrant peut modifier un concept d'entrée et le produire comme concept de sortie
-
- - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur
- non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort
- de l'objet gérant le contexte d'exécution de vérifier cette contrainte.
-
- - fr : commentaire associé en francais
-
- - ang : commentaire associé en anglais
-
- - docu : clé de documentation associée
-
- - regles : liste des règles associées
-
- - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette
- fonction est exécutée lors des phases d'initialisation de l'étape associée.
-
- - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre
- rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement.
- Si niveau vaut None, l'opérateur est rangé au niveau global.
-
- - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit
- des entités de définition pour les mots-clés : FACT, BLOC, SIMP. Cet attribut
- est initialisé avec args, c'est à dire les arguments d'appel restants.
-
-
- """
- class_instance = N_ETAPE.ETAPE
- label = 'OPER'
- nommage = nommage
-
- def __init__(self,nom,op,sd_prod,reentrant='n',repetable='o',fr="",ang="",
- docu="",regles=(),op_init=None,niveau = None,UIinfo=None,**args):
- """
- Méthode d'initialisation de l'objet OPER. Les arguments sont utilisés pour initialiser
- les attributs de meme nom
- """
- self.nom=nom
- self.op=op
- self.sd_prod=sd_prod
- self.reentrant=reentrant
- self.fr=fr
- self.ang=ang
- self.repetable = repetable
- self.docu=docu
- if type(regles)== types.TupleType:
- self.regles=regles
- else:
- self.regles=(regles,)
- # Attribut op_init : Fonction a appeler a la construction de l operateur sauf si == None
- self.op_init=op_init
- self.entites=args
- current_cata=CONTEXT.get_current_cata()
- if niveau == None:
- self.niveau=None
- current_cata.enregistre(self)
- else:
- self.niveau=current_cata.get_niveau(niveau)
- self.niveau.enregistre(self)
- self.UIinfo=UIinfo
- self.affecter_parente()
-
- def __call__(self,reuse=None,**args):
- """
- Construit l'objet ETAPE a partir de sa definition (self),
- puis demande la construction de ses sous-objets et du concept produit.
- """
- nomsd=self.nommage.GetNomConceptResultat(self.nom)
- etape= self.class_instance(oper=self,reuse=reuse,args=args)
- etape.McBuild()
- return etape.Build_sd(nomsd)
-
- def make_objet(self,mc_list='oui'):
- """
- Cette méthode crée l'objet ETAPE dont la définition est self sans
- l'enregistrer ni créer sa sdprod.
- Si l'argument mc_list vaut 'oui', elle déclenche en plus la construction
- des objets MCxxx.
- """
- etape= self.class_instance(oper=self,reuse=None,args={})
- if mc_list == 'oui':etape.McBuild()
- return etape
-
- def verif_cata(self):
- """
- Méthode de vérification des attributs de définition
- """
- if type(self.regles) != types.TupleType :
- self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`)
- if type(self.fr) != types.StringType :
- self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`)
- if self.reentrant not in ('o','n','f'):
- self.cr.fatal("L'attribut 'reentrant' doit valoir 'o','n' ou 'f' : %s" %`self.reentrant`)
- if type(self.docu) != types.StringType :
- self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu` )
- if type(self.nom) != types.StringType :
- self.cr.fatal("L'attribut 'nom' doit etre une chaine de caractères : %s" %`self.nom`)
- if type(self.op) != types.IntType :
- self.cr.fatal("L'attribut 'op' doit etre un entier signé : %s" %`self.op`)
- self.verif_cata_regles()
-
- def supprime(self):
- """
- Méthode pour supprimer les références arrières susceptibles de provoquer
- des cycles de références
- """
- self.niveau=None
-
-
+++ /dev/null
-#@ MODIF N_PROC Noyau 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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe de definition PROC
- qui permet de spécifier les caractéristiques d'une procédure
-"""
-
-import types,string,traceback
-
-import N_ENTITE
-import N_PROC_ETAPE
-
-class PROC(N_ENTITE.ENTITE):
- """
- Classe pour definir un opérateur
-
- Cette classe a deux attributs de classe
-
- - class_instance qui indique la classe qui devra etre utilisée
- pour créer l'objet qui servira à controler la conformité d'un
- opérateur avec sa définition
-
- - label qui indique la nature de l'objet de définition (ici, PROC)
-
-
- et les attributs d'instance suivants :
-
- - nom : son nom
-
- - op : le numéro d'opérateur
-
- - reentrant : vaut 'n' ou 'o'. Indique si l'opérateur est réentrant ou pas. Un opérateur
- réentrant peut modifier un concept d'entrée et le produire comme concept de sortie
-
- - repetable : vaut 'n' ou 'o'. Indique si l'opérateur est répetable ou pas. Un opérateur
- non répétable ne doit apparaitre qu'une fois dans une exécution. C'est du ressort
- de l'objet gérant le contexte d'exécution de vérifier cette contrainte.
-
- - fr : commentaire associé en francais
-
- - ang : commentaire associé en anglais
-
- - docu : clé de documentation associée
-
- - regles : liste des règles associées
-
- - op_init : cet attribut vaut None ou une fonction. Si cet attribut ne vaut pas None, cette
- fonction est exécutée lors des phases d'initialisation de l'étape associée.
-
- - niveau : indique le niveau dans lequel est rangé l'opérateur. Les opérateurs peuvent etre
- rangés par niveau. Ils apparaissent alors exclusivement dans leur niveau de rangement.
- Si niveau vaut None, l'opérateur est rangé au niveau global.
-
- - entites : dictionnaire dans lequel sont stockés les sous entités de l'opérateur. Il s'agit
- des entités de définition pour les mots-clés : FACT, BLOC, SIMP. Cet attribut
- est initialisé avec args, c'est à dire les arguments d'appel restants.
-
-
- """
- class_instance = N_PROC_ETAPE.PROC_ETAPE
- label = 'PROC'
-
- def __init__(self,nom,op,reentrant='n',repetable='o',fr="",ang="",
- docu="",regles=(),op_init=None,niveau = None,UIinfo=None,**args):
- """
- Méthode d'initialisation de l'objet PROC. Les arguments sont utilisés pour initialiser
- les attributs de meme nom
- """
- self.nom=nom
- self.op=op
- self.reentrant=reentrant
- self.repetable = repetable
- self.fr=fr
- self.ang=ang
- self.docu=docu
- if type(regles)== types.TupleType:
- self.regles=regles
- else:
- self.regles=(regles,)
- # Attribut op_init : Fonction a appeler a la construction de l operateur sauf si == None
- self.op_init=op_init
- self.entites=args
- current_cata=CONTEXT.get_current_cata()
- if niveau == None:
- self.niveau=None
- current_cata.enregistre(self)
- else:
- self.niveau=current_cata.get_niveau(niveau)
- self.niveau.enregistre(self)
- self.UIinfo=UIinfo
- self.affecter_parente()
-
- def __call__(self,**args):
- """
- Construit l'objet PROC_ETAPE a partir de sa definition (self),
- puis demande la construction de ses sous-objets et du concept produit.
- """
- etape= self.class_instance(oper=self,args=args)
- etape.McBuild()
- return etape.Build_sd()
-
- def make_objet(self,mc_list='oui'):
- """
- Cette méthode crée l'objet PROC_ETAPE dont la définition est self sans
- l'enregistrer ni créer sa sdprod.
- Si l'argument mc_list vaut 'oui', elle déclenche en plus la construction
- des objets MCxxx.
- """
- etape= self.class_instance(oper=self,args={})
- if mc_list == 'oui':etape.McBuild()
- return etape
-
- def verif_cata(self):
- """
- Méthode de vérification des attributs de définition
- """
- if type(self.regles) != types.TupleType :
- self.cr.fatal("L'attribut 'regles' doit etre un tuple : %s" %`self.regles`)
- if type(self.fr) != types.StringType :
- self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" %`self.fr`)
- if self.reentrant not in ('o','n','f'):
- self.cr.fatal("L'attribut 'reentrant' doit valoir 'o','n' ou 'f' : %s" %`self.reentrant`)
- if type(self.docu) != types.StringType :
- self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu` )
- if type(self.nom) != types.StringType :
- self.cr.fatal("L'attribut 'nom' doit etre une chaine de caractères : %s" %`self.nom`)
- if type(self.op) != types.IntType :
- self.cr.fatal("L'attribut 'op' doit etre un entier signé : %s" %`self.op`)
- self.verif_cata_regles()
-
- def supprime(self):
- """
- Méthode pour supprimer les références arrières susceptibles de provoquer
- des cycles de références
- """
- self.niveau=None
-
-
+++ /dev/null
-#@ MODIF N_PROC_ETAPE Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe PROC_ETAPE qui sert à vérifier et à exécuter
- une procédure
-"""
-
-# Modules Python
-import types,sys,string
-import traceback
-
-# Modules EFICAS
-import N_MCCOMPO, N_ETAPE
-from N_Exception import AsException
-import N_utils
-
-class PROC_ETAPE(N_ETAPE.ETAPE):
- """
- Cette classe hérite de ETAPE. La seule différence porte sur le fait
- qu'une procédure n'a pas de concept produit
-
- """
- nature = "PROCEDURE"
- def __init__(self,oper=None,args={}):
- """
- Attributs :
-
- - definition : objet portant les attributs de définition d'une étape de type opérateur. Il
- est initialisé par l'argument oper.
-
- - valeur : arguments d'entrée de type mot-clé=valeur. Initialisé avec l'argument args.
-
- """
- self.definition=oper
- self.valeur=args
- self.nettoiargs()
- self.parent=CONTEXT.get_current_step()
- self.etape = self
- self.nom=oper.nom
- self.idracine=oper.label
- self.appel=N_utils.callee_where()
- self.mc_globaux={}
- self.sd=None
- self.actif=1
- self.make_register()
-
- def make_register(self):
- """
- Initialise les attributs jdc, id, niveau et réalise les enregistrements
- nécessaires
- """
- if self.parent :
- self.jdc = self.parent.get_jdc_root()
- self.id=self.parent.register(self)
- self.niveau=None
- else:
- self.jdc = self.parent =None
- self.id=None
- self.niveau=None
-
- def McBuild(self):
- """
- Demande la construction des sous-objets et les stocke dans l'attribut
- mc_liste.
- """
- self.mc_liste=self.build_mc()
-
- 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:
- 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))
-
- def supprime(self):
- """
- Méthode qui supprime toutes les références arrières afin que l'objet puisse
- etre correctement détruit par le garbage collector
- """
- N_MCCOMPO.MCCOMPO.supprime(self)
- self.jdc=None
- self.appel=None
-
- def accept(self,visitor):
- """
- Cette methode permet de parcourir l'arborescence des objets
- en utilisant le pattern VISITEUR
- """
- visitor.visitPROC_ETAPE(self)
-
- def update_context(self,d):
- """
- Met à jour le contexte de l'appelant passé en argument (d)
- Une PROC_ETAPE n ajoute pas directement de concept dans le contexte
- Seule une fonction enregistree dans op_init pourrait le faire
- """
- if type(self.definition.op_init) == types.FunctionType:
- apply(self.definition.op_init,(self,d))
-
-
-
+++ /dev/null
-#@ MODIF N_REGLE Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mere pour les classes de definition des regles d exclusion.
-
- La classe REGLE est la classe de base : elle est virtuelle, elle ne doit pas etre instanciee.
-
- Les classes regles dérivées qui seront instanciées doivent implementer la methode verif
- dont l argument est le dictionnaire des mots cles effectivement presents
- sur lesquels sera operee la verification de la regle
-
- A la creation de l'objet regle on lui passe la liste des noms de mots cles concernes
-
- Exemple ::
-
- # Création de l'objet règle UNPARMI
- r=UNPARMI("INFO","AFFE")
- # Vérification de la règle r sur le dictionnaire passé en argument
- r.verif({"INFO":v1,"AFFE":v2)
-"""
-
-import types
-
-class REGLE:
- def __init__(self,*args):
- """
- Les classes dérivées peuvent utiliser cet initialiseur par défaut ou
- le surcharger
- """
- self.mcs=args
-
- def verif(self,args):
- """
- Les classes dérivées doivent implémenter cette méthode
- qui doit retourner une paire dont le premier élément est une chaine de caractère
- et le deuxième un entier.
-
- L'entier peut valoir 0 ou 1. -- s'il vaut 1, la règle est vérifiée
- s'il vaut 0, la règle n'est pas vérifiée et le texte joint contient
- un commentaire de la non validité.
- """
- raise "NotImplemented : class REGLE should be derived"
-
- def liste_to_dico(self,args):
- """
- Cette méthode est utilitaire pour les seuls besoins
- des classes dérivées.
-
- Elle transforme une liste de noms de mots clés en un
- dictionnaire équivalent dont les clés sont les noms des mts-clés
-
- Ceci permet d'avoir un traitement identique pour les listes et les dictionnaires
- """
- if type(args) == types.DictionaryType:
- return args
- elif type(args) == types.ListType:
- dico={}
- for arg in args :
- dico[arg]=0
- return dico
- else :
- raise "Erreur ce n'est ni un dictionnaire ni une liste",args
-
-
+++ /dev/null
-#@ MODIF N_SIMP Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-""" Ce module contient la classe de definition SIMP
- qui permet de spécifier les caractéristiques des mots clés simples
-"""
-
-import types
-
-import N_ENTITE
-import N_MCSIMP
-
-class SIMP(N_ENTITE.ENTITE):
- """
- Classe pour definir un mot cle simple
-
- Cette classe a deux attributs de classe
-
- - class_instance qui indique la classe qui devra etre utilisée
- pour créer l'objet qui servira à controler la conformité d'un
- mot-clé simple avec sa définition
-
- - label qui indique la nature de l'objet de définition (ici, SIMP)
-
- """
- class_instance = N_MCSIMP.MCSIMP
- label = 'SIMP'
-
- def __init__(self,typ,fr="",ang="",statut='f',into=None,defaut=None,
- min=1,max=1,homo=1,position ='local',
- val_min = '**',val_max='**',docu=""):
-
- """
- Un mot-clé simple est caractérisé par les attributs suivants :
-
- - type : cet attribut est obligatoire et indique le type de valeur attendue
-
- - fr :
-
- - ang :
-
- - statut :
-
- - into :
-
- - defaut :
-
- - min
-
- - max
-
- - homo
-
- - position
-
- - val_min
-
- - val_max
-
- - docu
- """
- N_ENTITE.ENTITE.__init__(self)
- # Initialisation des attributs
- if type(typ) == types.TupleType :
- self.type=typ
- else :
- self.type=(typ,)
- self.fr=fr
- self.ang=ang
- self.statut=statut
- self.into=into
- self.defaut=defaut
- self.min=min
- self.max=max
- self.homo=homo
- self.position = position
- self.val_min=val_min
- self.val_max=val_max
- self.docu = docu
-
- def verif_cata(self):
- """
- Cette methode sert à valider les attributs de l'objet de définition
- de la classe SIMP
- """
- if type(self.min) != types.IntType :
- if self.min != '**':
- self.cr.fatal("L'attribut 'min' doit etre un entier : "+`self.min`)
- if type(self.max) != types.IntType :
- if self.max != '**' :
- self.cr.fatal("L'attribut 'max' doit etre un entier : "+`self.max`)
- if self.min > self.max :
- self.cr.fatal("Nombres d'occurrence min et max invalides : %s %s" %(`self.min`,`self.max`))
- if type(self.fr) != types.StringType :
- self.cr.fatal("L'attribut 'fr' doit etre une chaine de caractères : %s" +`self.fr`)
- if self.statut not in ['o','f','c','d']:
- self.cr.fatal("L'attribut 'statut' doit valoir 'o','f','c' ou 'd' : %s" %`self.statut`)
- if self.homo != 0 and self.homo != 1 :
- self.cr.fatal("L'attribut 'homo' doit valoir 0 ou 1 : %s" %`self.homo`)
- if self.into != None :
- if type(self.into) != types.TupleType :
- self.cr.fatal("L'attribut 'into' doit etre un tuple : %s" %`self.into`)
- if self.position not in ['local','global','global_jdc']:
- self.cr.fatal("L'attribut 'position' doit valoir 'local','global' ou 'global_jdc' : %s" %`self.position`)
-
-
- def __call__(self,val,nom,parent=None):
- """
- Construit un objet mot cle simple (MCSIMP) a partir de sa definition (self)
- de sa valeur (val), de son nom (nom) et de son parent dans l arboresence (parent)
- """
- return self.class_instance(nom=nom,definition=self,val=val,parent=parent)
-
-
-
-
-
-
+++ /dev/null
-#@ MODIF N__F Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-import UserDict
-
-class _F(UserDict.UserDict):
- """
- Cette classe a un comportement semblable à un
- dictionnaire Python et permet de donner
- la valeur d'un mot-clé facteur avec pour les sous
- mots-clés la syntaxe motcle=valeur
- """
-
- def __init__(self,**args):
- self.data=args
-
- def supprime(self):
- self.data={}
-
- def __cmp__(self, dict):
- if type(dict) == type(self.data):
- return cmp(self.data, dict)
- elif hasattr(dict,"data"):
- return cmp(self.data, dict.data)
- else:
- return cmp(self.data, dict)
-
- def copy(self):
- import copy
- c= copy.copy(self)
- c.data=self.data.copy()
- return c
-
-
-
+++ /dev/null
-#@ MODIF N_utils Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient des fonctions utilitaires
-"""
-
-# Modules Python
-import sys,types
-import string
-
-# Modules EFICAS
-from N_Exception import AsException
-
-SEP='_'
-
-try:
- # Si la version de Python possède la fonction _getframe
- # on l'utilise.
- cur_frame=sys._getframe
-except:
- # Sinon on l'émule
- def cur_frame(offset=0):
- """ Retourne la frame d execution effective eventuellement en remontant
- de offset niveaux dans la pile d execution
- Si il y a moins de offset niveaux retourne None
- """
- try:1/0
- except:
- frame=sys.exc_info()[2].tb_frame.f_back
- while offset > 0:
- if frame == None:return None
- frame=frame.f_back
- offset=offset-1
- return frame
-
-
-def callee_where(niveau=4):
- """
- recupere la position de l appel
- """
- frame=cur_frame(niveau)
- if frame == None: return 0,"inconnu",0,{}
- try:
- return frame.f_lineno,frame.f_code.co_filename,frame.f_code.co_firstlineno,frame.f_locals
- except:
- return 0,"inconnu",0,{}
-
-def AsType(a):
- """
- Retourne le type d'un concept (a) à partir
- des caractéristiques de l'objet Python
- """
- if type(a) in (types.TupleType,types.ListType):return AsType(a[0])
- if type(a) == types.InstanceType:return a.__class__
- if type(a) == types.FloatType:return "R"
- if type(a) == types.IntType:return "I"
- if type(a) == types.StringType:return "TXM"
- if a == None : return None
- print 'a=',a,type(a)
- raise AsException("type inconnu")
-
-def prbanner(s):
- print "*"*(len(s)+10)
- print "*"*5 + s + "*"*5
- print "*"*(len(s)+10)
-
-def repr_float(valeur):
- """
- Cette fonction représente le réel valeur comme une chaine de caractères
- sous forme mantisse exposant si nécessaire cad si le nombre contient plus de
- 5 caractères
- NB : valeur est un réel au format Python ou une chaine de caractères représentant un réel
- """
- if type(valeur) == types.StringType : valeur = eval(valeur)
- if valeur == 0. : return '0.0'
- if abs(valeur) > 1. :
- if abs(valeur) < 10000. : return repr(valeur)
- else :
- if abs(valeur) > 0.01 : return repr(valeur)
- t=repr(valeur)
- if string.find(t,'e') != -1 or string.find(t,'E') != -1 :
- # le réel est déjà sous forme mantisse exposant !
- # --> on remplace e par E
- t=string.replace(t,'e','E')
- # --> on doit encore vérifier que la mantisse contient bien un '.'
- if string.find(t,'.')!= -1:
- return t
- else:
- # -->il faut rajouter le point avant le E
- t=string.replace(t,'E','.E')
- return t
- s=''
- neg = 0
- if t[0]=='-':
- s=s+t[0]
- t=t[1:]
- cpt = 0
- if string.atof(t[0]) == 0.:
- # réel plus petit que 1
- neg = 1
- t=t[2:]
- cpt=1
- while string.atof(t[0]) == 0. :
- cpt = cpt+1
- t=t[1:]
- s=s+t[0]+'.'
- for c in t[1:]:
- s=s+c
- else:
- # réel plus grand que 1
- s=s+t[0]+'.'
- if string.atof(t[1:]) == 0.:
- l=string.split(t[1:],'.')
- cpt = len(l[0])
- else:
- r=0
- pt=0
- for c in t[1:]:
- r=r+1
- if c != '.' :
- if pt != 1 : cpt = cpt + 1
- s=s+c
- else:
- pt = 1
- if r+1 == len(t) or string.atof(t[r+1:]) == 0.:break
- s=s+'E'+neg*'-'+repr(cpt)
- return s
-
+++ /dev/null
-#@ MODIF __init__ Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce package fournit les classes de base d'EFICAS.
- Ces classes permettent d'effectuer quelques opérations basiques :
-
- - la création
-
- - la vérification des définitions
-
- - la création d'objets de type OBJECT à partir d'une définition de type ENTITE
-"""
-# Avant toutes choses, on met le module context dans le global de l'interpreteur (__builtin__)
-# sous le nom CONTEXT afin d'avoir accès aux fonctions
-# get_current_step, set_current_step et unset_current_step de n'importe où
-import context
-import __builtin__
-__builtin__.CONTEXT=context
-
-# Classes de base
-from N_SIMP import SIMP
-from N_FACT import FACT
+++ /dev/null
-#@ MODIF context Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-_root=None
-_cata=None
-debug=0
-
-def set_current_step(step):
- """
- Fonction qui permet de changer la valeur de l'étape courante
- """
- global _root
- if _root : raise "Impossible d'affecter _root. Il devrait valoir None"
- _root=step
-
-def get_current_step():
- """
- Fonction qui permet d'obtenir la valeur de l'étape courante
- """
- return _root
-
-def unset_current_step():
- """
- Fonction qui permet de remettre à None l'étape courante
- """
- global _root
- _root=None
-
-def set_current_cata(cata):
- """
- Fonction qui permet de changer l'objet catalogue courant
- """
- global _cata
- if _cata : raise "Impossible d'affecter _cata. Il devrait valoir None"
- _cata=cata
-
-def get_current_cata():
- """
- Fonction qui retourne l'objet catalogue courant
- """
- return _cata
-
-def unset_current_cata():
- """
- Fonction qui permet de remettre à None le catalogue courant
- """
- global _cata
- _cata=None
-
+++ /dev/null
-#@ MODIF nommage Noyau DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module sert à nommer les concepts produits par les commandes.
- Le nom du concept est obtenu en appelant la fonction GetNomConceptResultat
- du module avec le nom de la commande en argument.
-
- Cette fonction parcourt le source dans lequel la commande se trouve, parse le
- fichier et retrouve le nom du concept qui se trouve à gauche du signe = précédant
- le nom de la commande.
-
- Cette fonction utilise la fonction cur_frame du module N_utils qui retourne la frame
- d'exécution Python située 2 niveaux au-dessus. C'est à partir de cette frame que
- l'on retrouve le fichier source et le numéro de ligne où se trouve l'appel à la commande.
-
-"""
-
-# Modules Python
-import re,string
-import linecache
-
-# Modules EFICAS
-import N_utils
-
-regex1='=\s*%s\s*\('
-
-def GetNomConceptResultat(ope):
- """
- Cette fonction recherche dans la pile des appels, l'appel à la commande
- qui doit etre situé à 2 niveaux au-dessus (cur_frame(2)).
- On retrouve d'abord la frame d'exécution f. Puis le numéro de la ligne
- dans le source f.f_lineno et le nom du fichier source (f.f_code.co_filename).
- A partir de là, on récupère la ligne de source avec linecache.getline
- et on vérifie que cette ligne correspond véritablement à l'appel.
-
- En effet, lorsque les commandes tiennent sur plusieurs lignes, on retrouve
- la dernière ligne. Il faut donc remonter dans le source jusqu'à la première
- ligne.
-
- Enfin la fonction evalnom forme un nom acceptable lorsque le concept est un
- élément d'une liste, par exemple.
-
- """
- f=N_utils.cur_frame(2)
- lineno = f.f_lineno # XXX Too bad if -O is used
- #lineno = f_lineno(f) # Ne marche pas toujours
- co = f.f_code
- filename = co.co_filename
- name = co.co_name
- #print "NOMOP,FICHIER, LIGNE ",ope,filename,lineno
- line = linecache.getline(filename, lineno)
- if not line: line = None
-
- list=[]
- list.append(line)
- while lineno > 0:
- #print "LIGNE ",line
- if re.search(regex1 % ope,line):
- l=re.split(regex1 % ope,line)
- list.reverse()
- #print "COMMANDE ",string.join(list)
- #print "SPLIT ",l
- # On suppose que le concept resultat a bien ete
- # isole en tete de la ligne de source
- m=evalnom(string.strip(l[0]),f.f_locals)
- #print "NOMS ",m
- return m[-1]
- lineno=lineno-1
- line = linecache.getline(filename, lineno)
- list.append(line)
- #print "appel inconnu"
- return ""
-
-def evalnom(text,d):
- """
- Retourne un nom pour le concept resultat identifie par text
- Pour obtenir ce nom il y a plusieurs possibilites :
- 1-text est un identificateur python c est le nom du concept
- 2-text est un element d une liste on construit le nom en
- evaluant la partie indice dans le contexte de l appelant d
- """
- l=re.split('([\[\]]+)',text)
- #print l
- if l[-1] == '' :l=l[:-1]
- lll=[]
- i=0
- while i<len(l):
- s=l[i]
- ll=string.split(s,',')
- ll=re.split('[ ,]+',s)
- if ll[0] == '' :ll=ll[1:]
- if len(ll) == 1:
- id0=ll[0]
- else:
- lll=lll+ll[0:-1]
- id0=ll[-1]
- if i+1<len(l) and l[i+1] == '[': # le nom est suivi d un subscript
- sub=l[i+2]
- nom=id0+'_'+str(eval(sub,d))
- i=i+4
- else:
- nom=id0
- i=i+1
- lll.append(nom)
- return lll
-
-def f_lineno(f):
- """
- Calcule le numero de ligne courant
- Devrait marcher meme avec -O
- Semble ne pas marcher en présence de tuples longs
- """
- c=f.f_code
- if not hasattr(c, 'co_lnotab'):return f.f_lineno
- tab=c.co_lnotab
- line = c.co_firstlineno
- stopat = f.f_lasti
- addr = 0
- for i in range(0, len(tab), 2):
- addr = addr + ord(tab[i])
- if addr > stopat:
- break
- line = line + ord(tab[i+1])
- return line
-
+++ /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 = "6.3.20"
-date = "10/10/2002"
+++ /dev/null
-
-EFICAS est constitué de plusieurs packages Python qui sont
-décrits rapidement ci-dessous.
-
-Noyau:
- est le package de base d'Eficas et du superviseur Aster.
- Il contient les foonctionnalités nécessaires à la création des
- objets MCxxx, ETAPE, etc.
- Ce package est commun à Eficas et au superviseur Aster
-
-Validation:
- est le package qui contient les fonctionnalités de validation :
- report et isvalid principalement.
- Ce package est commun à Eficas et au superviseur Aster
-
-Ihm:
- est le package qui contient les fonctionnalités liées à l'interfacage
- entre les objets du Noyau et l'interface graphique.
- Ce package est spécifique Eficas.
-
-Extensions:
- est le package qui contient les objets qui ne sont pas utilisés
- par le superviseur Aster et ne sont donc pas dans le Noyau.
- On y trouve les niveaux, les commentaires, les parametres, etc.
- Ce package est spécifique Eficas.
-
-Accas:
- est le package dans lequel on réunit les fonctionnalités des
- packages précédents par héritage multiple. Ce sont les
- classes d'Accas qui sont utilisées dans le catalogue. Ce mécanisme
- permet d'avoir un comportement différent en fonction du contexte
- avec un meme catalogue.
-
-Editeur:
- est le package qui contient la partie IHM proprement dite : widgets,
- composants (item,panel), différentes parties de l'IHM : appli, bureau,
- menubar, toolbar, statusbar, readercata, faq, splash, etc.
- Ce package est spécifique Eficas.
-
-convert:
- est le package qui contient les parseurs d'Eficas sous forme de plugins :
- convert_asterv5.py et convert_python.py
- Ce package est spécifique Eficas.
-
-generator:
- est le package qui contient les generateurs de sortie d'Eficas sous
- forme de plugins : generator_asterv5.py, generator_python.py,
- generator_aplat.py
-
-Misc:
- est le package qui contient des modules utilitaires de profiling et autres.
-
-Exemples:
- est un répertoire qui contient quelques exemples d'utilisation
- des packages précédents.
-
-Tools:
- contient le package externe foztools
-
-Aster:
- est le répertoire qui contient le script exécutable pour Aster :
- eficas_aster.py
- Cet executable est configuré avec les fichiers prefs.py et editeur.ini
- du meme répertoire.
- Les catalogues se trouvent dans le sous répertoire Cata.
- Pour executer, aller dans le répertoire et taper ./eficas_aster.py
-
-Saturne:
- idem pour Saturne : eficas_saturne.py, prefs.py, editeur.ini
- Les catalogues se trouvent dans le répertoire.
- Pour executer, aller dans le répertoire et taper ./eficas_saturne.py
-
-Minicode:
- idem pour un code de demo : eficas_mini.py, prefs.py, editeur.ini
- Les catalogues se trouvent dans le répertoire.
- Pour executer, aller dans le répertoire et taper ./eficas_mini.py
-
-
-
+++ /dev/null
-# debut entete
-import Accas
-from Accas import AU_MOINS_UN,UN_PARMI,EXCLUS,PRESENT_PRESENT
-from Accas import ENSEMBLE,PRESENT_ABSENT
-from Accas import JDC_CATA,NIVEAU
-from Accas import OPER,PROC,MACRO
-from Accas import SIMP,FACT,BLOC
-from Accas import ASSD
-#
-__version__="$Name: $"
-__Id__="$Id: cata_saturne.py,v 1.10 2000/10/24 10:32:56 iliade Exp $"
-#
-
-JdC = JDC_CATA(code='SATURNE',
- execmodul=None,
- regles = (AU_MOINS_UN('CALCUL_SATURNE'),),
- niveaux=(NIVEAU(nom='SONDES',label='Définition des sondes'),
- NIVEAU(nom='EQUATIONS',label='Définition des équations'),
- NIVEAU(nom='CALCUL',label ='Données du calcul')))
-
-# 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
-
-class sonde(ASSD):pass
-class varsca(ASSD):pass
-class flusca(ASSD):pass
-class varpre(ASSD):pass
-class varvitx(ASSD):pass
-class varvity(ASSD):pass
-class varvitz(ASSD):pass
-class eturb(ASSD):pass
-class dturb(ASSD):pass
-class tsr11(ASSD):pass
-class tsr22(ASSD):pass
-class tsr33(ASSD):pass
-class tsr12(ASSD):pass
-class tsr13(ASSD):pass
-class tsr23(ASSD):pass
-class resti(ASSD):pass
-
-# fin entete
-
-DEFI_SONDE = OPER(nom="DEFI_SONDE",op= 1,sd_prod=sonde,fr="définition d'une sonde historique avec ses coordonnées",
- niveau = 'SONDES',
- X = SIMP(statut ='o',typ='R',
- fr="coordonnée X de la sonde"),
- Y = SIMP(statut ='o',typ='R',
- fr="coordonnée Y de la sonde"),
- Z = SIMP(statut ='o',typ='R',
- fr="coordonnée Z de la sonde")
- );
-
-DEFI_SCALA = OPER(nom="DEFI_SCALA",op=2,sd_prod=varsca,fr="définition d'une inconnue scalaire avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_FLUSCA = OPER(nom="DEFI_FLUSCA",op=2,sd_prod=flusca,fr="définition des fluctuations d'une inconnue scalaire avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- VARFL = SIMP(statut='o',typ=varsca,fr="scalaire associé au calcul de la variance des fluctuations"),
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable"),
- RVARFL = SIMP(statut='o',typ='R',val_min=0,defaut=0.8,
- fr="nombre de Prandtl pour la variance des fluctuations du scalaire")
- )
- );
-
-DEFI_PRESSION = OPER(nom="DEFI_PRESSION",op=2,sd_prod=varpre,fr="définition del'inconnue pression avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de pression",
- ICONV = SIMP(statut='o',typ='I',defaut=0,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="Pression"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITX = OPER(nom="DEFI_VITX",op=2,sd_prod=varvitx,fr="définition de l'inconnue vitesse X avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse X",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_u1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITY = OPER(nom="DEFI_VITY",op=2,sd_prod=varvity,fr="définition de l'inconnue vitesse Y avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse Y",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_v1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_VITZ = OPER(nom="DEFI_VITZ",op=2,sd_prod=varvitz,fr="définition de l'inconnue vitesse Z avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés de l'équation de vitesse Z",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
- defaut="vitesse_w1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable"),
- )
- );
-
-
-DEFI_ETURB = OPER(nom="DEFI_ETURB",op=2,sd_prod=eturb,fr="définition de l'inconnue energie turbulente k-eps avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_DTURB = OPER(nom="DEFI_DTURB",op=2,sd_prod=dturb,fr="définition de l'inconnue dissipation turbulente k-eps avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR11 = OPER(nom="DEFI_TSR11",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R11 Rij-eps avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR22 = OPER(nom="DEFI_TSR22",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R22 Rij-eps avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR33 = OPER(nom="DEFI_TSR33",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R33 Rij-eps avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR12 = OPER(nom="DEFI_TSR12",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R12 Rij-eps avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR13 = OPER(nom="DEFI_TSR13",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R13 Rij-eps avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-DEFI_TSR23 = OPER(nom="DEFI_TSR23",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R23 Rij-eps avec ses paramètres physico numériques",
- niveau = 'EQUATIONS',
- NUMERIC = FACT(statut='o',max=01,
- fr="propriétés numériques liées à l'inconnue",
- ICONV = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr="indicateur de convection"),
- ISTAT = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="présence terme instationnaire dans les matrices"),
- IDIFF = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="diffusion"),
- IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
- fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
- SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
- BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
- fr="pourcentage schéma convectif au second ordre"),
- ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
- fr ="type schéma convectif au second ordre 1 : centré")
- ),
- NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
- fr="nombre max d'itération pour la résolution des systèmes linéaires"),
- EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
- fr="précision relative pour la résolution des systèmes linéaires"),
- IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
- fr="type de limitation des gradients"),
- NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
- fr="reconstruction des gradients"),
- NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
- fr="nombre d'itérations pour la reconstruction des seconds membres"),
- CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
- fr="facteur de limitation des gradients"),
- EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
- fr="précision relative pour la reconstruction itérative des gradients")
- ),
- RESTITUE = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- ),
- MODELE = FACT(statut='o',max=01,
- fr="modélisation",
- VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
- SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
- SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
- SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
- VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
- IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
- )
- );
-
-
-DEFI_RESTI = OPER(nom="DEFI_RESTI",op=2,sd_prod=resti,fr = "Description de la grandeur restituée",
- niveau = 'CALCUL',
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur scalaire")
- );
-
-CALCUL_SATURNE = PROC(nom = "CALCUL_SATURNE",op = 1,
- fr = "définition des paramètres généraux pour un calcul Saturne",
- docu = "néant",reentrant = 'n',
- niveau = 'CALCUL',
- ENVELOPPE = FACT(statut='o',max=01,fr = "gestion de l'enveloppe",
- IFOENV = SIMP(statut='o',typ='I',defaut=2,into=(0,1,2),position='global',
- fr = "mode de communication enveloppe solveur"),
- ENVTOSOLV = BLOC(condition="IFOENV > 0",
- fr = "liaison enveloppe vers solveur",
- IMPEVI = SIMP(statut='o',typ='I',defaut=13,val_min=0,val_max=99,
- fr = "numéro de fichier enveloppe vers solveur"),
- FICEVI = SIMP(statut='o',typ='TXM',defaut="enveloppe_vers_solveur ",
- fr = "nom de fichier enveloppe vers solveur")
- ),
- SOLVTOENV = BLOC(condition="IFOENV > 0",
- fr = "liaison solveur vers enveloppe",
- IMPEVO = SIMP(statut='o',typ='I',defaut=14,val_min=0,val_max=99,
- fr = "numéro de fichier solveur vers enveloppe"),
- FICEVO = SIMP(statut='o',typ='TXM',defaut="solveur_vers_enveloppe ",
- fr = "nom de fichier solveur vers enveloppe")
- )
- ),
- FICHIERS_CALCUL = FACT(statut='f',max=01,
- fr ="définition des fichiers géométrie, suite, stop",
- GEOMETRIE = BLOC(condition="IFOENV == 0",
- fr = "fichier géométrique (pas d'enveloppe)",
- IMPGEO = SIMP(statut='o',typ='I',defaut=10,val_min=0,val_max=99,
- fr = "numéro de fichier géométrique"),
- FICGEO = SIMP(statut='o',typ='TXM',defaut="geomet",
- fr = "nom de fichier géométrique")
- ),
- SUITE_AMONT = BLOC(condition="ISUITE == 1",
- fr = "fichier suite amont",
- IMPAMO = SIMP(statut='o',typ='I',defaut=11,val_min=0,val_max=99,
- fr = "numéro de fichier suite amont"),
- FICGEO = SIMP(statut='o',typ='TXM',defaut="suiamo",
- fr = "nom de fichier suite amont"),
- IFOAMO = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr = "format du fichier suite amont, 0 = binaire")
- ),
- FICHIER_STOP = FACT(fr = "fichier stop",
- IMPSTP = SIMP(statut='o',typ='I',defaut=12,val_min=0,val_max=99,
- fr = "numéro de fichier stop"),
- FICSTP = SIMP(statut='o',typ='TXM',defaut="ficstp",
- fr = "nom de fichier stop")
- ),
- SUITE_AVAL = FACT(fr = "fichier suite aval",
- IMPAVA = SIMP(statut='o',typ='I',defaut=20,val_min=0,val_max=99,
- fr = "numéro de fichier suite aval"),
- FICAVA = SIMP(statut='o',typ='TXM',defaut="suiamo",
- fr = "nom de fichier suite aval"),
- IFOAVA = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
- fr = "format du fichier suite aval, 0 = binaire")
- )
- ),
- POST_PROC_ENSIGHT = FACT(statut='f',max=01,
- fr = "options de post processing par Ensight",
- IFOENS = SIMP(statut='f',typ='I',defaut=-2,into=(-2,-1,0,1),
- fr = "option type de fichier et processus générateur"),
- NTCHR = SIMP(statut='f',typ='I',defaut=-1,
- fr = "périodicité de sortie des fichiers Ensight"),
- ITCHR = SIMP(statut='f',typ='I',defaut=0,val_min=0,
- fr = "compteur des sorties des fichiers Ensight"),
- N3S_ASCII_NOY = BLOC(condition="(IFOENS == -1) and (IFOENV == 0)",
- fr = "format Ensight N3S ASCII généré par le noyau",
- IMPPST = SIMP(statut='o',typ='I',defaut=21,val_min=0,val_max=99,
- fr = "numéro de fichier Ensight"),
- FICPST = SIMP(statut='o',typ='TXM',defaut="dessin",
- fr = "nom de fichier Ensight")
- ),
- P0_NOY = BLOC(condition="((IFOENS == 0) or (IFOENS == 1)) and (IFOENV == 0)",
- fr = "format Ensight P0 généré par le noyau",
- IMPEP0 = SIMP(statut='o',typ='I',defaut=22,val_min=0,val_max=99,
- fr = "numéro de fichier Ensight"),
- EMPCHR = SIMP(statut='o',typ='TXM',defaut="./",
- fr = "répertoire de fichier Ensight"),
- ENTCHR = SIMP(statut='o',typ='TXM',defaut="chr",
- fr = "préfixe nom de fichier Ensight")
- )
- ),
- HISTORIQUE_PONCTUEL = FACT(statut='o',max=01,
- fr = "Sondes historiques",
- FICHIERS_HISTORIQUES = FACT(statut='f',max=01,
- fr = "description des fichiers historiques",
- EMPHIS = SIMP(statut='o',typ='TXM',defaut="./",
- fr="répertoire fichiers historiques"),
- EXTHIS = SIMP(statut='o',typ='TXM',defaut="hst",
- fr="extension fichiers historiques")
- ),
- NTHIST = SIMP(statut='f',typ='I',defaut=-999,
- fr="fréquence de sortie des historiques en pas de temps"),
- NTHSAV = SIMP(statut='f',typ='I',defaut=-999,
- fr="fréquence de sauvegarde des historiques en pas de temps")
- ),
- OPTIONS_TURBULENCE = FACT(statut='o',max=01,
- fr="modèle de turbulence",
- ITURB = SIMP(statut='f',fr="laminaire : 0, k-epsilon :1,Rij-epsilon :2",
- typ='I',into=(0,1,2),defaut=1,position='global'),
- MODTURB = BLOC(condition="ITURB == 1",
- fr = "option k-epsilon",
- IGRAKE = SIMP(statut='o',typ='I',
- fr="prise en compte gravité dans k-epsilon",
- into=(0,1),defaut=0),
- IDEUCH = SIMP(statut='f',typ='I',
- fr="prise en compte k-epsilon deux échelles",
- into=(0,1),defaut=1),
- IKEKOU = SIMP(statut='f',typ='I',
- fr="prise en compte couplage en incréments sur k-epsilon",
- into=(0,1),defaut=1)
- ),
- TEMPTURB = BLOC(condition="ITURB == 1",
- fr = "option k-epsilon",
- ISCALT = SIMP(statut='o',typ=varsca,
- fr=" identificateur inconnue scalaire température ")
- )
- ),
- MARCHE_TEMPS = FACT(statut='o',max=01,
- fr = "définition de la marche en temps",
- DTREF = SIMP(statut='o',fr="pas de temps de référence",
- typ='R',val_min=0),
- IDTVAR = SIMP(statut='f',fr="pas de temps constant : 0, variable temps espace : 1, variable temps : 2",
- typ='I',into=(0,1,2),defaut=0,position='global'),
- # probleme trace eficas quand un mot cle position global change
- PASVAR = BLOC(condition="IDTVAR != 0",fr="options pas de temps variable",
- XCFMAX = SIMP(statut='o',fr="nombre de Courant-Fourier cible",
- typ='R',defaut=0.5,val_min=0),
- FMIN = SIMP(statut='f',fr="rapport min pas calculé DTREF",
- typ='R',defaut=0.1,val_min=0),
- FMAX = SIMP(statut='f',fr="rapport max pas calculé DTREF",
- typ='R',defaut=1000,val_min=0),
- VARRDT = SIMP(statut='f',fr="variation relative max pas calculé entre deux instants",
- typ='R',defaut=0.1,val_min=0)
- )
- ),
- OPTIONS_EQUATIONS = FACT(statut='o',max=01,
- fr = "propriétés des équations, inconnues principales",
- IMGR = SIMP(statut='f',fr="utilisation du multigrille pour la résolution des systèmes linéaires",
- typ='I',into=(0,1),defaut=0),
- IMRGRA = SIMP(statut='f',fr="type de reconstruction des gradients 1 : moindres carrés",
- typ='I',into=(0,1),defaut=0),
- ),
- VARIABLES = FACT(statut='o',max=01,
- fr = "Restitution des grandeurs principales",
- NTLIST = SIMP(statut='f',typ='I',defaut=1,val_min=1,val_max='**',
- fr = "fréquence de sortie (en pas de temps) dans le compte rendu d'éxécution"),
- IWARNI = SIMP(statut='f',typ='I',defaut=2,val_min=0,val_max='**',
- fr = "niveau de détail des impressions dans le compte rendu d'éxécution"),
- MASVOL1 = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée : masse volumique",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : masse volumique",
- defaut="Masse_vol1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur masse volumique")
- ),
- TURB_KE = BLOC(condition="ITURB == 1",
- E_TURB = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée : énergie turbulente",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : energie turbulente",
- defaut="Energie_1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur énergie turbulente")
- ),
- D_TURB = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée : dissipation turbulente",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : dissipation turbulente",
- defaut="Dissipation"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur dissipation turbulente")
- ),
- V_TURB = FACT(statut='o',max=01,
- fr = "Description de la grandeur restituée : viscosité turbulente",
- NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : viscosité turbulente",
- defaut="Visc_turb1"),
- ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
- ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
- fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
- IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
- fr = "inventaire des sondes utilisées pour la grandeur viscosité turbulente")
- ),
- )
- ),
- GESTION_CALCUL = FACT(statut='o',max=01,
- fr = "calcul suite et numéros de pas de temps début et fin",
- ISUITE = SIMP(statut='o',typ='I',defaut=0,into=(0,1),position='global',
- fr = "indicateur calcul suite (1 = suite)"),
- NTPABS = SIMP(statut='f',typ='I',defaut=0,
- fr = "numéro dernier pas de temps calcul précédent (initialisation automatique)"),
- NTMABS = SIMP(statut='o',typ='I',
- fr = "numéro dernier pas de temps visé (absolu)"),
- TTPABS = SIMP(statut='f',typ='R',defaut=0,
- fr = "temps simulation au dernier pas de temps précédent (initialisation automatique)")
- ),
- CONSTANTES_PHYSIQUES=FACT(statut='o',max=01,
- fr = "Grandeurs physiques et modélisation",
- GRAVITE = FACT(statut='o',max=01,
- fr = "composantes de la gravité",
- GX = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon X"),
- GY = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon Y"),
- GZ = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon Z")
- ),
- FLUIDE = FACT(statut='o',max=01,
- fr = "propriétés du fluide",
- RO0 = SIMP(statut ='o',typ='R',val_min=0,fr="masse volumique de référence"),
- VISCL0 = SIMP(statut ='o',typ='R',val_min=0,fr="viscosité dynamique de référence"),
- P0 = SIMP(statut ='o',typ='R',val_min=0,fr="pression de référence")
- ),
- TURBULENCE = BLOC(condition="ITURB >= 0",
- XKAPPA = SIMP(statut ='o',typ='R',defaut=0.42,val_min=0,fr="constante de Karman"),
- CSTLOG = SIMP(statut ='f',typ='R',defaut=5.2,val_min=0,fr="constante de la loi log"),
- YPLULI = SIMP(statut ='f',typ='R',defaut=2/0.42,val_min=0,fr="valeur limite de y+ pour la sous couche visqueuse"),
- CMU = SIMP(statut ='f',typ='R',defaut=0.009,val_min=0,fr="constante C mu"),
- CE1 = SIMP(statut ='f',typ='R',defaut=1.44,val_min=0,fr="constante C epsilon 1"),
- CE2 = SIMP(statut ='f',typ='R',defaut=1.92,val_min=0,fr="constante C epsilon 2"),
- CE3 = SIMP(statut ='f',typ='R',defaut=1.0,val_min=0,fr="constante C epsilon 3"),
- SIGMAK = SIMP(statut ='f',typ='R',defaut=1.0,val_min=0,fr="nombre de Prandtl pour k en k-epsilon"),
- SIGMAE = SIMP(statut ='f',typ='R',defaut=1.3,val_min=0,fr="nombre de Prandtl pour epsilon en k-epsilon"),
- ALMAX = SIMP(statut ='f',typ='R',val_min=0,fr="longueur macroscopique caractéristique du domaine"),
- UREF = SIMP(statut ='f',typ='R',val_min=0,fr="vitesse caractéristique de l'écoulement pour l'initialisation du k-epsilon")
- )
- )
- );
-
+++ /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 = (
- ('SATURNE','v1',os.path.join(rep_cata,'cata_saturne.py'),'python','defaut'),
- )
-
+++ /dev/null
-#!/usr/bin/env python
-"""
- Ce module sert à lancer EFICAS configuré pour Code_Saturne
-"""
-# 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='SATURNE',fichier = sys.argv[1])
-else:
- # on veut ouvrir Eficas 'vide'
- eficas_go.lance_eficas(code='SATURNE')
-
+++ /dev/null
-
-sansnom=DEFI_SONDE(Z=45,
- X=None,
- Y=None,);
-SD_1=DEFI_SONDE(Z=None,
- X=None,
- Y=None,);
-sd1=DEFI_SONDE(Z=1.1,
- X=1.2,
- Y=1.3,);
-sd2=DEFI_SONDE(Z=2.2,
- X=2.1,
- Y=2.3,);
-sd3=DEFI_SONDE(Z=3.1,
- X=3.2,
- Y=3.3,);
-temperature=DEFI_SCALA(RESTITUE=_F(NOMVAR='temperature',),
- MODELE=_F(VALREF=300,
- VISLS0=0.1,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
-cb=DEFI_SCALA(RESTITUE=_F(NOMVAR='bore',),
- MODELE=_F(VALREF=1000,
- VISLS0=0.12,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
-CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2,
- FICEVI='enveloppe_vers_solveur ',
- IMPEVI=13,
- IMPEVO=14,FICEVO='solveur_vers_enveloppe ',),
- CONSTANTES_PHYSIQUES=_F(FLUIDE=_F(VISCL0=0.12,
- P0=1000000.0,
- RO0=995.3,),
- GRAVITE=_F(GX=0,GY=0,GZ=0,),),
- HISTORIQUE_PONCTUEL=_F(),
- EQUATIONS=_F(TURBULENCE=_F(ITURB=1,ISCALT=temperature,IGRAKE=0,),),
- DEFINITION_EQUATION=_F(INC_PRESSION=_F(ICONV=0,),
- INC_VITESSEZ=_F(ICONV=1,BLENCV=0,),
- INC_VITESSEY=_F(ICONV=1,BLENCV=0,),
- INC_VITESSEX=_F(ICONV=1,BLENCV=0,),
- INC_K=_F(ICONV=1,BLENCV=0,),
- INC_EPS=_F(ICONV=1,BLENCV=0,),),
- VARIABLES=_F(VITESSE_Z=_F(NOMVAR='Vitesse_w1',IHISVR=(sd2,sd3),),
- VITESSE_X=_F(NOMVAR='Vitesse_u1',),
- VITESSE_Y=_F(NOMVAR='Vitesse_v1',),
- PRESSION=_F(NOMVAR='Pression',),
- MASVOL1=_F(NOMVAR='Masse_vol1',),
- E_TURB=_F(NOMVAR='Energie_1',IHISVR=sd1,),
- V_TURB=_F(NOMVAR='Visc_turb1',),
- D_TURB=_F(NOMVAR='Dissipation',),),
- FICHIERS_CALCUL=_F(),
- GESTION_CALCUL=_F(NTMABS=1000,ISUITE=0,),
- MARCHE_TEMPS=_F(DTREF=0.01,XCFMAX=0.5,),
- );
+++ /dev/null
-
-SD1=DEFI_SONDE(Z=1,
- X=2,
- Y=3,);
-SD2=DEFI_SONDE(Z=1,
- X=2,
- Y=3,);
-SD3=DEFI_SONDE(Z=3,
- X=4,
- Y=5,);
-SD4=DEFI_SONDE(Z=12,
- X=11,
- Y=10,);
-SD5=DEFI_SONDE(Z=21,
- X=21,
- Y=21,);
-temperature=DEFI_SCALA(RESTITUE=_F(NOMVAR='temperature',
- ILISVR=1,
- ICHRVR=1,
- IHISVR=SD1,),
- MODELE=_F(SIGMAS=0.9,
- SCAMAX=1000,
- VALREF=300.0,
- SCAMIN=270,
- VISLS0=0.05,
- IVISLS=1,
- ),
- NUMERIC=_F(IMLIGR=1,
- CLIMGR=1.7,
- EPSRGR=0.0001,
- NITMAX=1000,
- IDIRCL=0,
- IDIFF=1,
- NSWRGR=2,
- NSWRSM=10,
- EPSILO=1e-05,
- ISTAT=1,
- ICONV=1,
- BLENCV=0.5,
- ISCHCV=1,),);
-cb=DEFI_SCALA(RESTITUE=_F(NOMVAR='bore',),
- MODELE=_F(VALREF=1000.0,
- VISLS0=0.3,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
-CALCUL_SATURNE(ENVELOPPE=_F(IFOENV=2,
- FICEVI='Enveloppe_vers_solveur ',
- IMPEVI=83,
- IMPEVO=84,
- FICEVO='Solveur_vers_enveloppe ',),
- OPTIONS_TURBULENCE=_F(ISCALT=temperature),
- CONSTANTES_PHYSIQUES=_F(FLUIDE=_F(VISCL0=0.1,
- P0=10000.0,
- RO0=1000.0,),
- GRAVITE=_F(GX=0,
- GY=0,
- GZ=0,),),
- HISTORIQUE_PONCTUEL=_F(FICHIERS_HISTORIQUES=_F(EXTHIS='histo',
- EMPHIS='./',),
- NTHIST=1,
- NTHSAV=20,),
- VARIABLES=_F( MASVOL1=_F(NOMVAR='Masse_vol1',
- IHISVR=SD2,
- ICHRVR=0,
- ILISVR=1,),
- NTLIST=2,
- IWARNI=3,),
- GESTION_CALCUL=_F(NTMABS=1000,
- ISUITE=0,
- NTPABS=100,
- TTPABS=10.5,),
- MARCHE_TEMPS=_F(DTREF=0.001,
- IDTVAR=2,),
- FICHIERS_CALCUL=_F(FICHIER_STOP=_F(FICSTP='ficstop',
- IMPSTP=82,),
- SUITE_AVAL=_F(FICAVA='sui_amo',
- IMPAVA=70,
- IFOAVA=1,),),
- POST_PROC_ENSIGHT=_F(IFOENS=1,
- NTCHR=3,
- ITCHR=10,),);
-
+++ /dev/null
-
-sansnom=DEFI_SONDE(Z=None,
- X=None,
- Y=None,);
-sansnom=DEFI_DTURB(RESTITUE=_F(NOMVAR=None,),
- MODELE=_F(VALREF=None,
- VISLS0=None,),
- NUMERIC=_F(ICONV=1,
- BLENCV=0,),);
\ No newline at end of file
+++ /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"
+++ /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"
+++ /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.
-#
-#
-# ======================================================================
-__all__=['foztools']
+++ /dev/null
-__all__=['foztools']
+++ /dev/null
-# $Header: /home/eficas/CVSROOT/EficasV1/Tools/foztools/foztools.py,v 1.1.1.1 2001/12/04 15:38:23 eficas Exp $
-
-###########################################################################
-# This is a set of Python widgets, built on top of pythonTk. They are
-# designed to be highly customizable, flexible, and useful. They are
-# also all built from the base PythonTk widgets so no other external
-# libraries are needed.
-#
-# Use it in good health. It's hereby released under the GPL, if you
-# have questions about the GPL contact the Free Software Foundation.
-#
-# Author: Gary D. Foster <Gary.Foster@corp.sun.com>
-# with some ideas stolen from Mitch Chapman's stuff.
-#
-###########################################################################
-
-__version__ = "$Revision: 1.1.1.1 $"
-
-import Tkinter
-Tk=Tkinter
-
-class Slider:
- def __init__(self, master=None, orientation="horizontal", min=0, max=100,
- width=100, height=25, autoLabel="true", appearance="sunken",
- fillColor="blue", background="black", labelColor="yellow",
- labelText="", labelFormat="%d%%", value=50, bd=2):
- # preserve various values
- self.master=master
- self.orientation=orientation
- self.min=min
- self.max=max
- self.width=width
- self.height=height
- self.autoLabel=autoLabel
- self.fillColor=fillColor
- self.labelColor=labelColor
- self.background=background
- self.labelText=labelText
- self.labelFormat=labelFormat
- self.value=value
- self.frame=Tk.Frame(master, relief=appearance, bd=bd)
- self.canvas=Tk.Canvas(self.frame, height=height, width=width, bd=0,
- highlightthickness=0, background=background)
- self.scale=self.canvas.create_rectangle(0, 0, width, height,
- fill=fillColor)
- self.label=self.canvas.create_text(self.canvas.winfo_reqwidth() / 2,
- height / 2, text=labelText,
- anchor="c", fill=labelColor)
- self.update()
- self.canvas.pack(side='top', fill='x', expand='no')
-
- def update(self):
- # Trim the values to be between min and max
- value=self.value
- if value > self.max:
- value = self.max
- if value < self.min:
- value = self.min
- # Preserve the new value
- c=self.canvas
- # Adjust the rectangle
- if self.orientation == "horizontal":
- c.coords(self.scale,
- 0, 0,
- float(value) / self.max * self.width, self.height)
- else:
- c.coords(self.scale,
- 0, self.height - (float(value) / self.max*self.height),
- self.width, self.height)
- # Now update the colors
- c.itemconfig(self.scale, fill=self.fillColor)
- c.itemconfig(self.label, fill=self.labelColor)
- # And update the label
- if self.autoLabel=="true":
- c.itemconfig(self.label, text=self.labelFormat % value)
- else:
- c.itemconfig(self.label, text=self.labelFormat % self.labelText)
- c.update_idletasks()
-
-class Indicator:
- def __init__(self, master=None, width=25, height=25, appearance="sunken",
- onColor="green", offColor="black", onLabelColor="black",
- offLabelColor="green", onLabelText="", offLabelText="",
- on=1, bd=2):
- # preserve various values
- self.master=master
- self.onColor=onColor
- self.offColor=offColor
- self.onLabelColor=onLabelColor
- self.offLabelColor=offLabelColor
- self.onLabelText=onLabelText
- self.offLabelText=offLabelText
- self.on=on
- self.frame=Tk.Frame(master, relief=appearance, bd=bd)
- self.canvas=Tk.Canvas(self.frame, height=height, width=width, bd=0,
- highlightthickness=0)
- self.light=self.canvas.create_rectangle(0, 0, width, height,
- fill=onLabelColor)
- self.label=self.canvas.create_text(self.canvas.winfo_reqwidth() / 2,
- height / 2, text=onLabelText,
- anchor="c", fill=onLabelColor)
- self.update()
- self.canvas.pack(side="top", fill='x', expand='no')
-
- def update(self):
- c=self.canvas
- # now update the status
- if self.on:
- c.itemconfig(self.light, fill=self.onColor)
- c.itemconfig(self.label, fill=self.onLabelColor)
- c.itemconfig(self.label, text=self.onLabelText)
- else:
- c.itemconfig(self.light, fill=self.offColor)
- c.itemconfig(self.label, fill=self.offLabelColor)
- c.itemconfig(self.label, text=self.offLabelText)
- c.update_idletasks()
-
- def toggle(self):
- self.on=not self.on
- self.update()
-
- def turnon(self):
- self.on=1
- self.update()
-
- def turnoff(self):
- self.on=0
- self.update()
-
-class Blinker(Indicator):
- def __init__(self, master=None, blinkrate=1, enabled=1, width=25,
- height=25, appearance="sunken", onColor="green",
- offColor="black", onLabelColor="black", offLabelColor="green",
- onLabelText="", offLabelText="", on=1, bd=2):
- self.blinkrate=blinkrate
- self.enabled=enabled
- Indicator.__init__(self, master, width=width, height=height,
- appearance=appearance, onColor=onColor,
- offColor=offColor, onLabelColor=onLabelColor,
- offLabelColor=offLabelColor,
- onLabelText=onLabelText,
- offLabelText=offLabelText, on=on, bd=bd)
-
- def update(self):
- if self.enabled:
- self.on=not self.on
- Indicator.update(self)
- self.frame.after(self.blinkrate * 1000, self.update)
-
-
+++ /dev/null
-#!/usr/local/bin/python
-import Tkinter
-from foztools import Slider
-
-Tk=Tkinter
-
-def main():
- class Test:
- def __init__(self):
- win = Tk.Frame()
- win.master.title("Slider Demo")
- self.progress1=Slider(win, fillColor="red", labelColor="yellow",
- value=0, width=200, height=15,
- appearance="sunken", autoLabel="false",
- labelFormat="%s",
- labelText="Gary.Foster@corp.sun.com",
- orientation="horizontal", bd=3)
- self.progress2=Slider(win, fillColor="blue", labelColor="black",
- background="white", value=250, width=50,
- height=200, appearance="raised", max=250,
- labelFormat="%d", orientation="vertical", bd=4)
- self.progress1.frame.pack()
- self.progress2.frame.pack()
- win.pack()
- self.progress1.frame.after(1000, self.update)
- self.increment1=1
- self.increment2=-1
-
- def update(self, event=None):
- bar1=self.progress1
- bar2=self.progress2
-
- bar1.value=bar1.value+self.increment1
- if bar1.value > bar1.max:
- self.increment1=-1
- bar1.fillColor="green"
- bar1.labelColor="red"
- if bar1.value < bar1.min:
- self.increment1=1
- bar1.fillColor="red"
- bar1.labelColor="yellow"
- bar1.update()
- bar1.frame.after(100, self.update)
-
- bar2.value=bar2.value+self.increment2
- if bar2.value > bar2.max:
- self.increment2=-1
- if bar2.value < bar2.min:
- self.increment2=1
- bar2.update()
-
- t = Test()
- Tk.mainloop()
-
-if __name__=="__main__":
- main()
+++ /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
+++ /dev/null
-#@ MODIF V_AU_MOINS_UN Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-
-class AU_MOINS_UN:
- """
- La règle AU_MOINS_UN vérifie que l'on trouve au moins un des mots-clés
- de la règle parmi les arguments d'un OBJECT.
-
- Ces arguments sont transmis à la règle pour validation sous la forme
- d'une liste de noms de mots-clés ou d'un dictionnaire dont
- les clés sont des noms de mots-clés.
- """
- def verif(self,args):
- """
- La méthode verif vérifie que l'on trouve au moins un des mos-clés
- de la liste self.mcs parmi les éléments de args
-
- args peut etre un dictionnaire ou une liste. Les éléments de args
- sont soit les éléments de la liste soit les clés du dictionnaire.
- """
- # on compte le nombre de mots cles presents
- text =''
- count=0
- args = self.liste_to_dico(args)
- for mc in self.mcs:
- if args.has_key(mc):count=count+1
- if count == 0:
- text = "- Il faut au moins un mot-clé parmi : "+`self.mcs`+'\n'
- return text,0
- return text,1
-
+++ /dev/null
-#@ MODIF V_A_CLASSER Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-
-import types
-
-class A_CLASSER:
- """
- La règle A_CLASSER vérifie que ...
-
- """
- def __init__(self,*args):
- if len(args) > 2 :
- print "Erreur à la création de la règle A_CLASSER(",args,")"
- return
- self.args=args
- if type(args[0]) == types.TupleType:
- self.args0 = args[0]
- elif type(args[0]) == types.StringType:
- self.args0 = (args[0],)
- else :
- print "Le premier argument de :",args," doit etre un tuple ou une string"
- if type(args[1]) == types.TupleType:
- self.args1 = args[1]
- elif type(args[1]) == types.StringType:
- self.args1 = (args[1],)
- else :
- print "Le deuxième argument de :",args," doit etre un tuple ou une string"
- # création de la liste des mcs
- liste = []
- for arg0 in self.args0:
- liste.append(arg0)
- for arg1 in self.args1:
- liste.append(arg1)
- self.mcs = liste
- self.init_couples_permis()
-
- def init_couples_permis(self):
- """ Crée la liste des couples permis parmi les self.args, càd pour chaque élément
- de self.args0 crée tous les couples possibles avec un élément de self.args1"""
- liste = []
- for arg0 in self.args0:
- for arg1 in self.args1:
- liste.append((arg0,arg1))
- self.liste_couples = liste
-
- def verif(self,args):
- """
-
- args peut etre un dictionnaire ou une liste. Les éléments de args
- sont soit les éléments de la liste soit les clés du dictionnaire.
- """
- # création de la liste des couples présents dans le fichier de commandes
- l_couples = []
- couple = []
- text = ''
- test = 1
- for nom in args:
- if nom in self.mcs :
- couple.append(nom)
- if len(couple) == 2 :
- l_couples.append(tuple(couple))
- couple=[]
- if nom not in self.args1:
- couple.append(nom)
- if len(couple) > 0 :
- l_couples.append(tuple(couple))
- # l_couples peut etre vide si l'on n'a pas réussi à trouver au moins un
- # élément de self.mcs
- if len(l_couples) == 0 :
- message = "- Il faut qu'au moins un objet de la liste : "+`self.args0`+\
- " soit suivi d'au moins un objet de la liste : "+`self.args1`
- return message,0
- # A ce stade, on a trouvé des couples : il faut vérifier qu'ils sont
- # tous licites
- num = 0
- for couple in l_couples :
- num = num+1
- if len(couple) == 1 :
- # on a un 'faux' couple
- if couple[0] not in self.args1:
- text = text+"- L'objet : "+couple[0]+" doit etre suivi d'un objet de la liste : "+\
- `self.args1`+'\n'
- test = 0
- else :
- if num > 1 :
- # ce n'est pas le seul couple --> licite
- break
- else :
- text = text+"- L'objet : "+couple[0]+" doit etre précédé d'un objet de la liste : "+\
- `self.args0`+'\n'
- test = 0
- elif couple not in self.liste_couples :
- text = text+"- L'objet : "+couple[0]+" ne peut etre suivi de : "+couple[1]+'\n'
- test = 0
- return text,test
-
+++ /dev/null
-#@ MODIF V_ENSEMBLE Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-
-class ENSEMBLE:
- """
- La règle vérifie que si un mot-clé de self.mcs est present
- parmi les elements de args tous les autres doivent etre presents.
-
- Ces arguments sont transmis à la règle pour validation sous la forme
- d'une liste de noms de mots-clés ou d'un dictionnaire dont
- les clés sont des noms de mots-clés.
- """
- def verif(self,args):
- """
- La methode verif effectue la verification specifique à la règle.
- args peut etre un dictionnaire ou une liste. Les éléments de args
- sont soit les éléments de la liste soit les clés du dictionnaire.
- """
- # on compte le nombre de mots cles presents, il doit etre egal a la liste
- # figurant dans la regle
- text = ''
- test = 1
- args = self.liste_to_dico(args)
- pivot = None
- for mc in self.mcs:
- if args.has_key(mc):
- pivot = mc
- break
- if pivot :
- for mc in self.mcs:
- if mc != pivot :
- if not args.has_key(mc):
- text = text + "- "+ pivot + " étant présent, "+mc+" doit etre présent"+'\n'
- test = 0
- return text,test
-
-
-
+++ /dev/null
-#@ MODIF V_ETAPE Validation 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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mixin ETAPE qui porte les méthodes
- nécessaires pour réaliser la validation d'un objet de type ETAPE
- dérivé de OBJECT.
-
- Une classe mixin porte principalement des traitements et est
- utilisée par héritage multiple pour composer les traitements.
-"""
-# Modules Python
-import string,types,sys
-import traceback
-
-# Modules EFICAS
-import V_MCCOMPO
-from Noyau.N_Exception import AsException
-from Noyau.N_utils import AsType
-
-class ETAPE(V_MCCOMPO.MCCOMPO):
- """
- """
-
- def isvalid(self,sd='oui',cr='non'):
- """
- Methode pour verifier la validité de l'objet ETAPE. Cette méthode
- peut etre appelée selon plusieurs modes en fonction de la valeur
- de sd et de cr.
-
- Si cr vaut oui elle crée en plus un compte-rendu.
-
- Cette méthode a plusieurs fonctions :
-
- - mettre à jour l'état de self (update)
-
- - retourner un indicateur de validité 0=non, 1=oui
-
- - produire un compte-rendu : self.cr
-
- """
- if CONTEXT.debug : print "ETAPE.isvalid ",self.nom
- if self.state == 'unchanged' :
- return self.valid
- else:
- 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
- #
- # 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:
- # 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.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'):
- """
- Cette méthode met à jour le concept produit en fonction des conditions initiales :
-
- 1- Il n'y a pas de concept retourné (self.definition.sd_prod == None)
-
- 2- Le concept retourné n existait pas (self.sd == None)
-
- 3- Le concept retourné existait. On change alors son type ou on le supprime
-
- En cas d'erreur (exception) on retourne un indicateur de validité de 0 sinon de 1
- """
- sd_prod=self.definition.sd_prod
- if type(sd_prod) == types.FunctionType: # Type de concept retourné calculé
- d=self.cree_dict_valeurs(self.mc_liste)
- try:
- sd_prod= apply(sd_prod,(),d)
- except:
- # Erreur pendant le calcul du type retourné
- if CONTEXT.debug:traceback.print_exc()
- self.sd=None
- if cr == 'oui' :
- l=traceback.format_exception(sys.exc_info()[0],
- sys.exc_info()[1],
- sys.exc_info()[2])
- self.cr.fatal('Impossible d affecter un type au résultat\n'+string.join(l[2:]))
- return 0
- # on teste maintenant si la SD est r\351utilis\351e ou s'il faut la cr\351er
- valid=1
- if self.reuse:
- if AsType(self.reuse) != sd_prod:
- if cr == 'oui' : self.cr.fatal('Type de concept reutilise incompatible avec type produit')
- valid= 0
- if self.sdnom[0] != '_' and self.reuse.nom != self.sdnom:
- # Le nom de la variable de retour (self.sdnom) doit etre le meme que celui du concept reutilise (self.reuse.nom)
- if cr == 'oui' :
- self.cr.fatal('Concept reutilise : le nom de la variable de retour devrait etre %s et non %s' %(self.reuse.nom,self.sdnom))
- valid= 0
- if valid:self.sd=self.reuse
- else:
- if sd_prod == None:# Pas de concept retourné
- # Que faut il faire de l eventuel ancien sd ?
- self.sd = None
- else:
- if self.sd:
- # Un sd existe deja, on change son type
- self.sd.__class__=sd_prod
- else:
- # Le sd n existait pas , on ne le crée pas
- if cr == 'oui' : self.cr.fatal("Concept retourné non défini")
- valid=0
- 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):
- """
- Methode pour generation d un rapport de validite
- """
- self.cr=self.CR(debut='Etape : '+self.nom \
- + ' ligne : '+`self.appel[0]`\
- + ' fichier : '+`self.appel[1]`,
- fin = 'Fin Etape : '+self.nom)
- self.state = 'modified'
- try:
- self.isvalid(cr='oui')
- except AsException,e:
- if CONTEXT.debug : traceback.print_exc()
- self.cr.fatal(string.join(('Etape :',self.nom,
- 'ligne :',`self.appel[0]`,
- 'fichier :',`self.appel[1]`,str(e))))
- for child in self.mc_liste:
- self.cr.add(child.report())
- return self.cr
-
+++ /dev/null
-#@ MODIF V_EXCLUS Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-
-class EXCLUS:
- """
- La règle vérifie qu'un seul mot-clé de self.mcs est present
- parmi les elements de args.
-
- Ces arguments sont transmis à la règle pour validation sous la forme
- d'une liste de noms de mots-clés ou d'un dictionnaire dont
- les clés sont des noms de mots-clés.
- """
- def verif(self,args):
- """
- La methode verif effectue la verification specifique à la règle.
- args peut etre un dictionnaire ou une liste. Les éléments de args
- sont soit les éléments de la liste soit les clés du dictionnaire.
- """
- # on compte le nombre de mots cles presents
- text =''
- count=0
- args = self.liste_to_dico(args)
- for mc in self.mcs:
- if args.has_key(mc):count=count+1
- if count > 1:
- text= "- Il ne faut qu un mot cle parmi : "+`self.mcs`+'\n'
- return text,0
- return text,1
-
-
+++ /dev/null
-#@ MODIF V_JDC Validation DATE 29/05/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mixin JDC qui porte les méthodes
- nécessaires pour réaliser la validation d'un objet de type JDC
- dérivé de OBJECT.
-
- Une classe mixin porte principalement des traitements et est
- utilisée par héritage multiple pour composer les traitements.
-"""
-# Modules Python
-import string,types
-
-# Modules EFICAS
-import V_MCCOMPO
-from Noyau.N_Exception import AsException
-from Noyau.N_utils import AsType
-
-class JDC(V_MCCOMPO.MCCOMPO):
- """
- """
-
- def report(self):
- """
- Methode pour generation d un rapport de validite
- """
- self.cr.purge()
- self.cr.debut="DEBUT CR validation : "+self.nom
- self.cr.fin="FIN CR validation :"+self.nom
- for e in self.etapes :
- if e.isactif():
- self.cr.add(e.report())
- self.state = 'modified'
- self.isvalid(cr='oui')
- return self.cr
-
- 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.valid = valid
- return self.valid
-
- def verif_regles(self):
- """
- Effectue la vérification de validité des règles du jeu de commandes
- """
- l_noms_etapes=self.get_l_noms_etapes()
- texte_global = ''
- test_global = 1
- for regle in self.regles :
- texte,test = regle.verif(l_noms_etapes)
- texte_global = texte_global + texte
- test_global = test_global*test
- return texte_global,test_global
-
- def get_l_noms_etapes(self):
- """
- Retourne la liste des noms des étapes de self
- """
- l=[]
- for etape in self.etapes:
- l.append(etape.nom)
- return l
-
+++ /dev/null
-#@ MODIF V_MACRO_ETAPE Validation 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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mixin MACRO_ETAPE qui porte les méthodes
- nécessaires pour réaliser la validation d'un objet de type MACRO_ETAPE
- dérivé de OBJECT.
-
- Une classe mixin porte principalement des traitements et est
- utilisée par héritage multiple pour composer les traitements.
-"""
-# Modules Python
-import string,types,sys
-import traceback
-
-# Modules EFICAS
-import V_MCCOMPO
-import V_ETAPE
-from Noyau.N_Exception import AsException
-from Noyau.N_utils import AsType
-
-class MACRO_ETAPE(V_ETAPE.ETAPE):
- """
- """
-
- def isvalid(self,sd='oui',cr='non'):
- """
- Methode pour verifier la validité de l'objet ETAPE. Cette méthode
- peut etre appelée selon plusieurs modes en fonction de la valeur
- de sd et de cr.
-
- Si cr vaut oui elle crée en plus un compte-rendu.
-
- Cette méthode a plusieurs fonctions :
-
- - mettre à jour l'état de self (update)
-
- - retourner un indicateur de validité 0=non, 1=oui
-
- - produire un compte-rendu : self.cr
-
- """
- if CONTEXT.debug : print "ETAPE.isvalid ",self.nom
- if self.state == 'unchanged' :
- return self.valid
- else:
- 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 :
- # 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.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'):
- """
- Cette méthode met à jour le concept produit en fonction des conditions initiales :
-
- 1- Il n'y a pas de concept retourné (self.definition.sd_prod == None)
-
- 2- Le concept retourné n existait pas (self.sd == None)
-
- 3- Le concept retourné existait. On change alors son type ou on le supprime
-
- En cas d'erreur (exception) on retourne un indicateur de validité de 0 sinon de 1
- """
- sd_prod=self.definition.sd_prod
- # On memorise le type retourné dans l attribut typret
- self.typret=None
- if type(sd_prod) == types.FunctionType:
- # Type de concept retourné calculé
- d=self.cree_dict_valeurs(self.mc_liste)
- try:
- # la sd_prod d'une macro a l'objet lui meme en premier argument
- # contrairement à une ETAPE ou PROC_ETAPE
- # Comme sd_prod peut invoquer la méthode type_sdprod qui ajoute
- # les concepts produits dans self.sdprods, il faut le mettre à zéro
- self.sdprods=[]
- sd_prod= apply(sd_prod,(self,),d)
- except:
- # Erreur pendant le calcul du type retourné
- if CONTEXT.debug:traceback.print_exc()
- self.sd=None
- if cr == 'oui' :
- l=traceback.format_exception(sys.exc_info()[0],
- sys.exc_info()[1],
- sys.exc_info()[2])
- self.cr.fatal('Impossible d affecter un type au résultat\n'+string.join(l[2:]))
- return 0
- # on teste maintenant si la SD est r\351utilis\351e ou s'il faut la cr\351er
- valid=1
- if self.reuse:
- # Un concept reutilise a ete specifie
- if AsType(self.reuse) != sd_prod:
- if cr == 'oui' : self.cr.fatal('Type de concept reutilise incompatible avec type produit')
- valid=0
- if self.sdnom[0] != '_' and self.reuse.nom != self.sdnom:
- # Le nom de la variable de retour (self.sdnom) doit etre le meme que celui du concept reutilise (self.reuse.nom)
- if cr == 'oui' :
- self.cr.fatal('Concept reutilise : le nom de la variable de retour devrait etre %s et non %s' %(self.reuse.nom,self.sdnom))
- valid= 0
- if valid:self.sd=self.reuse
- else:
- if sd_prod == None:# Pas de concept retourné
- # Que faut il faire de l eventuel ancien sd ?
- self.sd = None
- else:
- if self.sd:
- # Un sd existe deja, on change son type
- self.sd.__class__=sd_prod
- self.typret=sd_prod
- else:
- # Le sd n existait pas , on ne le crée pas
- self.typret=sd_prod
- if cr == 'oui' : self.cr.fatal("Concept retourné non défini")
- valid=0
- 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):
- """
- Methode pour la generation d un rapport de validation
- """
- V_ETAPE.ETAPE.report(self)
- for e in self.etapes :
- self.cr.add(e.report())
- return self.cr
-
+++ /dev/null
-#@ MODIF V_MCBLOC Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mixin MCBLOC qui porte les méthodes
- nécessaires pour réaliser la validation d'un objet de type MCBLOC
- dérivé de OBJECT.
-
- Une classe mixin porte principalement des traitements et est
- utilisée par héritage multiple pour composer les traitements.
-"""
-# Modules Python
-import string
-
-# Modules EFICAS
-import V_MCCOMPO
-
-class MCBLOC(V_MCCOMPO.MCCOMPO):
- """
- Cette classe a un attribut de classe :
-
- - txt_nat qui sert pour les comptes-rendus liés à cette classe
- """
-
- txt_nat="Bloc :"
-
- def isvalid(self,sd='oui',cr='non'):
- """
- Methode pour verifier la validité du MCBLOC. Cette méthode
- peut etre appelée selon plusieurs modes en fonction de la valeur
- de sd et de cr.
-
- Si cr vaut oui elle crée en plus un compte-rendu
- sd est présent pour compatibilité de l'interface mais ne sert pas
- """
- if self.state == 'unchanged' :
- return self.valid
- else:
- valid = 1
- if hasattr(self,'valid'):
- old_valid = self.valid
- else:
- old_valid = None
- for child in self.mc_liste :
- if not child.isvalid():
- valid = 0
- break
- # Après avoir vérifié la validité de tous les sous-objets, on vérifie
- # la validité des règles
- 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
- self.valid = valid
- self.state = 'unchanged'
- if old_valid:
- if old_valid != self.valid : self.init_modif_up()
- return self.valid
-
+++ /dev/null
-#@ MODIF V_MCCOMPO Validation 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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe de base MCCOMPO qui sert à factoriser
- les traitements des objets composites de type OBJECT
-"""
-# Modules Python
-import string,types
-import traceback
-
-# Modules EFICAS
-from Noyau import N_CR
-from Noyau.N_Exception import AsException
-
-class MCCOMPO:
- """
- L'attribut mc_liste a été créé par une classe dérivée de la
- classe MCCOMPO du Noyau
- """
-
- CR=N_CR.CR
-
- def __init__(self):
- self.state='undetermined'
-
- def init_modif_up(self):
- """
- Propage l'état modifié au parent s'il existe et n'est pas l'objet
- lui-meme
- """
- if self.parent and self.parent != self :
- self.parent.state = 'modified'
-
- def report(self):
- """
- Génère le rapport de validation de self
- """
- self.cr=self.CR()
- self.cr.debut = self.txt_nat+self.nom
- self.cr.fin = "Fin "+self.txt_nat+self.nom
- for child in self.mc_liste:
- self.cr.add(child.report())
- self.state = 'modified'
- try:
- self.isvalid(cr='oui')
- except AsException,e:
- if CONTEXT.debug : traceback.print_exc()
- self.cr.fatal(string.join((self.txt_nat,self.nom,str(e))))
- return self.cr
-
- def verif_regles(self):
- """
- A partir du dictionnaire des mots-clés présents, vérifie si les règles
- de self sont valides ou non.
-
- Retourne une string et un booléen :
-
- - texte = la string contient le message d'erreur de la (les) règle(s) violée(s) ('' si aucune)
-
- - testglob = booléen 1 si toutes les règles OK, 0 sinon
- """
- #dictionnaire=self.dict_mc_presents(restreint='oui')
- dictionnaire=self.dict_mc_presents(restreint='non') # On verifie les regles avec les defauts affectés
- texte=''
- testglob = 1
- for r in self.definition.regles:
- erreurs,test=r.verif(dictionnaire)
- testglob = testglob*test
- if erreurs != '':
- if len(texte) > 1 :
- texte=texte+'\n'+erreurs
- else :
- texte = texte + erreurs
- return texte,testglob
-
- def dict_mc_presents(self,restreint='non'):
- """
- Retourne le dictionnaire {mocle : objet} construit à partir de self.mc_liste
- Si restreint == 'non' : on ajoute tous les mots-clés simples du catalogue qui ont
- une valeur par défaut
- Si restreint == 'oui' : on ne prend que les mots-clés effectivement entrés par
- l'utilisateur (cas de la vérification des règles)
- """
- dico={}
- # on ajoute les couples {nom mot-clé:objet mot-clé} effectivement présents
- for v in self.mc_liste:
- if v == None : continue
- k=v.nom
- dico[k]=v
- if restreint == 'oui' : return dico
- # Si restreint != 'oui',
- # on ajoute les couples {nom mot-clé:objet mot-clé} des mots-clés simples
- # possibles pour peu qu'ils aient une valeur par défaut
- for k,v in self.definition.entites.items():
- if v.label != 'SIMP' : continue
- if not v.defaut : continue
- if not dico.has_key(k):
- dico[k]=v(nom=k,val=None,parent=self)
- return dico
-
-
-
+++ /dev/null
-#@ MODIF V_MCFACT Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mixin MCFACT qui porte les méthodes
- nécessaires pour réaliser la validation d'un objet de type MCFACT
- dérivé de OBJECT.
-
- Une classe mixin porte principalement des traitements et est
- utilisée par héritage multiple pour composer les traitements.
-"""
-# Modules Python
-import string
-
-# Modules EFICAS
-import V_MCCOMPO
-
-class MCFACT(V_MCCOMPO.MCCOMPO):
- """
- Cette classe a un attribut de classe :
-
- - txt_nat qui sert pour les comptes-rendus liés à cette classe
- """
-
- txt_nat="Mot cle Facteur :"
-
- def isvalid(self,sd='oui',cr='non'):
- """
- Methode pour verifier la validité du MCFACT. Cette méthode
- peut etre appelée selon plusieurs modes en fonction de la valeur
- de sd et de cr.
-
- Si cr vaut oui elle crée en plus un compte-rendu
- sd est présent pour compatibilité de l'interface mais ne sert pas
- """
- if self.state == 'unchanged' :
- return self.valid
- else:
- valid = 1
- if hasattr(self,'valid'):
- old_valid = self.valid
- else:
- old_valid = None
- for child in self.mc_liste :
- if not child.isvalid():
- valid = 0
- break
- # Après avoir vérifié la validité de tous les sous-objets, on vérifie
- # la validité des règles
- 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
- self.valid = valid
- self.state = 'unchanged'
- if old_valid:
- if old_valid != self.valid : self.init_modif_up()
- return self.valid
-
+++ /dev/null
-#@ MODIF V_MCLIST Validation DATE 29/05/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mixin MCList qui porte les méthodes
- nécessaires pour réaliser la validation d'un objet de type MCList
- dérivé de OBJECT.
-
- Une classe mixin porte principalement des traitements et est
- utilisée par héritage multiple pour composer les traitements.
-"""
-# Modules Python
-import string
-import traceback
-
-# Modules EFICAS
-from Noyau import N_CR
-from Noyau.N_Exception import AsException
-
-class MCList:
- """
- Cette classe a deux attributs de classe :
-
- - CR qui sert à construire l'objet compte-rendu
-
- - txt_nat qui sert pour les comptes-rendus liés à cette classe
- """
-
- CR=N_CR.CR
- txt_nat="Mot cle Facteur Multiple :"
-
- def isvalid(self,cr='non'):
- """
- Methode pour verifier la validité du MCList. Cette méthode
- peut etre appelée selon plusieurs modes en fonction de la valeur
- de cr.
-
- Si cr vaut oui elle crée en plus un compte-rendu.
-
- On n'utilise pas d'attribut pour stocker l'état et on ne remonte pas
- le changement d'état au parent (pourquoi ??)
- """
- if len(self.data) == 0 : return 0
- num = 0
- test = 1
- for i in self.data:
- num = num+1
- if not i.isvalid():
- if cr=='oui':
- self.cr.fatal(string.join(["L'occurrence n",`num`," du mot-clé facteur :",self.nom," n'est pas valide"]))
- test = 0
- return test
-
- def report(self):
- """
- Génère le rapport de validation de self
- """
- self.cr=self.CR( debut = "Mot-clé facteur multiple : "+self.nom,
- fin = "Fin Mot-clé facteur multiple : "+self.nom)
- for i in self.data:
- self.cr.add(i.report())
- # XXX j'ai mis l'état en commentaire car il n'est utilisé ensuite
- #self.state = 'modified'
- try :
- self.isvalid(cr='oui')
- except AsException,e:
- if CONTEXT.debug : traceback.print_exc()
- self.cr.fatal(string.join(["Mot-clé facteur multiple : ",self.nom,str(e)]))
- return self.cr
-
+++ /dev/null
-#@ MODIF V_MCSIMP Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mixin MCSIMP qui porte les méthodes
- nécessaires pour réaliser la validation d'un objet de type MCSIMP
- dérivé de OBJECT.
-
- Une classe mixin porte principalement des traitements et est
- utilisée par héritage multiple pour composer les traitements.
-"""
-# Modules Python
-import string,types
-import traceback
-
-# Modules EFICAS
-from Noyau import N_CR
-from Noyau.N_Exception import AsException
-
-class MCSIMP:
- """
- COMMENTAIRE CCAR
- Cette classe est quasiment identique à la classe originale d'EFICAS
- a part quelques changements cosmétiques et des chagements pour la
- faire fonctionner de facon plus autonome par rapport à l'environnement
- EFICAS
-
- A mon avis, il faudrait aller plus loin et réduire les dépendances
- amont au strict nécessaire.
-
- - Est il indispensable de faire l'évaluation de la valeur dans le contexte
- du jdc dans cette classe.
-
- - Ne pourrait on pas doter les objets en présence des méthodes suffisantes
- pour éviter les tests un peu particuliers sur GEOM, PARAMETRE et autres. J'ai
- d'ailleurs modifié la classe pour éviter l'import de GEOM
- """
-
- CR=N_CR.CR
-
- def __init__(self):
- self.state='undetermined'
-
- 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 pramè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 old_valid:
- if old_valid != self.valid : self.init_modif_up()
- return self.valid
-
- def isoblig(self):
- """ indique si le mot-clé est obligatoire
- """
- return self.definition.statut=='o'
-
- def verif_card(self,cr='non'):
- """
- un mot-clé simple ne peut etre répété :
- la cardinalité ici s'entend par la vérification que le nombre d'arguments de self.valeur
- est bien compris entre self.min et self.max dans le cas où il s'agit d'une liste
- """
- card = 1
- min=self.definition.min
- max=self.definition.max
- if type(self.valeur) in (types.ListType,types.TupleType) and 'C' not in self.definition.type :
- if len(self.valeur) < min or len(self.valeur)>max:
- if cr == 'oui':
- self.cr.fatal("Nombre d'arguments %s incorrects pour %s (min = %s, max = %s)" %(`self.valeur`,self.nom,min,max))
- card = 0
- else:
- if self.valeur == None :
- if min >= 1 :
- # on n'a pas d'objet et on en attend au moins un
- card=0
- else :
- if min > 1:
- # on n'a qu'un objet et on en attend plus d'1
- card = 0
- return card
-
- def verif_type(self,val=None,cr='non'):
- """
- FONCTION :
- 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 est correct ou 0 sinon
-
- """
- 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")
- return 0
- if type(valeur) == types.TupleType:
- # on peut avoir à faire à un complexe ou une liste de valeurs ...
- if self.is_complexe(valeur) : return 1
- else:
- for val in valeur:
- if not self.verif_type(val=val,cr=cr) : return 0
- return 1
- elif type(valeur) == types.ListType:
- for val in valeur:
- if not self.verif_type(val=val,cr=cr) : return 0
- return 1
- else:
- # on n'a pas de tuple ...il faut tester sur tous les types ou les valeurs possibles
- # XXX Pourquoi into est il traité ici et pas seulement dans verif_into ???
- if self.definition.into != None :
- try:
- if valeur in self.definition.into :
- return 1
- else:
- if cr == 'oui':
- self.cr.fatal("%s n'est pas une valeur autorisée" %valeur)
- return 0
- except:
- print "problème avec :",self.nom
- print 'valeur =',valeur
- return 0
- for type_permis in self.definition.type:
- if self.compare_type(valeur,type_permis) : return 1
- # si on sort de la boucle précédente par ici c'est que l'on n'a trouvé aucun type valable --> valeur refusée
- if cr =='oui':
- self.cr.fatal("%s n'est pas d'un type autorisé" %`valeur`)
- return 0
-
- def verif_into(self,cr='non'):
- """
- Vérifie si la valeur de self est bien dans l'ensemble discret de valeurs
- donné dans le catalogue derrière l'attribut into ou vérifie que valeur est bien compris
- entre val_min et val_max
- """
- if self.definition.into == None :
- #on est dans le cas d'un ensemble continu de valeurs possibles (intervalle)
- if type(self.valeur)==types.TupleType :
- test = 1
- for val in self.valeur :
- if type(val)!=types.StringType and type(val)!=types.InstanceType:
- test = test*self.isinintervalle(val,cr=cr)
- return test
- else :
- val = self.valeur
- if type(val)!=types.StringType and type(val)!=types.InstanceType:
- return self.isinintervalle(self.valeur,cr=cr)
- else :
- return 1
- else :
- # on est dans le cas d'un ensemble discret de valeurs possibles (into)
- if type(self.valeur) == types.TupleType :
- for e in self.valeur:
- if e not in self.definition.into:
- if cr=='oui':
- self.cr.fatal(string.join(("La valeur :",`e`," n'est pas permise pour le mot-clé :",self.nom)))
- return 0
- else:
- if self.valeur == None or self.valeur not in self.definition.into:
- if cr=='oui':
- self.cr.fatal(string.join(("La valeur :",`self.valeur`," n'est pas permise pour le mot-clé :",self.nom)))
- return 0
- return 1
-
- def is_complexe(self,valeur):
- """ Retourne 1 si valeur est un complexe, 0 sinon """
- if type(valeur) == types.StringType :
- # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS)
- #XXX Il serait peut etre plus judicieux d'appeler une méthode de self.jdc
- #XXX qui retournerait l'objet résultat de l'évaluation
- #XXX ou meme de faire cette evaluation a l'exterieur de cette classe ??
- if not self.jdc :return 0
- try :
- valeur = eval(valeur,self.jdc.g_context)
- except:
- return 0
- if type(valeur) == types.InstanceType :
- #XXX je n'y touche pas pour ne pas tout casser mais il serait
- #XXX préférable d'appeler une méthode de valeur : return valeur.is_type('C'), par exemple
- if valeur.__class__.__name__ in ('EVAL','complexe'):
- return 1
- elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
- # il faut tester si la valeur du parametre est un entier
- #XXX ne serait ce pas plutot complexe ???? sinon expliquer
- return self.is_entier(valeur.valeur)
- else:
- print "Objet non reconnu dans is_complexe %s" %`valeur`
- return 0
- elif type(valeur) != types.TupleType :
- return 0
- else:
- if len(valeur) != 3 :
- return 0
- else:
- if type(valeur[0]) != types.StringType : return 0
- if string.strip(valeur[0]) not in ('RI','MP'):
- return 0
- else:
- if not self.is_reel(valeur[1]) or not self.is_reel(valeur[2]) : return 0
- else: return 1
-
- def is_reel(self,valeur):
- """
- Retourne 1 si valeur est un reel, 0 sinon
- """
- if type(valeur) == types.StringType :
- # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS)
- if not self.jdc :return 0
- try :
- valeur = eval(valeur,self.jdc.g_context)
- except:
- return 0
- if type(valeur) == types.InstanceType :
- #XXX je n'y touche pas pour ne pas tout casser mais il serait
- #XXX préférable d'appeler une méthode de valeur : return valeur.is_type('R'), par exemple
- #XXX ou valeur.is_reel()
- #XXX ou encore valeur.compare(self.is_reel)
- if valeur.__class__.__name__ in ('EVAL','reel') :
- return 1
- elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
- # il faut tester si la valeur du parametre est un réel
- return self.is_reel(valeur.valeur)
- else:
- print "Objet non reconnu dans is_reel %s" %`valeur`
- return 0
- elif type(valeur) not in (types.IntType,types.FloatType,types.LongType):
- # ce n'est pas un réel
- return 0
- else:
- return 1
-
- def is_entier(self,valeur):
- """ Retourne 1 si valeur est un entier, 0 sinon """
- if type(valeur) == types.StringType :
- # on teste une valeur issue d'une entry (valeur saisie depuis EFICAS)
- if not self.jdc :return 0
- try :
- valeur = eval(valeur,self.jdc.g_context)
- except:
- return 0
- if type(valeur) == types.InstanceType :
- #XXX je n'y touche pas pour ne pas tout casser mais il serait
- #XXX préférable d'appeler une méthode de valeur : return valeur.is_type('I'), par exemple
- if valeur.__class__.__name__ in ('EVAL','entier') :
- return 1
- elif valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
- # il faut tester si la valeur du parametre est un entier
- return self.is_entier(valeur.valeur)
- else:
- print "Objet non reconnu dans is_reel %s" %`valeur`
- return 0
- elif type(valeur) not in (types.IntType,types.LongType):
- # ce n'est pas un entier
- return 0
- else:
- return 1
-
- def is_shell(self,valeur):
- """
- Retourne 1 si valeur est un shell, 0 sinon
- Pour l'instant aucune vérification n'est faite
- On impose juste que valeur soit une string
- """
- if type(valeur) != types.StringType:
- return 0
- else:
- return 1
-
- def is_object_from(self,objet,classe):
- """
- Retourne 1 si valeur est un objet de la classe classe ou d'une sous-classe de classe,
- 0 sinon
- """
- if type(objet) != types.InstanceType :
- if type(objet) == types.StringType:
- if not self.jdc :return 0
- try :
- objet = eval(objet,self.jdc.g_context)
- if type(objet) != types.InstanceType : return 0
- except:
- return 0
- else:
- return 0
- if not objet.__class__ == classe and not issubclass(objet.__class__,classe):
- return 0
- else:
- return 1
-
- def compare_type(self,valeur,type_permis):
- """
- Fonction booléenne qui retourne 1 si valeur est du type type_permis, 0 sinon
- """
- if type(valeur) == types.InstanceType and valeur.__class__.__name__ == 'PARAMETRE':
- if type(valeur.valeur) == types.TupleType :
- # on a à faire à un PARAMETRE qui définit une liste d'items
- # --> on teste sur la première car on n'accepte que les liste homogènes
- valeur = valeur.valeur[0]
- if type_permis == 'R':
- return self.is_reel(valeur)
- elif type_permis == 'I':
- return self.is_entier(valeur)
- elif type_permis == 'C':
- return self.is_complexe(valeur)
- elif type_permis == 'shell':
- return self.is_shell(valeur)
- elif type_permis == 'TXM':
- if type(valeur) != types.InstanceType:
- return type(valeur)==types.StringType
- else:
- #XXX je n'y touche pas pour ne pas tout casser mais il serait
- #XXX préférable d'appeler une méthode de valeur : return valeur.is_type('TXM'), par exemple
- if valeur.__class__.__name__ == 'chaine' :
- return 1
- elif valeur.__class__.__name__ == 'PARAMETRE':
- # il faut tester si la valeur du parametre est une string
- return type(valeur.valeur)==types.StringType
- else:
- return 0
- elif type(type_permis) == types.ClassType:
- # on ne teste pas certains objets de type GEOM , assd, ...
- # On appelle la méthode de classe is_object de type_permis.
- # Comme valeur peut etre de n'importe quel type on utilise la fonction (is_object.im_func)
- # et non pas la methode (is_object) ce qui risquerait de provoquer des erreurs
- if type_permis.is_object.im_func(valeur):
- return 1
- else :
- return self.is_object_from(valeur,type_permis)
- else:
- print "Type non encore géré %s" %`type_permis`
- print self.nom,self.parent.nom,self.jdc.fichier
-
- def isinintervalle(self,valeur,cr='non'):
- """
- Booléenne qui retourne 1 si la valeur passée en argument est comprise dans
- le domaine de définition donné dans le catalogue, 0 sinon.
- """
- if type(valeur) not in (types.IntType,types.FloatType,types.LongType) :
- return 1
- else :
- min = self.definition.val_min
- max = self.definition.val_max
- if min == '**': min = valeur -1
- if max == '**': max = valeur +1
- if valeur < min or valeur > max :
- if cr=='oui':
- self.cr.fatal(string.join(("La valeur :",`valeur`," du mot-clé ",self.nom,\
- " est en dehors du domaine de validité [",`min`,",",`max`,"]")))
- return 0
- else :
- return 1
-
- def init_modif_up(self):
- """
- Propage l'état modifié au parent s'il existe et n'est l'objet
- lui-meme
- """
- if self.parent and self.parent != self :
- self.parent.state = 'modified'
-
- def report(self):
- """ génère le rapport de validation de self """
- self.cr=self.CR()
- self.cr.debut = "Mot-clé simple : "+self.nom
- self.cr.fin = "Fin Mot-clé simple : "+self.nom
- self.state = 'modified'
- try:
- self.isvalid(cr='oui')
- except AsException,e:
- if CONTEXT.debug : traceback.print_exc()
- self.cr.fatal(string.join(("Mot-clé simple : ",self.nom,str(e))))
- return self.cr
-
-
-
-
-
-
+++ /dev/null
-#@ MODIF V_PRESENT_ABSENT Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-
-class PRESENT_ABSENT:
- """
- La règle vérifie que si le premier mot-clé de self.mcs est present
- parmi les elements de args les autres mots clés de self.mcs
- doivent etre absents
-
- Ces arguments sont transmis à la règle pour validation sous la forme
- d'une liste de noms de mots-clés ou d'un dictionnaire dont
- les clés sont des noms de mots-clés.
- """
- def verif(self,args):
- """
- La methode verif effectue la verification specifique à la règle.
- args peut etre un dictionnaire ou une liste. Les éléments de args
- sont soit les éléments de la liste soit les clés du dictionnaire.
- """
- # on verifie que si le premier de la liste est present,
- # les autres sont absents
- text=''
- test = 1
- args = self.liste_to_dico(args)
- mc0=self.mcs[0]
- if args.has_key(mc0):
- for mc in self.mcs[1:len(self.mcs)]:
- if args.has_key(mc):
- text = text + "- Le mot cle "+`mc0`+" etant present, il faut que : "+\
- mc+" soit absent"+'\n'
- test = 0
- return text,test
-
-
+++ /dev/null
-#@ MODIF V_PRESENT_PRESENT Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-
-class PRESENT_PRESENT:
- """
- La règle vérifie que si le premier mot-clé de self.mcs est present
- parmi les elements de args les autres doivent l'etre aussi
-
- Ces arguments sont transmis à la règle pour validation sous la forme
- d'une liste de noms de mots-clés ou d'un dictionnaire dont
- les clés sont des noms de mots-clés.
- """
- def verif(self,args):
- """
- La methode verif effectue la verification specifique à la règle.
- args peut etre un dictionnaire ou une liste. Les éléments de args
- sont soit les éléments de la liste soit les clés du dictionnaire.
- """
- # on verifie que si le premier de la liste est present,
- # les autres le sont aussi
- mc0=self.mcs[0]
- text=''
- test = 1
- args = self.liste_to_dico(args)
- if args.has_key(mc0):
- for mc in self.mcs[1:len(self.mcs)]:
- if not args.has_key(mc):
- text = text + "- Le mot cle "+`mc0`+" etant present, il faut que : "+mc+" soit present"+'\n'
- test = 0
- return text,test
-
+++ /dev/null
-#@ MODIF V_PROC_ETAPE Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce module contient la classe mixin PROC_ETAPE qui porte les méthodes
- nécessaires pour réaliser la validation d'un objet de type PROC_ETAPE
- dérivé de OBJECT.
-
- Une classe mixin porte principalement des traitements et est
- utilisée par héritage multiple pour composer les traitements.
-"""
-# Modules Python
-import string,types
-
-# Modules EFICAS
-import V_ETAPE
-from Noyau.N_Exception import AsException
-from Noyau.N_utils import AsType
-
-class PROC_ETAPE(V_ETAPE.ETAPE):
- """
- On réutilise les méthodes report,verif_regles
- de ETAPE par héritage.
- """
-
- def isvalid(self,sd='oui',cr='non'):
- """
- Methode pour verifier la validité de l'objet PROC_ETAPE. Cette méthode
- peut etre appelée selon plusieurs modes en fonction de la valeur
- de sd et de cr (sd n'est pas utilisé).
-
- Si cr vaut oui elle crée en plus un compte-rendu.
-
- Cette méthode a plusieurs fonctions :
-
- - retourner un indicateur de validité 0=non, 1=oui
-
- - produire un compte-rendu : self.cr
-
- - propager l'éventuel changement d'état au parent
-
- """
- if CONTEXT.debug : print "ETAPE.isvalid ",self.nom
- if self.state == 'unchanged' :
- return self.valid
- else:
- valid = 1
- if hasattr(self,'valid'):
- old_valid = self.valid
- else:
- old_valid = None
- # 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
- self.valid = valid
- self.state = 'unchanged'
- if old_valid:
- if old_valid != self.valid : self.init_modif_up()
- return self.valid
-
-
+++ /dev/null
-#@ MODIF V_UN_PARMI Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-
-class UN_PARMI:
- """
- La règle vérifie que l'on trouve un des mots-clés
- de la règle parmi les arguments d'un OBJECT.
-
- Ces arguments sont transmis à la règle pour validation sous la forme
- d'une liste de noms de mots-clés ou d'un dictionnaire dont
- les clés sont des noms de mots-clés.
- """
- def verif(self,args):
- """
- La méthode verif vérifie que l'on trouve un des mos-clés
- de la liste self.mcs parmi les éléments de args
-
- args peut etre un dictionnaire ou une liste. Les éléments de args
- sont soit les éléments de la liste soit les clés du dictionnaire.
- """
- # on compte le nombre de mots cles presents
- text =''
- count=0
- args = self.liste_to_dico(args)
- for mc in self.mcs:
- if args.has_key(mc):count=count+1
- if count != 1:
- text = "- Il ne faut qu'un mot-clé parmi : "+`self.mcs`+'\n'
- return text,0
- return text,1
-
+++ /dev/null
-#@ MODIF __init__ Validation DATE 27/03/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.
-#
-#
-# ======================================================================
-"""
- Ce package contient la fonctionnalité de validation des objets de type OBJECT.
- Cette fonctionnalité est implémentée sous la forme de classes de type MIXIN qui
- doivent etre combinées aux classes de bases de Noyau par héritage multiple dans
- un troisième package, en général, Accas.
-"""
+++ /dev/null
-tables.py:tables.tag
- python Translate.py -force tables.tag
+++ /dev/null
-Pour mettre à jour le parser de fichier au format Asterv5, il faut
-recompiler le fichier tables.tag en faisant :
- make
+++ /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.
-#
-#
-# ======================================================================
-
-#!/bin/env python -d
-#!/tools/net/app/Python-1.5.2/bin/python1.5
-
-"""Translate - a first attempt at parsing my little language
-
-Usage: Translate [switches] <infile> [<outfile>]
-
- -stdout -- write to standard output instead of a file
- -force -- write to the <outfile> even if it already
- exists (overwrite any existing file)
-
- -import -- import tag table from Translate_tags.py,
- instead of using the internal table
-
- -compare -- compare the imported and internal tag tables
- (development option!)
-
- -test -- use our internal test data and write to stdout
- -pytag -- use the interpreted tagging engine
- -debug -- if -pytag, enable its debugger
- -diag -- enable general debugging
- Beware that this currently also writes line
- numbers to the start of each line in the output,
- so it doesn't emit legal Python...
-
- -help -- show this text
- -history -- show the module history
- -version -- show the module version
-
-If <outfile> is not specified, <infile> will be used with its extension
-replaced by ".py".
-"""
-
-__author__ = """Tibs (Tony J Ibbs)
-tony@lsl.co.uk or tibs@tibsnjoan.demon.co.uk or tibs@bigfoot.com
-http://www.tibsnjoan.demon.co.uk/
-"""
-__version__ = "0.3 (tiepin) of 1999-11-15"
-__history__ = """\
-Originally created 1999-08-13
-
-First released version is 0.2 (bootstrap)/1999-09-09, which gave
-an idea of how the thing would work, and nearly did.
-
-Second released version is 0.3 (tiepin)/1999-11-15, which is sufficient
-to allow the parser used within this utility to be written in the little
-language, translated and then used as such.
-"""
-
-import sys
-import os
-import string
-
-# ............................................................
-# How we want to work things - this is fudge for me in initial development
-if os.name == "posix":
- # Unix at work
- DEFAULT_DEBUG = 0
- DEFAULT_PYTAG = 0
-else:
- # Windows 95 at home
- TEXTTOOLS_PATH = "C:\\Program Files\\Python"
- PYTAG_PATH = "C:\\Program Files\\Python\\TextTools\\Examples"
- DEFAULT_DEBUG = 0
- DEFAULT_PYTAG = 0
-
- if TEXTTOOLS_PATH not in sys.path:
- print "Adding",TEXTTOOLS_PATH
- sys.path.append(TEXTTOOLS_PATH)
-
- if PYTAG_PATH not in sys.path:
- print "Adding",PYTAG_PATH
- sys.path.append(PYTAG_PATH)
-# ............................................................
-
-# Import the TextTools themselves
-# - I'm not personally too keen on import *, but it seems to be
-# the recommended thing, so I'll leave it for now...
-try:
- from TextTools import *
-except:
- from mx.TextTools import *
- #from TextTools.Constants.TagTables import *
- #from TextTools.Constants.Sets import *
-
-\f
-# ------------------------------------------------------------
-# Useful little constants for unpicking the parsed tuples
-OBJECT = 0
-LEFT = 1
-RIGHT = 2
-SUBLIST = 3
-
-# We want to align inline comments when possible - so this is
-# the column at which we will try to place their "#" marks...
-COMMENT_COLUMN = 40
-
-# Are we (generally) debugging?
-DEBUGGING = 0
-
-# Do we want a comma after the last tuple (or item) in a table?
-WANT_LAST_COMMA = 1
-
-\f
-# ------------------------------------------------------------
-def define_tagtable():
- """Returns our tag table, if we're not importing it."""
-
- # We are not, initially, going to try for anything very sophisticated
- # - just something that will get us bootstrapped, so that I can use the
- # "little language" to write more sophisticated stuff (without having
- # to worry about dropped commas between tuples, and so on!)
-
-
- # Whitespace is always useful
- t_whitespace = (None,AllIn,' \t')
- t_opt_whitespace = t_whitespace + (+1,)
-
- # Comments are fairly simple
- t_comment = ('comment',Table,
- ((None,Is,'#'),
- (None,AllNotIn,'\n\r',MatchOk))
- )
-
- # We care about the "content" of the indentation at the start of a line,
- # but note that it is optional
- t_indent = ('indent',AllIn,' \t')
- t_indentation = t_indent + (+1,) # zero indentation doesn't show
-
- # A string is text within single or double quotes
- # (of course, this is an oversimplification, because we should also
- # deal with things like "This is a \"substring\"", and it would be
- # nice to be able to cope with triple-quoted strings too, but it
- # will do for a start)
-
- # Major bug - doesn't recognised zero length strings...
- # (since "AllNotIn" must match at least one character)
- t_string = ('str',Table,
- ((None,Is,"'",+3,+1),
- ('text',AllNotIn,"'"),
- (None,Is,"'",MatchFail,MatchOk),
- (None,Is,'"'),
- ('text',AllNotIn,'"'),
- (None,Is,'"'),
- ))
-
- # An integer is a series of digits...
- t_integer = ('int',AllIn,number)
-
- t_signed_integer = ('signed_int',Table,
- (('sign',Is,"+",+1,+2),
- ('sign',Is,"-",+1,+1),
- t_integer
- ))
-
- # Remember to be careful to specify the LONGEST possible match first,
- # so that we try for "IsIn" before we try for "Is" (because "IsIn"
- # would *match* "Is", leaving us with a spurious "In" hanging around...)
- t_operation = ('op',Table,
- (('op',Word,"AllInSet", +1,MatchOk),
- ('op',Word,"AllIn", +1,MatchOk),
- ('op',Word,"AllNotIn", +1,MatchOk),
- ('op',Word,"CallArg", +1,MatchOk),
- ('op',Word,"Call", +1,MatchOk),
- ('op',Word,"EOF", +1,MatchOk),
- ('op',Word,"Fail", +1,MatchOk),
- ('op',Word,"IsInSet", +1,MatchOk),
- ('op',Word,"IsIn", +1,MatchOk),
- ('op',Word,"IsNotIn", +1,MatchOk),
- ('op',Word,"IsNot", +1,MatchOk),
- ('op',Word,"Is", +1,MatchOk),
- ('op',Word,"Jump", +1,MatchOk),
- ('op',Word,"LoopControl",+1,MatchOk),
- ('op',Word,"Loop", +1,MatchOk),
- ('op',Word,"Move", +1,MatchOk),
- ('op',Word,"NoWord", +1,MatchOk), # alias for WordStart
- ('op',Word,"Skip", +1,MatchOk),
- ('op',Word,"SubTableInList",+1,MatchOk),
- ('op',Word,"SubTable", +1,MatchOk),
- ('op',Word,"sFindWord", +1,MatchOk),
- ('op',Word,"sWordStart", +1,MatchOk),
- ('op',Word,"sWordEnd", +1,MatchOk),
- ('op',Word,"TableInList",+1,MatchOk),
- ('op',Word,"Table", +1,MatchOk),
- ('op',Word,"WordStart", +1,MatchOk),
- ('op',Word,"WordEnd", +1,MatchOk),
- ('op',Word,"Word", MatchFail,MatchOk),
- ))
-
- # Python keywords
- t_keyword = ('keyword',Table,
- ((None,Word,"and", +1,+28),
- (None,Word,"assert", +1,+27),
- (None,Word,"break", +1,+26),
- (None,Word,"class", +1,+25),
- (None,Word,"continue",+1,+24),
- (None,Word,"def", +1,+23),
- (None,Word,"del", +1,+22),
- (None,Word,"elif", +1,+21),
- (None,Word,"else", +1,+20),
- (None,Word,"except", +1,+19),
- (None,Word,"exec", +1,+18),
- (None,Word,"finally", +1,+17),
- (None,Word,"for", +1,+16),
- (None,Word,"from", +1,+15),
- (None,Word,"global", +1,+14),
- (None,Word,"if", +1,+13),
- (None,Word,"import", +1,+12),
- (None,Word,"in", +1,+11),
- (None,Word,"is", +1,+10),
- (None,Word,"lambda", +1,+9),
- (None,Word,"not", +1,+8),
- (None,Word,"or", +1,+7),
- (None,Word,"pass", +1,+6),
- (None,Word,"print", +1,+5),
- (None,Word,"raise", +1,+4),
- (None,Word,"return", +1,+3),
- (None,Word,"try", +1,+2),
- (None,Word,"while", MatchFail,+1),
- # In order to not recognise things like "in_THIS_CASE"
- # we must check that the next character is not legitimate
- # within an identifier
- (None,IsIn,alpha+'_'+number,+1,MatchFail),
- # If it wasn't another identifier character, we need to
- # unread it so that it can be recognised as something else
- # (so that, for instance, "else:" is seen as "else" followed
- # by ":")
- (None,Skip,-1)
- ))
-
- # Do the same for mxText commands
- t_mxkeyword = ('mxKeyword',Table,
- (t_operation,
- (None,IsIn,alpha+'_'+number,+1,MatchFail),
- (None,Skip,-1)
- ))
-
- # Traditional identifiers
- t_identifier = ('identifier',Table,
- (t_keyword + (+1,MatchFail), # don't allow Python keywords
- t_mxkeyword + (+1,MatchFail), # don't allow mxText commands
- (None,IsIn,alpha+'_'), # can't start with a digit
- (None,AllIn,alpha+'_'+number,MatchOk))
- )
-
- # We don't yet deal with the following with anything in parentheses,
- # which means we can't handle functions or command lists, or other
- # things which "look like" a tuple
- t_argument = ('arg',Table,
- (('arg',Word,"Here", +1,MatchOk), # EOF Here, Fail Here
- ('arg',Word,"ToEOF", +1,MatchOk), # Move ToEOF
- ('arg',Word,"To", +1,MatchOk), # Jump To
- ('arg',Word,"ThisTable",+1,MatchOk), # [Sub]Table ThisTable
- ('arg',Word,"back", +1,MatchOk), # Skip back
- ('arg',Word,"Break", +1,MatchOk), # LoopControl Break
- ('arg',Word,"Reset", +1,MatchOk), # LoopControl Reset
- t_string + (+1,MatchOk), # e.g., Word "Fred"
- t_signed_integer + (+1,MatchOk), # e.g., Skip -4, Move 3
- t_identifier # e.g., Table Fred
- ))
-
- t_plus = ('plus',Table,
- (t_opt_whitespace,
- (None,Is,"+"),
- t_opt_whitespace
- ))
-
- # Arguments can contain "+"
- t_plus_arg = ('plusarg',Table,
- (t_argument, # start with a single argument
- t_plus + (MatchOk,), # if we have a "+"
- t_argument, # then we expect another argument
- (None,Jump,To,-2), # then look for another "+"
- ))
-
- # Match, for example:
- # <fred>
- t_label = ('label',Table,
- ((None,Is,"<"),
- t_identifier,
- (None,Is,">")
- ))
-
- # Targets for Jump and F:/T:
- t_target = ('target',Table,
- (('tgt',Word,"next", +1,MatchOk),
- ('tgt',Word,"previous", +1,MatchOk),
- ('tgt',Word,"repeat", +1,MatchOk),
- ('tgt',Word,"MatchOk", +1,MatchOk),
- ('tgt',Word,"MatchOK", +1,MatchOk), # For kindness sake
- ('tgt',Word,"MatchFail",+1,MatchOk),
- t_label
- ))
-
- # A value is either an identifier, or a string, or an integer
- t_value = ('val',Table,
- (t_identifier +(+1,MatchOk),
- t_string +(+1,MatchOk),
- t_integer
- ))
-
- # An assignment is (optionally) used in Tuple and Table definitions...
- t_assignment = ('assignment',Table,
- (t_value,
- t_opt_whitespace,
- (None,Is,'='),
- ))
-
- # A common error when writing tuples is to miss off the "=" sign
- # - the following is used in diagnosing that (see t_bad_tuple below)
- # (it's useful to have something with identical structure to the
- # "real thing")
- t_bad_tagobj = ('tagobj',Table,
- (t_string,
- ))
-
- t_bad_assignment = ('assignment',Table,
- (t_value,
- ))
-
- # This is the line that starts the definition of a single tuple.
- # For the moment, restrict what it gets assigned to to a simple identifier.
- # Match, for example:
- # Fred is:
- t_tupleblock = ('tupleblock',Table,
- (t_identifier,
- t_whitespace,
- (None,Word,"is:")
- ))
-
- # This is the line that starts a new table or sub-table.
- # For the moment, we only cope with full Tables.
- # NOTE that this is used for the "outer" declaration of a tag table,
- # and also for the "inner" declaration of an inner table or sub-table.
- # The discrimination between these is done after initial parsing.
- # Match, for example:
- # 'keyword' = Table is: (inner)
- # tagtable = Table is: (outer)
- t_tableblock = ('tableblock',Table,
- (t_assignment + (+2,+1), # left hand side is optional
- t_opt_whitespace,
- ('type',Word,"Table",+1,+2), # Either "Table"
- ('type',Word,"SubTable"), # or "SubTable" is required
- t_whitespace, # whitespace is required
- (None,Word,"is:") # "is:" is required
- ))
-
- # This is the line that starts an "if" block
- # Match, for example:
- # Is "Fred":
- # controlsymbol:
- t_ifblock = ('ifblock',Table,
- (t_assignment + (+2,+1), # left hand side is optional
- t_opt_whitespace,
- t_operation + (+4,+1),
- t_whitespace,
- t_plus_arg,
- (None,Is,":",MatchFail,MatchOk),
- t_identifier,
- (None,Is,":")
- ))
-
- # Note that we don't allow spaces WITHIN our false and true thingies
-
- t_onfalse = ('onfalse',Table,
- (t_whitespace,
- (None,Word,"F:"),
- t_target
- ))
-
- t_ontrue = ('ontrue',Table,
- (t_whitespace,
- (None,Word,"T:"),
- t_target
- ))
-
- # Valid examples are things like:
- # 'fred' = Is "xxx" F:<wow> T:MatchOk
- # AllIn jim T:<foundJim>
- #
- # For the moment, we're not trying to recognise things in any detail
- t_tuple = ('tuple',Table,
- (t_assignment + (+2,+1), # left hand side is optional
- t_opt_whitespace,
- t_operation, # operation is required
- t_whitespace, # for the moment, we always require space here
- t_plus_arg, # argument is required
- t_onfalse + (+1,+1), # F:target is optional
- t_ontrue + (MatchOk,MatchOk) # T:target is also optional
- ))
-
- # If the user has defined a "partial" tuple, they might use something
- # of the form:
- # match_fred F:MatchFalse T:MatchOk
- t_tupleplus = ('tupleplus',Table,
- (t_identifier,
- t_onfalse + (+1,+1), # F:target is optional
- t_ontrue + (MatchOk,MatchOk) # T:target is also optional
- ))
-
- # Treat Jump To specially - for example:
- # Jump To <top>
- # so that they don't have to do the less obvious "Jump To F:<label>"
- # (although that will still be recognised, of course, for people who
- # are used to the tag tuple format itself)
- t_jumpto = ('jumpto',Table,
- ((None,Word,"Jump"),
- t_whitespace,
- (None,Word,"To"),
- t_whitespace,
- t_target
- ))
-
- # Is it worth coping with these?
- t_bad_jumpto = ('jumpto',Table,
- ((None,Word,"Jump",+2), # cope with Jump to
- (None,Word,"to",MatchFail,+2),
- (None,Word,"JumpTo"), # and with JumpTo
- t_target
- ))
-
- # The "content" of a line is the bit after any indentation, and before
- # any comment...
- # For the moment, we won't try to maintain ANY context, so it is up to the
- # user of the tuples produced to see if they make sense...
- t_content = ('content',Table,
- (t_label + (+1,MatchOk),
- t_tableblock + (+1,MatchOk), # [<value> =] [Sub]Table is:
- t_tupleblock + (+1,MatchOk), # <identifier> is:
- t_ifblock + (+1,MatchOk), # <cmd> <arg>: OR <identifier>:
- t_jumpto + (+1,MatchOk), # Jump To <target>
- t_tuple + (+1,MatchOk),
- t_tupleplus + (+1,MatchOk), # name [F:<label> [T:<label>]]
- ))
-
- t_contentline = ('contentline',Table,
- (t_content, # something that we care about
- t_opt_whitespace,
- t_comment +(+1,+1), # always allow a comment
- (None,IsIn,newline) # the end of the line
- ))
-
- # Sometimes, the user (e.g., me) writes:
- # 'fred' = Table:
- # instead of:
- # 'fred' = Table is:
- # Unfortunately, without the "is", it would get too confusing whether
- # we actually wanted an if block...
- t_bad_tableblock = ('tableblock',Table,
- (t_assignment + (+2,+1), # left hand side is optional
- t_opt_whitespace,
- (None,Word,"Table"), # "Table" is required
- (None,Is,":") # "is" is needed before the ":"
- ))
-
- # Sometimes, the use (e.g., me again) write:
- # 'fred' IsIn jim
- # instead of:
- # 'fred' = IsIn jim
- # Whilst I'm not entirely convinced that "=" is the best character
- # to use here, I think we do need something!
- t_bad_tuple = ('tuple',Table,
- (t_bad_assignment, # obviously we have to have this!
- t_whitespace, # in which case the whitespace IS needed
- t_operation, # operation is required
- t_whitespace, # for the moment, we must have space here
- t_plus_arg, # argument is required
- t_onfalse + (+1,+1), # F:target is optional
- t_ontrue + (MatchOk,MatchOk) # T:target is also optional
- ))
-
- # Make some attempt to recognise common errors...
- t_badcontent = ('badcontent',Table,
- (t_bad_tableblock +(+1,MatchOk),
- t_bad_tuple
- ))
-
- t_badline = ('badline',Table,
- (t_badcontent, # something that we sort of care about
- t_opt_whitespace,
- t_comment +(+1,+1), # always allow a comment
- (None,IsIn,newline) # the end of the line
- ))
-
- t_emptyline = ('emptyline',Table,
- (t_opt_whitespace,
- (None,IsIn,newline) # the end of the line
- ))
-
- t_commentline = ('commentline',Table,
- (t_comment,
- (None,IsIn,newline) # the end of the line
- ))
-
- t_passthruline = ('passthruline',Table,
- (('passthru',AllNotIn,newline,+1), # owt else on the line
- (None,IsIn,newline) # the end of the line
- ))
-
- # Basically, a file is a series of lines
- t_line = ('line',Table,
- (t_emptyline +(+1,MatchOk), # empty lines are simple enough
- t_indent +(+1,+1), # optional indentation
- t_commentline +(+1,MatchOk), # always allow a comment
- t_contentline +(+1,MatchOk), # a line we care about
- t_badline +(+1,MatchOk), # a line we think is wrong
- t_passthruline # a line we don't care about
- ))
-
- t_file = (t_line,
- (None,EOF,Here,-1)
- )
-
- return t_file
-
-\f
-# ------------------------------------------------------------
-# We'll define some moderately interesting test data
-
-test_data = """\
-# This example isn't *meant* to make any sense!
-# It's just an accumulation of things that got checked for various reasons
-from TextTools import *
-# Some Python code
-a = b;
-fred = 3;
-if a == 1:
- print "a == 1"
-else:
- print "a != 1"
-
-# And the rest is our business...
-t_integer is:
- 'int' = AllIn '0123456789'
-t_integer is:
- 'int' = AllIn number
-t_indent is:
- # A comment here is OK
- <label> # Strangely enough, so is a label
- 'indent' = AllIn ' \t'
-t_buggy = Table is:
- 'int' AllIn number # BUGGY LINE (missing "=")
- (None,"AllIn",number) # BUGGY LINE (an actual tuple)
- fred = jim # BUGGY LINE (not our business)
- tagobj F:<op> T:next # label <op> is undefined
- # The next line is totally empty
-
- # The next line contains just indentation
-
- # This line is just a comment
-# And this comment should be JUST after the preceding block...
-t_indentation is: # This should be "= Table is:"
- t_indent
- t_indent F:previous
- t_indent T:previous
- t_indent F:previous T:previous
-t_deep = Table is:
- 'a' = SubTable is:
- SubTable is:
- 'this' = Table ThisTable
- t_integer
-t_fred = Table is:
- <top>
- AllIn 'a'
- 'a' = AllIn 'a'
- 'a' = AllIn 'a' F:previous
- 'a' = AllIn 'a' T:previous
- 'a' = AllIn 'a' F:previous T:previous
- AllIn 'abcd':
- AllIn 'xyz' F:<later> T:<top>
- 'a' = AllIn 'abcd':
- AllIn 'xyz'
- <later>
- t_indent:
- AllIn 'xyz'
- AllIn number + '_'
- AllIn number+"_"+alpha
- Jump To <top>
-"""
-
-\f
-# ------------------------------------------------------------
-# Our own exceptions
-
-class OutsideError(Exception):
- """The entity is not permitted outside a block."""
- pass
-
-class IndentError(Exception):
- """An indentation error has been detected."""
- pass
-
-class NoIdentifier(Exception):
- """We're missing an identifier (to assign to)."""
- pass
-
-\f
-# ------------------------------------------------------------
-def LineFactory(lineno,tagtuple,text):
- """Take some tagged data and return an appropriate line class.
-
- lineno -- the line number in the "file". Note that the first line
- in the file is line 1
- tagtuple -- a tag tuple for a single line of data
- text -- the text for the "file". All the "left" and "right" offsets
- are relative to this text (i.e., it is the entire content
- of the file)
-
- The tag tuples we get back from the parser will be of the form:
-
- ('line',left,right,[
- ('indent',left,right,None), -- this is optional
- ('content',left,right,[<data>])
- ])
-
- Looking at <type> should enable us to decide what to do with
- the <data>.
- """
-
- # Extract the list of tuples from this 'line'
- tuples = tagtuple[SUBLIST]
-
- # First off, do we have any indentation?
- tup = tuples[0]
- if tup[OBJECT] == "indent":
- # This is inefficient, because it actually copies strings
- # around - better would be to duplicate the calculation
- # that string.expandtabs does internally...
- indent_str = string.expandtabs(text[tup[LEFT]:tup[RIGHT]])
- tuples = tuples[1:]
- else:
- indent_str = ""
- tuples = tuples
-
- # Now, work out which class we want an instance of
- # (this is the 'fun' bit)
-
- type = tuples[0][OBJECT]
- if type == 'emptyline':
- return EmptyLine(lineno,indent_str,tuples[0],text)
- elif type == 'commentline':
- return CommentLine(lineno,indent_str,tuples[0],text)
- elif type == 'passthruline':
- return PassThruLine(lineno,indent_str,tuples[0],text)
- elif type == 'contentline':
- # OK - we need to go down another level
- sublist = tuples[0][SUBLIST]
-
- # Do we also have an in-line comment?
- if len(sublist) > 1:
- comment = sublist[1]
- else:
- comment = None
-
- # And the actual DATA for our line is down yet another level...
- sublist = sublist[0][SUBLIST]
- type = sublist[0][OBJECT]
- if type == 'label':
- return LabelLine(lineno,indent_str,sublist[0],comment,text)
- elif type == 'tableblock':
- return TableBlockLine(lineno,indent_str,sublist[0],comment,text)
- elif type == 'tupleblock':
- return TupleBlockLine(lineno,indent_str,sublist[0],comment,text)
- elif type == 'ifblock':
- return IfBlockLine(lineno,indent_str,sublist[0],comment,text)
- elif type == 'tuple':
- return TupleLine(lineno,indent_str,sublist[0],comment,text)
- elif type == 'tupleplus':
- return TuplePlusLine(lineno,indent_str,sublist[0],comment,text)
- elif type == 'jumpto':
- return JumpToLine(lineno,indent_str,sublist[0],comment,text)
- else:
- raise ValueError,\
- "Line %d is of unexpected type 'contentline/%s'"%(lineno,
- type)
- elif type == 'badline':
- # OK - we need to go down another level
- sublist = tuples[0][SUBLIST]
-
- # Do we also have an in-line comment?
- if len(sublist) > 1:
- comment = sublist[1]
- else:
- comment = None
-
- # And the actual DATA for our line is down yet another level...
- sublist = sublist[0][SUBLIST]
- type = sublist[0][OBJECT]
- if type == 'tableblock':
- return BadTableBlockLine(lineno,indent_str,sublist[0],comment,text)
- if type == 'tuple':
- return BadTupleLine(lineno,indent_str,sublist[0],comment,text)
- else:
- raise ValueError,\
- "Line %d is of unexpected type 'badline/%s'"%(lineno,type)
- else:
- raise ValueError,"Line %d is of unexpected type '%s'"%(lineno,type)
-
-
-\f
-# ------------------------------------------------------------
-class BaseLine:
- """The base class on which the various line types depend
-
- Contains:
-
- tagtuple -- the tagtuple we (our subclass instance) represent(s)
- lineno -- the line number in the file (first line is line 1)
- indent -- our indentation (integer)
- indent_str -- our indentation (a string of spaces)
- text -- the text of the "file" we're within
- class_name -- the name of the actual class this instance belongs to
- (i.e., the name of the subclass, suitable for printing)
-
- Some things only get useful values after we've been instantiated
-
- next_indent -- the indentation of the next line
- index -- for a line in a block, its index therein
- """
-
- def __init__(self,lineno,indent_str,tagtuple,text):
- """Instantiate a BaseLine.
-
- lineno -- the line number in the "file". Note that the first line
- in the file is line 1
- indent_str -- the indentation of the line (a string of spaces)
- tagtuple -- the tag tuple for this line of data
- text -- the text for the "file". All the "left" and "right"
- offsets are relative to this text (i.e., it is the
- entire content of the file)
-
- The content of the tagtuple depends on which of our subclasses
- is being used. Refer to the relevant doc string.
- """
-
- self.tagtuple = tagtuple
- self.lineno = lineno
- self.text = text
-
- self.class_name = self._class_name()
- self.indent_str = indent_str
- self.indent = len(indent_str)
-
- # OK - we don't really know! (but this will do for "EOF")
- self.next_indent = 0
-
- # We don't always HAVE a sensible value for this
- self.index = None
-
- #if DEBUGGING:
- # print "Line %3d: %s%s"%(lineno,indent_str,self.class_name)
-
- def change_indent(self,count=None,spaces=""):
- """Change our indentation.
-
- Specify either "count" or "spaces" (if both are given,
- "count" will be used, if neither is given, then the
- indentation will be set to zero)
-
- count -- the number of spaces we're indented by
- spaces -- a string of spaces
- """
- if count:
- self.indent = count
- self.indent_str = count * " "
- else:
- self.indent_str = spaces
- self.indent = len(spaces)
-
- def _class_name(self):
- """Return a representation of the class name."""
-
- full_name = "%s"%self.__class__
- bits = string.split(full_name,".")
- return bits[-1]
-
- def starts_block(self):
- """Return true if we start a new block."""
- return 0
-
- def only_in_block(self):
- """Return true if we can only occur inside a block."""
- return 0
-
- def our_business(self):
- """Return true if we are a line we understand."""
- return 1
-
- def __str__(self):
- return "%3d %s%-10s"%(self.lineno,self.indent_str,self.class_name)
-
- def _intro(self):
- """Returns a useful 'introductory' string."""
- return "%3d %-10s %s"%(self.lineno,self.class_name,self.indent_str)
-
- def _trunc(self):
- """Returns a "truncated" representation of our text."""
-
- text = "%s %s"%(self._intro(),
- `self.text[self.tagtuple[LEFT]:self.tagtuple[RIGHT]]`)
-
- if len(text) > 60:
- return text[:60]+"..."
- else:
- return text
-
- def resolve_labels(self,block):
- """Called to resolve any labels use in this line.
-
- block -- the block that contains us
- """
- # The default is to do nothing as we don't HAVE any labels...
- return
-
- def expand(self,stream,block=None):
- """Write out the expanded equivalent of ourselves.
-
- stream -- an object with a "write" method, e.g., a file
- newline -- true if we should output a terminating newline
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
- """
-
- if DEBUGGING:
- stream.write("Line %3d: "%self.lineno)
-
- stream.write(self.indent_str)
- stream.write(self.text[self.tagtuple[LEFT]:self.tagtuple[RIGHT]])
- stream.write(",\n")
-
- def warning(self,text):
- """Report a warning message.
-
- text -- the text to report
- """
-
- lines = string.split(text,"\n")
- print "###WARNING: line %d (%s)"%(self.lineno,self.class_name)
- for line in lines:
- print "### %s"%line
-
- def error(self,text):
- """Report an error.
-
- text -- the error text to report
- """
-
- lines = string.split(text,"\n")
- print "###ERROR: line %d (%s)"%(self.lineno,self.class_name)
- for line in lines:
- print "### %s"%line
-
-\f
-# ------------------------------------------------------------
-class EmptyLine(BaseLine):
- """An empty line.
-
- Note that the indentation of an empty line is taken to be the
- same as that of the next (non-empty) line. This is because it
- seems to me that (a) an empty line should not per-se close a
- block (which it would do if it had indentation 0) and (b) we
- don't remember any whitespace in an empty line, so the user
- can't assign an indentation themselves (which is a Good Thing!)
- """
-
- def __init__(self,lineno,indent_str,tagtuple,text):
- """Instantiate an EmptyLine.
-
- The content of the tagtuple is:
- None
- """
-
- BaseLine.__init__(self,lineno,indent_str,tagtuple,text)
-
- def expand(self,stream,block=None):
- """Write out the expanded equivalent of ourselves.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
- """
-
- if DEBUGGING:
- stream.write("Line %3d: "%self.lineno)
-
- # um - there's nothing to do, folks
- stream.write("\n")
-
- def our_business(self):
- """Return true if we are a line we understand."""
- return 0
-
- def _trunc(self):
- """Returns a "truncated" representation of our text."""
-
- return self._intro()
-
-\f
-# ------------------------------------------------------------
-class CommentLine(BaseLine):
- """A comment line."""
-
- def __init__(self,lineno,indent_str,tagtuple,text):
- """Instantiate a CommentLine.
-
- The content of the tagtuple is:
- ('comment',left,right,None)
- and the demarcated text includes the initial '#' character
- """
-
- BaseLine.__init__(self,lineno,indent_str,tagtuple,text)
-
- # We actually want the next tuple down (so to speak) so that
- # we lose the trailing newline...
- tup = self.tagtuple[SUBLIST][0]
- self.data = self.text[tup[LEFT]:tup[RIGHT]]
-
- def our_business(self):
- """Return true if we are a line we understand."""
- return 0
-
- def expand(self,stream,block=None):
- """Write out the expanded equivalent of ourselves.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
- """
-
- if DEBUGGING:
- stream.write("Line %3d: "%self.lineno)
-
- stream.write(self.indent_str)
- stream.write("%s\n"%self.data)
-
-\f
-# ------------------------------------------------------------
-class PassThruLine(BaseLine):
- """A line we just pass throught without interpretation."""
-
- def __init__(self,lineno,indent_str,tagtuple,text):
- """Instantiate a PassThruLine.
-
- The content of the tagtuple is:
- ('passthru',left,right,None)
- """
-
- BaseLine.__init__(self,lineno,indent_str,tagtuple,text)
-
- # We actually want the next tuple down (so to speak) so that
- # we lose the trailing newline...
- tup = self.tagtuple[SUBLIST][0]
- self.data = self.text[tup[LEFT]:tup[RIGHT]]
-
- def our_business(self):
- """Return true if we are a line we understand."""
- return 0
-
- def expand(self,stream,block=None):
- """Write out the expanded equivalent of ourselves.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
- """
-
- if DEBUGGING:
- stream.write("Line %3d: "%self.lineno)
-
- if block:
- err_str = "Unparsed line inside a block"\
- " - it has been commented out"
- # Hmm - the following advice is less often useful than I
- # had hoped - leave it out for now...
- #if string.find(self.data,",") != -1:
- # err_str = err_str + "\nCheck for a trailing comma?"
-
- self.error(err_str)
-
- # Always output the indentation, 'cos otherwise it looks silly
- stream.write(self.indent_str)
-
- if block:
- stream.write("#[ignored]#")
-
- stream.write("%s\n"%self.data)
-
-\f
-# ------------------------------------------------------------
-class ContentLine(BaseLine):
- """A line we have to interpret - another base class.
-
- Adds the following variables:
-
- comment -- any in-line comment on this line
- """
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a ContentLine.
-
- comment -- either a comment tuple or None
-
- The content of the tagtuple is:
- ('contentline',left,right,
- [('content',left,right,[<data>]),
- ('comment',left,right,None) -- optional
- ])
- where <data> is used in the internals of one of our subclasses
- (i.e., it is what is passed down in the "tagtuple" argument)
- """
-
- BaseLine.__init__(self,lineno,indent_str,tagtuple,text)
- self.comment = comment
-
- # Assume we're not the last "our business" line in a block...
- self.is_last = 0
-
- def _write_comment(self,stream,sofar):
- """Write out the in-line comment string.
-
- Since we're the only people to call this, we can safely
- rely on it only being called when there IS a comment tuple
- to output...
-
- stream -- an object with a "write" method, e.g., a file
- sofar -- the number of characters written to the line
- so far
- """
- if sofar < COMMENT_COLUMN:
- stream.write(" "*(COMMENT_COLUMN - sofar))
- else:
- # always write at least one space...
- stream.write(" ")
- stream.write(self.text[self.comment[LEFT]:self.comment[RIGHT]])
-
- def _write_text(self,stream,block):
- """Write out the main tuple text.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
-
- This should generally be the method that subclasses override.
- It returns the number of characters written, or -1 if we had
- an error.
- """
- stream.write(self.text[self.tagtuple[LEFT]:self.tagtuple[RIGHT]])
- return self.tagtuple[RIGHT] - self.tagtuple[LEFT]
-
- def expand(self,stream,block=None):
- """Write out the expanded equivalent of ourselves.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
- """
-
- if DEBUGGING:
- stream.write("Line %3d: "%self.lineno)
-
- stream.write(self.indent_str)
- nchars = self._write_text(stream,block)
- # Don't write any in-line comment out if we had an error,
- # as the layout won't work!
- if nchars > -1 and self.comment:
- self._write_comment(stream,sofar=nchars+self.indent)
- stream.write("\n")
-
-\f
-# ------------------------------------------------------------
-class LabelLine(ContentLine):
- """A line containing a label.
-
- Contains:
- label -- our label string
- """
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a LabelLine.
-
- For instance:
-
- <fred>
-
- The content of the tagtuple is:
-
- ('label',left,right,[
- ('identifier',left,right,None)
- ])
- """
-
- ContentLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
-
- self.label = self.text[self.tagtuple[LEFT]:self.tagtuple[RIGHT]]
-
- def _write_text(self,stream,block):
- """Write out the main tuple text.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
- """
- # Enough difficult length calculation - let's do this one
- # the easy way...
- if DEBUGGING:
- text = "# Label %s at index %d"%(self.label,self.index)
- else:
- text = "# %s"%(self.label) # surely enough for most people...
- stream.write(text)
- return len(text)
-
- def translate(self,index,block):
- """Return the translation of a use of this label as a target.
-
- index -- the index of the line which uses the label as a target
- block -- the Block we are within
- """
-
- # Hmm - I don't think this CAN go wrong at this point...
- return block.translate_label(self.label,self)
-
- def only_in_block(self):
- """Return true if we can only occur inside a block."""
- return 1
-
-\f
-# ------------------------------------------------------------
-class TableBlockLine(ContentLine):
- """A line starting a table block."""
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a TableBlockLine.
-
- For instance:
-
- "fred" = Table is:
- Table is:
-
- This is used for two purposes:
- 1. To define the actual tag table itself (i.e., at the outer
- level). Only "Table" is allowed in this instance, but since
- that is all we recognised for now, we shan't worry about it...
- 2. To define an inner table (i.e., at an inner level)
-
- The content of the tagtuple is:
-
- ('tableblock',left,right,[
- ('assignment',left,right,[ -- optional if inner
- ('val',left,right,[
-
- ('identifier',left,right,[])
- OR
- ('str',left,right,[
- ('text',left,right,None)
- ])
- OR
- ('int',left,right,[])
-
- ])
- ])
- ('type',left,right,[]) -- either "Table" or "SubTable"
- ])
-
- NOTE: as an "emergency" measure (so we can `pretend' that a
- TupleBlock was actually a TableBlock as part of attempted
- error correction), if tagtuple == ("error",tagobj) then we
- short-circuit some of the initialisation...
- """
-
- ContentLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
-
- if tagtuple[0] == "error":
- # We're "bluffing" at the creation of a TableBlock
- self.tagobj = tagtuple[1]
- self.is_subtable = 0
- elif len(self.tagtuple[SUBLIST]) == 1:
- self.tagobj = "None"
- tup = self.tagtuple[SUBLIST][0]
- self.is_subtable = (self.text[tup[LEFT]:tup[RIGHT]] == "SubTable")
- else:
- # The first tuple down gives us the "<value> = " string
- tup = self.tagtuple[SUBLIST][0]
- # The next tuple down gives us "<value>" which is what we want
- tup = tup[SUBLIST][0]
- self.tagobj = self.text[tup[LEFT]:tup[RIGHT]]
- # Then we have the type of table
- tup = self.tagtuple[SUBLIST][1]
- self.is_subtable = (self.text[tup[LEFT]:tup[RIGHT]] == "SubTable")
-
- def got_tagobj(self):
- return (self.tagobj != "None")
-
- def starts_block(self):
- """Return true if we start a new block."""
- return 1
-
- def _write_text(self,stream,block):
- """Write out the main tuple text.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
-
- It returns the number of characters written, or -1 if we had
- an error.
- """
-
- if block:
- if self.is_subtable:
- stream.write("(%s,SubTable,("%self.tagobj)
- return len(self.tagobj) + 11
- else:
- stream.write("(%s,Table,("%self.tagobj)
- return len(self.tagobj) + 8
- else:
- stream.write("%s = ("%self.tagobj)
- return len(self.tagobj) + 4
-
-\f
-# ------------------------------------------------------------
-class TupleBlockLine(ContentLine):
- """A line starting a tuple block (i.e., defining a single tuple)
-
- Contains:
-
- name -- the "name" of this tuple (i.e., what comes
- before the "is:")
- """
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a TupleBlockLine.
-
- For instance:
-
- Fred is:
-
- The content of the tagtuple is:
-
- ('tupleblock',left,right,[
- ('identifier',left,right,None)
- ])
- """
-
- ContentLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
-
- tup = self.tagtuple[SUBLIST][0]
- self.name = self.text[tup[LEFT]:tup[RIGHT]]
-
- def starts_block(self):
- """Return true if we start a new block."""
- return 1
-
- def only_in_block(self):
- """Return true if we can only occur inside a block."""
- return 0
-
- def _write_text(self,stream,block):
- """Write out the main tuple text.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
-
- It returns the number of characters written, or -1 if we had
- an error.
- """
- # The "\" at the end is somewhat clumsy looking, but the
- # only obvious way of preserving layout...
- stream.write("%s = \\"%self.name)
- return len(self.name) + 5
-
-\f
-# ------------------------------------------------------------
-class IfBlockLine(ContentLine):
- """A line starting an if block.
-
- Contains:
- cmd -- the command within this if block
- arg -- the argument for said command
- or:
- name -- the name within this if block
- """
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate an IfBlockLine.
-
- For instance:
-
- 'jim' = Is "Fred":
- Is "Fred":
- fred:
-
- The content of the tagtuple is:
-
- ('ifblock',left,right,[
- ('assignment',left,right,[
- ('val',left,right,[
-
- ('identifier',left,right,[])
- OR
- ('str',left,right,[
- ('text',left,right,None)
- ])
- OR
- ('int',left,right,[])
-
- ])
- ])
- ('op',left,right,None),
- ('arg',left,right,None),
- ])
- or:
- ('ifblock',left,right,[
- ('op',left,right,None),
- ('arg',left,right,None),
- ])
- or:
- ('ifblock',left,right,[
- ('identifier',left,right,None)
- ])
- """
-
- ContentLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
-
- tuples = self.tagtuple[SUBLIST]
- if tuples[0][OBJECT] == 'op':
- tup1 = tuples[0]
- tup2 = tuples[1]
- self.tagobj = "None"
- self.cmd = self.text[tup1[LEFT]:tup1[RIGHT]]
- self.arg = self.text[tup2[LEFT]:tup2[RIGHT]]
- self.name = None
- elif tuples[0][OBJECT] == 'assignment':
- # The "<value>" in the "<value> = " string is down
- # one level more than the others
- tup0 = tuples[0][SUBLIST][0]
- self.tagobj = self.text[tup0[LEFT]:tup0[RIGHT]]
- tup1 = tuples[1]
- tup2 = tuples[2]
- self.cmd = self.text[tup1[LEFT]:tup1[RIGHT]]
- self.arg = self.text[tup2[LEFT]:tup2[RIGHT]]
- self.name = None
- elif tuples[0][OBJECT] == 'identifier':
- tup = tuples[0]
- self.name = self.text[tup[LEFT]:tup[RIGHT]]
- self.cmd = None
- self.arg = None
- self.tagobj = None
- else:
- # Hmm - try to continue with anything unexpected
- tup = tuples[0]
- self.error("Unexpected IfBlock subtype %s"%tup[OBJECT])
- self.name = self.text[tup[LEFT]:tup[RIGHT]]
- self.cmd = None
- self.arg = None
- self.tagobj = None
-
- # Currently, we have one 'special' argument
- if self.arg == "back": self.arg = "-1"
-
- # We don't yet know the offset of the "virtual label" at the
- # end of this if block...
- self.end_label = None
-
- def starts_block(self):
- """Return true if we start a new block."""
- return 1
-
- def only_in_block(self):
- """Return true if we can only occur inside a block."""
- return 1
-
- def resolve_labels(self,block):
- """Called to resolve any labels used in this line.
-
- block -- the block that contains us
-
- Note that this only does something the first time it
- is called - this will be when the IF block's startline
- is asked to resolve its labels. If it is called again,
- as a 'normal' line, it will do nothing...
- """
- if not self.end_label:
- self.end_label = "%+d"%(len(block.business)+1)
-
- def _write_text(self,stream,block):
- """Write out the main tuple text.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
-
- It returns the number of characters written, or -1 if we had
- an error.
- """
- if not self.end_label:
- # This should never happen, but just in case, warn the user!
- self.error("Unable to determine 'onFalse' destination in IF")
-
- if self.name:
- stream.write("%s + (%s,+1),"%(self.name,
- self.end_label or "<undefined>"))
- return len(self.name) + 20
- else:
- stream.write("(%s,%s,%s,%s,+1),"%(self.tagobj,self.cmd,self.arg,
- self.end_label or "<undefined>"))
- return len(self.tagobj) + len(self.cmd) + len(self.arg) + \
- len(self.end_label) + 20
-
-\f
-# ------------------------------------------------------------
-class TupleLine(ContentLine):
- """A line containing a basic tuple.
-
-
- Contains:
- tagobj -- optional
- cmd -- the command
- arg -- the argument
- ontrue -- what to do if true
- onfalse -- ditto false
- """
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a TupleLine.
-
- The content of the tagtuple is:
-
- ('tuple',left,right,[
- ('tagobj',left,right,[ -- optional
- ('str',left,right,[
- ('text',left,right,None)
- ])
- ])
- ('op',left,right,None),
- ('arg',left,right,None),
- ('onfalse',left,right,[ -- optional
- ('target',left,right,[
- ('tgt',left,right,None)
- ]),
- ('ontrue',left,right,[ -- optional
- ('target',left,right,[
- ('tgt',left,right,None)
- ])
- ])
- ])
- """
-
- ContentLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
-
- self.unpack()
-
-
- def unpack(self):
- """Unpack our contents from our tagtuple."""
-
- # This is doubtless not the most efficient way of doing this,
- # but it IS relatively simple...
- dict = {}
- #for key in ("assignment","op","arg","onfalse","ontrue"):
- for key in ("assignment","op","plusarg","onfalse","ontrue"):
- dict[key] = None
-
- tuples = self.tagtuple[SUBLIST]
- for item in tuples:
- name = item[OBJECT]
- if name == "onfalse" or name == "ontrue" or name == "assignment":
- # For these, we need to go "down one level" for our data
- tup = item[SUBLIST][0]
- dict[name] = (tup[LEFT],tup[RIGHT])
- else:
- dict[name] = (item[LEFT],item[RIGHT])
-
- # The tag object is optional
- if dict["assignment"]:
- left,right = dict["assignment"]
- self.tagobj = self.text[left:right]
- else:
- self.tagobj = "None"
-
- # The operation (command) and argument are required
- left,right = dict["op"]
- self.cmd = self.text[left:right]
-
- #left,right = dict["arg"]
- left,right = dict["plusarg"]
- self.arg = self.text[left:right]
-
- # Currently, we have one 'special' argument
- if self.arg == "back": self.arg = "-1"
-
- # Actually, we don't want the F and T jumps explicit if not
- # given, since we mustn't output them for a single tuple if
- # they're not given (so they can be "added in" later on)
- if dict["onfalse"]:
- left,right = dict["onfalse"]
- self.onfalse = self.text[left:right]
- else:
- self.onfalse = None # "MatchFail"
- if dict["ontrue"]:
- left,right = dict["ontrue"]
- self.ontrue = self.text[left:right]
- else:
- self.ontrue = None # "next"
-
- def only_in_block(self):
- """Return true if we can only occur inside a block."""
- return 1
-
- def resolve_labels(self,block):
- """Called to resolve any labels use in this line.
-
- block -- the block that contains us
- """
- if self.onfalse:
- self.onfalse = block.translate_label(self.onfalse,self)
- if self.ontrue:
- self.ontrue = block.translate_label(self.ontrue,self)
-
- def _write_text(self,stream,block):
- """Write out the main tuple text.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
-
- It returns the number of characters written, or -1 if we had
- an error.
- """
-
- # Start with the stuff we must have...
- stream.write("(%s,%s,%s"%(self.tagobj,self.cmd,self.arg))
- length = len(self.tagobj) + len(self.cmd) + len(self.arg) + 3
-
- if self.ontrue:
- if not self.onfalse:
- # OK, we didn't get an explicit F, but because it comes
- # before the T jump in the tuple, we need to fake it
- # anyway...
- stream.write(",%s,%s)"%("MatchFail",self.ontrue))
- length = length + len("MatchFail") + len(self.ontrue) + 3
- else:
- # We had both F and T
- stream.write(",%s,%s)"%(self.onfalse,self.ontrue))
- length = length + len(self.onfalse) + len(self.ontrue) + 3
- elif self.onfalse:
- # We only had F. We shan't "fake" the T jump, *just* in case
- # the user is defining a single tuple that they'll add the
- # T jump to later on (although that *is* a bit dodgy, I think)
- # [[The option would be to "fake" it if we're IN a block - I may
- # go for that approach later on]]
- stream.write(",%s)"%self.onfalse)
- length = length + len(self.onfalse) + 2
- else:
- # Neither F nor T - so don't write the defaults for either,
- # in case this is a top level tuple they're going to add to
- # later on...
- # [[Comments as for the case above, I think]]
- stream.write(")")
- length = length + 1
-
- if block and not self.is_last:
- stream.write(",")
- length = length + 1
-
- return length
-\f
-# ------------------------------------------------------------
-class TuplePlusLine(ContentLine):
- """A line containing a tuple "plus" (e.g., "fred + (+1,+1)").
-
- Contains:
-
- name -- the name/identifier
- ontrue -- what to do if true
- onfalse -- ditto false
- """
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a TuplePlusLine.
-
- <identifier> + (onF,onT)
-
- The content of the tagtuple is:
-
- ('tupleplus',left,right,[
- ('identifier',left,right,None)
- ('onfalse',left,right,[ -- optional
- ('target',left,right,[
- ('tgt',left,right,None)
- ]),
- ('ontrue',left,right,[ -- optional
- ('target',left,right,[
- ('tgt',left,right,None)
- ])
- ])
- ])
- """
-
- ContentLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
-
- self.unpack()
-
-
- def unpack(self):
- """Unpack our contents from our tagtuple."""
-
- # This is doubtless not the most efficient way of doing this,
- # but it IS relatively simple...
- dict = {}
- for key in ("identifier","onfalse","ontrue"):
- dict[key] = None
-
- tuples = self.tagtuple[SUBLIST]
- for item in tuples:
- name = item[OBJECT]
- if name == "onfalse" or name == "ontrue":
- # For these, we need to go "down one level" for our data
- tup = item[SUBLIST][0]
- dict[name] = (tup[LEFT],tup[RIGHT])
- else:
- dict[name] = (item[LEFT],item[RIGHT])
-
- # Start with the identifier
- left,right = dict["identifier"]
- self.name = self.text[left:right]
-
- # Actually, we don't want the F and T jumps explicit if not
- # given, since we mustn't output them for a single tuple if
- # they're not given (so they can be "added in" later on)
- if dict["onfalse"]:
- left,right = dict["onfalse"]
- self.onfalse = self.text[left:right]
- else:
- self.onfalse = None # "MatchFail"
- if dict["ontrue"]:
- left,right = dict["ontrue"]
- self.ontrue = self.text[left:right]
- else:
- self.ontrue = None # "next"
-
- def only_in_block(self):
- """Return true if we can only occur inside a block."""
- return 1
-
- def resolve_labels(self,block):
- """Called to resolve any labels use in this line.
-
- block -- the block that contains us
- """
- if self.onfalse:
- self.onfalse = block.translate_label(self.onfalse,self)
- if self.ontrue:
- self.ontrue = block.translate_label(self.ontrue,self)
-
- def _write_text(self,stream,block):
- """Write out the main tuple text.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
-
- It returns the number of characters written, or -1 if we had
- an error.
- """
-
- if not self.onfalse and not self.ontrue:
- stream.write("%s"%self.name)
- length = len(self.name)
- else:
- # Make a feeble attempt to cause successive such lines to
- # look neater, by aligning the "+" signs (if we output them)
- stream.write("%-15s + ("%(self.name))
- length = max(len(self.name),15) + 4
- if self.ontrue and self.onfalse:
- stream.write("%s,%s)"%(self.onfalse,self.ontrue))
- length = length + len(self.onfalse) + len(self.ontrue) + 2
- elif self.ontrue:
- stream.write("MatchFail,%s)"%(self.ontrue))
- length = length + len(self.ontrue) + 11
- else:
- # Don't forget that comma to make this a tuple!
- stream.write("%s,)"%(self.onfalse))
- length = length + len(self.onfalse) + 1
-
- if not self.is_last:
- stream.write(",")
- length = length + 1
-
- return length
-
-\f
-# ------------------------------------------------------------
-class JumpToLine(ContentLine):
- """A line containing "Jump To <label>"
-
- Contains:
-
- name -- the name/identifier
- onfalse -- the target (which is technically an "on false" jump)
- """
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a JumpLine.
-
- Jump To <label>
-
- The content of the tagtuple is:
-
- ('jumpto',left,right,[
- ('target',left,right,[
- ('tgt',left,right,None)
- ]),
- ])
- """
-
- ContentLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
-
- tup = self.tagtuple[SUBLIST][0]
- self.onfalse = self.text[tup[LEFT]:tup[RIGHT]]
-
- def only_in_block(self):
- """Return true if we can only occur inside a block."""
- return 1
-
- def resolve_labels(self,block):
- """Called to resolve any labels use in this line.
-
- block -- the block that contains us
- """
- self.onfalse = block.translate_label(self.onfalse,self)
-
- def _write_text(self,stream,block):
- """Write out the main tuple text.
-
- stream -- an object with a "write" method, e.g., a file
- block -- used to pass the containing Block down to lines
- within a block, or None if we're not in a block
-
- It returns the number of characters written, or -1 if we had
- an error.
- """
-
- stream.write("(None,Jump,To,%s)"%(self.onfalse))
- length = len(self.onfalse) + 15
-
- if not self.is_last:
- stream.write(",")
- length = length + 1
-
- return length
-
-\f
-# ------------------------------------------------------------
-class BadTableBlockLine(TableBlockLine):
- """We think they MEANT this to be a table block line."""
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a BadTableBlockLine.
-
- For instance:
-
- "fred" = Table:
- Table:
- """
- TableBlockLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
- self.error("Suspected missing 'is' before the colon\n"
- "pretending it's there")
-
-\f
-# ------------------------------------------------------------
-class BadTupleLine(TupleLine):
- """We think they MEANT this to be a tuple line."""
-
- def __init__(self,lineno,indent_str,tagtuple,comment,text):
- """Instantiate a BadTupleLine.
-
- For instance:
-
- "fred" = IsIn "abc"
- """
- TupleLine.__init__(self,lineno,indent_str,tagtuple,comment,text)
- self.error("Suspected missing '=' between tag object and command\n"
- "pretending it's there")
-
-\f
-# ------------------------------------------------------------
-class Block(ContentLine):
- """This class represents a "block".
-
- A "block" is a section of code which starts with a line ending in
- a colon (":"), with the next line and subsequent lines ("in" the
- block) having an extra indent. The block ends when a dedent is
- encountered.
-
- Each instance "eats" lines from the input until (if) it finds the first
- "sub" block. That then "eats" lines until it finds its own end, and
- then hands control back to the first instance, which does the same thing
- again, and so on.
-
- Note that we "pretend" to be a content line - it is convenient to
- look like a line class, so that line processing can cope with us,
- and indeed what we do is "pretend" to be a clone of our start line
- with some extra information...
-
- Contains:
- startline -- the line that "introduces" this block
- items -- a list of the lines and blocks within this block
- label_dict -- a dictionary of {label name : line index}
- inner_indent -- the indentation of our "inner" lines
- outer -- true if we are an "outer" block
- (i.e., not contained within another block)
- """
-
- def __init__(self,startline=None,outer=0,file=None):
- """Instantiate a new block.
-
- startline -- the line that introduces this block
- outer -- true if we are an outer block
- file -- the "file" we're reading lines from
- """
-
- # Pretend to be our own startline (as a generic)
- ContentLine.__init__(self,
- startline.lineno,startline.indent_str,
- startline.tagtuple,startline.comment,
- startline.text)
-
- # But also remember the specifics of the startline
- self.startline = startline
-
- # We "fudge" our class name
- self.class_name = self._block_class_name(startline)
-
- self.outer = outer
- self.file = file
-
- # If we're an outer table block, do we have a tagobj?
- if self.startline.class_name == "TableBlockLine" and outer:
- if not self.startline.got_tagobj():
- raise NoIdentifier,\
- "Tag table at line %d is not assigned to a variable"%\
- (self.lineno)
- elif self.startline.is_subtable:
- raise OutsideError,\
- "SubTable is not allowed outside a block at line %d"%\
- (self.lineno)
-
- self.items = [] # all lines within this block
- self.business = [] # just those that are "our business"
- self.label_dict = {} # remember our labels and their locations
- self.next_index = 0 # 'business' line indices
- self.inner_indent = None
-
- # Eat lines until we reach the end of our block...
- if DEBUGGING: print "%sStart %s"%(self.indent_str,self.class_name)
- self._eat_lines()
- self._end_block()
-
- def _block_class_name(self,startline):
- """Return a representation of the class name."""
-
- full_name = "%s"%self.__class__
- bits = string.split(full_name,".")
- return "%s/%s"%(bits[-1],startline.class_name)
-
- def _eat_lines(self):
- """Eat lines until we run out of block..."""
-
- while 1:
- try:
- nextline = self.file.next()
- except EOFError:
- return
-
- # Check the indentation makes sense...
- if self.inner_indent:
- # We already know how much our block is indented
- # - is this line part of the block?
- if nextline.indent < self.inner_indent:
- # Apparently a dedent - is it what we expect?
- if nextline.indent <= self.indent:
- # Unread that line - it isn't one of ours!
- self.file.unget()
- return
- else:
- raise IndentError,\
- "Line %d (%s) is indented less than the previous "\
- "line, but its indentation doesn't match the "\
- "start of the block at line %d"%\
- (nextline.lineno,nextline.class_name,self.lineno)
- elif nextline.indent > self.inner_indent:
- # A spurious indent
- # (note that doing this stops us from coping with,
- # for instance, things in (..), but then we also don't
- # cope with any form of continued line, or lots of other
- # things, so let's not worry too much for now!)
- raise IndentError,\
- "Line %d (%s) is indented more than the previous line"%\
- (nextline.lineno,nextline.class_name)
- else:
- # This is the first line of the (inside of) the block
- # - check its indentation makes sense...
- self.inner_indent = nextline.indent
- if self.inner_indent <= self.indent:
- raise IndentError,\
- "Line %d (%s) should be indented more than line %d (%s)"%\
- (nextline.lineno,nextline.class_name,
- self.lineno,self.startline.class_name)
-
- # Is it a line or the start of another block?
- if nextline.starts_block():
- # Heh - it's the start of an inner block - add it
- # (remember that instantiating it causes it to
- # "eat" the lines that belong to it)
- self.items.append(Block(startline=nextline,
- outer=0,file=self.file))
- else:
- self.items.append(nextline)
-
- def _end_block(self):
- """End our block"""
-
- if DEBUGGING: print "%sEnd %s"%(self.indent_str,self.class_name)
-
- # If we're a tuple block, we should only have one line...
- # (that is, one "business" line)
- if self.startline.class_name == "TupleBlockLine" and \
- len(self.items) > 1:
- # Are all but one of them not "our business"?
- count = 0
- for item in self.items:
- if item.our_business():
- count = count + 1
- if count > 1: break
- if count > 1:
- self.error("Tuple declaration can only contain one 'business'"
- " line, not %d\n"
- "Assuming it's a table instead (i.e.,"
- "'Table is:' instead of 'is:')"%len(self.items))
- # Can we correct this by "pretending" its a table?
- temp = TableBlockLine(self.startline.lineno,
- self.startline.indent_str,
- ("error",self.startline.name),
- self.startline.comment,
- self.text)
- self.startline = temp
-
- # We've now got all of our lines, and so we can go back over
- # them, expanding out any IF blocks (whose content is actually
- # within this block's scope, so who need to have their labels
- # (come from or go to) in that scope), working out the label
- # indices, and so on...
- # This uses "next_index" to calculate the indices of business
- # lines (needed for label calculation), and also populates the
- # "business" list with just the items that are "our_business()"
- if DEBUGGING:
- print "Expanding IF blocks, sorting out labels, etc."
-
- temp = self.items
- self.items = []
- for item in temp:
- if item.class_name == "Block/IfBlockLine":
- self._add(item.startline)
- for thing in item.items:
- self._add(thing)
- else:
- self._add(item)
-
- # Go back through our contents and resolve any labels
- if DEBUGGING:
- print "%s...processing labels (next_index=%d)"%(self.indent_str,
- self.next_index)
- self.startline.resolve_labels(self)
- # If we're an IF block, we mustn't try to resolve our component
- # lines' labels, as they're actually in our parent block's scope...
- if self.startline.class_name != "IfBlockLine":
- for item in self.items:
- item.resolve_labels(self)
-
- # If we're in a block that wants to suppress the comma at the
- # end of the last item in that block, tell the last item so...
- # (this is debatable for [Bad]TableBlockLine - it might be
- # better to leave the last comma there - so we have an option
- # to determine it...
- if self.startline.class_name == "TupleBlockLine" or \
- (not WANT_LAST_COMMA and \
- (self.startline.class_name == "TableBlockLine" or \
- self.startline.class_name == "BadTableBlockLine")):
- if len(self.business) > 0:
- self.business[-1].is_last = 1
-
- def _add(self,item):
- """Add a line or block to our list of items.
-
- item -- the Line or Block instance to add
-
- NB: Also adds it to our "business" list if it is our business
- (and not a label)
- """
-
- if item.class_name == "LabelLine":
- self.label_dict[item.label] = self.next_index
- if DEBUGGING:
- print "%sadd [%2d] %s"%(item.indent_str,self.next_index,item)
- # Might as well give it the index it is labelling
- item.index = self.next_index
- self.items.append(item)
- elif item.our_business():
- item.index = self.next_index
- self.items.append(item)
- self.business.append(item)
- if DEBUGGING:
- print "%sadd %2d %s"%(item.indent_str,
- self.next_index,item)
- self.next_index = self.next_index + 1
- else:
- # It's not something we can assign a sensible index to, so don't
- if DEBUGGING:
- print "%sadd xx %s"%(item.indent_str,item)
- self.items.append(item)
-
- def translate_label(self,label,line):
- """Given a label, return its translation.
-
- label -- either a string of the form "<...>" to look up in
- this block's label dictionary, or one of the special
- targets (e.g., next, MatchOk, etc.)
- line -- the line using this label
-
- Reports an error and just returns the original "label" if it
- can't translate it.
- """
- if self.label_dict.has_key(label):
- # How far do we have to jump?
- offset = self.label_dict[label] - line.index
- return "%+d"%offset
- elif label == "MatchOk":
- return "MatchOk"
- elif label == "MatchOK":
- line.warning("Label 'MatchOK' should be spelt 'MatchOk'"
- " (using 'MatchOk')")
- return "MatchOk"
- elif label == "MatchFail":
- return "MatchFail"
- elif label == "next":
- return "+1"
- elif label == "previous":
- return "-1"
- elif label == "repeat":
- return "0"
- else:
- line.error("Undefined label '%s'"%label)
- return label
-
- def expand(self,stream,block=None):
- """Write out the expanded equivalent of ourselves.
-
- stream -- an object with a "write" method, e.g., a file
- block -- if we're in a block, this is it, otherwise None
- """
-
- self.startline.expand(stream,block=block)
- for item in self.items[:-1]:
- item.expand(stream,block=self)
-
- self.items[-1].expand(stream,block=self)
-
- # Deal with closing any block parentheses
- if self.startline.class_name == "TableBlockLine" or \
- self.startline.class_name == "BadTableBlockLine":
- if DEBUGGING:
- stream.write("Line ...: ")
-
- stream.write(self.indent_str)
- if self.outer:
- # Outer block - just close it
- stream.write(")")
- else:
- # Inner block is a Table block, and we need to close both
- # the tuple-of-tuples, and also the tuple containing the
- # Table command...
- stream.write("))")
- if not self.is_last:
- stream.write(",")
- stream.write("\n")
-
-\f
-# ------------------------------------------------------------
-class File:
- """This is the class that holds our processed data
-
- Contains:
- lines -- a list of the line instances for each "line" in our text
- items -- a list of lines and BLOCKs
- """
-
- def __init__(self,tagtuples,text):
- """Instantiate a File
-
- tagtuples -- the list of mxTextTools tag tuples generated by
- parsing the data in "text"
- text -- the text we parsed
- """
-
- self.text = text
- self.tagtuples = tagtuples
-
- # Assemble our list of lines
- print "Pass 1: assembling lines"
- if DEBUGGING: print "~~~~~~~~~~~~~~~~~~~~~~~~"
- self.lines = []
- lineno = 0
- prevline = None
- for tagtuple in tagtuples:
- lineno = lineno + 1
- thisline = LineFactory(lineno,tagtuple,text)
-
- if prevline:
- prevline.next_indent = thisline.indent
-
- self.lines.append(thisline)
- prevline = thisline
-
- #if DEBUGGING: print
-
- # The indentation of an empty line is taken to be the same
- # as the indentation of the first following non-empty line
- # The easiest way to do that is to work backwards through
- # the list (is it better to take a copy and reverse THAT,
- # or to reverse our original list twice?)
- print "Pass 2: sorting out indentation of empty lines"
- if DEBUGGING: print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
- revlist = self.lines[:]
- revlist.reverse()
- indent = 0
- for line in revlist:
- if line.class_name == "EmptyLine":
- line.change_indent(indent)
- else:
- indent = line.indent
- del revlist
-
- if DEBUGGING:
- print "Pass 2.5 - the contents of those lines..."
- print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
- for line in self.lines:
- print "Line %d %s"%(line.lineno,line.class_name)
- #print_tuples([line.tagtuple],self.text," ")
- print
-
- # Now we need to assemble blocks
- print "Pass 3: assembling blocks"
- if DEBUGGING: print "~~~~~~~~~~~~~~~~~~~~~~~~~"
- self.reset()
- self.items = []
-
- while 1:
- try:
- item = self.next()
- except EOFError:
- break
-
- if DEBUGGING:
- print "%sTOP %s"%(item.indent_str,item)
- if item.starts_block():
- block = Block(startline=item,outer=1,file=self)
- self.items.append(block)
- block.is_last = 1 # Everything at outer level is "last"
- else:
- if item.only_in_block():
- item.error("This line is not allowed outside a block "
- "- continuing anyway")
- self.items.append(item)
- if item.our_business():
- item.is_last = 1 # Everything at outer level is "last"
-
- if DEBUGGING: print
-
-
- def reset(self):
- """Ensure that the next call of "nextline" returns the first line."""
- self.index = -1
-
- def unget(self):
- """Unread the current line."""
- self.index = self.index - 1
- if self.index < 0:
- self.index = 0
-
- def next(self):
- """Retrieve the next line from the list of lines in this "file".
-
- Raises EOFError if there is no next line (i.e., "end of file")
- """
- self.index = self.index + 1
- try:
- return self.lines[self.index]
- except IndexError:
- # leave the index off the end, so we get EOF again if
- # we're called again - but there's no point courting overflow...
- self.index = self.index -1
- raise EOFError
-
- def expand(self,stream):
- """Expand out the result."""
- for item in self.items:
- item.expand(stream)
-
-\f
-# ------------------------------------------------------------
-def print_tuples(tuples,text,indent=""):
- """Print out a list of tuples in a neat form
-
- tuples -- our tuple list
- text -- the text it tags
- indent -- our current indentation
- """
-
- # Tuples are of the form:
- # (object,left_index,right_index,sublist)
-
- for obj,left,right,sub in tuples:
- if sub:
- print "%s%s"%(indent,obj)
- print_tuples(sub,text,indent+" ")
- else:
- # Terminal node - show the actual text we've tagged!
- print "%s%s = %s"%(indent,obj,`text[left:right]`)
-
-\f
-# ------------------------------------------------------------
-def print_text(text):
- """Print out text with line numbers."""
- lines = string.split(text,"\n")
- lineno = 0
-
- print "Original text"
- print "============="
- for line in lines:
- lineno = lineno + 1
- print "%3d: %s"%(lineno,`line`)
-
-\f
-# ------------------------------------------------------------
-def print_usage(argv0):
- #script_name = string.split(argv0, os.sep)[-1]
- #print __doc__%(script_name)
- print argv0
- print __doc__
-
-\f
-# ------------------------------------------------------------
-def show_tup(indent,nn,tup):
- ll = []
- for item in tup:
- if type(item) == type((1,)) or type(item) == type([]):
- ll.append("(..)")
- else:
- ll.append(`item`)
-
- if nn:
- print "%s%d: (%s)"%(indent,nn,string.join(ll,","))
- else:
- print "%s(%s)"%(indent,string.join(ll,","))
-
-def comp_sub(indent,one,two):
- len1 = len(one)
- if len(two) != len(one):
- print "%sTuple lengths differ - 1:%d, 2:%d"%(indent,len1,len(two))
- show_tup(indent,1,one)
- show_tup(indent,2,two)
- # If this is all, let's try to continue...
- len1 = min(len1,len(two))
-
- for count in range(len1):
- a = one[count]
- b = two[count]
- if type(a) != type(b):
- print "%sValue types differ, item %d: 1:%s, 2:%s"%(indent,count,
- type(a),type(b))
- show_tupe(indent,1,one)
- show_tupe(indent2,two)
- return 0
- if type(a) == type((1,)) or type(a) == type([]):
- if not comp_sub(indent+" ",a,b):
- # They're the same at this level, so show only one...
- show_tup(indent,0,one)
- return 0
- else:
- if a != b:
- print "%sValues differ, item %d: 1:%s, 2:%s"%(indent,count,
- `a`,`b`)
- show_tup(indent,1,one)
- show_tup(indent,2,two)
- return 0
- return 1
-
-def compare_tagtables(one,two):
- # Each table is made up of tuples of the form
- # (tagobj,action,arg,onfalse,ontrue)
- # but if action is Table or SubTable then arg may be a tuple
- # itself...
- if comp_sub("",one,two):
- print "They appear to be the same"
-
-\f
-# ------------------------------------------------------------
-def main():
- """Used to test the module."""
-
- debug_pytag = DEFAULT_DEBUG
- use_pytag = DEFAULT_PYTAG
- use_stdout = 0
- import_tags = 0
- force_overwrite = 0
- compare_tables = 0
-
- if os.name == "posix":
- use_testdata = 0
- else:
- # At home...
- use_testdata = 1
- use_stdout = 1
- global DEBUGGING
- DEBUGGING = 0
-
- # Do we have command line arguments?
- arg_list = sys.argv[1:]
- args = []
-
- while 1:
- if len(arg_list) == 0:
- break
-
- word = arg_list[0]
-
- if word == "-pytag":
- use_pytag = 1
- elif word == "-debug":
- debug_pytag = 1
- elif word == "-stdout":
- use_stdout = 1
- elif word == "-force":
- force_overwrite = 1
- elif word == "-import":
- import_tags = 1
- elif word == "-compare":
- compare_tables = 1
- elif word == "-diag":
- global DEBUGGING
- DEBUGGING = 1
- elif word == "-test":
- use_testdata = 1
- use_stdout = 1
- elif word == "-help":
- print_usage(sys.argv[0])
- return
- elif word == "-version":
- print "Version:",__version__
- return
- elif word == "-history":
- print "History:"
- print __history__
- return
- else:
- args.append(word)
-
- arg_list = arg_list[1:]
- continue
-
- if compare_tables:
- from Translate_tags import t_file
- i_file = define_tagtable()
- print "Comparing internal table (1) against external (2)"
- compare_tagtables(i_file,t_file)
- return
-
- if not use_testdata and (not args or len(args) > 2):
- print_usage(sys.argv[0])
- return
-
- if not use_testdata:
- infile = args[0]
-
- if import_tags:
- print "Importing tag table definition"
- from Translate_tags import t_file
- else:
- print "Using internal tag table definition"
- t_file = define_tagtable()
-
- if use_stdout:
- outfile = "standard output"
- elif len(args) > 1:
- outfile = args[1]
- else:
- base,ext = os.path.splitext(infile)
- if ext != ".py":
- outfile = base + ".py"
- else:
- print "Input file has extension .py so won't guess"\
- " an output file"
- return
-
- if outfile != "standard output":
- if outfile == infile:
- print "The output file is the same as the input file"
- print "Refusing to overwrite %s"%outfile
- return
- elif os.path.exists(outfile):
- if force_overwrite:
- print "Output file %s already exists"\
- " - overwriting it"%outfile
- else:
- print "Output file %s already exists"%outfile
- return
-
- # Read the input file
- if use_testdata:
- if DEBUGGING: print
- print "Using test data"
- if DEBUGGING: print "==============="
- text = test_data
- else:
- if DEBUGGING: print
- print "Reading text from %s"%infile
- if DEBUGGING: print "=================="+"="*len(infile)
- file = open(infile,"r")
- text = file.read()
- file.close()
-
- # Show what we are trying to parse
- if DEBUGGING or use_testdata:
- print
- print_text(text)
-
- # Tag it
- print
- print "Tagging text"
- if DEBUGGING: print "============"
- if use_pytag:
- import pytag
- pytag.set_verbosity(0)
- if debug_pytag:
- pytag.set_verbosity(1)
- pytag.use_debugger()
- result,taglist,next = pytag.pytag(text,t_file)
- else:
- timer = TextTools._timer()
- timer.start()
- result, taglist, next = tag(text,t_file)
- #result, taglist, next = tag(text,t_file,0,len(text),taglist)
- print "Tagging took",timer.stop()[0],"seconds"
-
- # Now print out the result of the tagging
- print
- print "Manipulating tagged data"
- if DEBUGGING: print "========================"
- tagfile = File(taglist,text)
-
- print
- print "Writing translation to %s"%outfile
- if DEBUGGING: print "======================="+"="*len(outfile)
-
- # Open the output file, if necessary
- if use_stdout:
- file = sys.stdout
- else:
- file = open(outfile,"w")
-
- tagfile.expand(file)
-
-\f
-# ------------------------------------------------------------
-if __name__ == '__main__':
- main()
+++ /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.
-#
-#
-# ======================================================================
-
-try:
- import mx.TextTools
- import sys
- sys.modules['TextTools']=mx.TextTools
-except:
- # Le package mx n'est pas installé. On essaie d'importer
- # directement TextTools au cas ou
- try:
- import TextTools
- except:
- # Aucun des deux packages n'est installé
- print """ Le package mx.TextTools ou TextTools doit etre
- installé pour pouvoir relire des fichiers de commandes
- au format Aster V5
- voir : http://www.lemburg.com/python/mxExtensions.html
- """
+++ /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 sys,string
-import TextTools
-from tables import ERRORS
-
-#
-__version__="$Name: $"
-__Id__="$Id: conv.py,v 1.2 2002/05/15 15:32:00 eficas Exp $"
-#
-
-Keywords=('MAILLE_1','MAILLE_2','MAILLE_ESCL','MAILLE_FOND','MAILLE_MAIT','MAILLE_ORIG','MAILLE',
- 'NOEUD', 'NOEUD_1','NOEUD_2','NOEUD_INIT','NOEUD_FIN', 'NOEUD_ORIG','NOEUD_REFE','NOEUD_EXTR',
- 'NOEUD_I', 'NOEUD_J','NOEUD_CHOC','NOEUD_ANCRAGE','NOEUD_CENTRE','NOEUD_CMP','NOEUD_DOUBLE',
- 'NOEUD_ESCL','NOEUD_FOND','NOEUD_PARA','NOEUD_POIN_TANG',
- 'GROUP_MA', 'GROUP_MA_1','GROUP_MA_2','GROUP_MA_INT','GROUP_MA_EXT', 'GROUP_MA_ORIG',
- 'GROUP_MA_BORD','GROUP_MA_INTE','GROUP_MA_FLUIDE', 'GROUP_MA_INTERF','GROUP_MA_BETON',
- 'GROUP_MA_ESCL','GROUP_MA_FINAL','GROUP_MA_FLU_SOL','GROUP_MA_FLU_STR','GROUP_MA_FOND',
- 'GROUP_MA_MAIT','GROUP_MA_RADIER','GROUP_MA_SOL_SOL','GROUP_MA_INIT',
- 'GROUP_NO', 'GROUP_NO_1','GROUP_NO_2','GROUP_NO_EXT', 'GROUP_NO_ORIG','GROUP_NO_CHOC',
- 'GROUP_NO_ANCRAGE','GROUP_NO_CENTRE','GROUP_NO_ESCL','GROUP_NO_EXTR','GROUP_NO_FIN',
- 'GROUP_NO_FOND','GROUP_NO_INIT','GROUP_NO_POIN_TG','GROUP_NO_RADIER',
- 'NOM','NOM_GROUP_MA',
- 'SANS_NOEUD', 'SANS_GROUP_NO',
- 'INTERSEC', 'UNION','DIFFE',
- 'VECT_GRNO_ORIG','VECT_GRNO_EXTR',
- 'VALE_CO'
- )
-
-liste_macros=('MACRO_MATR_ASSE','MACRO_ELAS_MULT','MACR_ASCOUF_MAIL','MACR_ASCOUF_CALC','MACR_ASPIC_MAIL',
- 'MACR_ASPIC_CALC','MACRO_MATR_AJOU','MACRO_ELAS_MULT','MACRO_MODE_MECA','MACRO_PROJ_BASE',
- 'MACR_ADAP_MAIL',
- )
-liste_concepts_produits=[]
-commande_courante=''
-
-def text_nom_ope(text,tags,left,right):
- global commande_courante
- if len(tags) :
- tag,l,r,subtags=tags[0]
- commande_courante=text[left:l]
- return text[left:l]+'('+text[l:r]
- else :
- commande_courante=text[left:right]
- return text[left:right]+'('
-
-def text_reuse(text,tags):
- s=''
- for tag,l,r,subtags in tags:
- if tag == 'ident' :
- sd=text[l:r]
- s=s+ sd
- elif tag == 'nom_ope' : s=s+ '='+text_nom_ope(text,subtags,l,r)
- elif tag == 'affe' :
- s=s+ '='+text_affe(text,subtags)
- elif tag == 'comm' :
- if commande_courante in liste_macros:
- s=s+'reuse='+sd+','+text_macro(text,subtags)+')'
- else:
- s=s+'reuse='+sd+','+text_com(text,subtags)+')'
- else:pass
- s=s+'\n'
- return s
-
-def text_noreuse(text,tags):
- global commande_courante
- s=''
- for tag,l,r,subtags in tags:
- if tag == 'ident' :
- sd=text[l:r]
- s=s+ text[l:r]
- elif tag == 'nom_ope' :
- s=s+ '='+ text_nom_ope(text,subtags,l,r)
- elif tag == 'affe' :
- liste_concepts_produits.append(sd)
- s=s+ '='+text_affe(text,subtags)
- elif tag == 'comm' :
- if oldtag=='ident':
- if sd in liste_macros:
- s=s+'('+text_macro(text,subtags)+')'
- else:
- s=s+'('+text_com(text,subtags)+')'
- else:
- liste_concepts_produits.append(sd)
- if commande_courante in liste_macros:
- s=s+text_macro(text,subtags)+')'
- else:
- s=s+text_com(text,subtags)+')'
- else:pass
- oldtag=tag
- s=s+'\n'
- return s
-
-def list_mc(lmc,mcs):
- s=''
- for k in lmc:
- v=mcs[k]
- if len(v) ==1:
- va,c=v[0]
- s=s+c+k+'='+va+','
- elif len(v) > 1:
- s=s+k+'=('
- for va,c in v:
- s=s+string.join((c,va,','),'')
- s=s[:-1]+'),'
- s=s[:-1]
- return s
-
-def text_com(text,tags):
- mcs={}
- lmc=[]
- currid=None
- comment=''
- for tag,l,r,subtags in tags:
- if tag == 'ident' :
- currid=text[l:r]
- if not mcs.has_key(currid):
- mcs[currid]=[]
- lmc.append(currid)
- elif tag == 'mcf':
- ll=text_mcf(text,subtags)
- mcs[currid].append((ll,comment))
- comment=''
- elif tag == 'num' :
- a=string.replace(text[l:r],'D','E')
- mcs[currid].append((a,comment))
- comment=''
- elif tag == 'CPLX' :
- a=text_cplx(text,text[l:r],subtags)
- mcs[currid].append((a,comment))
- comment=''
- elif tag == 'arg' :
- a=''
- if currid in Keywords :
- # FR : (SGDG) il faut tester s'il n'y a pas déjà des cotes !!!
- if text[l]!="'" and text[r-1]!="'":
- a=a+"'"+text[l:r]+"'"
- else:
- a=a+text[l:r]
- else:
- a=a+text[l:r]
- mcs[currid].append((a,comment))
- comment=''
- elif tag == 'EVAL' :
- a=text_eval(text,subtags)
- mcs[currid].append((a,comment))
- comment=''
- elif tag == 'comment' :
- comment=comment + '#'+text[l+1:r]
- elif tag == 'comments' :
- comment=comment + text[l:r]
- elif tag == 'larg' :
- if currid in Keywords:mcs[currid].append((text_larg2(text,subtags),comment))
- else:mcs[currid].append((text_larg(text,subtags),comment))
- comment=''
- else :pass
- s=list_mc(lmc,mcs)
- if comment :s=s+comment
- return s
-
-def text_macro(text,tags):
- mcs={}
- lmc=[]
- currid=None
- comment=''
- for tag,l,r,subtags in tags:
- if tag == 'ident' :
- currid=text[l:r]
- if not mcs.has_key(currid):
- mcs[currid]=[]
- lmc.append(currid)
- elif tag == 'mcf':
- ll=text_macro_mcf(text,subtags)
- mcs[currid].append((ll,comment))
- comment=''
- elif tag == 'num' :
- a=string.replace(text[l:r],'D','E')
- mcs[currid].append((a,comment))
- comment=''
- elif tag == 'CPLX' :
- a=text_cplx(text,text[l:r],subtags)
- mcs[currid].append((a,comment))
- comment=''
- elif tag == 'arg' :
- a=''
- if text[l] == "'":
- # FR : (SGDG) il faut tester s'il n'y a pas déjà des cotes !!!
- a=a+text[l:r]
- elif currid in Keywords :
- a=a+"'"+text[l:r]+"'"
- else:
- sd=text[l:r]
- if sd not in liste_concepts_produits:
- # Il s agit d un concept produit par la macro mais situe à droite de =
- a=a+'CO("'+sd+'")'
- liste_concepts_produits.append(sd)
- else:
- a=a+sd
- mcs[currid].append((a,comment))
- comment=''
- elif tag == 'EVAL' :
- a=text_eval(text,subtags)
- mcs[currid].append((a,comment))
- comment=''
- elif tag == 'comment' :
- comment=comment + '#'+text[l+1:r]
- elif tag == 'comments' :
- comment=comment + text[l:r]
- elif tag == 'larg' :
- if currid in Keywords:mcs[currid].append((text_larg2(text,subtags),comment))
- else:mcs[currid].append((text_larg(text,subtags),comment))
- comment=''
- else :pass
- s=list_mc(lmc,mcs)
- if comment :s=s+comment
- return s
-
-def comments_text(text):
- l=string.replace(text,'%','#')
- return l
-
-def text_eval(text,tags):
- # on retourne l expression sans conversion dans un objet EVAL et entre quotes
- for tag,l,r,subtags in tags:
- if tag == 'vexpr':
- s='EVAL("""'+text[l:r]+'""")'
- return s
- return ''
-
-def text_mcf(text,tags):
- s='_F( '
- comment=''
- for tag,l,r,subtags in tags:
- if tag == 'ident' :
- s=s+comment
- comment=''
- currid=text[l:r]
- s=s+ currid +' = '
- elif tag == 'arg' :
- if currid in Keywords :
- # FR : (SGDG) il faut tester s'il n'y a pas déjà des cotes !!!
- if text[l]!="'" and text[r-1]!="'":
- s=s+"'"+text[l:r]+"',"
- else:
- s=s+text[l:r]+","
- else:s=s+text[l:r]+","
- elif tag == 'num' :
- s=s+string.replace(text[l:r],'D','E')+','
- elif tag == 'CPLX' :
- s=s+text_cplx(text,text[l:r],subtags)+','
- elif tag == 'EVAL' :
- s=s+text_eval(text,subtags)+','
- elif tag == 'larg' :
- if currid in Keywords:s=s+text_larg2(text,subtags)+','
- else: s=s+text_larg(text,subtags)+','
- elif tag == 'comments' :
- comment=comment+text[l:r]
- if comment != '':
- s=s+comment
- return s+')'
-
-def text_macro_mcf(text,tags):
- s='_F( '
- comment=''
- for tag,l,r,subtags in tags:
- if tag == 'ident' :
- s=s+comment
- currid=text[l:r]
- s=s+ currid +' = '
- elif tag == 'arg' :
- if text[l] == "'":
- # FR : (SGDG) il faut tester s'il n'y a pas déjà des cotes !!!
- s=s+text[l:r]+","
- elif currid in Keywords :
- s=s+"'"+text[l:r]+"',"
- else:
- sd=text[l:r]
- if sd not in liste_concepts_produits:
- # Il s agit d un concept produit par la macro mais situe à droite de =
- s=s+'CO("'+sd+'"),'
- liste_concepts_produits.append(sd)
- else:
- s=s+sd+','
- comment=''
- elif tag == 'num' :
- s=s+string.replace(text[l:r],'D','E')+','
- elif tag == 'CPLX' :
- s=s+text_cplx(text,text[l:r],subtags)+','
- comment=''
- elif tag == 'EVAL' :
- s=s+text_eval(text,subtags)+','
- comment=''
- elif tag == 'larg' :
- if currid in Keywords:s=s+text_larg2(text,subtags)+','
- else: s=s+text_larg(text,subtags)+','
- comment=''
- elif tag == 'comments' :
- comment=comment+text[l:r]
- return s[:-1]+')'
-
-def text_cplx(texte,text,tags):
- """ Retourne une chaîne de caractères représentant un complexe """
- s="('"+text[0:2]+"'," #text[0:2] = RI ou MP
- for tag,l,r,subtags in tags:
- if tag == 'num' :
- s=s+string.replace(texte[l:r],'D','E')+','
- s=s+')'
- return s
-
-def text_larg2(text,tags):
- """ Pareil que text_larg mais ajoute des cotes autour des arg """
- ll=[]
- for tag,l,r,subtags in tags:
- if tag == 'arg' :
- # FR : (SGDG) il faut tester le cas où les cotes sont déjà là !!!!
- if text[l] != "'" and text[r-1] != "'":
- ll.append( "'"+text[l:r]+"',")
- else:
- ll.append(text[l:r]+",")
- elif tag == 'num' :
- ll.append(string.replace(text[l:r],'D','E')+',')
- elif tag == 'CPLX' :
- ll.append(text_cplx(text,text[l:r],subtags)+',')
- elif tag == 'comments' :
- ll.append(text[l:r])
- return '('+string.join(ll,'')+')'
-
-def text_larg(text,tags):
- # Pour les listes d arguments il semble plus rapide de construire
- # une liste puis de faire join (ne pas exagerer : voir ajout ,)
- ll=[]
- for tag,l,r,subtags in tags:
- if tag == 'arg' :
- ll.append((text,l,r))
- ll.append(',')
- elif tag == 'num' :
- # cette facon de faire est un peu plus rapide que la suivante
- ll.append(string.replace(text[l:r],'D','E')+',')
- elif tag == 'comments' :
- ll.append((text,l,r))
- elif tag == 'EVAL' :
- ll.append(text_eval(text,subtags)+',')
- else:
- print "Argument ignore: ",text[l:r]
- return '('+TextTools.join(ll,'')+')'
-
-def comment_text(text):
- l=string.replace(text,'\n','\n#')
- if l[-1]=='#':return '#'+l[:-1]
- else:return '#'+l
-
-def text_affe(text,tags):
- s=''
- for tag,l,r,subtags in tags:
- if tag == 'arg' :
- s=s+text[l:r]
- elif tag == 'EVAL' :
- s=s+text_eval(text,subtags)
- elif tag == 'larg' :
- s=s+text_larg(text,subtags)
- elif tag == 'num' :
- s=s+string.replace(text[l:r],'D','E')
- elif tag == 'CPLX' :
- s=s+text_cplx(text,text[l:r],subtags)+','
- return s
-
-def text_commande(text,tags):
- """
- Convertit une taglist de type commande en une chaine de caracteres
- à la syntaxe Python représentative d'une commande
- """
- s=''
- for tag,l,r,subtags in tags:
- if tag == 'noreuse':
- s=s+text_noreuse(text,subtags)
- elif tag == 'reuse':s=s+text_reuse(text,subtags)
- return s
-
-def text_formule(text,tags):
- """
- Convertit une taglist de type formule en une chaine de caracteres
- à la syntaxe Python représentative d'une formule
- """
- s=''
- count=0
- typ=''
- for tag,l,r,subtags in tags:
- if tag == 'id':
- if count == 0:
- s=text[l:r]+' = FORMULE('+ty+'="""('
- else:
- if count > 1:s=s+','
- s=s+typ+text[l:r]
- typ=''
- count = count +1
- elif tag == 'typ':
- typ=text[l:r]
- elif tag == 'vexpr':
- s=s+ ') =\n'+text[l:r]
- elif tag == 'type':
- ty=text[l:r]
- return s +'""")\n'
-
-def text_comms(text,tags):
- """
- Convertit une taglist resultat d'un appel à TextTools.tag avec une table de type Aster
- en une chaine de caracteres à la syntaxe Python
- """
- # On met la liste globale des concepts produits à zero
- global liste_concepts_produits
- liste_concepts_produits=[]
-
- s=''
- for tag,l,r,subtags in tags:
- if tag == 'comment':
- s=s+ '#'+text[l+1:r]
- elif tag == 'Null':
- s=s+ '\n'
- elif tag == 'formule':
- s=s+ text_formule(text,subtags)
- elif tag == 'commande' :
- s=s+text_commande(text,subtags)
- else:
- s=s+ comment_text(text[l:r])
- return s
-
-def format_errs(text,tags):
- s=''
- warnings=''
- for tag,l,r,subtags in tags:
- if subtags:
- err,warn=format_errs(text,subtags)
- s=s+err
- warnings=warnings+warn
- if tag in ERRORS:
- s=s+ tag+" ligne : "+`TextTools.countlines(text[:l])`+" texte erroné : "+text[l-10:l]+'?'+text[l:r]+'\n'
- if tag == 'passline':
- warnings=warnings+ " ligne "+`TextTools.countlines(text[:l])`+" ignorée : " +text[l:r]+'\n'
- return s,warnings
-
-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
- #TextTools.print_tags(text,taglist)
- text=string.replace(text,'%','#')
- s_errors,warnings = format_errs(text,taglist)
- if s_errors:
- return None,s_errors,warnings
- else:
- ss=text_comms(text,taglist)
- return string.replace(ss,'\r\n','\n'),s_errors,warnings
-
-
-
-
+++ /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 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 *
-
-#
-__version__="$Name: $"
-__Id__="$Id: tables.tag,v 1.1.1.1 2002/03/26 09:08:45 eficas Exp $"
-#
-
-err0='ERR0 , erreur non identifiee : '
-err1='ERR1 , arguments commande errones : '
-err2='ERR2 , parenthese obligatoire : '
-err3='ERR3 , point virgule obligatoire : '
-err4='ERR4 , ":" obligatoire avant mot cle : '
-err5='ERR5 , mot cle facteur ou arg obligatoire : '
-err6='ERR6 , identificateur obligatoire : '
-err7='ERR7 , mot cle facteur errone : '
-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,err11)
-
-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),
- ))
-
-# 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),
-)
-
-
-
+++ /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 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 *
-
-#
-__version__="$Name: $"
-__Id__="$Id: tables.tag,v 1.1.1.1 2002/03/26 09:08:45 eficas Exp $"
-#
-
-err0='ERR0 , erreur non identifiee : '
-err1='ERR1 , arguments commande errones : '
-err2='ERR2 , parenthese obligatoire : '
-err3='ERR3 , point virgule obligatoire : '
-err4='ERR4 , ":" obligatoire avant mot cle : '
-err5='ERR5 , mot cle facteur ou arg obligatoire : '
-err6='ERR6 , identificateur obligatoire : '
-err7='ERR7 , mot cle facteur errone : '
-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,err11)
-
-white_set=set(whitespace)
-
-delim=" ();:=,!&*/%\n"
-
-whitespace is:
- AllIn ' \t'
-
-opt_whitespace is:
- whitespace F:MatchOk
-
-t_opt_whitespace is:
- whitespace F:next
-
-t_opt_whitenl is:
- AllIn ' \t\n\r' F:next
-
-t_err = Table is:
- AllNotIn ';' F:next
- Is ';'
- Skip back
-
-commespaces is:
- 'comments' = Table is:
- IsInSet white_set F:next T:<blancs>
- Is '%' F:MatchFail
- <comment>
- AllNotIn '\n\r' F:next
- AllIn '\n\r' F:next
- <blancs>
- AllInSet white_set F:next
- Is '%' F:MatchOk T:<comment>
-
-t_commespaces = Table is:
- IsInSet white_set F:next T:<blancs>
- Is '%' F:MatchFail
- <comment>
- AllNotIn '\n\r' F:next
- AllIn '\n\r' F:next
- <blancs>
- AllInSet white_set F:next
- Is '%' F:MatchOk T:<comment>
-
-x_commespaces is:
- 'comments' = Table is:
- <debut>
- Is '%':
- AllNotIn '\n\r' F:next
- AllIn '\n\r' F:next T:<debut>
- AllInSet white_set F:next T:<debut>
-
-t_ident is:
- 'ident' = Table is:
- IsIn alpha+'_'
- AllIn alpha+'_'+number F:MatchOk
-
-t_identificateur = Table is:
- IsIn alpha+'_'
- AllIn alpha+'_'+number F:MatchOk
-
-t_identmc = Table is:
- IsIn alpha+'_'
- AllIn alpha+'_'+number F:next
- None = Table t_commespaces F:next
- Is ':' F:MatchFail
-
-n_ident is:
- None = Table is:
- IsIn alpha+'_'
- AllIn alpha+'_'+number F:MatchOk
-
-n_string is:
- None = Table is:
- Is "'"
- <loop>
- AllNotIn "'" F:next
- Word "''" F:next T:<loop>
- Is "'" F:MatchFail T:MatchOk
-
-t_number is:
- 'num' = Table is:
- IsIn '-+' F:next
- Is '.' F:<entiere>
- IsIn number F:MatchFail T:<decimal>
- <entiere>
- IsIn number F:MatchFail
- AllIn number F:next
- Is '.' F:<exposant>
- <decimal>
- AllIn number F:next
- <exposant> # si pas exposant termine number trouve
- IsIn 'deDE' F:MatchOk
- IsIn '-+' F:next
- AllIn number F:MatchFail T:MatchOk
-
-n_number is:
- None = Table is:
- IsIn '-+' F:next
- Is '.' F:<entiere>
- IsIn number F:MatchFail T:<decimal>
- <entiere>
- IsIn number F:MatchFail
- AllIn number F:next
- Is '.' F:<exposant>
- <decimal>
- AllIn number F:next
- <exposant> # si pas exposant termine number trouve
- IsIn 'deDE' F:MatchOk
- IsIn '-+' F:next
- AllIn number F:MatchFail T:MatchOk
-
-t_complexe is:
- 'CPLX' = Table is:
- "RI" = Word 'RI' F:<mp>
- commespaces F:next
- t_number F:MatchFail # ce n est pas un complexe
- commespaces F:next # a partir d ici c est un complexe => produire erreurs
- Is ',' F:next
- commespaces F:next
- t_number F:MatchFail T:MatchOk
- <mp>
- "MP" = Word 'MP' F:MatchFail
- commespaces F:next
- t_number F:MatchFail # ce n est pas un complexe
- commespaces F:next # a partir d ici c est un complexe => produire erreurs
- Is ',' F:next
- commespaces F:next
- t_number F:MatchFail T:MatchOk
- <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
- 'vexpr' = Table ThisTable F:<err10>
- commespaces F:next
- 'par2' = Is ')' F:<err9> T:<op>
- t_number F:next T:<op>
- t_complexe F:next T:<op>
- 'sign' = IsIn '+-':
- commespaces F:next
- 'vexpr' = Table ThisTable F:<err10> T:<op>
- t_PI F:next T:<op>
- t_ident F:MatchFail
- commespaces F:next
- 'listpar' = Is '(': # on peut avoir une liste de parametres
- <params>
- commespaces F:next
- 'param' = Table ThisTable F:<err10>
- commespaces F:next
- Is ',' F:next T:<params>
- 'finlist' = Is ')' F:<err9>
- <op>
- commespaces F:next
- 'exp' = Word '**':
- commespaces F:next
- 'vexpr' = Table ThisTable F:<err10> T:MatchOk
- 'op' = IsIn '+-*/':
- commespaces F:next
- 'vexpr' = Table ThisTable F:<err10> T:MatchOk
- Jump To MatchOk
- <err>
- err0 = Table t_err F:MatchFail T:MatchOk
- <err10>
- err10 = Table t_err F:MatchFail T:MatchOk
- <err9>
- err9 = Table t_err F:MatchFail T:MatchOk
-
-t_liste_param is:
- 'liste' = Table is:
- t_ident
- commespaces F:next
- Is '('
- commespaces F:next
- t_vexpr F:MatchFail
- <suite>
- commespaces F:next
- Is ',' F:<fin>
- commespaces F:next
- t_vexpr F:<err> T:<suite>
- <fin>
- commespaces F:next
- Is ')' F:<err> T:MatchOk
- <err>
- err7 = Table t_err F:MatchFail T:MatchOk
-
-t_eval_expr is:
- 'EVAL' = Table is:
- Word 'EVAL'
- commespaces F:next
- Is '(' F:<err>
- commespaces F:next
- 'vexpr' = Table t_vexpr F:<err>
- commespaces F:next
- Is ')' F:<err> T:MatchOk
- <err>
- err7 = Table t_err F:MatchFail T:MatchOk
-
-t_entier is:
- 'entier' = Table is:
- IsIn number
- AllIn number F:next
- IsIn delim T:next
- Skip back
-
-t_comment is:
- 'comment' = Table is:
- Is '%'
- AllNotIn '\n\r' F:next
- AllIn '\n\r' F:MatchOk
-
-t_nullline is:
- 'Null' = AllIn ' ;\t\n\r'
-
-t_passline is:
- 'passline' = Table is:
- AllNotIn newline F:next
- IsIn newline
-
-t_reste is:
- 'reste' = Table is:
- AllNotIn ';' F:next
-
-t_rest2 is:
- 'reste' = Table is:
- AllNotIn ';' F:next
- Is ';'
- AllNotIn '\n' F:next
- Is '\n' F:MatchOk T:MatchOk
-
-t_formule is:
- 'formule' = Table is:
- commespaces F:next
- Word '!FORMULE'
- commespaces F:next
- Is '(' F:<err9>
- commespaces F:next
- 'type' = Table t_identificateur F:<err>
- commespaces F:next
- Is ':' F:<err>
- commespaces F:next
- Is '(' F:<err9>
- commespaces F:next
- 'id' = Table t_identificateur F:<err>
- commespaces F:next
- Is '(' F:<err9>
- <params>
- commespaces F:next
- 'typ' = Table t_identmc F:next
- commespaces F:next
- 'id' = Table t_identificateur F:<err>
- commespaces F:next
- Is ',' F:next T:<params>
- commespaces F:next
- Is ')' F:<params>
- commespaces F:next
- Is '=' F:<err>
- commespaces F:next
- 'vexpr' = Table t_vexpr F:<err>
- commespaces F:next
- Is ')' F:<err11>
- commespaces F:next
- Is ')' F:<err11>
- commespaces F:next
- Is ';' F:<err>
- AllNotIn '\n' F:next
- Is '\n' F:MatchOk T:MatchOk
- <err>
- 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:
- Word 'EVAL' F:next T:MatchFail # EVAL n est pas un nom d operateur, il est reserve
- IsIn alpha+'_'
- AllIn alpha+'_'+number F:next
- commespaces F:next
- Is '(' F:MatchFail
- Skip back
-
-t_arg is:
- 'arg' = Table is:
- n_string F:next T:MatchOk
- n_ident
-
-t_larg is:
- 'larg' = Table is:
- Is '(' F:MatchFail
- <arg>
- commespaces F:next
- t_complexe F:next T:<suite>
- t_number F:next T:<suite>
- t_eval_expr F:next T:<suite>
- t_arg F:MatchFail T:<suite>
- <suite>
- commespaces F:next
- Is ',' F:next
- Is ')' F:<arg> T:MatchOk
-
-t_mcf is:
- 'mcf' = Table is:
- Is '(' F:MatchFail
- "comments" = Table t_commespaces F:next
- Is ')' F:next T:MatchOk
- t_ident F:MatchFail
- "comments" = Table t_commespaces F:next
- Is ':' F:MatchFail # a partir d ici on est dans un mot cle facteur (erreurs eventuelles)
- <args>
- "comments" = Table t_commespaces F:next
- t_larg F:next T:<suite>
- t_complexe F:next T:<suite>
- t_number F:next T:<suite>
- t_eval_expr F:next T:<suite>
- t_arg F:<err>
- <suite>
- "comments" = Table t_commespaces F:next
- Is ',' F:next
- "comments" = Table t_commespaces F:next
- Is ')' F:next T:MatchOk
- t_ident F:<err>
- "comments" = Table t_commespaces F:next
- Is ':' F:<err> T:<args>
- <err>
- err7 = Table t_err F:MatchFail T:MatchOk
-
-t_comm is:
- 'comm' = Table is: # on attend les arguments entre () sinon erreur
- Is '(' F:<err>
- commespaces F:next
- Is ')' F:<call> T:MatchOk
- <call>
- t_ident F:<err>
- commespaces F:next
- Is ':' F:<err>
- commespaces F:next
- t_mcf F:<args>
- <mcfsuite>
- commespaces F:next
- Is ',' F:next
- commespaces F:next
- t_mcf F:<sep> T:<mcfsuite>
- <args>
- t_larg F:next T:<suite>
- t_complexe F:next T:<suite>
- t_number F:next T:<suite>
- t_eval_expr F:next T:<suite>
- t_arg F:<err>
- <suite>
- commespaces F:next
- <sep>
- Is ',' F:next
- commespaces F:next
- Is ')' F:<call> T:MatchOk
- <err>
- err1 = Table t_err F:MatchFail T:MatchOk
-
-t_affe is:
- 'affe' = Table is:
- commespaces F:next
- t_larg F:next T:<suite>
- t_complexe F:next T:<suite>
- t_number F:next T:<suite>
- t_eval_expr F:next T:<suite>
- t_arg F:next T:<suite>
- Jump To <err>
- <suite>
- Jump To MatchOk
- <err>
- err0 = Table t_err F:MatchFail T:MatchOk
-
-t_reuse is:
- 'reuse' = Table is:
- t_opt_whitespace
- t_ident
- t_opt_whitespace
- Is '=' F:<err>
- t_opt_whitespace
- t_nom_ope F:<affe> T:<comm>
- <comm>
- t_comm F:MatchFail T:MatchOk
- <affe>
- t_affe F:MatchFail T:MatchOk
- <err>
- err8 = Table t_err F:MatchFail T:MatchOk
-
-t_noreuse is:
- 'noreuse' = Table is:
- t_opt_whitespace
- t_ident
- t_opt_whitenl
- Is '=': # on a affaire a un operateur ou une affectation
- t_opt_whitespace
- t_nom_ope F:<affe> T:<comm>
- Is '(' F:<err8> T:next
- Skip back
- <comm>
- t_comm F:<err> T:MatchOk
- <affe>
- t_affe F:<err> T:MatchOk
- <err>
- err0 = Table t_err F:MatchFail T:MatchOk
- <err8>
- err8 = Table t_err F:MatchFail T:MatchOk
-
-t_fin is:
- 'commande' = Table is:
- 'noreuse' = Table is:
- t_opt_whitespace
- 'ident' = Word "FIN"
- t_opt_whitenl
- Is '(' F: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
- Skip back
- t_comm F:next T:MatchOk
- err0 = Table t_err F:MatchFail T:MatchOk
- commespaces F:next
- Is ';' F:<err> T:MatchOk
- <err>
- err0 = Table t_err F:MatchFail T:MatchOk
-
-t_commande is:
- 'commande' = Table is:
- t_opt_whitespace
- Is '&':
- t_reuse F:MatchFail T:<fin>
- t_noreuse F:MatchFail
- <fin>
- commespaces F:next
- Is ';' F:<err> T:MatchOk
- <err>
- err0 = Table t_err F:MatchFail T:MatchOk
-
-aster_script = Table is:
- <top>
- t_nullline F:next T:<top>
- t_comment F:next T:<top>
- t_formule F:next T:<top>
- t_fin F:next T:<AfterFin>
- t_commande F:next T:<top>
- t_passline F:next T:<top>
- EOF Here F:<top>
- <AfterFin>
- t_nullline F:next T:<AfterFin>
- t_passline F:next T:<AfterFin>
- EOF Here F:<AfterFin>
-
-
-
+++ /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 package contient tous les convertisseurs de formats d'entrée
- en objets compréhensibles par EFICAS.
-
- Ces convertisseurs sont implémentés sous forme de plugins
-"""
-
-from Extensions import pluginloader
-
-import convert
-
-plugins=pluginloader.PluginLoader(convert)
-
+++ /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 le plugin convertisseur de fichier
- au format asterv5 pour EFICAS.
-
- Un plugin convertisseur doit fournir deux attributs de classe :
- extensions et formats et deux méthodes : readfile,convert.
-
- L'attribut de classe extensions est une liste d'extensions
- de fichiers préconisées pour ce type de format. Cette information
- est seulement indicative.
-
- L'attribut de classe formats est une liste de formats de sortie
- supportés par le convertisseur. Les formats possibles sont :
- eval, dict ou exec.
- Le format eval est un texte source Python qui peut etre evalué. Le
- résultat de l'évaluation est un objet Python quelconque.
- Le format dict est un dictionnaire Python.
- Le format exec est un texte source Python qui peut etre executé.
-
- La méthode readfile a pour fonction de lire un fichier dont le
- nom est passé en argument de la fonction.
- convertisseur.readfile(nom_fichier)
-
- La méthode convert a pour fonction de convertir le fichier
- préalablement lu dans un objet du format passé en argument.
- objet=convertisseur.convert(outformat)
-
- Ce convertisseur supporte uniquement le format de sortie exec
-
-"""
-import sys,string,traceback
-
-from Noyau import N_CR
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'asterv5',
- # La factory pour créer une instance du plugin
- 'factory' : AsterParser,
- }
-
-import Parserv5.conv
-import parseur_python
-
-class AsterParser:
- """
- """
- # Les extensions de fichier préconisées
- extensions=('.comm',)
- # Les formats de sortie supportés (eval dict ou exec)
- formats=('exec','execnoparseur')
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR convertisseur format asterv5',
- fin='fin CR format asterv5')
- self.oldtext=''
- self.out=self.err=self.warn=''
-
- def readfile(self,filename):
- self.filename=filename
- try:
- self.text=open(filename).read()
- except:
- self.cr.fatal("Impossible ouvrir fichier %s" % filename)
- return
-
- def convert(self,outformat):
- if outformat == 'exec':
- return self.getexec()
- elif outformat == 'execnoparseur':
- return self.getexecnoparseur()
- else:
- raise "Format de sortie : %s, non supporté"
-
- def getexec(self):
- if self.text != self.oldtext:
- self.out, self.err, self.warn= Parserv5.conv.conver(self.text)
- if self.err:
- self.cr.fatal("Erreur a l'interpretation de %s" % self.filename)
- self.cr.fatal(str(self.err))
- return self.out
- # On transforme les commentaires et les parametres en objets Python
- # avec un deuxième parseur
- try:
- self.out = parseur_python.PARSEUR_PYTHON(self.out).get_texte()
- except:
- self.cr.fatal("Erreur dans la deuxième phase d interpretation de %s" % self.filename)
- tracebak.print_exc()
- return ""
- self.oldtext=self.text
- return self.out
-
- def getexecnoparseur(self):
- if self.text != self.oldtext:
- self.out, self.err, self.warn= Parserv5.conv.conver(self.text)
- if self.err:
- self.cr.fatal("Erreur a l'interpretation de %s" % self.filename)
- self.cr.fatal(str(self.err))
- return self.out
- self.oldtext=self.text
- return self.out
-
+++ /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 le plugin convertisseur de fichier
- au format ini pour EFICAS.
- Le convertisseur supporte le format de sortie eval
-
- Le format eval est un texte Python qui peut etre
- evalué avec la commande eval de Python. Il doit donc
- etre une expression Python dont l'évaluation permet d'obtenir un objet
-
-"""
-import traceback
-
-from ConfigParser import ConfigParser
-from Noyau import N_CR
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'ini',
- # La factory pour créer une instance du plugin
- 'factory' : IniParser,
- }
-
-
-class IniParser(ConfigParser):
- """
- Ce convertisseur lit un fichier au format ini avec la
- methode readfile : convertisseur.readfile(nom_fichier)
- et retourne le texte au format outformat avec la
- methode convertisseur.convert(outformat)
-
- Ses caractéristiques principales sont exposées dans 2 attributs
- de classe :
-
- - extensions : qui donne une liste d'extensions de fichier préconisées
-
- - formats : qui donne une liste de formats de sortie supportés
- """
- # Les extensions de fichier préconisées
- extensions=('.ini','.conf')
- # Les formats de sortie supportés (eval ou exec)
- formats=('eval','dict')
-
- def __init__(self,cr=None):
- ConfigParser.__init__(self)
- # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR convertisseur format ini',
- fin='fin CR format ini')
-
- def readfile(self,filename):
- try:
- self.read(filename)
- except Exception,e:
- self.cr.fatal(str(e))
-
- def convert(self,outformat):
- if outformat == 'eval':
- return self.getdicttext()
- elif outformat == 'dict':
- return self.getdict()
- else:
- raise "Format de sortie : %s, non supporté"
-
- def getdicttext(self):
- s='{'
- for section in self.sections():
- s=s+ "'" + section + "' : {"
- options=self.options(section)
- for option in options:
- value=self.get(section,option)
- if value == '':value="None"
- s=s+"'%s' : %s," % (option, value)
- s=s+"}, "
- s=s+"}"
- return s
-
- def getdict(self):
- s={}
- for section in self.sections():
- s[section]=d={}
- options=self.options(section)
- for option in options:
- value=self.get(section,option)
- if value == '':
- d[option]=None
- else:
- d[option]=eval(value)
- return s
-
+++ /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 le plugin convertisseur de fichier
- au format python pour EFICAS.
-
- Un plugin convertisseur doit fournir deux attributs de classe :
- extensions et formats et deux méthodes : readfile,convert.
-
- L'attribut de classe extensions est une liste d'extensions
- de fichiers préconisées pour ce type de format. Cette information
- est seulement indicative.
-
- L'attribut de classe formats est une liste de formats de sortie
- supportés par le convertisseur. Les formats possibles sont :
- eval, dict ou exec.
- Le format eval est un texte source Python qui peut etre evalué. Le
- résultat de l'évaluation est un objet Python quelconque.
- Le format dict est un dictionnaire Python.
- Le format exec est un texte source Python qui peut etre executé.
-
- La méthode readfile a pour fonction de lire un fichier dont le
- nom est passé en argument de la fonction.
- convertisseur.readfile(nom_fichier)
-
- La méthode convert a pour fonction de convertir le fichier
- préalablement lu dans un objet du format passé en argument.
- objet=convertisseur.convert(outformat)
-
- Ce convertisseur supporte le format de sortie dict
-
-"""
-import sys,string,traceback
-
-from Noyau import N_CR
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'pyth',
- # La factory pour créer une instance du plugin
- 'factory' : PythParser,
- }
-
-
-class PythParser:
- """
- Ce convertisseur lit un fichier au format pyth avec la
- methode readfile : convertisseur.readfile(nom_fichier)
- et retourne le texte au format outformat avec la
- methode convertisseur.convert(outformat)
-
- Ses caractéristiques principales sont exposées dans 2 attributs
- de classe :
-
- - extensions : qui donne une liste d'extensions de fichier préconisées
-
- - formats : qui donne une liste de formats de sortie supportés
- """
- # Les extensions de fichier préconisées
- extensions=('.pyth',)
- # Les formats de sortie supportés (eval dict ou exec)
- formats=('dict',)
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR convertisseur format pyth',
- fin='fin CR format pyth')
- self.g={}
-
- def readfile(self,filename):
- self.filename=filename
- try:
- self.text=open(filename).read()
- except:
- self.cr.fatal("Impossible ouvrir fichier %s",filename)
- return
- self.g={}
- try:
- exec self.text in self.g
- except Exception,e:
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
- s= string.join(l[2:])
- s= string.replace(s,'"<string>"','"<%s>"'%self.filename)
- self.cr.fatal("Erreur a l'evaluation :\n" + s)
-
- def convert(self,outformat):
- if outformat == 'dict':
- return self.getdict()
- else:
- raise "Format de sortie : %s, non supporté"
-
- def getdict(self):
- d={}
- for k,v in self.g.items():
- if k[0] != '_':d[k]=v
- return d
-
+++ /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 le plugin convertisseur de fichier
- au format python pour EFICAS.
-
- Un plugin convertisseur doit fournir deux attributs de classe :
- extensions et formats et deux méthodes : readfile,convert.
-
- L'attribut de classe extensions est une liste d'extensions
- de fichiers préconisées pour ce type de format. Cette information
- est seulement indicative.
-
- L'attribut de classe formats est une liste de formats de sortie
- supportés par le convertisseur. Les formats possibles sont :
- eval, dict ou exec.
- Le format eval est un texte source Python qui peut etre evalué. Le
- résultat de l'évaluation est un objet Python quelconque.
- Le format dict est un dictionnaire Python.
- Le format exec est un texte source Python qui peut etre executé.
-
- La méthode readfile a pour fonction de lire un fichier dont le
- nom est passé en argument de la fonction.
- convertisseur.readfile(nom_fichier)
-
- La méthode convert a pour fonction de convertir le fichier
- préalablement lu dans un objet du format passé en argument.
- objet=convertisseur.convert(outformat)
-
- Ce convertisseur supporte le format de sortie exec
-
-"""
-import sys,string,traceback
-
-import parseur_python
-from Noyau import N_CR
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'python',
- # La factory pour créer une instance du plugin
- 'factory' : PythonParser,
- }
-
-
-class PythonParser:
- """
- Ce convertisseur lit un fichier au format python avec la
- methode readfile : convertisseur.readfile(nom_fichier)
- et retourne le texte au format outformat avec la
- methode convertisseur.convert(outformat)
-
- Ses caractéristiques principales sont exposées dans 2 attributs
- de classe :
-
- - extensions : qui donne une liste d'extensions de fichier préconisées
-
- - formats : qui donne une liste de formats de sortie supportés
- """
- # Les extensions de fichier préconisées
- extensions=('.py',)
- # Les formats de sortie supportés (eval dict ou exec)
- # Le format exec est du python executable (commande exec) converti avec PARSEUR_PYTHON
- # Le format execnoparseur est du python executable (commande exec) non converti
- formats=('exec','execnoparseur')
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le
- # compte-rendu standard
- self.text=''
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR convertisseur format python',
- fin='fin CR format python')
-
- def readfile(self,filename):
- self.filename=filename
- try:
- self.text=open(filename).read()
- except:
- self.cr.fatal("Impossible ouvrir fichier %s" % filename)
- return
-
- def convert(self,outformat):
- if outformat == 'exec':
- try:
- return parseur_python.PARSEUR_PYTHON(self.text).get_texte()
- except:
- # Erreur lors de la conversion
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
- sys.exc_info()[2])
- self.cr.exception("Impossible de convertir le fichier python \
- qui doit contenir des erreurs.\n \
- On retourne le fichier non converti \n \
- Prévenir la maintenance. \n" + string.join(l))
- # On retourne néanmoins le source initial non converti (au cas où)
- return self.text
- elif outformat == 'execnoparseur':
- return self.text
- else:
- raise "Format de sortie : %s, non supporté"
- return None
-
+++ /dev/null
-# 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 sys,string,re
-
-class ENTITE_JDC :
- def __init__(self,pere):
- self.texte = ''
- pere.l_objets.append(self)
-
- def set_text(self,texte):
- self.texte = texte
-
- def append_text(self,texte):
- """
- Ajoute texte à self.texte en mettant un retour chariot à la fin de texte
- """
- texte = texte+'\n'
- self.texte = self.texte +texte
-
-class COMMENTAIRE(ENTITE_JDC):
-
- def __str__(self):
- """
- Retourne une chaîne de caractères représentants self
- sous une forme interprétable par EFICAS
- """
- s='COMMENTAIRE("""'+self.texte+'""")\n\n'
- return s
-
- def append_text(self,texte):
- """
- Ajoute texte à self.texte en enlevant le # initial
- """
- texte = texte+'\n'
- if texte[0] == '#':
- self.texte = self.texte+texte[1:]
- else:
- # le dièse n'est pas sur le premier caractère
- amont,aval = string.split(texte,'#',1) # on découpe suivant la première occurrence de #
- self.texte = self.texte +amont + aval
-
-class COMMANDE(ENTITE_JDC):
-
- def __str__(self):
- """
- Retourne self.texte
- """
- return self.texte+'\n'
-
- def get_nb_par(self):
- """
- Retourne la différence entre le nombre de parenthèses ouvrantes
- et le nombre de parenthèses fermantes présentes dans self.texte
- Peut donc retourner un entier négatif
- """
- # faire attention aux commentaires contenus dans self.texte
- # qui peuvent eux-mêmes contenir des parenthèses !!!!
- l_lignes = string.split(self.texte,'\n')
- nb = 0
- for ligne in l_lignes:
- ligne = string.split(ligne,'#')[0]
- nb = nb + (string.count(ligne,'(')-string.count(ligne,')'))
- return nb
-
-class AFFECTATION(ENTITE_JDC):
-
- def append_text(self,texte):
- """
- Ajoute texte à self.texte en enlevant tout retour chariot et tout point virgule
- """
- if texte[-1] == '\n' : texte = string.strip(texte[0:-1])\r
- if texte[-1] == ';' : texte = string.strip(texte[0:-1])
- self.texte = self.texte+texte
-
- def __str__(self):
- """
- Retourne une expression de l'affectation compréhensible par ACCAS
- et exploitable par EFICAS
- """
- nom,valeur = string.split(self.texte,'=',1)
- nom = string.strip(nom)
- if valeur[-1] == '\n': valeur = valeur[:-1]
- valeur = string.strip(valeur)
- return nom+' = PARAMETRE(nom=\''+nom+'\',valeur="'+valeur+'")\n\n'
-
-class COMMANDE_COMMENTARISEE(ENTITE_JDC):
-
- def append_text(self,texte):
- """
- Ajoute texte à self.texte en enlevant les doubles commentaires
- """
- texte = string.strip(texte)
- texte = string.strip(texte[2:])
- self.texte = self.texte+(len(self.texte)>0)*'\n'+texte
-
- def __str__(self):
- """
- Retourne une expression de la commande commentarisée compréhensible par ACCAS
- et exploitable par EFICAS
- """
- return "COMMANDE_COMM(texte='''"+self.texte+"''')\n"
-
-class AFFECTATION_EVAL(ENTITE_JDC):
-
- def append_text(self,texte):
- """
- Ajoute texte à self.texte en enlevant tout retour chariot
- """
- if texte[-1] == '\n' : texte = texte[1:-1]
- self.texte = self.texte+texte
-
- def __str__(self):
- """
- Retourne une expression du paramètre EVAL compréhensible par ACCAS
- et exploitable par EFICAS
- """
- nom,valeur = string.split(self.texte,'=',1)
- nom = string.strip(nom)
- if valeur[-1] == '\n': valeur = valeur[:-1]
- valeur = string.strip(valeur)
- return nom+' = PARAMETRE_EVAL(nom=\''+nom+'\',valeur=\''+valeur+'\')\n\n'
-
-class PARSEUR_PYTHON:
- """
- Cette classe sert à générer un objet PARSEUR_PYTHON qui réalise l'analyse d'un texte
- représentant un JDC Python en distinguant :
- - les commentaires inter commandes
- - les affectations
- - les commandes
- """
- pattern_commande = re.compile(r'^([A-Z][A-Z0-9_]+)([ \t\r\f\v]*)\(([\w\W]*)')
- pattern_eval = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)')
- pattern_ligne_vide = re.compile(r'^[\t\r\f\v\n]+')
-
- def __init__(self,texte):
- self.texte = texte
- self.l_objets=None
-
- def is_affectation(self,texte):
- """
- Méthode booléenne qui retourne 1 si le texte est celui d'une affectation dans un jeu de commandes
- Aster, 0 sinon
- """
- if '=' not in texte : return 0
- if self.pattern_commande.match(texte):
- # cas d'une procédure ...
- return 0
- amont,aval = string.split(texte,'=',1)
- aval = string.strip(aval)
- if self.pattern_commande.match(aval):
- return 0
- else:
- return 1
-
- def is_eval(self,texte):
- """
- Méthode booléenne qui retourne 1 si le texte est celui d'une affectation de type EVAL
- dans un jeu de commandes Aster, 0 sinon
- """
- if '=' not in texte : return 0
- if self.pattern_commande.match(texte):
- # cas d'une procédure ...
- return 0
- amont,aval = string.split(texte,'=',1)
- aval = string.strip(aval)
- if not self.pattern_commande.match(aval) : return 0
- if self.pattern_eval.match(aval):
- return 1
- else:
- return 0
-
- def is_commande(self,texte):
- """
- Méthode booléenne qui retourne 1 si le texte est celui d'une commande dans un jeu de commandes
- Aster, 0 sinon
- """
- if self.pattern_commande.match(texte):
- # cas d'une procédure ...
- return 1
- # A ce stade il faut avoir un OPER ou une MACRO, bref un '=' !
- if '=' not in texte : return 0
- # on a un texte de la forme xxxx = yyyyy
- # --> reste à analyser yyyy
- amont,aval = string.split(texte,'=',1)
- aval = string.strip(aval)
- if self.pattern_commande.match(aval):
- return 1
- else:
- return 0
-
- def analyse(self):
- """
- Eclate la chaine self.texte en self.l_objets une liste lignes d'instructions
- et de commentaires (parmi lesquels des instructions "commentarisées").
- """
- #AY##l_lignes = open(self.fichier,'r').readlines()
- l_lignes = string.split(self.texte,'\n')
- commentaire_courant = None
- commande_courante = None
- affectation_courante = None
- commande_commentarisee_courante = None
- self.l_objets = []
- cpt = 0
- for ligne in l_lignes :
- cpt = cpt+1
- if string.strip(ligne) == '':
- # il s'agit d'un saut de ligne
- # --> on l'ignore
- continue
- else:
- liste = string.split(ligne,'##',1)
- if len(liste) > 1:
- # on a trouvé un double commentaire dans la ligne
- before,after = liste
- if string.strip(before) == '':
- # il s'agit d'une commande commentarisée
- if commentaire_courant :
- commentaire_courant = None
- elif commande_courante :
- # on a un objet commentarisé à l'intérieur d'une commande
- # --> non traité pour l'instant
- commande_courante.append_text(ligne)
- elif commande_commentarisee_courante :
- # commande_commentarisee en cours : on ajoute la ligne
- commande_commentarisee_courante.append_text(ligne)
- else:
- # 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
- # --> pour l'instant on ne fait rien
- pass
- new_ligne = string.split(ligne,'#')[0] # on enlève toute la partie commentaire de la ligne
- new_ligne = string.strip(new_ligne)
- if new_ligne == '' :
- # la ligne n'est qu'un commentaire précédé d'éventuels blancs
- if commande_courante :
- # il s'agit d'un commentaire à l'intérieur d'une commande --> on ne fait rien
- commande_courante.append_text(ligne)
- elif commentaire_courant :
- # il s'agit de la nième ligne d'un commentaire entre deux commandes
- # --> on ajoute cette ligne au commentaire courant
- commentaire_courant.append_text(ligne)
- else :
- # il s'agit d'un commentaire entre deux commandes
- # --> on le crée et il devient le commentaire courant
- commentaire_courant = COMMENTAIRE(self)
- commentaire_courant.append_text(ligne)
- else:
- # la ligne contient des données autre qu'un éventuel commentaire
- if commentaire_courant :
- # on clôt un éventuel commentaire courant
- commentaire_courant = None
- if commande_courante :
- commande_courante.append_text(ligne)
- if commande_courante.get_nb_par() == 0:
- # la commande courante est terminée (autant de parenthèses fermantes qu'ouvrantes)
- commande_courante = None
- else:
- # il peut s'agir d'une commande ou d'une affectation ...
- # ou de la poursuite d'une affectation !!!!!
- # ou d'un EVAL !!!
- if self.is_eval(new_ligne):
- # --> affectation de type EVAL
- if affectation_courante : affectation_courante = None
- affectation = AFFECTATION_EVAL(self)
- affectation.append_text(ligne)
- elif self.is_affectation(new_ligne):
- # --> affectation
- affectation_courante = AFFECTATION(self)
- affectation_courante.append_text(ligne)
- elif self.is_commande(new_ligne):
- # --> commande
- commande_courante = COMMANDE(self)
- commande_courante.append_text(ligne)
- affectation_courante = None
- if commande_courante.get_nb_par() == 0:
- # la commande courante est terminée (autant de parenthèses fermantes qu'ouvrantes)
- commande_courante = None
- else:
- #--> poursuite d'une affectation
- affectation_courante.append_text(ligne)
-
-
- def get_texte(self):
- """
- Retourne le texte issu de l'analyse
- """
- if not self.l_objets : self.analyse()
- txt=''
- for obj in self.l_objets:
- txt = txt+str(obj)
- return txt
-
-if __name__ == "__main__" :
- #fichier = 'D:/Eficas_dev/Tests/zzzz100a.comm'
- fichier = 'U:/Eficas_dev/Tests/test_eval.comm'
- texte = open(fichier,'r').read()
- txt = PARSEUR_PYTHON(texte).get_texte()
- print txt
-
+++ /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 Formatage qui permet le formatage d'une
- liste de chaines de caractères dans une syntaxe représentative d'un
- jeu de commandes en un texte présentable
-"""
-import types,string
-
-class Formatage :
- """
- Cette classe contient toutes les méthodes nécessaires au formatage
- de la chaine de caracteres issue d'un generator en un fichier
- 'lisible' ie avec indentations
- """
- def __init__(self,l_jdc,code=None,mode=None,sep='=',l_max=72):
- # l_jdc représente le jeu de commandes brut sous forme de liste
- self.l_jdc = l_jdc
- self.jdc_fini =''
- self.count = 0
- self.sep=sep
- self.l_max=l_max
- if mode == '.py':
- self.sep = '='
- self.l_max = 132
- elif code == 'ASTER':
- self.sep = ':'
- self.l_max = 72
-
- def formate_jdc(self):
- for etape in self.l_jdc:
- self.count = self.count+1
- self.texte_etape = ''
- if type(etape)==types.ListType:
- self.indent=[]
- self.indent.append(len(etape[0]))
- self.indent_courant = self.indent[0]
- self.texte_etape = '\n' + etape[0]
- if len(etape)>1 :
- self.formate_etape(etape[1:])
- else :
- self.indent=[]
- self.texte_etape = etape
- self.jdc_fini = self.jdc_fini + '\n' + self.texte_etape
- return self.jdc_fini
-
- def formate_etape(self,liste):
- ind = 0
- for element in liste :
- if type(element) == types.ListType:
- # il s'agit d'un mot-clé facteur
- # on écrit son nom
- longueur = self.longueur(self.texte_etape)
- try:
- increment = len(('\n'+self.indent_courant*' ')*ind + element[0])
- except:
- print 'ERREUR'
- print liste
- print element
- self.texte_etape = self.texte_etape + ('\n'+self.indent_courant*' ')*ind + element[0]
- length = len(self.indent)
- self.indent.insert(length,self.indent[length-1]+len(element[0]))
- self.indent_courant = self.indent[length]
- # on écrit ses fils
- self.formate_etape(element[1:])
- elif type(element) == types.StringType:
- # il s'agit d'un mot-clé simple ou de ')' ou ');' ou '),'
- if element == ')' or element == '),':
- self.texte_etape = self.texte_etape + string.strip(element)
- length = len(self.indent)
- if length > 1:
- last = self.indent[length-1]
- self.indent.remove(last)
- self.indent_courant=self.indent[length-2]
- else :
- self.indent_courant=self.indent[0]
- elif element == ');':
- length = len(self.indent)
- if length > 1:
- last = self.indent[length-1]
- self.indent.remove(last)
- self.indent_courant=self.indent[length-2]
- else :
- self.indent_courant=self.indent[0]
- self.texte_etape = self.texte_etape + string.strip(element)
- else :
- longueur = self.longueur(self.texte_etape)
- increment = len(('\n'+self.indent_courant*' ')*ind + string.strip(element))
- #self.jdc_fini = self.jdc_fini + ('\n'+self.indent_courant*' ')*ind + string.strip(element)
- if ((1-ind)*longueur+increment) <= self.l_max :
- self.texte_etape = self.texte_etape + ('\n'+self.indent_courant*' ')*ind + string.strip(element)
- else :
- # il faut couper ...
- nom,valeur = string.split(element,self.sep,1)
- chaine = self.creer_chaine(nom,valeur,'\n'+self.indent_courant*' ',ind)+','
- #self.jdc_fini = self.jdc_fini + ('\n'+self.indent_courant*' ')*ind + string.strip(element)
- self.texte_etape = self.texte_etape + chaine
- ind = 1
-
- def longueur(self,texte):
- """
- texte est une string qui peut contenir des retours chariots
- Cette méthode retourne la longueur de la dernière ligne de texte
- """
- liste = string.split(texte,'\n')
- return len(liste[-1])
-
- def creer_chaine(self,nom,valeur,increment,ind):
- s=''
- if len(increment + nom + self.sep) <= self.l_max:
- texte = increment*ind
- label = nom + self.sep
- s=texte + label
- longueur = len(increment + label)
- if len(string.split(valeur,'(')) == 1:
- # il s'agit d'une vraie chaîne de caractères
- val = len(valeur)
- texte = (self.l_max-2-val)*' '+valeur
- s=s+'\n'+texte
- else :
- # il s'agit d'une liste
- liste = string.split(valeur,',')
- i=0
- for arg in liste :
- ajout = string.strip(arg)
- if len(ajout) == 0 : continue
- longueur = self.longueur(texte = (texte + label)) + len(ajout +',') + (1-i)*len(increment)
- if longueur <= self.l_max:
- if ajout[-1] != ')':
- texte = texte + ajout +','
- else :
- texte = texte + ajout
- else :
- i=1
- if ajout[-1] != ')':
- texte = texte + increment + (len(label)+2)*' ' + ajout +','
- else :
- texte = texte + increment + (len(label)+2)*' ' + ajout
- s=s+texte
- return s
-
+++ /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 package contient tous les générateurs de formats de sortie
- à partir des objets d' EFICAS.
-
- Ces générateurs sont implémentés sous forme de plugins
-"""
-
-from Extensions import pluginloader
-
-import generator
-
-plugins=pluginloader.PluginLoader(generator)
-
+++ /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 le plugin generateur de fichier au format
- aplat pour EFICAS.
-
-"""
-import traceback
-import types,string,re
-
-from Noyau import N_CR
-from Noyau.N_utils import repr_float
-from Accas import ETAPE,PROC_ETAPE,MACRO_ETAPE,ETAPE_NIVEAU,JDC,FORM_ETAPE
-from Accas import MCSIMP,MCFACT,MCBLOC,MCList,EVAL
-from Accas import GEOM,ASSD,MCNUPLET
-from Accas import COMMENTAIRE,PARAMETRE, PARAMETRE_EVAL,COMMANDE_COMM
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
-
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'aplat',
- # La factory pour créer une instance du plugin
- 'factory' : AplatGenerator,
- }
-
-
-class AplatGenerator:
- """
- Ce generateur parcourt un objet de type JDC et produit
- un fichier au format aplat
-
- L'acquisition et le parcours sont réalisés par la méthode
- generator.gener(objet_jdc,format)
-
- L'écriture du fichier au format ini par appel de la méthode
- generator.writefile(nom_fichier)
-
- Ses caractéristiques principales sont exposées dans des attributs
- de classe :
-
- - extensions : qui donne une liste d'extensions de fichier préconisées
-
- """
- # Les extensions de fichier préconisées
- extensions=('.*',)
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR generateur format aplat pour eficas',
- fin='fin CR format aplat pour eficas')
- self.init=''
- # Le séparateur utiisé
- self.sep='//'
- # Le texte au format aplat est stocké dans l'attribut text
- self.text=''
-
- def writefile(self,filename):
- fp=open(filename,'w')
- fp.write(self.text)
- fp.close()
-
- def gener(self,obj,format='brut'):
- """
- Retourne une représentation du JDC obj sous une
- forme qui est paramétrée par format.
- Si format vaut 'brut', 'standard' ou 'beautifie', retourne le texte issu
- de generator
- """
- liste= self.generator(obj)
- if format == 'brut':
- self.text=liste
- elif format == 'standard':
- self.text=liste
- elif format == 'beautifie':
- self.text=liste
- else:
- raise "Format pas implémenté : "+format
- return self.text
-
- def generator(self,obj):
- """
- Cette methode joue un role d'aiguillage en fonction du type de obj
- On pourrait utiliser les méthodes accept et visitxxx à la
- place (dépend des gouts !!!)
- """
- # ATTENTION a l'ordre des tests : il peut avoir de l'importance (héritage)
- if isinstance(obj,PROC_ETAPE):
- return self.generPROC_ETAPE(obj)
- elif isinstance(obj,MACRO_ETAPE):
- return self.generMACRO_ETAPE(obj)
- elif isinstance(obj,FORM_ETAPE):
- return self.generFORM_ETAPE(obj)
- elif isinstance(obj,ETAPE):
- return self.generETAPE(obj)
- elif isinstance(obj,MCFACT):
- return self.generMCFACT(obj)
- elif isinstance(obj,MCList):
- return self.generMCList(obj)
- elif isinstance(obj,MCBLOC):
- return self.generMCBLOC(obj)
- elif isinstance(obj,MCSIMP):
- return self.generMCSIMP(obj)
- elif isinstance(obj,ASSD):
- return self.generASSD(obj)
- elif isinstance(obj,ETAPE_NIVEAU):
- return self.generETAPE_NIVEAU(obj)
- elif isinstance(obj,COMMENTAIRE):
- return self.generCOMMENTAIRE(obj)
- # Attention doit etre placé avant PARAMETRE (raison : héritage)
- elif isinstance(obj,PARAMETRE_EVAL):
- return self.generPARAMETRE_EVAL(obj)
- elif isinstance(obj,PARAMETRE):
- return self.generPARAMETRE(obj)
- elif isinstance(obj,EVAL):
- return self.generEVAL(obj)
- elif isinstance(obj,COMMANDE_COMM):
- return self.generCOMMANDE_COMM(obj)
- elif isinstance(obj,JDC):
- return self.generJDC(obj)
- elif isinstance(obj,MCNUPLET):
- return self.generMCNUPLET(obj)
- else:
- raise "Type d'objet non prévu",obj
-
- def generJDC(self,obj):
- """
- Cette méthode convertit un objet JDC en une chaine de
- caractères à la syntaxe aplat
- """
- text=''
- if obj.definition.l_niveaux == ():
- # Il n'y a pas de niveaux
- for etape in obj.etapes:
- text=text+self.generator(etape)+'\n'
- else:
- # Il y a des niveaux
- for etape_niveau in obj.etapes_niveaux:
- text=text+self.generator(etape_niveau)+'\n'
- return text
-
- def generCOMMANDE_COMM(self,obj):
- """
- Cette méthode convertit un COMMANDE_COMM
- en une chaine de caractères à la syntaxe aplat
- """
- l_lignes = string.split(obj.valeur,'\n')
- txt=''
- for ligne in l_lignes:
- txt = txt + '##'+ligne+'\n'
- return txt
-
- def generEVAL(self,obj):
- """
- Cette méthode convertit un EVAL
- en une chaine de caractères à la syntaxe aplat
- """
- return 'EVAL("""'+ obj.valeur +'""")'
-
- def generCOMMENTAIRE(self,obj):
- """
- Cette méthode convertit un COMMENTAIRE
- en une chaine de caractères à la syntaxe aplat
- """
- l_lignes = string.split(obj.valeur,'\n')
- txt=''
- for ligne in l_lignes:
- txt = txt + '#'+ligne+'\n'
- return txt
-
- def generPARAMETRE_EVAL(self,obj):
- """
- Cette méthode convertit un PARAMETRE_EVAL
- en une chaine de caractères à la syntaxe aplat
- """
- if obj.valeur == None:
- return obj.nom + ' = None ;\n'
- else:
- return obj.nom + ' = '+ self.generator(obj.valeur) +';\n'
-
- def generPARAMETRE(self,obj):
- """
- Cette méthode convertit un PARAMETRE
- en une chaine de caractères à la syntaxe aplat
- """
- if type(obj.valeur) == types.StringType:
- return obj.nom + " = '" + obj.valeur + "';\n"
- else:
- return obj.nom + ' = ' + str(obj.valeur) + ';\n'
-
- def generETAPE_NIVEAU(self,obj):
- """
- Cette méthode convertit une étape niveau
- en une chaine de caractères à la syntaxe aplat
- """
- text=''
- if obj.etapes_niveaux == []:
- for etape in obj.etapes:
- text=text+self.generator(etape)+'\n'
- else:
- for etape_niveau in obj.etapes_niveaux:
- text=text+self.generator(etape_niveau)+'\n'
- return text
-
- def gener_etape(self,obj):
- """
- Cette méthode est utilisé pour convertir les objets etape
- en une chaine de caractères à la syntaxe aplat
- """
- text=''
- for v in obj.mc_liste:
- text=text + self.generator(v)
- if text=='':
- return self.init+'\n'
- else:
- return text
-
- def generETAPE(self,obj):
- """
- Cette méthode convertit une étape
- en une chaine de caractères à la syntaxe aplat
- """
- try:
- sdname= self.generator(obj.sd)
- except:
- sdname='sansnom'
- self.init = sdname + self.sep + obj.nom
- return self.gener_etape(obj)
-
- def generMACRO_ETAPE(self,obj):
- """
- Cette méthode convertit une macro-étape
- en une chaine de caractères à la syntaxe aplat
- """
- try:
- if obj.sd == None:
- self.init = obj.nom
- else:
- sdname= self.generator(obj.sd)
- self.init = sdname + self.sep + obj.nom
- except:
- self.init = 'sansnom' + self.sep + obj.nom
-
- return self.gener_etape(obj)
-
- generPROC_ETAPE = generMACRO_ETAPE
-
- generFORM_ETAPE = generMACRO_ETAPE
-
- def generASSD(self,obj):
- """
- Convertit un objet dérivé d'ASSD en une chaine de caractères à la
- syntaxe aplat
- """
- return obj.get_name()
-
- def generMCList(self,obj):
- """
- Convertit un objet MCList en une chaine de caractères à la
- syntaxe aplat
- """
- i=0
- text = ''
- init = self.init + self.sep + obj.nom
- old_init=self.init
- for data in obj.data :
- i=i+1
- self.init = init + self.sep + "occurrence n°"+`i`
- text = text + self.generator(data)
- self.init=old_init
- return text
-
- def generMCSIMP(self,obj) :
- """
- Convertit un objet MCSIMP en une chaine de caractères à la
- syntaxe aplat
- """
- if type(obj.valeur) in (types.TupleType,types.ListType) :
- # On est en présence d'une liste de valeur
- rep = '('
- for val in obj.valeur:
- if type(val) == types.InstanceType :
- rep = rep + self.generator(val) +','
- else:
- rep = rep + `val`+','
- rep = rep + ')'
- elif type(obj.valeur) == types.InstanceType :
- # On est en présence d'une valeur unique de type instance
- rep = self.generator(obj.valeur)
- else :
- # On est en présence d'une valeur unique
- rep = `obj.valeur`
- return self.init + self.sep + obj.nom + ' :' + rep + '\n'
-
- def generMCCOMPO(self,obj):
- """
- Convertit un objet MCCOMPO en une chaine de caractères à la
- syntaxe aplat
- """
- text = ''
- old_init=self.init
- self.init = self.init + self.sep + obj.nom
- for mocle in obj.mc_liste :
- text = text + self.generator(mocle)
- self.init=old_init
- return text
-
- generMCFACT=generMCCOMPO
-
- generMCBLOC=generMCCOMPO
-
- generMCNUPLET=generMCCOMPO
-
-
+++ /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 le plugin generateur de fichier au format asterv5 pour EFICAS.
-
-
-"""
-import traceback
-import types,string
-
-from Noyau import N_CR
-from Accas import ETAPE,PROC_ETAPE,MACRO_ETAPE,ETAPE_NIVEAU,JDC,FORM_ETAPE
-from Accas import MCSIMP,MCFACT,MCBLOC,MCList,EVAL
-from Accas import GEOM,ASSD
-from Accas import COMMENTAIRE,PARAMETRE, PARAMETRE_EVAL,COMMANDE_COMM
-from Formatage import Formatage
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
-
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'asterv5',
- # La factory pour créer une instance du plugin
- 'factory' : AsterGenerator,
- }
-
-
-class AsterGenerator:
- """
- Ce generateur parcourt un objet de type JDC et produit
- un fichier au format asterv5
-
- L'acquisition et le parcours sont réalisés par la méthode
- generator.gener(objet_jdc,format)
-
- L'écriture du fichier au format asterv5 est réalisée par appel de la méthode
- generator.writefile(nom_fichier)
-
- Ses caractéristiques principales sont exposées dans des attributs
- de classe :
-
- - extensions : qui donne une liste d'extensions de fichier préconisées
-
- """
- # Les extensions de fichier préconisées
- extensions=('.comm',)
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR generateur format asterv5',
- fin='fin CR format asterv5')
- # Le texte au format asterv5 est stocké dans l'attribut text
- self.text=''
-
- def writefile(self,filename):
- fp=open(filename,'w')
- fp.write(self.text)
- fp.close()
-
- def gener(self,obj,format='brut'):
- """
- Retourne une représentation du JDC obj sous une
- forme qui est paramétrée par format.
- Si format vaut 'brut', retourne une liste de listes de ...
- Si format vaut 'standard', retourne un texte obtenu par concaténation de la liste
- Si format vaut 'beautifie', retourne le meme texte beautifié
- """
- liste= self.generator(obj)
- if format == 'brut':
- self.text=liste
- elif format == 'standard':
- self.text=string.join(liste)
- elif format == 'beautifie':
- jdc_formate = Formatage(liste,sep=':',l_max=72)
- self.text=jdc_formate.formate_jdc()
- else:
- raise "Format pas implémenté : "+format
- return self.text
-
- def generator(self,obj):
- """
- Cette methode joue un role d'aiguillage en fonction du type de obj
- On pourrait utiliser les méthodes accept et visitxxx à la
- place (dépend des gouts !!!)
- """
- # ATTENTION a l'ordre des tests : il peut avoir de l'importance (héritage)
- if isinstance(obj,PROC_ETAPE):
- return self.generPROC_ETAPE(obj)
- elif isinstance(obj,MACRO_ETAPE):
- return self.generMACRO_ETAPE(obj)
- elif isinstance(obj,FORM_ETAPE):
- return self.generFORM_ETAPE(obj)
- elif isinstance(obj,ETAPE):
- return self.generETAPE(obj)
- elif isinstance(obj,MCFACT):
- return self.generMCFACT(obj)
- elif isinstance(obj,MCList):
- return self.generMCList(obj)
- elif isinstance(obj,MCBLOC):
- return self.generMCBLOC(obj)
- elif isinstance(obj,MCSIMP):
- return self.generMCSIMP(obj)
- elif isinstance(obj,ASSD):
- return self.generASSD(obj)
- elif isinstance(obj,ETAPE_NIVEAU):
- return self.generETAPE_NIVEAU(obj)
- elif isinstance(obj,COMMENTAIRE):
- return self.generCOMMENTAIRE(obj)
- # Attention doit etre placé avant PARAMETRE (raison : héritage)
- elif isinstance(obj,PARAMETRE_EVAL):
- return self.generPARAMETRE_EVAL(obj)
- elif isinstance(obj,PARAMETRE):
- return self.generPARAMETRE(obj)
- elif isinstance(obj,EVAL):
- return self.generEVAL(obj)
- elif isinstance(obj,COMMANDE_COMM):
- return self.generCOMMANDE_COMM(obj)
- elif isinstance(obj,JDC):
- return self.generJDC(obj)
- else:
- raise "Type d'objet non prévu",obj
-
- def generJDC(self,obj):
- """
- Cette méthode convertit un objet JDC en une liste de chaines de
- caractères à la syntaxe asterv5
- """
- l=[]
- if obj.definition.l_niveaux == ():
- # Il n'y a pas de niveaux
- for etape in obj.etapes:
- l.append(self.generator(etape))
- else:
- # Il y a des niveaux
- for etape_niveau in obj.etapes_niveaux:
- l.extend(self.generator(etape_niveau))
- if l != [] :
- # Si au moins une étape, on ajoute le retour chariot sur la dernière étape
- if type(l[-1])==types.ListType:
- l[-1][-1] = l[-1][-1]+'\n'
- elif type(l[-1])==types.StringType:
- l[-1] = l[-1]+'\n'
- return l
-
- def generCOMMANDE_COMM(self,obj):
- """
- Cette méthode convertit un COMMANDE_COMM
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- l_lignes = string.split(obj.valeur,'\n')
- txt=''
- for ligne in l_lignes:
- txt = txt + '%%'+ligne+'\n'
- return txt
-
- def generEVAL(self,obj):
- """
- Cette méthode convertit un EVAL
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- return 'EVAL("'+ obj.valeur +'")'
-
- def generCOMMENTAIRE(self,obj):
- """
- Cette méthode convertit un COMMENTAIRE
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- l_lignes = string.split(obj.valeur,'\n')
- txt=''
- for ligne in l_lignes:
- txt = txt + '%'+ligne+'\n'
- return txt
-
- def generPARAMETRE_EVAL(self,obj):
- """
- Cette méthode convertit un PARAMETRE_EVAL
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- if obj.valeur == None:
- return obj.nom + ' = None ;\n'
- else:
- return obj.nom + ' = '+ self.generator(obj.valeur) +';\n'
-
- def generPARAMETRE(self,obj):
- """
- Cette méthode convertit un PARAMETRE
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- if type(obj.valeur) == types.StringType:
- return obj.nom + " = '" + obj.valeur + "';\n"
- else:
- return obj.nom + ' = ' + str(obj.valeur) + ';\n'
-
- def generETAPE_NIVEAU(self,obj):
- """
- Cette méthode convertit une étape niveau
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- l=[]
- if obj.etapes_niveaux == []:
- for etape in obj.etapes:
- l.append(self.generator(etape))
- else:
- for etape_niveau in obj.etapes_niveaux:
- l.extend(self.generator(etape_niveau))
- return l
-
- def generETAPE(self,obj):
- """
- Cette méthode convertit une étape
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- try:
- if obj.reuse != None:
- sdname= "&" + self.generator(obj.reuse)
- else:
- sdname= self.generator(obj.sd)
- except:
- sdname='sansnom'
- l=[]
- label=sdname + '='+obj.definition.nom+'('
- l.append(label)
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) or isinstance(v,MCList):
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- else:
- l.append(self.generator(v))
- if len(l) == 1:
- l[0]=label+');'
- else :
- l.append(');')
- return l
-
- def generFORM_ETAPE(self,obj):
- """
- Méthode particulière pour les objets de type FORMULE
- """
- l=[]
- nom = obj.get_nom()
- if nom == '' : nom = 'sansnom'
- if len(obj.mc_liste)>0:
- l.append(nom + ' = FORMULE(')
- s=obj.type_retourne + ' = ' + "'''" + obj.arguments + ' = ' + obj.corps+"'''"
- l.append(s)
- l.append(');')
- else:
- l.append(nom+' = FORMULE();')
- return l
-
- def generMACRO_ETAPE(self,obj):
- """
- Cette méthode convertit une macro-étape
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- if obj.definition.nom == 'FORMULE' : return self.gen_ast_formule(obj)
- try:
- if obj.reuse != None:
- sdname= "&" + self.generator(obj.reuse)+'='
- elif obj.sd == None:
- sdname=''
- else:
- sdname= self.generator(obj.sd)+'='
- except:
- sdname='sansnom='
- l=[]
- label = sdname + obj.definition.nom+'('
- l.append(label)
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) or isinstance(v,MCList):
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- else:
- # MCFACT ou MCSIMP
- l.append(self.generator(v))
- if len(l) == 1:
- l[0]=label+');'
- else :
- l.append(');')
- return l
-
- def gen_ast_formule(self,obj):
- """
- Méthode gen_ast particuliere aux objets de type FORMULE
- """
- label='!FORMULE('
- try:
- sdname= self.generator(obj.sd)
- except:
- sdname='sansnom'
- l=[]
- l.append(label)
- for v in obj.mc_liste:
- s=''
- s= v.nom+':'+sdname+'('+v.valeur+')'
- l.append(s)
- if len(l) == 1:
- l[0]=label+');'
- else :
- l.append(');')
- return l
-
- def generPROC_ETAPE(self,obj):
- """
- Cette méthode convertit une étape
- en une liste de chaines de caractères à la syntaxe asterv5
- """
- l=[]
- label=obj.definition.nom+'('
- l.append(label)
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) or isinstance(v,MCList):
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- else:
- l.append(self.generator(v))
- if len(l) == 1:
- l[0]=label+');'
- else :
- l.append(');')
- return l
-
- def generMCSIMP(self,obj) :
- """
- Convertit un objet MCSIMP en une liste de chaines de caractères à la
- syntaxe asterv5
- """
- if type(obj.valeur) == types.TupleType :
- s = '('
- for val in obj.valeur :
- if s != '(': s = s + ','
- if type(val) == types.InstanceType :
- if isinstance(val,PARAMETRE):
- # il ne faut pas prendre la string que retourne gen_ast
- # mais seulement le nom dans le cas d'un paramètre
- s = s + val.nom
- else:
- s = s + self.generator(val)
- elif self.wait_geom(obj):
- s = s + val
- elif type(val) == types.FloatType :
- #s = s + self.repr_float(val)
- s = s + str(val)
- else :
- s = s + `val`
- s = s + ')'
- s=obj.nom+':'+s+' '
- return s
- else :
- if type(obj.valeur) == types.InstanceType :
- if isinstance(obj.valeur,PARAMETRE):
- # il ne faut pas prendre la string que retourne gen_ast
- # mais seulement str dans le cas d'un paramètre
- s = obj.valeur.nom
- else:
- s = self.generator(obj.valeur)
- elif self.wait_geom(obj):
- s = obj.valeur
- elif type(obj.valeur) == types.FloatType :
- #s = self.repr_float(obj.valeur)
- s = str(obj.valeur)
- else :
- s = `obj.valeur`
- s=obj.nom+':'+s+' '
- return s
-
- def wait_geom(self,obj):
- for typ in obj.definition.type:
- if type(typ) == types.ClassType :
- if issubclass(typ,GEOM) : return 1
- return 0
-
- def repr_float(self,valeur):
- """
- Cette fonction représente le réel valeur comme une chaîne de caractères
- sous forme mantisse exposant si nécessaire cad si le nombre contient plus de 5 caractères
- NB : valeur est un réel au format Python ou une chaîne de caractères représentant un réel
- """
- if type(valeur) == types.StringType : valeur = eval(valeur)
- if valeur == 0. : return '0.0'
- if abs(valeur) > 1. :
- if abs(valeur) < 10000. : return repr(valeur)
- else :
- if abs(valeur) > 0.01 : return repr(valeur)
- t=repr(valeur)
- if string.find(t,'e') != -1 or string.find(t,'E') != -1 :
- # le réel est déjà sous forme mantisse exposant !
- # --> on remplace e par E
- t=string.replace(t,'e','E')
- # --> on doit encore vérifier que la mantisse contient bien un '.'
- if string.find(t,'.')!= -1:
- return t
- else:
- # -->il faut rajouter le point avant le E
- t=string.replace(t,'E','.E')
- return t
- s=''
- neg = 0
- if t[0]=='-':
- s=s+t[0]
- t=t[1:]
- cpt = 0
- if string.atof(t[0]) == 0.:
- # réel plus petit que 1
- neg = 1
- t=t[2:]
- cpt=1
- while string.atof(t[0]) == 0. :
- cpt = cpt+1
- t=t[1:]
- s=s+t[0]+'.'
- for c in t[1:]:
- s=s+c
- else:
- # réel plus grand que 1
- s=s+t[0]+'.'
- if string.atof(t[1:]) == 0.:
- l=string.split(t[1:],'.')
- cpt = len(l[0])
- else:
- r=0
- pt=0
- for c in t[1:]:
- r=r+1
- if c != '.' :
- if pt != 1 : cpt = cpt + 1
- s=s+c
- else:
- pt = 1
- if r+1 == len(t) or string.atof(t[r+1:]) == 0.:break
- s=s+'E'+neg*'-'+repr(cpt)
- return s
-
- def generASSD(self,obj):
- """
- Convertit un objet dérivé d'ASSD en une chaine de caractères à la
- syntaxe asterv5
- """
- return obj.get_name()
-
- def generMCFACT(self,obj):
- """
- Convertit un objet MCFACT en une liste de chaines de caractères à la
- syntaxe asterv5
- """
- l=[]
- label=obj.nom + ':('
- l.append(label)
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) or isinstance(v,MCList):
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- else:
- l.append(self.generator(v))
- l.append(')')
- return l
-
- def generMCList(self,obj):
- """
- Convertit un objet MCList en une liste de chaines de caractères à la
- syntaxe asterv5
- """
- l=[]
- for mcfact in obj.data:
- l.append(self.generator(mcfact))
- return l
-
- def generMCBLOC(self,obj):
- """
- Convertit un objet MCBLOC en une liste de chaines de caractères à la
- syntaxe asterv5
- """
- l=[]
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) or isinstance(v,MCList):
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- else:
- l.append(self.generator(v))
- return l
-
+++ /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 le plugin generateur de fichier
- au format ini pour EFICAS.
-
-
-"""
-import traceback
-import types,string
-
-from Noyau import N_CR
-from Accas import MCSIMP,MCFACT
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'ini',
- # La factory pour créer une instance du plugin
- 'factory' : IniGenerator,
- }
-
-
-class IniGenerator:
- """
- Ce generateur parcourt un objet de type MCFACT et produit
- un fichier au format ini
- L'acquisition et le parcours sont réalisés par le méthode
- generator.gener(objet_mcfact)
- L'écriture du fichier au format ini par appel de la méthode
- generator.writefile(nom_fichier)
-
- Ses caractéristiques principales sont exposées dans des attributs
- de classe :
-
- - extensions : qui donne une liste d'extensions de fichier préconisées
-
- """
- # Les extensions de fichier préconisées
- extensions=('.ini','.conf')
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR generateur format ini',
- fin='fin CR format ini')
- # Le texte au format ini est stocké dans l'attribut text
- self.text=''
-
- def writefile(self,filename):
- fp=open(filename,'w')
- fp.write(self.text)
- fp.close()
-
- def gener(self,obj):
- """
- Tous les mots-clés simples du niveau haut sont mis dans la section DEFAUT
- Tous les mots-clés facteurs sont convertis en sections
- Un mot-clé facteur ne peut contenir que des mots-clés simples. Sinon => erreur
- """
- liste_mcfact=[]
- sect_defaut=''
- for mocle in obj.mc_liste:
- if isinstance(mocle,MCFACT):
- liste_mcfact.append(self.generMCFACT(mocle))
- elif isinstance(mocle,MCSIMP):
- sect_defaut=sect_defaut+self.generMCSIMP(mocle)
- else:
- self.cr.fatal("Entite inconnue ou interdite : "+`mocle`)
- self.text=''
- if sect_defaut != '':
- self.text="[DEFAULT]\n"+sect_defaut
- self.text=self.text + string.join(liste_mcfact,'\n')
- return self.text
-
- def generMCFACT(self,obj):
- """
- Cette méthode convertit un mot-clé facteur ne contenant que des mots-clés
- simples en une chaine de caractères
- """
- sect_text='[%s]\n' % obj.nom
- for mocle in obj.mc_liste:
- if isinstance(mocle,MCSIMP):
- sect_text=sect_text+self.generMCSIMP(mocle)
- else:
- self.cr.fatal("Entite inconnue ou interdite : "+`mocle`+" Elle est ignorée")
- return sect_text
-
- def generMCSIMP(self,obj):
- """
- Cette méthode convertit un mot-clé simple en une chaine de caractères
- au format ini
- """
- s=''
- if type(obj.valeur) == types.TupleType :
- self.cr.fatal("Les tuples ne sont pas supportés pour le format ini : "+ obj.nom)
- s="%s = %s\n" % (obj.nom,"ERREUR")
- else :
- try:
- s="%s = %s\n" % (obj.nom,obj.valeur)
- except Exception,e :
- self.cr.fatal("Type de valeur non supporté par le format ini : "+ obj.nom + '\n'+str(e))
- s="%s = %s\n" % (obj.nom,"ERREUR")
- return s
-
+++ /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 le plugin generateur de fichier au format pyth pour EFICAS.
-
-
-"""
-import traceback
-import types,string
-
-from Noyau import N_CR
-from Accas import MCSIMP,MCFACT
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
-
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'pyth',
- # La factory pour créer une instance du plugin
- 'factory' : PythGenerator,
- }
-
-
-class PythGenerator:
- """
- Ce generateur parcourt un objet de type MCFACT et produit
- un fichier au format pyth
-
- L'acquisition et le parcours sont réalisés par la méthode
- generator.gener(objet_mcfact)
-
- L'écriture du fichier au format ini par appel de la méthode
- generator.writefile(nom_fichier)
-
- Ses caractéristiques principales sont exposées dans des attributs
- de classe :
-
- - extensions : qui donne une liste d'extensions de fichier préconisées
-
- """
- # Les extensions de fichier préconisées
- extensions=('.py','.comm')
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR generateur format ini',
- fin='fin CR format ini')
- # Le texte au format pyth est stocké dans l'attribut text
- self.text=''
-
- def writefile(self,filename):
- fp=open(filename,'w')
- fp.write(self.text)
- fp.close()
-
- def gener(self,obj,format='standard'):
- """
- Tous les mots-clés simples du niveau haut sont transformés en variables
-
- Tous les mots-clés facteurs sont convertis en dictionnaires
-
- Les mots-clés multiples ne sont pas traités
- """
- s=''
- for mocle in obj.mc_liste:
- if isinstance(mocle,MCFACT):
- valeur=self.generMCFACT(mocle)
- s=s+"%s = %s\n" % (mocle.nom,valeur)
- elif isinstance(v,MCSIMP):
- valeur = self.generMCSIMP(mocle)
- s=s+"%s = %s\n" % (mocle.nom,valeur)
- else:
- self.cr.fatal("Entite inconnue ou interdite : "+`mocle`)
- self.text=s
- return self.text
-
- def generMCFACT(self,obj):
- """
- Cette méthode convertit un mot-clé facteur
- en une chaine de caractères représentative d'un dictionnaire
- """
- s = '{'
- for mocle in obj.mc_liste:
- if isinstance(mocle,MCSIMP):
- valeur = self.generMCSIMP(mocle)
- s=s+"'%s' : %s,\n" % (mocle.nom,valeur)
- elif isinstance(mocle,MCFACT):
- valeur=self.generMCFACT(mocle)
- s=s+"'%s' : %s,\n" % (mocle.nom,valeur)
- else:
- self.cr.fatal("Entite inconnue ou interdite : "+`mocle`+" Elle est ignorée")
- s=s+'}'
- return s
-
- def generMCSIMP(self,obj):
- """
- Cette méthode convertit un mot-clé simple en une chaine de caractères
- au format pyth
- """
- try:
- s="%s" % obj.valeur
- except Exception,e :
- self.cr.fatal("Type de valeur non supporté par le format pyth : "+ obj.nom + '\n'+str(e))
- s="ERREUR"
- return s
-
+++ /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 le plugin generateur de fichier au format
- python pour EFICAS.
-
-"""
-import traceback
-import types,string,re
-
-from Noyau import N_CR
-from Noyau.N_utils import repr_float
-from Accas import ETAPE,PROC_ETAPE,MACRO_ETAPE,ETAPE_NIVEAU,JDC,FORM_ETAPE
-from Accas import MCSIMP,MCFACT,MCBLOC,MCList,EVAL
-from Accas import GEOM,ASSD,MCNUPLET
-from Accas import COMMENTAIRE,PARAMETRE, PARAMETRE_EVAL,COMMANDE_COMM
-from Formatage import Formatage
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
-
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'python',
- # La factory pour créer une instance du plugin
- 'factory' : PythonGenerator,
- }
-
-
-class PythonGenerator:
- """
- Ce generateur parcourt un objet de type JDC et produit
- un fichier au format python
-
- L'acquisition et le parcours sont réalisés par la méthode
- generator.gener(objet_jdc,format)
-
- L'écriture du fichier au format ini par appel de la méthode
- generator.writefile(nom_fichier)
-
- Ses caractéristiques principales sont exposées dans des attributs
- de classe :
-
- - extensions : qui donne une liste d'extensions de fichier préconisées
-
- """
- # Les extensions de fichier préconisées
- extensions=('.comm',)
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR generateur format python pour python',
- fin='fin CR format python pour python')
- # Le texte au format python est stocké dans l'attribut text
- self.text=''
-
- def writefile(self,filename):
- fp=open(filename,'w')
- fp.write(self.text)
- fp.close()
-
- def gener(self,obj,format='brut'):
- """
- Retourne une représentation du JDC obj sous une
- forme qui est paramétrée par format.
- Si format vaut 'brut', retourne une liste de listes de ...
- Si format vaut 'standard', retourne un texte obtenu par concaténation de la liste
- Si format vaut 'beautifie', retourne le meme texte beautifié
- """
- liste= self.generator(obj)
- if format == 'brut':
- self.text=liste
- elif format == 'standard':
- self.text=string.join(liste)
- elif format == 'beautifie':
- jdc_formate = Formatage(liste,mode='.py')
- self.text=jdc_formate.formate_jdc()
- else:
- raise "Format pas implémenté : "+format
- return self.text
-
- def generator(self,obj):
- """
- Cette methode joue un role d'aiguillage en fonction du type de obj
- On pourrait utiliser les méthodes accept et visitxxx à la
- place (dépend des gouts !!!)
- """
- # ATTENTION a l'ordre des tests : il peut avoir de l'importance (héritage)
- if isinstance(obj,PROC_ETAPE):
- return self.generPROC_ETAPE(obj)
- elif isinstance(obj,MACRO_ETAPE):
- return self.generMACRO_ETAPE(obj)
- elif isinstance(obj,FORM_ETAPE):
- return self.generFORM_ETAPE(obj)
- elif isinstance(obj,ETAPE):
- return self.generETAPE(obj)
- elif isinstance(obj,MCFACT):
- return self.generMCFACT(obj)
- elif isinstance(obj,MCList):
- return self.generMCList(obj)
- elif isinstance(obj,MCBLOC):
- return self.generMCBLOC(obj)
- elif isinstance(obj,MCSIMP):
- return self.generMCSIMP(obj)
- elif isinstance(obj,ASSD):
- return self.generASSD(obj)
- elif isinstance(obj,ETAPE_NIVEAU):
- return self.generETAPE_NIVEAU(obj)
- elif isinstance(obj,COMMENTAIRE):
- return self.generCOMMENTAIRE(obj)
- # Attention doit etre placé avant PARAMETRE (raison : héritage)
- elif isinstance(obj,PARAMETRE_EVAL):
- return self.generPARAMETRE_EVAL(obj)
- elif isinstance(obj,PARAMETRE):
- return self.generPARAMETRE(obj)
- elif isinstance(obj,EVAL):
- return self.generEVAL(obj)
- elif isinstance(obj,COMMANDE_COMM):
- return self.generCOMMANDE_COMM(obj)
- elif isinstance(obj,JDC):
- return self.generJDC(obj)
- elif isinstance(obj,MCNUPLET):
- return self.generMCNUPLET(obj)
- else:
- raise "Type d'objet non prévu",obj
-
- def generJDC(self,obj):
- """
- Cette méthode convertit un objet JDC en une liste de chaines de
- caractères à la syntaxe python
- """
- l=[]
- if obj.definition.l_niveaux == ():
- # Il n'y a pas de niveaux
- for etape in obj.etapes:
- l.append(self.generator(etape))
- else:
- # Il y a des niveaux
- for etape_niveau in obj.etapes_niveaux:
- l.extend(self.generator(etape_niveau))
- if l != [] :
- # Si au moins une étape, on ajoute le retour chariot sur la dernière étape
- if type(l[-1])==types.ListType:
- l[-1][-1] = l[-1][-1]+'\n'
- elif type(l[-1])==types.StringType:
- l[-1] = l[-1]+'\n'
- return l
-
- def generMCNUPLET(self,obj):
- """
- Méthode générant une représentation de self permettant son ecriture
- dans le format python
- """
- l=[]
- l.append('(')
- for v in obj.mc_liste:
- text = re.sub(".*=","",self.generator(v))
- l.append(text)
- l.append('),')
- return l
-
- def generCOMMANDE_COMM(self,obj):
- """
- Cette méthode convertit un COMMANDE_COMM
- en une liste de chaines de caractères à la syntaxe python
- """
- l_lignes = string.split(obj.valeur,'\n')
- txt=''
- for ligne in l_lignes:
- txt = txt + '##'+ligne+'\n'
- return txt
-
- def generEVAL(self,obj):
- """
- Cette méthode convertit un EVAL
- en une liste de chaines de caractères à la syntaxe python
- """
- return 'EVAL("""'+ obj.valeur +'""")'
-
- def generCOMMENTAIRE(self,obj):
- """
- Cette méthode convertit un COMMENTAIRE
- en une liste de chaines de caractères à la syntaxe python
- """
- # 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):
- """
- Cette méthode convertit un PARAMETRE_EVAL
- en une liste de chaines de caractères à la syntaxe python
- """
- if obj.valeur == None:
- return obj.nom + ' = None ;\n'
- else:
- return obj.nom + ' = '+ self.generator(obj.valeur) +';\n'
-
- def generPARAMETRE(self,obj):
- """
- Cette méthode convertit un PARAMETRE
- en une liste de chaines de caractères à la syntaxe python
- """
- if type(obj.valeur) == types.StringType:
- return obj.nom + " = '" + obj.valeur + "';\n"
- else:
- return obj.nom + ' = ' + str(obj.valeur) + ';\n'
-
- def generETAPE_NIVEAU(self,obj):
- """
- Cette méthode convertit une étape niveau
- en une liste de chaines de caractères à la syntaxe python
- """
- l=[]
- if obj.etapes_niveaux == []:
- for etape in obj.etapes:
- l.append(self.generator(etape))
- else:
- for etape_niveau in obj.etapes_niveaux:
- l.extend(self.generator(etape_niveau))
- return l
-
- def generETAPE(self,obj):
- """
- Cette méthode convertit une étape
- en une liste de chaines de caractères à la syntaxe python
- """
- try:
- sdname= self.generator(obj.sd)
- except:
- sdname='sansnom'
- l=[]
- label=sdname + '='+obj.definition.nom+'('
- l.append(label)
- if obj.reuse != None :
- str = 'reuse ='+ self.generator(obj.reuse) + ','
- l.append(str)
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) :
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- elif isinstance(v,MCSIMP) :
- text=self.generator(v)
- l.append(v.nom+'='+text)
- else:
- # MCFACT ou MCList
- liste=self.generator(v)
- liste[0]=v.nom+'='+liste[0]
- l.append(liste)
- if len(l) == 1:
- l[0]=label+');'
- else :
- l.append(');')
- return l
-
- def generFORM_ETAPE(self,obj):
- """
- Méthode particulière pour les objets de type FORMULE
- """
- l=[]
- nom = obj.get_nom()
- if nom == '' : nom = 'sansnom'
- if len(obj.mc_liste)>0:
- l.append(nom + ' = FORMULE(')
- s=obj.type_retourne + ' = ' + "'''" + obj.arguments + ' = ' + obj.corps+"'''"
- l.append(s)
- l.append(');')
- else:
- l.append(nom+' = FORMULE();')
- return l
-
- def generMACRO_ETAPE(self,obj):
- """
- Cette méthode convertit une macro-étape
- en une liste de chaines de caractères à la syntaxe python
- """
- if obj.definition.nom == 'FORMULE' : return self.gen_formule(obj)
- try:
- if obj.sd == None:
- sdname=''
- else:
- sdname= self.generator(obj.sd)+'='
- except:
- sdname='sansnom='
- l=[]
- label = sdname + obj.definition.nom+'('
- l.append(label)
- if obj.reuse != None:
- # XXX faut il la virgule ou pas ????
- str = "reuse =" + self.generator(obj.reuse) + ','
- l.append(str)
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) :
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- elif isinstance(v,MCSIMP) :
- text=self.generator(v)
- l.append(v.nom+'='+text)
- else:
- # MCFACT ou MCList
- liste=self.generator(v)
- liste[0]=v.nom+'='+liste[0]
- l.append(liste)
-
- if len(l) == 1:
- l[0]=label+');'
- else :
- l.append(');')
- return l
-
- def gen_formule(self,obj):
- """
- Méthode particuliere aux objets de type FORMULE
- """
- try:
- if obj.sd == None:
- sdname=''
- else:
- sdname= self.generator(obj.sd)
- except:
- sdname='sansnom'
- l=[]
- label=sdname + ' = FORMULE('
- l.append(label)
- for v in obj.mc_liste:
- s=''
- s= v.nom+':'+sdname+'('+v.valeur+')'
- l.append(s)
- if len(l) == 1:
- l[0]=label+');'
- else :
- l.append(');')
- return l
-
- def generPROC_ETAPE(self,obj):
- """
- Cette méthode convertit une PROC étape
- en une liste de chaines de caractères à la syntaxe python
- """
- l=[]
- label=obj.definition.nom+'('
- l.append(label)
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) :
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- elif isinstance(v,MCSIMP) :
- text=self.generator(v)
- l.append(v.nom+'='+text)
- else:
- # MCFACT ou MCList
- liste=self.generator(v)
- liste[0]=v.nom+'='+liste[0]
- l.append(liste)
-
- if len(l) == 1:
- l[0]=label+');'
- else :
- l.append(');')
- return l
-
- def generASSD(self,obj):
- """
- Convertit un objet dérivé d'ASSD en une chaine de caractères à la
- syntaxe python
- """
- return obj.get_name()
-
- def generMCFACT(self,obj):
- """
- Convertit un objet MCFACT en une liste de chaines de caractères à la
- syntaxe python
- """
- l=[]
- l.append('_F(')
- for v in obj.mc_liste:
- if not isinstance(v,MCSIMP) and not isinstance (v,MCBLOC) :
- # on est en présence d'une entite composée : on récupère une liste
- liste=self.generator(v)
- liste[0]=v.nom+'='+liste[0]
- l.append(liste)
- elif isinstance(v,MCBLOC):
- liste=self.generator(v)
- for arg in liste :
- l.append(arg)
- else:
- # 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
- # le cas où elle est obligatoire (si self a des frères cadets
- # dans self.parent) ou non
- # (cas où self est seul ou le benjamin de self.parent)
- l.append('),')
- return l
-
- def generMCList(self,obj):
- """
- Convertit un objet MCList en une liste de chaines de caractères à la
- syntaxe python
- """
- l=[]
- str = '('
- l.append(str)
- for mcfact in obj.data:
- l.append(self.generator(mcfact))
- l.append('),')
- return l
-
- def generMCBLOC(self,obj):
- """
- Convertit un objet MCBLOC en une liste de chaines de caractères à la
- syntaxe python
- """
- l=[]
- for v in obj.mc_liste:
- if isinstance(v,MCBLOC) :
- liste=self.generator(v)
- for mocle in liste :
- l.append(mocle)
- elif isinstance(v,MCList):
- liste=self.generator(v)
- liste[0]=v.nom+'='+liste[0]
- for mocle in liste :
- l.append(mocle)
- else:
- data=self.generator(v)
- if type(data) == types.ListType:
- data[0]=v.nom+'='+data[0]
- else:
- data=v.nom+'='+data
- l.append(data)
- return l
-
- def generMCSIMP(self,obj) :
- """
- Convertit un objet MCSIMP en une liste de chaines de caractères à la
- syntaxe python
- """
- if type(obj.valeur) in (types.TupleType,types.ListType) :
- s = ''
- for val in obj.valeur :
- if type(val) == types.InstanceType :
- 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):
- # il ne faut pas prendre la string que retourne gener
- # mais seulement le nom dans le cas d'un paramètre
- 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 len(obj.valeur) > 1:
- s = '(' + s + '),'
- else :
- val=obj.valeur
- if type(val) == types.InstanceType :
- 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):
- # il ne faut pas prendre la string que retourne gener
- # mais seulement le nom dans le cas d'un paramètre
- s = val.nom
- else:
- s = self.generator(val)
- elif type(val) == types.FloatType :
- #s = repr_float(val)
- s = str(val)
- else :
- s = `val`
- s= s + ','
- return 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()
-